http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/README.md
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/README.md 
b/ui/bower_components/angular-spinner/README.md
new file mode 100644
index 0000000..b3bcf9e
--- /dev/null
+++ b/ui/bower_components/angular-spinner/README.md
@@ -0,0 +1,134 @@
+# angular-spinner
+
+Angular directive to show an animated spinner (using 
[spin.js](http://fgnass.github.io/spin.js/))
+
+Copyright (C) 2013, 2014, 2015, Uri Shaked <[email protected]>.
+
+[![Build 
Status](https://travis-ci.org/urish/angular-spinner.png?branch=master)](https://travis-ci.org/urish/angular-spinner)
+[![Coverage 
Status](https://coveralls.io/repos/urish/angular-spinner/badge.png)](https://coveralls.io/r/urish/angular-spinner)
+
+## Usage
+
+Get both spin.js and angular-spinner
+
+- via npm: by running ``` $ npm install angular-spinner ``` from your console
+- or via Bower: by running ``` $ bower install angular-spinner ``` from your 
console
+
+Include both spin.js and angular-spinner.js in your application.
+
+```html
+<script src="bower_components/spin.js/spin.js"></script>
+<script src="bower_components/angular-spinner/angular-spinner.js"></script>
+```
+
+Add the module `angularSpinner` as a dependency to your app module:
+
+```js
+var myapp = angular.module('myapp', ['angularSpinner']);
+```
+
+You can now start using the us-spinner directive to display an animated
+spinner. For example :
+
+```html
+<span us-spinner></span>
+```
+
+You can also pass spinner options, for example:
+
+```html
+<span us-spinner="{radius:30, width:8, length: 16}"></span>
+```
+
+Possible configuration options are described in the [spin.js 
homepage](http://fgnass.github.io/spin.js/).
+
+You can direct the spinner to start and stop based on a scope expression, for 
example:
+
+```html
+<span us-spinner="{radius:30, width:8, length: 16}" 
spinner-on="showSpinner"></span>
+```
+
+
+### Configuring default spinner options
+
+You can use `usSpinnerConfigProvider` to configure default options for all 
spinners globally. Any options passed from a directive still override these.
+
+```js
+myapp.config(['usSpinnerConfigProvider', function (usSpinnerConfigProvider) {
+    usSpinnerConfigProvider.setDefaults({color: 'blue'});
+}]);
+```
+
+## Themes
+
+Themes provide named default options for spinners. Any options passed from a 
directive still override these.
+
+```js
+myapp.config(['usSpinnerConfigProvider', function (usSpinnerConfigProvider) {
+    usSpinnerConfigProvider.setTheme('bigBlue', {color: 'blue', radius: 20});
+    usSpinnerConfigProvider.setTheme('smallRed', {color: 'red', radius: 6});
+}]);
+```
+
+```html
+<span us-spinner spinner-theme="smallRed"></span>
+```
+
+### Using the usSpinnerService to control spinners
+
+```html
+<button ng-click="startSpin()">Start spinner</button>
+<button ng-click="stopSpin()">Stop spinner</button>
+
+<span us-spinner spinner-key="spinner-1"></span>
+```
+
+The `usSpinnerService` service let you control spin start and stop :
+
+```js
+app.controller('MyController', ['$scope', 'usSpinnerService', function($scope, 
usSpinnerService){
+    $scope.startSpin = function(){
+        usSpinnerService.spin('spinner-1');
+    }
+    $scope.stopSpin = function(){
+        usSpinnerService.stop('spinner-1');
+    }
+}]);
+```
+
+Note that when you specify a key, the spinner is rendered inactive.
+You can still render the spinner as active with the spinner-start-active 
parameter :
+```html
+<span us-spinner spinner-key="spinner-1" spinner-start-active="true"></span>
+```
+
+spinner-start-active is ignored if spinner-on is specified.
+
+The spinner-key will be used as an identifier (not unique) allowing you to 
have several spinners controlled by the same key :
+
+```html
+<span us-spinner spinner-key="spinner-1"></span>
+<span us-spinner spinner-key="spinner-2"></span>
+
+... random html code ...
+
+<!-- This spinner will be triggered along with the first "spinner-1" -->
+<span us-spinner spinner-key="spinner-1"></span>
+```
+
+### Example
+
+See [online example on 
Plunker](http://plnkr.co/edit/BGLUYcylbIVJRz6ztbhf?p=preview).
+
+## License
+
+Released under the terms of MIT License.
+
+## Contributing
+
+1. Fork repo.
+2. `npm install`
+3. `bower install`
+4. Make your changes, add your tests.
+5. `grunt test`
+6. `grunt build` once all tests are passing. Commit, push, PR.

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/angular-spinner.min.js.map
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/angular-spinner.min.js.map 
b/ui/bower_components/angular-spinner/angular-spinner.min.js.map
new file mode 100644
index 0000000..bcd5ea4
--- /dev/null
+++ b/ui/bower_components/angular-spinner/angular-spinner.min.js.map
@@ -0,0 +1 @@
+{"version":3,"file":"angular-spinner.min.js","sources":["angular-spinner.js"],"names":["root","factory","angular","Spinner","module","constant","provider","_config","_themes","setDefaults","config","setTheme","name","$get","themes","$rootScope","spin","key","$broadcast","stop","directive","SpinJSSpinner","usSpinnerConfig","scope","link","element","attr","stopSpinner","spinner","isDefined","spinnerKey","startActive","spinnerStartActive","$eval","$watch","usSpinner","options","extend","spinnerTheme","spinnerOn","$on","event","exports","require","define","amd","this"],"mappings":"AAMA,cAEC,SAAUA,GACV,YAEA,SAASC,GAAQC,EAASC,GAEzB,MAAOD,GACLE,OAAO,qBAEPC,SAAS,gBAAiBF,GAE1BG,SAAS,kBAAmB,WAC5B,GAAIC,MAAcC,IAElB,QACCC,YAAa,SAAUC,GACtBH,EAAUG,GAAUH,GAErBI,SAAU,SAASC,EAAMF,GACxBF,EAAQI,GAAQF,GAEjBG,KAAM,WACL,OACCH,OAAQH,EACRO,OAAQN,OAMXP,QAAQ,oBAAqB,aAAc,SAAUc,GACrD,GAAIL,KAUJ,OARAA,GAAOM,KAAO,SAAUC,GACvBF,EAAWG,WAAW,kBAAmBD,IAG1CP,EAAOS,KAAO,SAAUF,GACvBF,EAAWG,WAAW,kBAAmBD,IAGnCP,KAGPU,UAAU,
 
aAAc,gBAAiB,kBAAmB,SAAUC,EAAeC,GACrF,OACCC,OAAO,EACPC,KAAM,SAAUD,EAAOE,EAASC,GAS/B,QAASC,KACJJ,EAAMK,SACTL,EAAMK,QAAQT,OAVhBI,EAAMK,QAAU,KAEhBL,EAAMN,IAAMf,EAAQ2B,UAAUH,EAAKI,YAAcJ,EAAKI,YAAa,EAEnEP,EAAMQ,YAAc7B,EAAQ2B,UAAUH,EAAKM,oBAC1CT,EAAMU,MAAMP,EAAKM,oBAAsBT,EAAMN,KAC7C,GAAQ,EAQTM,EAAMP,KAAO,WACRO,EAAMK,SACTL,EAAMK,QAAQZ,KAAKS,EAAQ,KAI7BF,EAAMJ,KAAO,WACZI,EAAMQ,aAAc,EACpBJ,KAGDJ,EAAMW,OAAOR,EAAKS,UAAW,SAAUC,GACtCT,IAGAS,EAAUlC,EAAQmC,OACjBf,EAAgBZ,OAChBY,EAAgBR,OAAOY,EAAKY,cAC5BF,GAEDb,EAAMK,QAAU,GAAIP,GAAce,GAC5Bb,EAAMN,MAAOM,EAAMQ,aAAiBL,EAAKa,WAC9ChB,EAAMK,QAAQZ,KAAKS,EAAQ,MAE1B,GAECC,EAAKa,WACRhB,EAAMW,OAAOR,EAAKa,UAAW,SAAUvB,GAClCA,EACHO,EAAMP,OAENO,EAAMJ,SAKTI,EAAMiB,IAAI,kBAAmB,SAAUC,EAAOxB,GACzCA,IAAQM,EAAMN,KACjBM,EAAMP,SAIRO,EAAMiB,IAAI,kBAAmB,SAAUC,EAAOxB,GACzCA,IAAQM,EAAMN,KACjBM,EAAMJ,SAIRI,EAAMiB,IAAI,WAAY,WACrBjB,EAAMJ,OACNI,EAAMK,QAAU,YAOI,gBAAXxB,SAAwBA,OAAOsC,QAE7CtC,OAAOsC,QAAUzC,EAAQ0C,QAAQ,WAAYA,QAAQ,YACzB,kBAAXC,SAAyBA,OAAOC,IAEjDD,QAAQ,UAAW,QAAS3C,GAG5BA
 ,EAAQD,EAAKE,QAASF,EAAKG,UAE3B2C"}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/bower.json
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/bower.json 
b/ui/bower_components/angular-spinner/bower.json
new file mode 100644
index 0000000..b354463
--- /dev/null
+++ b/ui/bower_components/angular-spinner/bower.json
@@ -0,0 +1,21 @@
+{
+       "name": "angular-spinner",
+       "description": "Angular directive to show an animated spinner (using 
spin.js)",
+       "main": "./angular-spinner.js",
+       "author": "Uri Shaked",
+       "license": "MIT",
+       "homepage": "https://github.com/urish/angular-spinner";,
+       "ignore": [
+       ],
+       "dependencies": {
+               "angular": "~1.x",
+               "spin.js": "~2.x"
+       },
+       "devDependencies": {
+               "angular-mocks": "~1.x"
+       },
+       "repository": {
+               "type": "git",
+               "url": "git://github.com/urish/angular-spinner.git"
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/karma.conf.js
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/karma.conf.js 
b/ui/bower_components/angular-spinner/karma.conf.js
new file mode 100644
index 0000000..d45b5cf
--- /dev/null
+++ b/ui/bower_components/angular-spinner/karma.conf.js
@@ -0,0 +1,31 @@
+/* License: MIT.
+ * Copyright (C) 2013, 2014, Uri Shaked and contributors.
+ */
+
+'use strict';
+
+module.exports = function (config) {
+       config.set({
+               basePath: '',
+               frameworks: ['jasmine'],
+               logLevel: config.LOG_INFO,
+               browsers: ['PhantomJS'],
+               autoWatch: true,
+               reporters: ['dots', 'coverage'],
+               files: [
+                       'bower_components/angular/angular.js',
+                       'bower_components/angular-mocks/angular-mocks.js',
+                       'bower_components/spin.js/spin.js',
+                       'angular-spinner.js',
+                       'tests.js'
+               ],
+               preprocessors: {
+                       'components/spin.js/spin.js': 'coverage',
+                       'angular-spinner.js': 'coverage'
+               },
+               coverageReporter: {
+                       type: 'lcov',
+                       dir: 'coverage/'
+               }
+       });
+};

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/package.json
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/package.json 
b/ui/bower_components/angular-spinner/package.json
new file mode 100644
index 0000000..2614e2e
--- /dev/null
+++ b/ui/bower_components/angular-spinner/package.json
@@ -0,0 +1,31 @@
+{
+       "name": "angular-spinner",
+       "version": "0.8.0",
+       "repository": {
+               "type": "git",
+               "url": "http://github.com/urish/angular-spinner.git";
+       },
+       "main": "angular-spinner.js",
+       "dependencies": {
+               "spin.js": "^2.0.0"
+       },
+       "license": "MIT",
+       "devDependencies": {
+               "grunt": "0.4.5",
+               "load-grunt-tasks": "3.2.0",
+               "grunt-contrib-jshint": "0.11.3",
+               "grunt-contrib-uglify": "0.9.2",
+               "grunt-karma": "0.12.0",
+               "karma": "0.13.9",
+               "karma-coverage": "0.5.2",
+               "karma-jasmine": "0.3.6",
+               "karma-phantomjs-launcher": "0.2.1",
+               "coveralls": "2.11.4"
+       },
+       "engines": {
+               "node": ">=0.10.0"
+       },
+       "scripts": {
+               "test": "grunt test"
+       }
+}

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular-spinner/tests.js
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular-spinner/tests.js 
b/ui/bower_components/angular-spinner/tests.js
new file mode 100644
index 0000000..ce9360f
--- /dev/null
+++ b/ui/bower_components/angular-spinner/tests.js
@@ -0,0 +1,198 @@
+/* License: MIT.
+ * Copyright (C) 2013, 2014, Uri Shaked and contributors.
+ */
+
+'use strict';
+
+beforeEach(module('angularSpinner'));
+
+describe('Provider: usSpinnerConfigProvider', function () {
+       it('should have configurable options', function () {
+               module(function (usSpinnerConfigProvider) {
+                       usSpinnerConfigProvider.setDefaults({color: 'black'});
+               });
+
+               inject(function (usSpinnerConfig) {
+                       expect(usSpinnerConfig.config.color).toBe('black');
+               });
+       });
+       it('should support themes', function () {
+               module(function (usSpinnerConfigProvider) {
+                       usSpinnerConfigProvider.setTheme('bigRed', {color: 
'red', size: 20});
+               });
+
+               inject(function (usSpinnerConfig) {
+                       expect(usSpinnerConfig.themes.bigRed.color).toBe('red');
+               });
+       });
+});
+
+describe('Directive: us-spinner', function () {
+       var Spinner, usSpinnerConfigProvider ;
+
+       beforeEach(module(function ($provide, _usSpinnerConfigProvider_) {
+               Spinner = jasmine.createSpy('Spinner');
+               Spinner.prototype.spin = jasmine.createSpy('Spinner.spin');
+               Spinner.prototype.stop = jasmine.createSpy('Spinner.stop');
+
+               $provide.constant('SpinJSSpinner', Spinner);
+               usSpinnerConfigProvider = _usSpinnerConfigProvider_;
+       }));
+
+       it('should create a spinner object', inject(function ($rootScope, 
$compile) {
+               var element = angular.element('<div us-spinner></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalled();
+       }));
+
+       it('should start spinning the spinner automatically', inject(function 
($rootScope, $compile) {
+               var element = angular.element('<div us-spinner></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).toHaveBeenCalled();
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+       }));
+
+       it('should start spinning the second spinner without stopping the first 
one', inject(function ($rootScope, $compile) {
+               var element = angular.element('<div us-spinner></div>');
+               element = $compile(element)($rootScope);
+               var secondElement = angular.element('<div us-spinner></div>');
+               secondElement = $compile(secondElement)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin.calls.count()).toBe(2);
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+       }));
+
+       it('should set spinner options as given in attribute', inject(function 
($rootScope, $compile) {
+               var element = angular.element('<div 
us-spinner="{width:15}"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalledWith({width: 15});
+       }));
+
+       it('should add spinner default options to options', inject(function 
($rootScope, $compile) {
+               usSpinnerConfigProvider.setDefaults({width: 10, color: 
'black'});
+               var element = angular.element('<div 
us-spinner="{width:15}"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalledWith({width: 15, color: 
'black'});
+       }));
+
+       it('should add theme options to options', inject(function ($rootScope, 
$compile) {
+               usSpinnerConfigProvider.setDefaults({width: 10, color: 
'black'});
+               usSpinnerConfigProvider.setTheme('bigRed', {size: 20, color: 
'red'});
+               var element = angular.element('<div us-spinner="{width:15}" 
spinner-theme="bigRed"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalledWith({width: 15, color: 'red', 
size: 20});
+       }));
+
+       it('should update spinner options in response to scope updates', 
inject(function ($rootScope, $compile) {
+               $rootScope.actualWidth = 25;
+               var element = angular.element('<div 
us-spinner="{width:actualWidth}"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalledWith({width: 25});
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+
+               $rootScope.actualWidth = 72;
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalledWith({width: 72});
+               expect(Spinner.prototype.stop).toHaveBeenCalled();
+               expect(Spinner.prototype.spin.calls.count()).toBe(2);
+       }));
+
+       it('should spin in response to scope updates', inject(function 
($rootScope, $compile) {
+               $rootScope.shouldSpin = false;
+               var element = angular.element('<div us-spinner 
spinner-on="shouldSpin"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner).toHaveBeenCalled();
+               expect(Spinner.prototype.spin).not.toHaveBeenCalled();
+
+               $rootScope.shouldSpin = true;
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).toHaveBeenCalled();
+       }));
+
+       it('should stop the spinner when the scope is destroyed', 
inject(function ($rootScope, $compile) {
+               var scope = $rootScope.$new();
+               var element = angular.element('<div us-spinner></div>');
+               element = $compile(element)(scope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+               scope.$destroy();
+               expect(Spinner.prototype.stop).toHaveBeenCalled();
+       }));
+
+       it('should not start spinning automatically', inject(function 
($rootScope, $compile) {
+               var element = angular.element('<div us-spinner 
spinner-key="spinner"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).not.toHaveBeenCalled();
+       }));
+
+       it('should start spinning when service trigger the spin event', 
inject(function ($rootScope, $compile, usSpinnerService) {
+               var element = angular.element('<div us-spinner 
spinner-key="spinner"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).not.toHaveBeenCalled();
+               usSpinnerService.spin('spinner');
+               expect(Spinner.prototype.spin).toHaveBeenCalled();
+       }));
+
+       it('should start spinning the spinner automatically and stop when 
service trigger the stop event', inject(function ($rootScope, $compile, 
usSpinnerService) {
+               var element = angular.element('<div us-spinner 
spinner-key="spinner" spinner-start-active="1"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).toHaveBeenCalled();
+               usSpinnerService.stop('spinner');
+               expect(Spinner.prototype.stop).toHaveBeenCalled();
+       }));
+
+       it('should not start spinning the spinner automatically from binding', 
inject(function ($rootScope, $compile) {
+               $rootScope.spinnerActive = false;
+               var element = angular.element('<div us-spinner 
spinner-key="spinner" spinner-start-active="spinnerActive"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).not.toHaveBeenCalled();
+       }));
+
+       it('should start spinning the spinner automatically from binding', 
inject(function ($rootScope, $compile) {
+               $rootScope.spinnerActive = true;
+               var element = angular.element('<div us-spinner 
spinner-key="spinner" spinner-start-active="spinnerActive"></div>');
+               element = $compile(element)($rootScope);
+               $rootScope.$digest();
+               expect(Spinner.prototype.spin).toHaveBeenCalled();
+       }));
+
+       it('should start spinning the second spinner without starting the first 
one', inject(function ($rootScope, $compile, usSpinnerService) {
+               var element = angular.element('<div us-spinner 
spinner-key="spinner"></div>');
+               element = $compile(element)($rootScope);
+               var secondElement = angular.element('<div us-spinner 
spinner-key="spinner2"></div>');
+               secondElement = $compile(secondElement)($rootScope);
+               $rootScope.$digest();
+               usSpinnerService.spin('spinner2');
+               expect(Spinner.prototype.spin.calls.count()).toBe(1);
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+       }));
+
+       it('should start spinning the spinners with the same key', 
inject(function ($rootScope, $compile, usSpinnerService) {
+               $compile('<div us-spinner 
spinner-key="spinner"></div>')($rootScope);
+               $compile('<div us-spinner 
spinner-key="spinner2"></div>')($rootScope);
+               $compile('<div us-spinner 
spinner-key="spinner"></div>')($rootScope);
+               $compile('<div us-spinner 
spinner-key="spinner2"></div>')($rootScope);
+               $compile('<div us-spinner 
spinner-key="spinner"></div>')($rootScope);
+               $rootScope.$digest();
+               usSpinnerService.spin('spinner');
+               expect(Spinner.prototype.spin.calls.count()).toBe(3);
+               expect(Spinner.prototype.stop).not.toHaveBeenCalled();
+               usSpinnerService.stop('spinner');
+               expect(Spinner.prototype.stop.calls.count()).toBe(3);
+               usSpinnerService.spin('spinner2');
+               expect(Spinner.prototype.spin.calls.count()).toBe(5);
+               usSpinnerService.stop('spinner2');
+               expect(Spinner.prototype.stop.calls.count()).toBe(5);
+       }));
+});

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular/.bower.json
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular/.bower.json 
b/ui/bower_components/angular/.bower.json
new file mode 100644
index 0000000..8eb867d
--- /dev/null
+++ b/ui/bower_components/angular/.bower.json
@@ -0,0 +1,18 @@
+{
+  "name": "angular",
+  "version": "1.5.8",
+  "license": "MIT",
+  "main": "./angular.js",
+  "ignore": [],
+  "dependencies": {},
+  "homepage": "https://github.com/angular/bower-angular";,
+  "_release": "1.5.8",
+  "_resolution": {
+    "type": "version",
+    "tag": "v1.5.8",
+    "commit": "7e0e546eb6caedbb298c91a9f6bf7de7eeaa4ad2"
+  },
+  "_source": "https://github.com/angular/bower-angular.git";,
+  "_target": "1.5.8",
+  "_originalSource": "angular"
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular/LICENSE.md
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular/LICENSE.md 
b/ui/bower_components/angular/LICENSE.md
new file mode 100644
index 0000000..2c395ee
--- /dev/null
+++ b/ui/bower_components/angular/LICENSE.md
@@ -0,0 +1,21 @@
+The MIT License (MIT)
+
+Copyright (c) 2016 Angular
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular/README.md
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular/README.md 
b/ui/bower_components/angular/README.md
new file mode 100644
index 0000000..d1bc0ed
--- /dev/null
+++ b/ui/bower_components/angular/README.md
@@ -0,0 +1,64 @@
+# packaged angular
+
+This repo is for distribution on `npm` and `bower`. The source for this module 
is in the
+[main AngularJS repo](https://github.com/angular/angular.js).
+Please file issues and pull requests against that repo.
+
+## Install
+
+You can install this package either with `npm` or with `bower`.
+
+### npm
+
+```shell
+npm install angular
+```
+
+Then add a `<script>` to your `index.html`:
+
+```html
+<script src="/node_modules/angular/angular.js"></script>
+```
+
+Or `require('angular')` from your code.
+
+### bower
+
+```shell
+bower install angular
+```
+
+Then add a `<script>` to your `index.html`:
+
+```html
+<script src="/bower_components/angular/angular.js"></script>
+```
+
+## Documentation
+
+Documentation is available on the
+[AngularJS docs site](http://docs.angularjs.org/).
+
+## License
+
+The MIT License
+
+Copyright (c) 2010-2015 Google, Inc. http://angularjs.org
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.

http://git-wip-us.apache.org/repos/asf/incubator-griffin/blob/bc1ffbcd/ui/bower_components/angular/angular.min.js.gzip
----------------------------------------------------------------------
diff --git a/ui/bower_components/angular/angular.min.js.gzip 
b/ui/bower_components/angular/angular.min.js.gzip
new file mode 100644
index 0000000..dc10f04
Binary files /dev/null and b/ui/bower_components/angular/angular.min.js.gzip 
differ

Reply via email to