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]>. + +[](https://travis-ci.org/urish/angular-spinner) +[](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
