").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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/.bower.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bootstrap-sass",
3 | "version": "3.2.0",
4 | "homepage": "https://github.com/twbs/bootstrap-sass",
5 | "authors": [
6 | "Thomas McDonald",
7 | "Tristan Harward",
8 | "Peter Gumeson",
9 | "Gleb Mazovetskiy"
10 | ],
11 | "description": "bootstrap-sass is a Sass-powered version of Bootstrap, ready to drop right into your Sass powered applications.",
12 | "main": [
13 | "assets/stylesheets/bootstrap.scss",
14 | "assets/fonts/bootstrap/glyphicons-halflings-regular.eot",
15 | "assets/fonts/bootstrap/glyphicons-halflings-regular.svg",
16 | "assets/fonts/bootstrap/glyphicons-halflings-regular.ttf",
17 | "assets/fonts/bootstrap/glyphicons-halflings-regular.woff",
18 | "assets/javascripts/bootstrap/affix.js",
19 | "assets/javascripts/bootstrap/alert.js",
20 | "assets/javascripts/bootstrap/button.js",
21 | "assets/javascripts/bootstrap/carousel.js",
22 | "assets/javascripts/bootstrap/collapse.js",
23 | "assets/javascripts/bootstrap/dropdown.js",
24 | "assets/javascripts/bootstrap/tab.js",
25 | "assets/javascripts/bootstrap/transition.js",
26 | "assets/javascripts/bootstrap/scrollspy.js",
27 | "assets/javascripts/bootstrap/modal.js",
28 | "assets/javascripts/bootstrap/tooltip.js",
29 | "assets/javascripts/bootstrap/popover.js"
30 | ],
31 | "keywords": [
32 | "twbs",
33 | "bootstrap",
34 | "sass"
35 | ],
36 | "license": "MIT",
37 | "ignore": [
38 | "**/.*",
39 | "lib",
40 | "tasks",
41 | "templates",
42 | "test",
43 | "*.gemspec",
44 | "Rakefile",
45 | "Gemfile"
46 | ],
47 | "dependencies": {
48 | "jquery": ">= 1.9.0"
49 | },
50 | "_release": "3.2.0",
51 | "_resolution": {
52 | "type": "version",
53 | "tag": "v3.2.0",
54 | "commit": "a5f5954268779ce0faf7607b3c35191a8d0fdfe6"
55 | },
56 | "_source": "git://github.com/twbs/bootstrap-sass.git",
57 | "_target": "3.2.0",
58 | "_originalSource": "bootstrap-sass-official"
59 | }
--------------------------------------------------------------------------------
/app/bower_components/angular-animate/README.md:
--------------------------------------------------------------------------------
1 | # bower-angular-animate
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/ngAnimate).
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-animate
13 | ```
14 |
15 | Add a `
19 | ```
20 |
21 | And add `ngAnimate` as a dependency for your app:
22 |
23 | ```javascript
24 | angular.module('myApp', ['ngAnimate']);
25 | ```
26 |
27 | ## Documentation
28 |
29 | Documentation is available on the
30 | [AngularJS docs site](http://docs.angularjs.org/api/ngAnimate).
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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/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 |
--------------------------------------------------------------------------------
/.sass-cache/b00cb8717aa53b49a4d92aa825f9cc86a3cf8e6e/_alerts.scssc:
--------------------------------------------------------------------------------
1 | 3.2.19 (Media Mark)
2 | aac084a58e1cbdaf2b37adaef969b27a305deed3
3 | o:Sass::Tree::RootNode
4 | :@children[o:Sass::Tree::CommentNode
5 | :@value[I"/* Alerts */:ET:
6 | @type:silent;[ :
7 | @linei:
@options{ o:Sass::Tree::MixinDefNode:
8 | @nameI"alert-variant; T:
9 | @args[[o:Sass::Script::Variable;I"background; T:@underscored_nameI"background; T;
@0[o;;I"border; T;I"border; T;
@0[o;;I"text-color; T;I"text_color; T;
@0:@splat0;[
10 | o:Sass::Tree::PropNode;[I"background-color; T;o; ;I"background; T;I"background; T;i ;
@:
11 | @tabsi :@prop_syntax:new;[ ;i ;
@o;;[I"border-color; T;o; ;I"border; T;I"border; T;i
12 | ;
@;i ;;;[ ;i
13 | ;
@o;;[I"
14 | color; T;o; ;I"text-color; T;I"text_color; T;i;
@;i ;;;[ ;i;
@o:Sass::Tree::RuleNode:
15 | @rule[I"hr; T;i :@parsed_ruleso:"Sass::Selector::CommaSequence:
@members[o:Sass::Selector::Sequence;[o:#Sass::Selector::SimpleSequence
16 | ;[o:Sass::Selector::Element ;[I"hr; T:@namespace0;i
:@filenameI" ; T:
@subject0:
@sourceso:Set:
17 | @hash{ ;i
;!@=;i
;!@=;[o;;[I"border-top-color; T;o:Sass::Script::Funcall;I"darken; T;[o; ;I"border; T;I"border; T;i;
@o:Sass::Script::Number;i
18 | :@numerator_units[I"%; T:@denominator_units[ ;i:@originalI"5%; F;
@:@keywords{ ;0;i;
@;i ;;;[ ;i;
@;i
:@has_childrenT;
@o;;[I".alert-link; T;i ;o;;[o;;[o;
19 | ;[o:Sass::Selector::Class;[I"alert-link; T;i;!I" ; T;"0;#o;$;%{ ;i;!@];i;!@];[o;;[I"
20 | color; T;o;&;I"darken; T;[o; ;I"text-color; T;I"text_color; T;i;
@o;';i;([I"%; T;)[ ;i;*I"10%; F;
@;+{ ;0;i;
@;i ;;;[ ;i;
@;i;,T;
@;i;,T;
@:@templateI"// Alerts
21 |
22 | @mixin alert-variant($background, $border, $text-color) {
23 | background-color: $background;
24 | border-color: $border;
25 | color: $text-color;
26 |
27 | hr {
28 | border-top-color: darken($border, 5%);
29 | }
30 | .alert-link {
31 | color: darken($text-color, 10%);
32 | }
33 | }
34 | ; T;i;,T;
@
--------------------------------------------------------------------------------
/app/bower_components/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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/_print.scss:
--------------------------------------------------------------------------------
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 |
--------------------------------------------------------------------------------
/app/bower_components/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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/_pagination.scss:
--------------------------------------------------------------------------------
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 | @include border-left-radius($border-radius-base);
29 | }
30 | }
31 | &:last-child {
32 | > a,
33 | > span {
34 | @include 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 | @include pagination-size($padding-large-vertical, $padding-large-horizontal, $font-size-large, $border-radius-large);
83 | }
84 |
85 | // Small
86 | .pagination-sm {
87 | @include pagination-size($padding-small-vertical, $padding-small-horizontal, $font-size-small, $border-radius-small);
88 | }
89 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/javascripts/bootstrap/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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/mixins/_grid-framework.scss:
--------------------------------------------------------------------------------
1 | // Framework grid generation
2 | //
3 | // Used only by Bootstrap to generate the correct number of grid classes given
4 | // any value of `$grid-columns`.
5 |
6 | // [converter] This is defined recursively in LESS, but Sass supports real loops
7 | @mixin make-grid-columns($i: 1, $list: ".col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}") {
8 | @for $i from (1 + 1) through $grid-columns {
9 | $list: "#{$list}, .col-xs-#{$i}, .col-sm-#{$i}, .col-md-#{$i}, .col-lg-#{$i}";
10 | }
11 | #{$list} {
12 | position: relative;
13 | // Prevent columns from collapsing when empty
14 | min-height: 1px;
15 | // Inner gutter via padding
16 | padding-left: ($grid-gutter-width / 2);
17 | padding-right: ($grid-gutter-width / 2);
18 | }
19 | }
20 |
21 |
22 | // [converter] This is defined recursively in LESS, but Sass supports real loops
23 | @mixin float-grid-columns($class, $i: 1, $list: ".col-#{$class}-#{$i}") {
24 | @for $i from (1 + 1) through $grid-columns {
25 | $list: "#{$list}, .col-#{$class}-#{$i}";
26 | }
27 | #{$list} {
28 | float: left;
29 | }
30 | }
31 |
32 |
33 | @mixin calc-grid-column($index, $class, $type) {
34 | @if ($type == width) and ($index > 0) {
35 | .col-#{$class}-#{$index} {
36 | width: percentage(($index / $grid-columns));
37 | }
38 | }
39 | @if ($type == push) and ($index > 0) {
40 | .col-#{$class}-push-#{$index} {
41 | left: percentage(($index / $grid-columns));
42 | }
43 | }
44 | @if ($type == push) and ($index == 0) {
45 | .col-#{$class}-push-0 {
46 | left: auto;
47 | }
48 | }
49 | @if ($type == pull) and ($index > 0) {
50 | .col-#{$class}-pull-#{$index} {
51 | right: percentage(($index / $grid-columns));
52 | }
53 | }
54 | @if ($type == pull) and ($index == 0) {
55 | .col-#{$class}-pull-0 {
56 | right: auto;
57 | }
58 | }
59 | @if ($type == offset) {
60 | .col-#{$class}-offset-#{$index} {
61 | margin-left: percentage(($index / $grid-columns));
62 | }
63 | }
64 | }
65 |
66 | // [converter] This is defined recursively in LESS, but Sass supports real loops
67 | @mixin loop-grid-columns($columns, $class, $type) {
68 | @for $i from 0 through $columns {
69 | @include calc-grid-column($i, $class, $type);
70 | }
71 | }
72 |
73 |
74 | // Create grid for specific class
75 | @mixin make-grid($class) {
76 | @include float-grid-columns($class);
77 | @include loop-grid-columns($grid-columns, $class, width);
78 | @include loop-grid-columns($grid-columns, $class, pull);
79 | @include loop-grid-columns($grid-columns, $class, push);
80 | @include loop-grid-columns($grid-columns, $class, offset);
81 | }
82 |
--------------------------------------------------------------------------------
/app/bower_components/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 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/_progress-bars.scss:
--------------------------------------------------------------------------------
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 | @include 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 | @include box-shadow(inset 0 -1px 0 rgba(0,0,0,.15));
47 | @include 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 | @include 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 | @include 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 | @include progress-bar-variant($progress-bar-success-bg);
93 | }
94 |
95 | .progress-bar-info {
96 | @include progress-bar-variant($progress-bar-info-bg);
97 | }
98 |
99 | .progress-bar-warning {
100 | @include progress-bar-variant($progress-bar-warning-bg);
101 | }
102 |
103 | .progress-bar-danger {
104 | @include progress-bar-variant($progress-bar-danger-bg);
105 | }
106 |
--------------------------------------------------------------------------------
/app/bower_components/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 |
--------------------------------------------------------------------------------
/app/bower_components/jquery/src/traversing/findFilter.js:
--------------------------------------------------------------------------------
1 | define([
2 | "../core",
3 | "../var/indexOf",
4 | "./var/rneedsContext",
5 | "../selector"
6 | ], function( jQuery, indexOf, rneedsContext ) {
7 |
8 | var risSimple = /^.[^:#\[\.,]*$/;
9 |
10 | // Implement the identical functionality for filter and not
11 | function winnow( elements, qualifier, not ) {
12 | if ( jQuery.isFunction( qualifier ) ) {
13 | return jQuery.grep( elements, function( elem, i ) {
14 | /* jshint -W018 */
15 | return !!qualifier.call( elem, i, elem ) !== not;
16 | });
17 |
18 | }
19 |
20 | if ( qualifier.nodeType ) {
21 | return jQuery.grep( elements, function( elem ) {
22 | return ( elem === qualifier ) !== not;
23 | });
24 |
25 | }
26 |
27 | if ( typeof qualifier === "string" ) {
28 | if ( risSimple.test( qualifier ) ) {
29 | return jQuery.filter( qualifier, elements, not );
30 | }
31 |
32 | qualifier = jQuery.filter( qualifier, elements );
33 | }
34 |
35 | return jQuery.grep( elements, function( elem ) {
36 | return ( indexOf.call( qualifier, elem ) >= 0 ) !== not;
37 | });
38 | }
39 |
40 | jQuery.filter = function( expr, elems, not ) {
41 | var elem = elems[ 0 ];
42 |
43 | if ( not ) {
44 | expr = ":not(" + expr + ")";
45 | }
46 |
47 | return elems.length === 1 && elem.nodeType === 1 ?
48 | jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [] :
49 | jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {
50 | return elem.nodeType === 1;
51 | }));
52 | };
53 |
54 | jQuery.fn.extend({
55 | find: function( selector ) {
56 | var i,
57 | len = this.length,
58 | ret = [],
59 | self = this;
60 |
61 | if ( typeof selector !== "string" ) {
62 | return this.pushStack( jQuery( selector ).filter(function() {
63 | for ( i = 0; i < len; i++ ) {
64 | if ( jQuery.contains( self[ i ], this ) ) {
65 | return true;
66 | }
67 | }
68 | }) );
69 | }
70 |
71 | for ( i = 0; i < len; i++ ) {
72 | jQuery.find( selector, self[ i ], ret );
73 | }
74 |
75 | // Needed because $( selector, context ) becomes $( context ).find( selector )
76 | ret = this.pushStack( len > 1 ? jQuery.unique( ret ) : ret );
77 | ret.selector = this.selector ? this.selector + " " + selector : selector;
78 | return ret;
79 | },
80 | filter: function( selector ) {
81 | return this.pushStack( winnow(this, selector || [], false) );
82 | },
83 | not: function( selector ) {
84 | return this.pushStack( winnow(this, selector || [], true) );
85 | },
86 | is: function( selector ) {
87 | return !!winnow(
88 | this,
89 |
90 | // If this is a positional/relative selector, check membership in the returned set
91 | // so $("p:first").is("p:last") won't return true for a doc with two "p".
92 | typeof selector === "string" && rneedsContext.test( selector ) ?
93 | jQuery( selector ) :
94 | selector || [],
95 | false
96 | ).length;
97 | }
98 | });
99 |
100 | });
101 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/_tooltip.scss:
--------------------------------------------------------------------------------
1 | //
2 | // Tooltips
3 | // --------------------------------------------------
4 |
5 |
6 | // Base class
7 | .tooltip {
8 | position: absolute;
9 | z-index: $zindex-tooltip;
10 | display: block;
11 | visibility: visible;
12 | font-size: $font-size-small;
13 | line-height: 1.4;
14 | @include opacity(0);
15 |
16 | &.in { @include opacity($tooltip-opacity); }
17 | &.top { margin-top: -3px; padding: $tooltip-arrow-width 0; }
18 | &.right { margin-left: 3px; padding: 0 $tooltip-arrow-width; }
19 | &.bottom { margin-top: 3px; padding: $tooltip-arrow-width 0; }
20 | &.left { margin-left: -3px; padding: 0 $tooltip-arrow-width; }
21 | }
22 |
23 | // Wrapper for the tooltip content
24 | .tooltip-inner {
25 | max-width: $tooltip-max-width;
26 | padding: 3px 8px;
27 | color: $tooltip-color;
28 | text-align: center;
29 | text-decoration: none;
30 | background-color: $tooltip-bg;
31 | border-radius: $border-radius-base;
32 | }
33 |
34 | // Arrows
35 | .tooltip-arrow {
36 | position: absolute;
37 | width: 0;
38 | height: 0;
39 | border-color: transparent;
40 | border-style: solid;
41 | }
42 | .tooltip {
43 | &.top .tooltip-arrow {
44 | bottom: 0;
45 | left: 50%;
46 | margin-left: -$tooltip-arrow-width;
47 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
48 | border-top-color: $tooltip-arrow-color;
49 | }
50 | &.top-left .tooltip-arrow {
51 | bottom: 0;
52 | left: $tooltip-arrow-width;
53 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
54 | border-top-color: $tooltip-arrow-color;
55 | }
56 | &.top-right .tooltip-arrow {
57 | bottom: 0;
58 | right: $tooltip-arrow-width;
59 | border-width: $tooltip-arrow-width $tooltip-arrow-width 0;
60 | border-top-color: $tooltip-arrow-color;
61 | }
62 | &.right .tooltip-arrow {
63 | top: 50%;
64 | left: 0;
65 | margin-top: -$tooltip-arrow-width;
66 | border-width: $tooltip-arrow-width $tooltip-arrow-width $tooltip-arrow-width 0;
67 | border-right-color: $tooltip-arrow-color;
68 | }
69 | &.left .tooltip-arrow {
70 | top: 50%;
71 | right: 0;
72 | margin-top: -$tooltip-arrow-width;
73 | border-width: $tooltip-arrow-width 0 $tooltip-arrow-width $tooltip-arrow-width;
74 | border-left-color: $tooltip-arrow-color;
75 | }
76 | &.bottom .tooltip-arrow {
77 | top: 0;
78 | left: 50%;
79 | margin-left: -$tooltip-arrow-width;
80 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
81 | border-bottom-color: $tooltip-arrow-color;
82 | }
83 | &.bottom-left .tooltip-arrow {
84 | top: 0;
85 | left: $tooltip-arrow-width;
86 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
87 | border-bottom-color: $tooltip-arrow-color;
88 | }
89 | &.bottom-right .tooltip-arrow {
90 | top: 0;
91 | right: $tooltip-arrow-width;
92 | border-width: 0 $tooltip-arrow-width $tooltip-arrow-width;
93 | border-bottom-color: $tooltip-arrow-color;
94 | }
95 | }
96 |
--------------------------------------------------------------------------------
/app/bower_components/bootstrap-sass-official/assets/stylesheets/bootstrap/mixins/_forms.scss:
--------------------------------------------------------------------------------
1 | // Form validation states
2 | //
3 | // Used in forms.less to generate the form validation CSS for warnings, errors,
4 | // and successes.
5 |
6 | @mixin 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 | @include 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 | @include 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 | @mixin 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 | @include 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. `