Merge branch 'v2.0'
This commit is contained in:
commit
4bfad92530
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* @license AngularJS v1.7.5
|
||||
* @license AngularJS v1.7.8
|
||||
* (c) 2010-2018 Google, Inc. http://angularjs.org
|
||||
* License: MIT
|
||||
*/
|
||||
|
@ -334,15 +334,6 @@ function clearGeneratedClasses(element, options) {
|
|||
}
|
||||
}
|
||||
|
||||
function blockTransitions(node, duration) {
|
||||
// we use a negative delay value since it performs blocking
|
||||
// yet it doesn't kill any existing transitions running on the
|
||||
// same element which makes this safe for class-based animations
|
||||
var value = duration ? '-' + duration + 's' : '';
|
||||
applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);
|
||||
return [TRANSITION_DELAY_PROP, value];
|
||||
}
|
||||
|
||||
function blockKeyframeAnimations(node, applyBlock) {
|
||||
var value = applyBlock ? 'paused' : '';
|
||||
var key = ANIMATION_PROP + ANIMATION_PLAYSTATE_KEY;
|
||||
|
@ -362,6 +353,17 @@ function concatWithSpace(a,b) {
|
|||
return a + ' ' + b;
|
||||
}
|
||||
|
||||
var helpers = {
|
||||
blockTransitions: function(node, duration) {
|
||||
// we use a negative delay value since it performs blocking
|
||||
// yet it doesn't kill any existing transitions running on the
|
||||
// same element which makes this safe for class-based animations
|
||||
var value = duration ? '-' + duration + 's' : '';
|
||||
applyInlineStyle(node, [TRANSITION_DELAY_PROP, value]);
|
||||
return [TRANSITION_DELAY_PROP, value];
|
||||
}
|
||||
};
|
||||
|
||||
var $$rAFSchedulerFactory = ['$$rAF', function($$rAF) {
|
||||
var queue, cancelFn;
|
||||
|
||||
|
@ -1070,7 +1072,7 @@ var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animatePro
|
|||
// that if there is no transition defined then nothing will happen and this will also allow
|
||||
// other transitions to be stacked on top of each other without any chopping them out.
|
||||
if (isFirst && !options.skipBlocking) {
|
||||
blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);
|
||||
helpers.blockTransitions(node, SAFE_FAST_FORWARD_DURATION_VALUE);
|
||||
}
|
||||
|
||||
var timings = computeTimings(node, fullClassName, cacheKey, !isStructural);
|
||||
|
@ -1156,7 +1158,7 @@ var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animatePro
|
|||
if (flags.blockTransition || flags.blockKeyframeAnimation) {
|
||||
applyBlocking(maxDuration);
|
||||
} else if (!options.skipBlocking) {
|
||||
blockTransitions(node, false);
|
||||
helpers.blockTransitions(node, false);
|
||||
}
|
||||
|
||||
// TODO(matsko): for 1.5 change this code to have an animator object for better debugging
|
||||
|
@ -1209,7 +1211,7 @@ var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animatePro
|
|||
}
|
||||
|
||||
blockKeyframeAnimations(node, false);
|
||||
blockTransitions(node, false);
|
||||
helpers.blockTransitions(node, false);
|
||||
|
||||
forEach(temporaryStyles, function(entry) {
|
||||
// There is only one way to remove inline style properties entirely from elements.
|
||||
|
@ -1260,7 +1262,7 @@ var $AnimateCssProvider = ['$animateProvider', /** @this */ function($animatePro
|
|||
|
||||
function applyBlocking(duration) {
|
||||
if (flags.blockTransition) {
|
||||
blockTransitions(node, duration);
|
||||
helpers.blockTransitions(node, duration);
|
||||
}
|
||||
|
||||
if (flags.blockKeyframeAnimation) {
|
||||
|
@ -3447,7 +3449,8 @@ var ngAnimateSwapDirective = ['$animate', function($animate) {
|
|||
restrict: 'A',
|
||||
transclude: 'element',
|
||||
terminal: true,
|
||||
priority: 600, // we use 600 here to ensure that the directive is caught before others
|
||||
priority: 550, // We use 550 here to ensure that the directive is caught before others,
|
||||
// but after `ngIf` (at priority 600).
|
||||
link: function(scope, $element, attrs, ctrl, $transclude) {
|
||||
var previousElement, previousScope;
|
||||
scope.$watchCollection(attrs.ngAnimateSwap || attrs['for'], function(value) {
|
||||
|
@ -4249,7 +4252,7 @@ angular.module('ngAnimate', [], function initAngularHelpers() {
|
|||
isFunction = angular.isFunction;
|
||||
isElement = angular.isElement;
|
||||
})
|
||||
.info({ angularVersion: '1.7.5' })
|
||||
.info({ angularVersion: '1.7.8' })
|
||||
.directive('ngAnimateSwap', ngAnimateSwapDirective)
|
||||
|
||||
.directive('ngAnimateChildren', $$AnimateChildrenDirective)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
AngularJS v1.7.5
|
||||
AngularJS v1.7.8
|
||||
(c) 2010-2018 Google, Inc. http://angularjs.org
|
||||
License: MIT
|
||||
*/
|
||||
|
@ -7,52 +7,53 @@
|
|||
case 1:if(1===a[0].nodeType)return a;break;default:return A(va(a))}if(1===a.nodeType)return A(a)}function va(a){if(!a[0])return a;for(var b=0;b<a.length;b++){var c=a[b];if(1===c.nodeType)return c}}function Ra(a,b,c){s(b,function(b){a.addClass(b,c)})}function Sa(a,b,c){s(b,function(b){a.removeClass(b,c)})}function aa(a){return function(b,c){c.addClass&&(Ra(a,b,c.addClass),c.addClass=null);c.removeClass&&(Sa(a,b,c.removeClass),c.removeClass=null)}}function pa(a){a=a||{};if(!a.$$prepared){var b=a.domOperation||
|
||||
N;a.domOperation=function(){a.$$domOperationFired=!0;b();b=N};a.$$prepared=!0}return a}function ha(a,b){Ia(a,b);Ja(a,b)}function Ia(a,b){b.from&&(a.css(b.from),b.from=null)}function Ja(a,b){b.to&&(a.css(b.to),b.to=null)}function T(a,b,c){var d=b.options||{};c=c.options||{};var f=(d.addClass||"")+" "+(c.addClass||""),k=(d.removeClass||"")+" "+(c.removeClass||"");a=Ta(a.attr("class"),f,k);c.preparationClasses&&(d.preparationClasses=ba(c.preparationClasses,d.preparationClasses),delete c.preparationClasses);
|
||||
f=d.domOperation!==N?d.domOperation:null;wa(d,c);f&&(d.domOperation=f);d.addClass=a.addClass?a.addClass:null;d.removeClass=a.removeClass?a.removeClass:null;b.addClass=d.addClass;b.removeClass=d.removeClass;return d}function Ta(a,b,c){function d(a){G(a)&&(a=a.split(" "));var c={};s(a,function(a){a.length&&(c[a]=!0)});return c}var f={};a=d(a);b=d(b);s(b,function(a,c){f[c]=1});c=d(c);s(c,function(a,c){f[c]=1===f[c]?null:-1});var k={addClass:"",removeClass:""};s(f,function(c,b){var d,f;1===c?(d="addClass",
|
||||
f=!a[b]||a[b+"-remove"]):-1===c&&(d="removeClass",f=a[b]||a[b+"-add"]);f&&(k[d].length&&(k[d]+=" "),k[d]+=b)});return k}function K(a){return a instanceof A?a[0]:a}function Ua(a,b,c,d){a="";c&&(a=$(c,"ng-",!0));d.addClass&&(a=ba(a,$(d.addClass,"-add")));d.removeClass&&(a=ba(a,$(d.removeClass,"-remove")));a.length&&(d.preparationClasses=a,b.addClass(a))}function qa(a,b){var c=b?"-"+b+"s":"";ma(a,[na,c]);return[na,c]}function xa(a,b){var c=b?"paused":"",d=ca+"PlayState";ma(a,[d,c]);return[d,c]}function ma(a,
|
||||
b){a.style[b[0]]=b[1]}function ba(a,b){return a?b?a+" "+b:a:b}function Ka(a,b,c){var d=Object.create(null),f=a.getComputedStyle(b)||{};s(c,function(a,c){var b=f[a];if(b){var L=b.charAt(0);if("-"===L||"+"===L||0<=L)b=Va(b);0===b&&(b=null);d[c]=b}});return d}function Va(a){var b=0;a=a.split(/\s*,\s*/);s(a,function(a){"s"===a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function ya(a){return 0===a||null!=a}function La(a,b){var c=M,d=a+"s";b?c+="Duration":
|
||||
d+=" linear all";return[c,d]}function Ma(a,b,c){s(c,function(c){a[c]=za(a[c])?a[c]:b.style.getPropertyValue(c)})}var M,Aa,ca,Ba;void 0===Y.ontransitionend&&void 0!==Y.onwebkittransitionend?(M="WebkitTransition",Aa="webkitTransitionEnd transitionend"):(M="transition",Aa="transitionend");void 0===Y.onanimationend&&void 0!==Y.onwebkitanimationend?(ca="WebkitAnimation",Ba="webkitAnimationEnd animationend"):(ca="animation",Ba="animationend");var ra=ca+"Delay",Ca=ca+"Duration",na=M+"Delay",Na=M+"Duration",
|
||||
Pa=z.$$minErr("ng"),Wa={transitionDuration:Na,transitionDelay:na,transitionProperty:M+"Property",animationDuration:Ca,animationDelay:ra,animationIterationCount:ca+"IterationCount"},Xa={transitionDuration:Na,transitionDelay:na,animationDuration:Ca,animationDelay:ra},Da,wa,s,Z,za,sa,Ea,ta,G,R,A,N;z.module("ngAnimate",[],function(){N=z.noop;Da=z.copy;wa=z.extend;A=z.element;s=z.forEach;Z=z.isArray;G=z.isString;ta=z.isObject;R=z.isUndefined;za=z.isDefined;Ea=z.isFunction;sa=z.isElement}).info({angularVersion:"1.7.5"}).directive("ngAnimateSwap",
|
||||
["$animate",function(a){return{restrict:"A",transclude:"element",terminal:!0,priority:600,link:function(b,c,d,f,k){var e,Q;b.$watchCollection(d.ngAnimateSwap||d["for"],function(b){e&&a.leave(e);Q&&(Q.$destroy(),Q=null);(b||0===b)&&k(function(b,d){e=b;Q=d;a.enter(b,null,c)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,c,d){function f(a){c.data("$$ngAnimateChildren","on"===a||"true"===a)}var k=d.ngAnimateChildren;G(k)&&0===k.length?c.data("$$ngAnimateChildren",
|
||||
!0):(f(a(k)(b)),d.$observe("ngAnimateChildren",f))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),e=0;e<b.length;e++)b[e]();f||a(function(){f||c()})}}var d,f;d=b.queue=[];b.waitUntilQuiet=function(b){f&&f();f=a(function(){f=null;b();c()})};return b}]).provider("$$animateQueue",["$animateProvider",function(a){function b(a){return{addClass:a.addClass,removeClass:a.removeClass,from:a.from,to:a.to}}function c(a){if(!a)return null;
|
||||
a=a.split(" ");var b=Object.create(null);s(a,function(a){b[a]=!0});return b}function d(a,b){if(a&&b){var d=c(b);return a.split(" ").some(function(a){return d[a]})}}function f(a,b,c){return e[a].some(function(a){return a(b,c)})}function k(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||"").length;return b?c&&d:c||d}var e=this.rules={skip:[],cancel:[],join:[]};e.join.push(function(a,b){return!a.structural&&k(a)});e.skip.push(function(a,b){return!a.structural&&!k(a)});e.skip.push(function(a,
|
||||
b){return"leave"===b.event&&a.structural});e.skip.push(function(a,b){return b.structural&&2===b.state&&!a.structural});e.cancel.push(function(a,b){return b.structural&&a.structural});e.cancel.push(function(a,b){return 2===b.state&&a.structural});e.cancel.push(function(a,b){if(b.structural)return!1;var c=a.addClass,f=a.removeClass,k=b.addClass,e=b.removeClass;return R(c)&&R(f)||R(k)&&R(e)?!1:d(c,e)||d(f,k)});this.$get=["$$rAF","$rootScope","$rootElement","$document","$$Map","$$animation","$$AnimateRunner",
|
||||
"$templateRequest","$$jqLite","$$forceReflow","$$isDocumentHidden",function(c,d,e,C,U,oa,H,u,t,I,da){function ia(a){O.delete(a.target)}function v(){var a=!1;return function(b){a?b():d.$$postDigest(function(){a=!0;b()})}}function ua(a,b,c){var g=[],l=m[c];l&&s(l,function(l){Oa.call(l.node,b)?g.push(l.callback):"leave"===c&&Oa.call(l.node,a)&&g.push(l.callback)});return g}function h(a,b,c){var l=va(b);return a.filter(function(a){return!(a.node===l&&(!c||a.callback===c))})}function q(a,J,w){function e(a,
|
||||
b,l,g){u(function(){var a=ua(ia,m,b);a.length?c(function(){s(a,function(a){a(h,l,g)});"close"!==l||m.parentNode||D.off(m)}):"close"!==l||m.parentNode||D.off(m)});a.progress(b,l,g)}function I(a){var b=h,c=n;c.preparationClasses&&(b.removeClass(c.preparationClasses),c.preparationClasses=null);c.activeClasses&&(b.removeClass(c.activeClasses),c.activeClasses=null);W(h,n);ha(h,n);n.domOperation();q.complete(!a)}var n=Da(w),h=Ha(a),m=K(h),ia=m&&m.parentNode,n=pa(n),q=new H,u=v();Z(n.addClass)&&(n.addClass=
|
||||
n.addClass.join(" "));n.addClass&&!G(n.addClass)&&(n.addClass=null);Z(n.removeClass)&&(n.removeClass=n.removeClass.join(" "));n.removeClass&&!G(n.removeClass)&&(n.removeClass=null);n.from&&!ta(n.from)&&(n.from=null);n.to&&!ta(n.to)&&(n.to=null);if(!(B&&m&&fa(m,J,w)&&Ya(m,n)))return I(),q;var x=0<=["enter","move","leave"].indexOf(J),r=da(),P=r||O.get(m);w=!P&&y.get(m)||{};var p=!!w.state;P||p&&1===w.state||(P=!E(m,ia,J));if(P)return r&&e(q,J,"start",b(n)),I(),r&&e(q,J,"close",b(n)),q;x&&F(m);r={structural:x,
|
||||
element:h,event:J,addClass:n.addClass,removeClass:n.removeClass,close:I,options:n,runner:q};if(p){if(f("skip",r,w)){if(2===w.state)return I(),q;T(h,w,r);return w.runner}if(f("cancel",r,w))if(2===w.state)w.runner.end();else if(w.structural)w.close();else return T(h,w,r),w.runner;else if(f("join",r,w))if(2===w.state)T(h,r,{});else return Ua(t,h,x?J:null,n),J=r.event=w.event,n=T(h,w,r),w.runner}else T(h,r,{});(p=r.structural)||(p="animate"===r.event&&0<Object.keys(r.options.to||{}).length||k(r));if(!p)return I(),
|
||||
g(m),q;var C=(w.counter||0)+1;r.counter=C;l(m,1,r);d.$$postDigest(function(){h=Ha(a);var c=y.get(m),d=!c,c=c||{},t=0<(h.parent()||[]).length&&("animate"===c.event||c.structural||k(c));if(d||c.counter!==C||!t){d&&(W(h,n),ha(h,n));if(d||x&&c.event!==J)n.domOperation(),q.end();t||g(m)}else J=!c.structural&&k(c,!0)?"setClass":c.event,l(m,2),c=oa(h,J,c.options),q.setHost(c),e(q,J,"start",b(n)),c.done(function(a){I(!a);(a=y.get(m))&&a.counter===C&&g(m);e(q,J,"close",b(n))})});return q}function F(a){a=a.querySelectorAll("[data-ng-animate]");
|
||||
s(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate"),10),c=y.get(a);if(c)switch(b){case 2:c.runner.end();case 1:y.delete(a)}})}function g(a){a.removeAttribute("data-ng-animate");y.delete(a)}function E(a,b,c){c=C[0].body;var l=K(e),g=a===c||"HTML"===a.nodeName,d=a===l,t=!1,m=O.get(a),h;for((a=A.data(a,"$ngAnimatePin"))&&(b=K(a));b;){d||(d=b===l);if(1!==b.nodeType)break;a=y.get(b)||{};if(!t){var f=O.get(b);if(!0===f&&!1!==m){m=!0;break}else!1===f&&(m=!1);t=a.structural}if(R(h)||!0===h)a=
|
||||
A.data(b,"$$ngAnimateChildren"),za(a)&&(h=a);if(t&&!1===h)break;g||(g=b===c);if(g&&d)break;if(!d&&(a=A.data(b,"$ngAnimatePin"))){b=K(a);continue}b=b.parentNode}return(!t||h)&&!0!==m&&d&&g}function l(a,b,c){c=c||{};c.state=b;a.setAttribute("data-ng-animate",b);c=(b=y.get(a))?wa(b,c):c;y.set(a,c)}var y=new U,O=new U,B=null,P=d.$watch(function(){return 0===u.totalPendingRequests},function(a){a&&(P(),d.$$postDigest(function(){d.$$postDigest(function(){null===B&&(B=!0)})}))}),m=Object.create(null);U=a.customFilter();
|
||||
var la=a.classNameFilter();I=function(){return!0};var fa=U||I,Ya=la?function(a,b){var c=[a.getAttribute("class"),b.addClass,b.removeClass].join(" ");return la.test(c)}:I,W=aa(t),Oa=Y.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&16)},D={on:function(a,b,c){var l=va(b);m[a]=m[a]||[];m[a].push({node:l,callback:c});A(b).on("$destroy",function(){y.get(l)||D.off(a,b,c)})},off:function(a,b,c){if(1!==arguments.length||G(arguments[0])){var l=m[a];l&&(m[a]=1===arguments.length?
|
||||
null:h(l,b,c))}else for(l in b=arguments[0],m)m[l]=h(m[l],b)},pin:function(a,b){Fa(sa(a),"element","not an element");Fa(sa(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,l){c=c||{};c.domOperation=l;return q(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!B;else if(sa(a)){var l=K(a);if(1===c)b=!O.get(l);else{if(!O.has(l))A(a).on("$destroy",ia);O.set(l,!b)}}else b=B=!!a;return b}};return D}]}]).provider("$$animateCache",function(){var a=0,b=Object.create(null);
|
||||
this.$get=[function(){return{cacheKey:function(b,d,f,k){var e=b.parentNode;b=[e.$$ngAnimateParentKey||(e.$$ngAnimateParentKey=++a),d,b.getAttribute("class")];f&&b.push(f);k&&b.push(k);return b.join(" ")},containsCachedAnimationWithoutDuration:function(a){return(a=b[a])&&!a.isValid||!1},flush:function(){b=Object.create(null)},count:function(a){return(a=b[a])?a.total:0},get:function(a){return(a=b[a])&&a.value},put:function(a,d,f){b[a]?(b[a].total++,b[a].value=d):b[a]={total:1,value:d,isValid:f}}}}]}).provider("$$animation",
|
||||
["$animateProvider",function(a){var b=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$Map","$$rAFScheduler","$$animateCache",function(a,d,f,k,e,Q,L){function x(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,t=d.parentNode;f.set(d,a);for(var h;t;){if(h=f.get(t)){h.processed||(h=b(h));break}t=t.parentNode}(h||c).children.push(a);return a}var c={children:[]},d,f=new e;for(d=0;d<a.length;d++){var da=a[d];f.set(da.domNode,a[d]={domNode:da.domNode,
|
||||
element:da.element,fn:da.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var t=0,f=[];for(d=0;d<c.length;d++){var g=c[d];0>=a&&(a=t,t=0,b.push(f),f=[]);f.push(g);g.children.forEach(function(a){t++;c.push(a)});a--}f.length&&b.push(f);return b}(c)}var C=[],U=aa(a);return function(e,H,u){function t(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];s(a,function(a){var c=
|
||||
a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function I(a){var b=[],c={};s(a,function(a,d){var l=K(a.element),g=0<=["enter","move"].indexOf(a.event),l=a.structural?t(l):[];if(l.length){var f=g?"to":"from";s(l,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][f]={animationID:d,element:A(a)}})}else b.push(a)});var d={},g={};s(c,function(c,t){var f=c.from,e=c.to;if(f&&e){var h=a[f.animationID],k=a[e.animationID],E=f.animationID.toString();if(!g[E]){var I=g[E]=
|
||||
{structural:!0,beforeStart:function(){h.beforeStart();k.beforeStart()},close:function(){h.close();k.close()},classes:da(h.classes,k.classes),from:h,to:k,anchors:[]};I.classes.length?b.push(I):(b.push(h),b.push(k))}g[E].anchors.push({out:f.element,"in":e.element})}else f=f?f.animationID:e.animationID,e=f.toString(),d[e]||(d[e]=!0,b.push(a[f]))});return b}function da(a,b){a=a.split(" ");b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var g=a[d];if("ng-"!==g.substring(0,3))for(var t=0;t<b.length;t++)if(g===
|
||||
b[t]){c.push(g);break}}return c.join(" ")}function ia(a){for(var c=b.length-1;0<=c;c--){var d=f.get(b[c])(a);if(d)return d}}function v(a,b){function c(a){(a=a.data("$$animationRunner"))&&a.setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function ua(){var a=e.data("$$animationRunner");!a||"leave"===H&&u.$$domOperationFired||a.end()}function h(b){e.off("$destroy",ua);e.removeData("$$animationRunner");U(e,u);ha(e,u);u.domOperation();E&&a.removeClass(e,E);F.complete(!b)}u=pa(u);
|
||||
var q=0<=["enter","move","leave"].indexOf(H),F=new k({end:function(){h()},cancel:function(){h(!0)}});if(!b.length)return h(),F;var g=Ga(e.attr("class"),Ga(u.addClass,u.removeClass)),E=u.tempClasses;E&&(g+=" "+E,u.tempClasses=null);q&&e.data("$$animatePrepareClasses","ng-"+H+"-prepare");e.data("$$animationRunner",F);C.push({element:e,classes:g,event:H,structural:q,options:u,beforeStart:function(){E=(E?E+" ":"")+"ng-animate";a.addClass(e,E);var b=e.data("$$animatePrepareClasses");b&&a.removeClass(e,
|
||||
b)},close:h});e.on("$destroy",ua);if(1<C.length)return F;d.$$postDigest(function(){var b=[];s(C,function(a){a.element.data("$$animationRunner")?b.push(a):a.close()});C.length=0;var d=I(b),g=[];s(d,function(a){var b=a.from?a.from.element:a.element,c=u.addClass,d=L.cacheKey(b[0],a.event,(c?c+" ":"")+"ng-animate",u.removeClass);g.push({element:b,domNode:K(b),fn:function(){var b,c=a.close;if(L.containsCachedAnimationWithoutDuration(d))c();else{a.beforeStart();if((a.anchors?a.from.element||a.to.element:
|
||||
a.element).data("$$animationRunner")){var g=ia(a);g&&(b=g.start)}b?(b=b(),b.done(function(a){c(!a)}),v(a,b)):c()}}})});for(var d=x(g),t=0;t<d.length;t++)for(var f=d[t],e=0;e<f.length;e++){var h=f[e],k=h.element;d[t][e]=h.fn;0===t?k.removeData("$$animatePrepareClasses"):(h=k.data("$$animatePrepareClasses"))&&a.addClass(k,h)}Q(d)});return F}}]}]).provider("$animateCss",["$animateProvider",function(a){this.$get=["$window","$$jqLite","$$AnimateRunner","$timeout","$$animateCache","$$forceReflow","$sniffer",
|
||||
"$$rAFScheduler","$$animateQueue",function(a,c,d,f,k,e,Q,L,x){function C(d,f,e,x){var v,s="stagger-"+e;0<k.count(e)&&(v=k.get(s),v||(f=$(f,"-stagger"),c.addClass(d,f),v=Ka(a,d,x),v.animationDuration=Math.max(v.animationDuration,0),v.transitionDuration=Math.max(v.transitionDuration,0),c.removeClass(d,f),k.put(s,v,!0)));return v||{}}function U(a){u.push(a);L.waitUntilQuiet(function(){k.flush();for(var a=e(),b=0;b<u.length;b++)u[b](a);u.length=0})}function z(c,d,f,e){d=k.get(f);d||(d=Ka(a,c,Wa),"infinite"===
|
||||
d.animationIterationCount&&(d.animationIterationCount=1));k.put(f,d,e||0<d.transitionDuration||0<d.animationDuration);c=d;f=c.animationDelay;e=c.transitionDelay;c.maxDelay=f&&e?Math.max(f,e):f||e;c.maxDuration=Math.max(c.animationDuration*c.animationIterationCount,c.transitionDuration);return c}var H=aa(c),u=[];return function(a,b){function e(){v()}function L(){v(!0)}function v(b){if(!(P||la&&m)){P=!0;m=!1;V&&!g.$$skipPreparationClasses&&c.removeClass(a,V);ba&&c.removeClass(a,ba);xa(l,!1);qa(l,!1);
|
||||
s(y,function(a){l.style[a[0]]=""});H(a,g);ha(a,g);Object.keys(E).length&&s(E,function(a,b){a?l.style.setProperty(b,a):l.style.removeProperty(b)});if(g.onDone)g.onDone();w&&w.length&&a.off(w.join(" "),q);var d=a.data("$$animateCss");d&&(f.cancel(d[0].timer),a.removeData("$$animateCss"));fa&&fa.complete(!b)}}function u(a){p.blockTransition&&qa(l,a);p.blockKeyframeAnimation&&xa(l,!!a)}function h(){fa=new d({end:e,cancel:L});U(N);v();return{$$willAnimate:!1,start:function(){return fa},end:e}}function q(a){a.stopPropagation();
|
||||
var b=a.originalEvent||a;b.target===l&&(a=b.$manualTimeStamp||Date.now(),b=parseFloat(b.elapsedTime.toFixed(3)),Math.max(a-J,0)>=G&&b>=D&&(la=!0,v()))}function F(){function b(){if(!P){u(!1);s(y,function(a){l.style[a[0]]=a[1]});H(a,g);c.addClass(a,ba);if(p.recalculateTimingStyles){T=l.getAttribute("class")+" "+V;ka=k.cacheKey(l,ja,g.addClass,g.removeClass);r=z(l,T,ka,!1);ga=r.maxDelay;W=Math.max(ga,0);D=r.maxDuration;if(0===D){v();return}p.hasTransitions=0<r.transitionDuration;p.hasAnimations=0<r.animationDuration}p.applyAnimationDelay&&
|
||||
(ga="boolean"!==typeof g.delay&&ya(g.delay)?parseFloat(g.delay):ga,W=Math.max(ga,0),r.animationDelay=ga,ea=[ra,ga+"s"],y.push(ea),l.style[ea[0]]=ea[1]);G=1E3*W;R=1E3*D;if(g.easing){var e,h=g.easing;p.hasTransitions&&(e=M+"TimingFunction",y.push([e,h]),l.style[e]=h);p.hasAnimations&&(e=ca+"TimingFunction",y.push([e,h]),l.style[e]=h)}r.transitionDuration&&w.push(Aa);r.animationDuration&&w.push(Ba);J=Date.now();var m=G+1.5*R;e=J+m;var h=a.data("$$animateCss")||[],F=!0;if(h.length){var n=h[0];(F=e>n.expectedEndTime)?
|
||||
f.cancel(n.timer):h.push(v)}F&&(m=f(d,m,!1),h[0]={timer:m,expectedEndTime:e},h.push(v),a.data("$$animateCss",h));if(w.length)a.on(w.join(" "),q);g.to&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.to)),Ja(a,g))}}function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c<b.length;c++)b[c]();a.removeData("$$animateCss")}}if(!P)if(l.parentNode){var e=function(a){if(la)m&&a&&(m=!1,v());else if(m=!a,r.animationDuration)if(a=xa(l,m),m)y.push(a);else{var b=y,c=b.indexOf(a);0<=a&&b.splice(c,1)}},h=0<aa&&(r.transitionDuration&&
|
||||
0===X.transitionDuration||r.animationDuration&&0===X.animationDuration)&&Math.max(X.animationDelay,X.transitionDelay);h?f(b,Math.floor(h*aa*1E3),!1):b();A.resume=function(){e(!0)};A.pause=function(){e(!1)}}else v()}var g=b||{};g.$$prepared||(g=pa(Da(g)));var E={},l=K(a);if(!l||!l.parentNode||!x.enabled())return h();var y=[],O=a.attr("class"),B=Qa(g),P,m,la,fa,A,W,G,D,R,J,w=[];if(0===g.duration||!Q.animations&&!Q.transitions)return h();var ja=g.event&&Z(g.event)?g.event.join(" "):g.event,Y=ja&&g.structural,
|
||||
n="",S="";Y?n=$(ja,"ng-",!0):ja&&(n=ja);g.addClass&&(S+=$(g.addClass,"-add"));g.removeClass&&(S.length&&(S+=" "),S+=$(g.removeClass,"-remove"));g.applyClassesEarly&&S.length&&H(a,g);var V=[n,S].join(" ").trim(),T=O+" "+V,O=B.to&&0<Object.keys(B.to).length;if(!(0<(g.keyframeStyle||"").length||O||V))return h();var X,ka=k.cacheKey(l,ja,g.addClass,g.removeClass);if(k.containsCachedAnimationWithoutDuration(ka))return V=null,h();0<g.stagger?(B=parseFloat(g.stagger),X={transitionDelay:B,animationDelay:B,
|
||||
transitionDuration:0,animationDuration:0}):X=C(l,V,ka,Xa);g.$$skipPreparationClasses||c.addClass(a,V);g.transitionStyle&&(B=[M,g.transitionStyle],ma(l,B),y.push(B));0<=g.duration&&(B=0<l.style[M].length,B=La(g.duration,B),ma(l,B),y.push(B));g.keyframeStyle&&(B=[ca,g.keyframeStyle],ma(l,B),y.push(B));var aa=X?0<=g.staggerIndex?g.staggerIndex:k.count(ka):0;(n=0===aa)&&!g.skipBlocking&&qa(l,9999);var r=z(l,T,ka,!Y),ga=r.maxDelay;W=Math.max(ga,0);D=r.maxDuration;var p={};p.hasTransitions=0<r.transitionDuration;
|
||||
p.hasAnimations=0<r.animationDuration;p.hasTransitionAll=p.hasTransitions&&"all"===r.transitionProperty;p.applyTransitionDuration=O&&(p.hasTransitions&&!p.hasTransitionAll||p.hasAnimations&&!p.hasTransitions);p.applyAnimationDuration=g.duration&&p.hasAnimations;p.applyTransitionDelay=ya(g.delay)&&(p.applyTransitionDuration||p.hasTransitions);p.applyAnimationDelay=ya(g.delay)&&p.hasAnimations;p.recalculateTimingStyles=0<S.length;if(p.applyTransitionDuration||p.applyAnimationDuration)D=g.duration?parseFloat(g.duration):
|
||||
D,p.applyTransitionDuration&&(p.hasTransitions=!0,r.transitionDuration=D,B=0<l.style[M+"Property"].length,y.push(La(D,B))),p.applyAnimationDuration&&(p.hasAnimations=!0,r.animationDuration=D,y.push([Ca,D+"s"]));if(0===D&&!p.recalculateTimingStyles)return h();var ba=$(V,"-active");if(null!=g.delay){var ea;"boolean"!==typeof g.delay&&(ea=parseFloat(g.delay),W=Math.max(ea,0));p.applyTransitionDelay&&y.push([na,ea+"s"]);p.applyAnimationDelay&&y.push([ra,ea+"s"])}null==g.duration&&0<r.transitionDuration&&
|
||||
(p.recalculateTimingStyles=p.recalculateTimingStyles||n);G=1E3*W;R=1E3*D;g.skipBlocking||(p.blockTransition=0<r.transitionDuration,p.blockKeyframeAnimation=0<r.animationDuration&&0<X.animationDelay&&0===X.animationDuration);g.from&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.from)),Ia(a,g));p.blockTransition||p.blockKeyframeAnimation?u(D):g.skipBlocking||qa(l,!1);return{$$willAnimate:!0,end:e,start:function(){if(!P)return A={end:e,cancel:L,resume:null,pause:null},fa=new d(A),U(F),fa}}}}]}]).provider("$$animateCssDriver",
|
||||
["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,f,k,e,Q){function L(a){return a.replace(/\bng-\S+\b/g,"")}function x(a,b){G(a)&&(a=a.split(" "));G(b)&&(b=b.split(" "));return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function C(c,e,f){function k(a){var b={},c=K(a).getBoundingClientRect();s(["width","height","top","left"],function(a){var d=c[a];
|
||||
switch(a){case "top":d+=H.scrollTop;break;case "left":d+=H.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function v(){var c=L(f.attr("class")||""),d=x(c,q),c=x(q,c),d=a(h,{to:k(f),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?d:null}function C(){h.remove();e.removeClass("ng-animate-shim");f.removeClass("ng-animate-shim")}var h=A(K(e).cloneNode(!0)),q=L(h.attr("class")||"");e.addClass("ng-animate-shim");f.addClass("ng-animate-shim");h.addClass("ng-anchor");
|
||||
u.append(h);var F;c=function(){var c=a(h,{addClass:"ng-anchor-out",delay:!0,from:k(e)});return c.$$willAnimate?c:null}();if(!c&&(F=v(),!F))return C();var g=c||F;return{start:function(){function a(){c&&c.end()}var b,c=g.start();c.done(function(){c=null;if(!F&&(F=v()))return c=F.start(),c.done(function(){c=null;C();b.complete()}),c;C();b.complete()});return b=new d({end:a,cancel:a})}}}function z(a,b,c,e){var f=oa(a,N),k=oa(b,N),h=[];s(e,function(a){(a=C(c,a.out,a["in"]))&&h.push(a)});if(f||k||0!==h.length)return{start:function(){function a(){s(b,
|
||||
function(a){a.end()})}var b=[];f&&b.push(f.start());k&&b.push(k.start());s(h,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function oa(c){var d=c.element,e=c.options||{};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=!0,"leave"===c.event&&(e.onDone=e.domOperation));e.preparationClasses&&(e.event=ba(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!k.animations&&!k.transitions)return N;var H=
|
||||
Q[0].body;c=K(f);var u=A(c.parentNode&&11===c.parentNode.nodeType||H.contains(c)?c:H);return function(a){return a.from&&a.to?z(a.from,a.to,a.classes,a.anchors):oa(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function f(c){c=Z(c)?c:c.split(" ");for(var d=[],f={},k=0;k<c.length;k++){var s=c[k],z=a.$$registeredAnimations[s];z&&!f[s]&&(d.push(b.get(z)),f[s]=!0)}return d}var k=aa(d);return function(a,b,d,x){function C(){x.domOperation();
|
||||
k(a,x)}function z(a,b,d,f,e){switch(d){case "animate":b=[b,f.from,f.to,e];break;case "setClass":b=[b,t,I,e];break;case "addClass":b=[b,t,e];break;case "removeClass":b=[b,I,e];break;default:b=[b,e]}b.push(f);if(a=a.apply(a,b))if(Ea(a.start)&&(a=a.start()),a instanceof c)a.done(e);else if(Ea(a))return a;return N}function A(a,b,d,e,f){var h=[];s(e,function(e){var l=e[f];l&&h.push(function(){var e,f,h=!1,k=function(a){h||(h=!0,(f||N)(a),e.complete(!a))};e=new c({end:function(){k()},cancel:function(){k(!0)}});
|
||||
f=z(l,a,b,d,function(a){k(!1===a)});return e})});return h}function H(a,b,d,e,f){var h=A(a,b,d,e,f);if(0===h.length){var k,q;"beforeSetClass"===f?(k=A(a,"removeClass",d,e,"beforeRemoveClass"),q=A(a,"addClass",d,e,"beforeAddClass")):"setClass"===f&&(k=A(a,"removeClass",d,e,"removeClass"),q=A(a,"addClass",d,e,"addClass"));k&&(h=h.concat(k));q&&(h=h.concat(q))}if(0!==h.length)return function(a){var b=[];h.length&&s(h,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){s(b,function(b){a?
|
||||
b.cancel():b.end()})}}}var u=!1;3===arguments.length&&ta(d)&&(x=d,d=null);x=pa(x);d||(d=a.attr("class")||"",x.addClass&&(d+=" "+x.addClass),x.removeClass&&(d+=" "+x.removeClass));var t=x.addClass,I=x.removeClass,G=f(d),K,v;if(G.length){var M,h;"leave"===b?(h="leave",M="afterLeave"):(h="before"+b.charAt(0).toUpperCase()+b.substr(1),M=b);"enter"!==b&&"move"!==b&&(K=H(a,b,x,G,h));v=H(a,b,x,G,M)}if(K||v){var q;return{$$willAnimate:!0,end:function(){q?q.end():(u=!0,C(),ha(a,x),q=new c,q.complete(!0));
|
||||
return q},start:function(){function b(c){u=!0;C();ha(a,x);q.complete(c)}if(q)return q;q=new c;var d,f=[];K&&f.push(function(a){d=K(a)});f.length?f.push(function(a){C();a(!0)}):C();v&&f.push(function(a){d=v(a)});q.setHost({end:function(){u||((d||N)(void 0),b(void 0))},cancel:function(){u||((d||N)(!0),b(!0))}});c.chain(f,b);return q}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,
|
||||
c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),e=d(a.to);if(b||e)return{start:function(){function a(){return function(){s(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());e&&d.push(e.start());c.all(d,function(a){f.complete(a)});var f=new c({end:a(),cancel:a()});return f}}}else return d(a)}}]}])})(window,window.angular);
|
||||
f=!a[b]||a[b+"-remove"]):-1===c&&(d="removeClass",f=a[b]||a[b+"-add"]);f&&(k[d].length&&(k[d]+=" "),k[d]+=b)});return k}function K(a){return a instanceof A?a[0]:a}function Ua(a,b,c,d){a="";c&&(a=$(c,"ng-",!0));d.addClass&&(a=ba(a,$(d.addClass,"-add")));d.removeClass&&(a=ba(a,$(d.removeClass,"-remove")));a.length&&(d.preparationClasses=a,b.addClass(a))}function xa(a,b){var c=b?"paused":"",d=ca+"PlayState";ma(a,[d,c]);return[d,c]}function ma(a,b){a.style[b[0]]=b[1]}function ba(a,b){return a?b?a+" "+
|
||||
b:a:b}function Ka(a,b,c){var d=Object.create(null),f=a.getComputedStyle(b)||{};s(c,function(a,c){var b=f[a];if(b){var L=b.charAt(0);if("-"===L||"+"===L||0<=L)b=Va(b);0===b&&(b=null);d[c]=b}});return d}function Va(a){var b=0;a=a.split(/\s*,\s*/);s(a,function(a){"s"===a.charAt(a.length-1)&&(a=a.substring(0,a.length-1));a=parseFloat(a)||0;b=b?Math.max(a,b):a});return b}function ya(a){return 0===a||null!=a}function La(a,b){var c=M,d=a+"s";b?c+="Duration":d+=" linear all";return[c,d]}function Ma(a,b,c){s(c,
|
||||
function(c){a[c]=za(a[c])?a[c]:b.style.getPropertyValue(c)})}var M,Aa,ca,Ba;void 0===Y.ontransitionend&&void 0!==Y.onwebkittransitionend?(M="WebkitTransition",Aa="webkitTransitionEnd transitionend"):(M="transition",Aa="transitionend");void 0===Y.onanimationend&&void 0!==Y.onwebkitanimationend?(ca="WebkitAnimation",Ba="webkitAnimationEnd animationend"):(ca="animation",Ba="animationend");var qa=ca+"Delay",Ca=ca+"Duration",na=M+"Delay",Na=M+"Duration",Pa=z.$$minErr("ng"),ra={blockTransitions:function(a,
|
||||
b){var c=b?"-"+b+"s":"";ma(a,[na,c]);return[na,c]}},Wa={transitionDuration:Na,transitionDelay:na,transitionProperty:M+"Property",animationDuration:Ca,animationDelay:qa,animationIterationCount:ca+"IterationCount"},Xa={transitionDuration:Na,transitionDelay:na,animationDuration:Ca,animationDelay:qa},Da,wa,s,Z,za,sa,Ea,ta,G,R,A,N;z.module("ngAnimate",[],function(){N=z.noop;Da=z.copy;wa=z.extend;A=z.element;s=z.forEach;Z=z.isArray;G=z.isString;ta=z.isObject;R=z.isUndefined;za=z.isDefined;Ea=z.isFunction;
|
||||
sa=z.isElement}).info({angularVersion:"1.7.8"}).directive("ngAnimateSwap",["$animate",function(a){return{restrict:"A",transclude:"element",terminal:!0,priority:550,link:function(b,c,d,f,k){var e,Q;b.$watchCollection(d.ngAnimateSwap||d["for"],function(b){e&&a.leave(e);Q&&(Q.$destroy(),Q=null);(b||0===b)&&k(function(b,d){e=b;Q=d;a.enter(b,null,c)})})}}}]).directive("ngAnimateChildren",["$interpolate",function(a){return{link:function(b,c,d){function f(a){c.data("$$ngAnimateChildren","on"===a||"true"===
|
||||
a)}var k=d.ngAnimateChildren;G(k)&&0===k.length?c.data("$$ngAnimateChildren",!0):(f(a(k)(b)),d.$observe("ngAnimateChildren",f))}}}]).factory("$$rAFScheduler",["$$rAF",function(a){function b(a){d=d.concat(a);c()}function c(){if(d.length){for(var b=d.shift(),e=0;e<b.length;e++)b[e]();f||a(function(){f||c()})}}var d,f;d=b.queue=[];b.waitUntilQuiet=function(b){f&&f();f=a(function(){f=null;b();c()})};return b}]).provider("$$animateQueue",["$animateProvider",function(a){function b(a){return{addClass:a.addClass,
|
||||
removeClass:a.removeClass,from:a.from,to:a.to}}function c(a){if(!a)return null;a=a.split(" ");var b=Object.create(null);s(a,function(a){b[a]=!0});return b}function d(a,b){if(a&&b){var d=c(b);return a.split(" ").some(function(a){return d[a]})}}function f(a,b,c){return e[a].some(function(a){return a(b,c)})}function k(a,b){var c=0<(a.addClass||"").length,d=0<(a.removeClass||"").length;return b?c&&d:c||d}var e=this.rules={skip:[],cancel:[],join:[]};e.join.push(function(a,b){return!a.structural&&k(a)});
|
||||
e.skip.push(function(a,b){return!a.structural&&!k(a)});e.skip.push(function(a,b){return"leave"===b.event&&a.structural});e.skip.push(function(a,b){return b.structural&&2===b.state&&!a.structural});e.cancel.push(function(a,b){return b.structural&&a.structural});e.cancel.push(function(a,b){return 2===b.state&&a.structural});e.cancel.push(function(a,b){if(b.structural)return!1;var c=a.addClass,f=a.removeClass,k=b.addClass,e=b.removeClass;return R(c)&&R(f)||R(k)&&R(e)?!1:d(c,e)||d(f,k)});this.$get=["$$rAF",
|
||||
"$rootScope","$rootElement","$document","$$Map","$$animation","$$AnimateRunner","$templateRequest","$$jqLite","$$forceReflow","$$isDocumentHidden",function(c,d,e,C,U,oa,H,u,t,I,da){function ia(a){O.delete(a.target)}function v(){var a=!1;return function(b){a?b():d.$$postDigest(function(){a=!0;b()})}}function ua(a,b,c){var g=[],l=m[c];l&&s(l,function(l){Oa.call(l.node,b)?g.push(l.callback):"leave"===c&&Oa.call(l.node,a)&&g.push(l.callback)});return g}function h(a,b,c){var l=va(b);return a.filter(function(a){return!(a.node===
|
||||
l&&(!c||a.callback===c))})}function q(a,J,w){function e(a,b,l,g){u(function(){var a=ua(ia,m,b);a.length?c(function(){s(a,function(a){a(h,l,g)});"close"!==l||m.parentNode||D.off(m)}):"close"!==l||m.parentNode||D.off(m)});a.progress(b,l,g)}function I(a){var b=h,c=n;c.preparationClasses&&(b.removeClass(c.preparationClasses),c.preparationClasses=null);c.activeClasses&&(b.removeClass(c.activeClasses),c.activeClasses=null);W(h,n);ha(h,n);n.domOperation();q.complete(!a)}var n=Da(w),h=Ha(a),m=K(h),ia=m&&
|
||||
m.parentNode,n=pa(n),q=new H,u=v();Z(n.addClass)&&(n.addClass=n.addClass.join(" "));n.addClass&&!G(n.addClass)&&(n.addClass=null);Z(n.removeClass)&&(n.removeClass=n.removeClass.join(" "));n.removeClass&&!G(n.removeClass)&&(n.removeClass=null);n.from&&!ta(n.from)&&(n.from=null);n.to&&!ta(n.to)&&(n.to=null);if(!(B&&m&&fa(m,J,w)&&Ya(m,n)))return I(),q;var x=0<=["enter","move","leave"].indexOf(J),r=da(),P=r||O.get(m);w=!P&&y.get(m)||{};var p=!!w.state;P||p&&1===w.state||(P=!E(m,ia,J));if(P)return r&&
|
||||
e(q,J,"start",b(n)),I(),r&&e(q,J,"close",b(n)),q;x&&F(m);r={structural:x,element:h,event:J,addClass:n.addClass,removeClass:n.removeClass,close:I,options:n,runner:q};if(p){if(f("skip",r,w)){if(2===w.state)return I(),q;T(h,w,r);return w.runner}if(f("cancel",r,w))if(2===w.state)w.runner.end();else if(w.structural)w.close();else return T(h,w,r),w.runner;else if(f("join",r,w))if(2===w.state)T(h,r,{});else return Ua(t,h,x?J:null,n),J=r.event=w.event,n=T(h,w,r),w.runner}else T(h,r,{});(p=r.structural)||
|
||||
(p="animate"===r.event&&0<Object.keys(r.options.to||{}).length||k(r));if(!p)return I(),g(m),q;var C=(w.counter||0)+1;r.counter=C;l(m,1,r);d.$$postDigest(function(){h=Ha(a);var c=y.get(m),d=!c,c=c||{},t=0<(h.parent()||[]).length&&("animate"===c.event||c.structural||k(c));if(d||c.counter!==C||!t){d&&(W(h,n),ha(h,n));if(d||x&&c.event!==J)n.domOperation(),q.end();t||g(m)}else J=!c.structural&&k(c,!0)?"setClass":c.event,l(m,2),c=oa(h,J,c.options),q.setHost(c),e(q,J,"start",b(n)),c.done(function(a){I(!a);
|
||||
(a=y.get(m))&&a.counter===C&&g(m);e(q,J,"close",b(n))})});return q}function F(a){a=a.querySelectorAll("[data-ng-animate]");s(a,function(a){var b=parseInt(a.getAttribute("data-ng-animate"),10),c=y.get(a);if(c)switch(b){case 2:c.runner.end();case 1:y.delete(a)}})}function g(a){a.removeAttribute("data-ng-animate");y.delete(a)}function E(a,b,c){c=C[0].body;var l=K(e),g=a===c||"HTML"===a.nodeName,d=a===l,t=!1,m=O.get(a),h;for((a=A.data(a,"$ngAnimatePin"))&&(b=K(a));b;){d||(d=b===l);if(1!==b.nodeType)break;
|
||||
a=y.get(b)||{};if(!t){var f=O.get(b);if(!0===f&&!1!==m){m=!0;break}else!1===f&&(m=!1);t=a.structural}if(R(h)||!0===h)a=A.data(b,"$$ngAnimateChildren"),za(a)&&(h=a);if(t&&!1===h)break;g||(g=b===c);if(g&&d)break;if(!d&&(a=A.data(b,"$ngAnimatePin"))){b=K(a);continue}b=b.parentNode}return(!t||h)&&!0!==m&&d&&g}function l(a,b,c){c=c||{};c.state=b;a.setAttribute("data-ng-animate",b);c=(b=y.get(a))?wa(b,c):c;y.set(a,c)}var y=new U,O=new U,B=null,P=d.$watch(function(){return 0===u.totalPendingRequests},function(a){a&&
|
||||
(P(),d.$$postDigest(function(){d.$$postDigest(function(){null===B&&(B=!0)})}))}),m=Object.create(null);U=a.customFilter();var la=a.classNameFilter();I=function(){return!0};var fa=U||I,Ya=la?function(a,b){var c=[a.getAttribute("class"),b.addClass,b.removeClass].join(" ");return la.test(c)}:I,W=aa(t),Oa=Y.Node.prototype.contains||function(a){return this===a||!!(this.compareDocumentPosition(a)&16)},D={on:function(a,b,c){var l=va(b);m[a]=m[a]||[];m[a].push({node:l,callback:c});A(b).on("$destroy",function(){y.get(l)||
|
||||
D.off(a,b,c)})},off:function(a,b,c){if(1!==arguments.length||G(arguments[0])){var l=m[a];l&&(m[a]=1===arguments.length?null:h(l,b,c))}else for(l in b=arguments[0],m)m[l]=h(m[l],b)},pin:function(a,b){Fa(sa(a),"element","not an element");Fa(sa(b),"parentElement","not an element");a.data("$ngAnimatePin",b)},push:function(a,b,c,l){c=c||{};c.domOperation=l;return q(a,b,c)},enabled:function(a,b){var c=arguments.length;if(0===c)b=!!B;else if(sa(a)){var l=K(a);if(1===c)b=!O.get(l);else{if(!O.has(l))A(a).on("$destroy",
|
||||
ia);O.set(l,!b)}}else b=B=!!a;return b}};return D}]}]).provider("$$animateCache",function(){var a=0,b=Object.create(null);this.$get=[function(){return{cacheKey:function(b,d,f,k){var e=b.parentNode;b=[e.$$ngAnimateParentKey||(e.$$ngAnimateParentKey=++a),d,b.getAttribute("class")];f&&b.push(f);k&&b.push(k);return b.join(" ")},containsCachedAnimationWithoutDuration:function(a){return(a=b[a])&&!a.isValid||!1},flush:function(){b=Object.create(null)},count:function(a){return(a=b[a])?a.total:0},get:function(a){return(a=
|
||||
b[a])&&a.value},put:function(a,d,f){b[a]?(b[a].total++,b[a].value=d):b[a]={total:1,value:d,isValid:f}}}}]}).provider("$$animation",["$animateProvider",function(a){var b=this.drivers=[];this.$get=["$$jqLite","$rootScope","$injector","$$AnimateRunner","$$Map","$$rAFScheduler","$$animateCache",function(a,d,f,k,e,Q,L){function x(a){function b(a){if(a.processed)return a;a.processed=!0;var d=a.domNode,t=d.parentNode;f.set(d,a);for(var h;t;){if(h=f.get(t)){h.processed||(h=b(h));break}t=t.parentNode}(h||
|
||||
c).children.push(a);return a}var c={children:[]},d,f=new e;for(d=0;d<a.length;d++){var da=a[d];f.set(da.domNode,a[d]={domNode:da.domNode,element:da.element,fn:da.fn,children:[]})}for(d=0;d<a.length;d++)b(a[d]);return function(a){var b=[],c=[],d;for(d=0;d<a.children.length;d++)c.push(a.children[d]);a=c.length;var t=0,f=[];for(d=0;d<c.length;d++){var g=c[d];0>=a&&(a=t,t=0,b.push(f),f=[]);f.push(g);g.children.forEach(function(a){t++;c.push(a)});a--}f.length&&b.push(f);return b}(c)}var C=[],U=aa(a);return function(e,
|
||||
H,u){function t(a){a=a.hasAttribute("ng-animate-ref")?[a]:a.querySelectorAll("[ng-animate-ref]");var b=[];s(a,function(a){var c=a.getAttribute("ng-animate-ref");c&&c.length&&b.push(a)});return b}function I(a){var b=[],c={};s(a,function(a,d){var l=K(a.element),g=0<=["enter","move"].indexOf(a.event),l=a.structural?t(l):[];if(l.length){var f=g?"to":"from";s(l,function(a){var b=a.getAttribute("ng-animate-ref");c[b]=c[b]||{};c[b][f]={animationID:d,element:A(a)}})}else b.push(a)});var d={},g={};s(c,function(c,
|
||||
t){var f=c.from,e=c.to;if(f&&e){var h=a[f.animationID],k=a[e.animationID],E=f.animationID.toString();if(!g[E]){var I=g[E]={structural:!0,beforeStart:function(){h.beforeStart();k.beforeStart()},close:function(){h.close();k.close()},classes:da(h.classes,k.classes),from:h,to:k,anchors:[]};I.classes.length?b.push(I):(b.push(h),b.push(k))}g[E].anchors.push({out:f.element,"in":e.element})}else f=f?f.animationID:e.animationID,e=f.toString(),d[e]||(d[e]=!0,b.push(a[f]))});return b}function da(a,b){a=a.split(" ");
|
||||
b=b.split(" ");for(var c=[],d=0;d<a.length;d++){var g=a[d];if("ng-"!==g.substring(0,3))for(var t=0;t<b.length;t++)if(g===b[t]){c.push(g);break}}return c.join(" ")}function ia(a){for(var c=b.length-1;0<=c;c--){var d=f.get(b[c])(a);if(d)return d}}function v(a,b){function c(a){(a=a.data("$$animationRunner"))&&a.setHost(b)}a.from&&a.to?(c(a.from.element),c(a.to.element)):c(a.element)}function ua(){var a=e.data("$$animationRunner");!a||"leave"===H&&u.$$domOperationFired||a.end()}function h(b){e.off("$destroy",
|
||||
ua);e.removeData("$$animationRunner");U(e,u);ha(e,u);u.domOperation();E&&a.removeClass(e,E);F.complete(!b)}u=pa(u);var q=0<=["enter","move","leave"].indexOf(H),F=new k({end:function(){h()},cancel:function(){h(!0)}});if(!b.length)return h(),F;var g=Ga(e.attr("class"),Ga(u.addClass,u.removeClass)),E=u.tempClasses;E&&(g+=" "+E,u.tempClasses=null);q&&e.data("$$animatePrepareClasses","ng-"+H+"-prepare");e.data("$$animationRunner",F);C.push({element:e,classes:g,event:H,structural:q,options:u,beforeStart:function(){E=
|
||||
(E?E+" ":"")+"ng-animate";a.addClass(e,E);var b=e.data("$$animatePrepareClasses");b&&a.removeClass(e,b)},close:h});e.on("$destroy",ua);if(1<C.length)return F;d.$$postDigest(function(){var b=[];s(C,function(a){a.element.data("$$animationRunner")?b.push(a):a.close()});C.length=0;var d=I(b),g=[];s(d,function(a){var b=a.from?a.from.element:a.element,c=u.addClass,d=L.cacheKey(b[0],a.event,(c?c+" ":"")+"ng-animate",u.removeClass);g.push({element:b,domNode:K(b),fn:function(){var b,c=a.close;if(L.containsCachedAnimationWithoutDuration(d))c();
|
||||
else{a.beforeStart();if((a.anchors?a.from.element||a.to.element:a.element).data("$$animationRunner")){var g=ia(a);g&&(b=g.start)}b?(b=b(),b.done(function(a){c(!a)}),v(a,b)):c()}}})});for(var d=x(g),t=0;t<d.length;t++)for(var f=d[t],e=0;e<f.length;e++){var h=f[e],k=h.element;d[t][e]=h.fn;0===t?k.removeData("$$animatePrepareClasses"):(h=k.data("$$animatePrepareClasses"))&&a.addClass(k,h)}Q(d)});return F}}]}]).provider("$animateCss",["$animateProvider",function(a){this.$get=["$window","$$jqLite","$$AnimateRunner",
|
||||
"$timeout","$$animateCache","$$forceReflow","$sniffer","$$rAFScheduler","$$animateQueue",function(a,c,d,f,k,e,Q,L,x){function C(d,f,e,x){var v,s="stagger-"+e;0<k.count(e)&&(v=k.get(s),v||(f=$(f,"-stagger"),c.addClass(d,f),v=Ka(a,d,x),v.animationDuration=Math.max(v.animationDuration,0),v.transitionDuration=Math.max(v.transitionDuration,0),c.removeClass(d,f),k.put(s,v,!0)));return v||{}}function U(a){u.push(a);L.waitUntilQuiet(function(){k.flush();for(var a=e(),b=0;b<u.length;b++)u[b](a);u.length=0})}
|
||||
function z(c,d,f,e){d=k.get(f);d||(d=Ka(a,c,Wa),"infinite"===d.animationIterationCount&&(d.animationIterationCount=1));k.put(f,d,e||0<d.transitionDuration||0<d.animationDuration);c=d;f=c.animationDelay;e=c.transitionDelay;c.maxDelay=f&&e?Math.max(f,e):f||e;c.maxDuration=Math.max(c.animationDuration*c.animationIterationCount,c.transitionDuration);return c}var H=aa(c),u=[];return function(a,b){function e(){v()}function L(){v(!0)}function v(b){if(!(P||la&&m)){P=!0;m=!1;V&&!g.$$skipPreparationClasses&&
|
||||
c.removeClass(a,V);ba&&c.removeClass(a,ba);xa(l,!1);ra.blockTransitions(l,!1);s(y,function(a){l.style[a[0]]=""});H(a,g);ha(a,g);Object.keys(E).length&&s(E,function(a,b){a?l.style.setProperty(b,a):l.style.removeProperty(b)});if(g.onDone)g.onDone();w&&w.length&&a.off(w.join(" "),q);var d=a.data("$$animateCss");d&&(f.cancel(d[0].timer),a.removeData("$$animateCss"));fa&&fa.complete(!b)}}function u(a){p.blockTransition&&ra.blockTransitions(l,a);p.blockKeyframeAnimation&&xa(l,!!a)}function h(){fa=new d({end:e,
|
||||
cancel:L});U(N);v();return{$$willAnimate:!1,start:function(){return fa},end:e}}function q(a){a.stopPropagation();var b=a.originalEvent||a;b.target===l&&(a=b.$manualTimeStamp||Date.now(),b=parseFloat(b.elapsedTime.toFixed(3)),Math.max(a-J,0)>=G&&b>=D&&(la=!0,v()))}function F(){function b(){if(!P){u(!1);s(y,function(a){l.style[a[0]]=a[1]});H(a,g);c.addClass(a,ba);if(p.recalculateTimingStyles){T=l.getAttribute("class")+" "+V;ka=k.cacheKey(l,ja,g.addClass,g.removeClass);r=z(l,T,ka,!1);ga=r.maxDelay;W=
|
||||
Math.max(ga,0);D=r.maxDuration;if(0===D){v();return}p.hasTransitions=0<r.transitionDuration;p.hasAnimations=0<r.animationDuration}p.applyAnimationDelay&&(ga="boolean"!==typeof g.delay&&ya(g.delay)?parseFloat(g.delay):ga,W=Math.max(ga,0),r.animationDelay=ga,ea=[qa,ga+"s"],y.push(ea),l.style[ea[0]]=ea[1]);G=1E3*W;R=1E3*D;if(g.easing){var e,h=g.easing;p.hasTransitions&&(e=M+"TimingFunction",y.push([e,h]),l.style[e]=h);p.hasAnimations&&(e=ca+"TimingFunction",y.push([e,h]),l.style[e]=h)}r.transitionDuration&&
|
||||
w.push(Aa);r.animationDuration&&w.push(Ba);J=Date.now();var m=G+1.5*R;e=J+m;var h=a.data("$$animateCss")||[],F=!0;if(h.length){var n=h[0];(F=e>n.expectedEndTime)?f.cancel(n.timer):h.push(v)}F&&(m=f(d,m,!1),h[0]={timer:m,expectedEndTime:e},h.push(v),a.data("$$animateCss",h));if(w.length)a.on(w.join(" "),q);g.to&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.to)),Ja(a,g))}}function d(){var b=a.data("$$animateCss");if(b){for(var c=1;c<b.length;c++)b[c]();a.removeData("$$animateCss")}}if(!P)if(l.parentNode){var e=
|
||||
function(a){if(la)m&&a&&(m=!1,v());else if(m=!a,r.animationDuration)if(a=xa(l,m),m)y.push(a);else{var b=y,c=b.indexOf(a);0<=a&&b.splice(c,1)}},h=0<aa&&(r.transitionDuration&&0===X.transitionDuration||r.animationDuration&&0===X.animationDuration)&&Math.max(X.animationDelay,X.transitionDelay);h?f(b,Math.floor(h*aa*1E3),!1):b();A.resume=function(){e(!0)};A.pause=function(){e(!1)}}else v()}var g=b||{};g.$$prepared||(g=pa(Da(g)));var E={},l=K(a);if(!l||!l.parentNode||!x.enabled())return h();var y=[],O=
|
||||
a.attr("class"),B=Qa(g),P,m,la,fa,A,W,G,D,R,J,w=[];if(0===g.duration||!Q.animations&&!Q.transitions)return h();var ja=g.event&&Z(g.event)?g.event.join(" "):g.event,Y=ja&&g.structural,n="",S="";Y?n=$(ja,"ng-",!0):ja&&(n=ja);g.addClass&&(S+=$(g.addClass,"-add"));g.removeClass&&(S.length&&(S+=" "),S+=$(g.removeClass,"-remove"));g.applyClassesEarly&&S.length&&H(a,g);var V=[n,S].join(" ").trim(),T=O+" "+V,O=B.to&&0<Object.keys(B.to).length;if(!(0<(g.keyframeStyle||"").length||O||V))return h();var X,ka=
|
||||
k.cacheKey(l,ja,g.addClass,g.removeClass);if(k.containsCachedAnimationWithoutDuration(ka))return V=null,h();0<g.stagger?(B=parseFloat(g.stagger),X={transitionDelay:B,animationDelay:B,transitionDuration:0,animationDuration:0}):X=C(l,V,ka,Xa);g.$$skipPreparationClasses||c.addClass(a,V);g.transitionStyle&&(B=[M,g.transitionStyle],ma(l,B),y.push(B));0<=g.duration&&(B=0<l.style[M].length,B=La(g.duration,B),ma(l,B),y.push(B));g.keyframeStyle&&(B=[ca,g.keyframeStyle],ma(l,B),y.push(B));var aa=X?0<=g.staggerIndex?
|
||||
g.staggerIndex:k.count(ka):0;(n=0===aa)&&!g.skipBlocking&&ra.blockTransitions(l,9999);var r=z(l,T,ka,!Y),ga=r.maxDelay;W=Math.max(ga,0);D=r.maxDuration;var p={};p.hasTransitions=0<r.transitionDuration;p.hasAnimations=0<r.animationDuration;p.hasTransitionAll=p.hasTransitions&&"all"===r.transitionProperty;p.applyTransitionDuration=O&&(p.hasTransitions&&!p.hasTransitionAll||p.hasAnimations&&!p.hasTransitions);p.applyAnimationDuration=g.duration&&p.hasAnimations;p.applyTransitionDelay=ya(g.delay)&&(p.applyTransitionDuration||
|
||||
p.hasTransitions);p.applyAnimationDelay=ya(g.delay)&&p.hasAnimations;p.recalculateTimingStyles=0<S.length;if(p.applyTransitionDuration||p.applyAnimationDuration)D=g.duration?parseFloat(g.duration):D,p.applyTransitionDuration&&(p.hasTransitions=!0,r.transitionDuration=D,B=0<l.style[M+"Property"].length,y.push(La(D,B))),p.applyAnimationDuration&&(p.hasAnimations=!0,r.animationDuration=D,y.push([Ca,D+"s"]));if(0===D&&!p.recalculateTimingStyles)return h();var ba=$(V,"-active");if(null!=g.delay){var ea;
|
||||
"boolean"!==typeof g.delay&&(ea=parseFloat(g.delay),W=Math.max(ea,0));p.applyTransitionDelay&&y.push([na,ea+"s"]);p.applyAnimationDelay&&y.push([qa,ea+"s"])}null==g.duration&&0<r.transitionDuration&&(p.recalculateTimingStyles=p.recalculateTimingStyles||n);G=1E3*W;R=1E3*D;g.skipBlocking||(p.blockTransition=0<r.transitionDuration,p.blockKeyframeAnimation=0<r.animationDuration&&0<X.animationDelay&&0===X.animationDuration);g.from&&(g.cleanupStyles&&Ma(E,l,Object.keys(g.from)),Ia(a,g));p.blockTransition||
|
||||
p.blockKeyframeAnimation?u(D):g.skipBlocking||ra.blockTransitions(l,!1);return{$$willAnimate:!0,end:e,start:function(){if(!P)return A={end:e,cancel:L,resume:null,pause:null},fa=new d(A),U(F),fa}}}}]}]).provider("$$animateCssDriver",["$$animationProvider",function(a){a.drivers.push("$$animateCssDriver");this.$get=["$animateCss","$rootScope","$$AnimateRunner","$rootElement","$sniffer","$$jqLite","$document",function(a,c,d,f,k,e,Q){function L(a){return a.replace(/\bng-\S+\b/g,"")}function x(a,b){G(a)&&
|
||||
(a=a.split(" "));G(b)&&(b=b.split(" "));return a.filter(function(a){return-1===b.indexOf(a)}).join(" ")}function C(c,e,f){function k(a){var b={},c=K(a).getBoundingClientRect();s(["width","height","top","left"],function(a){var d=c[a];switch(a){case "top":d+=H.scrollTop;break;case "left":d+=H.scrollLeft}b[a]=Math.floor(d)+"px"});return b}function v(){var c=L(f.attr("class")||""),d=x(c,q),c=x(q,c),d=a(h,{to:k(f),addClass:"ng-anchor-in "+d,removeClass:"ng-anchor-out "+c,delay:!0});return d.$$willAnimate?
|
||||
d:null}function C(){h.remove();e.removeClass("ng-animate-shim");f.removeClass("ng-animate-shim")}var h=A(K(e).cloneNode(!0)),q=L(h.attr("class")||"");e.addClass("ng-animate-shim");f.addClass("ng-animate-shim");h.addClass("ng-anchor");u.append(h);var F;c=function(){var c=a(h,{addClass:"ng-anchor-out",delay:!0,from:k(e)});return c.$$willAnimate?c:null}();if(!c&&(F=v(),!F))return C();var g=c||F;return{start:function(){function a(){c&&c.end()}var b,c=g.start();c.done(function(){c=null;if(!F&&(F=v()))return c=
|
||||
F.start(),c.done(function(){c=null;C();b.complete()}),c;C();b.complete()});return b=new d({end:a,cancel:a})}}}function z(a,b,c,e){var f=oa(a,N),k=oa(b,N),h=[];s(e,function(a){(a=C(c,a.out,a["in"]))&&h.push(a)});if(f||k||0!==h.length)return{start:function(){function a(){s(b,function(a){a.end()})}var b=[];f&&b.push(f.start());k&&b.push(k.start());s(h,function(a){b.push(a.start())});var c=new d({end:a,cancel:a});d.all(b,function(a){c.complete(a)});return c}}}function oa(c){var d=c.element,e=c.options||
|
||||
{};c.structural&&(e.event=c.event,e.structural=!0,e.applyClassesEarly=!0,"leave"===c.event&&(e.onDone=e.domOperation));e.preparationClasses&&(e.event=ba(e.event,e.preparationClasses));c=a(d,e);return c.$$willAnimate?c:null}if(!k.animations&&!k.transitions)return N;var H=Q[0].body;c=K(f);var u=A(c.parentNode&&11===c.parentNode.nodeType||H.contains(c)?c:H);return function(a){return a.from&&a.to?z(a.from,a.to,a.classes,a.anchors):oa(a)}}]}]).provider("$$animateJs",["$animateProvider",function(a){this.$get=
|
||||
["$injector","$$AnimateRunner","$$jqLite",function(b,c,d){function f(c){c=Z(c)?c:c.split(" ");for(var d=[],f={},k=0;k<c.length;k++){var s=c[k],z=a.$$registeredAnimations[s];z&&!f[s]&&(d.push(b.get(z)),f[s]=!0)}return d}var k=aa(d);return function(a,b,d,x){function C(){x.domOperation();k(a,x)}function z(a,b,d,f,e){switch(d){case "animate":b=[b,f.from,f.to,e];break;case "setClass":b=[b,t,I,e];break;case "addClass":b=[b,t,e];break;case "removeClass":b=[b,I,e];break;default:b=[b,e]}b.push(f);if(a=a.apply(a,
|
||||
b))if(Ea(a.start)&&(a=a.start()),a instanceof c)a.done(e);else if(Ea(a))return a;return N}function A(a,b,d,e,f){var h=[];s(e,function(e){var l=e[f];l&&h.push(function(){var e,f,h=!1,k=function(a){h||(h=!0,(f||N)(a),e.complete(!a))};e=new c({end:function(){k()},cancel:function(){k(!0)}});f=z(l,a,b,d,function(a){k(!1===a)});return e})});return h}function H(a,b,d,e,f){var h=A(a,b,d,e,f);if(0===h.length){var k,q;"beforeSetClass"===f?(k=A(a,"removeClass",d,e,"beforeRemoveClass"),q=A(a,"addClass",d,e,"beforeAddClass")):
|
||||
"setClass"===f&&(k=A(a,"removeClass",d,e,"removeClass"),q=A(a,"addClass",d,e,"addClass"));k&&(h=h.concat(k));q&&(h=h.concat(q))}if(0!==h.length)return function(a){var b=[];h.length&&s(h,function(a){b.push(a())});b.length?c.all(b,a):a();return function(a){s(b,function(b){a?b.cancel():b.end()})}}}var u=!1;3===arguments.length&&ta(d)&&(x=d,d=null);x=pa(x);d||(d=a.attr("class")||"",x.addClass&&(d+=" "+x.addClass),x.removeClass&&(d+=" "+x.removeClass));var t=x.addClass,I=x.removeClass,G=f(d),K,v;if(G.length){var M,
|
||||
h;"leave"===b?(h="leave",M="afterLeave"):(h="before"+b.charAt(0).toUpperCase()+b.substr(1),M=b);"enter"!==b&&"move"!==b&&(K=H(a,b,x,G,h));v=H(a,b,x,G,M)}if(K||v){var q;return{$$willAnimate:!0,end:function(){q?q.end():(u=!0,C(),ha(a,x),q=new c,q.complete(!0));return q},start:function(){function b(c){u=!0;C();ha(a,x);q.complete(c)}if(q)return q;q=new c;var d,f=[];K&&f.push(function(a){d=K(a)});f.length?f.push(function(a){C();a(!0)}):C();v&&f.push(function(a){d=v(a)});q.setHost({end:function(){u||((d||
|
||||
N)(void 0),b(void 0))},cancel:function(){u||((d||N)(!0),b(!0))}});c.chain(f,b);return q}}}}}]}]).provider("$$animateJsDriver",["$$animationProvider",function(a){a.drivers.push("$$animateJsDriver");this.$get=["$$animateJs","$$AnimateRunner",function(a,c){function d(c){return a(c.element,c.event,c.classes,c.options)}return function(a){if(a.from&&a.to){var b=d(a.from),e=d(a.to);if(b||e)return{start:function(){function a(){return function(){s(d,function(a){a.end()})}}var d=[];b&&d.push(b.start());e&&
|
||||
d.push(e.start());c.all(d,function(a){f.complete(a)});var f=new c({end:a(),cancel:a()});return f}}}else return d(a)}}]}])})(window,window.angular);
|
||||
//# sourceMappingURL=angular-animate.min.js.map
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -5241,7 +5241,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
|
|||
|
||||
if (tooltip) {
|
||||
tooltip.remove();
|
||||
|
||||
|
||||
tooltip = null;
|
||||
if (adjustmentTimeout) {
|
||||
$timeout.cancel(adjustmentTimeout);
|
||||
|
@ -5249,7 +5249,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
|
|||
}
|
||||
|
||||
openedTooltips.remove(ttScope);
|
||||
|
||||
|
||||
if (tooltipLinkedScope) {
|
||||
tooltipLinkedScope.$destroy();
|
||||
tooltipLinkedScope = null;
|
||||
|
@ -7773,4 +7773,4 @@ angular.module('ui.bootstrap.position').run(function() {!angular.$$csp().noInlin
|
|||
angular.module('ui.bootstrap.datepickerPopup').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibDatepickerpopupCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-datepicker-popup.dropdown-menu{display:block;float:none;margin:0;}.uib-button-bar{padding:10px 9px 2px;}</style>'); angular.$$uibDatepickerpopupCss = true; });
|
||||
angular.module('ui.bootstrap.tooltip').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTooltipCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-tooltip-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-html-popup].tooltip.right-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.top-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-left > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.bottom-right > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.left-bottom > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-top > .tooltip-arrow,[uib-tooltip-template-popup].tooltip.right-bottom > .tooltip-arrow,[uib-popover-popup].popover.top-left > .arrow,[uib-popover-popup].popover.top-right > .arrow,[uib-popover-popup].popover.bottom-left > .arrow,[uib-popover-popup].popover.bottom-right > .arrow,[uib-popover-popup].popover.left-top > .arrow,[uib-popover-popup].popover.left-bottom > .arrow,[uib-popover-popup].popover.right-top > .arrow,[uib-popover-popup].popover.right-bottom > .arrow,[uib-popover-html-popup].popover.top-left > .arrow,[uib-popover-html-popup].popover.top-right > .arrow,[uib-popover-html-popup].popover.bottom-left > .arrow,[uib-popover-html-popup].popover.bottom-right > .arrow,[uib-popover-html-popup].popover.left-top > .arrow,[uib-popover-html-popup].popover.left-bottom > .arrow,[uib-popover-html-popup].popover.right-top > .arrow,[uib-popover-html-popup].popover.right-bottom > .arrow,[uib-popover-template-popup].popover.top-left > .arrow,[uib-popover-template-popup].popover.top-right > .arrow,[uib-popover-template-popup].popover.bottom-left > .arrow,[uib-popover-template-popup].popover.bottom-right > .arrow,[uib-popover-template-popup].popover.left-top > .arrow,[uib-popover-template-popup].popover.left-bottom > .arrow,[uib-popover-template-popup].popover.right-top > .arrow,[uib-popover-template-popup].popover.right-bottom > .arrow{top:auto;bottom:auto;left:auto;right:auto;margin:0;}[uib-popover-popup].popover,[uib-popover-html-popup].popover,[uib-popover-template-popup].popover{display:block !important;}</style>'); angular.$$uibTooltipCss = true; });
|
||||
angular.module('ui.bootstrap.timepicker').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTimepickerCss && angular.element(document).find('head').prepend('<style type="text/css">.uib-time input{width:50px;}</style>'); angular.$$uibTimepickerCss = true; });
|
||||
angular.module('ui.bootstrap.typeahead').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTypeaheadCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'); angular.$$uibTypeaheadCss = true; });
|
||||
angular.module('ui.bootstrap.typeahead').run(function() {!angular.$$csp().noInlineStyle && !angular.$$uibTypeaheadCss && angular.element(document).find('head').prepend('<style type="text/css">[uib-typeahead-popup].dropdown-menu{display:block;}</style>'); angular.$$uibTypeaheadCss = true; });
|
|
@ -383,12 +383,12 @@
|
|||
if (element.prop('tagName').toLowerCase() === 'table') {
|
||||
scope.$emptyElm = angular.element($window.document.createElement('tr'));
|
||||
$trElm = element.find('tr');
|
||||
|
||||
|
||||
//If we can find a tr, then we can use its td children as the empty element colspan.
|
||||
if ($trElm.length > 0) {
|
||||
emptyElmColspan = angular.element($trElm).children().length;
|
||||
} else {
|
||||
|
||||
|
||||
//If not, by setting a huge colspan we make sure it takes full width.
|
||||
//TODO(jcarter): Check for negative side effects.
|
||||
emptyElmColspan = 1000000;
|
||||
|
@ -1512,7 +1512,7 @@
|
|||
|
||||
/**
|
||||
* Get the event object for touches.
|
||||
*
|
||||
*
|
||||
* @param {MouseEvent|TouchEvent} e MouseEvent or TouchEvent that kicked off dragX method.
|
||||
* @return {MouseEvent|TouchEvent} Object returned as original event object.
|
||||
*/
|
||||
|
@ -1530,7 +1530,7 @@
|
|||
|
||||
/**
|
||||
* Generate object used to store data about node being moved.
|
||||
*
|
||||
*
|
||||
* {angular.$scope} node Scope of the node that is being moved.
|
||||
*/
|
||||
dragInfo: function (node) {
|
||||
|
@ -1760,19 +1760,19 @@
|
|||
pos.nowX = pageX;
|
||||
pos.nowY = pageY;
|
||||
|
||||
//Distance mouse moved between events.
|
||||
//Distance mouse moved between events.
|
||||
pos.distX = pos.nowX - pos.lastX;
|
||||
pos.distY = pos.nowY - pos.lastY;
|
||||
|
||||
//Direction mouse was moving.
|
||||
//Direction mouse was moving.
|
||||
pos.lastDirX = pos.dirX;
|
||||
pos.lastDirY = pos.dirY;
|
||||
|
||||
//Direction mouse is now moving (on both axis).
|
||||
//Direction mouse is now moving (on both axis).
|
||||
pos.dirX = pos.distX === 0 ? 0 : pos.distX > 0 ? 1 : -1;
|
||||
pos.dirY = pos.distY === 0 ? 0 : pos.distY > 0 ? 1 : -1;
|
||||
|
||||
//Axis mouse is now moving on.
|
||||
//Axis mouse is now moving on.
|
||||
newAx = Math.abs(pos.distX) > Math.abs(pos.distY) ? 1 : 0;
|
||||
|
||||
//Do nothing on first move.
|
||||
|
@ -1782,7 +1782,7 @@
|
|||
return;
|
||||
}
|
||||
|
||||
//Calc distance moved on this axis (and direction).
|
||||
//Calc distance moved on this axis (and direction).
|
||||
if (pos.dirAx !== newAx) {
|
||||
pos.distAxX = 0;
|
||||
pos.distAxY = 0;
|
||||
|
@ -1853,4 +1853,4 @@
|
|||
return res;
|
||||
}
|
||||
|
||||
})();
|
||||
})();
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* jQuery JavaScript Library v3.4.0
|
||||
* jQuery JavaScript Library v3.4.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
|
@ -9,7 +9,7 @@
|
|||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2019-04-10T19:48Z
|
||||
* Date: 2019-05-01T21:04Z
|
||||
*/
|
||||
( function( global, factory ) {
|
||||
|
||||
|
@ -142,7 +142,7 @@ function toType( obj ) {
|
|||
|
||||
|
||||
var
|
||||
version = "3.4.0",
|
||||
version = "3.4.1",
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
|
@ -4498,8 +4498,12 @@ var documentElement = document.documentElement;
|
|||
},
|
||||
composed = { composed: true };
|
||||
|
||||
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
|
||||
// Check attachment across shadow DOM boundaries when possible (gh-3504)
|
||||
if ( documentElement.attachShadow ) {
|
||||
// Support: iOS 10.0-10.2 only
|
||||
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
|
||||
// leading to errors. We need to check for `getRootNode`.
|
||||
if ( documentElement.getRootNode ) {
|
||||
isAttached = function( elem ) {
|
||||
return jQuery.contains( elem.ownerDocument, elem ) ||
|
||||
elem.getRootNode( composed ) === elem.ownerDocument;
|
||||
|
@ -5359,8 +5363,7 @@ jQuery.event = {
|
|||
|
||||
// Claim the first handler
|
||||
if ( rcheckableType.test( el.type ) &&
|
||||
el.click && nodeName( el, "input" ) &&
|
||||
dataPriv.get( el, "click" ) === undefined ) {
|
||||
el.click && nodeName( el, "input" ) ) {
|
||||
|
||||
// dataPriv.set( el, "click", ... )
|
||||
leverageNative( el, "click", returnTrue );
|
||||
|
@ -5377,8 +5380,7 @@ jQuery.event = {
|
|||
|
||||
// Force setup before triggering a click
|
||||
if ( rcheckableType.test( el.type ) &&
|
||||
el.click && nodeName( el, "input" ) &&
|
||||
dataPriv.get( el, "click" ) === undefined ) {
|
||||
el.click && nodeName( el, "input" ) ) {
|
||||
|
||||
leverageNative( el, "click" );
|
||||
}
|
||||
|
@ -5419,7 +5421,9 @@ function leverageNative( el, type, expectSync ) {
|
|||
|
||||
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
|
||||
if ( !expectSync ) {
|
||||
jQuery.event.add( el, type, returnTrue );
|
||||
if ( dataPriv.get( el, type ) === undefined ) {
|
||||
jQuery.event.add( el, type, returnTrue );
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -5434,9 +5438,13 @@ function leverageNative( el, type, expectSync ) {
|
|||
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
|
||||
|
||||
// Interrupt processing of the outer synthetic .trigger()ed event
|
||||
if ( !saved ) {
|
||||
// Saved data should be false in such cases, but might be a leftover capture object
|
||||
// from an async native handler (gh-4350)
|
||||
if ( !saved.length ) {
|
||||
|
||||
// Store arguments for use when handling the inner native event
|
||||
// There will always be at least one argument (an event object), so this array
|
||||
// will not be confused with a leftover capture object.
|
||||
saved = slice.call( arguments );
|
||||
dataPriv.set( this, type, saved );
|
||||
|
||||
|
@ -5449,14 +5457,14 @@ function leverageNative( el, type, expectSync ) {
|
|||
if ( saved !== result || notAsync ) {
|
||||
dataPriv.set( this, type, false );
|
||||
} else {
|
||||
result = undefined;
|
||||
result = {};
|
||||
}
|
||||
if ( saved !== result ) {
|
||||
|
||||
// Cancel the outer synthetic event
|
||||
event.stopImmediatePropagation();
|
||||
event.preventDefault();
|
||||
return result;
|
||||
return result.value;
|
||||
}
|
||||
|
||||
// If this is an inner synthetic event for an event with a bubbling surrogate
|
||||
|
@ -5471,17 +5479,19 @@ function leverageNative( el, type, expectSync ) {
|
|||
|
||||
// If this is a native event triggered above, everything is now in order
|
||||
// Fire an inner synthetic event with the original arguments
|
||||
} else if ( saved ) {
|
||||
} else if ( saved.length ) {
|
||||
|
||||
// ...and capture the result
|
||||
dataPriv.set( this, type, jQuery.event.trigger(
|
||||
dataPriv.set( this, type, {
|
||||
value: jQuery.event.trigger(
|
||||
|
||||
// Support: IE <=9 - 11+
|
||||
// Extend with the prototype to reset the above stopImmediatePropagation()
|
||||
jQuery.extend( saved.shift(), jQuery.Event.prototype ),
|
||||
saved,
|
||||
this
|
||||
) );
|
||||
// Support: IE <=9 - 11+
|
||||
// Extend with the prototype to reset the above stopImmediatePropagation()
|
||||
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
|
||||
saved.slice( 1 ),
|
||||
this
|
||||
)
|
||||
} );
|
||||
|
||||
// Abort handling of the native event
|
||||
event.stopImmediatePropagation();
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Fingerprintjs2 2.0.5 - Modern & flexible browser fingerprint library v2
|
||||
* Fingerprintjs2 2.1.0 - Modern & flexible browser fingerprint library v2
|
||||
* https://github.com/Valve/fingerprintjs2
|
||||
* Copyright (c) 2015 Valentin Vasilyev (valentin.vasilyev@outlook.com)
|
||||
* Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) license.
|
||||
|
@ -22,12 +22,12 @@
|
|||
})('Fingerprint2', this, function () {
|
||||
'use strict'
|
||||
|
||||
/// MurmurHash3 related functions
|
||||
/// MurmurHash3 related functions
|
||||
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// added together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// added together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
var x64Add = function (m, n) {
|
||||
m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]
|
||||
n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]
|
||||
|
@ -46,10 +46,10 @@
|
|||
return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]
|
||||
}
|
||||
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// multiplied together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// multiplied together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
var x64Multiply = function (m, n) {
|
||||
m = [m[0] >>> 16, m[0] & 0xffff, m[1] >>> 16, m[1] & 0xffff]
|
||||
n = [n[0] >>> 16, n[0] & 0xffff, n[1] >>> 16, n[1] & 0xffff]
|
||||
|
@ -76,11 +76,11 @@
|
|||
o[0] &= 0xffff
|
||||
return [(o[0] << 16) | o[1], (o[2] << 16) | o[3]]
|
||||
}
|
||||
//
|
||||
// Given a 64bit int (as an array of two 32bit ints) and an int
|
||||
// representing a number of bit positions, returns the 64bit int (as an
|
||||
// array of two 32bit ints) rotated left by that number of positions.
|
||||
//
|
||||
//
|
||||
// Given a 64bit int (as an array of two 32bit ints) and an int
|
||||
// representing a number of bit positions, returns the 64bit int (as an
|
||||
// array of two 32bit ints) rotated left by that number of positions.
|
||||
//
|
||||
var x64Rotl = function (m, n) {
|
||||
n %= 64
|
||||
if (n === 32) {
|
||||
|
@ -92,11 +92,11 @@
|
|||
return [(m[1] << n) | (m[0] >>> (32 - n)), (m[0] << n) | (m[1] >>> (32 - n))]
|
||||
}
|
||||
}
|
||||
//
|
||||
// Given a 64bit int (as an array of two 32bit ints) and an int
|
||||
// representing a number of bit positions, returns the 64bit int (as an
|
||||
// array of two 32bit ints) shifted left by that number of positions.
|
||||
//
|
||||
//
|
||||
// Given a 64bit int (as an array of two 32bit ints) and an int
|
||||
// representing a number of bit positions, returns the 64bit int (as an
|
||||
// array of two 32bit ints) shifted left by that number of positions.
|
||||
//
|
||||
var x64LeftShift = function (m, n) {
|
||||
n %= 64
|
||||
if (n === 0) {
|
||||
|
@ -107,18 +107,18 @@
|
|||
return [m[1] << (n - 32), 0]
|
||||
}
|
||||
}
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// xored together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
//
|
||||
// Given two 64bit ints (as an array of two 32bit ints) returns the two
|
||||
// xored together as a 64bit int (as an array of two 32bit ints).
|
||||
//
|
||||
var x64Xor = function (m, n) {
|
||||
return [m[0] ^ n[0], m[1] ^ n[1]]
|
||||
}
|
||||
//
|
||||
// Given a block, returns murmurHash3's final x64 mix of that block.
|
||||
// (`[0, h[0] >>> 1]` is a 33 bit unsigned right shift. This is the
|
||||
// only place where we need to right shift 64bit ints.)
|
||||
//
|
||||
//
|
||||
// Given a block, returns murmurHash3's final x64 mix of that block.
|
||||
// (`[0, h[0] >>> 1]` is a 33 bit unsigned right shift. This is the
|
||||
// only place where we need to right shift 64bit ints.)
|
||||
//
|
||||
var x64Fmix = function (h) {
|
||||
h = x64Xor(h, [0, h[0] >>> 1])
|
||||
h = x64Multiply(h, [0xff51afd7, 0xed558ccd])
|
||||
|
@ -128,10 +128,10 @@
|
|||
return h
|
||||
}
|
||||
|
||||
//
|
||||
// Given a string and an optional seed as an int, returns a 128 bit
|
||||
// hash using the x64 flavor of MurmurHash3, as an unsigned hex.
|
||||
//
|
||||
//
|
||||
// Given a string and an optional seed as an int, returns a 128 bit
|
||||
// hash using the x64 flavor of MurmurHash3, as an unsigned hex.
|
||||
//
|
||||
var x64hash128 = function (key, seed) {
|
||||
key = key || ''
|
||||
seed = seed || 0
|
||||
|
@ -233,9 +233,9 @@
|
|||
preprocessor: null,
|
||||
audio: {
|
||||
timeout: 1000,
|
||||
// On iOS 11, audio context can only be used in response to user interaction.
|
||||
// We require users to explicitly enable audio fingerprinting on iOS 11.
|
||||
// See https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088
|
||||
// On iOS 11, audio context can only be used in response to user interaction.
|
||||
// We require users to explicitly enable audio fingerprinting on iOS 11.
|
||||
// See https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088
|
||||
excludeIOS11: true
|
||||
},
|
||||
fonts: {
|
||||
|
@ -245,7 +245,7 @@
|
|||
extendedJsFonts: false
|
||||
},
|
||||
screen: {
|
||||
// To ensure consistent fingerprints when users rotate their mobile devices
|
||||
// To ensure consistent fingerprints when users rotate their mobile devices
|
||||
detectScreenOrientation: true
|
||||
},
|
||||
plugins: {
|
||||
|
@ -311,7 +311,7 @@
|
|||
return target
|
||||
}
|
||||
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/enumerateDevices
|
||||
var enumerateDevicesKey = function (done, options) {
|
||||
if (!isEnumerateDevicesSupported()) {
|
||||
return done(options.NOT_AVAILABLE)
|
||||
|
@ -329,11 +329,11 @@
|
|||
var isEnumerateDevicesSupported = function () {
|
||||
return (navigator.mediaDevices && navigator.mediaDevices.enumerateDevices)
|
||||
}
|
||||
// Inspired by and based on https://github.com/cozylife/audio-fingerprint
|
||||
// Inspired by and based on https://github.com/cozylife/audio-fingerprint
|
||||
var audioKey = function (done, options) {
|
||||
var audioOptions = options.audio
|
||||
if (audioOptions.excludeIOS11 && navigator.userAgent.match(/OS 11.+Version\/11.+Safari/)) {
|
||||
// See comment for excludeUserAgent and https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088
|
||||
// See comment for excludeUserAgent and https://stackoverflow.com/questions/46363048/onaudioprocess-not-called-on-ios11#46534088
|
||||
return done(options.EXCLUDED)
|
||||
}
|
||||
|
||||
|
@ -351,12 +351,12 @@
|
|||
|
||||
var compressor = context.createDynamicsCompressor()
|
||||
each([
|
||||
['threshold', -50],
|
||||
['knee', 40],
|
||||
['ratio', 12],
|
||||
['reduction', -20],
|
||||
['attack', 0],
|
||||
['release', 0.25]
|
||||
['threshold', -50],
|
||||
['knee', 40],
|
||||
['ratio', 12],
|
||||
['reduction', -20],
|
||||
['attack', 0],
|
||||
['release', 0.25]
|
||||
], function (item) {
|
||||
if (compressor[item[0]] !== undefined && typeof compressor[item[0]].setValueAtTime === 'function') {
|
||||
compressor[item[0]].setValueAtTime(item[1], context.currentTime)
|
||||
|
@ -370,7 +370,7 @@
|
|||
|
||||
var audioTimeoutId = setTimeout(function () {
|
||||
console.warn('Audio fingerprint timed out. Please report bug at https://github.com/Valve/fingerprintjs2 with your user agent: "' + navigator.userAgent + '".')
|
||||
context.oncomplete = function () {}
|
||||
context.oncomplete = function () { }
|
||||
context = null
|
||||
return done('audioTimeout')
|
||||
}, audioOptions.timeout)
|
||||
|
@ -380,9 +380,9 @@
|
|||
try {
|
||||
clearTimeout(audioTimeoutId)
|
||||
fingerprint = event.renderedBuffer.getChannelData(0)
|
||||
.slice(4500, 5000)
|
||||
.reduce(function (acc, val) { return acc + Math.abs(val) }, 0)
|
||||
.toString()
|
||||
.slice(4500, 5000)
|
||||
.reduce(function (acc, val) { return acc + Math.abs(val) }, 0)
|
||||
.toString()
|
||||
oscillator.disconnect()
|
||||
compressor.disconnect()
|
||||
} catch (error) {
|
||||
|
@ -395,6 +395,9 @@
|
|||
var UserAgent = function (done) {
|
||||
done(navigator.userAgent)
|
||||
}
|
||||
var webdriver = function (done, options) {
|
||||
done(navigator.webdriver == null ? options.NOT_AVAILABLE : navigator.webdriver)
|
||||
}
|
||||
var languageKey = function (done, options) {
|
||||
done(navigator.language || navigator.userLanguage || navigator.browserLanguage || navigator.systemLanguage || options.NOT_AVAILABLE)
|
||||
}
|
||||
|
@ -451,7 +454,7 @@
|
|||
done(hasIndexedDB(options))
|
||||
}
|
||||
var addBehaviorKey = function (done) {
|
||||
// body might not be defined at this point or removed programmatically
|
||||
// body might not be defined at this point or removed programmatically
|
||||
done(!!(document.body && document.body.addBehavior))
|
||||
}
|
||||
var openDatabaseKey = function (done) {
|
||||
|
@ -502,7 +505,7 @@
|
|||
var hasLiedBrowserKey = function (done) {
|
||||
done(getHasLiedBrowser())
|
||||
}
|
||||
// flash fonts (will increase fingerprinting time 20X to ~ 130-150ms)
|
||||
// flash fonts (will increase fingerprinting time 20X to ~ 130-150ms)
|
||||
var flashFontsKey = function (done, options) {
|
||||
// we do flash if swfobject is loaded
|
||||
if (!hasSwfObjectLoaded()) {
|
||||
|
@ -518,10 +521,10 @@
|
|||
done(fonts)
|
||||
}, options)
|
||||
}
|
||||
// kudos to http://www.lalit.org/lab/javascript-css-font-detect/
|
||||
// kudos to http://www.lalit.org/lab/javascript-css-font-detect/
|
||||
var jsFontsKey = function (done, options) {
|
||||
// a font will be compared against all the three default fonts.
|
||||
// and if it doesn't match all 3 then that font is not available.
|
||||
// a font will be compared against all the three default fonts.
|
||||
// and if it doesn't match all 3 then that font is not available.
|
||||
var baseFonts = ['monospace', 'sans-serif', 'serif']
|
||||
|
||||
var fontList = [
|
||||
|
@ -577,42 +580,42 @@
|
|||
|
||||
fontList = fontList.concat(options.fonts.userDefinedFonts)
|
||||
|
||||
// remove duplicate fonts
|
||||
// remove duplicate fonts
|
||||
fontList = fontList.filter(function (font, position) {
|
||||
return fontList.indexOf(font) === position
|
||||
})
|
||||
|
||||
// we use m or w because these two characters take up the maximum width.
|
||||
// And we use a LLi so that the same matching fonts can get separated
|
||||
// we use m or w because these two characters take up the maximum width.
|
||||
// And we use a LLi so that the same matching fonts can get separated
|
||||
var testString = 'mmmmmmmmmmlli'
|
||||
|
||||
// we test using 72px font size, we may use any size. I guess larger the better.
|
||||
// we test using 72px font size, we may use any size. I guess larger the better.
|
||||
var testSize = '72px'
|
||||
|
||||
var h = document.getElementsByTagName('body')[0]
|
||||
|
||||
// div to load spans for the base fonts
|
||||
// div to load spans for the base fonts
|
||||
var baseFontsDiv = document.createElement('div')
|
||||
|
||||
// div to load spans for the fonts to detect
|
||||
// div to load spans for the fonts to detect
|
||||
var fontsDiv = document.createElement('div')
|
||||
|
||||
var defaultWidth = {}
|
||||
var defaultHeight = {}
|
||||
|
||||
// creates a span where the fonts will be loaded
|
||||
// creates a span where the fonts will be loaded
|
||||
var createSpan = function () {
|
||||
var s = document.createElement('span')
|
||||
/*
|
||||
* We need this css as in some weird browser this
|
||||
* span elements shows up for a microSec which creates a
|
||||
* bad user experience
|
||||
*/
|
||||
/*
|
||||
* We need this css as in some weird browser this
|
||||
* span elements shows up for a microSec which creates a
|
||||
* bad user experience
|
||||
*/
|
||||
s.style.position = 'absolute'
|
||||
s.style.left = '-9999px'
|
||||
s.style.fontSize = testSize
|
||||
|
||||
// css font reset to reset external styles
|
||||
// css font reset to reset external styles
|
||||
s.style.fontStyle = 'normal'
|
||||
s.style.fontWeight = 'normal'
|
||||
s.style.letterSpacing = 'normal'
|
||||
|
@ -630,14 +633,14 @@
|
|||
return s
|
||||
}
|
||||
|
||||
// creates a span and load the font to detect and a base font for fallback
|
||||
// creates a span and load the font to detect and a base font for fallback
|
||||
var createSpanWithFonts = function (fontToDetect, baseFont) {
|
||||
var s = createSpan()
|
||||
s.style.fontFamily = "'" + fontToDetect + "'," + baseFont
|
||||
return s
|
||||
}
|
||||
|
||||
// creates spans for the base fonts and adds them to baseFontsDiv
|
||||
// creates spans for the base fonts and adds them to baseFontsDiv
|
||||
var initializeBaseFontsSpans = function () {
|
||||
var spans = []
|
||||
for (var index = 0, length = baseFonts.length; index < length; index++) {
|
||||
|
@ -649,7 +652,7 @@
|
|||
return spans
|
||||
}
|
||||
|
||||
// creates spans for the fonts to detect and adds them to fontsDiv
|
||||
// creates spans for the fonts to detect and adds them to fontsDiv
|
||||
var initializeFontsSpans = function () {
|
||||
var spans = {}
|
||||
for (var i = 0, l = fontList.length; i < l; i++) {
|
||||
|
@ -664,7 +667,7 @@
|
|||
return spans
|
||||
}
|
||||
|
||||
// checks if a font is available
|
||||
// checks if a font is available
|
||||
var isFontAvailable = function (fontSpans) {
|
||||
var detected = false
|
||||
for (var i = 0; i < baseFonts.length; i++) {
|
||||
|
@ -676,25 +679,25 @@
|
|||
return detected
|
||||
}
|
||||
|
||||
// create spans for base fonts
|
||||
// create spans for base fonts
|
||||
var baseFontsSpans = initializeBaseFontsSpans()
|
||||
|
||||
// add the spans to the DOM
|
||||
// add the spans to the DOM
|
||||
h.appendChild(baseFontsDiv)
|
||||
|
||||
// get the default width for the three base fonts
|
||||
// get the default width for the three base fonts
|
||||
for (var index = 0, length = baseFonts.length; index < length; index++) {
|
||||
defaultWidth[baseFonts[index]] = baseFontsSpans[index].offsetWidth // width for the default font
|
||||
defaultHeight[baseFonts[index]] = baseFontsSpans[index].offsetHeight // height for the default font
|
||||
}
|
||||
|
||||
// create spans for fonts to detect
|
||||
// create spans for fonts to detect
|
||||
var fontsSpans = initializeFontsSpans()
|
||||
|
||||
// add all the spans to the DOM
|
||||
// add all the spans to the DOM
|
||||
h.appendChild(fontsDiv)
|
||||
|
||||
// check available fonts
|
||||
// check available fonts
|
||||
var available = []
|
||||
for (var i = 0, l = fontList.length; i < l; i++) {
|
||||
if (isFontAvailable(fontsSpans[fontList[i]])) {
|
||||
|
@ -702,7 +705,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
// remove spans from DOM
|
||||
// remove spans from DOM
|
||||
h.removeChild(fontsDiv)
|
||||
h.removeChild(baseFontsDiv)
|
||||
done(available)
|
||||
|
@ -724,13 +727,13 @@
|
|||
}
|
||||
|
||||
var plugins = []
|
||||
// plugins isn't defined in Node envs.
|
||||
// plugins isn't defined in Node envs.
|
||||
for (var i = 0, l = navigator.plugins.length; i < l; i++) {
|
||||
if (navigator.plugins[i]) { plugins.push(navigator.plugins[i]) }
|
||||
}
|
||||
|
||||
// sorting plugins only for those user agents, that we know randomize the plugins
|
||||
// every time we try to enumerate them
|
||||
// sorting plugins only for those user agents, that we know randomize the plugins
|
||||
// every time we try to enumerate them
|
||||
if (pluginsShouldBeSorted(options)) {
|
||||
plugins = plugins.sort(function (a, b) {
|
||||
if (a.name > b.name) { return 1 }
|
||||
|
@ -772,10 +775,10 @@
|
|||
'rmocx.RealPlayer G2 Control',
|
||||
'rmocx.RealPlayer G2 Control.1'
|
||||
]
|
||||
// starting to detect plugins in IE
|
||||
// starting to detect plugins in IE
|
||||
result = map(names, function (name) {
|
||||
try {
|
||||
// eslint-disable-next-line no-new
|
||||
// eslint-disable-next-line no-new
|
||||
new window.ActiveXObject(name)
|
||||
return name
|
||||
} catch (e) {
|
||||
|
@ -815,7 +818,7 @@
|
|||
}
|
||||
}
|
||||
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=781447
|
||||
// https://bugzilla.mozilla.org/show_bug.cgi?id=781447
|
||||
var hasLocalStorage = function (options) {
|
||||
try {
|
||||
return !!window.localStorage
|
||||
|
@ -857,14 +860,14 @@
|
|||
return options.NOT_AVAILABLE
|
||||
}
|
||||
}
|
||||
// This is a crude and primitive touch screen detection.
|
||||
// It's not possible to currently reliably detect the availability of a touch screen
|
||||
// with a JS, without actually subscribing to a touch event.
|
||||
// http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
|
||||
// https://github.com/Modernizr/Modernizr/issues/548
|
||||
// method returns an array of 3 values:
|
||||
// maxTouchPoints, the success or failure of creating a TouchEvent,
|
||||
// and the availability of the 'ontouchstart' property
|
||||
// This is a crude and primitive touch screen detection.
|
||||
// It's not possible to currently reliably detect the availability of a touch screen
|
||||
// with a JS, without actually subscribing to a touch event.
|
||||
// http://www.stucox.com/blog/you-cant-detect-a-touchscreen/
|
||||
// https://github.com/Modernizr/Modernizr/issues/548
|
||||
// method returns an array of 3 values:
|
||||
// maxTouchPoints, the success or failure of creating a TouchEvent,
|
||||
// and the availability of the 'ontouchstart' property
|
||||
|
||||
var getTouchSupport = function () {
|
||||
var maxTouchPoints = 0
|
||||
|
@ -883,19 +886,19 @@
|
|||
var touchStart = 'ontouchstart' in window
|
||||
return [maxTouchPoints, touchEvent, touchStart]
|
||||
}
|
||||
// https://www.browserleaks.com/canvas#how-does-it-work
|
||||
// https://www.browserleaks.com/canvas#how-does-it-work
|
||||
|
||||
var getCanvasFp = function (options) {
|
||||
var result = []
|
||||
// Very simple now, need to make it more complex (geo shapes etc)
|
||||
// Very simple now, need to make it more complex (geo shapes etc)
|
||||
var canvas = document.createElement('canvas')
|
||||
canvas.width = 2000
|
||||
canvas.height = 200
|
||||
canvas.style.display = 'inline'
|
||||
var ctx = canvas.getContext('2d')
|
||||
// detect browser support of canvas winding
|
||||
// http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/
|
||||
// https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js
|
||||
// detect browser support of canvas winding
|
||||
// http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/
|
||||
// https://github.com/Modernizr/Modernizr/blob/master/feature-detects/canvas/winding.js
|
||||
ctx.rect(0, 0, 10, 10)
|
||||
ctx.rect(2, 2, 6, 6)
|
||||
result.push('canvas winding:' + ((ctx.isPointInPath(5, 5, 'evenodd') === false) ? 'yes' : 'no'))
|
||||
|
@ -904,7 +907,7 @@
|
|||
ctx.fillStyle = '#f60'
|
||||
ctx.fillRect(125, 1, 62, 20)
|
||||
ctx.fillStyle = '#069'
|
||||
// https://github.com/Valve/fingerprintjs2/issues/66
|
||||
// https://github.com/Valve/fingerprintjs2/issues/66
|
||||
if (options.dontUseFakeFontInCanvas) {
|
||||
ctx.font = '11pt Arial'
|
||||
} else {
|
||||
|
@ -915,9 +918,9 @@
|
|||
ctx.font = '18pt Arial'
|
||||
ctx.fillText('Cwm fjordbank glyphs vext quiz, \ud83d\ude03', 4, 45)
|
||||
|
||||
// canvas blending
|
||||
// http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/
|
||||
// http://jsfiddle.net/NDYV8/16/
|
||||
// canvas blending
|
||||
// http://blogs.adobe.com/webplatform/2013/01/28/blending-features-in-canvas/
|
||||
// http://jsfiddle.net/NDYV8/16/
|
||||
ctx.globalCompositeOperation = 'multiply'
|
||||
ctx.fillStyle = 'rgb(255,0,255)'
|
||||
ctx.beginPath()
|
||||
|
@ -935,9 +938,9 @@
|
|||
ctx.closePath()
|
||||
ctx.fill()
|
||||
ctx.fillStyle = 'rgb(255,0,255)'
|
||||
// canvas winding
|
||||
// http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/
|
||||
// http://jsfiddle.net/NDYV8/19/
|
||||
// canvas winding
|
||||
// http://blogs.adobe.com/webplatform/2013/01/30/winding-rules-in-canvas/
|
||||
// http://jsfiddle.net/NDYV8/19/
|
||||
ctx.arc(75, 75, 75, 0, Math.PI * 2, true)
|
||||
ctx.arc(75, 75, 25, 0, Math.PI * 2, true)
|
||||
ctx.fill('evenodd')
|
||||
|
@ -969,10 +972,10 @@
|
|||
|
||||
gl = getWebglCanvas()
|
||||
if (!gl) { return null }
|
||||
// WebGL fingerprinting is a combination of techniques, found in MaxMind antifraud script & Augur fingerprinting.
|
||||
// First it draws a gradient object with shaders and convers the image to the Base64 string.
|
||||
// Then it enumerates all WebGL extensions & capabilities and appends them to the Base64 string, resulting in a huge WebGL string, potentially very unique on each device
|
||||
// Since iOS supports webgl starting from version 8.1 and 8.1 runs on several graphics chips, the results may be different across ios devices, but we need to verify it.
|
||||
// WebGL fingerprinting is a combination of techniques, found in MaxMind antifraud script & Augur fingerprinting.
|
||||
// First it draws a gradient object with shaders and convers the image to the Base64 string.
|
||||
// Then it enumerates all WebGL extensions & capabilities and appends them to the Base64 string, resulting in a huge WebGL string, potentially very unique on each device
|
||||
// Since iOS supports webgl starting from version 8.1 and 8.1 runs on several graphics chips, the results may be different across ios devices, but we need to verify it.
|
||||
var result = []
|
||||
var vShaderTemplate = 'attribute vec2 attrVertex;varying vec2 varyinTexCoordinate;uniform vec2 uniformOffset;void main(){varyinTexCoordinate=attrVertex+uniformOffset;gl_Position=vec4(attrVertex,0,1);}'
|
||||
var fShaderTemplate = 'precision mediump float;varying vec2 varyinTexCoordinate;void main() {gl_FragColor=vec4(varyinTexCoordinate,0,1);}'
|
||||
|
@ -1002,7 +1005,7 @@
|
|||
try {
|
||||
result.push(gl.canvas.toDataURL())
|
||||
} catch (e) {
|
||||
/* .toDataURL may be absent or broken (blocked by extension) */
|
||||
/* .toDataURL may be absent or broken (blocked by extension) */
|
||||
}
|
||||
result.push('extensions:' + (gl.getSupportedExtensions() || []).join(';'))
|
||||
result.push('webgl aliased line width range:' + fa2s(gl.getParameter(gl.ALIASED_LINE_WIDTH_RANGE)))
|
||||
|
@ -1032,7 +1035,7 @@
|
|||
result.push('webgl version:' + gl.getParameter(gl.VERSION))
|
||||
|
||||
try {
|
||||
// Add the unmasked vendor and unmasked renderer if the debug_renderer_info extension is available
|
||||
// Add the unmasked vendor and unmasked renderer if the debug_renderer_info extension is available
|
||||
var extensionDebugRendererInfo = gl.getExtension('WEBGL_debug_renderer_info')
|
||||
if (extensionDebugRendererInfo) {
|
||||
result.push('webgl unmasked vendor:' + gl.getParameter(extensionDebugRendererInfo.UNMASKED_VENDOR_WEBGL))
|
||||
|
@ -1061,7 +1064,7 @@
|
|||
return result
|
||||
}
|
||||
var getWebglVendorAndRenderer = function () {
|
||||
/* This a subset of the WebGL fingerprint with a lot of entropy, while being reasonably browser-independent */
|
||||
/* This a subset of the WebGL fingerprint with a lot of entropy, while being reasonably browser-independent */
|
||||
try {
|
||||
var glContext = getWebglCanvas()
|
||||
var extensionDebugRendererInfo = glContext.getExtension('WEBGL_debug_renderer_info')
|
||||
|
@ -1076,7 +1079,7 @@
|
|||
ads.className = 'adsbox'
|
||||
var result = false
|
||||
try {
|
||||
// body may not exist, that's why we need try/catch
|
||||
// body may not exist, that's why we need try/catch
|
||||
document.body.appendChild(ads)
|
||||
result = document.getElementsByClassName('adsbox')[0].offsetHeight === 0
|
||||
document.body.removeChild(ads)
|
||||
|
@ -1086,7 +1089,8 @@
|
|||
return result
|
||||
}
|
||||
var getHasLiedLanguages = function () {
|
||||
// We check if navigator.language is equal to the first language of navigator.languages
|
||||
// We check if navigator.language is equal to the first language of navigator.languages
|
||||
// navigator.languages is undefined on IE11 (and potentially older IEs)
|
||||
if (typeof navigator.languages !== 'undefined') {
|
||||
try {
|
||||
var firstLanguages = navigator.languages[0].substr(0, 2)
|
||||
|
@ -1107,14 +1111,14 @@
|
|||
var oscpu = navigator.oscpu
|
||||
var platform = navigator.platform.toLowerCase()
|
||||
var os
|
||||
// We extract the OS from the user agent (respect the order of the if else if statement)
|
||||
// We extract the OS from the user agent (respect the order of the if else if statement)
|
||||
if (userAgent.indexOf('windows phone') >= 0) {
|
||||
os = 'Windows Phone'
|
||||
} else if (userAgent.indexOf('win') >= 0) {
|
||||
os = 'Windows'
|
||||
} else if (userAgent.indexOf('android') >= 0) {
|
||||
os = 'Android'
|
||||
} else if (userAgent.indexOf('linux') >= 0) {
|
||||
} else if (userAgent.indexOf('linux') >= 0 || userAgent.indexOf('cros') >= 0) {
|
||||
os = 'Linux'
|
||||
} else if (userAgent.indexOf('iphone') >= 0 || userAgent.indexOf('ipad') >= 0) {
|
||||
os = 'iOS'
|
||||
|
@ -1123,16 +1127,16 @@
|
|||
} else {
|
||||
os = 'Other'
|
||||
}
|
||||
// We detect if the person uses a mobile device
|
||||
// We detect if the person uses a mobile device
|
||||
var mobileDevice = (('ontouchstart' in window) ||
|
||||
(navigator.maxTouchPoints > 0) ||
|
||||
(navigator.msMaxTouchPoints > 0))
|
||||
(navigator.maxTouchPoints > 0) ||
|
||||
(navigator.msMaxTouchPoints > 0))
|
||||
|
||||
if (mobileDevice && os !== 'Windows Phone' && os !== 'Android' && os !== 'iOS' && os !== 'Other') {
|
||||
return true
|
||||
}
|
||||
|
||||
// We compare oscpu with the OS extracted from the UA
|
||||
// We compare oscpu with the OS extracted from the UA
|
||||
if (typeof oscpu !== 'undefined') {
|
||||
oscpu = oscpu.toLowerCase()
|
||||
if (oscpu.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {
|
||||
|
@ -1146,15 +1150,22 @@
|
|||
}
|
||||
}
|
||||
|
||||
// We compare platform with the OS extracted from the UA
|
||||
// We compare platform with the OS extracted from the UA
|
||||
if (platform.indexOf('win') >= 0 && os !== 'Windows' && os !== 'Windows Phone') {
|
||||
return true
|
||||
} else if ((platform.indexOf('linux') >= 0 || platform.indexOf('android') >= 0 || platform.indexOf('pike') >= 0) && os !== 'Linux' && os !== 'Android') {
|
||||
return true
|
||||
} else if ((platform.indexOf('mac') >= 0 || platform.indexOf('ipad') >= 0 || platform.indexOf('ipod') >= 0 || platform.indexOf('iphone') >= 0) && os !== 'Mac' && os !== 'iOS') {
|
||||
return true
|
||||
} else if ((platform.indexOf('win') === -1 && platform.indexOf('linux') === -1 && platform.indexOf('mac') === -1) !== (os === 'Other')) {
|
||||
return true
|
||||
} else {
|
||||
var platformIsOther = platform.indexOf('win') < 0 &&
|
||||
platform.indexOf('linux') < 0 &&
|
||||
platform.indexOf('mac') < 0 &&
|
||||
platform.indexOf('iphone') < 0 &&
|
||||
platform.indexOf('ipad') < 0
|
||||
if (platformIsOther !== (os === 'Other')) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return typeof navigator.plugins === 'undefined' && os !== 'Windows' && os !== 'Windows Phone'
|
||||
|
@ -1163,7 +1174,7 @@
|
|||
var userAgent = navigator.userAgent.toLowerCase()
|
||||
var productSub = navigator.productSub
|
||||
|
||||
// we extract the browser from the user agent (respect the order of the tests)
|
||||
// we extract the browser from the user agent (respect the order of the tests)
|
||||
var browser
|
||||
if (userAgent.indexOf('firefox') >= 0) {
|
||||
browser = 'Firefox'
|
||||
|
@ -1183,7 +1194,7 @@
|
|||
return true
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-eval
|
||||
// eslint-disable-next-line no-eval
|
||||
var tempRes = eval.toString().length
|
||||
if (tempRes === 37 && browser !== 'Safari' && browser !== 'Firefox' && browser !== 'Other') {
|
||||
return true
|
||||
|
@ -1193,10 +1204,10 @@
|
|||
return true
|
||||
}
|
||||
|
||||
// We create an error to see how it is handled
|
||||
// We create an error to see how it is handled
|
||||
var errFirefox
|
||||
try {
|
||||
// eslint-disable-next-line no-throw-literal
|
||||
// eslint-disable-next-line no-throw-literal
|
||||
throw 'a'
|
||||
} catch (err) {
|
||||
try {
|
||||
|
@ -1213,7 +1224,7 @@
|
|||
return !!(elem.getContext && elem.getContext('2d'))
|
||||
}
|
||||
var isWebGlSupported = function () {
|
||||
// code taken from Modernizr
|
||||
// code taken from Modernizr
|
||||
if (!isCanvasSupported()) {
|
||||
return false
|
||||
}
|
||||
|
@ -1262,38 +1273,39 @@
|
|||
}
|
||||
|
||||
var components = [
|
||||
{key: 'userAgent', getData: UserAgent},
|
||||
{key: 'language', getData: languageKey},
|
||||
{key: 'colorDepth', getData: colorDepthKey},
|
||||
{key: 'deviceMemory', getData: deviceMemoryKey},
|
||||
{key: 'pixelRatio', getData: pixelRatioKey},
|
||||
{key: 'hardwareConcurrency', getData: hardwareConcurrencyKey},
|
||||
{key: 'screenResolution', getData: screenResolutionKey},
|
||||
{key: 'availableScreenResolution', getData: availableScreenResolutionKey},
|
||||
{key: 'timezoneOffset', getData: timezoneOffset},
|
||||
{key: 'timezone', getData: timezone},
|
||||
{key: 'sessionStorage', getData: sessionStorageKey},
|
||||
{key: 'localStorage', getData: localStorageKey},
|
||||
{key: 'indexedDb', getData: indexedDbKey},
|
||||
{key: 'addBehavior', getData: addBehaviorKey},
|
||||
{key: 'openDatabase', getData: openDatabaseKey},
|
||||
{key: 'cpuClass', getData: cpuClassKey},
|
||||
{key: 'platform', getData: platformKey},
|
||||
{key: 'doNotTrack', getData: doNotTrackKey},
|
||||
{key: 'plugins', getData: pluginsComponent},
|
||||
{key: 'canvas', getData: canvasKey},
|
||||
{key: 'webgl', getData: webglKey},
|
||||
{key: 'webglVendorAndRenderer', getData: webglVendorAndRendererKey},
|
||||
{key: 'adBlock', getData: adBlockKey},
|
||||
{key: 'hasLiedLanguages', getData: hasLiedLanguagesKey},
|
||||
{key: 'hasLiedResolution', getData: hasLiedResolutionKey},
|
||||
{key: 'hasLiedOs', getData: hasLiedOsKey},
|
||||
{key: 'hasLiedBrowser', getData: hasLiedBrowserKey},
|
||||
{key: 'touchSupport', getData: touchSupportKey},
|
||||
{key: 'fonts', getData: jsFontsKey, pauseBefore: true},
|
||||
{key: 'fontsFlash', getData: flashFontsKey, pauseBefore: true},
|
||||
{key: 'audio', getData: audioKey},
|
||||
{key: 'enumerateDevices', getData: enumerateDevicesKey}
|
||||
{ key: 'userAgent', getData: UserAgent },
|
||||
{ key: 'webdriver', getData: webdriver },
|
||||
{ key: 'language', getData: languageKey },
|
||||
{ key: 'colorDepth', getData: colorDepthKey },
|
||||
{ key: 'deviceMemory', getData: deviceMemoryKey },
|
||||
{ key: 'pixelRatio', getData: pixelRatioKey },
|
||||
{ key: 'hardwareConcurrency', getData: hardwareConcurrencyKey },
|
||||
{ key: 'screenResolution', getData: screenResolutionKey },
|
||||
{ key: 'availableScreenResolution', getData: availableScreenResolutionKey },
|
||||
{ key: 'timezoneOffset', getData: timezoneOffset },
|
||||
{ key: 'timezone', getData: timezone },
|
||||
{ key: 'sessionStorage', getData: sessionStorageKey },
|
||||
{ key: 'localStorage', getData: localStorageKey },
|
||||
{ key: 'indexedDb', getData: indexedDbKey },
|
||||
{ key: 'addBehavior', getData: addBehaviorKey },
|
||||
{ key: 'openDatabase', getData: openDatabaseKey },
|
||||
{ key: 'cpuClass', getData: cpuClassKey },
|
||||
{ key: 'platform', getData: platformKey },
|
||||
{ key: 'doNotTrack', getData: doNotTrackKey },
|
||||
{ key: 'plugins', getData: pluginsComponent },
|
||||
{ key: 'canvas', getData: canvasKey },
|
||||
{ key: 'webgl', getData: webglKey },
|
||||
{ key: 'webglVendorAndRenderer', getData: webglVendorAndRendererKey },
|
||||
{ key: 'adBlock', getData: adBlockKey },
|
||||
{ key: 'hasLiedLanguages', getData: hasLiedLanguagesKey },
|
||||
{ key: 'hasLiedResolution', getData: hasLiedResolutionKey },
|
||||
{ key: 'hasLiedOs', getData: hasLiedOsKey },
|
||||
{ key: 'hasLiedBrowser', getData: hasLiedBrowserKey },
|
||||
{ key: 'touchSupport', getData: touchSupportKey },
|
||||
{ key: 'fonts', getData: jsFontsKey, pauseBefore: true },
|
||||
{ key: 'fontsFlash', getData: flashFontsKey, pauseBefore: true },
|
||||
{ key: 'audio', getData: audioKey },
|
||||
{ key: 'enumerateDevices', getData: enumerateDevicesKey }
|
||||
]
|
||||
|
||||
var Fingerprint2 = function (options) {
|
||||
|
@ -1316,7 +1328,7 @@
|
|||
if (typeof options.preprocessor === 'function') {
|
||||
value = options.preprocessor(key, value)
|
||||
}
|
||||
keys.data.push({key: key, value: value})
|
||||
keys.data.push({ key: key, value: value })
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1373,30 +1385,32 @@
|
|||
for (var i = 0; i < components.length; i++) {
|
||||
var component = components[i]
|
||||
if (component.value === (options.NOT_AVAILABLE || 'not available')) {
|
||||
newComponents.push({key: component.key, value: 'unknown'})
|
||||
newComponents.push({ key: component.key, value: 'unknown' })
|
||||
} else if (component.key === 'plugins') {
|
||||
newComponents.push({key: 'plugins',
|
||||
newComponents.push({
|
||||
key: 'plugins',
|
||||
value: map(component.value, function (p) {
|
||||
var mimeTypes = map(p[2], function (mt) {
|
||||
if (mt.join) { return mt.join('~') }
|
||||
return mt
|
||||
}).join(',')
|
||||
return [p[0], p[1], mimeTypes].join('::')
|
||||
})})
|
||||
})
|
||||
})
|
||||
} else if (['canvas', 'webgl'].indexOf(component.key) !== -1) {
|
||||
newComponents.push({key: component.key, value: component.value.join('~')})
|
||||
newComponents.push({ key: component.key, value: component.value.join('~') })
|
||||
} else if (['sessionStorage', 'localStorage', 'indexedDb', 'addBehavior', 'openDatabase'].indexOf(component.key) !== -1) {
|
||||
if (component.value) {
|
||||
newComponents.push({key: component.key, value: 1})
|
||||
newComponents.push({ key: component.key, value: 1 })
|
||||
} else {
|
||||
// skip
|
||||
continue
|
||||
}
|
||||
} else {
|
||||
if (component.value) {
|
||||
newComponents.push(component.value.join ? {key: component.key, value: component.value.join(';')} : component)
|
||||
newComponents.push(component.value.join ? { key: component.key, value: component.value.join(';') } : component)
|
||||
} else {
|
||||
newComponents.push({key: component.key, value: component.value})
|
||||
newComponents.push({ key: component.key, value: component.value })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1406,6 +1420,6 @@
|
|||
}
|
||||
|
||||
Fingerprint2.x64hash128 = x64hash128
|
||||
Fingerprint2.VERSION = '2.0.0'
|
||||
Fingerprint2.VERSION = '2.1.0'
|
||||
return Fingerprint2
|
||||
})
|
||||
|
|
File diff suppressed because one or more lines are too long
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* jQuery JavaScript Library v3.4.0
|
||||
* jQuery JavaScript Library v3.4.1
|
||||
* https://jquery.com/
|
||||
*
|
||||
* Includes Sizzle.js
|
||||
|
@ -9,7 +9,7 @@
|
|||
* Released under the MIT license
|
||||
* https://jquery.org/license
|
||||
*
|
||||
* Date: 2019-04-10T19:48Z
|
||||
* Date: 2019-05-01T21:04Z
|
||||
*/
|
||||
( function( global, factory ) {
|
||||
|
||||
|
@ -142,7 +142,7 @@ function toType( obj ) {
|
|||
|
||||
|
||||
var
|
||||
version = "3.4.0",
|
||||
version = "3.4.1",
|
||||
|
||||
// Define a local copy of jQuery
|
||||
jQuery = function( selector, context ) {
|
||||
|
@ -4498,8 +4498,12 @@ var documentElement = document.documentElement;
|
|||
},
|
||||
composed = { composed: true };
|
||||
|
||||
// Support: IE 9 - 11+, Edge 12 - 18+, iOS 10.0 - 10.2 only
|
||||
// Check attachment across shadow DOM boundaries when possible (gh-3504)
|
||||
if ( documentElement.attachShadow ) {
|
||||
// Support: iOS 10.0-10.2 only
|
||||
// Early iOS 10 versions support `attachShadow` but not `getRootNode`,
|
||||
// leading to errors. We need to check for `getRootNode`.
|
||||
if ( documentElement.getRootNode ) {
|
||||
isAttached = function( elem ) {
|
||||
return jQuery.contains( elem.ownerDocument, elem ) ||
|
||||
elem.getRootNode( composed ) === elem.ownerDocument;
|
||||
|
@ -5359,8 +5363,7 @@ jQuery.event = {
|
|||
|
||||
// Claim the first handler
|
||||
if ( rcheckableType.test( el.type ) &&
|
||||
el.click && nodeName( el, "input" ) &&
|
||||
dataPriv.get( el, "click" ) === undefined ) {
|
||||
el.click && nodeName( el, "input" ) ) {
|
||||
|
||||
// dataPriv.set( el, "click", ... )
|
||||
leverageNative( el, "click", returnTrue );
|
||||
|
@ -5377,8 +5380,7 @@ jQuery.event = {
|
|||
|
||||
// Force setup before triggering a click
|
||||
if ( rcheckableType.test( el.type ) &&
|
||||
el.click && nodeName( el, "input" ) &&
|
||||
dataPriv.get( el, "click" ) === undefined ) {
|
||||
el.click && nodeName( el, "input" ) ) {
|
||||
|
||||
leverageNative( el, "click" );
|
||||
}
|
||||
|
@ -5419,7 +5421,9 @@ function leverageNative( el, type, expectSync ) {
|
|||
|
||||
// Missing expectSync indicates a trigger call, which must force setup through jQuery.event.add
|
||||
if ( !expectSync ) {
|
||||
jQuery.event.add( el, type, returnTrue );
|
||||
if ( dataPriv.get( el, type ) === undefined ) {
|
||||
jQuery.event.add( el, type, returnTrue );
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -5434,9 +5438,13 @@ function leverageNative( el, type, expectSync ) {
|
|||
if ( ( event.isTrigger & 1 ) && this[ type ] ) {
|
||||
|
||||
// Interrupt processing of the outer synthetic .trigger()ed event
|
||||
if ( !saved ) {
|
||||
// Saved data should be false in such cases, but might be a leftover capture object
|
||||
// from an async native handler (gh-4350)
|
||||
if ( !saved.length ) {
|
||||
|
||||
// Store arguments for use when handling the inner native event
|
||||
// There will always be at least one argument (an event object), so this array
|
||||
// will not be confused with a leftover capture object.
|
||||
saved = slice.call( arguments );
|
||||
dataPriv.set( this, type, saved );
|
||||
|
||||
|
@ -5449,14 +5457,14 @@ function leverageNative( el, type, expectSync ) {
|
|||
if ( saved !== result || notAsync ) {
|
||||
dataPriv.set( this, type, false );
|
||||
} else {
|
||||
result = undefined;
|
||||
result = {};
|
||||
}
|
||||
if ( saved !== result ) {
|
||||
|
||||
// Cancel the outer synthetic event
|
||||
event.stopImmediatePropagation();
|
||||
event.preventDefault();
|
||||
return result;
|
||||
return result.value;
|
||||
}
|
||||
|
||||
// If this is an inner synthetic event for an event with a bubbling surrogate
|
||||
|
@ -5471,17 +5479,19 @@ function leverageNative( el, type, expectSync ) {
|
|||
|
||||
// If this is a native event triggered above, everything is now in order
|
||||
// Fire an inner synthetic event with the original arguments
|
||||
} else if ( saved ) {
|
||||
} else if ( saved.length ) {
|
||||
|
||||
// ...and capture the result
|
||||
dataPriv.set( this, type, jQuery.event.trigger(
|
||||
dataPriv.set( this, type, {
|
||||
value: jQuery.event.trigger(
|
||||
|
||||
// Support: IE <=9 - 11+
|
||||
// Extend with the prototype to reset the above stopImmediatePropagation()
|
||||
jQuery.extend( saved.shift(), jQuery.Event.prototype ),
|
||||
saved,
|
||||
this
|
||||
) );
|
||||
// Support: IE <=9 - 11+
|
||||
// Extend with the prototype to reset the above stopImmediatePropagation()
|
||||
jQuery.extend( saved[ 0 ], jQuery.Event.prototype ),
|
||||
saved.slice( 1 ),
|
||||
this
|
||||
)
|
||||
} );
|
||||
|
||||
// Abort handling of the native event
|
||||
event.stopImmediatePropagation();
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Loading…
Reference in New Issue