From 967c9949264151daa67eec6e54b2e2d21c1c42ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Wed, 16 Mar 2016 22:47:00 +0100 Subject: Remove vendor libs from github repo --- js/vendor/angular-bootstrap/.bower.json | 32 - js/vendor/angular-bootstrap/.gitignore | 1 - js/vendor/angular-bootstrap/.npmignore | 1 - js/vendor/angular-bootstrap/README.md | 120 - js/vendor/angular-bootstrap/bower.json | 19 - js/vendor/angular-bootstrap/index.js | 2 - js/vendor/angular-bootstrap/package.json | 23 - js/vendor/angular-bootstrap/ui-bootstrap-csp.css | 29 - js/vendor/angular-bootstrap/ui-bootstrap-tpls.js | 7079 ----- .../angular-bootstrap/ui-bootstrap-tpls.min.js | 10 - js/vendor/angular-bootstrap/ui-bootstrap.js | 6658 ---- js/vendor/angular-bootstrap/ui-bootstrap.min.js | 9 - js/vendor/angular-cache/.bower.json | 45 - js/vendor/angular-cache/CHANGELOG.md | 348 - js/vendor/angular-cache/LICENSE | 20 - js/vendor/angular-cache/README.md | 675 - js/vendor/angular-cache/TRANSITION.md | 98 - js/vendor/angular-cache/bower.json | 35 - .../build_examples/browserify/README.md | 1 - .../angular-cache/build_examples/browserify/app.js | 11 - .../build_examples/browserify/index.html | 11 - .../angular-cache/build_examples/r.js/README.md | 3 - js/vendor/angular-cache/build_examples/r.js/app.js | 9 - .../angular-cache/build_examples/r.js/index.html | 14 - .../angular-cache/build_examples/r.js/main.js | 22 - .../build_examples/r.js/require.config.js | 6 - .../angular-cache/build_examples/webpack/README.md | 1 - .../angular-cache/build_examples/webpack/app.js | 8 - .../build_examples/webpack/index.html | 11 - .../build_examples/webpack/webpack.config.js | 11 - .../build_examples/webpack_es6/README.md | 1 - .../build_examples/webpack_es6/app.js | 8 - .../build_examples/webpack_es6/index.html | 11 - .../build_examples/webpack_es6/webpack.config.js | 16 - .../build_examples/webpack_es6_2/README.md | 1 - .../build_examples/webpack_es6_2/app.js | 8 - .../build_examples/webpack_es6_2/index.html | 11 - .../build_examples/webpack_es6_2/webpack.config.js | 16 - js/vendor/angular-cache/circle.yml | 8 - js/vendor/angular-cache/dist/angular-cache.js | 1327 - js/vendor/angular-cache/dist/angular-cache.js.map | 1 - js/vendor/angular-cache/dist/angular-cache.min.js | 2 - js/vendor/angular-cache/dist/angular-cache.min.map | 1 - js/vendor/angular-cache/webpack.config.js | 84 - js/vendor/angular-route/.bower.json | 20 - js/vendor/angular-route/README.md | 68 - js/vendor/angular-route/angular-route.js | 1016 - js/vendor/angular-route/angular-route.min.js | 15 - js/vendor/angular-route/angular-route.min.js.map | 8 - js/vendor/angular-route/bower.json | 10 - js/vendor/angular-route/index.js | 2 - js/vendor/angular-route/package.json | 26 - js/vendor/angular-sanitize/.bower.json | 21 - js/vendor/angular-sanitize/README.md | 68 - js/vendor/angular-sanitize/angular-sanitize.js | 717 - js/vendor/angular-sanitize/angular-sanitize.min.js | 15 - .../angular-sanitize/angular-sanitize.min.js.map | 8 - js/vendor/angular-sanitize/bower.json | 10 - js/vendor/angular-sanitize/index.js | 2 - js/vendor/angular-sanitize/package.json | 26 - js/vendor/angular-uuid4/.bower.json | 32 - js/vendor/angular-uuid4/Gruntfile.js | 39 - js/vendor/angular-uuid4/LICENCSE.txt | 202 - js/vendor/angular-uuid4/README.md | 46 - js/vendor/angular-uuid4/angular-uuid4.js | 97 - js/vendor/angular-uuid4/angular-uuid4.min.js | 1 - js/vendor/angular-uuid4/bower.json | 23 - js/vendor/angular/.bower.json | 18 - js/vendor/angular/README.md | 64 - js/vendor/angular/angular-csp.css | 21 - js/vendor/angular/angular.js | 30428 ------------------- js/vendor/angular/angular.min.js | 307 - js/vendor/angular/angular.min.js.gzip | Bin 54462 -> 0 bytes js/vendor/angular/angular.min.js.map | 8 - js/vendor/angular/bower.json | 9 - js/vendor/angular/index.js | 2 - js/vendor/angular/package.json | 25 - js/vendor/jquery-timepicker/.bower.json | 14 - js/vendor/jquery-timepicker/GPL-LICENSE.txt | 278 - js/vendor/jquery-timepicker/MIT-LICENSE.txt | 20 - js/vendor/jquery-timepicker/README.md | 30 - js/vendor/jquery-timepicker/i18n/i18n.html | 164 - .../i18n/jquery.ui.timepicker-cs.js | 12 - .../i18n/jquery.ui.timepicker-de.js | 12 - .../i18n/jquery.ui.timepicker-es.js | 12 - .../i18n/jquery.ui.timepicker-fr.js | 13 - .../i18n/jquery.ui.timepicker-hr.js | 13 - .../i18n/jquery.ui.timepicker-hu.js | 12 - .../i18n/jquery.ui.timepicker-it.js | 12 - .../i18n/jquery.ui.timepicker-ja.js | 12 - .../i18n/jquery.ui.timepicker-mk.js | 13 - .../i18n/jquery.ui.timepicker-nl.js | 12 - .../i18n/jquery.ui.timepicker-pl.js | 12 - .../i18n/jquery.ui.timepicker-pt-BR.js | 12 - .../i18n/jquery.ui.timepicker-ru.js | 12 - .../i18n/jquery.ui.timepicker-sl.js | 12 - .../i18n/jquery.ui.timepicker-sv.js | 12 - .../i18n/jquery.ui.timepicker-tr.js | 12 - .../jquery-timepicker/include/jquery-1.9.0.min.js | 4 - .../include/ui-1.10.0/jquery.ui.core.min.js | 5 - .../include/ui-1.10.0/jquery.ui.position.min.js | 5 - .../include/ui-1.10.0/jquery.ui.tabs.min.js | 5 - .../include/ui-1.10.0/jquery.ui.widget.min.js | 5 - .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 260 -> 0 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 251 -> 0 bytes .../images/ui-bg_flat_10_000000_40x100.png | Bin 178 -> 0 bytes .../images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 104 -> 0 bytes .../images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 125 -> 0 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 105 -> 0 bytes .../images/ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 3762 -> 0 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 90 -> 0 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 129 -> 0 bytes .../images/ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_228ef1_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_ef8c08_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_ffd27a_256x240.png | Bin 4369 -> 0 bytes .../images/ui-icons_ffffff_256x240.png | Bin 4369 -> 0 bytes .../ui-lightness/jquery-ui-1.10.0.custom.min.css | 5 - js/vendor/jquery-timepicker/index.html | 1177 - .../jquery-timepicker/jquery.ui.timepicker.css | 57 - .../jquery-timepicker/jquery.ui.timepicker.js | 1496 - .../jquery-timepicker/legacy_1.2.6/index.html | 762 - .../jquery-timepicker/legacy_1.2.6/jquery-1.2.6.js | 3549 --- .../legacy_1.2.6/jquery.proxy.fix.js | 44 - .../legacy_1.2.6/jquery.ui.1.6.all.js | 8862 ------ js/vendor/jquery-timepicker/tests/dialog.html | 39 - .../tests/jquery.ui.dialog.min.js | 40 - js/vendor/jquery-timepicker/timepicker.png | Bin 7865 -> 0 bytes js/vendor/ui-select/.bower.json | 42 - js/vendor/ui-select/CHANGELOG.md | 131 - js/vendor/ui-select/CONTRIBUTING.md | 128 - js/vendor/ui-select/LICENSE | 20 - js/vendor/ui-select/README.md | 64 - js/vendor/ui-select/bower.json | 29 - js/vendor/ui-select/composer.json | 29 - js/vendor/ui-select/dist/select.css | 267 - js/vendor/ui-select/dist/select.js | 2043 -- js/vendor/ui-select/dist/select.min.css | 6 - js/vendor/ui-select/dist/select.min.js | 8 - js/vendor/ui-select/index.js | 2 - js/vendor/ui-select/package.json | 54 - js/vendor/vcard/.bower.json | 28 - js/vendor/vcard/.editorconfig | 24 - js/vendor/vcard/.gitignore | 2 - js/vendor/vcard/README.md | 43 - js/vendor/vcard/bower.json | 18 - js/vendor/vcard/dist/vcard.min.js | 1 - js/vendor/vcard/package.json | 27 - js/vendor/vcard/src/vcard.js | 248 - 149 files changed, 70131 deletions(-) delete mode 100644 js/vendor/angular-bootstrap/.bower.json delete mode 100644 js/vendor/angular-bootstrap/.gitignore delete mode 100644 js/vendor/angular-bootstrap/.npmignore delete mode 100644 js/vendor/angular-bootstrap/README.md delete mode 100644 js/vendor/angular-bootstrap/bower.json delete mode 100644 js/vendor/angular-bootstrap/index.js delete mode 100644 js/vendor/angular-bootstrap/package.json delete mode 100644 js/vendor/angular-bootstrap/ui-bootstrap-csp.css delete mode 100644 js/vendor/angular-bootstrap/ui-bootstrap-tpls.js delete mode 100644 js/vendor/angular-bootstrap/ui-bootstrap-tpls.min.js delete mode 100644 js/vendor/angular-bootstrap/ui-bootstrap.js delete mode 100644 js/vendor/angular-bootstrap/ui-bootstrap.min.js delete mode 100644 js/vendor/angular-cache/.bower.json delete mode 100644 js/vendor/angular-cache/CHANGELOG.md delete mode 100644 js/vendor/angular-cache/LICENSE delete mode 100644 js/vendor/angular-cache/README.md delete mode 100644 js/vendor/angular-cache/TRANSITION.md delete mode 100644 js/vendor/angular-cache/bower.json delete mode 100644 js/vendor/angular-cache/build_examples/browserify/README.md delete mode 100644 js/vendor/angular-cache/build_examples/browserify/app.js delete mode 100644 js/vendor/angular-cache/build_examples/browserify/index.html delete mode 100644 js/vendor/angular-cache/build_examples/r.js/README.md delete mode 100644 js/vendor/angular-cache/build_examples/r.js/app.js delete mode 100644 js/vendor/angular-cache/build_examples/r.js/index.html delete mode 100644 js/vendor/angular-cache/build_examples/r.js/main.js delete mode 100644 js/vendor/angular-cache/build_examples/r.js/require.config.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack/README.md delete mode 100644 js/vendor/angular-cache/build_examples/webpack/app.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack/index.html delete mode 100644 js/vendor/angular-cache/build_examples/webpack/webpack.config.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6/README.md delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6/app.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6/index.html delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6/webpack.config.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6_2/README.md delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6_2/app.js delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6_2/index.html delete mode 100644 js/vendor/angular-cache/build_examples/webpack_es6_2/webpack.config.js delete mode 100644 js/vendor/angular-cache/circle.yml delete mode 100644 js/vendor/angular-cache/dist/angular-cache.js delete mode 100644 js/vendor/angular-cache/dist/angular-cache.js.map delete mode 100644 js/vendor/angular-cache/dist/angular-cache.min.js delete mode 100644 js/vendor/angular-cache/dist/angular-cache.min.map delete mode 100644 js/vendor/angular-cache/webpack.config.js delete mode 100644 js/vendor/angular-route/.bower.json delete mode 100644 js/vendor/angular-route/README.md delete mode 100644 js/vendor/angular-route/angular-route.js delete mode 100644 js/vendor/angular-route/angular-route.min.js delete mode 100644 js/vendor/angular-route/angular-route.min.js.map delete mode 100644 js/vendor/angular-route/bower.json delete mode 100644 js/vendor/angular-route/index.js delete mode 100644 js/vendor/angular-route/package.json delete mode 100644 js/vendor/angular-sanitize/.bower.json delete mode 100644 js/vendor/angular-sanitize/README.md delete mode 100644 js/vendor/angular-sanitize/angular-sanitize.js delete mode 100644 js/vendor/angular-sanitize/angular-sanitize.min.js delete mode 100644 js/vendor/angular-sanitize/angular-sanitize.min.js.map delete mode 100644 js/vendor/angular-sanitize/bower.json delete mode 100644 js/vendor/angular-sanitize/index.js delete mode 100644 js/vendor/angular-sanitize/package.json delete mode 100644 js/vendor/angular-uuid4/.bower.json delete mode 100644 js/vendor/angular-uuid4/Gruntfile.js delete mode 100644 js/vendor/angular-uuid4/LICENCSE.txt delete mode 100644 js/vendor/angular-uuid4/README.md delete mode 100644 js/vendor/angular-uuid4/angular-uuid4.js delete mode 100644 js/vendor/angular-uuid4/angular-uuid4.min.js delete mode 100644 js/vendor/angular-uuid4/bower.json delete mode 100644 js/vendor/angular/.bower.json delete mode 100644 js/vendor/angular/README.md delete mode 100644 js/vendor/angular/angular-csp.css delete mode 100644 js/vendor/angular/angular.js delete mode 100644 js/vendor/angular/angular.min.js delete mode 100644 js/vendor/angular/angular.min.js.gzip delete mode 100644 js/vendor/angular/angular.min.js.map delete mode 100644 js/vendor/angular/bower.json delete mode 100644 js/vendor/angular/index.js delete mode 100644 js/vendor/angular/package.json delete mode 100644 js/vendor/jquery-timepicker/.bower.json delete mode 100644 js/vendor/jquery-timepicker/GPL-LICENSE.txt delete mode 100644 js/vendor/jquery-timepicker/MIT-LICENSE.txt delete mode 100644 js/vendor/jquery-timepicker/README.md delete mode 100644 js/vendor/jquery-timepicker/i18n/i18n.html delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-cs.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-de.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-es.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-fr.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-hr.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-hu.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-it.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-ja.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-mk.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-nl.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-pl.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-pt-BR.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-ru.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-sl.js delete mode 100644 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-sv.js delete mode 100755 js/vendor/jquery-timepicker/i18n/jquery.ui.timepicker-tr.js delete mode 100644 js/vendor/jquery-timepicker/include/jquery-1.9.0.min.js delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/jquery.ui.core.min.js delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/jquery.ui.position.min.js delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/jquery.ui.tabs.min.js delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/jquery.ui.widget.min.js delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_diagonals-thick_18_b81900_40x40.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_diagonals-thick_20_666666_40x40.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_flat_10_000000_40x100.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_glass_100_f6f6f6_1x400.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_glass_100_fdf5ce_1x400.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_glass_65_ffffff_1x400.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_gloss-wave_35_f6a828_500x100.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_highlight-soft_100_eeeeee_1x100.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-bg_highlight-soft_75_ffe45c_1x100.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-icons_222222_256x240.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-icons_228ef1_256x240.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-icons_ef8c08_256x240.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-icons_ffd27a_256x240.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/images/ui-icons_ffffff_256x240.png delete mode 100644 js/vendor/jquery-timepicker/include/ui-1.10.0/ui-lightness/jquery-ui-1.10.0.custom.min.css delete mode 100644 js/vendor/jquery-timepicker/index.html delete mode 100644 js/vendor/jquery-timepicker/jquery.ui.timepicker.css delete mode 100644 js/vendor/jquery-timepicker/jquery.ui.timepicker.js delete mode 100644 js/vendor/jquery-timepicker/legacy_1.2.6/index.html delete mode 100644 js/vendor/jquery-timepicker/legacy_1.2.6/jquery-1.2.6.js delete mode 100644 js/vendor/jquery-timepicker/legacy_1.2.6/jquery.proxy.fix.js delete mode 100644 js/vendor/jquery-timepicker/legacy_1.2.6/jquery.ui.1.6.all.js delete mode 100644 js/vendor/jquery-timepicker/tests/dialog.html delete mode 100644 js/vendor/jquery-timepicker/tests/jquery.ui.dialog.min.js delete mode 100644 js/vendor/jquery-timepicker/timepicker.png delete mode 100644 js/vendor/ui-select/.bower.json delete mode 100644 js/vendor/ui-select/CHANGELOG.md delete mode 100644 js/vendor/ui-select/CONTRIBUTING.md delete mode 100644 js/vendor/ui-select/LICENSE delete mode 100644 js/vendor/ui-select/README.md delete mode 100644 js/vendor/ui-select/bower.json delete mode 100644 js/vendor/ui-select/composer.json delete mode 100644 js/vendor/ui-select/dist/select.css delete mode 100644 js/vendor/ui-select/dist/select.js delete mode 100644 js/vendor/ui-select/dist/select.min.css delete mode 100644 js/vendor/ui-select/dist/select.min.js delete mode 100644 js/vendor/ui-select/index.js delete mode 100644 js/vendor/ui-select/package.json delete mode 100644 js/vendor/vcard/.bower.json delete mode 100644 js/vendor/vcard/.editorconfig delete mode 100644 js/vendor/vcard/.gitignore delete mode 100644 js/vendor/vcard/README.md delete mode 100644 js/vendor/vcard/bower.json delete mode 100644 js/vendor/vcard/dist/vcard.min.js delete mode 100644 js/vendor/vcard/package.json delete mode 100644 js/vendor/vcard/src/vcard.js (limited to 'js/vendor') diff --git a/js/vendor/angular-bootstrap/.bower.json b/js/vendor/angular-bootstrap/.bower.json deleted file mode 100644 index 7ec976cf..00000000 --- a/js/vendor/angular-bootstrap/.bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "author": { - "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" - }, - "name": "angular-bootstrap", - "keywords": [ - "angular", - "angular-ui", - "bootstrap" - ], - "license": "MIT", - "ignore": [], - "description": "Native AngularJS (Angular) directives for Bootstrap.", - "version": "1.1.2", - "main": [ - "./ui-bootstrap-tpls.js" - ], - "dependencies": { - "angular": ">=1.4.0" - }, - "homepage": "https://github.com/angular-ui/bootstrap-bower", - "_release": "1.1.2", - "_resolution": { - "type": "version", - "tag": "1.1.2", - "commit": "189241b8981b48a353ebc8161a597ffc144e712d" - }, - "_source": "git://github.com/angular-ui/bootstrap-bower.git", - "_target": "^1.1.2", - "_originalSource": "angular-bootstrap", - "_direct": true -} \ No newline at end of file diff --git a/js/vendor/angular-bootstrap/.gitignore b/js/vendor/angular-bootstrap/.gitignore deleted file mode 100644 index 496ee2ca..00000000 --- a/js/vendor/angular-bootstrap/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.DS_Store \ No newline at end of file diff --git a/js/vendor/angular-bootstrap/.npmignore b/js/vendor/angular-bootstrap/.npmignore deleted file mode 100644 index d62f9b6e..00000000 --- a/js/vendor/angular-bootstrap/.npmignore +++ /dev/null @@ -1 +0,0 @@ -bower.json \ No newline at end of file diff --git a/js/vendor/angular-bootstrap/README.md b/js/vendor/angular-bootstrap/README.md deleted file mode 100644 index 9607c65f..00000000 --- a/js/vendor/angular-bootstrap/README.md +++ /dev/null @@ -1,120 +0,0 @@ -### UI Bootstrap - [AngularJS](http://angularjs.org/) directives specific to [Bootstrap](http://getbootstrap.com) - -[![Gitter](https://badges.gitter.im/Join%20Chat.svg)](https://gitter.im/angular-ui/bootstrap?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) -[![Build Status](https://secure.travis-ci.org/angular-ui/bootstrap.svg)](http://travis-ci.org/angular-ui/bootstrap) -[![devDependency Status](https://david-dm.org/angular-ui/bootstrap/dev-status.svg?branch=master)](https://david-dm.org/angular-ui/bootstrap#info=devDependencies) - -### Quick links -- [Demo](#demo) -- [Installation](#installation) - - [NPM](#install-with-npm) - - [Bower](#install-with-bower) - - [NuGet](#install-with-nuget) - - [Custom](#custom-build) - - [Manual](#manual-download) -- [Support](#support) - - [FAQ](#faq) - - [Supported browsers](#supported-browsers) - - [Need help?](#need-help) - - [Found a bug?](#found-a-bug) -- [Contributing to the project](#contributing-to-the-project) -- [Development, meeting minutes, roadmap and more.](#development-meeting-minutes-roadmap-and-more) - - -# Demo - -Do you want to see directives in action? Visit http://angular-ui.github.io/bootstrap/! - -# Installation - -Installation is easy as UI Bootstrap has minimal dependencies - only the AngularJS and Twitter Bootstrap's CSS are required. -Note: Since version 0.13.0, UI Bootstrap depends on [ngAnimate](https://docs.angularjs.org/api/ngAnimate) for transitions and animations, such as the accordion, carousel, etc. Include `ngAnimate` in the module dependencies for your app in order to enable animation. - -#### Install with NPM - -```sh -$ npm install angular-ui-bootstrap -``` - -This will install AngularJS and Bootstrap NPM packages. - -#### Install with Bower -```sh -$ bower install angular-bootstrap -``` - -Note: do not install 'angular-ui-bootstrap'. A separate repository - [bootstrap-bower](https://github.com/angular-ui/bootstrap-bower) - hosts the compiled javascript file and bower.json. - -#### Install with NuGet -To install AngularJS UI Bootstrap, run the following command in the Package Manager Console - -```sh -PM> Install-Package Angular.UI.Bootstrap -``` - -#### Custom build - -Head over to http://angular-ui.github.io/bootstrap/ and hit the *Custom build* button to create your own custom UI Bootstrap build, just the way you like it. - -#### Manual download - -After downloading dependencies (or better yet, referencing them from your favorite CDN) you need to download build version of this project. All the files and their purposes are described here: -https://github.com/angular-ui/bootstrap/tree/gh-pages#build-files -Don't worry, if you are not sure which file to take, opt for `ui-bootstrap-tpls-[version].min.js`. - -### Adding dependency to your project - -When you are done downloading all the dependencies and project files the only remaining part is to add dependencies on the `ui.bootstrap` AngularJS module: - -```js -angular.module('myModule', ['ui.bootstrap']); -``` - -If you're a Browserify or Webpack user, you can do: - -```js -var uibs = require('angular-ui-bootstrap'); - -angular.module('myModule', [uibs]); -``` - -# Support - -## FAQ - -https://github.com/angular-ui/bootstrap/wiki/FAQ - -## Supported browsers - -Directives from this repository are automatically tested with the following browsers: -* Chrome (stable and canary channel) -* Firefox -* IE 9 and 10 -* Opera -* Safari - -Modern mobile browsers should work without problems. - - -## Need help? -Need help using UI Bootstrap? - -* Live help in the IRC (`#angularjs` channel at the `freenode` network). Use this [webchat](https://webchat.freenode.net/) or your own IRC client. -* Ask a question in [StackOverflow](http://stackoverflow.com/) under the [angular-ui-bootstrap](http://stackoverflow.com/questions/tagged/angular-ui-bootstrap) tag. - -**Please do not create new issues in this repository to ask questions about using UI Bootstrap** - -## Found a bug? -Please take a look at [CONTRIBUTING.md](CONTRIBUTING.md#you-think-youve-found-a-bug) and submit your issue [here](https://github.com/angular-ui/bootstrap/issues/new). - - ----- - - -# Contributing to the project - -We are always looking for the quality contributions! Please check the [CONTRIBUTING.md](CONTRIBUTING.md) for the contribution guidelines. - -# Development, meeting minutes, roadmap and more. - -Head over to the [Wiki](https://github.com/angular-ui/bootstrap/wiki) for notes on development for UI Bootstrap, meeting minutes from the UI Bootstrap team, roadmap plans, project philosophy and more. diff --git a/js/vendor/angular-bootstrap/bower.json b/js/vendor/angular-bootstrap/bower.json deleted file mode 100644 index 5db7d98f..00000000 --- a/js/vendor/angular-bootstrap/bower.json +++ /dev/null @@ -1,19 +0,0 @@ -{ - "author": { - "name": "https://github.com/angular-ui/bootstrap/graphs/contributors" - }, - "name": "angular-bootstrap", - "keywords": [ - "angular", - "angular-ui", - "bootstrap" - ], - "license": "MIT", - "ignore": [], - "description": "Native AngularJS (Angular) directives for Bootstrap.", - "version": "1.1.2", - "main": ["./ui-bootstrap-tpls.js"], - "dependencies": { - "angular": ">=1.4.0" - } -} diff --git a/js/vendor/angular-bootstrap/index.js b/js/vendor/angular-bootstrap/index.js deleted file mode 100644 index a174f26d..00000000 --- a/js/vendor/angular-bootstrap/index.js +++ /dev/null @@ -1,2 +0,0 @@ -require('./ui-bootstrap-tpls'); -module.exports = 'ui.bootstrap'; diff --git a/js/vendor/angular-bootstrap/package.json b/js/vendor/angular-bootstrap/package.json deleted file mode 100644 index 5109745b..00000000 --- a/js/vendor/angular-bootstrap/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "angular-ui-bootstrap", - "version": "1.1.2", - "description": "Bootstrap widgets for Angular", - "main": "index.js", - "homepage": "http://angular-ui.github.io/bootstrap/", - "repository": { - "type": "git", - "url": "https://github.com/angular-ui/bootstrap.git" - }, - "keywords": [ - "angular", - "bootstrap", - "angular-ui", - "components", - "client-side" - ], - "author": "https://github.com/angular-ui/bootstrap/graphs/contributors", - "peerDependencies": { - "angular": ">= 1.4.0-beta.0 || >= 1.5.0-beta.0" - }, - "license": "MIT" -} diff --git a/js/vendor/angular-bootstrap/ui-bootstrap-csp.css b/js/vendor/angular-bootstrap/ui-bootstrap-csp.css deleted file mode 100644 index 2d2dab53..00000000 --- a/js/vendor/angular-bootstrap/ui-bootstrap-csp.css +++ /dev/null @@ -1,29 +0,0 @@ -/* Include this file in your html if you are using the CSP mode. */ - -.ng-animate.item:not(.left):not(.right) { - -webkit-transition: 0s ease-in-out left; - transition: 0s ease-in-out left -} -.uib-datepicker .uib-title { - width: 100%; -} - -.uib-day button, .uib-month button, .uib-year button { - min-width: 100%; -} - -.uib-datepicker-popup.dropdown-menu { - display: block; -} - -.uib-button-bar { - padding: 10px 9px 2px; -} - -.uib-time input { - width: 50px; -} - -[uib-typeahead-popup].dropdown-menu { - display: block; -} diff --git a/js/vendor/angular-bootstrap/ui-bootstrap-tpls.js b/js/vendor/angular-bootstrap/ui-bootstrap-tpls.js deleted file mode 100644 index 7fb50336..00000000 --- a/js/vendor/angular-bootstrap/ui-bootstrap-tpls.js +++ /dev/null @@ -1,7079 +0,0 @@ -/* - * angular-ui-bootstrap - * http://angular-ui.github.io/bootstrap/ - - * Version: 1.1.2 - 2016-02-01 - * License: MIT - */angular.module("ui.bootstrap", ["ui.bootstrap.tpls", "ui.bootstrap.collapse","ui.bootstrap.accordion","ui.bootstrap.alert","ui.bootstrap.buttons","ui.bootstrap.carousel","ui.bootstrap.dateparser","ui.bootstrap.isClass","ui.bootstrap.position","ui.bootstrap.datepicker","ui.bootstrap.debounce","ui.bootstrap.dropdown","ui.bootstrap.stackedMap","ui.bootstrap.modal","ui.bootstrap.paging","ui.bootstrap.pager","ui.bootstrap.pagination","ui.bootstrap.tooltip","ui.bootstrap.popover","ui.bootstrap.progressbar","ui.bootstrap.rating","ui.bootstrap.tabs","ui.bootstrap.timepicker","ui.bootstrap.typeahead"]); -angular.module("ui.bootstrap.tpls", ["uib/template/accordion/accordion-group.html","uib/template/accordion/accordion.html","uib/template/alert/alert.html","uib/template/carousel/carousel.html","uib/template/carousel/slide.html","uib/template/datepicker/datepicker.html","uib/template/datepicker/day.html","uib/template/datepicker/month.html","uib/template/datepicker/popup.html","uib/template/datepicker/year.html","uib/template/modal/backdrop.html","uib/template/modal/window.html","uib/template/pager/pager.html","uib/template/pagination/pagination.html","uib/template/tooltip/tooltip-html-popup.html","uib/template/tooltip/tooltip-popup.html","uib/template/tooltip/tooltip-template-popup.html","uib/template/popover/popover-html.html","uib/template/popover/popover-template.html","uib/template/popover/popover.html","uib/template/progressbar/bar.html","uib/template/progressbar/progress.html","uib/template/progressbar/progressbar.html","uib/template/rating/rating.html","uib/template/tabs/tab.html","uib/template/tabs/tabset.html","uib/template/timepicker/timepicker.html","uib/template/typeahead/typeahead-match.html","uib/template/typeahead/typeahead-popup.html"]); -angular.module('ui.bootstrap.collapse', []) - - .directive('uibCollapse', ['$animate', '$q', '$parse', '$injector', function($animate, $q, $parse, $injector) { - var $animateCss = $injector.has('$animateCss') ? $injector.get('$animateCss') : null; - return { - link: function(scope, element, attrs) { - var expandingExpr = $parse(attrs.expanding), - expandedExpr = $parse(attrs.expanded), - collapsingExpr = $parse(attrs.collapsing), - collapsedExpr = $parse(attrs.collapsed); - - if (!scope.$eval(attrs.uibCollapse)) { - element.addClass('in') - .addClass('collapse') - .attr('aria-expanded', true) - .attr('aria-hidden', false) - .css({height: 'auto'}); - } - - function expand() { - if (element.hasClass('collapse') && element.hasClass('in')) { - return; - } - - $q.resolve(expandingExpr(scope)) - .then(function() { - element.removeClass('collapse') - .addClass('collapsing') - .attr('aria-expanded', true) - .attr('aria-hidden', false); - - if ($animateCss) { - $animateCss(element, { - addClass: 'in', - easing: 'ease', - to: { height: element[0].scrollHeight + 'px' } - }).start()['finally'](expandDone); - } else { - $animate.addClass(element, 'in', { - to: { height: element[0].scrollHeight + 'px' } - }).then(expandDone); - } - }); - } - - function expandDone() { - element.removeClass('collapsing') - .addClass('collapse') - .css({height: 'auto'}); - expandedExpr(scope); - } - - function collapse() { - if (!element.hasClass('collapse') && !element.hasClass('in')) { - return collapseDone(); - } - - $q.resolve(collapsingExpr(scope)) - .then(function() { - element - // IMPORTANT: The height must be set before adding "collapsing" class. - // Otherwise, the browser attempts to animate from height 0 (in - // collapsing class) to the given height here. - .css({height: element[0].scrollHeight + 'px'}) - // initially all panel collapse have the collapse class, this removal - // prevents the animation from jumping to collapsed state - .removeClass('collapse') - .addClass('collapsing') - .attr('aria-expanded', false) - .attr('aria-hidden', true); - - if ($animateCss) { - $animateCss(element, { - removeClass: 'in', - to: {height: '0'} - }).start()['finally'](collapseDone); - } else { - $animate.removeClass(element, 'in', { - to: {height: '0'} - }).then(collapseDone); - } - }); - } - - function collapseDone() { - element.css({height: '0'}); // Required so that collapse works when animation is disabled - element.removeClass('collapsing') - .addClass('collapse'); - collapsedExpr(scope); - } - - scope.$watch(attrs.uibCollapse, function(shouldCollapse) { - if (shouldCollapse) { - collapse(); - } else { - expand(); - } - }); - } - }; - }]); - -angular.module('ui.bootstrap.accordion', ['ui.bootstrap.collapse']) - -.constant('uibAccordionConfig', { - closeOthers: true -}) - -.controller('UibAccordionController', ['$scope', '$attrs', 'uibAccordionConfig', function($scope, $attrs, accordionConfig) { - // This array keeps track of the accordion groups - this.groups = []; - - // Ensure that all the groups in this accordion are closed, unless close-others explicitly says not to - this.closeOthers = function(openGroup) { - var closeOthers = angular.isDefined($attrs.closeOthers) ? - $scope.$eval($attrs.closeOthers) : accordionConfig.closeOthers; - if (closeOthers) { - angular.forEach(this.groups, function(group) { - if (group !== openGroup) { - group.isOpen = false; - } - }); - } - }; - - // This is called from the accordion-group directive to add itself to the accordion - this.addGroup = function(groupScope) { - var that = this; - this.groups.push(groupScope); - - groupScope.$on('$destroy', function(event) { - that.removeGroup(groupScope); - }); - }; - - // This is called from the accordion-group directive when to remove itself - this.removeGroup = function(group) { - var index = this.groups.indexOf(group); - if (index !== -1) { - this.groups.splice(index, 1); - } - }; -}]) - -// The accordion directive simply sets up the directive controller -// and adds an accordion CSS class to itself element. -.directive('uibAccordion', function() { - return { - controller: 'UibAccordionController', - controllerAs: 'accordion', - transclude: true, - templateUrl: function(element, attrs) { - return attrs.templateUrl || 'uib/template/accordion/accordion.html'; - } - }; -}) - -// The accordion-group directive indicates a block of html that will expand and collapse in an accordion -.directive('uibAccordionGroup', function() { - return { - require: '^uibAccordion', // We need this directive to be inside an accordion - transclude: true, // It transcludes the contents of the directive into the template - replace: true, // The element containing the directive will be replaced with the template - templateUrl: function(element, attrs) { - return attrs.templateUrl || 'uib/template/accordion/accordion-group.html'; - }, - scope: { - heading: '@', // Interpolate the heading attribute onto this scope - isOpen: '=?', - isDisabled: '=?' - }, - controller: function() { - this.setHeading = function(element) { - this.heading = element; - }; - }, - link: function(scope, element, attrs, accordionCtrl) { - accordionCtrl.addGroup(scope); - - scope.openClass = attrs.openClass || 'panel-open'; - scope.panelClass = attrs.panelClass || 'panel-default'; - scope.$watch('isOpen', function(value) { - element.toggleClass(scope.openClass, !!value); - if (value) { - accordionCtrl.closeOthers(scope); - } - }); - - scope.toggleOpen = function($event) { - if (!scope.isDisabled) { - if (!$event || $event.which === 32) { - scope.isOpen = !scope.isOpen; - } - } - }; - - var id = 'accordiongroup-' + scope.$id + '-' + Math.floor(Math.random() * 10000); - scope.headingId = id + '-tab'; - scope.panelId = id + '-panel'; - } - }; -}) - -// Use accordion-heading below an accordion-group to provide a heading containing HTML -.directive('uibAccordionHeading', function() { - return { - transclude: true, // Grab the contents to be used as the heading - template: '', // In effect remove this element! - replace: true, - require: '^uibAccordionGroup', - link: function(scope, element, attrs, accordionGroupCtrl, transclude) { - // Pass the heading to the accordion-group controller - // so that it can be transcluded into the right place in the template - // [The second parameter to transclude causes the elements to be cloned so that they work in ng-repeat] - accordionGroupCtrl.setHeading(transclude(scope, angular.noop)); - } - }; -}) - -// Use in the accordion-group template to indicate where you want the heading to be transcluded -// You must provide the property on the accordion-group controller that will hold the transcluded element -.directive('uibAccordionTransclude', function() { - return { - require: '^uibAccordionGroup', - link: function(scope, element, attrs, controller) { - scope.$watch(function() { return controller[attrs.uibAccordionTransclude]; }, function(heading) { - if (heading) { - element.find('span').html(''); - element.find('span').append(heading); - } - }); - } - }; -}); - -angular.module('ui.bootstrap.alert', []) - -.controller('UibAlertController', ['$scope', '$attrs', '$interpolate', '$timeout', function($scope, $attrs, $interpolate, $timeout) { - $scope.closeable = !!$attrs.close; - - var dismissOnTimeout = angular.isDefined($attrs.dismissOnTimeout) ? - $interpolate($attrs.dismissOnTimeout)($scope.$parent) : null; - - if (dismissOnTimeout) { - $timeout(function() { - $scope.close(); - }, parseInt(dismissOnTimeout, 10)); - } -}]) - -.directive('uibAlert', function() { - return { - controller: 'UibAlertController', - controllerAs: 'alert', - templateUrl: function(element, attrs) { - return attrs.templateUrl || 'uib/template/alert/alert.html'; - }, - transclude: true, - replace: true, - scope: { - type: '@', - close: '&' - } - }; -}); - -angular.module('ui.bootstrap.buttons', []) - -.constant('uibButtonConfig', { - activeClass: 'active', - toggleEvent: 'click' -}) - -.controller('UibButtonsController', ['uibButtonConfig', function(buttonConfig) { - this.activeClass = buttonConfig.activeClass || 'active'; - this.toggleEvent = buttonConfig.toggleEvent || 'click'; -}]) - -.directive('uibBtnRadio', ['$parse', function($parse) { - return { - require: ['uibBtnRadio', 'ngModel'], - controller: 'UibButtonsController', - controllerAs: 'buttons', - link: function(scope, element, attrs, ctrls) { - var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1]; - var uncheckableExpr = $parse(attrs.uibUncheckable); - - element.find('input').css({display: 'none'}); - - //model -> UI - ngModelCtrl.$render = function() { - element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, scope.$eval(attrs.uibBtnRadio))); - }; - - //ui->model - element.on(buttonsCtrl.toggleEvent, function() { - if (attrs.disabled) { - return; - } - - var isActive = element.hasClass(buttonsCtrl.activeClass); - - if (!isActive || angular.isDefined(attrs.uncheckable)) { - scope.$apply(function() { - ngModelCtrl.$setViewValue(isActive ? null : scope.$eval(attrs.uibBtnRadio)); - ngModelCtrl.$render(); - }); - } - }); - - if (attrs.uibUncheckable) { - scope.$watch(uncheckableExpr, function(uncheckable) { - attrs.$set('uncheckable', uncheckable ? '' : null); - }); - } - } - }; -}]) - -.directive('uibBtnCheckbox', function() { - return { - require: ['uibBtnCheckbox', 'ngModel'], - controller: 'UibButtonsController', - controllerAs: 'button', - link: function(scope, element, attrs, ctrls) { - var buttonsCtrl = ctrls[0], ngModelCtrl = ctrls[1]; - - element.find('input').css({display: 'none'}); - - function getTrueValue() { - return getCheckboxValue(attrs.btnCheckboxTrue, true); - } - - function getFalseValue() { - return getCheckboxValue(attrs.btnCheckboxFalse, false); - } - - function getCheckboxValue(attribute, defaultValue) { - return angular.isDefined(attribute) ? scope.$eval(attribute) : defaultValue; - } - - //model -> UI - ngModelCtrl.$render = function() { - element.toggleClass(buttonsCtrl.activeClass, angular.equals(ngModelCtrl.$modelValue, getTrueValue())); - }; - - //ui->model - element.on(buttonsCtrl.toggleEvent, function() { - if (attrs.disabled) { - return; - } - - scope.$apply(function() { - ngModelCtrl.$setViewValue(element.hasClass(buttonsCtrl.activeClass) ? getFalseValue() : getTrueValue()); - ngModelCtrl.$render(); - }); - }); - } - }; -}); - -angular.module('ui.bootstrap.carousel', []) - -.controller('UibCarouselController', ['$scope', '$element', '$interval', '$timeout', '$animate', function($scope, $element, $interval, $timeout, $animate) { - var self = this, - slides = self.slides = $scope.slides = [], - SLIDE_DIRECTION = 'uib-slideDirection', - currentIndex = -1, - currentInterval, isPlaying, bufferedTransitions = []; - self.currentSlide = null; - - var destroyed = false; - - self.addSlide = function(slide, element) { - slide.$element = element; - slides.push(slide); - //if this is the first slide or the slide is set to active, select it - if (slides.length === 1 || slide.active) { - if ($scope.$currentTransition) { - $scope.$currentTransition = null; - } - - self.select(slides[slides.length - 1]); - if (slides.length === 1) { - $scope.play(); - } - } else { - slide.active = false; - } - }; - - self.getCurrentIndex = function() { - if (self.currentSlide && angular.isDefined(self.currentSlide.index)) { - return +self.currentSlide.index; - } - return currentIndex; - }; - - self.next = $scope.next = function() { - var newIndex = (self.getCurrentIndex() + 1) % slides.length; - - if (newIndex === 0 && $scope.noWrap()) { - $scope.pause(); - return; - } - - return self.select(getSlideByIndex(newIndex), 'next'); - }; - - self.prev = $scope.prev = function() { - var newIndex = self.getCurrentIndex() - 1 < 0 ? slides.length - 1 : self.getCurrentIndex() - 1; - - if ($scope.noWrap() && newIndex === slides.length - 1) { - $scope.pause(); - return; - } - - return self.select(getSlideByIndex(newIndex), 'prev'); - }; - - self.removeSlide = function(slide) { - if (angular.isDefined(slide.index)) { - slides.sort(function(a, b) { - return +a.index > +b.index; - }); - } - - var bufferedIndex = bufferedTransitions.indexOf(slide); - if (bufferedIndex !== -1) { - bufferedTransitions.splice(bufferedIndex, 1); - } - //get the index of the slide inside the carousel - var index = slides.indexOf(slide); - slides.splice(index, 1); - $timeout(function() { - if (slides.length > 0 && slide.active) { - if (index >= slides.length) { - self.select(slides[index - 1]); - } else { - self.select(slides[index]); - } - } else if (currentIndex > index) { - currentIndex--; - } - }); - - //clean the currentSlide when no more slide - if (slides.length === 0) { - self.currentSlide = null; - clearBufferedTransitions(); - } - }; - - /* direction: "prev" or "next" */ - self.select = $scope.select = function(nextSlide, direction) { - var nextIndex = $scope.indexOfSlide(nextSlide); - //Decide direction if it's not given - if (direction === undefined) { - direction = nextIndex > self.getCurrentIndex() ? 'next' : 'prev'; - } - //Prevent this user-triggered transition from occurring if there is already one in progress - if (nextSlide && nextSlide !== self.currentSlide && !$scope.$currentTransition) { - goNext(nextSlide, nextIndex, direction); - } else if (nextSlide && nextSlide !== self.currentSlide && $scope.$currentTransition) { - bufferedTransitions.push(nextSlide); - nextSlide.active = false; - } - }; - - /* Allow outside people to call indexOf on slides array */ - $scope.indexOfSlide = function(slide) { - return angular.isDefined(slide.index) ? +slide.index : slides.indexOf(slide); - }; - - $scope.isActive = function(slide) { - return self.currentSlide === slide; - }; - - $scope.pause = function() { - if (!$scope.noPause) { - isPlaying = false; - resetTimer(); - } - }; - - $scope.play = function() { - if (!isPlaying) { - isPlaying = true; - restartTimer(); - } - }; - - $scope.$on('$destroy', function() { - destroyed = true; - resetTimer(); - }); - - $scope.$watch('noTransition', function(noTransition) { - $animate.enabled($element, !noTransition); - }); - - $scope.$watch('interval', restartTimer); - - $scope.$watchCollection('slides', resetTransition); - - function clearBufferedTransitions() { - while (bufferedTransitions.length) { - bufferedTransitions.shift(); - } - } - - function getSlideByIndex(index) { - if (angular.isUndefined(slides[index].index)) { - return slides[index]; - } - for (var i = 0, l = slides.length; i < l; ++i) { - if (slides[i].index === index) { - return slides[i]; - } - } - } - - function goNext(slide, index, direction) { - if (destroyed) { return; } - - angular.extend(slide, {direction: direction, active: true}); - angular.extend(self.currentSlide || {}, {direction: direction, active: false}); - if ($animate.enabled($element) && !$scope.$currentTransition && - slide.$element && self.slides.length > 1) { - slide.$element.data(SLIDE_DIRECTION, slide.direction); - if (self.currentSlide && self.currentSlide.$element) { - self.currentSlide.$element.data(SLIDE_DIRECTION, slide.direction); - } - - $scope.$currentTransition = true; - $animate.on('addClass', slide.$element, function(element, phase) { - if (phase === 'close') { - $scope.$currentTransition = null; - $animate.off('addClass', element); - if (bufferedTransitions.length) { - var nextSlide = bufferedTransitions.pop(); - var nextIndex = $scope.indexOfSlide(nextSlide); - var nextDirection = nextIndex > self.getCurrentIndex() ? 'next' : 'prev'; - clearBufferedTransitions(); - - goNext(nextSlide, nextIndex, nextDirection); - } - } - }); - } - - self.currentSlide = slide; - currentIndex = index; - - //every time you change slides, reset the timer - restartTimer(); - } - - function resetTimer() { - if (currentInterval) { - $interval.cancel(currentInterval); - currentInterval = null; - } - } - - function resetTransition(slides) { - if (!slides.length) { - $scope.$currentTransition = null; - clearBufferedTransitions(); - } - } - - function restartTimer() { - resetTimer(); - var interval = +$scope.interval; - if (!isNaN(interval) && interval > 0) { - currentInterval = $interval(timerFn, interval); - } - } - - function timerFn() { - var interval = +$scope.interval; - if (isPlaying && !isNaN(interval) && interval > 0 && slides.length) { - $scope.next(); - } else { - $scope.pause(); - } - } -}]) - -.directive('uibCarousel', function() { - return { - transclude: true, - replace: true, - controller: 'UibCarouselController', - controllerAs: 'carousel', - templateUrl: function(element, attrs) { - return attrs.templateUrl || 'uib/template/carousel/carousel.html'; - }, - scope: { - interval: '=', - noTransition: '=', - noPause: '=', - noWrap: '&' - } - }; -}) - -.directive('uibSlide', function() { - return { - require: '^uibCarousel', - transclude: true, - replace: true, - templateUrl: function(element, attrs) { - return attrs.templateUrl || 'uib/template/carousel/slide.html'; - }, - scope: { - active: '=?', - actual: '=?', - index: '=?' - }, - link: function (scope, element, attrs, carouselCtrl) { - carouselCtrl.addSlide(scope, element); - //when the scope is destroyed then remove the slide from the current slides array - scope.$on('$destroy', function() { - carouselCtrl.removeSlide(scope); - }); - - scope.$watch('active', function(active) { - if (active) { - carouselCtrl.select(scope); - } - }); - } - }; -}) - -.animation('.item', ['$animateCss', -function($animateCss) { - var SLIDE_DIRECTION = 'uib-slideDirection'; - - function removeClass(element, className, callback) { - element.removeClass(className); - if (callback) { - callback(); - } - } - - return { - beforeAddClass: function(element, className, done) { - if (className === 'active') { - var stopped = false; - var direction = element.data(SLIDE_DIRECTION); - var directionClass = direction === 'next' ? 'left' : 'right'; - var removeClassFn = removeClass.bind(this, element, - directionClass + ' ' + direction, done); - element.addClass(direction); - - $animateCss(element, {addClass: directionClass}) - .start() - .done(removeClassFn); - - return function() { - stopped = true; - }; - } - done(); - }, - beforeRemoveClass: function (element, className, done) { - if (className === 'active') { - var stopped = false; - var direction = element.data(SLIDE_DIRECTION); - var directionClass = direction === 'next' ? 'left' : 'right'; - var removeClassFn = removeClass.bind(this, element, directionClass, done); - - $animateCss(element, {addClass: directionClass}) - .start() - .done(removeClassFn); - - return function() { - stopped = true; - }; - } - done(); - } - }; -}]); - -angular.module('ui.bootstrap.dateparser', []) - -.service('uibDateParser', ['$log', '$locale', 'dateFilter', 'orderByFilter', function($log, $locale, dateFilter, orderByFilter) { - // Pulled from https://github.com/mbostock/d3/blob/master/src/format/requote.js - var SPECIAL_CHARACTERS_REGEXP = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g; - - var localeId; - var formatCodeToRegex; - - this.init = function() { - localeId = $locale.id; - - this.parsers = {}; - this.formatters = {}; - - formatCodeToRegex = [ - { - key: 'yyyy', - regex: '\\d{4}', - apply: function(value) { this.year = +value; }, - formatter: function(date) { - var _date = new Date(); - _date.setFullYear(Math.abs(date.getFullYear())); - return dateFilter(_date, 'yyyy'); - } - }, - { - key: 'yy', - regex: '\\d{2}', - apply: function(value) { this.year = +value + 2000; }, - formatter: function(date) { - var _date = new Date(); - _date.setFullYear(Math.abs(date.getFullYear())); - return dateFilter(_date, 'yy'); - } - }, - { - key: 'y', - regex: '\\d{1,4}', - apply: function(value) { this.year = +value; }, - formatter: function(date) { - var _date = new Date(); - _date.setFullYear(Math.abs(date.getFullYear())); - return dateFilter(_date, 'y'); - } - }, - { - key: 'M!', - regex: '0?[1-9]|1[0-2]', - apply: function(value) { this.month = value - 1; }, - formatter: function(date) { - var value = date.getMonth(); - if (/^[0-9]$/.test(value)) { - return dateFilter(date, 'MM'); - } - - return dateFilter(date, 'M'); - } - }, - { - key: 'MMMM', - regex: $locale.DATETIME_FORMATS.MONTH.join('|'), - apply: function(value) { this.month = $locale.DATETIME_FORMATS.MONTH.indexOf(value); }, - formatter: function(date) { return dateFilter(date, 'MMMM'); } - }, - { - key: 'MMM', - regex: $locale.DATETIME_FORMATS.SHORTMONTH.join('|'), - apply: function(value) { this.month = $locale.DATETIME_FORMATS.SHORTMONTH.indexOf(value); }, - formatter: function(date) { return dateFilter(date, 'MMM'); } - }, - { - key: 'MM', - regex: '0[1-9]|1[0-2]', - apply: function(value) { this.month = value - 1; }, - formatter: function(date) { return dateFilter(date, 'MM'); } - }, - { - key: 'M', - regex: '[1-9]|1[0-2]', - apply: function(value) { this.month = value - 1; }, - formatter: function(date) { return dateFilter(date, 'M'); } - }, - { - key: 'd!', - regex: '[0-2]?[0-9]{1}|3[0-1]{1}', - apply: function(value) { this.date = +value; }, - formatter: function(date) { - var value = date.getDate(); - if (/^[1-9]$/.test(value)) { - return dateFilter(date, 'dd'); - } - - return dateFilter(date, 'd'); - } - }, - { - key: 'dd', - regex: '[0-2][0-9]{1}|3[0-1]{1}', - apply: function(value) { this.date = +value; }, - formatter: function(date) { return dateFilter(date, 'dd'); } - }, - { - key: 'd', - regex: '[1-2]?[0-9]{1}|3[0-1]{1}', - apply: function(value) { this.date = +value; }, - formatter: function(date) { return dateFilter(date, 'd'); } - }, - { - key: 'EEEE', - regex: $locale.DATETIME_FORMATS.DAY.join('|'), - formatter: function(date) { return dateFilter(date, 'EEEE'); } - }, - { - key: 'EEE', - regex: $locale.DATETIME_FORMATS.SHORTDAY.join('|'), - formatter: function(date) { return dateFilter(date, 'EEE'); } - }, - { - key: 'HH', - regex: '(?:0|1)[0-9]|2[0-3]', - apply: function(value) { this.hours = +value; }, - formatter: function(date) { return dateFilter(date, 'HH'); } - }, - { - key: 'hh', - regex: '0[0-9]|1[0-2]', - apply: function(value) { this.hours = +value; }, - formatter: function(date) { return dateFilter(date, 'hh'); } - }, - { - key: 'H', - regex: '1?[0-9]|2[0-3]', - apply: function(value) { this.hours = +value; }, - formatter: function(date) { return dateFilter(date, 'H'); } - }, - { - key: 'h', - regex: '[0-9]|1[0-2]', - apply: function(value) { this.hours = +value; }, - formatter: function(date) { return dateFilter(date, 'h'); } - }, - { - key: 'mm', - regex: '[0-5][0-9]', - apply: function(value) { this.minutes = +value; }, - formatter: function(date) { return dateFilter(date, 'mm'); } - }, - { - key: 'm', - regex: '[0-9]|[1-5][0-9]', - apply: function(value) { this.minutes = +value; }, - formatter: function(date) { return dateFilter(date, 'm'); } - }, - { - key: 'sss', - regex: '[0-9][0-9][0-9]', - apply: function(value) { this.milliseconds = +value; }, - formatter: function(date) { return dateFilter(date, 'sss'); } - }, - { - key: 'ss', - regex: '[0-5][0-9]', - apply: function(value) { this.seconds = +value; }, - formatter: function(date) { return dateFilter(date, 'ss'); } - }, - { - key: 's', - regex: '[0-9]|[1-5][0-9]', - apply: function(value) { this.seconds = +value; }, - formatter: function(date) { return dateFilter(date, 's'); } - }, - { - key: 'a', - regex: $locale.DATETIME_FORMATS.AMPMS.join('|'), - apply: function(value) { - if (this.hours === 12) { - this.hours = 0; - } - - if (value === 'PM') { - this.hours += 12; - } - }, - formatter: function(date) { return dateFilter(date, 'a'); } - }, - { - key: 'Z', - regex: '[+-]\\d{4}', - apply: function(value) { - var matches = value.match(/([+-])(\d{2})(\d{2})/), - sign = matches[1], - hours = matches[2], - minutes = matches[3]; - this.hours += toInt(sign + hours); - this.minutes += toInt(sign + minutes); - }, - formatter: function(date) { - return dateFilter(date, 'Z'); - } - }, - { - key: 'ww', - regex: '[0-4][0-9]|5[0-3]', - formatter: function(date) { return dateFilter(date, 'ww'); } - }, - { - key: 'w', - regex: '[0-9]|[1-4][0-9]|5[0-3]', - formatter: function(date) { return dateFilter(date, 'w'); } - }, - { - key: 'GGGG', - regex: $locale.DATETIME_FORMATS.ERANAMES.join('|').replace(/\s/g, '\\s'), - formatter: function(date) { return dateFilter(date, 'GGGG'); } - }, - { - key: 'GGG', - regex: $locale.DATETIME_FORMATS.ERAS.join('|'), - formatter: function(date) { return dateFilter(date, 'GGG'); } - }, - { - key: 'GG', - regex: $locale.DATETIME_FORMATS.ERAS.join('|'), - formatter: function(date) { return dateFilter(date, 'GG'); } - }, - { - key: 'G', - regex: $locale.DATETIME_FORMATS.ERAS.join('|'), - formatter: function(date) { return dateFilter(date, 'G'); } - } - ]; - }; - - this.init(); - - function createParser(format, func) { - var map = [], regex = format.split(''); - - // check for literal values - var quoteIndex = format.indexOf('\''); - if (quoteIndex > -1) { - var inLiteral = false; - format = format.split(''); - for (var i = quoteIndex; i < format.length; i++) { - if (inLiteral) { - if (format[i] === '\'') { - if (i + 1 < format.length && format[i+1] === '\'') { // escaped single quote - format[i+1] = '$'; - regex[i+1] = ''; - } else { // end of literal - regex[i] = ''; - inLiteral = false; - } - } - format[i] = '$'; - } else { - if (format[i] === '\'') { // start of literal - format[i] = '$'; - regex[i] = ''; - inLiteral = true; - } - } - } - - format = format.join(''); - } - - angular.forEach(formatCodeToRegex, function(data) { - var index = format.indexOf(data.key); - - if (index > -1) { - format = format.split(''); - - regex[index] = '(' + data.regex + ')'; - format[index] = '$'; // Custom symbol to define consumed part of format - for (var i = index + 1, n = index + data.key.length; i < n; i++) { - regex[i] = ''; - format[i] = '$'; - } - format = format.join(''); - - map.push({ - index: index, - key: data.key, - apply: data[func], - matcher: data.regex - }); - } - }); - - return { - regex: new RegExp('^' + regex.join('') + '$'), - map: orderByFilter(map, 'index') - }; - } - - this.filter = function(date, format) { - if (!angular.isDate(date) || isNaN(date) || !format) { - return ''; - } - - format = $locale.DATETIME_FORMATS[format] || format; - - if ($locale.id !== localeId) { - this.init(); - } - - if (!this.formatters[format]) { - this.formatters[format] = createParser(format, 'formatter'); - } - - var parser = this.formatters[format], - map = parser.map; - - var _format = format; - - return map.reduce(function(str, mapper, i) { - var match = _format.match(new RegExp('(.*)' + mapper.key)); - if (match && angular.isString(match[1])) { - str += match[1]; - _format = _format.replace(match[1] + mapper.key, ''); - } - - if (mapper.apply) { - return str + mapper.apply.call(null, date); - } - - return str; - }, ''); - }; - - this.parse = function(input, format, baseDate) { - if (!angular.isString(input) || !format) { - return input; - } - - format = $locale.DATETIME_FORMATS[format] || format; - format = format.replace(SPECIAL_CHARACTERS_REGEXP, '\\$&'); - - if ($locale.id !== localeId) { - this.init(); - } - - if (!this.parsers[format]) { - this.parsers[format] = createParser(format, 'apply'); - } - - var parser = this.parsers[format], - regex = parser.regex, - map = parser.map, - results = input.match(regex), - tzOffset = false; - if (results && results.length) { - var fields, dt; - if (angular.isDate(baseDate) && !isNaN(baseDate.getTime())) { - fields = { - year: baseDate.getFullYear(), - month: baseDate.getMonth(), - date: baseDate.getDate(), - hours: baseDate.getHours(), - minutes: baseDate.getMinutes(), - seconds: baseDate.getSeconds(), - milliseconds: baseDate.getMilliseconds() - }; - } else { - if (baseDate) { - $log.warn('dateparser:', 'baseDate is not a valid date'); - } - fields = { year: 1900, month: 0, date: 1, hours: 0, minutes: 0, seconds: 0, milliseconds: 0 }; - } - - for (var i = 1, n = results.length; i < n; i++) { - var mapper = map[i - 1]; - if (mapper.matcher === 'Z') { - tzOffset = true; - } - - if (mapper.apply) { - mapper.apply.call(fields, results[i]); - } - } - - var datesetter = tzOffset ? Date.prototype.setUTCFullYear : - Date.prototype.setFullYear; - var timesetter = tzOffset ? Date.prototype.setUTCHours : - Date.prototype.setHours; - - if (isValid(fields.year, fields.month, fields.date)) { - if (angular.isDate(baseDate) && !isNaN(baseDate.getTime()) && !tzOffset) { - dt = new Date(baseDate); - datesetter.call(dt, fields.year, fields.month, fields.date); - timesetter.