├── app
├── css
│ ├── .gitignore
│ └── app.css
├── img
│ └── .gitignore
├── templates
│ ├── .gitignore
│ ├── timer.html
│ ├── results.html
│ └── questions.html
├── lib
│ └── angular
│ │ ├── version.txt
│ │ ├── angular-cookies.min.js
│ │ ├── angular-loader.min.js
│ │ ├── angular-resource.min.js
│ │ └── angular-sanitize.min.js
├── bootstrap_2.3.1
│ └── img
│ │ ├── glyphicons-halflings.png
│ │ └── glyphicons-halflings-white.png
├── js
│ ├── services.js
│ ├── app.js
│ ├── directives.js
│ ├── filters.js
│ └── controllers.js
├── greetings.html
├── index.html
└── questions
│ └── questions.json
├── lib
├── jquery
│ ├── src
│ │ ├── outro.js
│ │ ├── selector.js
│ │ ├── var
│ │ │ ├── arr.js
│ │ │ ├── rnotwhite.js
│ │ │ ├── strundefined.js
│ │ │ ├── push.js
│ │ │ ├── class2type.js
│ │ │ ├── concat.js
│ │ │ ├── indexOf.js
│ │ │ ├── slice.js
│ │ │ ├── pnum.js
│ │ │ ├── toString.js
│ │ │ ├── hasOwn.js
│ │ │ └── support.js
│ │ ├── ajax
│ │ │ ├── var
│ │ │ │ ├── rquery.js
│ │ │ │ └── nonce.js
│ │ │ ├── parseJSON.js
│ │ │ ├── parseXML.js
│ │ │ ├── script.js
│ │ │ ├── load.js
│ │ │ ├── jsonp.js
│ │ │ └── xhr.js
│ │ ├── css
│ │ │ ├── var
│ │ │ │ ├── rmargin.js
│ │ │ │ ├── cssExpand.js
│ │ │ │ ├── rnumnonpx.js
│ │ │ │ ├── getStyles.js
│ │ │ │ └── isHidden.js
│ │ │ ├── hiddenVisibleSelectors.js
│ │ │ ├── swap.js
│ │ │ ├── addGetHookIf.js
│ │ │ ├── curCSS.js
│ │ │ ├── defaultDisplay.js
│ │ │ └── support.js
│ │ ├── data
│ │ │ ├── var
│ │ │ │ ├── data_priv.js
│ │ │ │ └── data_user.js
│ │ │ └── accepts.js
│ │ ├── manipulation
│ │ │ ├── var
│ │ │ │ └── rcheckableType.js
│ │ │ ├── _evalUrl.js
│ │ │ └── support.js
│ │ ├── core
│ │ │ ├── var
│ │ │ │ └── rsingleTag.js
│ │ │ ├── parseHTML.js
│ │ │ ├── access.js
│ │ │ ├── ready.js
│ │ │ └── init.js
│ │ ├── traversing
│ │ │ ├── var
│ │ │ │ └── rneedsContext.js
│ │ │ └── findFilter.js
│ │ ├── event
│ │ │ ├── support.js
│ │ │ └── alias.js
│ │ ├── attributes.js
│ │ ├── deprecated.js
│ │ ├── effects
│ │ │ ├── animatedSelector.js
│ │ │ └── Tween.js
│ │ ├── selector-sizzle.js
│ │ ├── queue
│ │ │ └── delay.js
│ │ ├── jquery.js
│ │ ├── exports
│ │ │ ├── global.js
│ │ │ └── amd.js
│ │ ├── attributes
│ │ │ ├── support.js
│ │ │ ├── prop.js
│ │ │ └── attr.js
│ │ ├── intro.js
│ │ ├── wrap.js
│ │ ├── dimensions.js
│ │ ├── serialize.js
│ │ └── queue.js
│ ├── bower.json
│ ├── .bower.json
│ └── MIT-LICENSE.txt
├── angular
│ ├── angular.min.js.gzip
│ ├── bower.json
│ ├── .bower.json
│ ├── angular-csp.css
│ └── README.md
├── bootstrap
│ ├── fonts
│ │ ├── glyphicons-halflings-regular.eot
│ │ ├── glyphicons-halflings-regular.ttf
│ │ └── glyphicons-halflings-regular.woff
│ ├── dist
│ │ └── fonts
│ │ │ ├── glyphicons-halflings-regular.eot
│ │ │ ├── glyphicons-halflings-regular.ttf
│ │ │ └── glyphicons-halflings-regular.woff
│ ├── less
│ │ ├── mixins
│ │ │ ├── center-block.less
│ │ │ ├── text-emphasis.less
│ │ │ ├── size.less
│ │ │ ├── opacity.less
│ │ │ ├── background-variant.less
│ │ │ ├── text-overflow.less
│ │ │ ├── tab-focus.less
│ │ │ ├── resize.less
│ │ │ ├── labels.less
│ │ │ ├── progress-bar.less
│ │ │ ├── reset-filter.less
│ │ │ ├── nav-divider.less
│ │ │ ├── alerts.less
│ │ │ ├── nav-vertical-align.less
│ │ │ ├── responsive-visibility.less
│ │ │ ├── pagination.less
│ │ │ ├── border-radius.less
│ │ │ ├── panels.less
│ │ │ ├── list-group.less
│ │ │ ├── hide-text.less
│ │ │ ├── clearfix.less
│ │ │ ├── table-row.less
│ │ │ ├── image.less
│ │ │ ├── buttons.less
│ │ │ ├── forms.less
│ │ │ ├── grid-framework.less
│ │ │ └── grid.less
│ │ ├── wells.less
│ │ ├── breadcrumbs.less
│ │ ├── responsive-embed.less
│ │ ├── component-animations.less
│ │ ├── close.less
│ │ ├── thumbnails.less
│ │ ├── utilities.less
│ │ ├── media.less
│ │ ├── pager.less
│ │ ├── jumbotron.less
│ │ ├── mixins.less
│ │ ├── badges.less
│ │ ├── bootstrap.less
│ │ ├── labels.less
│ │ ├── code.less
│ │ ├── grid.less
│ │ ├── alerts.less
│ │ ├── print.less
│ │ ├── pagination.less
│ │ ├── progress-bars.less
│ │ ├── tooltip.less
│ │ ├── scaffolding.less
│ │ ├── list-group.less
│ │ ├── popovers.less
│ │ ├── buttons.less
│ │ └── modals.less
│ ├── bower.json
│ ├── LICENSE
│ ├── .bower.json
│ ├── grunt
│ │ ├── bs-glyphicons-data-generator.js
│ │ ├── bs-raw-files-generator.js
│ │ └── sauce_browsers.yml
│ ├── js
│ │ ├── transition.js
│ │ ├── alert.js
│ │ ├── button.js
│ │ ├── tab.js
│ │ └── popover.js
│ └── package.json
└── angular-resource
│ ├── bower.json
│ ├── .bower.json
│ ├── README.md
│ └── angular-resource.min.js
├── test
├── lib
│ └── angular
│ │ └── version.txt
├── e2e
│ ├── runner.html
│ └── scenarios.js
└── unit
│ ├── filtersSpec.js
│ ├── directivesSpec.js
│ ├── servicesSpec.js
│ └── controllersSpec.js
├── logs
└── .gitignore
├── .bowerrc
├── .gitignore
├── README.md
├── scripts
├── test.sh
├── e2e-test.sh
├── e2e-test.bat
├── test.bat
└── watchr.rb
├── config
├── testacular-e2e.conf.js
└── testacular.conf.js
└── package.json
/app/css/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/img/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/templates/.gitignore:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/lib/angular/version.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/lib/jquery/src/outro.js:
--------------------------------------------------------------------------------
1 | }));
2 |
--------------------------------------------------------------------------------
/test/lib/angular/version.txt:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/logs/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 |
--------------------------------------------------------------------------------
/.bowerrc:
--------------------------------------------------------------------------------
1 | {
2 | "directory": "lib"
3 | }
--------------------------------------------------------------------------------
/lib/jquery/src/selector.js:
--------------------------------------------------------------------------------
1 | define([ "./selector-sizzle" ]);
2 |
--------------------------------------------------------------------------------
/lib/jquery/src/var/arr.js:
--------------------------------------------------------------------------------
1 | define(function() {
2 | return [];
3 | });
4 |
--------------------------------------------------------------------------------
/lib/jquery/src/ajax/var/rquery.js:
--------------------------------------------------------------------------------
1 | define(function() {
2 | return (/\?/);
3 | });
4 |
--------------------------------------------------------------------------------
/lib/jquery/src/var/rnotwhite.js:
--------------------------------------------------------------------------------
1 | define(function() {
2 | return (/\S+/g);
3 | });
4 |
--------------------------------------------------------------------------------
/app/templates/timer.html:
--------------------------------------------------------------------------------
1 |
").append( jQuery.parseHTML( responseText ) ).find( selector ) :
63 |
64 | // Otherwise use the full result
65 | responseText );
66 |
67 | }).complete( callback && function( jqXHR, status ) {
68 | self.each( callback, response || [ jqXHR.responseText, status, jqXHR ] );
69 | });
70 | }
71 |
72 | return this;
73 | };
74 |
75 | });
76 |
--------------------------------------------------------------------------------
/lib/angular-resource/README.md:
--------------------------------------------------------------------------------
1 | # bower-angular-resource
2 |
3 | This repo is for distribution on `bower`. The source for this module is in the
4 | [main AngularJS repo](https://github.com/angular/angular.js/tree/master/src/ngResource).
5 | Please file issues and pull requests against that repo.
6 |
7 | ## Install
8 |
9 | Install with `bower`:
10 |
11 | ```shell
12 | bower install angular-resource
13 | ```
14 |
15 | Add a `
19 | ```
20 |
21 | And add `ngResource` as a dependency for your app:
22 |
23 | ```javascript
24 | angular.module('myApp', ['ngResource']);
25 | ```
26 |
27 | ## Documentation
28 |
29 | Documentation is available on the
30 | [AngularJS docs site](http://docs.angularjs.org/api/ngResource).
31 |
32 | ## License
33 |
34 | The MIT License
35 |
36 | Copyright (c) 2010-2012 Google, Inc. http://angularjs.org
37 |
38 | Permission is hereby granted, free of charge, to any person obtaining a copy
39 | of this software and associated documentation files (the "Software"), to deal
40 | in the Software without restriction, including without limitation the rights
41 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
42 | copies of the Software, and to permit persons to whom the Software is
43 | furnished to do so, subject to the following conditions:
44 |
45 | The above copyright notice and this permission notice shall be included in
46 | all copies or substantial portions of the Software.
47 |
48 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
49 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
50 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
51 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
52 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
53 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
54 | THE SOFTWARE.
55 |
--------------------------------------------------------------------------------
/lib/bootstrap/js/transition.js:
--------------------------------------------------------------------------------
1 | /* ========================================================================
2 | * Bootstrap: transition.js v3.2.0
3 | * http://getbootstrap.com/javascript/#transitions
4 | * ========================================================================
5 | * Copyright 2011-2014 Twitter, Inc.
6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 | * ======================================================================== */
8 |
9 |
10 | +function ($) {
11 | 'use strict';
12 |
13 | // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
14 | // ============================================================
15 |
16 | function transitionEnd() {
17 | var el = document.createElement('bootstrap')
18 |
19 | var transEndEventNames = {
20 | WebkitTransition : 'webkitTransitionEnd',
21 | MozTransition : 'transitionend',
22 | OTransition : 'oTransitionEnd otransitionend',
23 | transition : 'transitionend'
24 | }
25 |
26 | for (var name in transEndEventNames) {
27 | if (el.style[name] !== undefined) {
28 | return { end: transEndEventNames[name] }
29 | }
30 | }
31 |
32 | return false // explicit for ie8 ( ._.)
33 | }
34 |
35 | // http://blog.alexmaccaw.com/css-transitions
36 | $.fn.emulateTransitionEnd = function (duration) {
37 | var called = false
38 | var $el = this
39 | $(this).one('bsTransitionEnd', function () { called = true })
40 | var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
41 | setTimeout(callback, duration)
42 | return this
43 | }
44 |
45 | $(function () {
46 | $.support.transition = transitionEnd()
47 |
48 | if (!$.support.transition) return
49 |
50 | $.event.special.bsTransitionEnd = {
51 | bindType: $.support.transition.end,
52 | delegateType: $.support.transition.end,
53 | handle: function (e) {
54 | if ($(e.target).is(this)) return e.handleObj.handler.apply(this, arguments)
55 | }
56 | }
57 | })
58 |
59 | }(jQuery);
60 |
--------------------------------------------------------------------------------
/lib/bootstrap/less/print.less:
--------------------------------------------------------------------------------
1 | //
2 | // Basic print styles
3 | // --------------------------------------------------
4 | // Source: https://github.com/h5bp/html5-boilerplate/blob/master/css/main.css
5 |
6 | @media print {
7 |
8 | * {
9 | text-shadow: none !important;
10 | color: #000 !important; // Black prints faster: h5bp.com/s
11 | background: transparent !important;
12 | box-shadow: none !important;
13 | }
14 |
15 | a,
16 | a:visited {
17 | text-decoration: underline;
18 | }
19 |
20 | a[href]:after {
21 | content: " (" attr(href) ")";
22 | }
23 |
24 | abbr[title]:after {
25 | content: " (" attr(title) ")";
26 | }
27 |
28 | // Don't show links for images, or javascript/internal links
29 | a[href^="javascript:"]:after,
30 | a[href^="#"]:after {
31 | content: "";
32 | }
33 |
34 | pre,
35 | blockquote {
36 | border: 1px solid #999;
37 | page-break-inside: avoid;
38 | }
39 |
40 | thead {
41 | display: table-header-group; // h5bp.com/t
42 | }
43 |
44 | tr,
45 | img {
46 | page-break-inside: avoid;
47 | }
48 |
49 | img {
50 | max-width: 100% !important;
51 | }
52 |
53 | p,
54 | h2,
55 | h3 {
56 | orphans: 3;
57 | widows: 3;
58 | }
59 |
60 | h2,
61 | h3 {
62 | page-break-after: avoid;
63 | }
64 |
65 | // Chrome (OSX) fix for https://github.com/twbs/bootstrap/issues/11245
66 | // Once fixed, we can just straight up remove this.
67 | select {
68 | background: #fff !important;
69 | }
70 |
71 | // Bootstrap components
72 | .navbar {
73 | display: none;
74 | }
75 | .table {
76 | td,
77 | th {
78 | background-color: #fff !important;
79 | }
80 | }
81 | .btn,
82 | .dropup > .btn {
83 | > .caret {
84 | border-top-color: #000 !important;
85 | }
86 | }
87 | .label {
88 | border: 1px solid #000;
89 | }
90 |
91 | .table {
92 | border-collapse: collapse !important;
93 | }
94 | .table-bordered {
95 | th,
96 | td {
97 | border: 1px solid #ddd !important;
98 | }
99 | }
100 |
101 | }
102 |
--------------------------------------------------------------------------------
/lib/jquery/src/css/defaultDisplay.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../manipulation" // appendTo
4 | ], function( jQuery ) {
5 |
6 | var iframe,
7 | elemdisplay = {};
8 |
9 | /**
10 | * Retrieve the actual display of a element
11 | * @param {String} name nodeName of the element
12 | * @param {Object} doc Document object
13 | */
14 | // Called only from within defaultDisplay
15 | function actualDisplay( name, doc ) {
16 | var style,
17 | elem = jQuery( doc.createElement( name ) ).appendTo( doc.body ),
18 |
19 | // getDefaultComputedStyle might be reliably used only on attached element
20 | display = window.getDefaultComputedStyle && ( style = window.getDefaultComputedStyle( elem[ 0 ] ) ) ?
21 |
22 | // Use of this method is a temporary fix (more like optmization) until something better comes along,
23 | // since it was removed from specification and supported only in FF
24 | style.display : jQuery.css( elem[ 0 ], "display" );
25 |
26 | // We don't have any data stored on the element,
27 | // so use "detach" method as fast way to get rid of the element
28 | elem.detach();
29 |
30 | return display;
31 | }
32 |
33 | /**
34 | * Try to determine the default display value of an element
35 | * @param {String} nodeName
36 | */
37 | function defaultDisplay( nodeName ) {
38 | var doc = document,
39 | display = elemdisplay[ nodeName ];
40 |
41 | if ( !display ) {
42 | display = actualDisplay( nodeName, doc );
43 |
44 | // If the simple way fails, read from inside an iframe
45 | if ( display === "none" || !display ) {
46 |
47 | // Use the already-created iframe if possible
48 | iframe = (iframe || jQuery( "
" )).appendTo( doc.documentElement );
49 |
50 | // Always write a new HTML skeleton so Webkit and Firefox don't choke on reuse
51 | doc = iframe[ 0 ].contentDocument;
52 |
53 | // Support: IE
54 | doc.write();
55 | doc.close();
56 |
57 | display = actualDisplay( nodeName, doc );
58 | iframe.detach();
59 | }
60 |
61 | // Store the correct default display
62 | elemdisplay[ nodeName ] = display;
63 | }
64 |
65 | return display;
66 | }
67 |
68 | return defaultDisplay;
69 |
70 | });
71 |
--------------------------------------------------------------------------------
/lib/jquery/src/attributes/prop.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../core/access",
4 | "./support"
5 | ], function( jQuery, access, support ) {
6 |
7 | var rfocusable = /^(?:input|select|textarea|button)$/i;
8 |
9 | jQuery.fn.extend({
10 | prop: function( name, value ) {
11 | return access( this, jQuery.prop, name, value, arguments.length > 1 );
12 | },
13 |
14 | removeProp: function( name ) {
15 | return this.each(function() {
16 | delete this[ jQuery.propFix[ name ] || name ];
17 | });
18 | }
19 | });
20 |
21 | jQuery.extend({
22 | propFix: {
23 | "for": "htmlFor",
24 | "class": "className"
25 | },
26 |
27 | prop: function( elem, name, value ) {
28 | var ret, hooks, notxml,
29 | nType = elem.nodeType;
30 |
31 | // don't get/set properties on text, comment and attribute nodes
32 | if ( !elem || nType === 3 || nType === 8 || nType === 2 ) {
33 | return;
34 | }
35 |
36 | notxml = nType !== 1 || !jQuery.isXMLDoc( elem );
37 |
38 | if ( notxml ) {
39 | // Fix name and attach hooks
40 | name = jQuery.propFix[ name ] || name;
41 | hooks = jQuery.propHooks[ name ];
42 | }
43 |
44 | if ( value !== undefined ) {
45 | return hooks && "set" in hooks && (ret = hooks.set( elem, value, name )) !== undefined ?
46 | ret :
47 | ( elem[ name ] = value );
48 |
49 | } else {
50 | return hooks && "get" in hooks && (ret = hooks.get( elem, name )) !== null ?
51 | ret :
52 | elem[ name ];
53 | }
54 | },
55 |
56 | propHooks: {
57 | tabIndex: {
58 | get: function( elem ) {
59 | return elem.hasAttribute( "tabindex" ) || rfocusable.test( elem.nodeName ) || elem.href ?
60 | elem.tabIndex :
61 | -1;
62 | }
63 | }
64 | }
65 | });
66 |
67 | // Support: IE9+
68 | // Selectedness for an option in an optgroup can be inaccurate
69 | if ( !support.optSelected ) {
70 | jQuery.propHooks.selected = {
71 | get: function( elem ) {
72 | var parent = elem.parentNode;
73 | if ( parent && parent.parentNode ) {
74 | parent.parentNode.selectedIndex;
75 | }
76 | return null;
77 | }
78 | };
79 | }
80 |
81 | jQuery.each([
82 | "tabIndex",
83 | "readOnly",
84 | "maxLength",
85 | "cellSpacing",
86 | "cellPadding",
87 | "rowSpan",
88 | "colSpan",
89 | "useMap",
90 | "frameBorder",
91 | "contentEditable"
92 | ], function() {
93 | jQuery.propFix[ this.toLowerCase() ] = this;
94 | });
95 |
96 | });
97 |
--------------------------------------------------------------------------------
/lib/bootstrap/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap",
3 | "description": "The most popular front-end framework for developing responsive, mobile first projects on the web.",
4 | "version": "3.2.0",
5 | "keywords": [
6 | "css",
7 | "less",
8 | "mobile-first",
9 | "responsive",
10 | "front-end",
11 | "framework",
12 | "web"
13 | ],
14 | "homepage": "http://getbootstrap.com",
15 | "author": "Twitter, Inc.",
16 | "scripts": {
17 | "test": "grunt test"
18 | },
19 | "style": "dist/css/bootstrap.css",
20 | "less": "less/bootstrap.less",
21 | "repository": {
22 | "type": "git",
23 | "url": "https://github.com/twbs/bootstrap.git"
24 | },
25 | "bugs": {
26 | "url": "https://github.com/twbs/bootstrap/issues"
27 | },
28 | "license": {
29 | "type": "MIT",
30 | "url": "https://github.com/twbs/bootstrap/blob/master/LICENSE"
31 | },
32 | "devDependencies": {
33 | "btoa": "~1.1.2",
34 | "glob": "~4.0.2",
35 | "grunt": "~0.4.5",
36 | "grunt-autoprefixer": "~0.7.6",
37 | "grunt-banner": "~0.2.3",
38 | "grunt-contrib-clean": "~0.5.0",
39 | "grunt-contrib-concat": "~0.4.0",
40 | "grunt-contrib-connect": "~0.8.0",
41 | "grunt-contrib-copy": "~0.5.0",
42 | "grunt-contrib-csslint": "~0.2.0",
43 | "grunt-contrib-cssmin": "~0.10.0",
44 | "grunt-contrib-jade": "~0.12.0",
45 | "grunt-contrib-jshint": "~0.10.0",
46 | "grunt-contrib-less": "~0.11.3",
47 | "grunt-contrib-qunit": "~0.5.1",
48 | "grunt-contrib-uglify": "~0.5.0",
49 | "grunt-contrib-watch": "~0.6.1",
50 | "grunt-csscomb": "~2.0.1",
51 | "grunt-exec": "~0.4.5",
52 | "grunt-html-validation": "~0.1.18",
53 | "grunt-jekyll": "~0.4.2",
54 | "grunt-jscs-checker": "~0.6.0",
55 | "grunt-saucelabs": "~8.1.0",
56 | "grunt-sed": "~0.1.1",
57 | "load-grunt-tasks": "~0.6.0",
58 | "markdown": "~0.5.0",
59 | "npm-shrinkwrap": "~3.1.6",
60 | "time-grunt": "~0.3.2"
61 | },
62 | "engines": {
63 | "node": "~0.10.1"
64 | },
65 | "jspm": {
66 | "main": "js/bootstrap",
67 | "directories": {
68 | "example": "examples",
69 | "lib": "dist"
70 | },
71 | "shim": {
72 | "js/bootstrap": {
73 | "imports": "jquery",
74 | "exports": "$"
75 | }
76 | },
77 | "buildConfig": {
78 | "uglify": true
79 | }
80 | }
81 | }
82 |
--------------------------------------------------------------------------------
/lib/bootstrap/less/pagination.less:
--------------------------------------------------------------------------------
1 | //
2 | // Pagination (multiple pages)
3 | // --------------------------------------------------
4 | .pagination {
5 | display: inline-block;
6 | padding-left: 0;
7 | margin: @line-height-computed 0;
8 | border-radius: @border-radius-base;
9 |
10 | > li {
11 | display: inline; // Remove list-style and block-level defaults
12 | > a,
13 | > span {
14 | position: relative;
15 | float: left; // Collapse white-space
16 | padding: @padding-base-vertical @padding-base-horizontal;
17 | line-height: @line-height-base;
18 | text-decoration: none;
19 | color: @pagination-color;
20 | background-color: @pagination-bg;
21 | border: 1px solid @pagination-border;
22 | margin-left: -1px;
23 | }
24 | &:first-child {
25 | > a,
26 | > span {
27 | margin-left: 0;
28 | .border-left-radius(@border-radius-base);
29 | }
30 | }
31 | &:last-child {
32 | > a,
33 | > span {
34 | .border-right-radius(@border-radius-base);
35 | }
36 | }
37 | }
38 |
39 | > li > a,
40 | > li > span {
41 | &:hover,
42 | &:focus {
43 | color: @pagination-hover-color;
44 | background-color: @pagination-hover-bg;
45 | border-color: @pagination-hover-border;
46 | }
47 | }
48 |
49 | > .active > a,
50 | > .active > span {
51 | &,
52 | &:hover,
53 | &:focus {
54 | z-index: 2;
55 | color: @pagination-active-color;
56 | background-color: @pagination-active-bg;
57 | border-color: @pagination-active-border;
58 | cursor: default;
59 | }
60 | }
61 |
62 | > .disabled {
63 | > span,
64 | > span:hover,
65 | > span:focus,
66 | > a,
67 | > a:hover,
68 | > a:focus {
69 | color: @pagination-disabled-color;
70 | background-color: @pagination-disabled-bg;
71 | border-color: @pagination-disabled-border;
72 | cursor: not-allowed;
73 | }
74 | }
75 | }
76 |
77 | // Sizing
78 | // --------------------------------------------------
79 |
80 | // Large
81 | .pagination-lg {
82 | .pagination-size(@padding-large-vertical; @padding-large-horizontal; @font-size-large; @border-radius-large);
83 | }
84 |
85 | // Small
86 | .pagination-sm {
87 | .pagination-size(@padding-small-vertical; @padding-small-horizontal; @font-size-small; @border-radius-small);
88 | }
89 |
--------------------------------------------------------------------------------
/app/lib/angular/angular-resource.min.js:
--------------------------------------------------------------------------------
1 | /*
2 | AngularJS v1.0.6
3 | (c) 2010-2012 Google, Inc. http://angularjs.org
4 | License: MIT
5 | */
6 | (function(C,d,w){'use strict';d.module("ngResource",["ng"]).factory("$resource",["$http","$parse",function(x,y){function s(b,e){return encodeURIComponent(b).replace(/%40/gi,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,e?"%20":"+")}function t(b,e){this.template=b+="#";this.defaults=e||{};var a=this.urlParams={};h(b.split(/\W/),function(f){f&&RegExp("(^|[^\\\\]):"+f+"\\W").test(b)&&(a[f]=!0)});this.template=b.replace(/\\:/g,":")}function u(b,e,a){function f(m,a){var b=
7 | {},a=o({},e,a);h(a,function(a,z){var c;a.charAt&&a.charAt(0)=="@"?(c=a.substr(1),c=y(c)(m)):c=a;b[z]=c});return b}function g(a){v(a||{},this)}var k=new t(b),a=o({},A,a);h(a,function(a,b){a.method=d.uppercase(a.method);var e=a.method=="POST"||a.method=="PUT"||a.method=="PATCH";g[b]=function(b,c,d,B){var j={},i,l=p,q=null;switch(arguments.length){case 4:q=B,l=d;case 3:case 2:if(r(c)){if(r(b)){l=b;q=c;break}l=c;q=d}else{j=b;i=c;l=d;break}case 1:r(b)?l=b:e?i=b:j=b;break;case 0:break;default:throw"Expected between 0-4 arguments [params, data, success, error], got "+
8 | arguments.length+" arguments.";}var n=this instanceof g?this:a.isArray?[]:new g(i);x({method:a.method,url:k.url(o({},f(i,a.params||{}),j)),data:i}).then(function(b){var c=b.data;if(c)a.isArray?(n.length=0,h(c,function(a){n.push(new g(a))})):v(c,n);(l||p)(n,b.headers)},q);return n};g.prototype["$"+b]=function(a,d,h){var m=f(this),j=p,i;switch(arguments.length){case 3:m=a;j=d;i=h;break;case 2:case 1:r(a)?(j=a,i=d):(m=a,j=d||p);case 0:break;default:throw"Expected between 1-3 arguments [params, success, error], got "+
9 | arguments.length+" arguments.";}g[b].call(this,m,e?this:w,j,i)}});g.bind=function(d){return u(b,o({},e,d),a)};return g}var A={get:{method:"GET"},save:{method:"POST"},query:{method:"GET",isArray:!0},remove:{method:"DELETE"},"delete":{method:"DELETE"}},p=d.noop,h=d.forEach,o=d.extend,v=d.copy,r=d.isFunction;t.prototype={url:function(b){var e=this,a=this.template,f,g,b=b||{};h(this.urlParams,function(h,c){f=b.hasOwnProperty(c)?b[c]:e.defaults[c];d.isDefined(f)&&f!==null?(g=s(f,!0).replace(/%26/gi,"&").replace(/%3D/gi,
10 | "=").replace(/%2B/gi,"+"),a=a.replace(RegExp(":"+c+"(\\W)","g"),g+"$1")):a=a.replace(RegExp("(/?):"+c+"(\\W)","g"),function(a,b,c){return c.charAt(0)=="/"?c:b+c})});var a=a.replace(/\/?#$/,""),k=[];h(b,function(a,b){e.urlParams[b]||k.push(s(b)+"="+s(a))});k.sort();a=a.replace(/\/*$/,"");return a+(k.length?"?"+k.join("&"):"")}};return u}])})(window,window.angular);
11 |
--------------------------------------------------------------------------------
/lib/bootstrap/js/alert.js:
--------------------------------------------------------------------------------
1 | /* ========================================================================
2 | * Bootstrap: alert.js v3.2.0
3 | * http://getbootstrap.com/javascript/#alerts
4 | * ========================================================================
5 | * Copyright 2011-2014 Twitter, Inc.
6 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
7 | * ======================================================================== */
8 |
9 |
10 | +function ($) {
11 | 'use strict';
12 |
13 | // ALERT CLASS DEFINITION
14 | // ======================
15 |
16 | var dismiss = '[data-dismiss="alert"]'
17 | var Alert = function (el) {
18 | $(el).on('click', dismiss, this.close)
19 | }
20 |
21 | Alert.VERSION = '3.2.0'
22 |
23 | Alert.prototype.close = function (e) {
24 | var $this = $(this)
25 | var selector = $this.attr('data-target')
26 |
27 | if (!selector) {
28 | selector = $this.attr('href')
29 | selector = selector && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
30 | }
31 |
32 | var $parent = $(selector)
33 |
34 | if (e) e.preventDefault()
35 |
36 | if (!$parent.length) {
37 | $parent = $this.hasClass('alert') ? $this : $this.parent()
38 | }
39 |
40 | $parent.trigger(e = $.Event('close.bs.alert'))
41 |
42 | if (e.isDefaultPrevented()) return
43 |
44 | $parent.removeClass('in')
45 |
46 | function removeElement() {
47 | // detach from parent, fire event then clean up data
48 | $parent.detach().trigger('closed.bs.alert').remove()
49 | }
50 |
51 | $.support.transition && $parent.hasClass('fade') ?
52 | $parent
53 | .one('bsTransitionEnd', removeElement)
54 | .emulateTransitionEnd(150) :
55 | removeElement()
56 | }
57 |
58 |
59 | // ALERT PLUGIN DEFINITION
60 | // =======================
61 |
62 | function Plugin(option) {
63 | return this.each(function () {
64 | var $this = $(this)
65 | var data = $this.data('bs.alert')
66 |
67 | if (!data) $this.data('bs.alert', (data = new Alert(this)))
68 | if (typeof option == 'string') data[option].call($this)
69 | })
70 | }
71 |
72 | var old = $.fn.alert
73 |
74 | $.fn.alert = Plugin
75 | $.fn.alert.Constructor = Alert
76 |
77 |
78 | // ALERT NO CONFLICT
79 | // =================
80 |
81 | $.fn.alert.noConflict = function () {
82 | $.fn.alert = old
83 | return this
84 | }
85 |
86 |
87 | // ALERT DATA-API
88 | // ==============
89 |
90 | $(document).on('click.bs.alert.data-api', dismiss, Alert.prototype.close)
91 |
92 | }(jQuery);
93 |
--------------------------------------------------------------------------------
/lib/bootstrap/less/progress-bars.less:
--------------------------------------------------------------------------------
1 | //
2 | // Progress bars
3 | // --------------------------------------------------
4 |
5 |
6 | // Bar animations
7 | // -------------------------
8 |
9 | // WebKit
10 | @-webkit-keyframes progress-bar-stripes {
11 | from { background-position: 40px 0; }
12 | to { background-position: 0 0; }
13 | }
14 |
15 | // Spec and IE10+
16 | @keyframes progress-bar-stripes {
17 | from { background-position: 40px 0; }
18 | to { background-position: 0 0; }
19 | }
20 |
21 |
22 |
23 | // Bar itself
24 | // -------------------------
25 |
26 | // Outer container
27 | .progress {
28 | overflow: hidden;
29 | height: @line-height-computed;
30 | margin-bottom: @line-height-computed;
31 | background-color: @progress-bg;
32 | border-radius: @border-radius-base;
33 | .box-shadow(inset 0 1px 2px rgba(0,0,0,.1));
34 | }
35 |
36 | // Bar of progress
37 | .progress-bar {
38 | float: left;
39 | width: 0%;
40 | height: 100%;
41 | font-size: @font-size-small;
42 | line-height: @line-height-computed;
43 | color: @progress-bar-color;
44 | text-align: center;
45 | background-color: @progress-bar-bg;
46 | .box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
47 | .transition(width .6s ease);
48 | }
49 |
50 | // Striped bars
51 | //
52 | // `.progress-striped .progress-bar` is deprecated as of v3.2.0 in favor of the
53 | // `.progress-bar-striped` class, which you just add to an existing
54 | // `.progress-bar`.
55 | .progress-striped .progress-bar,
56 | .progress-bar-striped {
57 | #gradient > .striped();
58 | background-size: 40px 40px;
59 | }
60 |
61 | // Call animation for the active one
62 | //
63 | // `.progress.active .progress-bar` is deprecated as of v3.2.0 in favor of the
64 | // `.progress-bar.active` approach.
65 | .progress.active .progress-bar,
66 | .progress-bar.active {
67 | .animation(progress-bar-stripes 2s linear infinite);
68 | }
69 |
70 | // Account for lower percentages
71 | .progress-bar {
72 | &[aria-valuenow="1"],
73 | &[aria-valuenow="2"] {
74 | min-width: 30px;
75 | }
76 |
77 | &[aria-valuenow="0"] {
78 | color: @gray-light;
79 | min-width: 30px;
80 | background-color: transparent;
81 | background-image: none;
82 | box-shadow: none;
83 | }
84 | }
85 |
86 |
87 |
88 | // Variations
89 | // -------------------------
90 |
91 | .progress-bar-success {
92 | .progress-bar-variant(@progress-bar-success-bg);
93 | }
94 |
95 | .progress-bar-info {
96 | .progress-bar-variant(@progress-bar-info-bg);
97 | }
98 |
99 | .progress-bar-warning {
100 | .progress-bar-variant(@progress-bar-warning-bg);
101 | }
102 |
103 | .progress-bar-danger {
104 | .progress-bar-variant(@progress-bar-danger-bg);
105 | }
106 |
--------------------------------------------------------------------------------
/lib/jquery/src/core/ready.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../core/init",
4 | "../deferred"
5 | ], function( jQuery ) {
6 |
7 | // The deferred used on DOM ready
8 | var readyList;
9 |
10 | jQuery.fn.ready = function( fn ) {
11 | // Add the callback
12 | jQuery.ready.promise().done( fn );
13 |
14 | return this;
15 | };
16 |
17 | jQuery.extend({
18 | // Is the DOM ready to be used? Set to true once it occurs.
19 | isReady: false,
20 |
21 | // A counter to track how many items to wait for before
22 | // the ready event fires. See #6781
23 | readyWait: 1,
24 |
25 | // Hold (or release) the ready event
26 | holdReady: function( hold ) {
27 | if ( hold ) {
28 | jQuery.readyWait++;
29 | } else {
30 | jQuery.ready( true );
31 | }
32 | },
33 |
34 | // Handle when the DOM is ready
35 | ready: function( wait ) {
36 |
37 | // Abort if there are pending holds or we're already ready
38 | if ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {
39 | return;
40 | }
41 |
42 | // Remember that the DOM is ready
43 | jQuery.isReady = true;
44 |
45 | // If a normal DOM Ready event fired, decrement, and wait if need be
46 | if ( wait !== true && --jQuery.readyWait > 0 ) {
47 | return;
48 | }
49 |
50 | // If there are functions bound, to execute
51 | readyList.resolveWith( document, [ jQuery ] );
52 |
53 | // Trigger any bound ready events
54 | if ( jQuery.fn.triggerHandler ) {
55 | jQuery( document ).triggerHandler( "ready" );
56 | jQuery( document ).off( "ready" );
57 | }
58 | }
59 | });
60 |
61 | /**
62 | * The ready event handler and self cleanup method
63 | */
64 | function completed() {
65 | document.removeEventListener( "DOMContentLoaded", completed, false );
66 | window.removeEventListener( "load", completed, false );
67 | jQuery.ready();
68 | }
69 |
70 | jQuery.ready.promise = function( obj ) {
71 | if ( !readyList ) {
72 |
73 | readyList = jQuery.Deferred();
74 |
75 | // Catch cases where $(document).ready() is called after the browser event has already occurred.
76 | // we once tried to use readyState "interactive" here, but it caused issues like the one
77 | // discovered by ChrisS here: http://bugs.jquery.com/ticket/12282#comment:15
78 | if ( document.readyState === "complete" ) {
79 | // Handle it asynchronously to allow scripts the opportunity to delay ready
80 | setTimeout( jQuery.ready );
81 |
82 | } else {
83 |
84 | // Use the handy event callback
85 | document.addEventListener( "DOMContentLoaded", completed, false );
86 |
87 | // A fallback to window.onload, that will always work
88 | window.addEventListener( "load", completed, false );
89 | }
90 | }
91 | return readyList.promise( obj );
92 | };
93 |
94 | // Kick off the DOM ready check even if the user does not
95 | jQuery.ready.promise();
96 |
97 | });
98 |
--------------------------------------------------------------------------------
/lib/jquery/src/ajax/jsonp.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "./var/nonce",
4 | "./var/rquery",
5 | "../ajax"
6 | ], function( jQuery, nonce, rquery ) {
7 |
8 | var oldCallbacks = [],
9 | rjsonp = /(=)\?(?=&|$)|\?\?/;
10 |
11 | // Default jsonp settings
12 | jQuery.ajaxSetup({
13 | jsonp: "callback",
14 | jsonpCallback: function() {
15 | var callback = oldCallbacks.pop() || ( jQuery.expando + "_" + ( nonce++ ) );
16 | this[ callback ] = true;
17 | return callback;
18 | }
19 | });
20 |
21 | // Detect, normalize options and install callbacks for jsonp requests
22 | jQuery.ajaxPrefilter( "json jsonp", function( s, originalSettings, jqXHR ) {
23 |
24 | var callbackName, overwritten, responseContainer,
25 | jsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?
26 | "url" :
27 | typeof s.data === "string" && !( s.contentType || "" ).indexOf("application/x-www-form-urlencoded") && rjsonp.test( s.data ) && "data"
28 | );
29 |
30 | // Handle iff the expected data type is "jsonp" or we have a parameter to set
31 | if ( jsonProp || s.dataTypes[ 0 ] === "jsonp" ) {
32 |
33 | // Get callback name, remembering preexisting value associated with it
34 | callbackName = s.jsonpCallback = jQuery.isFunction( s.jsonpCallback ) ?
35 | s.jsonpCallback() :
36 | s.jsonpCallback;
37 |
38 | // Insert callback into url or form data
39 | if ( jsonProp ) {
40 | s[ jsonProp ] = s[ jsonProp ].replace( rjsonp, "$1" + callbackName );
41 | } else if ( s.jsonp !== false ) {
42 | s.url += ( rquery.test( s.url ) ? "&" : "?" ) + s.jsonp + "=" + callbackName;
43 | }
44 |
45 | // Use data converter to retrieve json after script execution
46 | s.converters["script json"] = function() {
47 | if ( !responseContainer ) {
48 | jQuery.error( callbackName + " was not called" );
49 | }
50 | return responseContainer[ 0 ];
51 | };
52 |
53 | // force json dataType
54 | s.dataTypes[ 0 ] = "json";
55 |
56 | // Install callback
57 | overwritten = window[ callbackName ];
58 | window[ callbackName ] = function() {
59 | responseContainer = arguments;
60 | };
61 |
62 | // Clean-up function (fires after converters)
63 | jqXHR.always(function() {
64 | // Restore preexisting value
65 | window[ callbackName ] = overwritten;
66 |
67 | // Save back as free
68 | if ( s[ callbackName ] ) {
69 | // make sure that re-using the options doesn't screw things around
70 | s.jsonpCallback = originalSettings.jsonpCallback;
71 |
72 | // save the callback name for future use
73 | oldCallbacks.push( callbackName );
74 | }
75 |
76 | // Call if it was a function and we have a response
77 | if ( responseContainer && jQuery.isFunction( overwritten ) ) {
78 | overwritten( responseContainer[ 0 ] );
79 | }
80 |
81 | responseContainer = overwritten = undefined;
82 | });
83 |
84 | // Delegate to script
85 | return "script";
86 | }
87 | });
88 |
89 | });
90 |
--------------------------------------------------------------------------------
/lib/bootstrap/less/mixins/forms.less:
--------------------------------------------------------------------------------
1 | // Form validation states
2 | //
3 | // Used in forms.less to generate the form validation CSS for warnings, errors,
4 | // and successes.
5 |
6 | .form-control-validation(@text-color: #555; @border-color: #ccc; @background-color: #f5f5f5) {
7 | // Color the label and help text
8 | .help-block,
9 | .control-label,
10 | .radio,
11 | .checkbox,
12 | .radio-inline,
13 | .checkbox-inline {
14 | color: @text-color;
15 | }
16 | // Set the border and box shadow on specific inputs to match
17 | .form-control {
18 | border-color: @border-color;
19 | .box-shadow(inset 0 1px 1px rgba(0,0,0,.075)); // Redeclare so transitions work
20 | &:focus {
21 | border-color: darken(@border-color, 10%);
22 | @shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 6px lighten(@border-color, 20%);
23 | .box-shadow(@shadow);
24 | }
25 | }
26 | // Set validation states also for addons
27 | .input-group-addon {
28 | color: @text-color;
29 | border-color: @border-color;
30 | background-color: @background-color;
31 | }
32 | // Optional feedback icon
33 | .form-control-feedback {
34 | color: @text-color;
35 | }
36 | }
37 |
38 |
39 | // Form control focus state
40 | //
41 | // Generate a customized focus state and for any input with the specified color,
42 | // which defaults to the `@input-border-focus` variable.
43 | //
44 | // We highly encourage you to not customize the default value, but instead use
45 | // this to tweak colors on an as-needed basis. This aesthetic change is based on
46 | // WebKit's default styles, but applicable to a wider range of browsers. Its
47 | // usability and accessibility should be taken into account with any change.
48 | //
49 | // Example usage: change the default blue border and shadow to white for better
50 | // contrast against a dark gray background.
51 | .form-control-focus(@color: @input-border-focus) {
52 | @color-rgba: rgba(red(@color), green(@color), blue(@color), .6);
53 | &:focus {
54 | border-color: @color;
55 | outline: 0;
56 | .box-shadow(~"inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px @{color-rgba}");
57 | }
58 | }
59 |
60 | // Form control sizing
61 | //
62 | // Relative text size, padding, and border-radii changes for form controls. For
63 | // horizontal sizing, wrap controls in the predefined grid classes. `