metron-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From ceste...@apache.org
Subject [20/66] [abbrv] incubator-metron git commit: METRON-237 Remove metron-ui from the code base. (mmiklavcic via cestella) closes apache/incubator-metron#159
Date Fri, 24 Jun 2016 20:57:18 GMT
http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/7aa2f1ae/metron-ui/lib/public/vendor/angular/bindonce.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/vendor/angular/bindonce.js b/metron-ui/lib/public/vendor/angular/bindonce.js
deleted file mode 100755
index 0327d87..0000000
--- a/metron-ui/lib/public/vendor/angular/bindonce.js
+++ /dev/null
@@ -1,269 +0,0 @@
-'use strict';
-/**
- * Bindonce - Zero watches binding for AngularJs
- * @version v0.2.1 - 2013-05-07
- * @link https://github.com/Pasvaz/bindonce
- * @author Pasquale Vazzana <pasqualevazzana@gmail.com>
- * @license MIT License, http://www.opensource.org/licenses/MIT
- */
-
- angular.module('pasvaz.bindonce', [])
-
- .directive('bindonce', function()
- {
-  var toBoolean = function(value)
-  {
-    if (value && value.length !== 0)
-    {
-      var v = angular.lowercase("" + value);
-      value = !(v == 'f' || v == '0' || v == 'false' || v == 'no' || v == 'n' || v == '[]');
-    }
-    else
-    {
-      value = false;
-    }
-    return value;
-  }
-
-  var msie = parseInt((/msie (\d+)/.exec(angular.lowercase(navigator.userAgent)) || [])[1], 10);
-  if (isNaN(msie))
-  {
-    msie = parseInt((/trident\/.*; rv:(\d+)/.exec(angular.lowercase(navigator.userAgent)) || [])[1], 10);
-  }
-
-  var bindonceDirective =
-  {
-    restrict: "AM",
-    controller: ['$scope', '$element', '$attrs', '$interpolate', function($scope, $element, $attrs, $interpolate)
-    {
-      var showHideBinder = function(elm, attr, value)
-      {
-        var show = (attr == 'show') ? '' : 'none';
-        var hide = (attr == 'hide') ? '' : 'none';
-        elm.css('display', toBoolean(value) ? show : hide);
-      }
-      var classBinder = function(elm, value)
-      {
-        if (angular.isObject(value) && !angular.isArray(value))
-        {
-          var results = [];
-          angular.forEach(value, function(value, index)
-          {
-            if (value) results.push(index);
-          });
-          value = results;
-        }
-        if (value)
-        {
-          elm.addClass(angular.isArray(value) ? value.join(' ') : value);
-        }
-      }
-
-      var ctrl =
-      {
-        watcherRemover : undefined,
-        binders : [],
-        group : $attrs.boName,
-        element : $element,
-        ran : false,
-
-        addBinder : function(binder)
-        {
-          this.binders.push(binder);
-
-          // In case of late binding (when using the directive bo-name/bo-parent)
-          // it happens only when you use nested bindonce, if the bo-children
-          // are not dom children the linking can follow another order
-          if (this.ran)
-          {
-            this.runBinders();
-          }
-        },
-
-        setupWatcher : function(bindonceValue)
-        {
-          var that = this;
-          this.watcherRemover = $scope.$watch(bindonceValue, function(newValue)
-          {
-            if (newValue == undefined) return;
-            that.removeWatcher();
-            that.runBinders();
-          }, true);
-        },
-
-        removeWatcher : function()
-        {
-          if (this.watcherRemover != undefined)
-          {
-            this.watcherRemover();
-            this.watcherRemover = undefined;
-          }
-        },
-
-        runBinders : function()
-        {
-          var i, max;
-          for (i = 0, max = this.binders.length; i < max; i ++)
-          {
-            var binder = this.binders[i];
-            if (this.group && this.group != binder.group ) continue;
-            var value = binder.scope.$eval((binder.interpolate) ? $interpolate(binder.value) : binder.value);
-            switch(binder.attr)
-            {
-              case 'if':
-                if (toBoolean(value))
-                {
-                  binder.transclude(binder.scope.$new(), function (clone)
-                  {
-                    var parent = binder.element.parent();
-                    var afterNode = binder.element && binder.element[binder.element.length - 1];
-                    var parentNode = parent && parent[0] || afterNode && afterNode.parentNode;
-                    var afterNextSibling = (afterNode && afterNode.nextSibling) || null;
-                    angular.forEach(clone, function(node)
-                    {
-                      parentNode.insertBefore(node, afterNextSibling);
-                    });
-                  });
-                }
-                break;
-              case 'hide':
-              case 'show':
-                showHideBinder(binder.element, binder.attr, value);
-                break;
-              case 'class':
-                classBinder(binder.element, value);
-                break;
-              case 'text':
-                binder.element.text(value);
-                break;
-              case 'html':
-                binder.element.html(value);
-                break;
-              case 'style':
-                binder.element.css(value);
-                break;
-              case 'src':
-                binder.element.attr(binder.attr, value);
-                if (msie) binder.element.prop('src', value);
-              case 'attr':
-                angular.forEach(binder.attrs, function(attrValue, attrKey)
-                {
-                  var newAttr, newValue;
-                  if (attrKey.match(/^boAttr./) && binder.attrs[attrKey])
-                  {
-                    newAttr = attrKey.replace(/^boAttr/, '').replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();
-                    newValue = binder.scope.$eval(binder.attrs[attrKey]);
-                    binder.element.attr(newAttr, newValue);
-                  }
-                });
-                break;
-              case 'href':
-              case 'alt':
-              case 'title':
-              case 'id':
-              case 'value':
-                binder.element.attr(binder.attr, value);
-                break;
-            }
-          }
-          this.ran = true;
-          this.binders = [];
-        }
-      }
-
-      return ctrl;
-    }],
-
-    link: function(scope, elm, attrs, bindonceController)
-    {
-      var value = (attrs.bindonce) ? scope.$eval(attrs.bindonce) : true;
-      if (value != undefined)
-      {
-        bindonceController.runBinders();
-      }
-      else
-      {
-        bindonceController.setupWatcher(attrs.bindonce);
-        elm.bind("$destroy", bindonceController.removeWatcher);
-      }
-    }
-  };
-
-  return bindonceDirective;
-});
-
-angular.forEach(
-[
-  {directiveName:'boShow', attribute: 'show'},
-  {directiveName:'boIf', attribute: 'if', transclude: 'element', terminal: true, priority:1000},
-  {directiveName:'boHide', attribute:'hide'},
-  {directiveName:'boClass', attribute:'class'},
-  {directiveName:'boText', attribute:'text'},
-  {directiveName:'boHtml', attribute:'html'},
-  {directiveName:'boSrcI', attribute:'src', interpolate:true},
-  {directiveName:'boSrc', attribute:'src'},
-  {directiveName:'boHrefI', attribute:'href', interpolate:true},
-  {directiveName:'boHref', attribute:'href'},
-  {directiveName:'boAlt', attribute:'alt'},
-  {directiveName:'boTitle', attribute:'title'},
-  {directiveName:'boId', attribute:'id'},
-  {directiveName:'boStyle', attribute:'style'},
-  {directiveName:'boValue', attribute:'value'},
-  {directiveName:'boAttr', attribute:'attr'}
-],
-function(boDirective)
-{
-  var childPriority = 200;
-  return angular.module('pasvaz.bindonce').directive(boDirective.directiveName, function()
-  {
-    var bindonceDirective =
-    {
-      priority: boDirective.priority || childPriority,
-      transclude: boDirective.transclude || false,
-      terminal: boDirective.terminal || false,
-      require: '^bindonce',
-      compile: function (tElement, tAttrs, transclude)
-      {
-        return function(scope, elm, attrs, bindonceController)
-        {
-          var name = attrs.boParent;
-          if (name && bindonceController.group != name)
-          {
-            var element = bindonceController.element.parent();
-            bindonceController = undefined;
-            var parentValue;
-
-            while (element[0].nodeType != 9 && element.length)
-            {
-              if ((parentValue = element.data('$bindonceController'))
-                && parentValue.group == name)
-              {
-                bindonceController = parentValue
-                break;
-              }
-              element = element.parent();
-            }
-            if (!bindonceController)
-            {
-              throw Error("No bindonce controller: " + name);
-            }
-          }
-
-          bindonceController.addBinder(
-          {
-            element   :   elm,
-            attr    :   boDirective.attribute,
-            attrs     :   attrs,
-            value   :   attrs[boDirective.directiveName],
-            interpolate :   boDirective.interpolate,
-            group   :   name,
-            transclude  :   transclude,
-            scope   :   scope
-          });
-        }
-      }
-    }
-
-    return bindonceDirective;
-  });
-});
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/7aa2f1ae/metron-ui/lib/public/vendor/angular/datepicker.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/vendor/angular/datepicker.js b/metron-ui/lib/public/vendor/angular/datepicker.js
deleted file mode 100755
index 41e07ba..0000000
--- a/metron-ui/lib/public/vendor/angular/datepicker.js
+++ /dev/null
@@ -1,1046 +0,0 @@
-/* =========================================================
- * bootstrap-datepicker.js
- * http://www.eyecon.ro/bootstrap-datepicker
- * =========================================================
- * Copyright 2012 Stefan Petre
- * Improvements by Andrew Rowls
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================= */
-
-!function( $ ) {
-
-	function UTCDate(){
-		return new Date(Date.UTC.apply(Date, arguments));
-	}
-	function UTCToday(){
-		var today = new Date();
-		return UTCDate(today.getUTCFullYear(), today.getUTCMonth(), today.getUTCDate());
-	}
-
-	// Picker object
-
-	var Datepicker = function(element, options) {
-		var that = this;
-
-		this.element = $(element);
-		this.language = options.language||this.element.data('date-language')||"en";
-		this.language = this.language in dates ? this.language : this.language.split('-')[0]; //Check if "de-DE" style date is available, if not language should fallback to 2 letter code eg "de"
-		this.language = this.language in dates ? this.language : "en";
-		this.isRTL = dates[this.language].rtl||false;
-		this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||dates[this.language].format||'mm/dd/yyyy');
-		this.isInline = false;
-		this.isInput = this.element.is('input');
-		this.component = this.element.is('.date') ? this.element.find('.add-on, .btn') : false;
-		this.hasInput = this.component && this.element.find('input').length;
-		if(this.component && this.component.length === 0)
-			this.component = false;
-
-		this.forceParse = true;
-		if ('forceParse' in options) {
-			this.forceParse = options.forceParse;
-		} else if ('dateForceParse' in this.element.data()) {
-			this.forceParse = this.element.data('date-force-parse');
-		}
-
-		this.picker = $(DPGlobal.template);
-		this._buildEvents();
-		this._attachEvents();
-
-		if(this.isInline) {
-			this.picker.addClass('datepicker-inline').appendTo(this.element);
-		} else {
-			this.picker.addClass('datepicker-dropdown dropdown-menu');
-		}
-		if (this.isRTL){
-			this.picker.addClass('datepicker-rtl');
-			this.picker.find('.prev i, .next i')
-						.toggleClass('icon-arrow-left icon-arrow-right');
-		}
-
-		this.autoclose = false;
-		if ('autoclose' in options) {
-			this.autoclose = options.autoclose;
-		} else if ('dateAutoclose' in this.element.data()) {
-			this.autoclose = this.element.data('date-autoclose');
-		}
-
-		this.keyboardNavigation = true;
-		if ('keyboardNavigation' in options) {
-			this.keyboardNavigation = options.keyboardNavigation;
-		} else if ('dateKeyboardNavigation' in this.element.data()) {
-			this.keyboardNavigation = this.element.data('date-keyboard-navigation');
-		}
-
-		this.viewMode = this.startViewMode = 0;
-		switch(options.startView || this.element.data('date-start-view')){
-			case 2:
-			case 'decade':
-				this.viewMode = this.startViewMode = 2;
-				break;
-			case 1:
-			case 'year':
-				this.viewMode = this.startViewMode = 1;
-				break;
-		}
-
-		this.minViewMode = options.minViewMode||this.element.data('date-min-view-mode')||0;
-		if (typeof this.minViewMode === 'string') {
-			switch (this.minViewMode) {
-				case 'months':
-					this.minViewMode = 1;
-					break;
-				case 'years':
-					this.minViewMode = 2;
-					break;
-				default:
-					this.minViewMode = 0;
-					break;
-			}
-		}
-
-		this.viewMode = this.startViewMode = Math.max(this.startViewMode, this.minViewMode);
-
-		this.todayBtn = (options.todayBtn||this.element.data('date-today-btn')||false);
-		this.todayHighlight = (options.todayHighlight||this.element.data('date-today-highlight')||false);
-
-		this.calendarWeeks = false;
-		if ('calendarWeeks' in options) {
-			this.calendarWeeks = options.calendarWeeks;
-		} else if ('dateCalendarWeeks' in this.element.data()) {
-			this.calendarWeeks = this.element.data('date-calendar-weeks');
-		}
-		if (this.calendarWeeks)
-			this.picker.find('tfoot th.today')
-						.attr('colspan', function(i, val){
-							return parseInt(val) + 1;
-						});
-
-		this._allow_update = false;
-
-		this.weekStart = ((options.weekStart||this.element.data('date-weekstart')||dates[this.language].weekStart||0) % 7);
-		this.weekEnd = ((this.weekStart + 6) % 7);
-		this.startDate = -Infinity;
-		this.endDate = Infinity;
-		this.daysOfWeekDisabled = [];
-		this.setStartDate(options.startDate||this.element.data('date-startdate'));
-		this.setEndDate(options.endDate||this.element.data('date-enddate'));
-		this.setDaysOfWeekDisabled(options.daysOfWeekDisabled||this.element.data('date-days-of-week-disabled'));
-		this.fillDow();
-		this.fillMonths();
-
-		this._allow_update = true;
-
-		this.update();
-		this.showMode();
-
-		if(this.isInline) {
-			this.show();
-		}
-	};
-
-	Datepicker.prototype = {
-		constructor: Datepicker,
-
-		_events: [],
-		_secondaryEvents: [],
-		_applyEvents: function(evs){
-			for (var i=0, el, ev; i<evs.length; i++){
-				el = evs[i][0];
-				ev = evs[i][1];
-				el.on(ev);
-			}
-		},
-		_unapplyEvents: function(evs){
-			for (var i=0, el, ev; i<evs.length; i++){
-				el = evs[i][0];
-				ev = evs[i][1];
-				el.off(ev);
-			}
-		},
-		_buildEvents: function(){
-			if (this.isInput) { // single input
-				this._events = [
-					[this.element, {
-						focus: $.proxy(this.show, this),
-						keyup: $.proxy(this.update, this),
-						keydown: $.proxy(this.keydown, this)
-					}]
-				];
-			}
-			else if (this.component && this.hasInput){ // component: input + button
-				this._events = [
-					// For components that are not readonly, allow keyboard nav
-					[this.element.find('input'), {
-						focus: $.proxy(this.show, this),
-						keyup: $.proxy(this.update, this),
-						keydown: $.proxy(this.keydown, this)
-					}],
-					[this.component, {
-						click: $.proxy(this.show, this)
-					}]
-				];
-			}
-			else if (this.element.is('div')) {  // inline datepicker
-				this.isInline = true;
-			}
-			else {
-				this._events = [
-					[this.element, {
-						click: $.proxy(this.show, this)
-					}]
-				];
-			}
-
-			this._secondaryEvents = [
-				[this.picker, {
-					click: $.proxy(this.click, this)
-				}],
-				[$(window), {
-					resize: $.proxy(this.place, this)
-				}],
-				[$(document), {
-					mousedown: $.proxy(function (e) {
-						// Clicked outside the datepicker, hide it
-						if ($(e.target).closest('.datepicker.datepicker-inline, .datepicker.datepicker-dropdown').length === 0) {
-							this.hide();
-						}
-					}, this)
-				}]
-			];
-		},
-		_attachEvents: function(){
-			this._detachEvents();
-			this._applyEvents(this._events);
-		},
-		_detachEvents: function(){
-			this._unapplyEvents(this._events);
-		},
-		_attachSecondaryEvents: function(){
-			this._detachSecondaryEvents();
-			this._applyEvents(this._secondaryEvents);
-		},
-		_detachSecondaryEvents: function(){
-			this._unapplyEvents(this._secondaryEvents);
-		},
-
-		show: function(e) {
-			if (!this.isInline)
-				this.picker.appendTo('body');
-			this.picker.show();
-			this.height = this.component ? this.component.outerHeight() : this.element.outerHeight();
-			this.place();
-			this._attachSecondaryEvents();
-			if (e) {
-				e.preventDefault();
-			}
-			this.element.trigger({
-				type: 'show',
-				date: this.date
-			});
-		},
-
-		hide: function(e){
-			if(this.isInline) return;
-			if (!this.picker.is(':visible')) return;
-			this.picker.hide().detach();
-			this._detachSecondaryEvents();
-			this.viewMode = this.startViewMode;
-			this.showMode();
-
-			if (
-				this.forceParse &&
-				(
-					this.isInput && this.element.val() ||
-					this.hasInput && this.element.find('input').val()
-				)
-			)
-				this.setValue();
-			this.element.trigger({
-				type: 'hide',
-				date: this.date
-			});
-		},
-
-		remove: function() {
-			this.hide();
-			this._detachEvents();
-			this._detachSecondaryEvents();
-			this.picker.remove();
-			delete this.element.data().datepicker;
-			if (!this.isInput) {
-				delete this.element.data().date;
-			}
-		},
-
-		getDate: function() {
-			var d = this.getUTCDate();
-			return new Date(d.getTime() + (d.getTimezoneOffset()*60000));
-		},
-
-		getUTCDate: function() {
-			return this.date;
-		},
-
-		setDate: function(d) {
-			this.setUTCDate(new Date(d.getTime() - (d.getTimezoneOffset()*60000)));
-		},
-
-		setUTCDate: function(d) {
-			this.date = d;
-			this.setValue();
-		},
-
-		setValue: function() {
-			var formatted = this.getFormattedDate();
-			if (!this.isInput) {
-				if (this.component){
-					this.element.find('input').val(formatted);
-				}
-				this.element.data('date', formatted);
-			} else {
-				this.element.val(formatted);
-			}
-		},
-
-		getFormattedDate: function(format) {
-			if (format === undefined)
-				format = this.format;
-			return DPGlobal.formatDate(this.date, format, this.language);
-		},
-
-		setStartDate: function(startDate){
-			this.startDate = startDate||-Infinity;
-			if (this.startDate !== -Infinity) {
-				this.startDate = DPGlobal.parseDate(this.startDate, this.format, this.language);
-			}
-			this.update();
-			this.updateNavArrows();
-		},
-
-		setEndDate: function(endDate){
-			this.endDate = endDate||Infinity;
-			if (this.endDate !== Infinity) {
-				this.endDate = DPGlobal.parseDate(this.endDate, this.format, this.language);
-			}
-			this.update();
-			this.updateNavArrows();
-		},
-
-		setDaysOfWeekDisabled: function(daysOfWeekDisabled){
-			this.daysOfWeekDisabled = daysOfWeekDisabled||[];
-			if (!$.isArray(this.daysOfWeekDisabled)) {
-				this.daysOfWeekDisabled = this.daysOfWeekDisabled.split(/,\s*/);
-			}
-			this.daysOfWeekDisabled = $.map(this.daysOfWeekDisabled, function (d) {
-				return parseInt(d, 10);
-			});
-			this.update();
-			this.updateNavArrows();
-		},
-
-		place: function(){
-						if(this.isInline) return;
-			var zIndex = parseInt(this.element.parents().filter(function() {
-							return $(this).css('z-index') != 'auto';
-						}).first().css('z-index'))+10;
-			var offset = this.component ? this.component.parent().offset() : this.element.offset();
-			var height = this.component ? this.component.outerHeight(true) : this.element.outerHeight(true);
-			this.picker.css({
-				top: offset.top + height,
-				left: offset.left,
-				zIndex: zIndex
-			});
-		},
-
-		_allow_update: true,
-		update: function(){
-			if (!this._allow_update) return;
-
-			var date, fromArgs = false;
-			if(arguments && arguments.length && (typeof arguments[0] === 'string' || arguments[0] instanceof Date)) {
-				date = arguments[0];
-				fromArgs = true;
-			} else {
-				date = this.isInput ? this.element.val() : this.element.data('date') || this.element.find('input').val();
-			}
-
-			this.date = DPGlobal.parseDate(date, this.format, this.language);
-
-			if(fromArgs) this.setValue();
-
-			if (this.date < this.startDate) {
-				this.viewDate = new Date(this.startDate);
-			} else if (this.date > this.endDate) {
-				this.viewDate = new Date(this.endDate);
-			} else {
-				this.viewDate = new Date(this.date);
-			}
-			this.fill();
-		},
-
-		fillDow: function(){
-			var dowCnt = this.weekStart,
-			html = '<tr>';
-			if(this.calendarWeeks){
-				var cell = '<th class="cw">&nbsp;</th>';
-				html += cell;
-				this.picker.find('.datepicker-days thead tr:first-child').prepend(cell);
-			}
-			while (dowCnt < this.weekStart + 7) {
-				html += '<th class="dow">'+dates[this.language].daysMin[(dowCnt++)%7]+'</th>';
-			}
-			html += '</tr>';
-			this.picker.find('.datepicker-days thead').append(html);
-		},
-
-		fillMonths: function(){
-			var html = '',
-			i = 0;
-			while (i < 12) {
-				html += '<span class="month">'+dates[this.language].monthsShort[i++]+'</span>';
-			}
-			this.picker.find('.datepicker-months td').html(html);
-		},
-
-		fill: function() {
-			var d = new Date(this.viewDate),
-				year = d.getUTCFullYear(),
-				month = d.getUTCMonth(),
-				startYear = this.startDate !== -Infinity ? this.startDate.getUTCFullYear() : -Infinity,
-				startMonth = this.startDate !== -Infinity ? this.startDate.getUTCMonth() : -Infinity,
-				endYear = this.endDate !== Infinity ? this.endDate.getUTCFullYear() : Infinity,
-				endMonth = this.endDate !== Infinity ? this.endDate.getUTCMonth() : Infinity,
-				currentDate = this.date && this.date.valueOf(),
-				today = new Date();
-			this.picker.find('.datepicker-days thead th.switch')
-						.text(dates[this.language].months[month]+' '+year);
-			this.picker.find('tfoot th.today')
-						.text(dates[this.language].today)
-						.toggle(this.todayBtn !== false);
-			this.updateNavArrows();
-			this.fillMonths();
-			var prevMonth = UTCDate(year, month-1, 28,0,0,0,0),
-				day = DPGlobal.getDaysInMonth(prevMonth.getUTCFullYear(), prevMonth.getUTCMonth());
-			prevMonth.setUTCDate(day);
-			prevMonth.setUTCDate(day - (prevMonth.getUTCDay() - this.weekStart + 7)%7);
-			var nextMonth = new Date(prevMonth);
-			nextMonth.setUTCDate(nextMonth.getUTCDate() + 42);
-			nextMonth = nextMonth.valueOf();
-			var html = [];
-			var clsName;
-			while(prevMonth.valueOf() < nextMonth) {
-				if (prevMonth.getUTCDay() == this.weekStart) {
-					html.push('<tr>');
-					if(this.calendarWeeks){
-						// ISO 8601: First week contains first thursday.
-						// ISO also states week starts on Monday, but we can be more abstract here.
-						var
-							// Start of current week: based on weekstart/current date
-							ws = new Date(+prevMonth + (this.weekStart - prevMonth.getUTCDay() - 7) % 7 * 864e5),
-							// Thursday of this week
-							th = new Date(+ws + (7 + 4 - ws.getUTCDay()) % 7 * 864e5),
-							// First Thursday of year, year from thursday
-							yth = new Date(+(yth = UTCDate(th.getUTCFullYear(), 0, 1)) + (7 + 4 - yth.getUTCDay())%7*864e5),
-							// Calendar week: ms between thursdays, div ms per day, div 7 days
-							calWeek =  (th - yth) / 864e5 / 7 + 1;
-						html.push('<td class="cw">'+ calWeek +'</td>');
-
-					}
-				}
-				clsName = '';
-				if (prevMonth.getUTCFullYear() < year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() < month)) {
-					clsName += ' old';
-				} else if (prevMonth.getUTCFullYear() > year || (prevMonth.getUTCFullYear() == year && prevMonth.getUTCMonth() > month)) {
-					clsName += ' new';
-				}
-				// Compare internal UTC date with local today, not UTC today
-				if (this.todayHighlight &&
-					prevMonth.getUTCFullYear() == today.getFullYear() &&
-					prevMonth.getUTCMonth() == today.getMonth() &&
-					prevMonth.getUTCDate() == today.getDate()) {
-					clsName += ' today';
-				}
-				if (currentDate && prevMonth.valueOf() == currentDate) {
-					clsName += ' active';
-				}
-				if (prevMonth.valueOf() < this.startDate || prevMonth.valueOf() > this.endDate ||
-					$.inArray(prevMonth.getUTCDay(), this.daysOfWeekDisabled) !== -1) {
-					clsName += ' disabled';
-				}
-				html.push('<td class="day'+clsName+'">'+prevMonth.getUTCDate() + '</td>');
-				if (prevMonth.getUTCDay() == this.weekEnd) {
-					html.push('</tr>');
-				}
-				prevMonth.setUTCDate(prevMonth.getUTCDate()+1);
-			}
-			this.picker.find('.datepicker-days tbody').empty().append(html.join(''));
-			var currentYear = this.date && this.date.getUTCFullYear();
-
-			var months = this.picker.find('.datepicker-months')
-						.find('th:eq(1)')
-							.text(year)
-							.end()
-						.find('span').removeClass('active');
-			if (currentYear && currentYear == year) {
-				months.eq(this.date.getUTCMonth()).addClass('active');
-			}
-			if (year < startYear || year > endYear) {
-				months.addClass('disabled');
-			}
-			if (year == startYear) {
-				months.slice(0, startMonth).addClass('disabled');
-			}
-			if (year == endYear) {
-				months.slice(endMonth+1).addClass('disabled');
-			}
-
-			html = '';
-			year = parseInt(year/10, 10) * 10;
-			var yearCont = this.picker.find('.datepicker-years')
-								.find('th:eq(1)')
-									.text(year + '-' + (year + 9))
-									.end()
-								.find('td');
-			year -= 1;
-			for (var i = -1; i < 11; i++) {
-				html += '<span class="year'+(i == -1 || i == 10 ? ' old' : '')+(currentYear == year ? ' active' : '')+(year < startYear || year > endYear ? ' disabled' : '')+'">'+year+'</span>';
-				year += 1;
-			}
-			yearCont.html(html);
-		},
-
-		updateNavArrows: function() {
-			if (!this._allow_update) return;
-
-			var d = new Date(this.viewDate),
-				year = d.getUTCFullYear(),
-				month = d.getUTCMonth();
-			switch (this.viewMode) {
-				case 0:
-					if (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear() && month <= this.startDate.getUTCMonth()) {
-						this.picker.find('.prev').css({visibility: 'hidden'});
-					} else {
-						this.picker.find('.prev').css({visibility: 'visible'});
-					}
-					if (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear() && month >= this.endDate.getUTCMonth()) {
-						this.picker.find('.next').css({visibility: 'hidden'});
-					} else {
-						this.picker.find('.next').css({visibility: 'visible'});
-					}
-					break;
-				case 1:
-				case 2:
-					if (this.startDate !== -Infinity && year <= this.startDate.getUTCFullYear()) {
-						this.picker.find('.prev').css({visibility: 'hidden'});
-					} else {
-						this.picker.find('.prev').css({visibility: 'visible'});
-					}
-					if (this.endDate !== Infinity && year >= this.endDate.getUTCFullYear()) {
-						this.picker.find('.next').css({visibility: 'hidden'});
-					} else {
-						this.picker.find('.next').css({visibility: 'visible'});
-					}
-					break;
-			}
-		},
-
-		click: function(e) {
-			e.preventDefault();
-			var target = $(e.target).closest('span, td, th');
-			if (target.length == 1) {
-				switch(target[0].nodeName.toLowerCase()) {
-					case 'th':
-						switch(target[0].className) {
-							case 'switch':
-								this.showMode(1);
-								break;
-							case 'prev':
-							case 'next':
-								var dir = DPGlobal.modes[this.viewMode].navStep * (target[0].className == 'prev' ? -1 : 1);
-								switch(this.viewMode){
-									case 0:
-										this.viewDate = this.moveMonth(this.viewDate, dir);
-										break;
-									case 1:
-									case 2:
-										this.viewDate = this.moveYear(this.viewDate, dir);
-										break;
-								}
-								this.fill();
-								break;
-							case 'today':
-								var date = new Date();
-								date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
-
-								this.showMode(-2);
-								var which = this.todayBtn == 'linked' ? null : 'view';
-								this._setDate(date, which);
-								break;
-						}
-						break;
-					case 'span':
-						if (!target.is('.disabled')) {
-							this.viewDate.setUTCDate(1);
-							if (target.is('.month')) {
-								var day = 1;
-								var month = target.parent().find('span').index(target);
-								var year = this.viewDate.getUTCFullYear();
-								this.viewDate.setUTCMonth(month);
-								this.element.trigger({
-									type: 'changeMonth',
-									date: this.viewDate
-								});
-								if ( this.minViewMode == 1 ) {
-									this._setDate(UTCDate(year, month, day,0,0,0,0));
-								}
-							} else {
-								var year = parseInt(target.text(), 10)||0;
-								var day = 1;
-								var month = 0;
-								this.viewDate.setUTCFullYear(year);
-								this.element.trigger({
-									type: 'changeYear',
-									date: this.viewDate
-								});
-								if ( this.minViewMode == 2 ) {
-									this._setDate(UTCDate(year, month, day,0,0,0,0));
-								}
-							}
-							this.showMode(-1);
-							this.fill();
-						}
-						break;
-					case 'td':
-						if (target.is('.day') && !target.is('.disabled')){
-							var day = parseInt(target.text(), 10)||1;
-							var year = this.viewDate.getUTCFullYear(),
-								month = this.viewDate.getUTCMonth();
-							if (target.is('.old')) {
-								if (month === 0) {
-									month = 11;
-									year -= 1;
-								} else {
-									month -= 1;
-								}
-							} else if (target.is('.new')) {
-								if (month == 11) {
-									month = 0;
-									year += 1;
-								} else {
-									month += 1;
-								}
-							}
-							this._setDate(UTCDate(year, month, day,0,0,0,0));
-						}
-						break;
-				}
-			}
-		},
-
-		_setDate: function(date, which){
-			if (!which || which == 'date')
-				this.date = date;
-			if (!which || which  == 'view')
-				this.viewDate = date;
-			this.fill();
-			this.setValue();
-			this.element.trigger({
-				type: 'changeDate',
-				date: this.date
-			});
-			var element;
-			if (this.isInput) {
-				element = this.element;
-			} else if (this.component){
-				element = this.element.find('input');
-			}
-			if (element) {
-				element.change();
-				if (this.autoclose && (!which || which == 'date')) {
-					this.hide();
-				}
-			}
-		},
-
-		moveMonth: function(date, dir){
-			if (!dir) return date;
-			var new_date = new Date(date.valueOf()),
-				day = new_date.getUTCDate(),
-				month = new_date.getUTCMonth(),
-				mag = Math.abs(dir),
-				new_month, test;
-			dir = dir > 0 ? 1 : -1;
-			if (mag == 1){
-				test = dir == -1
-					// If going back one month, make sure month is not current month
-					// (eg, Mar 31 -> Feb 31 == Feb 28, not Mar 02)
-					? function(){ return new_date.getUTCMonth() == month; }
-					// If going forward one month, make sure month is as expected
-					// (eg, Jan 31 -> Feb 31 == Feb 28, not Mar 02)
-					: function(){ return new_date.getUTCMonth() != new_month; };
-				new_month = month + dir;
-				new_date.setUTCMonth(new_month);
-				// Dec -> Jan (12) or Jan -> Dec (-1) -- limit expected date to 0-11
-				if (new_month < 0 || new_month > 11)
-					new_month = (new_month + 12) % 12;
-			} else {
-				// For magnitudes >1, move one month at a time...
-				for (var i=0; i<mag; i++)
-					// ...which might decrease the day (eg, Jan 31 to Feb 28, etc)...
-					new_date = this.moveMonth(new_date, dir);
-				// ...then reset the day, keeping it in the new month
-				new_month = new_date.getUTCMonth();
-				new_date.setUTCDate(day);
-				test = function(){ return new_month != new_date.getUTCMonth(); };
-			}
-			// Common date-resetting loop -- if date is beyond end of month, make it
-			// end of month
-			while (test()){
-				new_date.setUTCDate(--day);
-				new_date.setUTCMonth(new_month);
-			}
-			return new_date;
-		},
-
-		moveYear: function(date, dir){
-			return this.moveMonth(date, dir*12);
-		},
-
-		dateWithinRange: function(date){
-			return date >= this.startDate && date <= this.endDate;
-		},
-
-		keydown: function(e){
-			if (this.picker.is(':not(:visible)')){
-				if (e.keyCode == 27) // allow escape to hide and re-show picker
-					this.show();
-				return;
-			}
-			var dateChanged = false,
-				dir, day, month,
-				newDate, newViewDate;
-			switch(e.keyCode){
-				case 27: // escape
-					this.hide();
-					e.preventDefault();
-					break;
-				case 37: // left
-				case 39: // right
-					if (!this.keyboardNavigation) break;
-					dir = e.keyCode == 37 ? -1 : 1;
-					if (e.ctrlKey){
-						newDate = this.moveYear(this.date, dir);
-						newViewDate = this.moveYear(this.viewDate, dir);
-					} else if (e.shiftKey){
-						newDate = this.moveMonth(this.date, dir);
-						newViewDate = this.moveMonth(this.viewDate, dir);
-					} else {
-						newDate = new Date(this.date);
-						newDate.setUTCDate(this.date.getUTCDate() + dir);
-						newViewDate = new Date(this.viewDate);
-						newViewDate.setUTCDate(this.viewDate.getUTCDate() + dir);
-					}
-					if (this.dateWithinRange(newDate)){
-						this.date = newDate;
-						this.viewDate = newViewDate;
-						this.setValue();
-						this.update();
-						e.preventDefault();
-						dateChanged = true;
-					}
-					break;
-				case 38: // up
-				case 40: // down
-					if (!this.keyboardNavigation) break;
-					dir = e.keyCode == 38 ? -1 : 1;
-					if (e.ctrlKey){
-						newDate = this.moveYear(this.date, dir);
-						newViewDate = this.moveYear(this.viewDate, dir);
-					} else if (e.shiftKey){
-						newDate = this.moveMonth(this.date, dir);
-						newViewDate = this.moveMonth(this.viewDate, dir);
-					} else {
-						newDate = new Date(this.date);
-						newDate.setUTCDate(this.date.getUTCDate() + dir * 7);
-						newViewDate = new Date(this.viewDate);
-						newViewDate.setUTCDate(this.viewDate.getUTCDate() + dir * 7);
-					}
-					if (this.dateWithinRange(newDate)){
-						this.date = newDate;
-						this.viewDate = newViewDate;
-						this.setValue();
-						this.update();
-						e.preventDefault();
-						dateChanged = true;
-					}
-					break;
-				case 13: // enter
-					this.hide();
-					e.preventDefault();
-					break;
-				case 9: // tab
-					this.hide();
-					break;
-			}
-			if (dateChanged){
-				this.element.trigger({
-					type: 'changeDate',
-					date: this.date
-				});
-				var element;
-				if (this.isInput) {
-					element = this.element;
-				} else if (this.component){
-					element = this.element.find('input');
-				}
-				if (element) {
-					element.change();
-				}
-			}
-		},
-
-		showMode: function(dir) {
-			if (dir) {
-				this.viewMode = Math.max(this.minViewMode, Math.min(2, this.viewMode + dir));
-			}
-			/*
-				vitalets: fixing bug of very special conditions:
-				jquery 1.7.1 + webkit + show inline datepicker in bootstrap popover.
-				Method show() does not set display css correctly and datepicker is not shown.
-				Changed to .css('display', 'block') solve the problem.
-				See https://github.com/vitalets/x-editable/issues/37
-
-				In jquery 1.7.2+ everything works fine.
-			*/
-			//this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).show();
-			this.picker.find('>div').hide().filter('.datepicker-'+DPGlobal.modes[this.viewMode].clsName).css('display', 'block');
-			this.updateNavArrows();
-		}
-	};
-
-	$.fn.datepicker = function ( option ) {
-		var args = Array.apply(null, arguments);
-		args.shift();
-		return this.each(function () {
-			var $this = $(this),
-				data = $this.data('datepicker'),
-				options = typeof option == 'object' && option;
-			if (!data) {
-				$this.data('datepicker', (data = new Datepicker(this, $.extend({}, $.fn.datepicker.defaults,options))));
-			}
-			if (typeof option == 'string' && typeof data[option] == 'function') {
-				data[option].apply(data, args);
-			}
-		});
-	};
-
-	$.fn.datepicker.defaults = {
-	};
-	$.fn.datepicker.Constructor = Datepicker;
-	var dates = $.fn.datepicker.dates = {
-		en: {
-			days: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"],
-			daysShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
-			daysMin: ["Su", "Mo", "Tu", "We", "Th", "Fr", "Sa", "Su"],
-			months: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"],
-			monthsShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"],
-			today: "Today"
-		}
-	};
-
-	var DPGlobal = {
-		modes: [
-			{
-				clsName: 'days',
-				navFnc: 'Month',
-				navStep: 1
-			},
-			{
-				clsName: 'months',
-				navFnc: 'FullYear',
-				navStep: 1
-			},
-			{
-				clsName: 'years',
-				navFnc: 'FullYear',
-				navStep: 10
-		}],
-		isLeapYear: function (year) {
-			return (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
-		},
-		getDaysInMonth: function (year, month) {
-			return [31, (DPGlobal.isLeapYear(year) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
-		},
-		validParts: /dd?|DD?|mm?|MM?|yy(?:yy)?/g,
-		nonpunctuation: /[^ -\/:-@\[\u3400-\u9fff-`{-~\t\n\r]+/g,
-		parseFormat: function(format){
-			// IE treats \0 as a string end in inputs (truncating the value),
-			// so it's a bad format delimiter, anyway
-			var separators = format.replace(this.validParts, '\0').split('\0'),
-				parts = format.match(this.validParts);
-			if (!separators || !separators.length || !parts || parts.length === 0){
-				throw new Error("Invalid date format.");
-			}
-			return {separators: separators, parts: parts};
-		},
-		parseDate: function(date, format, language) {
-			if (date instanceof Date) return date;
-			if (/^[\-+]\d+[dmwy]([\s,]+[\-+]\d+[dmwy])*$/.test(date)) {
-				var part_re = /([\-+]\d+)([dmwy])/,
-					parts = date.match(/([\-+]\d+)([dmwy])/g),
-					part, dir;
-				date = new Date();
-				for (var i=0; i<parts.length; i++) {
-					part = part_re.exec(parts[i]);
-					dir = parseInt(part[1]);
-					switch(part[2]){
-						case 'd':
-							date.setUTCDate(date.getUTCDate() + dir);
-							break;
-						case 'm':
-							date = Datepicker.prototype.moveMonth.call(Datepicker.prototype, date, dir);
-							break;
-						case 'w':
-							date.setUTCDate(date.getUTCDate() + dir * 7);
-							break;
-						case 'y':
-							date = Datepicker.prototype.moveYear.call(Datepicker.prototype, date, dir);
-							break;
-					}
-				}
-				return UTCDate(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(), 0, 0, 0);
-			}
-			var parts = date && date.match(this.nonpunctuation) || [],
-				date = new Date(),
-				parsed = {},
-				setters_order = ['yyyy', 'yy', 'M', 'MM', 'm', 'mm', 'd', 'dd'],
-				setters_map = {
-					yyyy: function(d,v){ return d.setUTCFullYear(v); },
-					yy: function(d,v){ return d.setUTCFullYear(2000+v); },
-					m: function(d,v){
-						v -= 1;
-						while (v<0) v += 12;
-						v %= 12;
-						d.setUTCMonth(v);
-						while (d.getUTCMonth() != v)
-							d.setUTCDate(d.getUTCDate()-1);
-						return d;
-					},
-					d: function(d,v){ return d.setUTCDate(v); }
-				},
-				val, filtered, part;
-			setters_map['M'] = setters_map['MM'] = setters_map['mm'] = setters_map['m'];
-			setters_map['dd'] = setters_map['d'];
-			date = UTCDate(date.getFullYear(), date.getMonth(), date.getDate(), 0, 0, 0);
-			var fparts = format.parts.slice();
-			// Remove noop parts
-			if (parts.length != fparts.length) {
-				fparts = $(fparts).filter(function(i,p){
-					return $.inArray(p, setters_order) !== -1;
-				}).toArray();
-			}
-			// Process remainder
-			if (parts.length == fparts.length) {
-				for (var i=0, cnt = fparts.length; i < cnt; i++) {
-					val = parseInt(parts[i], 10);
-					part = fparts[i];
-					if (isNaN(val)) {
-						switch(part) {
-							case 'MM':
-								filtered = $(dates[language].months).filter(function(){
-									var m = this.slice(0, parts[i].length),
-										p = parts[i].slice(0, m.length);
-									return m == p;
-								});
-								val = $.inArray(filtered[0], dates[language].months) + 1;
-								break;
-							case 'M':
-								filtered = $(dates[language].monthsShort).filter(function(){
-									var m = this.slice(0, parts[i].length),
-										p = parts[i].slice(0, m.length);
-									return m == p;
-								});
-								val = $.inArray(filtered[0], dates[language].monthsShort) + 1;
-								break;
-						}
-					}
-					parsed[part] = val;
-				}
-				for (var i=0, s; i<setters_order.length; i++){
-					s = setters_order[i];
-					if (s in parsed && !isNaN(parsed[s]))
-						setters_map[s](date, parsed[s]);
-				}
-			}
-			return date;
-		},
-		formatDate: function(date, format, language){
-			var val = {
-				d: date.getUTCDate(),
-				D: dates[language].daysShort[date.getUTCDay()],
-				DD: dates[language].days[date.getUTCDay()],
-				m: date.getUTCMonth() + 1,
-				M: dates[language].monthsShort[date.getUTCMonth()],
-				MM: dates[language].months[date.getUTCMonth()],
-				yy: date.getUTCFullYear().toString().substring(2),
-				yyyy: date.getUTCFullYear()
-			};
-			val.dd = (val.d < 10 ? '0' : '') + val.d;
-			val.mm = (val.m < 10 ? '0' : '') + val.m;
-			var date = [],
-				seps = $.extend([], format.separators);
-			for (var i=0, cnt = format.parts.length; i < cnt; i++) {
-				if (seps.length)
-					date.push(seps.shift());
-				date.push(val[format.parts[i]]);
-			}
-			return date.join('');
-		},
-		headTemplate: '<thead>'+
-							'<tr>'+
-								'<th class="prev"><i class="icon-arrow-left"/></th>'+
-								'<th colspan="5" class="switch"></th>'+
-								'<th class="next"><i class="icon-arrow-right"/></th>'+
-							'</tr>'+
-						'</thead>',
-		contTemplate: '<tbody><tr><td colspan="7"></td></tr></tbody>',
-		footTemplate: '<tfoot><tr><th colspan="7" class="today"></th></tr></tfoot>'
-	};
-	DPGlobal.template = '<div class="datepicker">'+
-							'<div class="datepicker-days">'+
-								'<table class=" table-condensed">'+
-									DPGlobal.headTemplate+
-									'<tbody></tbody>'+
-									DPGlobal.footTemplate+
-								'</table>'+
-							'</div>'+
-							'<div class="datepicker-months">'+
-								'<table class="table-condensed">'+
-									DPGlobal.headTemplate+
-									DPGlobal.contTemplate+
-									DPGlobal.footTemplate+
-								'</table>'+
-							'</div>'+
-							'<div class="datepicker-years">'+
-								'<table class="table-condensed">'+
-									DPGlobal.headTemplate+
-									DPGlobal.contTemplate+
-									DPGlobal.footTemplate+
-								'</table>'+
-							'</div>'+
-						'</div>';
-
-	$.fn.datepicker.DPGlobal = DPGlobal;
-
-}( window.jQuery );
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/7aa2f1ae/metron-ui/lib/public/vendor/angular/timepicker.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/vendor/angular/timepicker.js b/metron-ui/lib/public/vendor/angular/timepicker.js
deleted file mode 100755
index e0d9f51..0000000
--- a/metron-ui/lib/public/vendor/angular/timepicker.js
+++ /dev/null
@@ -1,888 +0,0 @@
-/*!
- * Timepicker Component for Twitter Bootstrap
- *
- * Copyright 2013 Joris de Wit
- *
- * Contributors https://github.com/jdewit/bootstrap-timepicker/graphs/contributors
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
-(function($, window, document, undefined) {
-  'use strict';
-
-  // TIMEPICKER PUBLIC CLASS DEFINITION
-  var Timepicker = function(element, options) {
-    this.widget = '';
-    this.$element = $(element);
-    this.defaultTime = options.defaultTime;
-    this.disableFocus = options.disableFocus;
-    this.isOpen = options.isOpen;
-    this.minuteStep = options.minuteStep;
-    this.modalBackdrop = options.modalBackdrop;
-    this.secondStep = options.secondStep;
-    this.showInputs = options.showInputs;
-    this.showMeridian = options.showMeridian;
-    this.showSeconds = options.showSeconds;
-    this.template = options.template;
-    this.appendWidgetTo = options.appendWidgetTo;
-
-    this._init();
-  };
-
-  Timepicker.prototype = {
-
-    constructor: Timepicker,
-
-    _init: function() {
-      var self = this;
-
-      if (this.$element.parent().hasClass('input-append') || this.$element.parent().hasClass('input-prepend')) {
-        this.$element.parent('.input-append, .input-prepend').find('.add-on').on({
-          'click.timepicker': $.proxy(this.showWidget, this)
-        });
-        this.$element.on({
-          'focus.timepicker': $.proxy(this.highlightUnit, this),
-          'click.timepicker': $.proxy(this.highlightUnit, this),
-          'keydown.timepicker': $.proxy(this.elementKeydown, this),
-          'blur.timepicker': $.proxy(this.blurElement, this)
-        });
-      } else {
-        if (this.template) {
-          this.$element.on({
-            'focus.timepicker': $.proxy(this.showWidget, this),
-            'click.timepicker': $.proxy(this.showWidget, this),
-            'blur.timepicker': $.proxy(this.blurElement, this)
-          });
-        } else {
-          this.$element.on({
-            'focus.timepicker': $.proxy(this.highlightUnit, this),
-            'click.timepicker': $.proxy(this.highlightUnit, this),
-            'keydown.timepicker': $.proxy(this.elementKeydown, this),
-            'blur.timepicker': $.proxy(this.blurElement, this)
-          });
-        }
-      }
-
-      if (this.template !== false) {
-        this.$widget = $(this.getTemplate()).prependTo(this.$element.parents(this.appendWidgetTo)).on('click', $.proxy(this.widgetClick, this));
-      } else {
-        this.$widget = false;
-      }
-
-      if (this.showInputs && this.$widget !== false) {
-        this.$widget.find('input').each(function() {
-          $(this).on({
-            'click.timepicker': function() { $(this).select(); },
-            'keydown.timepicker': $.proxy(self.widgetKeydown, self)
-          });
-        });
-      }
-
-      this.setDefaultTime(this.defaultTime);
-    },
-
-    blurElement: function() {
-      this.highlightedUnit = undefined;
-      this.updateFromElementVal();
-    },
-
-    decrementHour: function() {
-      if (this.showMeridian) {
-        if (this.hour === 1) {
-          this.hour = 12;
-        } else if (this.hour === 12) {
-          this.hour--;
-
-          return this.toggleMeridian();
-        } else if (this.hour === 0) {
-          this.hour = 11;
-
-          return this.toggleMeridian();
-        } else {
-          this.hour--;
-        }
-      } else {
-        if (this.hour === 0) {
-          this.hour = 23;
-        } else {
-          this.hour--;
-        }
-      }
-      this.update();
-    },
-
-    decrementMinute: function(step) {
-      var newVal;
-
-      if (step) {
-        newVal = this.minute - step;
-      } else {
-        newVal = this.minute - this.minuteStep;
-      }
-
-      if (newVal < 0) {
-        this.decrementHour();
-        this.minute = newVal + 60;
-      } else {
-        this.minute = newVal;
-      }
-      this.update();
-    },
-
-    decrementSecond: function() {
-      var newVal = this.second - this.secondStep;
-
-      if (newVal < 0) {
-        this.decrementMinute(true);
-        this.second = newVal + 60;
-      } else {
-        this.second = newVal;
-      }
-      this.update();
-    },
-
-    elementKeydown: function(e) {
-      switch (e.keyCode) {
-      case 9: //tab
-        this.updateFromElementVal();
-
-        switch (this.highlightedUnit) {
-        case 'hour':
-          e.preventDefault();
-          this.highlightNextUnit();
-          break;
-        case 'minute':
-          if (this.showMeridian || this.showSeconds) {
-            e.preventDefault();
-            this.highlightNextUnit();
-          }
-          break;
-        case 'second':
-          if (this.showMeridian) {
-            e.preventDefault();
-            this.highlightNextUnit();
-          }
-          break;
-        }
-        break;
-      case 27: // escape
-        this.updateFromElementVal();
-        break;
-      case 37: // left arrow
-        e.preventDefault();
-        this.highlightPrevUnit();
-        this.updateFromElementVal();
-        break;
-      case 38: // up arrow
-        e.preventDefault();
-        switch (this.highlightedUnit) {
-        case 'hour':
-          this.incrementHour();
-          this.highlightHour();
-          break;
-        case 'minute':
-          this.incrementMinute();
-          this.highlightMinute();
-          break;
-        case 'second':
-          this.incrementSecond();
-          this.highlightSecond();
-          break;
-        case 'meridian':
-          this.toggleMeridian();
-          this.highlightMeridian();
-          break;
-        }
-        break;
-      case 39: // right arrow
-        e.preventDefault();
-        this.updateFromElementVal();
-        this.highlightNextUnit();
-        break;
-      case 40: // down arrow
-        e.preventDefault();
-        switch (this.highlightedUnit) {
-        case 'hour':
-          this.decrementHour();
-          this.highlightHour();
-          break;
-        case 'minute':
-          this.decrementMinute();
-          this.highlightMinute();
-          break;
-        case 'second':
-          this.decrementSecond();
-          this.highlightSecond();
-          break;
-        case 'meridian':
-          this.toggleMeridian();
-          this.highlightMeridian();
-          break;
-        }
-        break;
-      }
-    },
-
-    formatTime: function(hour, minute, second, meridian) {
-      hour = hour < 10 ? '0' + hour : hour;
-      minute = minute < 10 ? '0' + minute : minute;
-      second = second < 10 ? '0' + second : second;
-
-      return hour + ':' + minute + (this.showSeconds ? ':' + second : '') + (this.showMeridian ? ' ' + meridian : '');
-    },
-
-    getCursorPosition: function() {
-      var input = this.$element.get(0);
-
-      if ('selectionStart' in input) {// Standard-compliant browsers
-
-        return input.selectionStart;
-      } else if (document.selection) {// IE fix
-        input.focus();
-        var sel = document.selection.createRange(),
-          selLen = document.selection.createRange().text.length;
-
-        sel.moveStart('character', - input.value.length);
-
-        return sel.text.length - selLen;
-      }
-    },
-
-    getTemplate: function() {
-      var template,
-        hourTemplate,
-        minuteTemplate,
-        secondTemplate,
-        meridianTemplate,
-        templateContent;
-
-      if (this.showInputs) {
-        hourTemplate = '<input type="text" name="hour" class="bootstrap-timepicker-hour" maxlength="2"/>';
-        minuteTemplate = '<input type="text" name="minute" class="bootstrap-timepicker-minute" maxlength="2"/>';
-        secondTemplate = '<input type="text" name="second" class="bootstrap-timepicker-second" maxlength="2"/>';
-        meridianTemplate = '<input type="text" name="meridian" class="bootstrap-timepicker-meridian" maxlength="2"/>';
-      } else {
-        hourTemplate = '<span class="bootstrap-timepicker-hour"></span>';
-        minuteTemplate = '<span class="bootstrap-timepicker-minute"></span>';
-        secondTemplate = '<span class="bootstrap-timepicker-second"></span>';
-        meridianTemplate = '<span class="bootstrap-timepicker-meridian"></span>';
-      }
-
-      templateContent = '<table>'+
-         '<tr>'+
-           '<td><a href="#" data-action="incrementHour"><i class="icon-chevron-up"></i></a></td>'+
-           '<td class="separator">&nbsp;</td>'+
-           '<td><a href="#" data-action="incrementMinute"><i class="icon-chevron-up"></i></a></td>'+
-           (this.showSeconds ?
-             '<td class="separator">&nbsp;</td>'+
-             '<td><a href="#" data-action="incrementSecond"><i class="icon-chevron-up"></i></a></td>'
-           : '') +
-           (this.showMeridian ?
-             '<td class="separator">&nbsp;</td>'+
-             '<td class="meridian-column"><a href="#" data-action="toggleMeridian"><i class="icon-chevron-up"></i></a></td>'
-           : '') +
-         '</tr>'+
-         '<tr>'+
-           '<td>'+ hourTemplate +'</td> '+
-           '<td class="separator">:</td>'+
-           '<td>'+ minuteTemplate +'</td> '+
-           (this.showSeconds ?
-            '<td class="separator">:</td>'+
-            '<td>'+ secondTemplate +'</td>'
-           : '') +
-           (this.showMeridian ?
-            '<td class="separator">&nbsp;</td>'+
-            '<td>'+ meridianTemplate +'</td>'
-           : '') +
-         '</tr>'+
-         '<tr>'+
-           '<td><a href="#" data-action="decrementHour"><i class="icon-chevron-down"></i></a></td>'+
-           '<td class="separator"></td>'+
-           '<td><a href="#" data-action="decrementMinute"><i class="icon-chevron-down"></i></a></td>'+
-           (this.showSeconds ?
-            '<td class="separator">&nbsp;</td>'+
-            '<td><a href="#" data-action="decrementSecond"><i class="icon-chevron-down"></i></a></td>'
-           : '') +
-           (this.showMeridian ?
-            '<td class="separator">&nbsp;</td>'+
-            '<td><a href="#" data-action="toggleMeridian"><i class="icon-chevron-down"></i></a></td>'
-           : '') +
-         '</tr>'+
-       '</table>';
-
-      switch(this.template) {
-      case 'modal':
-        template = '<div class="bootstrap-timepicker-widget modal hide fade in" data-backdrop="'+ (this.modalBackdrop ? 'true' : 'false') +'">'+
-          '<div class="modal-header">'+
-            '<a href="#" class="close" data-dismiss="modal">×</a>'+
-            '<h3>Pick a Time</h3>'+
-          '</div>'+
-          '<div class="modal-content">'+
-            templateContent +
-          '</div>'+
-          '<div class="modal-footer">'+
-            '<a href="#" class="btn btn-primary" data-dismiss="modal">OK</a>'+
-          '</div>'+
-        '</div>';
-        break;
-      case 'dropdown':
-        template = '<div class="bootstrap-timepicker-widget dropdown-menu">'+ templateContent +'</div>';
-        break;
-      }
-
-      return template;
-    },
-
-    getTime: function() {
-      return this.formatTime(this.hour, this.minute, this.second, this.meridian);
-    },
-
-    hideWidget: function() {
-      if (this.isOpen === false) {
-        return;
-      }
-
-      if (this.showInputs) {
-        this.updateFromWidgetInputs();
-      }
-
-      this.$element.trigger({
-        'type': 'hide.timepicker',
-        'time': {
-          'value': this.getTime(),
-          'hours': this.hour,
-          'minutes': this.minute,
-          'seconds': this.second,
-          'meridian': this.meridian
-        }
-      });
-
-      if (this.template === 'modal') {
-        this.$widget.modal('hide');
-      } else {
-        this.$widget.removeClass('open');
-      }
-
-      $(document).off('mousedown.timepicker');
-
-      this.isOpen = false;
-    },
-
-    highlightUnit: function() {
-      this.position = this.getCursorPosition();
-      if (this.position >= 0 && this.position <= 2) {
-        this.highlightHour();
-      } else if (this.position >= 3 && this.position <= 5) {
-        this.highlightMinute();
-      } else if (this.position >= 6 && this.position <= 8) {
-        if (this.showSeconds) {
-          this.highlightSecond();
-        } else {
-          this.highlightMeridian();
-        }
-      } else if (this.position >= 9 && this.position <= 11) {
-        this.highlightMeridian();
-      }
-    },
-
-    highlightNextUnit: function() {
-      switch (this.highlightedUnit) {
-      case 'hour':
-        this.highlightMinute();
-        break;
-      case 'minute':
-        if (this.showSeconds) {
-          this.highlightSecond();
-        } else if (this.showMeridian){
-          this.highlightMeridian();
-        } else {
-          this.highlightHour();
-        }
-        break;
-      case 'second':
-        if (this.showMeridian) {
-          this.highlightMeridian();
-        } else {
-          this.highlightHour();
-        }
-        break;
-      case 'meridian':
-        this.highlightHour();
-        break;
-      }
-    },
-
-    highlightPrevUnit: function() {
-      switch (this.highlightedUnit) {
-      case 'hour':
-        this.highlightMeridian();
-        break;
-      case 'minute':
-        this.highlightHour();
-        break;
-      case 'second':
-        this.highlightMinute();
-        break;
-      case 'meridian':
-        if (this.showSeconds) {
-          this.highlightSecond();
-        } else {
-          this.highlightMinute();
-        }
-        break;
-      }
-    },
-
-    highlightHour: function() {
-      var $element = this.$element.get(0);
-
-      this.highlightedUnit = 'hour';
-
-      if ($element.setSelectionRange) {
-        setTimeout(function() {
-          $element.setSelectionRange(0,2);
-        }, 0);
-      }
-    },
-
-    highlightMinute: function() {
-      var $element = this.$element.get(0);
-
-      this.highlightedUnit = 'minute';
-
-      if ($element.setSelectionRange) {
-        setTimeout(function() {
-          $element.setSelectionRange(3,5);
-        }, 0);
-      }
-    },
-
-    highlightSecond: function() {
-      var $element = this.$element.get(0);
-
-      this.highlightedUnit = 'second';
-
-      if ($element.setSelectionRange) {
-        setTimeout(function() {
-          $element.setSelectionRange(6,8);
-        }, 0);
-      }
-    },
-
-    highlightMeridian: function() {
-      var $element = this.$element.get(0);
-
-      this.highlightedUnit = 'meridian';
-
-      if ($element.setSelectionRange) {
-        if (this.showSeconds) {
-          setTimeout(function() {
-            $element.setSelectionRange(9,11);
-          }, 0);
-        } else {
-          setTimeout(function() {
-            $element.setSelectionRange(6,8);
-          }, 0);
-        }
-      }
-    },
-
-    incrementHour: function() {
-      if (this.showMeridian) {
-        if (this.hour === 11) {
-          this.hour++;
-          return this.toggleMeridian();
-        } else if (this.hour === 12) {
-          this.hour = 0;
-        }
-      }
-      if (this.hour === 23) {
-        this.hour = 0;
-
-        return;
-      }
-      this.hour++;
-      this.update();
-    },
-
-    incrementMinute: function(step) {
-      var newVal;
-
-      if (step) {
-        newVal = this.minute + step;
-      } else {
-        newVal = this.minute + this.minuteStep - (this.minute % this.minuteStep);
-      }
-
-      if (newVal > 59) {
-        this.incrementHour();
-        this.minute = newVal - 60;
-      } else {
-        this.minute = newVal;
-      }
-      this.update();
-    },
-
-    incrementSecond: function() {
-      var newVal = this.second + this.secondStep - (this.second % this.secondStep);
-
-      if (newVal > 59) {
-        this.incrementMinute(true);
-        this.second = newVal - 60;
-      } else {
-        this.second = newVal;
-      }
-      this.update();
-    },
-
-    remove: function() {
-      $('document').off('.timepicker');
-      if (this.$widget) {
-        this.$widget.remove();
-      }
-      delete this.$element.data().timepicker;
-    },
-
-    setDefaultTime: function(defaultTime){
-      if (!this.$element.val()) {
-        if (defaultTime === 'current') {
-          var dTime = new Date(),
-            hours = dTime.getHours(),
-            minutes = Math.floor(dTime.getMinutes() / this.minuteStep) * this.minuteStep,
-            seconds = Math.floor(dTime.getSeconds() / this.secondStep) * this.secondStep,
-            meridian = 'AM';
-
-          if (this.showMeridian) {
-            if (hours === 0) {
-              hours = 12;
-            } else if (hours >= 12) {
-              if (hours > 12) {
-                hours = hours - 12;
-              }
-              meridian = 'PM';
-            } else {
-              meridian = 'AM';
-            }
-          }
-
-          this.hour = hours;
-          this.minute = minutes;
-          this.second = seconds;
-          this.meridian = meridian;
-
-          this.update();
-
-        } else if (defaultTime === false) {
-          this.hour = 0;
-          this.minute = 0;
-          this.second = 0;
-          this.meridian = 'AM';
-        } else {
-          this.setTime(defaultTime);
-        }
-      } else {
-        this.updateFromElementVal();
-      }
-    },
-
-    setTime: function(time) {
-      var arr,
-        timeArray;
-
-      if (this.showMeridian) {
-        arr = time.split(' ');
-        timeArray = arr[0].split(':');
-        this.meridian = arr[1];
-      } else {
-        timeArray = time.split(':');
-      }
-
-      this.hour = parseInt(timeArray[0], 10);
-      this.minute = parseInt(timeArray[1], 10);
-      this.second = parseInt(timeArray[2], 10);
-
-      if (isNaN(this.hour)) {
-        this.hour = 0;
-      }
-      if (isNaN(this.minute)) {
-        this.minute = 0;
-      }
-
-      if (this.showMeridian) {
-        if (this.hour > 12) {
-          this.hour = 12;
-        } else if (this.hour < 1) {
-          this.hour = 12;
-        }
-
-        if (this.meridian === 'am' || this.meridian === 'a') {
-          this.meridian = 'AM';
-        } else if (this.meridian === 'pm' || this.meridian === 'p') {
-          this.meridian = 'PM';
-        }
-
-        if (this.meridian !== 'AM' && this.meridian !== 'PM') {
-          this.meridian = 'AM';
-        }
-      } else {
-        if (this.hour >= 24) {
-          this.hour = 23;
-        } else if (this.hour < 0) {
-          this.hour = 0;
-        }
-      }
-
-      if (this.minute < 0) {
-        this.minute = 0;
-      } else if (this.minute >= 60) {
-        this.minute = 59;
-      }
-
-      if (this.showSeconds) {
-        if (isNaN(this.second)) {
-          this.second = 0;
-        } else if (this.second < 0) {
-          this.second = 0;
-        } else if (this.second >= 60) {
-          this.second = 59;
-        }
-      }
-
-      this.update();
-    },
-
-    showWidget: function() {
-      if (this.isOpen) {
-        return;
-      }
-
-      if (this.$element.is(':disabled')) {
-        return;
-      }
-
-      var self = this;
-      $(document).on('mousedown.timepicker', function (e) {
-        // Clicked outside the timepicker, hide it
-        if ($(e.target).closest('.bootstrap-timepicker-widget').length === 0) {
-          self.hideWidget();
-        }
-      });
-
-      this.$element.trigger({
-        'type': 'show.timepicker',
-        'time': {
-          'value': this.getTime(),
-          'hours': this.hour,
-          'minutes': this.minute,
-          'seconds': this.second,
-          'meridian': this.meridian
-        }
-      });
-
-      if (this.disableFocus) {
-        this.$element.blur();
-      }
-
-      this.updateFromElementVal();
-
-      if (this.template === 'modal') {
-        this.$widget.modal('show').on('hidden', $.proxy(this.hideWidget, this));
-      } else {
-        if (this.isOpen === false) {
-          this.$widget.addClass('open');
-        }
-      }
-
-      this.isOpen = true;
-    },
-
-    toggleMeridian: function() {
-      this.meridian = this.meridian === 'AM' ? 'PM' : 'AM';
-      this.update();
-    },
-
-    update: function() {
-      this.$element.trigger({
-        'type': 'changeTime.timepicker',
-        'time': {
-          'value': this.getTime(),
-          'hours': this.hour,
-          'minutes': this.minute,
-          'seconds': this.second,
-          'meridian': this.meridian
-        }
-      });
-
-      this.updateElement();
-      this.updateWidget();
-    },
-
-    updateElement: function() {
-      this.$element.val(this.getTime()).change();
-    },
-
-    updateFromElementVal: function() {
-      var val = this.$element.val();
-
-      if (val) {
-        this.setTime(val);
-      }
-    },
-
-    updateWidget: function() {
-      if (this.$widget === false) {
-        return;
-      }
-
-      var hour = this.hour < 10 ? '0' + this.hour : this.hour,
-          minute = this.minute < 10 ? '0' + this.minute : this.minute,
-          second = this.second < 10 ? '0' + this.second : this.second;
-
-      if (this.showInputs) {
-        this.$widget.find('input.bootstrap-timepicker-hour').val(hour);
-        this.$widget.find('input.bootstrap-timepicker-minute').val(minute);
-
-        if (this.showSeconds) {
-          this.$widget.find('input.bootstrap-timepicker-second').val(second);
-        }
-        if (this.showMeridian) {
-          this.$widget.find('input.bootstrap-timepicker-meridian').val(this.meridian);
-        }
-      } else {
-        this.$widget.find('span.bootstrap-timepicker-hour').text(hour);
-        this.$widget.find('span.bootstrap-timepicker-minute').text(minute);
-
-        if (this.showSeconds) {
-          this.$widget.find('span.bootstrap-timepicker-second').text(second);
-        }
-        if (this.showMeridian) {
-          this.$widget.find('span.bootstrap-timepicker-meridian').text(this.meridian);
-        }
-      }
-    },
-
-    updateFromWidgetInputs: function() {
-      if (this.$widget === false) {
-        return;
-      }
-      var time = $('input.bootstrap-timepicker-hour', this.$widget).val() + ':' +
-        $('input.bootstrap-timepicker-minute', this.$widget).val() +
-        (this.showSeconds ? ':' + $('input.bootstrap-timepicker-second', this.$widget).val() : '') +
-        (this.showMeridian ? ' ' + $('input.bootstrap-timepicker-meridian', this.$widget).val() : '');
-
-      this.setTime(time);
-    },
-
-    widgetClick: function(e) {
-      e.stopPropagation();
-      e.preventDefault();
-
-      var action = $(e.target).closest('a').data('action');
-      if (action) {
-        this[action]();
-      }
-    },
-
-    widgetKeydown: function(e) {
-      var $input = $(e.target).closest('input'),
-          name = $input.attr('name');
-
-      switch (e.keyCode) {
-      case 9: //tab
-        if (this.showMeridian) {
-          if (name === 'meridian') {
-            return this.hideWidget();
-          }
-        } else {
-          if (this.showSeconds) {
-            if (name === 'second') {
-              return this.hideWidget();
-            }
-          } else {
-            if (name === 'minute') {
-              return this.hideWidget();
-            }
-          }
-        }
-
-        this.updateFromWidgetInputs();
-        break;
-      case 27: // escape
-        this.hideWidget();
-        break;
-      case 38: // up arrow
-        e.preventDefault();
-        switch (name) {
-        case 'hour':
-          this.incrementHour();
-          break;
-        case 'minute':
-          this.incrementMinute();
-          break;
-        case 'second':
-          this.incrementSecond();
-          break;
-        case 'meridian':
-          this.toggleMeridian();
-          break;
-        }
-        break;
-      case 40: // down arrow
-        e.preventDefault();
-        switch (name) {
-        case 'hour':
-          this.decrementHour();
-          break;
-        case 'minute':
-          this.decrementMinute();
-          break;
-        case 'second':
-          this.decrementSecond();
-          break;
-        case 'meridian':
-          this.toggleMeridian();
-          break;
-        }
-        break;
-      }
-    }
-  };
-
-
-  //TIMEPICKER PLUGIN DEFINITION
-  $.fn.timepicker = function(option) {
-    var args = Array.apply(null, arguments);
-    args.shift();
-    return this.each(function() {
-      var $this = $(this),
-        data = $this.data('timepicker'),
-        options = typeof option === 'object' && option;
-
-      if (!data) {
-        $this.data('timepicker', (data = new Timepicker(this, $.extend({}, $.fn.timepicker.defaults, options, $(this).data()))));
-      }
-
-      if (typeof option === 'string') {
-        data[option].apply(data, args);
-      }
-    });
-  };
-
-  $.fn.timepicker.defaults = {
-    defaultTime: 'current',
-    disableFocus: false,
-    isOpen: false,
-    minuteStep: 15,
-    modalBackdrop: false,
-    secondStep: 15,
-    showSeconds: false,
-    showInputs: true,
-    showMeridian: true,
-    template: 'dropdown',
-    appendWidgetTo: '.bootstrap-timepicker'
-  };
-
-  $.fn.timepicker.Constructor = Timepicker;
-
-})(jQuery, window, document);
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/7aa2f1ae/metron-ui/lib/public/vendor/blob.js
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/vendor/blob.js b/metron-ui/lib/public/vendor/blob.js
deleted file mode 100755
index 6b38036..0000000
--- a/metron-ui/lib/public/vendor/blob.js
+++ /dev/null
@@ -1,178 +0,0 @@
-/* Blob.js
- * A Blob implementation.
- * 2013-06-20
- * 
- * By Eli Grey, http://eligrey.com
- * By Devin Samarin, https://github.com/eboyjr
- * License: X11/MIT
- *   See LICENSE.md
- */
-
-/*global self, unescape */
-/*jslint bitwise: true, regexp: true, confusion: true, es5: true, vars: true, white: true,
-  plusplus: true */
-
-/*! @source http://purl.eligrey.com/github/Blob.js/blob/master/Blob.js */
-
-if (typeof Blob !== "function" || typeof URL === "undefined")
-if (typeof Blob === "function" && typeof webkitURL !== "undefined") var URL = webkitURL;
-else var Blob = (function (view) {
-	"use strict";
-
-	var BlobBuilder = view.BlobBuilder || view.WebKitBlobBuilder || view.MozBlobBuilder || view.MSBlobBuilder || (function(view) {
-		var
-			  get_class = function(object) {
-				return Object.prototype.toString.call(object).match(/^\[object\s(.*)\]$/)[1];
-			}
-			, FakeBlobBuilder = function BlobBuilder() {
-				this.data = [];
-			}
-			, FakeBlob = function Blob(data, type, encoding) {
-				this.data = data;
-				this.size = data.length;
-				this.type = type;
-				this.encoding = encoding;
-			}
-			, FBB_proto = FakeBlobBuilder.prototype
-			, FB_proto = FakeBlob.prototype
-			, FileReaderSync = view.FileReaderSync
-			, FileException = function(type) {
-				this.code = this[this.name = type];
-			}
-			, file_ex_codes = (
-				  "NOT_FOUND_ERR SECURITY_ERR ABORT_ERR NOT_READABLE_ERR ENCODING_ERR "
-				+ "NO_MODIFICATION_ALLOWED_ERR INVALID_STATE_ERR SYNTAX_ERR"
-			).split(" ")
-			, file_ex_code = file_ex_codes.length
-			, real_URL = view.URL || view.webkitURL || view
-			, real_create_object_URL = real_URL.createObjectURL
-			, real_revoke_object_URL = real_URL.revokeObjectURL
-			, URL = real_URL
-			, btoa = view.btoa
-			, atob = view.atob
-			, can_apply_typed_arrays = false
-			, can_apply_typed_arrays_test = function(pass) {
-				can_apply_typed_arrays = !pass;
-			}
-			
-			, ArrayBuffer = view.ArrayBuffer
-			, Uint8Array = view.Uint8Array
-		;
-		FakeBlob.fake = FB_proto.fake = true;
-		while (file_ex_code--) {
-			FileException.prototype[file_ex_codes[file_ex_code]] = file_ex_code + 1;
-		}
-		try {
-			if (Uint8Array) {
-				can_apply_typed_arrays_test.apply(0, new Uint8Array(1));
-			}
-		} catch (ex) {}
-		if (!real_URL.createObjectURL) {
-			URL = view.URL = {};
-		}
-		URL.createObjectURL = function(blob) {
-			var
-				  type = blob.type
-				, data_URI_header
-			;
-			if (type === null) {
-				type = "application/octet-stream";
-			}
-			if (blob instanceof FakeBlob) {
-				data_URI_header = "data:" + type;
-				if (blob.encoding === "base64") {
-					return data_URI_header + ";base64," + blob.data;
-				} else if (blob.encoding === "URI") {
-					return data_URI_header + "," + decodeURIComponent(blob.data);
-				} if (btoa) {
-					return data_URI_header + ";base64," + btoa(blob.data);
-				} else {
-					return data_URI_header + "," + encodeURIComponent(blob.data);
-				}
-			} else if (real_create_object_URL) {
-				return real_create_object_URL.call(real_URL, blob);
-			}
-		};
-		URL.revokeObjectURL = function(object_URL) {
-			if (object_URL.substring(0, 5) !== "data:" && real_revoke_object_URL) {
-				real_revoke_object_URL.call(real_URL, object_URL);
-			}
-		};
-		FBB_proto.append = function(data/*, endings*/) {
-			var bb = this.data;
-			// decode data to a binary string
-			if (Uint8Array && (data instanceof ArrayBuffer || data instanceof Uint8Array)) {
-				if (can_apply_typed_arrays) {
-					bb.push(String.fromCharCode.apply(String, new Uint8Array(data)));
-				} else {
-					var
-						  str = ""
-						, buf = new Uint8Array(data)
-						, i = 0
-						, buf_len = buf.length
-					;
-					for (; i < buf_len; i++) {
-						str += String.fromCharCode(buf[i]);
-					}
-				}
-			} else if (get_class(data) === "Blob" || get_class(data) === "File") {
-				if (FileReaderSync) {
-					var fr = new FileReaderSync;
-					bb.push(fr.readAsBinaryString(data));
-				} else {
-					// async FileReader won't work as BlobBuilder is sync
-					throw new FileException("NOT_READABLE_ERR");
-				}
-			} else if (data instanceof FakeBlob) {
-				if (data.encoding === "base64" && atob) {
-					bb.push(atob(data.data));
-				} else if (data.encoding === "URI") {
-					bb.push(decodeURIComponent(data.data));
-				} else if (data.encoding === "raw") {
-					bb.push(data.data);
-				}
-			} else {
-				if (typeof data !== "string") {
-					data += ""; // convert unsupported types to strings
-				}
-				// decode UTF-16 to binary string
-				bb.push(unescape(encodeURIComponent(data)));
-			}
-		};
-		FBB_proto.getBlob = function(type) {
-			if (!arguments.length) {
-				type = null;
-			}
-			return new FakeBlob(this.data.join(""), type, "raw");
-		};
-		FBB_proto.toString = function() {
-			return "[object BlobBuilder]";
-		};
-		FB_proto.slice = function(start, end, type) {
-			var args = arguments.length;
-			if (args < 3) {
-				type = null;
-			}
-			return new FakeBlob(
-				  this.data.slice(start, args > 1 ? end : this.data.length)
-				, type
-				, this.encoding
-			);
-		};
-		FB_proto.toString = function() {
-			return "[object Blob]";
-		};
-		return FakeBlobBuilder;
-	}(view));
-
-	return function Blob(blobParts, options) {
-		var type = options ? (options.type || "") : "";
-		var builder = new BlobBuilder();
-		if (blobParts) {
-			for (var i = 0, len = blobParts.length; i < len; i++) {
-				builder.append(blobParts[i]);
-			}
-		}
-		return builder.getBlob(type);
-	};
-}(self));
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/7aa2f1ae/metron-ui/lib/public/vendor/bootstrap/LICENSE.bootstrap
----------------------------------------------------------------------
diff --git a/metron-ui/lib/public/vendor/bootstrap/LICENSE.bootstrap b/metron-ui/lib/public/vendor/bootstrap/LICENSE.bootstrap
deleted file mode 100644
index 1494597..0000000
--- a/metron-ui/lib/public/vendor/bootstrap/LICENSE.bootstrap
+++ /dev/null
@@ -1,18 +0,0 @@
-/* ===================================================
- * bootstrap-transition.js v2.3.2
- * http://getbootstrap.com/2.3.2/javascript.html#transitions
- * ===================================================
- * Copyright 2013 Twitter, Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- * ========================================================== */


Mime
View raw message