mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Security: Fixes javascript security warnings in old vendored libs (#50382)
This commit is contained in:
parent
58a783c0e4
commit
74608d6480
307
public/vendor/bootstrap/bootstrap.js
vendored
307
public/vendor/bootstrap/bootstrap.js
vendored
@ -18,7 +18,7 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -26,22 +26,22 @@
|
||||
/* CSS TRANSITION SUPPORT (http://www.modernizr.com/)
|
||||
* ======================================================= */
|
||||
|
||||
$(function () {
|
||||
$(function() {
|
||||
|
||||
$.support.transition = (function () {
|
||||
$.support.transition = (function() {
|
||||
|
||||
var transitionEnd = (function () {
|
||||
var transitionEnd = (function() {
|
||||
|
||||
var el = document.createElement('bootstrap')
|
||||
, transEndEventNames = {
|
||||
'WebkitTransition' : 'webkitTransitionEnd'
|
||||
, 'MozTransition' : 'transitionend'
|
||||
, 'OTransition' : 'oTransitionEnd otransitionend'
|
||||
, 'transition' : 'transitionend'
|
||||
'WebkitTransition': 'webkitTransitionEnd'
|
||||
, 'MozTransition': 'transitionend'
|
||||
, 'OTransition': 'oTransitionEnd otransitionend'
|
||||
, 'transition': 'transitionend'
|
||||
}
|
||||
, name
|
||||
|
||||
for (name in transEndEventNames){
|
||||
for (name in transEndEventNames) {
|
||||
if (el.style[name] !== undefined) {
|
||||
return transEndEventNames[name]
|
||||
}
|
||||
@ -77,11 +77,11 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
/* ============================================================
|
||||
/* ============================================================
|
||||
* bootstrap-dropdown.js v2.3.2
|
||||
* http://getbootstrap.com/2.3.2/javascript.html#dropdowns
|
||||
* ============================================================
|
||||
@ -105,9 +105,9 @@
|
||||
* ========================= */
|
||||
|
||||
var toggle = '[data-toggle=dropdown]'
|
||||
, Dropdown = function (element) {
|
||||
, Dropdown = function(element) {
|
||||
var $el = $(element).on('click.dropdown.data-api', this.toggle)
|
||||
$('html').on('click.dropdown.data-api', function () {
|
||||
$('html').on('click.dropdown.data-api', function() {
|
||||
$el.parent().removeClass('open')
|
||||
})
|
||||
}
|
||||
@ -116,7 +116,7 @@
|
||||
|
||||
constructor: Dropdown
|
||||
|
||||
, toggle: function (e) {
|
||||
, toggle: function(e) {
|
||||
var $this = $(this)
|
||||
, $parent
|
||||
, isActive
|
||||
@ -142,7 +142,7 @@
|
||||
return false
|
||||
}
|
||||
|
||||
, keydown: function (e) {
|
||||
, keydown: function(e) {
|
||||
var $this
|
||||
, $items
|
||||
, $active
|
||||
@ -187,7 +187,7 @@
|
||||
|
||||
function clearMenus() {
|
||||
$('.dropdown-backdrop').remove()
|
||||
$(toggle).each(function () {
|
||||
$(toggle).each(function() {
|
||||
getParent($(this)).removeClass('open')
|
||||
})
|
||||
}
|
||||
@ -202,7 +202,7 @@
|
||||
selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
$parent = selector && $(selector)
|
||||
$parent = selector && $.find(selector)
|
||||
|
||||
if (!$parent || !$parent.length) $parent = $this.parent()
|
||||
|
||||
@ -215,8 +215,8 @@
|
||||
|
||||
var old = $.fn.dropdown
|
||||
|
||||
$.fn.dropdown = function (option) {
|
||||
return this.each(function () {
|
||||
$.fn.dropdown = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('dropdown')
|
||||
if (!data) $this.data('dropdown', (data = new Dropdown(this)))
|
||||
@ -230,7 +230,7 @@
|
||||
/* DROPDOWN NO CONFLICT
|
||||
* ==================== */
|
||||
|
||||
$.fn.dropdown.noConflict = function () {
|
||||
$.fn.dropdown.noConflict = function() {
|
||||
$.fn.dropdown = old
|
||||
return this
|
||||
}
|
||||
@ -241,9 +241,9 @@
|
||||
|
||||
$(document)
|
||||
.on('click.dropdown.data-api', clearMenus)
|
||||
.on('click.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
|
||||
.on('click.dropdown.data-api' , toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.dropdown.data-api', toggle + ', [role=menu]' , Dropdown.prototype.keydown)
|
||||
.on('click.dropdown.data-api', '.dropdown form', function(e) { e.stopPropagation() })
|
||||
.on('click.dropdown.data-api', toggle, Dropdown.prototype.toggle)
|
||||
.on('keydown.dropdown.data-api', toggle + ', [role=menu]', Dropdown.prototype.keydown)
|
||||
|
||||
}(window.jQuery);
|
||||
/* =========================================================
|
||||
@ -266,7 +266,7 @@
|
||||
* ========================================================= */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -274,7 +274,7 @@
|
||||
/* MODAL CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var Modal = function (element, options) {
|
||||
var Modal = function(element, options) {
|
||||
this.options = options
|
||||
this.$element = $(element)
|
||||
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
|
||||
@ -285,11 +285,11 @@
|
||||
|
||||
constructor: Modal
|
||||
|
||||
, toggle: function () {
|
||||
, toggle: function() {
|
||||
return this[!this.isShown ? 'show' : 'hide']()
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
, show: function() {
|
||||
var that = this
|
||||
, e = $.Event('show')
|
||||
|
||||
@ -301,7 +301,7 @@
|
||||
|
||||
this.escape()
|
||||
|
||||
this.backdrop(function () {
|
||||
this.backdrop(function() {
|
||||
var transition = $.support.transition && that.$element.hasClass('fade')
|
||||
|
||||
if (!that.$element.parent().length) {
|
||||
@ -321,13 +321,13 @@
|
||||
that.enforceFocus()
|
||||
|
||||
transition ?
|
||||
that.$element.one($.support.transition.end, function () { that.$element.focus().trigger('shown') }) :
|
||||
that.$element.one($.support.transition.end, function() { that.$element.focus().trigger('shown') }) :
|
||||
that.$element.focus().trigger('shown')
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
, hide: function (e) {
|
||||
, hide: function(e) {
|
||||
e && e.preventDefault()
|
||||
|
||||
var that = this
|
||||
@ -353,19 +353,19 @@
|
||||
this.hideModal()
|
||||
}
|
||||
|
||||
, enforceFocus: function () {
|
||||
, enforceFocus: function() {
|
||||
var that = this
|
||||
$(document).on('focusin.modal', function (e) {
|
||||
$(document).on('focusin.modal', function(e) {
|
||||
if (that.$element[0] !== e.target && !that.$element.has(e.target).length) {
|
||||
that.$element.focus()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
, escape: function () {
|
||||
, escape: function() {
|
||||
var that = this
|
||||
if (this.isShown && this.options.keyboard) {
|
||||
this.$element.on('keyup.dismiss.modal', function ( e ) {
|
||||
this.$element.on('keyup.dismiss.modal', function(e) {
|
||||
e.which == 27 && that.hide()
|
||||
})
|
||||
} else if (!this.isShown) {
|
||||
@ -373,34 +373,34 @@
|
||||
}
|
||||
}
|
||||
|
||||
, hideWithTransition: function () {
|
||||
, hideWithTransition: function() {
|
||||
var that = this
|
||||
, timeout = setTimeout(function () {
|
||||
, timeout = setTimeout(function() {
|
||||
that.$element.off($.support.transition.end)
|
||||
that.hideModal()
|
||||
}, 500)
|
||||
|
||||
this.$element.one($.support.transition.end, function () {
|
||||
this.$element.one($.support.transition.end, function() {
|
||||
clearTimeout(timeout)
|
||||
that.hideModal()
|
||||
})
|
||||
}
|
||||
|
||||
, hideModal: function () {
|
||||
, hideModal: function() {
|
||||
var that = this
|
||||
this.$element.hide()
|
||||
this.backdrop(function () {
|
||||
this.backdrop(function() {
|
||||
that.removeBackdrop()
|
||||
that.$element.trigger('hidden')
|
||||
})
|
||||
}
|
||||
|
||||
, removeBackdrop: function () {
|
||||
, removeBackdrop: function() {
|
||||
this.$backdrop && this.$backdrop.remove()
|
||||
this.$backdrop = null
|
||||
}
|
||||
|
||||
, backdrop: function (callback) {
|
||||
, backdrop: function(callback) {
|
||||
var that = this
|
||||
, animate = this.$element.hasClass('fade') ? 'fade' : ''
|
||||
|
||||
@ -429,7 +429,7 @@
|
||||
} else if (!this.isShown && this.$backdrop) {
|
||||
this.$backdrop.removeClass('in')
|
||||
|
||||
$.support.transition && this.$element.hasClass('fade')?
|
||||
$.support.transition && this.$element.hasClass('fade') ?
|
||||
this.$backdrop.one($.support.transition.end, callback) :
|
||||
callback()
|
||||
|
||||
@ -445,8 +445,8 @@
|
||||
|
||||
var old = $.fn.modal
|
||||
|
||||
$.fn.modal = function (option) {
|
||||
return this.each(function () {
|
||||
$.fn.modal = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('modal')
|
||||
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
|
||||
@ -468,7 +468,7 @@
|
||||
/* MODAL NO CONFLICT
|
||||
* ================= */
|
||||
|
||||
$.fn.modal.noConflict = function () {
|
||||
$.fn.modal.noConflict = function() {
|
||||
$.fn.modal = old
|
||||
return this
|
||||
}
|
||||
@ -477,17 +477,17 @@
|
||||
/* MODAL DATA-API
|
||||
* ============== */
|
||||
|
||||
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function (e) {
|
||||
$(document).on('click.modal.data-api', '[data-toggle="modal"]', function(e) {
|
||||
var $this = $(this)
|
||||
, href = $this.attr('href')
|
||||
, $target = $($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||
, option = $target.data('modal') ? 'toggle' : $.extend({ remote:!/#/.test(href) && href }, $target.data(), $this.data())
|
||||
, $target = $.find($this.attr('data-target') || (href && href.replace(/.*(?=#[^\s]+$)/, ''))) //strip for ie7
|
||||
, option = $target.data('modal') ? 'toggle' : $.extend({ remote: !/#/.test(href) && href }, $target.data(), $this.data())
|
||||
|
||||
e.preventDefault()
|
||||
|
||||
$target
|
||||
.modal(option)
|
||||
.one('hide', function () {
|
||||
.one('hide', function() {
|
||||
$this.focus()
|
||||
})
|
||||
})
|
||||
@ -514,7 +514,7 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -522,7 +522,7 @@
|
||||
/* TOOLTIP PUBLIC CLASS DEFINITION
|
||||
* =============================== */
|
||||
|
||||
var Tooltip = function (element, options) {
|
||||
var Tooltip = function(element, options) {
|
||||
this.init('tooltip', element, options)
|
||||
}
|
||||
|
||||
@ -530,7 +530,7 @@
|
||||
|
||||
constructor: Tooltip
|
||||
|
||||
, init: function (type, element, options) {
|
||||
, init: function(type, element, options) {
|
||||
var eventIn
|
||||
, eventOut
|
||||
, triggers
|
||||
@ -561,7 +561,7 @@
|
||||
this.fixTitle()
|
||||
}
|
||||
|
||||
, getOptions: function (options) {
|
||||
, getOptions: function(options) {
|
||||
options = $.extend({}, $.fn[this.type].defaults, this.$element.data(), options)
|
||||
|
||||
if (options.delay && typeof options.delay == 'number') {
|
||||
@ -574,12 +574,12 @@
|
||||
return options
|
||||
}
|
||||
|
||||
, enter: function (e) {
|
||||
, enter: function(e) {
|
||||
var defaults = $.fn[this.type].defaults
|
||||
, options = {}
|
||||
, self
|
||||
|
||||
this._options && $.each(this._options, function (key, value) {
|
||||
this._options && $.each(this._options, function(key, value) {
|
||||
if (defaults[key] != value) options[key] = value
|
||||
}, this)
|
||||
|
||||
@ -594,7 +594,7 @@
|
||||
}, self.options.delay.show)
|
||||
}
|
||||
|
||||
, leave: function (e) {
|
||||
, leave: function(e) {
|
||||
var self = $(e.currentTarget)[this.type](this._options).data(this.type)
|
||||
|
||||
if (this.timeout) clearTimeout(this.timeout)
|
||||
@ -606,7 +606,7 @@
|
||||
}, self.options.delay.hide)
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
, show: function() {
|
||||
var $tip
|
||||
, pos
|
||||
, actualWidth
|
||||
@ -633,7 +633,11 @@
|
||||
.detach()
|
||||
.css({ top: 0, left: 0, display: 'block' })
|
||||
|
||||
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
|
||||
if (this.options.container) {
|
||||
$tip.appendTo($.find(this.options.container));
|
||||
} else {
|
||||
$tip.insertAfter(this.$element)
|
||||
}
|
||||
|
||||
pos = this.getPosition()
|
||||
|
||||
@ -642,48 +646,48 @@
|
||||
|
||||
switch (placement) {
|
||||
case 'bottom':
|
||||
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2}
|
||||
tp = { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 }
|
||||
break
|
||||
case 'top':
|
||||
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2}
|
||||
tp = { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 }
|
||||
break
|
||||
case 'left':
|
||||
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth}
|
||||
tp = { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth }
|
||||
break
|
||||
case 'right':
|
||||
tp = {top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width}
|
||||
tp = { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
|
||||
break
|
||||
|
||||
// extend placements (top)
|
||||
case 'topLeft':
|
||||
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - (actualWidth * .10)};
|
||||
tp = { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - (actualWidth * .10) };
|
||||
break;
|
||||
case 'topRight':
|
||||
tp = {top: pos.top - actualHeight, left: pos.left + pos.width / 2 - (actualWidth * .90)};
|
||||
tp = { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - (actualWidth * .90) };
|
||||
break;
|
||||
|
||||
// extend placements (right)
|
||||
case 'rightTop':
|
||||
tp = {top: pos.top + pos.height / 2 - (actualHeight *.10), left: pos.left + pos.width};
|
||||
tp = { top: pos.top + pos.height / 2 - (actualHeight * .10), left: pos.left + pos.width };
|
||||
break;
|
||||
case 'rightBottom':
|
||||
tp = {top: pos.top + pos.height / 2 - (actualHeight * .90), left: pos.left + pos.width};
|
||||
tp = { top: pos.top + pos.height / 2 - (actualHeight * .90), left: pos.left + pos.width };
|
||||
break;
|
||||
|
||||
// extend placements (bottom)
|
||||
case 'bottomLeft':
|
||||
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - (actualWidth * .10)};
|
||||
tp = { top: pos.top + pos.height, left: pos.left + pos.width / 2 - (actualWidth * .10) };
|
||||
break;
|
||||
case 'bottomRight':
|
||||
tp = {top: pos.top + pos.height, left: pos.left + pos.width / 2 - (actualWidth * .90)};
|
||||
tp = { top: pos.top + pos.height, left: pos.left + pos.width / 2 - (actualWidth * .90) };
|
||||
break;
|
||||
|
||||
// extend placements (left)
|
||||
case 'leftTop':
|
||||
tp = {top: pos.top + pos.height / 2 - (actualHeight *.10), left: pos.left - actualWidth};
|
||||
tp = { top: pos.top + pos.height / 2 - (actualHeight * .10), left: pos.left - actualWidth };
|
||||
break;
|
||||
case 'leftBottom':
|
||||
tp = {top: pos.top + pos.height / 2 - (actualHeight * .90), left: pos.left - actualWidth};
|
||||
tp = { top: pos.top + pos.height / 2 - (actualHeight * .90), left: pos.left - actualWidth };
|
||||
break;
|
||||
|
||||
|
||||
@ -694,7 +698,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
, applyPlacement: function(offset, placement){
|
||||
, applyPlacement: function(offset, placement) {
|
||||
var $tip = this.tip()
|
||||
, width = $tip[0].offsetWidth
|
||||
, height = $tip[0].offsetHeight
|
||||
@ -719,7 +723,7 @@
|
||||
if (placement == 'bottom' || placement == 'top') {
|
||||
delta = 0
|
||||
|
||||
if (offset.left < 0){
|
||||
if (offset.left < 0) {
|
||||
delta = offset.left * -2
|
||||
offset.left = 0
|
||||
$tip.offset(offset)
|
||||
@ -735,21 +739,22 @@
|
||||
if (replace) $tip.offset(offset)
|
||||
}
|
||||
|
||||
, replaceArrow: function(delta, dimension, position){
|
||||
, replaceArrow: function(delta, dimension, position) {
|
||||
this
|
||||
.arrow()
|
||||
.css(position, delta ? (50 * (1 - delta / dimension) + "%") : '')
|
||||
}
|
||||
|
||||
, setContent: function () {
|
||||
, setContent: function() {
|
||||
var $tip = this.tip()
|
||||
, title = this.getTitle()
|
||||
|
||||
$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
||||
//$tip.find('.tooltip-inner')[this.options.html ? 'html' : 'text'](title)
|
||||
$tip.find('.tooltip-inner').text(title)
|
||||
$tip.removeClass('fade in top bottom left right')
|
||||
}
|
||||
|
||||
, hide: function () {
|
||||
, hide: function() {
|
||||
var that = this
|
||||
, $tip = this.tip()
|
||||
, e = $.Event('hide')
|
||||
@ -760,11 +765,11 @@
|
||||
$tip.removeClass('in')
|
||||
|
||||
function removeWithAnimation() {
|
||||
var timeout = setTimeout(function () {
|
||||
var timeout = setTimeout(function() {
|
||||
$tip.off($.support.transition.end).detach()
|
||||
}, 500)
|
||||
|
||||
$tip.one($.support.transition.end, function () {
|
||||
$tip.one($.support.transition.end, function() {
|
||||
clearTimeout(timeout)
|
||||
$tip.detach()
|
||||
})
|
||||
@ -779,18 +784,18 @@
|
||||
return this
|
||||
}
|
||||
|
||||
, fixTitle: function () {
|
||||
, fixTitle: function() {
|
||||
var $e = this.$element
|
||||
if ($e.attr('title') || typeof($e.attr('data-original-title')) != 'string') {
|
||||
if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
|
||||
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
|
||||
}
|
||||
}
|
||||
|
||||
, hasContent: function () {
|
||||
, hasContent: function() {
|
||||
return this.getTitle()
|
||||
}
|
||||
|
||||
, getPosition: function () {
|
||||
, getPosition: function() {
|
||||
var el = this.$element[0]
|
||||
return $.extend({}, (typeof el.getBoundingClientRect == 'function') ? el.getBoundingClientRect() : {
|
||||
width: el.offsetWidth
|
||||
@ -798,7 +803,7 @@
|
||||
}, this.$element.offset())
|
||||
}
|
||||
|
||||
, getTitle: function () {
|
||||
, getTitle: function() {
|
||||
var title
|
||||
, $e = this.$element
|
||||
, o = this.options
|
||||
@ -809,15 +814,15 @@
|
||||
return title
|
||||
}
|
||||
|
||||
, tip: function () {
|
||||
, tip: function() {
|
||||
return this.$tip = this.$tip || $(this.options.template)
|
||||
}
|
||||
|
||||
, arrow: function(){
|
||||
, arrow: function() {
|
||||
return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow")
|
||||
}
|
||||
|
||||
, validate: function () {
|
||||
, validate: function() {
|
||||
if (!this.$element[0].parentNode) {
|
||||
this.hide()
|
||||
this.$element = null
|
||||
@ -825,24 +830,24 @@
|
||||
}
|
||||
}
|
||||
|
||||
, enable: function () {
|
||||
, enable: function() {
|
||||
this.enabled = true
|
||||
}
|
||||
|
||||
, disable: function () {
|
||||
, disable: function() {
|
||||
this.enabled = false
|
||||
}
|
||||
|
||||
, toggleEnabled: function () {
|
||||
, toggleEnabled: function() {
|
||||
this.enabled = !this.enabled
|
||||
}
|
||||
|
||||
, toggle: function (e) {
|
||||
, toggle: function(e) {
|
||||
var self = e ? $(e.currentTarget)[this.type](this._options).data(this.type) : this
|
||||
self.tip().hasClass('in') ? self.hide() : self.show()
|
||||
}
|
||||
|
||||
, destroy: function () {
|
||||
, destroy: function() {
|
||||
this.hide().$element.off('.' + this.type).removeData(this.type)
|
||||
}
|
||||
|
||||
@ -854,8 +859,8 @@
|
||||
|
||||
var old = $.fn.tooltip
|
||||
|
||||
$.fn.tooltip = function ( option ) {
|
||||
return this.each(function () {
|
||||
$.fn.tooltip = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('tooltip')
|
||||
, options = typeof option == 'object' && option
|
||||
@ -882,7 +887,7 @@
|
||||
/* TOOLTIP NO CONFLICT
|
||||
* =================== */
|
||||
|
||||
$.fn.tooltip.noConflict = function () {
|
||||
$.fn.tooltip.noConflict = function() {
|
||||
$.fn.tooltip = old
|
||||
return this
|
||||
}
|
||||
@ -909,7 +914,7 @@
|
||||
* ======================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -917,7 +922,7 @@
|
||||
/* TAB CLASS DEFINITION
|
||||
* ==================== */
|
||||
|
||||
var Tab = function (element) {
|
||||
var Tab = function(element) {
|
||||
this.element = $(element)
|
||||
}
|
||||
|
||||
@ -925,7 +930,7 @@
|
||||
|
||||
constructor: Tab
|
||||
|
||||
, show: function () {
|
||||
, show: function() {
|
||||
var $this = this.element
|
||||
, $ul = $this.closest('ul:not(.dropdown-menu)')
|
||||
, selector = $this.attr('data-target')
|
||||
@ -938,7 +943,7 @@
|
||||
selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') //strip for ie7
|
||||
}
|
||||
|
||||
if ( $this.parent('li').hasClass('active') ) return
|
||||
if ($this.parent('li').hasClass('active')) return
|
||||
|
||||
previous = $ul.find('.active:last a')[0]
|
||||
|
||||
@ -950,10 +955,10 @@
|
||||
|
||||
if (e.isDefaultPrevented()) return
|
||||
|
||||
$target = $(selector)
|
||||
$target = $.find(selector)
|
||||
|
||||
this.activate($this.parent('li'), $ul)
|
||||
this.activate($target, $target.parent(), function () {
|
||||
this.activate($target, $target.parent(), function() {
|
||||
$this.trigger({
|
||||
type: 'shown'
|
||||
, relatedTarget: previous
|
||||
@ -961,7 +966,7 @@
|
||||
})
|
||||
}
|
||||
|
||||
, activate: function ( element, container, callback) {
|
||||
, activate: function(element, container, callback) {
|
||||
var $active = container.find('> .active')
|
||||
, transition = callback
|
||||
&& $.support.transition
|
||||
@ -982,7 +987,7 @@
|
||||
element.removeClass('fade')
|
||||
}
|
||||
|
||||
if ( element.parent('.dropdown-menu') ) {
|
||||
if (element.parent('.dropdown-menu')) {
|
||||
element.closest('li.dropdown').addClass('active')
|
||||
}
|
||||
|
||||
@ -1003,8 +1008,8 @@
|
||||
|
||||
var old = $.fn.tab
|
||||
|
||||
$.fn.tab = function ( option ) {
|
||||
return this.each(function () {
|
||||
$.fn.tab = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('tab')
|
||||
if (!data) $this.data('tab', (data = new Tab(this)))
|
||||
@ -1018,7 +1023,7 @@
|
||||
/* TAB NO CONFLICT
|
||||
* =============== */
|
||||
|
||||
$.fn.tab.noConflict = function () {
|
||||
$.fn.tab.noConflict = function() {
|
||||
$.fn.tab = old
|
||||
return this
|
||||
}
|
||||
@ -1027,7 +1032,7 @@
|
||||
/* TAB DATA-API
|
||||
* ============ */
|
||||
|
||||
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
|
||||
$(document).on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function(e) {
|
||||
e.preventDefault()
|
||||
$(this).tab('show')
|
||||
})
|
||||
@ -1052,7 +1057,7 @@
|
||||
* ============================================================ */
|
||||
|
||||
|
||||
!function($){
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -1060,7 +1065,7 @@
|
||||
/* TYPEAHEAD PUBLIC CLASS DEFINITION
|
||||
* ================================= */
|
||||
|
||||
var Typeahead = function (element, options) {
|
||||
var Typeahead = function(element, options) {
|
||||
this.$element = $(element)
|
||||
this.options = $.extend({}, $.fn.typeahead.defaults, options)
|
||||
this.matcher = this.options.matcher || this.matcher
|
||||
@ -1077,7 +1082,7 @@
|
||||
|
||||
constructor: Typeahead
|
||||
|
||||
, select: function () {
|
||||
, select: function() {
|
||||
// CHANGE (rashidkpc) If nothing is selected, use existing value
|
||||
var val = this.$menu.find('.active').attr('data-value') || this.$element.val();
|
||||
this.$element
|
||||
@ -1086,11 +1091,11 @@
|
||||
return this.hide()
|
||||
}
|
||||
|
||||
, updater: function (item) {
|
||||
, updater: function(item) {
|
||||
return item
|
||||
}
|
||||
|
||||
, show: function () {
|
||||
, show: function() {
|
||||
var pos = $.extend({}, this.$element.position(), {
|
||||
height: this.$element[0].offsetHeight
|
||||
})
|
||||
@ -1107,13 +1112,13 @@
|
||||
return this
|
||||
}
|
||||
|
||||
, hide: function () {
|
||||
, hide: function() {
|
||||
this.$menu.hide()
|
||||
this.shown = false
|
||||
return this
|
||||
}
|
||||
|
||||
, lookup: function (event) {
|
||||
, lookup: function(event) {
|
||||
var items
|
||||
|
||||
this.query = this.$element.val()
|
||||
@ -1127,10 +1132,10 @@
|
||||
return items ? this.process(items) : this
|
||||
}
|
||||
|
||||
, process: function (items) {
|
||||
, process: function(items) {
|
||||
var that = this
|
||||
|
||||
items = $.grep(items, function (item) {
|
||||
items = $.grep(items, function(item) {
|
||||
return that.matcher(item)
|
||||
})
|
||||
|
||||
@ -1143,11 +1148,11 @@
|
||||
return this.render(items.slice(0, this.options.items)).show()
|
||||
}
|
||||
|
||||
, matcher: function (item) {
|
||||
, matcher: function(item) {
|
||||
return ~item.toLowerCase().indexOf(this.query.toLowerCase())
|
||||
}
|
||||
|
||||
, sorter: function (items) {
|
||||
, sorter: function(items) {
|
||||
var beginswith = []
|
||||
, caseSensitive = []
|
||||
, caseInsensitive = []
|
||||
@ -1162,20 +1167,20 @@
|
||||
return beginswith.concat(caseSensitive, caseInsensitive)
|
||||
}
|
||||
|
||||
, highlighter: function (item) {
|
||||
, highlighter: function(item) {
|
||||
var query = this.query.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, '\\$&')
|
||||
if (!query) {
|
||||
return item;
|
||||
}
|
||||
return item.replace(new RegExp('(' + query + ')', 'ig'), function ($1, match) {
|
||||
return item.replace(new RegExp('(' + query + ')', 'ig'), function($1, match) {
|
||||
return '<strong>' + match + '</strong>'
|
||||
});
|
||||
}
|
||||
|
||||
, render: function (items) {
|
||||
, render: function(items) {
|
||||
var that = this
|
||||
|
||||
items = $(items).map(function (i, item) {
|
||||
items = $(items).map(function(i, item) {
|
||||
i = $(that.options.item).attr('data-value', item)
|
||||
i.find('a').html(that.highlighter(item))
|
||||
return i[0]
|
||||
@ -1187,7 +1192,7 @@
|
||||
return this
|
||||
}
|
||||
|
||||
, next: function (event) {
|
||||
, next: function(event) {
|
||||
var active = this.$menu.find('.active').removeClass('active')
|
||||
, next = active.next()
|
||||
|
||||
@ -1198,7 +1203,7 @@
|
||||
next.addClass('active')
|
||||
}
|
||||
|
||||
, prev: function (event) {
|
||||
, prev: function(event) {
|
||||
var active = this.$menu.find('.active').removeClass('active')
|
||||
, prev = active.prev()
|
||||
|
||||
@ -1209,7 +1214,7 @@
|
||||
prev.addClass('active')
|
||||
}
|
||||
|
||||
, listen: function () {
|
||||
, listen: function() {
|
||||
this.$element
|
||||
.on('focus', $.proxy(this.focus, this))
|
||||
.on('blur', $.proxy(this.blur, this))
|
||||
@ -1226,7 +1231,7 @@
|
||||
.on('mouseleave', 'li', $.proxy(this.mouseleave, this))
|
||||
},
|
||||
|
||||
destroy: function () {
|
||||
destroy: function() {
|
||||
this.$element.off().removeData('typeahead');
|
||||
this.$menu.off();
|
||||
}
|
||||
@ -1240,7 +1245,7 @@
|
||||
return isSupported
|
||||
}
|
||||
|
||||
, move: function (e) {
|
||||
, move: function(e) {
|
||||
if (!this.shown) return
|
||||
|
||||
// grafana change, shift+left parenthesis
|
||||
@ -1248,7 +1253,7 @@
|
||||
return;
|
||||
}
|
||||
|
||||
switch(e.keyCode) {
|
||||
switch (e.keyCode) {
|
||||
case 9: // tab
|
||||
case 13: // enter
|
||||
case 27: // escape
|
||||
@ -1269,18 +1274,18 @@
|
||||
e.stopPropagation()
|
||||
}
|
||||
|
||||
, keydown: function (e) {
|
||||
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40,38,9,13,27,57])
|
||||
, keydown: function(e) {
|
||||
this.suppressKeyPressRepeat = ~$.inArray(e.keyCode, [40, 38, 9, 13, 27, 57])
|
||||
this.move(e)
|
||||
}
|
||||
|
||||
, keypress: function (e) {
|
||||
, keypress: function(e) {
|
||||
if (this.suppressKeyPressRepeat) return
|
||||
this.move(e)
|
||||
}
|
||||
|
||||
, keyup: function (e) {
|
||||
switch(e.keyCode) {
|
||||
, keyup: function(e) {
|
||||
switch (e.keyCode) {
|
||||
case 40: // down arrow
|
||||
case 38: // up arrow
|
||||
case 16: // shift
|
||||
@ -1303,7 +1308,7 @@
|
||||
this.lookup();
|
||||
}
|
||||
|
||||
if(e.keyCode === 13 && typeof this.$menu.find('.active').attr('data-value') === 'undefined') {
|
||||
if (e.keyCode === 13 && typeof this.$menu.find('.active').attr('data-value') === 'undefined') {
|
||||
// CHANGE (rashidkpc). Enter was hit, nothing was selected from typeahead, submit form
|
||||
this.$element.submit();
|
||||
} else {
|
||||
@ -1313,29 +1318,29 @@
|
||||
|
||||
}
|
||||
|
||||
, focus: function (e) {
|
||||
, focus: function(e) {
|
||||
this.focused = true
|
||||
}
|
||||
|
||||
, blur: function (e) {
|
||||
, blur: function(e) {
|
||||
this.focused = false
|
||||
if (!this.mousedover && this.shown) this.hide()
|
||||
}
|
||||
|
||||
, click: function (e) {
|
||||
, click: function(e) {
|
||||
e.stopPropagation()
|
||||
e.preventDefault()
|
||||
this.select()
|
||||
this.$element.focus()
|
||||
}
|
||||
|
||||
, mouseenter: function (e) {
|
||||
, mouseenter: function(e) {
|
||||
this.mousedover = true
|
||||
this.$menu.find('.active').removeClass('active')
|
||||
$(e.currentTarget).addClass('active')
|
||||
}
|
||||
|
||||
, mouseleave: function (e) {
|
||||
, mouseleave: function(e) {
|
||||
this.mousedover = false
|
||||
if (!this.focused && this.shown) this.hide()
|
||||
}
|
||||
@ -1348,8 +1353,8 @@
|
||||
|
||||
var old = $.fn.typeahead
|
||||
|
||||
$.fn.typeahead = function (option) {
|
||||
return this.each(function () {
|
||||
$.fn.typeahead = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('typeahead')
|
||||
, options = typeof option == 'object' && option
|
||||
@ -1372,7 +1377,7 @@
|
||||
/* TYPEAHEAD NO CONFLICT
|
||||
* =================== */
|
||||
|
||||
$.fn.typeahead.noConflict = function () {
|
||||
$.fn.typeahead.noConflict = function() {
|
||||
$.fn.typeahead = old
|
||||
return this
|
||||
}
|
||||
@ -1381,7 +1386,7 @@
|
||||
/* TYPEAHEAD DATA-API
|
||||
* ================== */
|
||||
|
||||
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function (e) {
|
||||
$(document).on('focus.typeahead.data-api', '[data-provide="typeahead"]', function(e) {
|
||||
var $this = $(this)
|
||||
if ($this.data('typeahead')) return
|
||||
$this.typeahead($this.data())
|
||||
@ -1408,7 +1413,7 @@
|
||||
* ========================================================== */
|
||||
|
||||
|
||||
!function ($) {
|
||||
!function($) {
|
||||
|
||||
"use strict"; // jshint ;_;
|
||||
|
||||
@ -1416,16 +1421,16 @@
|
||||
/* AFFIX CLASS DEFINITION
|
||||
* ====================== */
|
||||
|
||||
var Affix = function (element, options) {
|
||||
var Affix = function(element, options) {
|
||||
this.options = $.extend({}, $.fn.affix.defaults, options)
|
||||
this.$window = $(window)
|
||||
.on('scroll.affix.data-api', $.proxy(this.checkPosition, this))
|
||||
.on('click.affix.data-api', $.proxy(function () { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
|
||||
.on('click.affix.data-api', $.proxy(function() { setTimeout($.proxy(this.checkPosition, this), 1) }, this))
|
||||
this.$element = $(element)
|
||||
this.checkPosition()
|
||||
}
|
||||
|
||||
Affix.prototype.checkPosition = function () {
|
||||
Affix.prototype.checkPosition = function() {
|
||||
if (!this.$element.is(':visible')) return
|
||||
|
||||
var scrollHeight = $(document).height()
|
||||
@ -1460,8 +1465,8 @@
|
||||
|
||||
var old = $.fn.affix
|
||||
|
||||
$.fn.affix = function (option) {
|
||||
return this.each(function () {
|
||||
$.fn.affix = function(option) {
|
||||
return this.each(function() {
|
||||
var $this = $(this)
|
||||
, data = $this.data('affix')
|
||||
, options = typeof option == 'object' && option
|
||||
@ -1480,7 +1485,7 @@
|
||||
/* AFFIX NO CONFLICT
|
||||
* ================= */
|
||||
|
||||
$.fn.affix.noConflict = function () {
|
||||
$.fn.affix.noConflict = function() {
|
||||
$.fn.affix = old
|
||||
return this
|
||||
}
|
||||
@ -1489,8 +1494,8 @@
|
||||
/* AFFIX DATA-API
|
||||
* ============== */
|
||||
|
||||
$(window).on('load', function () {
|
||||
$('[data-spy="affix"]').each(function () {
|
||||
$(window).on('load', function() {
|
||||
$('[data-spy="affix"]').each(function() {
|
||||
var $spy = $(this)
|
||||
, data = $spy.data()
|
||||
|
||||
|
134
public/vendor/flot/jquery.flot.js
vendored
134
public/vendor/flot/jquery.flot.js
vendored
@ -29,7 +29,7 @@ Licensed under the MIT license.
|
||||
* V. 1.1: Fix error handling so e.g. parsing an empty string does
|
||||
* produce a color rather than just crashing.
|
||||
*/
|
||||
(function($){$.color={};$.color.make=function(r,g,b,a){var o={};o.r=r||0;o.g=g||0;o.b=b||0;o.a=a!=null?a:1;o.add=function(c,d){for(var i=0;i<c.length;++i)o[c.charAt(i)]+=d;return o.normalize()};o.scale=function(c,f){for(var i=0;i<c.length;++i)o[c.charAt(i)]*=f;return o.normalize()};o.toString=function(){if(o.a>=1){return"rgb("+[o.r,o.g,o.b].join(",")+")"}else{return"rgba("+[o.r,o.g,o.b,o.a].join(",")+")"}};o.normalize=function(){function clamp(min,value,max){return value<min?min:value>max?max:value}o.r=clamp(0,parseInt(o.r),255);o.g=clamp(0,parseInt(o.g),255);o.b=clamp(0,parseInt(o.b),255);o.a=clamp(0,o.a,1);return o};o.clone=function(){return $.color.make(o.r,o.b,o.g,o.a)};return o.normalize()};$.color.extract=function(elem,css){var c;do{c=elem.css(css).toLowerCase();if(c!=""&&c!="transparent")break;elem=elem.parent()}while(elem.length&&!$.nodeName(elem.get(0),"body"));if(c=="rgba(0, 0, 0, 0)")c="transparent";return $.color.parse(c)};$.color.parse=function(str){var res,m=$.color.make;if(res=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10));if(res=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseInt(res[1],10),parseInt(res[2],10),parseInt(res[3],10),parseFloat(res[4]));if(res=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55);if(res=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str))return m(parseFloat(res[1])*2.55,parseFloat(res[2])*2.55,parseFloat(res[3])*2.55,parseFloat(res[4]));if(res=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str))return m(parseInt(res[1],16),parseInt(res[2],16),parseInt(res[3],16));if(res=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str))return m(parseInt(res[1]+res[1],16),parseInt(res[2]+res[2],16),parseInt(res[3]+res[3],16));var name=$.trim(str).toLowerCase();if(name=="transparent")return m(255,255,255,0);else{res=lookupColors[name]||[0,0,0];return m(res[0],res[1],res[2])}};var lookupColors={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery);
|
||||
(function($) { $.color = {}; $.color.make = function(r, g, b, a) { var o = {}; o.r = r || 0; o.g = g || 0; o.b = b || 0; o.a = a != null ? a : 1; o.add = function(c, d) { for (var i = 0; i < c.length; ++i)o[c.charAt(i)] += d; return o.normalize() }; o.scale = function(c, f) { for (var i = 0; i < c.length; ++i)o[c.charAt(i)] *= f; return o.normalize() }; o.toString = function() { if (o.a >= 1) { return "rgb(" + [o.r, o.g, o.b].join(",") + ")" } else { return "rgba(" + [o.r, o.g, o.b, o.a].join(",") + ")" } }; o.normalize = function() { function clamp(min, value, max) { return value < min ? min : value > max ? max : value } o.r = clamp(0, parseInt(o.r), 255); o.g = clamp(0, parseInt(o.g), 255); o.b = clamp(0, parseInt(o.b), 255); o.a = clamp(0, o.a, 1); return o }; o.clone = function() { return $.color.make(o.r, o.b, o.g, o.a) }; return o.normalize() }; $.color.extract = function(elem, css) { var c; do { c = elem.css(css).toLowerCase(); if (c != "" && c != "transparent") break; elem = elem.parent() } while (elem.length && !$.nodeName(elem.get(0), "body")); if (c == "rgba(0, 0, 0, 0)") c = "transparent"; return $.color.parse(c) }; $.color.parse = function(str) { var res, m = $.color.make; if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str)) return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10)); if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4])); if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str)) return m(parseFloat(res[1]) * 2.55, parseFloat(res[2]) * 2.55, parseFloat(res[3]) * 2.55); if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) return m(parseFloat(res[1]) * 2.55, parseFloat(res[2]) * 2.55, parseFloat(res[3]) * 2.55, parseFloat(res[4])); if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str)) return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16)); if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str)) return m(parseInt(res[1] + res[1], 16), parseInt(res[2] + res[2], 16), parseInt(res[3] + res[3], 16)); var name = $.trim(str).toLowerCase(); if (name == "transparent") return m(255, 255, 255, 0); else { res = lookupColors[name] || [0, 0, 0]; return m(res[0], res[1], res[2]) } }; var lookupColors = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0] } })(jQuery);
|
||||
|
||||
// the actual Flot code
|
||||
(function($) {
|
||||
@ -48,7 +48,7 @@ Licensed under the MIT license.
|
||||
$.fn.detach = function() {
|
||||
return this.each(function() {
|
||||
if (this.parentNode) {
|
||||
this.parentNode.removeChild( this );
|
||||
this.parentNode.removeChild(this);
|
||||
}
|
||||
});
|
||||
};
|
||||
@ -616,7 +616,7 @@ Licensed under the MIT license.
|
||||
mouseActiveRadius: 10 // how far the mouse can be away to activate an item
|
||||
},
|
||||
interaction: {
|
||||
redrawOverlayInterval: 1000/60 // time between updates, -1 means in same flow
|
||||
redrawOverlayInterval: 1000 / 60 // time between updates, -1 means in same flow
|
||||
},
|
||||
hooks: {}
|
||||
},
|
||||
@ -625,7 +625,7 @@ Licensed under the MIT license.
|
||||
eventHolder = null, // jQuery object that events should be bound to
|
||||
ctx = null, octx = null,
|
||||
xaxes = [], yaxes = [],
|
||||
plotOffset = { left: 0, right: 0, top: 0, bottom: 0},
|
||||
plotOffset = { left: 0, right: 0, top: 0, bottom: 0 },
|
||||
plotWidth = 0, plotHeight = 0,
|
||||
hooks = {
|
||||
processOptions: [],
|
||||
@ -649,28 +649,28 @@ Licensed under the MIT license.
|
||||
plot.getPlaceholder = function() { return placeholder; };
|
||||
plot.getCanvas = function() { return surface.element; };
|
||||
plot.getPlotOffset = function() { return plotOffset; };
|
||||
plot.width = function () { return plotWidth; };
|
||||
plot.height = function () { return plotHeight; };
|
||||
plot.offset = function () {
|
||||
plot.width = function() { return plotWidth; };
|
||||
plot.height = function() { return plotHeight; };
|
||||
plot.offset = function() {
|
||||
var o = eventHolder.offset();
|
||||
o.left += plotOffset.left;
|
||||
o.top += plotOffset.top;
|
||||
return o;
|
||||
};
|
||||
plot.getData = function () { return series; };
|
||||
plot.getAxes = function () {
|
||||
plot.getData = function() { return series; };
|
||||
plot.getAxes = function() {
|
||||
var res = {}, i;
|
||||
$.each(xaxes.concat(yaxes), function (_, axis) {
|
||||
$.each(xaxes.concat(yaxes), function(_, axis) {
|
||||
if (axis)
|
||||
res[axis.direction + (axis.n != 1 ? axis.n : "") + "axis"] = axis;
|
||||
});
|
||||
return res;
|
||||
};
|
||||
plot.getXAxes = function () { return xaxes; };
|
||||
plot.getYAxes = function () { return yaxes; };
|
||||
plot.getXAxes = function() { return xaxes; };
|
||||
plot.getYAxes = function() { return yaxes; };
|
||||
plot.c2p = canvasToAxisCoords;
|
||||
plot.p2c = axisToCanvasCoords;
|
||||
plot.getOptions = function () { return options; };
|
||||
plot.getOptions = function() { return options; };
|
||||
plot.highlight = highlight;
|
||||
plot.unhighlight = unhighlight;
|
||||
plot.triggerRedrawOverlay = triggerRedrawOverlay;
|
||||
@ -681,7 +681,7 @@ Licensed under the MIT license.
|
||||
};
|
||||
};
|
||||
plot.shutdown = shutdown;
|
||||
plot.destroy = function () {
|
||||
plot.destroy = function() {
|
||||
shutdown();
|
||||
placeholder.removeData("plot").empty();
|
||||
|
||||
@ -698,7 +698,7 @@ Licensed under the MIT license.
|
||||
highlights = [];
|
||||
plot = null;
|
||||
};
|
||||
plot.resize = function () {
|
||||
plot.resize = function() {
|
||||
var width = placeholder.width(),
|
||||
height = placeholder.height();
|
||||
surface.resize(width, height);
|
||||
@ -923,7 +923,7 @@ Licensed under the MIT license.
|
||||
|
||||
function allAxes() {
|
||||
// return flat array without annoying null entries
|
||||
return $.grep(xaxes.concat(yaxes), function (a) { return a; });
|
||||
return $.grep(xaxes.concat(yaxes), function(a) { return a; });
|
||||
}
|
||||
|
||||
function canvasToAxisCoords(pos) {
|
||||
@ -1102,7 +1102,7 @@ Licensed under the MIT license.
|
||||
axis.datamax = max;
|
||||
}
|
||||
|
||||
$.each(allAxes(), function (_, axis) {
|
||||
$.each(allAxes(), function(_, axis) {
|
||||
// init axis
|
||||
axis.datamin = topSentry;
|
||||
axis.datamax = bottomSentry;
|
||||
@ -1113,7 +1113,7 @@ Licensed under the MIT license.
|
||||
s = series[i];
|
||||
s.datapoints = { points: [] };
|
||||
|
||||
executeHooks(hooks.processRawData, [ s, s.data, s.datapoints ]);
|
||||
executeHooks(hooks.processRawData, [s, s.data, s.datapoints]);
|
||||
}
|
||||
|
||||
// first pass: clean and copy data
|
||||
@ -1213,7 +1213,7 @@ Licensed under the MIT license.
|
||||
points[k + 1] = points[k - ps + 1] || 0;
|
||||
|
||||
// if series has null values, let's give the last !null value a nice step
|
||||
if(nullify)
|
||||
if (nullify)
|
||||
points[k] = p[0];
|
||||
|
||||
// we've added a point, better reflect that
|
||||
@ -1239,7 +1239,7 @@ Licensed under the MIT license.
|
||||
}
|
||||
}
|
||||
|
||||
executeHooks(hooks.processDatapoints, [ s, s.datapoints]);
|
||||
executeHooks(hooks.processDatapoints, [s, s.datapoints]);
|
||||
}
|
||||
|
||||
// second pass: find datamax/datamin for auto-scaling
|
||||
@ -1306,7 +1306,7 @@ Licensed under the MIT license.
|
||||
updateAxis(s.yaxis, ymin, ymax);
|
||||
}
|
||||
|
||||
$.each(allAxes(), function (_, axis) {
|
||||
$.each(allAxes(), function(_, axis) {
|
||||
if (axis.datamin == topSentry)
|
||||
axis.datamin = null;
|
||||
if (axis.datamax == bottomSentry)
|
||||
@ -1401,14 +1401,14 @@ Licensed under the MIT license.
|
||||
|
||||
// data point to canvas coordinate
|
||||
if (t == identity) // slight optimization
|
||||
axis.p2c = function (p) { return (p - m) * s; };
|
||||
axis.p2c = function(p) { return (p - m) * s; };
|
||||
else
|
||||
axis.p2c = function (p) { return (t(p) - m) * s; };
|
||||
axis.p2c = function(p) { return (t(p) - m) * s; };
|
||||
// canvas coordinate to data point
|
||||
if (!it)
|
||||
axis.c2p = function (c) { return m + c / s; };
|
||||
axis.c2p = function(c) { return m + c / s; };
|
||||
else
|
||||
axis.c2p = function (c) { return it(m + c / s); };
|
||||
axis.c2p = function(c) { return it(m + c / s); };
|
||||
}
|
||||
|
||||
function measureTickLabels(axis) {
|
||||
@ -1555,7 +1555,7 @@ Licensed under the MIT license.
|
||||
if (minMargin == null) {
|
||||
minMargin = 0;
|
||||
for (i = 0; i < series.length; ++i)
|
||||
minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth/2));
|
||||
minMargin = Math.max(minMargin, 2 * (series[i].points.radius + series[i].points.lineWidth / 2));
|
||||
}
|
||||
|
||||
var margins = {
|
||||
@ -1568,7 +1568,7 @@ Licensed under the MIT license.
|
||||
// check axis labels, note we don't check the actual
|
||||
// labels but instead use the overall width/height to not
|
||||
// jump as much around with replots
|
||||
$.each(allAxes(), function (_, axis) {
|
||||
$.each(allAxes(), function(_, axis) {
|
||||
if (axis.reserveSpace && axis.ticks && axis.ticks.length) {
|
||||
if (axis.direction === "x") {
|
||||
margins.left = Math.max(margins.left, axis.labelWidth / 2);
|
||||
@ -1601,7 +1601,7 @@ Licensed under the MIT license.
|
||||
// If the grid is visible, add its border width to the offset
|
||||
|
||||
for (var a in plotOffset) {
|
||||
if(typeof(options.grid.borderWidth) == "object") {
|
||||
if (typeof (options.grid.borderWidth) == "object") {
|
||||
plotOffset[a] += showGrid ? options.grid.borderWidth[a] : 0;
|
||||
}
|
||||
else {
|
||||
@ -1609,7 +1609,7 @@ Licensed under the MIT license.
|
||||
}
|
||||
}
|
||||
|
||||
$.each(axes, function (_, axis) {
|
||||
$.each(axes, function(_, axis) {
|
||||
var axisOpts = axis.options;
|
||||
axis.show = axisOpts.show == null ? axis.used : axisOpts.show;
|
||||
axis.reserveSpace = axisOpts.reserveSpace == null ? axis.show : axisOpts.reserveSpace;
|
||||
@ -1620,13 +1620,13 @@ Licensed under the MIT license.
|
||||
|
||||
if (showGrid) {
|
||||
|
||||
var allocatedAxes = $.grep(axes, function (axis) {
|
||||
var allocatedAxes = $.grep(axes, function(axis) {
|
||||
return axis.show || axis.reserveSpace;
|
||||
});
|
||||
|
||||
var snaped = false;
|
||||
for (var i = 0; i < 2; i++) {
|
||||
$.each(allocatedAxes, function (_, axis) {
|
||||
$.each(allocatedAxes, function(_, axis) {
|
||||
// make the ticks
|
||||
setupTickGeneration(axis);
|
||||
setTicks(axis);
|
||||
@ -1653,7 +1653,7 @@ Licensed under the MIT license.
|
||||
// might stick out
|
||||
adjustLayoutForThingsStickingOut();
|
||||
|
||||
$.each(allocatedAxes, function (_, axis) {
|
||||
$.each(allocatedAxes, function(_, axis) {
|
||||
allocateAxisBoxSecondPhase(axis);
|
||||
});
|
||||
}
|
||||
@ -1663,7 +1663,7 @@ Licensed under the MIT license.
|
||||
plotHeight = surface.height - plotOffset.bottom - plotOffset.top;
|
||||
|
||||
// now we got the proper plot dimensions, we can compute the scaling
|
||||
$.each(axes, function (_, axis) {
|
||||
$.each(axes, function(_, axis) {
|
||||
setTransformationHelpers(axis);
|
||||
});
|
||||
|
||||
@ -1795,7 +1795,7 @@ Licensed under the MIT license.
|
||||
|
||||
if (!axis.tickGenerator) {
|
||||
|
||||
axis.tickGenerator = function (axis) {
|
||||
axis.tickGenerator = function(axis) {
|
||||
|
||||
var ticks = [],
|
||||
start = floorInBase(axis.min, axis.tickSize),
|
||||
@ -1812,7 +1812,7 @@ Licensed under the MIT license.
|
||||
return ticks;
|
||||
};
|
||||
|
||||
axis.tickFormatter = function (value, axis) {
|
||||
axis.tickFormatter = function(value, axis) {
|
||||
|
||||
var factor = axis.tickDecimals ? Math.pow(10, axis.tickDecimals) : 1;
|
||||
var formatted = "" + Math.round(value * factor) / factor;
|
||||
@ -1833,7 +1833,7 @@ Licensed under the MIT license.
|
||||
}
|
||||
|
||||
if ($.isFunction(opts.tickFormatter))
|
||||
axis.tickFormatter = function (v, axis) { return "" + opts.tickFormatter(v, axis); };
|
||||
axis.tickFormatter = function(v, axis) { return "" + opts.tickFormatter(v, axis); };
|
||||
|
||||
if (opts.alignTicksWithAxis != null) {
|
||||
var otherAxis = (axis.direction == "x" ? xaxes : yaxes)[opts.alignTicksWithAxis - 1];
|
||||
@ -1847,7 +1847,7 @@ Licensed under the MIT license.
|
||||
axis.max = Math.max(axis.max, niceTicks[niceTicks.length - 1]);
|
||||
}
|
||||
|
||||
axis.tickGenerator = function (axis) {
|
||||
axis.tickGenerator = function(axis) {
|
||||
// copy ticks, scaled to this axis
|
||||
var ticks = [], v, i;
|
||||
for (i = 0; i < otherAxis.ticks.length; ++i) {
|
||||
@ -2185,20 +2185,20 @@ Licensed under the MIT license.
|
||||
// If either borderWidth or borderColor is an object, then draw the border
|
||||
// line by line instead of as one rectangle
|
||||
bc = options.grid.borderColor;
|
||||
if(typeof bw == "object" || typeof bc == "object") {
|
||||
if (typeof bw == "object" || typeof bc == "object") {
|
||||
if (typeof bw !== "object") {
|
||||
bw = {top: bw, right: bw, bottom: bw, left: bw};
|
||||
bw = { top: bw, right: bw, bottom: bw, left: bw };
|
||||
}
|
||||
if (typeof bc !== "object") {
|
||||
bc = {top: bc, right: bc, bottom: bc, left: bc};
|
||||
bc = { top: bc, right: bc, bottom: bc, left: bc };
|
||||
}
|
||||
|
||||
if (bw.top > 0) {
|
||||
ctx.strokeStyle = bc.top;
|
||||
ctx.lineWidth = bw.top;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(0 - bw.left, 0 - bw.top/2);
|
||||
ctx.lineTo(plotWidth, 0 - bw.top/2);
|
||||
ctx.moveTo(0 - bw.left, 0 - bw.top / 2);
|
||||
ctx.lineTo(plotWidth, 0 - bw.top / 2);
|
||||
ctx.stroke();
|
||||
}
|
||||
|
||||
@ -2224,15 +2224,15 @@ Licensed under the MIT license.
|
||||
ctx.strokeStyle = bc.left;
|
||||
ctx.lineWidth = bw.left;
|
||||
ctx.beginPath();
|
||||
ctx.moveTo(0 - bw.left/2, plotHeight + bw.bottom);
|
||||
ctx.lineTo(0- bw.left/2, 0);
|
||||
ctx.moveTo(0 - bw.left / 2, plotHeight + bw.bottom);
|
||||
ctx.lineTo(0 - bw.left / 2, 0);
|
||||
ctx.stroke();
|
||||
}
|
||||
}
|
||||
else {
|
||||
ctx.lineWidth = bw;
|
||||
ctx.strokeStyle = options.grid.borderColor;
|
||||
ctx.strokeRect(-bw/2, -bw/2, plotWidth + bw, plotHeight + bw);
|
||||
ctx.strokeRect(-bw / 2, -bw / 2, plotWidth + bw, plotHeight + bw);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2241,7 +2241,7 @@ Licensed under the MIT license.
|
||||
|
||||
function drawAxisLabels() {
|
||||
|
||||
$.each(allAxes(), function (_, axis) {
|
||||
$.each(allAxes(), function(_, axis) {
|
||||
var box = axis.box,
|
||||
legacyStyles = axis.direction + "Axis " + axis.direction + axis.n + "Axis",
|
||||
layer = "flot-" + axis.direction + "-axis flot-" + axis.direction + axis.n + "-axis " + legacyStyles,
|
||||
@ -2319,7 +2319,7 @@ Licensed under the MIT license.
|
||||
var olddatapoints = datapoints.points
|
||||
datapoints.points = abandonedPoints;
|
||||
|
||||
series.points.radius = series.lines.lineWidth/2;
|
||||
series.points.radius = series.lines.lineWidth / 2;
|
||||
// plot the orphan points with a radius of lineWidth/2
|
||||
drawSeriesPoints(series);
|
||||
// reset old info
|
||||
@ -2575,10 +2575,10 @@ Licensed under the MIT license.
|
||||
ctx.lineWidth = sw;
|
||||
ctx.strokeStyle = "rgba(0,0,0,0.1)";
|
||||
// position shadow at angle from the mid of line
|
||||
var angle = Math.PI/18;
|
||||
plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/2), Math.cos(angle) * (lw/2 + sw/2), series.xaxis, series.yaxis);
|
||||
ctx.lineWidth = sw/2;
|
||||
plotLine(series.datapoints, Math.sin(angle) * (lw/2 + sw/4), Math.cos(angle) * (lw/2 + sw/4), series.xaxis, series.yaxis);
|
||||
var angle = Math.PI / 18;
|
||||
plotLine(series.datapoints, Math.sin(angle) * (lw / 2 + sw / 2), Math.cos(angle) * (lw / 2 + sw / 2), series.xaxis, series.yaxis);
|
||||
ctx.lineWidth = sw / 2;
|
||||
plotLine(series.datapoints, Math.sin(angle) * (lw / 2 + sw / 4), Math.cos(angle) * (lw / 2 + sw / 4), series.xaxis, series.yaxis);
|
||||
}
|
||||
|
||||
ctx.lineWidth = lw;
|
||||
@ -2633,7 +2633,7 @@ Licensed under the MIT license.
|
||||
// Doing the conditional here allows the shadow setting to still be
|
||||
// optional even with a lineWidth of 0.
|
||||
|
||||
if( lw == 0 )
|
||||
if (lw == 0)
|
||||
lw = 0.0001;
|
||||
|
||||
if (lw > 0 && sw > 0) {
|
||||
@ -2641,11 +2641,11 @@ Licensed under the MIT license.
|
||||
var w = sw / 2;
|
||||
ctx.lineWidth = w;
|
||||
ctx.strokeStyle = "rgba(0,0,0,0.1)";
|
||||
plotPoints(series.datapoints, radius, null, w + w/2, true,
|
||||
plotPoints(series.datapoints, radius, null, w + w / 2, true,
|
||||
series.xaxis, series.yaxis, symbol);
|
||||
|
||||
ctx.strokeStyle = "rgba(0,0,0,0.2)";
|
||||
plotPoints(series.datapoints, radius, null, w/2, true,
|
||||
plotPoints(series.datapoints, radius, null, w / 2, true,
|
||||
series.xaxis, series.yaxis, symbol);
|
||||
}
|
||||
|
||||
@ -2793,7 +2793,7 @@ Licensed under the MIT license.
|
||||
barLeft = -series.bars.barWidth / 2;
|
||||
}
|
||||
|
||||
var fillStyleCallback = series.bars.fill ? function (bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;
|
||||
var fillStyleCallback = series.bars.fill ? function(bottom, top) { return getFillStyle(series.bars, series.color, bottom, top); } : null;
|
||||
plotBars(series.datapoints, barLeft, barLeft + series.bars.barWidth, fillStyleCallback, series.xaxis, series.yaxis);
|
||||
ctx.restore();
|
||||
}
|
||||
@ -2815,7 +2815,7 @@ Licensed under the MIT license.
|
||||
function insertLegend() {
|
||||
|
||||
if (options.legend.container != null) {
|
||||
$(options.legend.container).html("");
|
||||
$.find(options.legend.container).html("");
|
||||
} else {
|
||||
placeholder.find(".legend").remove();
|
||||
}
|
||||
@ -2901,7 +2901,7 @@ Licensed under the MIT license.
|
||||
pos += 'right:' + (m[0] + plotOffset.right) + 'px;';
|
||||
else if (p.charAt(1) == "w")
|
||||
pos += 'left:' + (m[0] + plotOffset.left) + 'px;';
|
||||
var legend = $('<div class="legend">' + table.replace('style="', 'style="position:absolute;' + pos +';') + '</div>').appendTo(placeholder);
|
||||
var legend = $('<div class="legend">' + table.replace('style="', 'style="position:absolute;' + pos + ';') + '</div>').appendTo(placeholder);
|
||||
if (options.legend.backgroundOpacity != 0.0) {
|
||||
// put in the transparent background
|
||||
// separately to avoid blended labels and
|
||||
@ -2917,7 +2917,7 @@ Licensed under the MIT license.
|
||||
c = c.toString();
|
||||
}
|
||||
var div = legend.children();
|
||||
$('<div style="position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos +'background-color:' + c + ';"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);
|
||||
$('<div style="position:absolute;width:' + div.width() + 'px;height:' + div.height() + 'px;' + pos + 'background-color:' + c + ';"> </div>').prependTo(legend).css('opacity', options.legend.backgroundOpacity);
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3020,10 +3020,12 @@ Licensed under the MIT license.
|
||||
j = item[1];
|
||||
ps = series[i].datapoints.pointsize;
|
||||
|
||||
return { datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),
|
||||
return {
|
||||
datapoint: series[i].datapoints.points.slice(j * ps, (j + 1) * ps),
|
||||
dataIndex: j,
|
||||
series: series[i],
|
||||
seriesIndex: i };
|
||||
seriesIndex: i
|
||||
};
|
||||
}
|
||||
|
||||
return null;
|
||||
@ -3032,13 +3034,13 @@ Licensed under the MIT license.
|
||||
function onMouseMove(e) {
|
||||
if (options.grid.hoverable)
|
||||
triggerClickHoverEvent("plothover", e,
|
||||
function (s) { return s["hoverable"] != false; });
|
||||
function(s) { return s["hoverable"] != false; });
|
||||
}
|
||||
|
||||
function onMouseLeave(e) {
|
||||
if (options.grid.hoverable)
|
||||
triggerClickHoverEvent("plothover", e,
|
||||
function (s) { return false; });
|
||||
function(s) { return false; });
|
||||
}
|
||||
|
||||
function onClick(e) {
|
||||
@ -3046,7 +3048,7 @@ Licensed under the MIT license.
|
||||
return;
|
||||
}
|
||||
|
||||
triggerClickHoverEvent("plotclick", e, function (s) { return s["clickable"] != false; });
|
||||
triggerClickHoverEvent("plotclick", e, function(s) { return s["clickable"] != false; });
|
||||
}
|
||||
|
||||
// grafana addon - added to support mobile devices click in plot
|
||||
@ -3056,7 +3058,7 @@ Licensed under the MIT license.
|
||||
}
|
||||
|
||||
if (!eventHolder.is(e.target) && eventHolder.has(e.target).length === 0) {
|
||||
triggerClickHoverEvent("plotleave", e, function (s) { false; });
|
||||
triggerClickHoverEvent("plotleave", e, function(s) { false; });
|
||||
return;
|
||||
}
|
||||
|
||||
@ -3125,7 +3127,7 @@ Licensed under the MIT license.
|
||||
highlight(item.series, item.datapoint, eventname);
|
||||
}
|
||||
|
||||
placeholder.trigger(eventname, [ pos, item ]);
|
||||
placeholder.trigger(eventname, [pos, item]);
|
||||
}
|
||||
|
||||
function triggerRedrawOverlay() {
|
||||
@ -3257,7 +3259,7 @@ Licensed under the MIT license.
|
||||
octx.strokeStyle = highlightColor;
|
||||
|
||||
drawBar(point[0], point[1], point[2] || 0, barLeft, barLeft + series.bars.barWidth,
|
||||
function () { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);
|
||||
function() { return fillStyle; }, series.xaxis, series.yaxis, octx, series.bars.horizontal, series.bars.lineWidth);
|
||||
}
|
||||
|
||||
function getColorOrGradient(spec, bottom, top, defaultColor) {
|
||||
|
Loading…
Reference in New Issue
Block a user