angular-rails-engine 1.2.0.2 → 1.2.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/app/assets/javascripts/angular/angular-animate.js +105 -37
- data/app/assets/javascripts/angular/angular-animate.min.js +18 -17
- data/app/assets/javascripts/angular/angular-cookies.js +2 -2
- data/app/assets/javascripts/angular/angular-cookies.min.js +2 -2
- data/app/assets/javascripts/angular/angular-loader.js +93 -6
- data/app/assets/javascripts/angular/angular-loader.min.js +5 -4
- data/app/assets/javascripts/angular/angular-mocks.js +187 -202
- data/app/assets/javascripts/angular/angular-resource.js +31 -63
- data/app/assets/javascripts/angular/angular-resource.min.js +8 -8
- data/app/assets/javascripts/angular/angular-route.js +42 -31
- data/app/assets/javascripts/angular/angular-route.min.js +10 -10
- data/app/assets/javascripts/angular/angular-sanitize.js +66 -28
- data/app/assets/javascripts/angular/angular-sanitize.min.js +10 -10
- data/app/assets/javascripts/angular/angular-scenario.js +599 -348
- data/app/assets/javascripts/angular/angular-touch.js +2 -2
- data/app/assets/javascripts/angular/angular-touch.min.js +2 -2
- data/app/assets/javascripts/angular/angular.js +603 -352
- data/app/assets/javascripts/angular/angular.min.js +197 -196
- data/app/assets/stylesheets/angular-csp.css +4 -4
- data/lib/angular-rails-engine.rb +1 -1
- data/lib/angular-rails-engine/version.rb +1 -1
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e813091ed284e69523789a33e22493fd55f9d3a3
|
4
|
+
data.tar.gz: e117f4a5536f1dc2ddbfc635aecada09449dbb5e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd26d69a064ab5c2b737e2ca3822ab215ca3c93ca569db04563934d370894af92235d49cd1f481537ed6567893808e91b3980bea2cdd5fa9ce981eb5ba9042c0
|
7
|
+
data.tar.gz: 94acd59c22494b938b7bba7cbe9da6503db6650c720ad7a31d571a786412ae0ea5b3c2f7bc9521635698a008a31364221ced9061fd3b57dcac70909daf7ada7a
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
3
|
-
* (c) 2010-
|
2
|
+
* @license AngularJS v1.2.3
|
3
|
+
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
6
6
|
(function(window, angular, undefined) {'use strict';
|
@@ -165,7 +165,7 @@
|
|
165
165
|
* }
|
166
166
|
* </pre>
|
167
167
|
*
|
168
|
-
* Staggering animations work by default in ngRepeat (so long as the CSS class is
|
168
|
+
* Staggering animations work by default in ngRepeat (so long as the CSS class is defined). Outside of ngRepeat, to use staggering animations
|
169
169
|
* on your own, they can be triggered by firing multiple calls to the same event on $animate. However, the restrictions surrounding this
|
170
170
|
* are that each of the elements must have the same CSS className value as well as the same parent element. A stagger operation
|
171
171
|
* will also be reset if more than 10ms has passed after the last animation has been fired.
|
@@ -228,7 +228,7 @@
|
|
228
228
|
* JavaScript-defined animations are created with a CSS-like class selector and a collection of events which are set to run
|
229
229
|
* a javascript callback function. When an animation is triggered, $animate will look for a matching animation which fits
|
230
230
|
* the element's CSS class attribute value and then run the matching animation event function (if found).
|
231
|
-
* In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function
|
231
|
+
* In other words, if the CSS classes present on the animated element match any of the JavaScript animations then the callback function will
|
232
232
|
* be executed. It should be also noted that only simple, single class selectors are allowed (compound class selectors are not supported).
|
233
233
|
*
|
234
234
|
* Within a JavaScript animation, an object containing various event callback animation functions is expected to be returned.
|
@@ -269,9 +269,16 @@ angular.module('ngAnimate', ['ng'])
|
|
269
269
|
|
270
270
|
$rootElement.data(NG_ANIMATE_STATE, rootAnimateState);
|
271
271
|
|
272
|
-
// disable animations during bootstrap, but once we bootstrapped,
|
272
|
+
// disable animations during bootstrap, but once we bootstrapped, wait again
|
273
|
+
// for another digest until enabling animations. The reason why we digest twice
|
274
|
+
// is because all structural animations (enter, leave and move) all perform a
|
275
|
+
// post digest operation before animating. If we only wait for a single digest
|
276
|
+
// to pass then the structural animation would render its animation on page load.
|
277
|
+
// (which is what we're trying to avoid when the application first boots up.)
|
273
278
|
$rootScope.$$postDigest(function() {
|
274
|
-
|
279
|
+
$rootScope.$$postDigest(function() {
|
280
|
+
rootAnimateState.running = false;
|
281
|
+
});
|
275
282
|
});
|
276
283
|
|
277
284
|
function lookup(name) {
|
@@ -516,6 +523,7 @@ angular.module('ngAnimate', ['ng'])
|
|
516
523
|
* @function
|
517
524
|
*
|
518
525
|
* @param {boolean=} value If provided then set the animation on or off.
|
526
|
+
* @param {jQuery/jqLite element=} element If provided then the element will be used to represent the enable/disable operation
|
519
527
|
* @return {boolean} Current animation state.
|
520
528
|
*
|
521
529
|
* @description
|
@@ -554,7 +562,8 @@ angular.module('ngAnimate', ['ng'])
|
|
554
562
|
and the onComplete callback will be fired once the animation is fully complete.
|
555
563
|
*/
|
556
564
|
function performAnimation(animationEvent, className, element, parentElement, afterElement, domOperation, doneCallback) {
|
557
|
-
var
|
565
|
+
var currentClassName = element.attr('class') || '';
|
566
|
+
var classes = currentClassName + ' ' + className;
|
558
567
|
var animationLookup = (' ' + classes).replace(/\s+/g,'.');
|
559
568
|
if (!parentElement) {
|
560
569
|
parentElement = afterElement ? afterElement.parent() : element.parent();
|
@@ -569,7 +578,7 @@ angular.module('ngAnimate', ['ng'])
|
|
569
578
|
//the animation if any matching animations are not found at all.
|
570
579
|
//NOTE: IE8 + IE9 should close properly (run closeAnimation()) in case a NO animation is not found.
|
571
580
|
if (animationsDisabled(element, parentElement) || matches.length === 0) {
|
572
|
-
|
581
|
+
fireDOMOperation();
|
573
582
|
closeAnimation();
|
574
583
|
return;
|
575
584
|
}
|
@@ -602,27 +611,48 @@ angular.module('ngAnimate', ['ng'])
|
|
602
611
|
//this would mean that an animation was not allowed so let the existing
|
603
612
|
//animation do it's thing and close this one early
|
604
613
|
if(animations.length === 0) {
|
605
|
-
|
614
|
+
fireDOMOperation();
|
606
615
|
fireDoneCallbackAsync();
|
607
616
|
return;
|
608
617
|
}
|
609
618
|
|
619
|
+
//this value will be searched for class-based CSS className lookup. Therefore,
|
620
|
+
//we prefix and suffix the current className value with spaces to avoid substring
|
621
|
+
//lookups of className tokens
|
622
|
+
var futureClassName = ' ' + currentClassName + ' ';
|
610
623
|
if(ngAnimateState.running) {
|
611
624
|
//if an animation is currently running on the element then lets take the steps
|
612
625
|
//to cancel that animation and fire any required callbacks
|
613
626
|
$timeout.cancel(ngAnimateState.closeAnimationTimeout);
|
614
627
|
cleanup(element);
|
615
628
|
cancelAnimations(ngAnimateState.animations);
|
616
|
-
|
629
|
+
|
630
|
+
//if the class is removed during the reflow then it will revert the styles temporarily
|
631
|
+
//back to the base class CSS styling causing a jump-like effect to occur. This check
|
632
|
+
//here ensures that the domOperation is only performed after the reflow has commenced
|
633
|
+
if(ngAnimateState.beforeComplete) {
|
634
|
+
(ngAnimateState.done || noop)(true);
|
635
|
+
} else if(isClassBased && !ngAnimateState.structural) {
|
636
|
+
//class-based animations will compare element className values after cancelling the
|
637
|
+
//previous animation to see if the element properties already contain the final CSS
|
638
|
+
//class and if so then the animation will be skipped. Since the domOperation will
|
639
|
+
//be performed only after the reflow is complete then our element's className value
|
640
|
+
//will be invalid. Therefore the same string manipulation that would occur within the
|
641
|
+
//DOM operation will be performed below so that the class comparison is valid...
|
642
|
+
futureClassName = ngAnimateState.event == 'removeClass' ?
|
643
|
+
futureClassName.replace(ngAnimateState.className, '') :
|
644
|
+
futureClassName + ngAnimateState.className + ' ';
|
645
|
+
}
|
617
646
|
}
|
618
647
|
|
619
648
|
//There is no point in perform a class-based animation if the element already contains
|
620
649
|
//(on addClass) or doesn't contain (on removeClass) the className being animated.
|
621
650
|
//The reason why this is being called after the previous animations are cancelled
|
622
651
|
//is so that the CSS classes present on the element can be properly examined.
|
623
|
-
|
624
|
-
|
625
|
-
|
652
|
+
var classNameToken = ' ' + className + ' ';
|
653
|
+
if((animationEvent == 'addClass' && futureClassName.indexOf(classNameToken) >= 0) ||
|
654
|
+
(animationEvent == 'removeClass' && futureClassName.indexOf(classNameToken) == -1)) {
|
655
|
+
fireDOMOperation();
|
626
656
|
fireDoneCallbackAsync();
|
627
657
|
return;
|
628
658
|
}
|
@@ -633,6 +663,8 @@ angular.module('ngAnimate', ['ng'])
|
|
633
663
|
|
634
664
|
element.data(NG_ANIMATE_STATE, {
|
635
665
|
running:true,
|
666
|
+
event:animationEvent,
|
667
|
+
className:className,
|
636
668
|
structural:!isClassBased,
|
637
669
|
animations:animations,
|
638
670
|
done:onBeforeAnimationsComplete
|
@@ -643,7 +675,7 @@ angular.module('ngAnimate', ['ng'])
|
|
643
675
|
invokeRegisteredAnimationFns(animations, 'before', onBeforeAnimationsComplete);
|
644
676
|
|
645
677
|
function onBeforeAnimationsComplete(cancelled) {
|
646
|
-
|
678
|
+
fireDOMOperation();
|
647
679
|
if(cancelled === true) {
|
648
680
|
closeAnimation();
|
649
681
|
return;
|
@@ -701,6 +733,15 @@ angular.module('ngAnimate', ['ng'])
|
|
701
733
|
doneCallback && $timeout(doneCallback, 0, false);
|
702
734
|
}
|
703
735
|
|
736
|
+
//it is less complicated to use a flag than managing and cancelling
|
737
|
+
//timeouts containing multiple callbacks.
|
738
|
+
function fireDOMOperation() {
|
739
|
+
if(!fireDOMOperation.hasBeenRun) {
|
740
|
+
fireDOMOperation.hasBeenRun = true;
|
741
|
+
domOperation();
|
742
|
+
}
|
743
|
+
}
|
744
|
+
|
704
745
|
function closeAnimation() {
|
705
746
|
if(!closeAnimation.hasBeenRun) {
|
706
747
|
closeAnimation.hasBeenRun = true;
|
@@ -743,10 +784,10 @@ angular.module('ngAnimate', ['ng'])
|
|
743
784
|
function cancelAnimations(animations) {
|
744
785
|
var isCancelledFlag = true;
|
745
786
|
forEach(animations, function(animation) {
|
746
|
-
if(!animations
|
787
|
+
if(!animations.beforeComplete) {
|
747
788
|
(animation.beforeEnd || noop)(isCancelledFlag);
|
748
789
|
}
|
749
|
-
if(!animations
|
790
|
+
if(!animations.afterComplete) {
|
750
791
|
(animation.afterEnd || noop)(isCancelledFlag);
|
751
792
|
}
|
752
793
|
});
|
@@ -848,13 +889,6 @@ angular.module('ngAnimate', ['ng'])
|
|
848
889
|
}, 10, false);
|
849
890
|
}
|
850
891
|
|
851
|
-
function applyStyle(node, style) {
|
852
|
-
var oldStyle = node.getAttribute('style') || '';
|
853
|
-
var newStyle = (oldStyle.length > 0 ? '; ' : '') + style;
|
854
|
-
node.setAttribute('style', newStyle);
|
855
|
-
return oldStyle;
|
856
|
-
}
|
857
|
-
|
858
892
|
function getElementAnimationDetails(element, cacheKey) {
|
859
893
|
var data = cacheKey ? lookupCache[cacheKey] : null;
|
860
894
|
if(!data) {
|
@@ -973,7 +1007,9 @@ angular.module('ngAnimate', ['ng'])
|
|
973
1007
|
if(timings.transitionDuration > 0) {
|
974
1008
|
element.addClass(NG_ANIMATE_FALLBACK_CLASS_NAME);
|
975
1009
|
activeClassName += NG_ANIMATE_FALLBACK_ACTIVE_CLASS_NAME + ' ';
|
976
|
-
|
1010
|
+
blockTransitions(element);
|
1011
|
+
} else {
|
1012
|
+
blockKeyframeAnimations(element);
|
977
1013
|
}
|
978
1014
|
|
979
1015
|
forEach(className.split(' '), function(klass, i) {
|
@@ -993,6 +1029,28 @@ angular.module('ngAnimate', ['ng'])
|
|
993
1029
|
return true;
|
994
1030
|
}
|
995
1031
|
|
1032
|
+
function blockTransitions(element) {
|
1033
|
+
element[0].style[TRANSITION_PROP + PROPERTY_KEY] = 'none';
|
1034
|
+
}
|
1035
|
+
|
1036
|
+
function blockKeyframeAnimations(element) {
|
1037
|
+
element[0].style[ANIMATION_PROP] = 'none 0s';
|
1038
|
+
}
|
1039
|
+
|
1040
|
+
function unblockTransitions(element) {
|
1041
|
+
var node = element[0], prop = TRANSITION_PROP + PROPERTY_KEY;
|
1042
|
+
if(node.style[prop] && node.style[prop].length > 0) {
|
1043
|
+
node.style[prop] = '';
|
1044
|
+
}
|
1045
|
+
}
|
1046
|
+
|
1047
|
+
function unblockKeyframeAnimations(element) {
|
1048
|
+
var node = element[0], prop = ANIMATION_PROP;
|
1049
|
+
if(node.style[prop] && node.style[prop].length > 0) {
|
1050
|
+
element[0].style[prop] = '';
|
1051
|
+
}
|
1052
|
+
}
|
1053
|
+
|
996
1054
|
function animateRun(element, className, activeAnimationComplete) {
|
997
1055
|
var data = element.data(NG_ANIMATE_CSS_DATA_KEY);
|
998
1056
|
if(!element.hasClass(className) || !data) {
|
@@ -1008,19 +1066,18 @@ angular.module('ngAnimate', ['ng'])
|
|
1008
1066
|
var maxDelayTime = Math.max(timings.transitionDelay, timings.animationDelay) * 1000;
|
1009
1067
|
var startTime = Date.now();
|
1010
1068
|
var css3AnimationEvents = ANIMATIONEND_EVENT + ' ' + TRANSITIONEND_EVENT;
|
1011
|
-
var formerStyle;
|
1012
1069
|
var ii = data.ii;
|
1013
1070
|
|
1014
|
-
var applyFallbackStyle, style = '';
|
1071
|
+
var applyFallbackStyle, style = '', appliedStyles = [];
|
1015
1072
|
if(timings.transitionDuration > 0) {
|
1016
|
-
node.style[TRANSITION_PROP + PROPERTY_KEY] = '';
|
1017
|
-
|
1018
1073
|
var propertyStyle = timings.transitionPropertyStyle;
|
1019
1074
|
if(propertyStyle.indexOf('all') == -1) {
|
1020
1075
|
applyFallbackStyle = true;
|
1021
|
-
var fallbackProperty = $sniffer.msie ? '-ms-zoom' : '
|
1076
|
+
var fallbackProperty = $sniffer.msie ? '-ms-zoom' : 'border-spacing';
|
1022
1077
|
style += CSS_PREFIX + 'transition-property: ' + propertyStyle + ', ' + fallbackProperty + '; ';
|
1023
1078
|
style += CSS_PREFIX + 'transition-duration: ' + timings.transitionDurationStyle + ', ' + timings.transitionDuration + 's; ';
|
1079
|
+
appliedStyles.push(CSS_PREFIX + 'transition-property');
|
1080
|
+
appliedStyles.push(CSS_PREFIX + 'transition-duration');
|
1024
1081
|
}
|
1025
1082
|
}
|
1026
1083
|
|
@@ -1033,16 +1090,19 @@ angular.module('ngAnimate', ['ng'])
|
|
1033
1090
|
|
1034
1091
|
style += CSS_PREFIX + 'transition-delay: ' +
|
1035
1092
|
prepareStaggerDelay(delayStyle, stagger.transitionDelay, ii) + '; ';
|
1093
|
+
appliedStyles.push(CSS_PREFIX + 'transition-delay');
|
1036
1094
|
}
|
1037
1095
|
|
1038
1096
|
if(stagger.animationDelay > 0 && stagger.animationDuration === 0) {
|
1039
1097
|
style += CSS_PREFIX + 'animation-delay: ' +
|
1040
1098
|
prepareStaggerDelay(timings.animationDelayStyle, stagger.animationDelay, ii) + '; ';
|
1099
|
+
appliedStyles.push(CSS_PREFIX + 'animation-delay');
|
1041
1100
|
}
|
1042
1101
|
}
|
1043
1102
|
|
1044
|
-
if(
|
1045
|
-
|
1103
|
+
if(appliedStyles.length > 0) {
|
1104
|
+
var oldStyle = node.getAttribute('style') || '';
|
1105
|
+
node.setAttribute('style', oldStyle + ' ' + style);
|
1046
1106
|
}
|
1047
1107
|
|
1048
1108
|
element.on(css3AnimationEvents, onAnimationProgress);
|
@@ -1055,10 +1115,8 @@ angular.module('ngAnimate', ['ng'])
|
|
1055
1115
|
element.off(css3AnimationEvents, onAnimationProgress);
|
1056
1116
|
element.removeClass(activeClassName);
|
1057
1117
|
animateClose(element, className);
|
1058
|
-
|
1059
|
-
|
1060
|
-
node.setAttribute('style', formerStyle) :
|
1061
|
-
node.removeAttribute('style');
|
1118
|
+
for (var i in appliedStyles) {
|
1119
|
+
node.style.removeProperty(appliedStyles[i]);
|
1062
1120
|
}
|
1063
1121
|
};
|
1064
1122
|
|
@@ -1122,6 +1180,8 @@ angular.module('ngAnimate', ['ng'])
|
|
1122
1180
|
//happen in the first place
|
1123
1181
|
var cancel = preReflowCancellation;
|
1124
1182
|
afterReflow(function() {
|
1183
|
+
unblockTransitions(element);
|
1184
|
+
unblockKeyframeAnimations(element);
|
1125
1185
|
//once the reflow is complete then we point cancel to
|
1126
1186
|
//the new cancellation function which will remove all of the
|
1127
1187
|
//animation properties from the active animation
|
@@ -1185,7 +1245,11 @@ angular.module('ngAnimate', ['ng'])
|
|
1185
1245
|
beforeAddClass : function(element, className, animationCompleted) {
|
1186
1246
|
var cancellationMethod = animateBefore(element, suffixClasses(className, '-add'));
|
1187
1247
|
if(cancellationMethod) {
|
1188
|
-
afterReflow(
|
1248
|
+
afterReflow(function() {
|
1249
|
+
unblockTransitions(element);
|
1250
|
+
unblockKeyframeAnimations(element);
|
1251
|
+
animationCompleted();
|
1252
|
+
});
|
1189
1253
|
return cancellationMethod;
|
1190
1254
|
}
|
1191
1255
|
animationCompleted();
|
@@ -1198,7 +1262,11 @@ angular.module('ngAnimate', ['ng'])
|
|
1198
1262
|
beforeRemoveClass : function(element, className, animationCompleted) {
|
1199
1263
|
var cancellationMethod = animateBefore(element, suffixClasses(className, '-remove'));
|
1200
1264
|
if(cancellationMethod) {
|
1201
|
-
afterReflow(
|
1265
|
+
afterReflow(function() {
|
1266
|
+
unblockTransitions(element);
|
1267
|
+
unblockKeyframeAnimations(element);
|
1268
|
+
animationCompleted();
|
1269
|
+
});
|
1202
1270
|
return cancellationMethod;
|
1203
1271
|
}
|
1204
1272
|
animationCompleted();
|
@@ -1,21 +1,22 @@
|
|
1
1
|
/*
|
2
|
-
AngularJS v1.2.
|
3
|
-
(c) 2010-
|
2
|
+
AngularJS v1.2.3
|
3
|
+
(c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
License: MIT
|
5
5
|
*/
|
6
|
-
(function(
|
7
|
-
b
|
8
|
-
|
9
|
-
|
10
|
-
!1):(a.removeClass(
|
11
|
-
"ng-leave",a,null,null,function(){
|
12
|
-
|
13
|
-
Math.max(
|
14
|
-
function
|
15
|
-
ii:
|
16
|
-
q+"
|
17
|
-
|
18
|
-
"";
|
19
|
-
|
20
|
-
|
6
|
+
(function(C,k,F){'use strict';k.module("ngAnimate",["ng"]).config(["$provide","$animateProvider",function(M,G){var p=k.noop,r=k.forEach,N=G.$$selectors,T=1,h="$$ngAnimateState",H="ng-animate",l={running:!0};M.decorator("$animate",["$delegate","$injector","$sniffer","$rootElement","$timeout","$rootScope","$document",function(v,C,I,g,s,q,F){function O(a){if(a){var d=[],c={};a=a.substr(1).split(".");(I.transitions||I.animations)&&a.push("");for(var e=0;e<a.length;e++){var b=a[e],h=N[b];h&&!c[b]&&(d.push(C.get(h)),
|
7
|
+
c[b]=!0)}return d}}function m(a,d,c,e,b,l,q){function w(a){t();if(!0===a)u();else{if(a=c.data(h))a.done=u,c.data(h,a);m(x,"after",u)}}function m(e,b,h){var k=b+"End";r(e,function(l,f){var B=function(){a:{var B=b+"Complete",a=e[f];a[B]=!0;(a[k]||p)();for(a=0;a<e.length;a++)if(!e[a][B])break a;h()}};"before"!=b||"enter"!=a&&"move"!=a?l[b]?l[k]=y?l[b](c,d,B):l[b](c,B):B():B()})}function g(){q&&s(q,0,!1)}function t(){t.hasBeenRun||(t.hasBeenRun=!0,l())}function u(){if(!u.hasBeenRun){u.hasBeenRun=!0;var a=
|
8
|
+
c.data(h);a&&(y?z(c):(a.closeAnimationTimeout=s(function(){z(c)},0,!1),c.data(h,a)));g()}}var k=c.attr("class")||"",v=(" "+(k+" "+d)).replace(/\s+/g,".");e||(e=b?b.parent():c.parent());var v=O(v),y="addClass"==a||"removeClass"==a;b=c.data(h)||{};if(J(c,e)||0===v.length)t(),u();else{var x=[];b.running&&y&&b.structural||r(v,function(b){if(!b.allowCancel||b.allowCancel(c,a,d)){var e=b[a];"leave"==a?(b=e,e=null):b=b["before"+a.charAt(0).toUpperCase()+a.substr(1)];x.push({before:b,after:e})}});0===x.length?
|
9
|
+
(t(),g()):(e=" "+k+" ",b.running&&(s.cancel(b.closeAnimationTimeout),z(c),L(b.animations),b.beforeComplete?(b.done||p)(!0):y&&!b.structural&&(e="removeClass"==b.event?e.replace(b.className,""):e+b.className+" ")),k=" "+d+" ","addClass"==a&&0<=e.indexOf(k)||"removeClass"==a&&-1==e.indexOf(k)?(t(),g()):(c.addClass(H),c.data(h,{running:!0,event:a,className:d,structural:!y,animations:x,done:w}),m(x,"before",w)))}}function E(a){a=a[0];a.nodeType==T&&r(a.querySelectorAll("."+H),function(a){a=k.element(a);
|
10
|
+
var c=a.data(h);c&&(L(c.animations),z(a))})}function L(a){r(a,function(d){a.beforeComplete||(d.beforeEnd||p)(!0);a.afterComplete||(d.afterEnd||p)(!0)})}function z(a){a[0]==g[0]?l.disabled||(l.running=!1,l.structural=!1):(a.removeClass(H),a.removeData(h))}function J(a,d){if(l.disabled)return!0;if(a[0]==g[0])return l.disabled||l.running;do{if(0===d.length)break;var c=d[0]==g[0],e=c?l:d.data(h),e=e&&(!!e.disabled||!!e.running);if(c||e)return e;if(c)break}while(d=d.parent());return!0}g.data(h,l);q.$$postDigest(function(){q.$$postDigest(function(){l.running=
|
11
|
+
!1})});return{enter:function(a,d,c,e){this.enabled(!1,a);v.enter(a,d,c);q.$$postDigest(function(){m("enter","ng-enter",a,d,c,p,e)})},leave:function(a,d){E(a);this.enabled(!1,a);q.$$postDigest(function(){m("leave","ng-leave",a,null,null,function(){v.leave(a)},d)})},move:function(a,d,c,e){E(a);this.enabled(!1,a);v.move(a,d,c);q.$$postDigest(function(){m("move","ng-move",a,d,c,p,e)})},addClass:function(a,d,c){m("addClass",d,a,null,null,function(){v.addClass(a,d)},c)},removeClass:function(a,d,c){m("removeClass",
|
12
|
+
d,a,null,null,function(){v.removeClass(a,d)},c)},enabled:function(a,d){switch(arguments.length){case 2:if(a)z(d);else{var c=d.data(h)||{};c.disabled=!0;d.data(h,c)}break;case 1:l.disabled=!a;break;default:a=!l.disabled}return!!a}}}]);G.register("",["$window","$sniffer","$timeout",function(l,h,I){function g(f){R.push(f);I.cancel(S);S=I(function(){r(R,function(f){f()});R=[];S=null;D={}},10,!1)}function s(f,a){var K=a?D[a]:null;if(!K){var b=0,c=0,d=0,e=0,h,k,g,m;r(f,function(f){if(f.nodeType==T){f=l.getComputedStyle(f)||
|
13
|
+
{};g=f[A+G];b=Math.max(q(g),b);m=f[A+t];h=f[A+u];c=Math.max(q(h),c);k=f[w+u];e=Math.max(q(k),e);var a=q(f[w+G]);0<a&&(a*=parseInt(f[w+M],10)||1);d=Math.max(a,d)}});K={total:0,transitionPropertyStyle:m,transitionDurationStyle:g,transitionDelayStyle:h,transitionDelay:c,transitionDuration:b,animationDelayStyle:k,animationDelay:e,animationDuration:d};a&&(D[a]=K)}return K}function q(f){var a=0;f=k.isString(f)?f.split(/\s*,\s*/):[];r(f,function(f){a=Math.max(parseFloat(f)||0,a)});return a}function H(f){var a=
|
14
|
+
f.parent(),b=a.data(V);b||(a.data(V,++U),b=U);return b+"-"+f[0].className}function O(f,a){var b=H(f),c=b+" "+a,d={},e=D[c]?++D[c].total:0;if(0<e){var h=a+"-stagger",d=b+" "+h;(b=!D[d])&&f.addClass(h);d=s(f,d);b&&f.removeClass(h)}f.addClass(a);c=s(f,c);h=Math.max(c.transitionDuration,c.animationDuration);if(0===h)return f.removeClass(a),!1;var k="";0<c.transitionDuration?(f.addClass(x),k+=N+" ",f[0].style[A+t]="none"):f[0].style[w]="none 0s";r(a.split(" "),function(a,f){k+=(0<f?" ":"")+a+"-active"});
|
15
|
+
f.data(y,{className:a,activeClassName:k,maxDuration:h,classes:a+" "+k,timings:c,stagger:d,ii:e});return!0}function m(a){a=a[0];var b=A+t;a.style[b]&&0<a.style[b].length&&(a.style[b]="")}function E(a){var b=a[0],c=w;b.style[c]&&0<b.style[c].length&&(a[0].style[c]="")}function L(a,d,e){function k(a){a.stopPropagation();a=a.originalEvent||a;var f=a.$manualTimeStamp||a.timeStamp||Date.now();Math.max(f-w,0)>=v&&a.elapsedTime>=q&&e()}var n=a.data(y);if(a.hasClass(d)&&n){var l=a[0],g=n.timings,m=n.stagger,
|
16
|
+
q=n.maxDuration,r=n.activeClassName,v=1E3*Math.max(g.transitionDelay,g.animationDelay),w=Date.now(),t=Q+" "+P,u=n.ii,x,n="",p=[];if(0<g.transitionDuration){var s=g.transitionPropertyStyle;-1==s.indexOf("all")&&(x=!0,n+=b+"transition-property: "+s+", "+(h.msie?"-ms-zoom":"border-spacing")+"; ",n+=b+"transition-duration: "+g.transitionDurationStyle+", "+g.transitionDuration+"s; ",p.push(b+"transition-property"),p.push(b+"transition-duration"))}0<u&&(0<m.transitionDelay&&0===m.transitionDuration&&(s=
|
17
|
+
g.transitionDelayStyle,x&&(s+=", "+g.transitionDelay+"s"),n+=b+"transition-delay: "+z(s,m.transitionDelay,u)+"; ",p.push(b+"transition-delay")),0<m.animationDelay&&0===m.animationDuration&&(n+=b+"animation-delay: "+z(g.animationDelayStyle,m.animationDelay,u)+"; ",p.push(b+"animation-delay")));0<p.length&&(g=l.getAttribute("style")||"",l.setAttribute("style",g+" "+n));a.on(t,k);a.addClass(r);return function(b){a.off(t,k);a.removeClass(r);c(a,d);for(var e in p)l.style.removeProperty(p[e])}}e()}function z(a,
|
18
|
+
b,c){var d="";r(a.split(","),function(a,f){d+=(0<f?",":"")+(c*b+parseInt(a,10))+"s"});return d}function J(a,b){if(O(a,b))return function(d){d&&c(a,b)}}function a(a,b,d){if(a.data(y))return L(a,b,d);c(a,b);d()}function d(f,b,c){var d=J(f,b);if(d){var e=d;g(function(){m(f);E(f);e=a(f,b,c)});return function(a){(e||p)(a)}}c()}function c(a,b){a.removeClass(b);a.removeClass(x);a.removeData(y)}function e(a,b){var c="";a=k.isArray(a)?a:a.split(/\s+/);r(a,function(a,f){a&&0<a.length&&(c+=(0<f?" ":"")+a+b)});
|
19
|
+
return c}var b="",A,P,w,Q;C.ontransitionend===F&&C.onwebkittransitionend!==F?(b="-webkit-",A="WebkitTransition",P="webkitTransitionEnd transitionend"):(A="transition",P="transitionend");C.onanimationend===F&&C.onwebkitanimationend!==F?(b="-webkit-",w="WebkitAnimation",Q="webkitAnimationEnd animationend"):(w="animation",Q="animationend");var G="Duration",t="Property",u="Delay",M="IterationCount",V="$$ngAnimateKey",y="$$ngAnimateCSS3Data",x="ng-animate-start",N="ng-animate-active",D={},U=0,R=[],S;return{allowCancel:function(a,
|
20
|
+
b,c){var d=(a.data(y)||{}).classes;if(!d||0<=["enter","leave","move"].indexOf(b))return!0;var h=a.parent(),g=k.element(a[0].cloneNode());g.attr("style","position:absolute; top:-9999px; left:-9999px");g.removeAttr("id");g.html("");r(d.split(" "),function(a){g.removeClass(a)});g.addClass(e(c,"addClass"==b?"-add":"-remove"));h.append(g);a=s(g);g.remove();return 0<Math.max(a.transitionDuration,a.animationDuration)},enter:function(a,b){return d(a,"ng-enter",b)},leave:function(a,b){return d(a,"ng-leave",
|
21
|
+
b)},move:function(a,b){return d(a,"ng-move",b)},beforeAddClass:function(a,b,c){if(b=J(a,e(b,"-add")))return g(function(){m(a);E(a);c()}),b;c()},addClass:function(b,c,d){return a(b,e(c,"-add"),d)},beforeRemoveClass:function(a,b,c){if(b=J(a,e(b,"-remove")))return g(function(){m(a);E(a);c()}),b;c()},removeClass:function(b,c,d){return a(b,e(c,"-remove"),d)}}}])}])})(window,window.angular);
|
21
22
|
//# sourceMappingURL=angular-animate.min.js.map
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/*
|
2
|
-
AngularJS v1.2.
|
3
|
-
(c) 2010-
|
2
|
+
AngularJS v1.2.3
|
3
|
+
(c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
License: MIT
|
5
5
|
*/
|
6
6
|
(function(p,f,n){'use strict';f.module("ngCookies",["ng"]).factory("$cookies",["$rootScope","$browser",function(d,b){var c={},g={},h,k=!1,l=f.copy,m=f.isUndefined;b.addPollFn(function(){var a=b.cookies();h!=a&&(h=a,l(a,g),l(a,c),k&&d.$apply())})();k=!0;d.$watch(function(){var a,e,d;for(a in g)m(c[a])&&b.cookies(a,n);for(a in c)(e=c[a],f.isString(e))?e!==g[a]&&(b.cookies(a,e),d=!0):f.isDefined(g[a])?c[a]=g[a]:delete c[a];if(d)for(a in e=b.cookies(),c)c[a]!==e[a]&&(m(e[a])?delete c[a]:c[a]=e[a])});
|
@@ -1,10 +1,84 @@
|
|
1
1
|
/**
|
2
|
-
* @license AngularJS v1.2.
|
3
|
-
* (c) 2010-
|
2
|
+
* @license AngularJS v1.2.3
|
3
|
+
* (c) 2010-2014 Google, Inc. http://angularjs.org
|
4
4
|
* License: MIT
|
5
5
|
*/
|
6
6
|
|
7
|
-
(
|
7
|
+
(function() {'use strict';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description
|
11
|
+
*
|
12
|
+
* This object provides a utility for producing rich Error messages within
|
13
|
+
* Angular. It can be called as follows:
|
14
|
+
*
|
15
|
+
* var exampleMinErr = minErr('example');
|
16
|
+
* throw exampleMinErr('one', 'This {0} is {1}', foo, bar);
|
17
|
+
*
|
18
|
+
* The above creates an instance of minErr in the example namespace. The
|
19
|
+
* resulting error will have a namespaced error code of example.one. The
|
20
|
+
* resulting error will replace {0} with the value of foo, and {1} with the
|
21
|
+
* value of bar. The object is not restricted in the number of arguments it can
|
22
|
+
* take.
|
23
|
+
*
|
24
|
+
* If fewer arguments are specified than necessary for interpolation, the extra
|
25
|
+
* interpolation markers will be preserved in the final string.
|
26
|
+
*
|
27
|
+
* Since data will be parsed statically during a build step, some restrictions
|
28
|
+
* are applied with respect to how minErr instances are created and called.
|
29
|
+
* Instances should have names of the form namespaceMinErr for a minErr created
|
30
|
+
* using minErr('namespace') . Error codes, namespaces and template strings
|
31
|
+
* should all be static strings, not variables or general expressions.
|
32
|
+
*
|
33
|
+
* @param {string} module The namespace to use for the new minErr instance.
|
34
|
+
* @returns {function(string, string, ...): Error} instance
|
35
|
+
*/
|
36
|
+
|
37
|
+
function minErr(module) {
|
38
|
+
return function () {
|
39
|
+
var code = arguments[0],
|
40
|
+
prefix = '[' + (module ? module + ':' : '') + code + '] ',
|
41
|
+
template = arguments[1],
|
42
|
+
templateArgs = arguments,
|
43
|
+
stringify = function (obj) {
|
44
|
+
if (typeof obj === 'function') {
|
45
|
+
return obj.toString().replace(/ \{[\s\S]*$/, '');
|
46
|
+
} else if (typeof obj === 'undefined') {
|
47
|
+
return 'undefined';
|
48
|
+
} else if (typeof obj !== 'string') {
|
49
|
+
return JSON.stringify(obj);
|
50
|
+
}
|
51
|
+
return obj;
|
52
|
+
},
|
53
|
+
message, i;
|
54
|
+
|
55
|
+
message = prefix + template.replace(/\{\d+\}/g, function (match) {
|
56
|
+
var index = +match.slice(1, -1), arg;
|
57
|
+
|
58
|
+
if (index + 2 < templateArgs.length) {
|
59
|
+
arg = templateArgs[index + 2];
|
60
|
+
if (typeof arg === 'function') {
|
61
|
+
return arg.toString().replace(/ ?\{[\s\S]*$/, '');
|
62
|
+
} else if (typeof arg === 'undefined') {
|
63
|
+
return 'undefined';
|
64
|
+
} else if (typeof arg !== 'string') {
|
65
|
+
return toJson(arg);
|
66
|
+
}
|
67
|
+
return arg;
|
68
|
+
}
|
69
|
+
return match;
|
70
|
+
});
|
71
|
+
|
72
|
+
message = message + '\nhttp://errors.angularjs.org/1.2.3/' +
|
73
|
+
(module ? module + '/' : '') + code;
|
74
|
+
for (i = 2; i < arguments.length; i++) {
|
75
|
+
message = message + (i == 2 ? '?' : '&') + 'p' + (i-2) + '=' +
|
76
|
+
encodeURIComponent(stringify(arguments[i]));
|
77
|
+
}
|
78
|
+
|
79
|
+
return new Error(message);
|
80
|
+
};
|
81
|
+
}
|
8
82
|
|
9
83
|
/**
|
10
84
|
* @ngdoc interface
|
@@ -17,12 +91,18 @@
|
|
17
91
|
function setupModuleLoader(window) {
|
18
92
|
|
19
93
|
var $injectorMinErr = minErr('$injector');
|
94
|
+
var ngMinErr = minErr('ng');
|
20
95
|
|
21
96
|
function ensure(obj, name, factory) {
|
22
97
|
return obj[name] || (obj[name] = factory());
|
23
98
|
}
|
24
99
|
|
25
|
-
|
100
|
+
var angular = ensure(window, 'angular', Object);
|
101
|
+
|
102
|
+
// We need to expose `angular.$$minErr` to modules such as `ngResource` that reference it during bootstrap
|
103
|
+
angular.$$minErr = angular.$$minErr || minErr;
|
104
|
+
|
105
|
+
return ensure(angular, 'module', function() {
|
26
106
|
/** @type {Object.<string, angular.Module>} */
|
27
107
|
var modules = {};
|
28
108
|
|
@@ -53,7 +133,7 @@ function setupModuleLoader(window) {
|
|
53
133
|
* myModule.value('appName', 'MyCoolApp');
|
54
134
|
*
|
55
135
|
* // configure existing services inside initialization blocks.
|
56
|
-
* myModule.config(function($locationProvider) {
|
136
|
+
* myModule.config(function($locationProvider) {
|
57
137
|
* // Configure existing providers
|
58
138
|
* $locationProvider.hashPrefix('!');
|
59
139
|
* });
|
@@ -77,6 +157,12 @@ function setupModuleLoader(window) {
|
|
77
157
|
* @returns {module} new module with the {@link angular.Module} api.
|
78
158
|
*/
|
79
159
|
return function module(name, requires, configFn) {
|
160
|
+
var assertNotHasOwnProperty = function(name, context) {
|
161
|
+
if (name === 'hasOwnProperty') {
|
162
|
+
throw ngMinErr('badname', 'hasOwnProperty is not a valid {0} name', context);
|
163
|
+
}
|
164
|
+
};
|
165
|
+
|
80
166
|
assertNotHasOwnProperty(name, 'module');
|
81
167
|
if (requires && modules.hasOwnProperty(name)) {
|
82
168
|
modules[name] = null;
|
@@ -301,7 +387,8 @@ function setupModuleLoader(window) {
|
|
301
387
|
|
302
388
|
}
|
303
389
|
|
304
|
-
|
390
|
+
setupModuleLoader(window);
|
391
|
+
})(window);
|
305
392
|
|
306
393
|
/**
|
307
394
|
* Closure compiler type information
|