mirror of
https://github.com/twbs/bootstrap.git
synced 2025-01-18 10:52:19 +01:00
add getters for Version and Default where applicable
add modal my gawd
This commit is contained in:
parent
bbb97a8660
commit
ca9c850ebb
@ -68,7 +68,8 @@ module.exports = function (grunt) {
|
|||||||
'js/dist/button.js' : 'js/src/button.js',
|
'js/dist/button.js' : 'js/src/button.js',
|
||||||
'js/dist/carousel.js' : 'js/src/carousel.js',
|
'js/dist/carousel.js' : 'js/src/carousel.js',
|
||||||
'js/dist/collapse.js' : 'js/src/collapse.js',
|
'js/dist/collapse.js' : 'js/src/collapse.js',
|
||||||
'js/dist/dropdown.js' : 'js/src/dropdown.js'
|
'js/dist/dropdown.js' : 'js/src/dropdown.js',
|
||||||
|
'js/dist/modal.js' : 'js/src/modal.js'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -114,8 +115,7 @@ module.exports = function (grunt) {
|
|||||||
'js/tooltip.js',
|
'js/tooltip.js',
|
||||||
'js/popover.js',
|
'js/popover.js',
|
||||||
'js/scrollspy.js',
|
'js/scrollspy.js',
|
||||||
'js/tab.js',
|
'js/tab.js'
|
||||||
'js/affix.js'
|
|
||||||
],
|
],
|
||||||
dest: 'dist/js/<%= pkg.name %>.js'
|
dest: 'dist/js/<%= pkg.name %>.js'
|
||||||
}
|
}
|
||||||
|
1
dist/js/npm.js
vendored
1
dist/js/npm.js
vendored
@ -10,4 +10,3 @@ require('../../js/tooltip.js')
|
|||||||
require('../../js/popover.js')
|
require('../../js/popover.js')
|
||||||
require('../../js/scrollspy.js')
|
require('../../js/scrollspy.js')
|
||||||
require('../../js/tab.js')
|
require('../../js/tab.js')
|
||||||
require('../../js/affix.js')
|
|
162
js/affix.js
162
js/affix.js
@ -1,162 +0,0 @@
|
|||||||
/* ========================================================================
|
|
||||||
* Bootstrap: affix.js v3.3.4
|
|
||||||
* http://getbootstrap.com/javascript/#affix
|
|
||||||
* ========================================================================
|
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* ======================================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
+function ($) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
// AFFIX CLASS DEFINITION
|
|
||||||
// ======================
|
|
||||||
|
|
||||||
var Affix = function (element, options) {
|
|
||||||
this.options = $.extend({}, Affix.DEFAULTS, options)
|
|
||||||
|
|
||||||
this.$target = $(this.options.target)
|
|
||||||
.on('scroll.bs.affix.data-api', $.proxy(this.checkPosition, this))
|
|
||||||
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
|
|
||||||
|
|
||||||
this.$element = $(element)
|
|
||||||
this.affixed = null
|
|
||||||
this.unpin = null
|
|
||||||
this.pinnedOffset = null
|
|
||||||
|
|
||||||
this.checkPosition()
|
|
||||||
}
|
|
||||||
|
|
||||||
Affix.VERSION = '3.3.4'
|
|
||||||
|
|
||||||
Affix.RESET = 'affix affix-top affix-bottom'
|
|
||||||
|
|
||||||
Affix.DEFAULTS = {
|
|
||||||
offset: 0,
|
|
||||||
target: window
|
|
||||||
}
|
|
||||||
|
|
||||||
Affix.prototype.getState = function (scrollHeight, height, offsetTop, offsetBottom) {
|
|
||||||
var scrollTop = this.$target.scrollTop()
|
|
||||||
var position = this.$element.offset()
|
|
||||||
var targetHeight = this.$target.height()
|
|
||||||
|
|
||||||
if (offsetTop != null && this.affixed == 'top') return scrollTop < offsetTop ? 'top' : false
|
|
||||||
|
|
||||||
if (this.affixed == 'bottom') {
|
|
||||||
if (offsetTop != null) return (scrollTop + this.unpin <= position.top) ? false : 'bottom'
|
|
||||||
return (scrollTop + targetHeight <= scrollHeight - offsetBottom) ? false : 'bottom'
|
|
||||||
}
|
|
||||||
|
|
||||||
var initializing = this.affixed == null
|
|
||||||
var colliderTop = initializing ? scrollTop : position.top
|
|
||||||
var colliderHeight = initializing ? targetHeight : height
|
|
||||||
|
|
||||||
if (offsetTop != null && scrollTop <= offsetTop) return 'top'
|
|
||||||
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
Affix.prototype.getPinnedOffset = function () {
|
|
||||||
if (this.pinnedOffset) return this.pinnedOffset
|
|
||||||
this.$element.removeClass(Affix.RESET).addClass('affix')
|
|
||||||
var scrollTop = this.$target.scrollTop()
|
|
||||||
var position = this.$element.offset()
|
|
||||||
return (this.pinnedOffset = position.top - scrollTop)
|
|
||||||
}
|
|
||||||
|
|
||||||
Affix.prototype.checkPositionWithEventLoop = function () {
|
|
||||||
setTimeout($.proxy(this.checkPosition, this), 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
Affix.prototype.checkPosition = function () {
|
|
||||||
if (!this.$element.is(':visible')) return
|
|
||||||
|
|
||||||
var height = this.$element.height()
|
|
||||||
var offset = this.options.offset
|
|
||||||
var offsetTop = offset.top
|
|
||||||
var offsetBottom = offset.bottom
|
|
||||||
var scrollHeight = Math.max($(document).height(), $(document.body).height())
|
|
||||||
|
|
||||||
if (typeof offset != 'object') offsetBottom = offsetTop = offset
|
|
||||||
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
|
|
||||||
if (typeof offsetBottom == 'function') offsetBottom = offset.bottom(this.$element)
|
|
||||||
|
|
||||||
var affix = this.getState(scrollHeight, height, offsetTop, offsetBottom)
|
|
||||||
|
|
||||||
if (this.affixed != affix) {
|
|
||||||
if (this.unpin != null) this.$element.css('top', '')
|
|
||||||
|
|
||||||
var affixType = 'affix' + (affix ? '-' + affix : '')
|
|
||||||
var e = $.Event(affixType + '.bs.affix')
|
|
||||||
|
|
||||||
this.$element.trigger(e)
|
|
||||||
|
|
||||||
if (e.isDefaultPrevented()) return
|
|
||||||
|
|
||||||
this.affixed = affix
|
|
||||||
this.unpin = affix == 'bottom' ? this.getPinnedOffset() : null
|
|
||||||
|
|
||||||
this.$element
|
|
||||||
.removeClass(Affix.RESET)
|
|
||||||
.addClass(affixType)
|
|
||||||
.trigger(affixType.replace('affix', 'affixed') + '.bs.affix')
|
|
||||||
}
|
|
||||||
|
|
||||||
if (affix == 'bottom') {
|
|
||||||
this.$element.offset({
|
|
||||||
top: scrollHeight - height - offsetBottom
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// AFFIX PLUGIN DEFINITION
|
|
||||||
// =======================
|
|
||||||
|
|
||||||
function Plugin(option) {
|
|
||||||
return this.each(function () {
|
|
||||||
var $this = $(this)
|
|
||||||
var data = $this.data('bs.affix')
|
|
||||||
var options = typeof option == 'object' && option
|
|
||||||
|
|
||||||
if (!data) $this.data('bs.affix', (data = new Affix(this, options)))
|
|
||||||
if (typeof option == 'string') data[option]()
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var old = $.fn.affix
|
|
||||||
|
|
||||||
$.fn.affix = Plugin
|
|
||||||
$.fn.affix.Constructor = Affix
|
|
||||||
|
|
||||||
|
|
||||||
// AFFIX NO CONFLICT
|
|
||||||
// =================
|
|
||||||
|
|
||||||
$.fn.affix.noConflict = function () {
|
|
||||||
$.fn.affix = old
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// AFFIX DATA-API
|
|
||||||
// ==============
|
|
||||||
|
|
||||||
$(window).on('load', function () {
|
|
||||||
$('[data-spy="affix"]').each(function () {
|
|
||||||
var $spy = $(this)
|
|
||||||
var data = $spy.data()
|
|
||||||
|
|
||||||
data.offset = data.offset || {}
|
|
||||||
|
|
||||||
if (data.offsetBottom != null) data.offset.bottom = data.offsetBottom
|
|
||||||
if (data.offsetTop != null) data.offset.top = data.offsetTop
|
|
||||||
|
|
||||||
Plugin.call($spy, data)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
}(jQuery);
|
|
8
js/dist/alert.js
vendored
8
js/dist/alert.js
vendored
@ -115,6 +115,14 @@ var Alert = (function ($) {
|
|||||||
$(element).detach().trigger(Event.CLOSED).remove();
|
$(element).detach().trigger(Event.CLOSED).remove();
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
key: '_jQueryInterface',
|
key: '_jQueryInterface',
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
2
js/dist/alert.js.map
vendored
2
js/dist/alert.js.map
vendored
File diff suppressed because one or more lines are too long
8
js/dist/button.js
vendored
8
js/dist/button.js
vendored
@ -96,6 +96,14 @@ var Button = (function ($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
key: '_jQueryInterface',
|
key: '_jQueryInterface',
|
||||||
|
|
||||||
// static
|
// static
|
||||||
|
2
js/dist/button.js.map
vendored
2
js/dist/button.js.map
vendored
File diff suppressed because one or more lines are too long
17
js/dist/carousel.js
vendored
17
js/dist/carousel.js
vendored
@ -25,7 +25,7 @@ var Carousel = (function ($) {
|
|||||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||||
var TRANSITION_DURATION = 600;
|
var TRANSITION_DURATION = 600;
|
||||||
|
|
||||||
var Defaults = {
|
var Default = {
|
||||||
interval: 5000,
|
interval: 5000,
|
||||||
keyboard: true,
|
keyboard: true,
|
||||||
slide: false,
|
slide: false,
|
||||||
@ -320,6 +320,19 @@ var Carousel = (function ($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'Default',
|
||||||
|
get: function () {
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
key: '_jQueryInterface',
|
key: '_jQueryInterface',
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@ -327,7 +340,7 @@ var Carousel = (function ($) {
|
|||||||
value: function _jQueryInterface(config) {
|
value: function _jQueryInterface(config) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var data = $(this).data(DATA_KEY);
|
var data = $(this).data(DATA_KEY);
|
||||||
var _config = $.extend({}, Defaults, $(this).data());
|
var _config = $.extend({}, Default, $(this).data());
|
||||||
|
|
||||||
if (typeof config === 'object') {
|
if (typeof config === 'object') {
|
||||||
$.extend(_config, config);
|
$.extend(_config, config);
|
||||||
|
2
js/dist/carousel.js.map
vendored
2
js/dist/carousel.js.map
vendored
File diff suppressed because one or more lines are too long
19
js/dist/collapse.js
vendored
19
js/dist/collapse.js
vendored
@ -25,7 +25,7 @@ var Collapse = (function ($) {
|
|||||||
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||||
var TRANSITION_DURATION = 600;
|
var TRANSITION_DURATION = 600;
|
||||||
|
|
||||||
var Defaults = {
|
var Default = {
|
||||||
toggle: true,
|
toggle: true,
|
||||||
parent: null
|
parent: null
|
||||||
};
|
};
|
||||||
@ -67,7 +67,7 @@ var Collapse = (function ($) {
|
|||||||
|
|
||||||
this._isTransitioning = false;
|
this._isTransitioning = false;
|
||||||
this._element = element;
|
this._element = element;
|
||||||
this._config = $.extend({}, Defaults, config);
|
this._config = $.extend({}, Default, config);
|
||||||
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
|
this._triggerArray = $.makeArray($('[data-toggle="collapse"][href="#' + element.id + '"],' + ('[data-toggle="collapse"][data-target="#' + element.id + '"]')));
|
||||||
|
|
||||||
this._parent = this._config.parent ? this._getParent() : null;
|
this._parent = this._config.parent ? this._getParent() : null;
|
||||||
@ -252,6 +252,19 @@ var Collapse = (function ($) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'Default',
|
||||||
|
get: function () {
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
key: '_getTargetFromElement',
|
key: '_getTargetFromElement',
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@ -266,7 +279,7 @@ var Collapse = (function ($) {
|
|||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
var $this = $(this);
|
var $this = $(this);
|
||||||
var data = $this.data(DATA_KEY);
|
var data = $this.data(DATA_KEY);
|
||||||
var _config = $.extend({}, Defaults, $this.data(), typeof config === 'object' && config);
|
var _config = $.extend({}, Default, $this.data(), typeof config === 'object' && config);
|
||||||
|
|
||||||
if (!data && _config.toggle && /show|hide/.test(config)) {
|
if (!data && _config.toggle && /show|hide/.test(config)) {
|
||||||
_config.toggle = false;
|
_config.toggle = false;
|
||||||
|
2
js/dist/collapse.js.map
vendored
2
js/dist/collapse.js.map
vendored
File diff suppressed because one or more lines are too long
12
js/dist/dropdown.js
vendored
12
js/dist/dropdown.js
vendored
@ -91,7 +91,7 @@ var Dropdown = (function ($) {
|
|||||||
$(dropdown).on('click', Dropdown._clearMenus);
|
$(dropdown).on('click', Dropdown._clearMenus);
|
||||||
}
|
}
|
||||||
|
|
||||||
var relatedTarget = { 'relatedTarget': this };
|
var relatedTarget = { relatedTarget: this };
|
||||||
var showEvent = $.Event(Event.SHOW, relatedTarget);
|
var showEvent = $.Event(Event.SHOW, relatedTarget);
|
||||||
|
|
||||||
$(parent).trigger(showEvent);
|
$(parent).trigger(showEvent);
|
||||||
@ -109,6 +109,14 @@ var Dropdown = (function ($) {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}], [{
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
key: '_jQueryInterface',
|
key: '_jQueryInterface',
|
||||||
|
|
||||||
// static
|
// static
|
||||||
@ -142,7 +150,7 @@ var Dropdown = (function ($) {
|
|||||||
|
|
||||||
for (var i = 0; i < toggles.length; i++) {
|
for (var i = 0; i < toggles.length; i++) {
|
||||||
var _parent = Dropdown._getParentFromElement(toggles[i]);
|
var _parent = Dropdown._getParentFromElement(toggles[i]);
|
||||||
var relatedTarget = { 'relatedTarget': toggles[i] };
|
var relatedTarget = { relatedTarget: toggles[i] };
|
||||||
|
|
||||||
if (!$(_parent).hasClass(ClassName.OPEN)) {
|
if (!$(_parent).hasClass(ClassName.OPEN)) {
|
||||||
continue;
|
continue;
|
||||||
|
2
js/dist/dropdown.js.map
vendored
2
js/dist/dropdown.js.map
vendored
File diff suppressed because one or more lines are too long
492
js/dist/modal.js
vendored
Normal file
492
js/dist/modal.js
vendored
Normal file
@ -0,0 +1,492 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();
|
||||||
|
|
||||||
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
* Bootstrap (v4.0.0): modal.js
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Modal = (function ($) {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
var NAME = 'modal';
|
||||||
|
var VERSION = '4.0.0';
|
||||||
|
var DATA_KEY = 'bs.modal';
|
||||||
|
var JQUERY_NO_CONFLICT = $.fn[NAME];
|
||||||
|
var TRANSITION_DURATION = 300;
|
||||||
|
var BACKDROP_TRANSITION_DURATION = 150;
|
||||||
|
|
||||||
|
var Default = {
|
||||||
|
backdrop: true,
|
||||||
|
keyboard: true,
|
||||||
|
show: true
|
||||||
|
};
|
||||||
|
|
||||||
|
var Event = {
|
||||||
|
HIDE: 'hide.bs.modal',
|
||||||
|
HIDDEN: 'hidden.bs.modal',
|
||||||
|
SHOW: 'show.bs.modal',
|
||||||
|
SHOWN: 'shown.bs.modal',
|
||||||
|
DISMISS: 'click.dismiss.bs.modal',
|
||||||
|
KEYDOWN: 'keydown.dismiss.bs.modal',
|
||||||
|
FOCUSIN: 'focusin.bs.modal',
|
||||||
|
RESIZE: 'resize.bs.modal',
|
||||||
|
CLICK: 'click.bs.modal.data-api',
|
||||||
|
MOUSEDOWN: 'mousedown.dismiss.bs.modal',
|
||||||
|
MOUSEUP: 'mouseup.dismiss.bs.modal'
|
||||||
|
};
|
||||||
|
|
||||||
|
var ClassName = {
|
||||||
|
BACKDROP: 'modal-backdrop',
|
||||||
|
OPEN: 'modal-open',
|
||||||
|
FADE: 'fade',
|
||||||
|
IN: 'in'
|
||||||
|
};
|
||||||
|
|
||||||
|
var Selector = {
|
||||||
|
DIALOG: '.modal-dialog',
|
||||||
|
DATA_TOGGLE: '[data-toggle="modal"]',
|
||||||
|
DATA_DISMISS: '[data-dismiss="modal"]',
|
||||||
|
SCROLLBAR_MEASURER: 'modal-scrollbar-measure'
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
var Modal = (function () {
|
||||||
|
function Modal(element, config) {
|
||||||
|
_classCallCheck(this, Modal);
|
||||||
|
|
||||||
|
this._config = config;
|
||||||
|
this._element = element;
|
||||||
|
this._dialog = $(element).find(Selector.DIALOG)[0];
|
||||||
|
this._backdrop = null;
|
||||||
|
this._isShown = false;
|
||||||
|
this._isBodyOverflowing = false;
|
||||||
|
this._ignoreBackdropClick = false;
|
||||||
|
this._originalBodyPadding = 0;
|
||||||
|
this._scrollbarWidth = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
_createClass(Modal, [{
|
||||||
|
key: 'toggle',
|
||||||
|
|
||||||
|
// public
|
||||||
|
|
||||||
|
value: function toggle(relatedTarget) {
|
||||||
|
return this._isShown ? this.hide() : this.show(relatedTarget);
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'show',
|
||||||
|
value: function show(relatedTarget) {
|
||||||
|
var _this = this;
|
||||||
|
|
||||||
|
var showEvent = $.Event(Event.SHOW, {
|
||||||
|
relatedTarget: relatedTarget
|
||||||
|
});
|
||||||
|
|
||||||
|
$(this._element).trigger(showEvent);
|
||||||
|
|
||||||
|
if (this._isShown || showEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._isShown = true;
|
||||||
|
|
||||||
|
this._checkScrollbar();
|
||||||
|
this._setScrollbar();
|
||||||
|
|
||||||
|
$(document.body).addClass(ClassName.OPEN);
|
||||||
|
|
||||||
|
this._setEscapeEvent();
|
||||||
|
this._setResizeEvent();
|
||||||
|
|
||||||
|
$(this._element).on(Event.DISMISS, Selector.DATA_DISMISS, this.hide.bind(this));
|
||||||
|
|
||||||
|
$(this._dialog).on(Event.MOUSEDOWN, function () {
|
||||||
|
$(_this._element).one(Event.MOUSEUP, function (event) {
|
||||||
|
if ($(event.target).is(_this._element)) {
|
||||||
|
that._ignoreBackdropClick = true;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
this._showBackdrop(this._showElement.bind(this, relatedTarget));
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'hide',
|
||||||
|
value: function hide(event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
var hideEvent = $.Event(Event.HIDE);
|
||||||
|
|
||||||
|
$(this._element).trigger(hideEvent);
|
||||||
|
|
||||||
|
if (!this._isShown || hideEvent.isDefaultPrevented()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
this._isShown = false;
|
||||||
|
|
||||||
|
this._setEscapeEvent();
|
||||||
|
this._setResizeEvent();
|
||||||
|
|
||||||
|
$(document).off(Event.FOCUSIN);
|
||||||
|
|
||||||
|
$(this._element).removeClass(ClassName.IN);
|
||||||
|
|
||||||
|
$(this._element).off(Event.DISMISS);
|
||||||
|
$(this._dialog).off(Event.MOUSEDOWN);
|
||||||
|
|
||||||
|
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
|
||||||
|
|
||||||
|
$(this._element).one(Util.TRANSITION_END, this._hideModal.bind(this)).emulateTransitionEnd(TRANSITION_DURATION);
|
||||||
|
} else {
|
||||||
|
this._hideModal();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_showElement',
|
||||||
|
|
||||||
|
// private
|
||||||
|
|
||||||
|
value: function _showElement(relatedTarget) {
|
||||||
|
var _this2 = this;
|
||||||
|
|
||||||
|
var transition = Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE);
|
||||||
|
|
||||||
|
if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
|
||||||
|
// don't move modals dom position
|
||||||
|
document.body.appendChild(this._element);
|
||||||
|
}
|
||||||
|
|
||||||
|
this._element.style.display = 'block';
|
||||||
|
this._element.scrollTop = 0;
|
||||||
|
|
||||||
|
if (transition) {
|
||||||
|
Util.reflow(this._element);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._element).addClass(ClassName.IN);
|
||||||
|
|
||||||
|
this._enforceFocus();
|
||||||
|
|
||||||
|
var shownEvent = $.Event(Event.SHOWN, {
|
||||||
|
relatedTarget: relatedTarget
|
||||||
|
});
|
||||||
|
|
||||||
|
var transitionComplete = function transitionComplete() {
|
||||||
|
_this2._element.focus();
|
||||||
|
$(_this2._element).trigger(shownEvent);
|
||||||
|
};
|
||||||
|
|
||||||
|
if (transition) {
|
||||||
|
$(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION);
|
||||||
|
} else {
|
||||||
|
transitionComplete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_enforceFocus',
|
||||||
|
value: function _enforceFocus() {
|
||||||
|
var _this3 = this;
|
||||||
|
|
||||||
|
$(document).off(Event.FOCUSIN) // guard against infinite focus loop
|
||||||
|
.on(Event.FOCUSIN, function (event) {
|
||||||
|
if (_this3._element !== event.target && !$(_this3._element).has(event.target).length) {
|
||||||
|
_this3._element.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_setEscapeEvent',
|
||||||
|
value: function _setEscapeEvent() {
|
||||||
|
var _this4 = this;
|
||||||
|
|
||||||
|
if (this._isShown && this._config.keyboard) {
|
||||||
|
$(this._element).on(Event.KEYDOWN, function (event) {
|
||||||
|
if (event.which === 27) {
|
||||||
|
_this4.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (!this._isShown) {
|
||||||
|
$(this._element).off(Event.KEYDOWN);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_setResizeEvent',
|
||||||
|
value: function _setResizeEvent() {
|
||||||
|
if (this._isShown) {
|
||||||
|
$(window).on(Event.RESIZE, this._handleUpdate.bind(this));
|
||||||
|
} else {
|
||||||
|
$(window).off(Event.RESIZE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_hideModal',
|
||||||
|
value: function _hideModal() {
|
||||||
|
var _this5 = this;
|
||||||
|
|
||||||
|
this._element.style.display = 'none';
|
||||||
|
this._showBackdrop(function () {
|
||||||
|
$(document.body).removeClass(ClassName.OPEN);
|
||||||
|
_this5._resetAdjustments();
|
||||||
|
_this5._resetScrollbar();
|
||||||
|
$(_this5._element).trigger(Event.HIDDEN);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_removeBackdrop',
|
||||||
|
value: function _removeBackdrop() {
|
||||||
|
if (this._backdrop) {
|
||||||
|
$(this._backdrop).remove();
|
||||||
|
this._backdrop = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_showBackdrop',
|
||||||
|
value: function _showBackdrop(callback) {
|
||||||
|
var _this6 = this;
|
||||||
|
|
||||||
|
var animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
|
||||||
|
|
||||||
|
if (this._isShown && this._config.backdrop) {
|
||||||
|
var doAnimate = Util.supportsTransitionEnd() && animate;
|
||||||
|
|
||||||
|
this._backdrop = document.createElement('div');
|
||||||
|
this._backdrop.className = ClassName.BACKDROP;
|
||||||
|
|
||||||
|
if (animate) {
|
||||||
|
$(this._backdrop).addClass(animate);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop).appendTo(this.$body);
|
||||||
|
|
||||||
|
$(this._element).on(Event.DISMISS, function (event) {
|
||||||
|
if (_this6._ignoreBackdropClick) {
|
||||||
|
_this6._ignoreBackdropClick = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (event.target !== event.currentTarget) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (_this6._config.backdrop === 'static') {
|
||||||
|
_this6._element.focus();
|
||||||
|
} else {
|
||||||
|
_this6.hide();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (doAnimate) {
|
||||||
|
Util.reflow(this._backdrop);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop).addClass(ClassName.IN);
|
||||||
|
|
||||||
|
if (!callback) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!doAnimate) {
|
||||||
|
callback();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
|
||||||
|
} else if (!this._isShown && this._backdrop) {
|
||||||
|
$(this._backdrop).removeClass(ClassName.IN);
|
||||||
|
|
||||||
|
var callbackRemove = function callbackRemove() {
|
||||||
|
_this6._removeBackdrop();
|
||||||
|
if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
if (Util.supportsTransitionEnd() && $(this._element).hasClass(ClassName.FADE)) {
|
||||||
|
$(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION);
|
||||||
|
} else {
|
||||||
|
callbackRemove();
|
||||||
|
}
|
||||||
|
} else if (callback) {
|
||||||
|
callback();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_handleUpdate',
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// the following methods are used to handle overflowing modals
|
||||||
|
// todo (fat): these should probably be refactored out of modal.js
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
value: function _handleUpdate() {
|
||||||
|
this._adjustDialog();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_adjustDialog',
|
||||||
|
value: function _adjustDialog() {
|
||||||
|
var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
|
||||||
|
|
||||||
|
if (!this._isBodyOverflowing && isModalOverflowing) {
|
||||||
|
this._element.style.paddingLeft = this._scrollbarWidth + 'px';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._isBodyOverflowing && !isModalOverflowing) {
|
||||||
|
this._element.style.paddingRight = this._scrollbarWidth + 'px';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_resetAdjustments',
|
||||||
|
value: function _resetAdjustments() {
|
||||||
|
this._element.style.paddingLeft = '';
|
||||||
|
this._element.style.paddingRight = '';
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_checkScrollbar',
|
||||||
|
value: function _checkScrollbar() {
|
||||||
|
var fullWindowWidth = window.innerWidth;
|
||||||
|
if (!fullWindowWidth) {
|
||||||
|
// workaround for missing window.innerWidth in IE8
|
||||||
|
var documentElementRect = document.documentElement.getBoundingClientRect();
|
||||||
|
fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left);
|
||||||
|
}
|
||||||
|
this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth;
|
||||||
|
this._scrollbarWidth = this._getScrollbarWidth();
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_setScrollbar',
|
||||||
|
value: function _setScrollbar() {
|
||||||
|
var bodyPadding = parseInt($(document.body).css('padding-right') || 0, 10);
|
||||||
|
|
||||||
|
this._originalBodyPadding = document.body.style.paddingRight || '';
|
||||||
|
|
||||||
|
if (this._isBodyOverflowing) {
|
||||||
|
document.body.style.paddingRight = bodyPadding + this._scrollbarWidth + 'px';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_resetScrollbar',
|
||||||
|
value: function _resetScrollbar() {
|
||||||
|
document.body.style.paddingRight = this._originalBodyPadding;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_getScrollbarWidth',
|
||||||
|
value: function _getScrollbarWidth() {
|
||||||
|
// thx d.walsh
|
||||||
|
var scrollDiv = document.createElement('div');
|
||||||
|
scrollDiv.className = Selector.SCROLLBAR_MEASURER;
|
||||||
|
document.body.appendChild(scrollDiv);
|
||||||
|
var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;
|
||||||
|
document.body.removeChild(scrollDiv);
|
||||||
|
return scrollbarWidth;
|
||||||
|
}
|
||||||
|
}], [{
|
||||||
|
key: 'VERSION',
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
get: function () {
|
||||||
|
return VERSION;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: 'Default',
|
||||||
|
get: function () {
|
||||||
|
return Default;
|
||||||
|
}
|
||||||
|
}, {
|
||||||
|
key: '_jQueryInterface',
|
||||||
|
|
||||||
|
// static
|
||||||
|
|
||||||
|
value: function _jQueryInterface(config, relatedTarget) {
|
||||||
|
return this.each(function () {
|
||||||
|
var data = $(this).data(DATA_KEY);
|
||||||
|
var _config = $.extend({}, Modal.Default, $(this).data(), typeof config === 'object' && config);
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Modal(this, _config);
|
||||||
|
$(this).data(DATA_KEY, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
data[config](relatedTarget);
|
||||||
|
} else if (_config.show) {
|
||||||
|
data.show(relatedTarget);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}]);
|
||||||
|
|
||||||
|
return Modal;
|
||||||
|
})();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).on(Event.CLICK, Selector.DATA_TOGGLE, function (event) {
|
||||||
|
var _this7 = this;
|
||||||
|
|
||||||
|
var target = undefined;
|
||||||
|
var selector = Util.getSelectorFromElement(this);
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
target = $(selector)[0];
|
||||||
|
}
|
||||||
|
|
||||||
|
var config = $(target).data(DATA_KEY) ? 'toggle' : $.extend({}, $(target).data(), $(this).data());
|
||||||
|
|
||||||
|
if (this.tagName === 'A') {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
|
||||||
|
var $target = $(target).one(Event.SHOW, function (showEvent) {
|
||||||
|
if (showEvent.isDefaultPrevented()) {
|
||||||
|
// only register focus restorer if modal will actually get shown
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
$target.one(Event.HIDDEN, function () {
|
||||||
|
if ($(_this7).is(':visible')) {
|
||||||
|
_this7.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
Modal._jQueryInterface.call($(target), config, this);
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = Modal._jQueryInterface;
|
||||||
|
$.fn[NAME].Constructor = Modal;
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT;
|
||||||
|
return Modal._jQueryInterface;
|
||||||
|
};
|
||||||
|
|
||||||
|
return Modal;
|
||||||
|
})(jQuery);
|
||||||
|
//# sourceMappingURL=modal.js.map
|
1
js/dist/modal.js.map
vendored
Normal file
1
js/dist/modal.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
165
js/dropdown.js
165
js/dropdown.js
@ -1,165 +0,0 @@
|
|||||||
/* ========================================================================
|
|
||||||
* Bootstrap: dropdown.js v3.3.4
|
|
||||||
* http://getbootstrap.com/javascript/#dropdowns
|
|
||||||
* ========================================================================
|
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* ======================================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
+function ($) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
// DROPDOWN CLASS DEFINITION
|
|
||||||
// =========================
|
|
||||||
|
|
||||||
var backdrop = '.dropdown-backdrop'
|
|
||||||
var toggle = '[data-toggle="dropdown"]'
|
|
||||||
var Dropdown = function (element) {
|
|
||||||
$(element).on('click.bs.dropdown', this.toggle)
|
|
||||||
}
|
|
||||||
|
|
||||||
Dropdown.VERSION = '3.3.4'
|
|
||||||
|
|
||||||
function getParent($this) {
|
|
||||||
var selector = $this.attr('data-target')
|
|
||||||
|
|
||||||
if (!selector) {
|
|
||||||
selector = $this.attr('href')
|
|
||||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
|
|
||||||
}
|
|
||||||
|
|
||||||
var $parent = selector && $(selector)
|
|
||||||
|
|
||||||
return $parent && $parent.length ? $parent : $this.parent()
|
|
||||||
}
|
|
||||||
|
|
||||||
function clearMenus(e) {
|
|
||||||
if (e && e.which === 3) return
|
|
||||||
$(backdrop).remove()
|
|
||||||
$(toggle).each(function () {
|
|
||||||
var $this = $(this)
|
|
||||||
var $parent = getParent($this)
|
|
||||||
var relatedTarget = { relatedTarget: this }
|
|
||||||
|
|
||||||
if (!$parent.hasClass('open')) return
|
|
||||||
|
|
||||||
if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
|
|
||||||
|
|
||||||
$parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
|
|
||||||
|
|
||||||
if (e.isDefaultPrevented()) return
|
|
||||||
|
|
||||||
$this.attr('aria-expanded', 'false')
|
|
||||||
$parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
Dropdown.prototype.toggle = function (e) {
|
|
||||||
var $this = $(this)
|
|
||||||
|
|
||||||
if ($this.is('.disabled, :disabled')) return
|
|
||||||
|
|
||||||
var $parent = getParent($this)
|
|
||||||
var isActive = $parent.hasClass('open')
|
|
||||||
|
|
||||||
clearMenus()
|
|
||||||
|
|
||||||
if (!isActive) {
|
|
||||||
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
|
|
||||||
// if mobile we use a backdrop because click events don't delegate
|
|
||||||
$(document.createElement('div'))
|
|
||||||
.addClass('dropdown-backdrop')
|
|
||||||
.insertAfter($(this))
|
|
||||||
.on('click', clearMenus)
|
|
||||||
}
|
|
||||||
|
|
||||||
var relatedTarget = { relatedTarget: this }
|
|
||||||
$parent.trigger(e = $.Event('show.bs.dropdown', relatedTarget))
|
|
||||||
|
|
||||||
if (e.isDefaultPrevented()) return
|
|
||||||
|
|
||||||
$this
|
|
||||||
.trigger('focus')
|
|
||||||
.attr('aria-expanded', 'true')
|
|
||||||
|
|
||||||
$parent
|
|
||||||
.toggleClass('open')
|
|
||||||
.trigger('shown.bs.dropdown', relatedTarget)
|
|
||||||
}
|
|
||||||
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
|
|
||||||
Dropdown.prototype.keydown = function (e) {
|
|
||||||
if (!/(38|40|27|32)/.test(e.which) || /input|textarea/i.test(e.target.tagName)) return
|
|
||||||
|
|
||||||
var $this = $(this)
|
|
||||||
|
|
||||||
e.preventDefault()
|
|
||||||
e.stopPropagation()
|
|
||||||
|
|
||||||
if ($this.is('.disabled, :disabled')) return
|
|
||||||
|
|
||||||
var $parent = getParent($this)
|
|
||||||
var isActive = $parent.hasClass('open')
|
|
||||||
|
|
||||||
if (!isActive && e.which != 27 || isActive && e.which == 27) {
|
|
||||||
if (e.which == 27) $parent.find(toggle).trigger('focus')
|
|
||||||
return $this.trigger('click')
|
|
||||||
}
|
|
||||||
|
|
||||||
var desc = ' li:not(.disabled):visible a'
|
|
||||||
var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
|
|
||||||
|
|
||||||
if (!$items.length) return
|
|
||||||
|
|
||||||
var index = $items.index(e.target)
|
|
||||||
|
|
||||||
if (e.which == 38 && index > 0) index-- // up
|
|
||||||
if (e.which == 40 && index < $items.length - 1) index++ // down
|
|
||||||
if (!~index) index = 0
|
|
||||||
|
|
||||||
$items.eq(index).trigger('focus')
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// DROPDOWN PLUGIN DEFINITION
|
|
||||||
// ==========================
|
|
||||||
|
|
||||||
function Plugin(option) {
|
|
||||||
return this.each(function () {
|
|
||||||
var $this = $(this)
|
|
||||||
var data = $this.data('bs.dropdown')
|
|
||||||
|
|
||||||
if (!data) $this.data('bs.dropdown', (data = new Dropdown(this)))
|
|
||||||
if (typeof option == 'string') data[option].call($this)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
var old = $.fn.dropdown
|
|
||||||
|
|
||||||
$.fn.dropdown = Plugin
|
|
||||||
$.fn.dropdown.Constructor = Dropdown
|
|
||||||
|
|
||||||
|
|
||||||
// DROPDOWN NO CONFLICT
|
|
||||||
// ====================
|
|
||||||
|
|
||||||
$.fn.dropdown.noConflict = function () {
|
|
||||||
$.fn.dropdown = old
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// APPLY TO STANDARD DROPDOWN ELEMENTS
|
|
||||||
// ===================================
|
|
||||||
|
|
||||||
$(document)
|
|
||||||
.on('click.bs.dropdown.data-api', clearMenus)
|
|
||||||
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
|
||||||
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
|
||||||
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
|
|
||||||
.on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
|
|
||||||
|
|
||||||
}(jQuery);
|
|
@ -53,6 +53,13 @@ const Alert = (($) => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// public
|
// public
|
||||||
|
|
||||||
close(element) {
|
close(element) {
|
||||||
|
@ -52,6 +52,14 @@ const Button = (($) => {
|
|||||||
this._element = element
|
this._element = element
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// public
|
// public
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
|
@ -23,7 +23,7 @@ const Carousel = (($) => {
|
|||||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
const TRANSITION_DURATION = 600
|
const TRANSITION_DURATION = 600
|
||||||
|
|
||||||
const Defaults = {
|
const Default = {
|
||||||
interval : 5000,
|
interval : 5000,
|
||||||
keyboard : true,
|
keyboard : true,
|
||||||
slide : false,
|
slide : false,
|
||||||
@ -72,7 +72,6 @@ const Carousel = (($) => {
|
|||||||
class Carousel {
|
class Carousel {
|
||||||
|
|
||||||
constructor(element, config) {
|
constructor(element, config) {
|
||||||
|
|
||||||
this._items = null
|
this._items = null
|
||||||
this._interval = null
|
this._interval = null
|
||||||
this._activeElement = null
|
this._activeElement = null
|
||||||
@ -85,7 +84,17 @@ const Carousel = (($) => {
|
|||||||
this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]
|
this._indicatorsElement = $(this._element).find(Selector.INDICATORS)[0]
|
||||||
|
|
||||||
this._addEventListeners()
|
this._addEventListeners()
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
static get Default() {
|
||||||
|
return Default
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -331,7 +340,7 @@ const Carousel = (($) => {
|
|||||||
static _jQueryInterface(config) {
|
static _jQueryInterface(config) {
|
||||||
return this.each(function () {
|
return this.each(function () {
|
||||||
let data = $(this).data(DATA_KEY)
|
let data = $(this).data(DATA_KEY)
|
||||||
let _config = $.extend({}, Defaults, $(this).data())
|
let _config = $.extend({}, Default, $(this).data())
|
||||||
|
|
||||||
if (typeof config === 'object') {
|
if (typeof config === 'object') {
|
||||||
$.extend(_config, config)
|
$.extend(_config, config)
|
||||||
|
@ -23,7 +23,7 @@ const Collapse = (($) => {
|
|||||||
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
const TRANSITION_DURATION = 600
|
const TRANSITION_DURATION = 600
|
||||||
|
|
||||||
const Defaults = {
|
const Default = {
|
||||||
toggle : true,
|
toggle : true,
|
||||||
parent : null
|
parent : null
|
||||||
}
|
}
|
||||||
@ -63,10 +63,9 @@ const Collapse = (($) => {
|
|||||||
class Collapse {
|
class Collapse {
|
||||||
|
|
||||||
constructor(element, config) {
|
constructor(element, config) {
|
||||||
|
|
||||||
this._isTransitioning = false
|
this._isTransitioning = false
|
||||||
this._element = element
|
this._element = element
|
||||||
this._config = $.extend({}, Defaults, config)
|
this._config = $.extend({}, Default, config)
|
||||||
this._triggerArray = $.makeArray($(
|
this._triggerArray = $.makeArray($(
|
||||||
`[data-toggle="collapse"][href="#${element.id}"],` +
|
`[data-toggle="collapse"][href="#${element.id}"],` +
|
||||||
`[data-toggle="collapse"][data-target="#${element.id}"]`
|
`[data-toggle="collapse"][data-target="#${element.id}"]`
|
||||||
@ -81,9 +80,20 @@ const Collapse = (($) => {
|
|||||||
if (this._config.toggle) {
|
if (this._config.toggle) {
|
||||||
this.toggle()
|
this.toggle()
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
static get Default() {
|
||||||
|
return Default
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// public
|
// public
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
@ -284,7 +294,7 @@ const Collapse = (($) => {
|
|||||||
let data = $this.data(DATA_KEY)
|
let data = $this.data(DATA_KEY)
|
||||||
let _config = $.extend(
|
let _config = $.extend(
|
||||||
{},
|
{},
|
||||||
Defaults,
|
Default,
|
||||||
$this.data(),
|
$this.data(),
|
||||||
typeof config === 'object' && config
|
typeof config === 'object' && config
|
||||||
)
|
)
|
||||||
|
@ -62,6 +62,14 @@ const Dropdown = (($) => {
|
|||||||
$(element).on(Event.CLICK, this.toggle)
|
$(element).on(Event.CLICK, this.toggle)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// public
|
// public
|
||||||
|
|
||||||
toggle() {
|
toggle() {
|
||||||
|
492
js/src/modal.js
Normal file
492
js/src/modal.js
Normal file
@ -0,0 +1,492 @@
|
|||||||
|
import Util from './util'
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
* Bootstrap (v4.0.0): modal.js
|
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
||||||
|
* --------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const Modal = (($) => {
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Constants
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
const NAME = 'modal'
|
||||||
|
const VERSION = '4.0.0'
|
||||||
|
const DATA_KEY = 'bs.modal'
|
||||||
|
const JQUERY_NO_CONFLICT = $.fn[NAME]
|
||||||
|
const TRANSITION_DURATION = 300
|
||||||
|
const BACKDROP_TRANSITION_DURATION = 150
|
||||||
|
|
||||||
|
const Default = {
|
||||||
|
backdrop : true,
|
||||||
|
keyboard : true,
|
||||||
|
show : true
|
||||||
|
}
|
||||||
|
|
||||||
|
const Event = {
|
||||||
|
HIDE : 'hide.bs.modal',
|
||||||
|
HIDDEN : 'hidden.bs.modal',
|
||||||
|
SHOW : 'show.bs.modal',
|
||||||
|
SHOWN : 'shown.bs.modal',
|
||||||
|
DISMISS : 'click.dismiss.bs.modal',
|
||||||
|
KEYDOWN : 'keydown.dismiss.bs.modal',
|
||||||
|
FOCUSIN : 'focusin.bs.modal',
|
||||||
|
RESIZE : 'resize.bs.modal',
|
||||||
|
CLICK : 'click.bs.modal.data-api',
|
||||||
|
MOUSEDOWN : 'mousedown.dismiss.bs.modal',
|
||||||
|
MOUSEUP : 'mouseup.dismiss.bs.modal'
|
||||||
|
}
|
||||||
|
|
||||||
|
const ClassName = {
|
||||||
|
BACKDROP : 'modal-backdrop',
|
||||||
|
OPEN : 'modal-open',
|
||||||
|
FADE : 'fade',
|
||||||
|
IN : 'in'
|
||||||
|
}
|
||||||
|
|
||||||
|
const Selector = {
|
||||||
|
DIALOG : '.modal-dialog',
|
||||||
|
DATA_TOGGLE : '[data-toggle="modal"]',
|
||||||
|
DATA_DISMISS : '[data-dismiss="modal"]',
|
||||||
|
SCROLLBAR_MEASURER : 'modal-scrollbar-measure'
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Class Definition
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
class Modal {
|
||||||
|
|
||||||
|
constructor(element, config) {
|
||||||
|
this._config = config
|
||||||
|
this._element = element
|
||||||
|
this._dialog = $(element).find(Selector.DIALOG)[0]
|
||||||
|
this._backdrop = null
|
||||||
|
this._isShown = false
|
||||||
|
this._isBodyOverflowing = false
|
||||||
|
this._ignoreBackdropClick = false
|
||||||
|
this._originalBodyPadding = 0
|
||||||
|
this._scrollbarWidth = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// getters
|
||||||
|
|
||||||
|
static get VERSION() {
|
||||||
|
return VERSION
|
||||||
|
}
|
||||||
|
|
||||||
|
static get Default() {
|
||||||
|
return Default
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// public
|
||||||
|
|
||||||
|
toggle(relatedTarget) {
|
||||||
|
return this._isShown ? this.hide() : this.show(relatedTarget)
|
||||||
|
}
|
||||||
|
|
||||||
|
show(relatedTarget) {
|
||||||
|
let showEvent = $.Event(Event.SHOW, {
|
||||||
|
relatedTarget: relatedTarget
|
||||||
|
})
|
||||||
|
|
||||||
|
$(this._element).trigger(showEvent)
|
||||||
|
|
||||||
|
if (this._isShown || showEvent.isDefaultPrevented()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this._isShown = true
|
||||||
|
|
||||||
|
this._checkScrollbar()
|
||||||
|
this._setScrollbar()
|
||||||
|
|
||||||
|
$(document.body).addClass(ClassName.OPEN)
|
||||||
|
|
||||||
|
this._setEscapeEvent()
|
||||||
|
this._setResizeEvent()
|
||||||
|
|
||||||
|
$(this._element).on(
|
||||||
|
Event.DISMISS,
|
||||||
|
Selector.DATA_DISMISS,
|
||||||
|
this.hide.bind(this)
|
||||||
|
)
|
||||||
|
|
||||||
|
$(this._dialog).on(Event.MOUSEDOWN, () => {
|
||||||
|
$(this._element).one(Event.MOUSEUP, (event) => {
|
||||||
|
if ($(event.target).is(this._element)) {
|
||||||
|
that._ignoreBackdropClick = true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
this._showBackdrop(
|
||||||
|
this._showElement.bind(this, relatedTarget)
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
hide(event) {
|
||||||
|
if (event) {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
let hideEvent = $.Event(Event.HIDE)
|
||||||
|
|
||||||
|
$(this._element).trigger(hideEvent)
|
||||||
|
|
||||||
|
if (!this._isShown || hideEvent.isDefaultPrevented()) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
this._isShown = false
|
||||||
|
|
||||||
|
this._setEscapeEvent()
|
||||||
|
this._setResizeEvent()
|
||||||
|
|
||||||
|
$(document).off(Event.FOCUSIN)
|
||||||
|
|
||||||
|
$(this._element).removeClass(ClassName.IN)
|
||||||
|
|
||||||
|
$(this._element).off(Event.DISMISS)
|
||||||
|
$(this._dialog).off(Event.MOUSEDOWN)
|
||||||
|
|
||||||
|
if (Util.supportsTransitionEnd() &&
|
||||||
|
($(this._element).hasClass(ClassName.FADE))) {
|
||||||
|
|
||||||
|
$(this._element)
|
||||||
|
.one(Util.TRANSITION_END, this._hideModal.bind(this))
|
||||||
|
.emulateTransitionEnd(TRANSITION_DURATION)
|
||||||
|
} else {
|
||||||
|
this._hideModal()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// private
|
||||||
|
|
||||||
|
_showElement(relatedTarget) {
|
||||||
|
let transition = Util.supportsTransitionEnd() &&
|
||||||
|
$(this._element).hasClass(ClassName.FADE)
|
||||||
|
|
||||||
|
if (!this._element.parentNode ||
|
||||||
|
(this._element.parentNode.nodeType !== Node.ELEMENT_NODE)) {
|
||||||
|
// don't move modals dom position
|
||||||
|
document.body.appendChild(this._element)
|
||||||
|
}
|
||||||
|
|
||||||
|
this._element.style.display = 'block'
|
||||||
|
this._element.scrollTop = 0
|
||||||
|
|
||||||
|
if (transition) {
|
||||||
|
Util.reflow(this._element)
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._element).addClass(ClassName.IN)
|
||||||
|
|
||||||
|
this._enforceFocus()
|
||||||
|
|
||||||
|
let shownEvent = $.Event(Event.SHOWN, {
|
||||||
|
relatedTarget: relatedTarget
|
||||||
|
})
|
||||||
|
|
||||||
|
let transitionComplete = () => {
|
||||||
|
this._element.focus()
|
||||||
|
$(this._element).trigger(shownEvent)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (transition) {
|
||||||
|
$(this._dialog)
|
||||||
|
.one(Util.TRANSITION_END, transitionComplete)
|
||||||
|
.emulateTransitionEnd(TRANSITION_DURATION)
|
||||||
|
} else {
|
||||||
|
transitionComplete()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_enforceFocus() {
|
||||||
|
$(document)
|
||||||
|
.off(Event.FOCUSIN) // guard against infinite focus loop
|
||||||
|
.on(Event.FOCUSIN, (event) => {
|
||||||
|
if (this._element !== event.target &&
|
||||||
|
(!$(this._element).has(event.target).length)) {
|
||||||
|
this._element.focus()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
_setEscapeEvent() {
|
||||||
|
if (this._isShown && this._config.keyboard) {
|
||||||
|
$(this._element).on(Event.KEYDOWN, (event) => {
|
||||||
|
if (event.which === 27) {
|
||||||
|
this.hide()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
} else if (!this._isShown) {
|
||||||
|
$(this._element).off(Event.KEYDOWN)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_setResizeEvent() {
|
||||||
|
if (this._isShown) {
|
||||||
|
$(window).on(Event.RESIZE, this._handleUpdate.bind(this))
|
||||||
|
} else {
|
||||||
|
$(window).off(Event.RESIZE)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_hideModal() {
|
||||||
|
this._element.style.display = 'none'
|
||||||
|
this._showBackdrop(() => {
|
||||||
|
$(document.body).removeClass(ClassName.OPEN)
|
||||||
|
this._resetAdjustments()
|
||||||
|
this._resetScrollbar()
|
||||||
|
$(this._element).trigger(Event.HIDDEN)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
_removeBackdrop() {
|
||||||
|
if (this._backdrop) {
|
||||||
|
$(this._backdrop).remove()
|
||||||
|
this._backdrop = null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_showBackdrop(callback) {
|
||||||
|
let animate = $(this._element).hasClass(ClassName.FADE) ?
|
||||||
|
ClassName.FADE : ''
|
||||||
|
|
||||||
|
if (this._isShown && this._config.backdrop) {
|
||||||
|
let doAnimate = Util.supportsTransitionEnd() && animate
|
||||||
|
|
||||||
|
this._backdrop = document.createElement('div')
|
||||||
|
this._backdrop.className = ClassName.BACKDROP
|
||||||
|
|
||||||
|
if (animate) {
|
||||||
|
$(this._backdrop).addClass(animate)
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop).appendTo(this.$body)
|
||||||
|
|
||||||
|
$(this._element).on(Event.DISMISS, (event) => {
|
||||||
|
if (this._ignoreBackdropClick) {
|
||||||
|
this._ignoreBackdropClick = false
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (event.target !== event.currentTarget) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if (this._config.backdrop === 'static') {
|
||||||
|
this._element.focus()
|
||||||
|
} else {
|
||||||
|
this.hide()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
if (doAnimate) {
|
||||||
|
Util.reflow(this._backdrop)
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop).addClass(ClassName.IN)
|
||||||
|
|
||||||
|
if (!callback) {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!doAnimate) {
|
||||||
|
callback()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
$(this._backdrop)
|
||||||
|
.one(Util.TRANSITION_END, callback)
|
||||||
|
.emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
|
||||||
|
|
||||||
|
} else if (!this._isShown && this._backdrop) {
|
||||||
|
$(this._backdrop).removeClass(ClassName.IN)
|
||||||
|
|
||||||
|
let callbackRemove = () => {
|
||||||
|
this._removeBackdrop()
|
||||||
|
if (callback) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Util.supportsTransitionEnd() &&
|
||||||
|
($(this._element).hasClass(ClassName.FADE))) {
|
||||||
|
$(this._backdrop)
|
||||||
|
.one(Util.TRANSITION_END, callbackRemove)
|
||||||
|
.emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
|
||||||
|
} else {
|
||||||
|
callbackRemove()
|
||||||
|
}
|
||||||
|
|
||||||
|
} else if (callback) {
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
// the following methods are used to handle overflowing modals
|
||||||
|
// todo (fat): these should probably be refactored out of modal.js
|
||||||
|
// ----------------------------------------------------------------------
|
||||||
|
|
||||||
|
_handleUpdate() {
|
||||||
|
this._adjustDialog()
|
||||||
|
}
|
||||||
|
|
||||||
|
_adjustDialog() {
|
||||||
|
let isModalOverflowing =
|
||||||
|
this._element.scrollHeight > document.documentElement.clientHeight
|
||||||
|
|
||||||
|
if (!this._isBodyOverflowing && isModalOverflowing) {
|
||||||
|
this._element.style.paddingLeft = this._scrollbarWidth + 'px'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this._isBodyOverflowing && !isModalOverflowing) {
|
||||||
|
this._element.style.paddingRight = this._scrollbarWidth + 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_resetAdjustments() {
|
||||||
|
this._element.style.paddingLeft = ''
|
||||||
|
this._element.style.paddingRight = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
_checkScrollbar() {
|
||||||
|
let fullWindowWidth = window.innerWidth
|
||||||
|
if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
|
||||||
|
let documentElementRect = document.documentElement.getBoundingClientRect()
|
||||||
|
fullWindowWidth =
|
||||||
|
documentElementRect.right - Math.abs(documentElementRect.left)
|
||||||
|
}
|
||||||
|
this._isBodyOverflowing = document.body.clientWidth < fullWindowWidth
|
||||||
|
this._scrollbarWidth = this._getScrollbarWidth()
|
||||||
|
}
|
||||||
|
|
||||||
|
_setScrollbar() {
|
||||||
|
let bodyPadding = parseInt(
|
||||||
|
$(document.body).css('padding-right') || 0,
|
||||||
|
10
|
||||||
|
)
|
||||||
|
|
||||||
|
this._originalBodyPadding = document.body.style.paddingRight || ''
|
||||||
|
|
||||||
|
if (this._isBodyOverflowing) {
|
||||||
|
document.body.style.paddingRight =
|
||||||
|
bodyPadding + this._scrollbarWidth + 'px'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_resetScrollbar() {
|
||||||
|
document.body.style.paddingRight = this._originalBodyPadding
|
||||||
|
}
|
||||||
|
|
||||||
|
_getScrollbarWidth() { // thx d.walsh
|
||||||
|
let scrollDiv = document.createElement('div')
|
||||||
|
scrollDiv.className = Selector.SCROLLBAR_MEASURER
|
||||||
|
document.body.appendChild(scrollDiv)
|
||||||
|
let scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth
|
||||||
|
document.body.removeChild(scrollDiv)
|
||||||
|
return scrollbarWidth
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// static
|
||||||
|
|
||||||
|
static _jQueryInterface(config, relatedTarget) {
|
||||||
|
return this.each(function () {
|
||||||
|
let data = $(this).data(DATA_KEY)
|
||||||
|
let _config = $.extend(
|
||||||
|
{},
|
||||||
|
Modal.Default,
|
||||||
|
$(this).data(),
|
||||||
|
typeof config === 'object' && config
|
||||||
|
)
|
||||||
|
|
||||||
|
if (!data) {
|
||||||
|
data = new Modal(this, _config)
|
||||||
|
$(this).data(DATA_KEY, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (typeof config === 'string') {
|
||||||
|
data[config](relatedTarget)
|
||||||
|
|
||||||
|
} else if (_config.show) {
|
||||||
|
data.show(relatedTarget)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* Data Api implementation
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$(document).on(Event.CLICK, Selector.DATA_TOGGLE, function (event) {
|
||||||
|
let target
|
||||||
|
let selector = Util.getSelectorFromElement(this)
|
||||||
|
|
||||||
|
if (selector) {
|
||||||
|
target = $(selector)[0]
|
||||||
|
}
|
||||||
|
|
||||||
|
let config = $(target).data(DATA_KEY) ?
|
||||||
|
'toggle' : $.extend({}, $(target).data(), $(this).data())
|
||||||
|
|
||||||
|
if (this.tagName === 'A') {
|
||||||
|
event.preventDefault()
|
||||||
|
}
|
||||||
|
|
||||||
|
let $target = $(target).one(Event.SHOW, (showEvent) => {
|
||||||
|
if (showEvent.isDefaultPrevented()) {
|
||||||
|
// only register focus restorer if modal will actually get shown
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
$target.one(Event.HIDDEN, () => {
|
||||||
|
if ($(this).is(':visible')) {
|
||||||
|
this.focus()
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
Modal._jQueryInterface.call($(target), config, this)
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
* jQuery
|
||||||
|
* ------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
$.fn[NAME] = Modal._jQueryInterface
|
||||||
|
$.fn[NAME].Constructor = Modal
|
||||||
|
$.fn[NAME].noConflict = function () {
|
||||||
|
$.fn[NAME] = JQUERY_NO_CONFLICT
|
||||||
|
return Modal._jQueryInterface
|
||||||
|
}
|
||||||
|
|
||||||
|
return Modal
|
||||||
|
|
||||||
|
})(jQuery)
|
||||||
|
|
||||||
|
export default Modal
|
@ -136,14 +136,13 @@
|
|||||||
<script src="../../js/dist/carousel.js"></script>
|
<script src="../../js/dist/carousel.js"></script>
|
||||||
<script src="../../js/dist/collapse.js"></script>
|
<script src="../../js/dist/collapse.js"></script>
|
||||||
<script src="../../js/dist/dropdown.js"></script>
|
<script src="../../js/dist/dropdown.js"></script>
|
||||||
|
<script src="../../js/dist/modal.js"></script>
|
||||||
|
|
||||||
<!-- Old Plugin sources -->
|
<!-- Old Plugin sources -->
|
||||||
<script src="../../js/modal.js"></script>
|
|
||||||
<script src="../../js/scrollspy.js"></script>
|
<script src="../../js/scrollspy.js"></script>
|
||||||
<script src="../../js/tab.js"></script>
|
<script src="../../js/tab.js"></script>
|
||||||
<script src="../../js/tooltip.js"></script>
|
<script src="../../js/tooltip.js"></script>
|
||||||
<script src="../../js/popover.js"></script>
|
<script src="../../js/popover.js"></script>
|
||||||
<script src="../../js/affix.js"></script>
|
|
||||||
|
|
||||||
<!-- Unit tests -->
|
<!-- Unit tests -->
|
||||||
<script src="unit/alert.js"></script>
|
<script src="unit/alert.js"></script>
|
||||||
@ -156,7 +155,6 @@
|
|||||||
<script src="unit/tab.js"></script>
|
<script src="unit/tab.js"></script>
|
||||||
<script src="unit/tooltip.js"></script>
|
<script src="unit/tooltip.js"></script>
|
||||||
<script src="unit/popover.js"></script>
|
<script src="unit/popover.js"></script>
|
||||||
<script src="unit/affix.js"></script>
|
|
||||||
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
@ -1,107 +0,0 @@
|
|||||||
$(function () {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
QUnit.module('affix plugin')
|
|
||||||
|
|
||||||
QUnit.test('should be defined on jquery object', function (assert) {
|
|
||||||
assert.expect(1)
|
|
||||||
assert.ok($(document.body).affix, 'affix method is defined')
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.module('affix', {
|
|
||||||
beforeEach: function () {
|
|
||||||
// Run all tests in noConflict mode -- it's the only way to ensure that the plugin works in noConflict mode
|
|
||||||
$.fn.bootstrapAffix = $.fn.affix.noConflict()
|
|
||||||
},
|
|
||||||
afterEach: function () {
|
|
||||||
$.fn.affix = $.fn.bootstrapAffix
|
|
||||||
delete $.fn.bootstrapAffix
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.test('should provide no conflict', function (assert) {
|
|
||||||
assert.expect(1)
|
|
||||||
assert.strictEqual($.fn.affix, undefined, 'affix was set back to undefined (org value)')
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.test('should return jquery collection containing the element', function (assert) {
|
|
||||||
assert.expect(2)
|
|
||||||
var $el = $('<div/>')
|
|
||||||
var $affix = $el.bootstrapAffix()
|
|
||||||
assert.ok($affix instanceof $, 'returns jquery collection')
|
|
||||||
assert.strictEqual($affix[0], $el[0], 'collection contains element')
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.test('should exit early if element is not visible', function (assert) {
|
|
||||||
assert.expect(1)
|
|
||||||
var $affix = $('<div style="display: none"/>').bootstrapAffix()
|
|
||||||
$affix.data('bs.affix').checkPosition()
|
|
||||||
assert.ok(!$affix.hasClass('affix'), 'affix class was not added')
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.test('should trigger affixed event after affix', function (assert) {
|
|
||||||
assert.expect(2)
|
|
||||||
var done = assert.async()
|
|
||||||
|
|
||||||
var templateHTML = '<div id="affixTarget">'
|
|
||||||
+ '<ul>'
|
|
||||||
+ '<li>Please affix</li>'
|
|
||||||
+ '<li>And unaffix</li>'
|
|
||||||
+ '</ul>'
|
|
||||||
+ '</div>'
|
|
||||||
+ '<div id="affixAfter" style="height: 20000px; display: block;"/>'
|
|
||||||
$(templateHTML).appendTo(document.body)
|
|
||||||
|
|
||||||
$('#affixTarget').bootstrapAffix({
|
|
||||||
offset: $('#affixTarget ul').position()
|
|
||||||
})
|
|
||||||
|
|
||||||
$('#affixTarget')
|
|
||||||
.on('affix.bs.affix', function () {
|
|
||||||
assert.ok(true, 'affix event fired')
|
|
||||||
}).on('affixed.bs.affix', function () {
|
|
||||||
assert.ok(true, 'affixed event fired')
|
|
||||||
$('#affixTarget, #affixAfter').remove()
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
|
|
||||||
setTimeout(function () {
|
|
||||||
window.scrollTo(0, document.body.scrollHeight)
|
|
||||||
|
|
||||||
setTimeout(function () {
|
|
||||||
window.scroll(0, 0)
|
|
||||||
}, 16) // for testing in a browser
|
|
||||||
}, 0)
|
|
||||||
})
|
|
||||||
|
|
||||||
QUnit.test('should affix-top when scrolling up to offset when parent has padding', function (assert) {
|
|
||||||
assert.expect(1)
|
|
||||||
var done = assert.async()
|
|
||||||
|
|
||||||
var templateHTML = '<div id="padding-offset" style="padding-top: 20px;">'
|
|
||||||
+ '<div id="affixTopTarget">'
|
|
||||||
+ '<p>Testing affix-top class is added</p>'
|
|
||||||
+ '</div>'
|
|
||||||
+ '<div style="height: 1000px; display: block;"/>'
|
|
||||||
+ '</div>'
|
|
||||||
$(templateHTML).appendTo(document.body)
|
|
||||||
|
|
||||||
$('#affixTopTarget')
|
|
||||||
.bootstrapAffix({
|
|
||||||
offset: { top: 120, bottom: 0 }
|
|
||||||
})
|
|
||||||
.on('affixed-top.bs.affix', function () {
|
|
||||||
assert.ok($('#affixTopTarget').hasClass('affix-top'), 'affix-top class applied')
|
|
||||||
$('#padding-offset').remove()
|
|
||||||
done()
|
|
||||||
})
|
|
||||||
|
|
||||||
setTimeout(function () {
|
|
||||||
window.scrollTo(0, document.body.scrollHeight)
|
|
||||||
|
|
||||||
setTimeout(function () {
|
|
||||||
window.scroll(0, 119)
|
|
||||||
}, 250)
|
|
||||||
}, 250)
|
|
||||||
})
|
|
||||||
})
|
|
@ -34,7 +34,7 @@ $(function () {
|
|||||||
|
|
||||||
QUnit.test('should expose defaults var for settings', function (assert) {
|
QUnit.test('should expose defaults var for settings', function (assert) {
|
||||||
assert.expect(1)
|
assert.expect(1)
|
||||||
assert.ok($.fn.bootstrapModal.Constructor.DEFAULTS, 'default object exposed')
|
assert.ok($.fn.bootstrapModal.Constructor.Default, 'default object exposed')
|
||||||
})
|
})
|
||||||
|
|
||||||
QUnit.test('should insert into dom when show method is called', function (assert) {
|
QUnit.test('should insert into dom when show method is called', function (assert) {
|
||||||
|
@ -1,317 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Affix</title>
|
|
||||||
<link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
|
|
||||||
|
|
||||||
<style>
|
|
||||||
html {
|
|
||||||
position: relative;
|
|
||||||
min-height: 100%;
|
|
||||||
}
|
|
||||||
body {
|
|
||||||
/* Margin bottom by footer height */
|
|
||||||
margin-bottom: 200px;
|
|
||||||
}
|
|
||||||
.footer {
|
|
||||||
position: absolute;
|
|
||||||
bottom: 0;
|
|
||||||
width: 100%;
|
|
||||||
/* Set the fixed height of the footer here */
|
|
||||||
height: 200px;
|
|
||||||
background-color: #f5f5f5;
|
|
||||||
}
|
|
||||||
/* Test Styles */
|
|
||||||
.affixed-element-top.affix {
|
|
||||||
top: 10px;
|
|
||||||
}
|
|
||||||
.affixed-element-top.affix-bottom {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom.affix {
|
|
||||||
bottom: 10px;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom.affix-bottom {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.grow-btn, .shrink-btn {
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
.grow-btn {
|
|
||||||
background-color: #2ECC40;
|
|
||||||
}
|
|
||||||
.grow-btn:hover {
|
|
||||||
background-color: #3D9970;
|
|
||||||
}
|
|
||||||
.shrink-btn {
|
|
||||||
background-color: #FF4136;
|
|
||||||
}
|
|
||||||
.shrink-btn:hover {
|
|
||||||
background-color: #85144B;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="page-header js-page-header">
|
|
||||||
<h1>Affix <small>Bootstrap Visual Test</small></h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
<ul class="list-group affixed-element-top js-affixed-element-top">
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6 js-content">
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
<ul class="list-group affixed-element-bottom js-affixed-element-bottom">
|
|
||||||
<li class="list-group-item">Sit necessitatibus aspernatur.</li>
|
|
||||||
<li class="list-group-item">Adipisicing alias dolor!</li>
|
|
||||||
<li class="list-group-item">Ipsum molestiae impedit.</li>
|
|
||||||
<li class="list-group-item">Amet quis iste?</li>
|
|
||||||
<li class="list-group-item">Ipsum quaerat porro.</li>
|
|
||||||
<li class="list-group-item">Elit lorem libero.</li>
|
|
||||||
<li class="list-group-item">Ipsum dolore facilis.</li>
|
|
||||||
<li class="list-group-item">Elit ad atque.</li>
|
|
||||||
<li class="list-group-item">Dolor amet sequi!</li>
|
|
||||||
<li class="list-group-item">Consectetur voluptatum facilis!</li>
|
|
||||||
<li class="list-group-item">Sit neque eligendi?</li>
|
|
||||||
<li class="list-group-item">Amet fuga consectetur!</li>
|
|
||||||
<li class="list-group-item">Amet molestias repellat!</li>
|
|
||||||
<li class="list-group-item">Consectetur minima repellendus.</li>
|
|
||||||
<li class="list-group-item grow-btn js-grow-btn">Grow content</li>
|
|
||||||
<li class="list-group-item shrink-btn js-shrink-btn">Shrink content</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="footer js-footer">
|
|
||||||
<div class="container">
|
|
||||||
<p class="text-muted">Place sticky footer content here.</p>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
<!-- JavaScript Includes -->
|
|
||||||
<script src="../vendor/jquery.min.js"></script>
|
|
||||||
<script src="../../transition.js"></script>
|
|
||||||
<script src="../../affix.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- JavaScript Test -->
|
|
||||||
<script>
|
|
||||||
$(function () {
|
|
||||||
$('.js-affixed-element-top').affix({
|
|
||||||
offset: {
|
|
||||||
top: $('.js-page-header').outerHeight(true) - 10
|
|
||||||
, bottom: $('.js-footer').outerHeight(true) + 10
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// todo(fat): sux you have to do this.
|
|
||||||
.on('affix.bs.affix', function (e) {
|
|
||||||
$(e.target).width(e.target.offsetWidth)
|
|
||||||
})
|
|
||||||
|
|
||||||
$('.js-affixed-element-bottom').affix({
|
|
||||||
offset: {
|
|
||||||
bottom: $('.js-footer').outerHeight(true) + 10
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
$('.js-grow-btn').on('click', function() {
|
|
||||||
$('.js-content').append('<p>Ipsum corrupti ipsam est temporibus.</p>')
|
|
||||||
})
|
|
||||||
$('.js-shrink-btn').on('click', function() {
|
|
||||||
$('.js-content p').last().remove()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,306 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<title>Affix</title>
|
|
||||||
<link rel="stylesheet" href="../../../dist/css/bootstrap.min.css">
|
|
||||||
|
|
||||||
<style>
|
|
||||||
/* Test Styles */
|
|
||||||
.affixed-element-top.affix {
|
|
||||||
top: 10px;
|
|
||||||
}
|
|
||||||
.affixed-element-top.affix-bottom {
|
|
||||||
position: absolute;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom {
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom.affix {
|
|
||||||
bottom: 10px;
|
|
||||||
}
|
|
||||||
.affixed-element-bottom.affix-bottom {
|
|
||||||
position: relative;
|
|
||||||
}
|
|
||||||
.grow-btn, .shrink-btn {
|
|
||||||
color: #FFF;
|
|
||||||
}
|
|
||||||
.grow-btn {
|
|
||||||
background-color: #2ECC40;
|
|
||||||
}
|
|
||||||
.grow-btn:hover {
|
|
||||||
background-color: #3D9970;
|
|
||||||
}
|
|
||||||
.shrink-btn {
|
|
||||||
background-color: #FF4136;
|
|
||||||
}
|
|
||||||
.shrink-btn:hover {
|
|
||||||
background-color: #85144B;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
|
||||||
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
|
||||||
<!--[if lt IE 9]>
|
|
||||||
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
|
||||||
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
|
||||||
<![endif]-->
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div class="container">
|
|
||||||
|
|
||||||
<div class="page-header js-page-header">
|
|
||||||
<h1>Affix <small>Bootstrap Visual Test</small></h1>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
<ul class="list-group affixed-element-top js-affixed-element-top">
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Cras justo odio</li>
|
|
||||||
<li class="list-group-item">Dapibus ac facilisis in</li>
|
|
||||||
<li class="list-group-item">Morbi leo risus</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
<li class="list-group-item">Vestibulum at eros</li>
|
|
||||||
<li class="list-group-item">Porta ac consectetur ac</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-6 js-content">
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-3">
|
|
||||||
<ul class="list-group affixed-element-bottom js-affixed-element-bottom">
|
|
||||||
<li class="list-group-item">Sit necessitatibus aspernatur.</li>
|
|
||||||
<li class="list-group-item">Adipisicing alias dolor!</li>
|
|
||||||
<li class="list-group-item">Ipsum molestiae impedit.</li>
|
|
||||||
<li class="list-group-item">Amet quis iste?</li>
|
|
||||||
<li class="list-group-item">Ipsum quaerat porro.</li>
|
|
||||||
<li class="list-group-item">Elit lorem libero.</li>
|
|
||||||
<li class="list-group-item">Ipsum dolore facilis.</li>
|
|
||||||
<li class="list-group-item">Elit ad atque.</li>
|
|
||||||
<li class="list-group-item">Dolor amet sequi!</li>
|
|
||||||
<li class="list-group-item">Consectetur voluptatum facilis!</li>
|
|
||||||
<li class="list-group-item">Sit neque eligendi?</li>
|
|
||||||
<li class="list-group-item">Amet fuga consectetur!</li>
|
|
||||||
<li class="list-group-item">Amet molestias repellat!</li>
|
|
||||||
<li class="list-group-item">Consectetur minima repellendus.</li>
|
|
||||||
<li class="list-group-item grow-btn js-grow-btn">Grow content</li>
|
|
||||||
<li class="list-group-item shrink-btn js-shrink-btn">Shrink content</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="col-md-12 js-footer">
|
|
||||||
<hr>
|
|
||||||
|
|
||||||
<p>Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Duis mollis, est non commodo luctus, nisi erat porttitor ligula, eget lacinia odio sem nec elit. Donec ullamcorper nulla non metus auctor fringilla. Nulla vitae elit libero, a pharetra augue. Maecenas sed diam eget risus varius blandit sit amet non magna.</p>
|
|
||||||
|
|
||||||
<p>Nullam id dolor id nibh ultricies vehicula ut id elit. Etiam porta sem malesuada magna mollis euismod. Cras justo odio, dapibus ac facilisis in, egestas eget quam. Curabitur blandit tempus porttitor. Cras justo odio, dapibus ac facilisis in, egestas eget quam.</p>
|
|
||||||
|
|
||||||
<p>Sed posuere consectetur est at lobortis. Maecenas faucibus mollis interdum. Vivamus sagittis lacus vel augue laoreet rutrum faucibus dolor auctor. Nulla vitae elit libero, a pharetra augue. Nulla vitae elit libero, a pharetra augue.</p>
|
|
||||||
|
|
||||||
<p>Aenean lacinia bibendum nulla sed consectetur. Aenean eu leo quam. Pellentesque ornare sem lacinia quam venenatis vestibulum. Nulla vitae elit libero, a pharetra augue. Fusce dapibus, tellus ac cursus commodo, tortor mauris condimentum nibh, ut fermentum massa justo sit amet risus. Cras mattis consectetur purus sit amet fermentum. Sed posuere consectetur est at lobortis. Morbi leo risus, porta ac consectetur ac, vestibulum at eros.</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- JavaScript Includes -->
|
|
||||||
<script src="../vendor/jquery.min.js"></script>
|
|
||||||
<script src="../../transition.js"></script>
|
|
||||||
<script src="../../affix.js"></script>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- JavaScript Test -->
|
|
||||||
<script>
|
|
||||||
$(function () {
|
|
||||||
$('.js-affixed-element-top').affix({
|
|
||||||
offset: {
|
|
||||||
top: $('.js-page-header').outerHeight(true) - 10
|
|
||||||
, bottom: $('.js-footer').outerHeight(true) + 10
|
|
||||||
}
|
|
||||||
})
|
|
||||||
// todo(fat): sux you have to do this.
|
|
||||||
.on('affix.bs.affix', function (e) {
|
|
||||||
$(e.target).width(e.target.offsetWidth)
|
|
||||||
})
|
|
||||||
|
|
||||||
$('.js-affixed-element-bottom').affix({
|
|
||||||
offset: {
|
|
||||||
bottom: $('.js-footer').outerHeight(true) + 10
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
$('.js-grow-btn').on('click', function() {
|
|
||||||
$('.js-content').append('<p>Ipsum corrupti ipsam est temporibus.</p>')
|
|
||||||
})
|
|
||||||
$('.js-shrink-btn').on('click', function() {
|
|
||||||
$('.js-content p').last().remove()
|
|
||||||
})
|
|
||||||
})
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -141,20 +141,23 @@
|
|||||||
|
|
||||||
<!-- JavaScript Includes -->
|
<!-- JavaScript Includes -->
|
||||||
<script src="../vendor/jquery.min.js"></script>
|
<script src="../vendor/jquery.min.js"></script>
|
||||||
<script src="../../transition.js"></script>
|
|
||||||
<script src="../../modal.js"></script>
|
<script src="../../dist/util.js"></script>
|
||||||
|
<script src="../../dist/modal.js"></script>
|
||||||
|
<script src="../../dist/collapse.js"></script>
|
||||||
|
|
||||||
|
<!-- <script src="../../transition.js"></script>
|
||||||
<script src="../../tooltip.js"></script>
|
<script src="../../tooltip.js"></script>
|
||||||
<script src="../../popover.js"></script>
|
<script src="../../popover.js"></script> -->
|
||||||
<script src="../../collapse.js"></script>
|
|
||||||
|
|
||||||
<!-- JavaScript Test -->
|
<!-- JavaScript Test -->
|
||||||
<script>
|
<script>
|
||||||
$(function () {
|
$(function () {
|
||||||
$('.js-popover').popover()
|
// $('.js-popover').popover()
|
||||||
$('.js-tooltip').tooltip()
|
// $('.js-tooltip').tooltip()
|
||||||
$('#tall-toggle').click(function () {
|
// $('#tall-toggle').click(function () {
|
||||||
$('#tall').toggle()
|
// $('#tall').toggle()
|
||||||
})
|
// })
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -1,59 +0,0 @@
|
|||||||
/* ========================================================================
|
|
||||||
* Bootstrap: transition.js v3.3.4
|
|
||||||
* http://getbootstrap.com/javascript/#transitions
|
|
||||||
* ========================================================================
|
|
||||||
* Copyright 2011-2015 Twitter, Inc.
|
|
||||||
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
||||||
* ======================================================================== */
|
|
||||||
|
|
||||||
|
|
||||||
+function ($) {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
// CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
|
|
||||||
// ============================================================
|
|
||||||
|
|
||||||
function transitionEnd() {
|
|
||||||
var el = document.createElement('bootstrap')
|
|
||||||
|
|
||||||
var transEndEventNames = {
|
|
||||||
WebkitTransition : 'webkitTransitionEnd',
|
|
||||||
MozTransition : 'transitionend',
|
|
||||||
OTransition : 'oTransitionEnd otransitionend',
|
|
||||||
transition : 'transitionend'
|
|
||||||
}
|
|
||||||
|
|
||||||
for (var name in transEndEventNames) {
|
|
||||||
if (el.style[name] !== undefined) {
|
|
||||||
return { end: transEndEventNames[name] }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return false // explicit for ie8 ( ._.)
|
|
||||||
}
|
|
||||||
|
|
||||||
// http://blog.alexmaccaw.com/css-transitions
|
|
||||||
$.fn.emulateTransitionEnd = function (duration) {
|
|
||||||
var called = false
|
|
||||||
var $el = this
|
|
||||||
$(this).one('bsTransitionEnd', function () { called = true })
|
|
||||||
var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
|
|
||||||
setTimeout(callback, duration)
|
|
||||||
return this
|
|
||||||
}
|
|
||||||
|
|
||||||
$(function () {
|
|
||||||
$.support.transition = transitionEnd()
|
|
||||||
|
|
||||||
if (!$.support.transition) return
|
|
||||||
|
|
||||||
$.event.special.bsTransitionEnd = {
|
|
||||||
bindType: $.support.transition.end,
|
|
||||||
delegateType: $.support.transition.end,
|
|
||||||
handle: function (e) {
|
|
||||||
if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
|
|
||||||
}(jQuery);
|
|
Loading…
x
Reference in New Issue
Block a user