@angular/animations
Advanced tools
Comparing version 4.3.0-beta.1 to 4.3.0-rc.0
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -89,13 +89,14 @@ * License: MIT | ||
* `trigger` is an animation-specific function that is designed to be used inside of Angular's | ||
* animation DSL language. If this information is new, please navigate to the {\@link | ||
* Component#animations component animations metadata page} to gain a better understanding of | ||
* how animations in Angular are used. | ||
* animation DSL language. If this information is new, please navigate to the | ||
* {\@link Component#animations component animations metadata page} to gain a better | ||
* understanding of how animations in Angular are used. | ||
* | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link | ||
* transition transition} entries that will be evaluated when the expression bound to the trigger | ||
* changes. | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and | ||
* {\@link transition transition} entries that will be evaluated when the expression | ||
* bound to the trigger changes. | ||
* | ||
* Triggers are registered within the component annotation data under the {\@link | ||
* Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that the | ||
* Triggers are registered within the component annotation data under the | ||
* {\@link Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that | ||
* the | ||
* trigger is bound to (in the form of `[\@triggerName]="expression"`. | ||
@@ -106,4 +107,4 @@ * | ||
* `trigger` will create an animation trigger reference based on the provided `name` value. The | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and {\@link | ||
* transition transition} declarations. | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and | ||
* {\@link transition transition} declarations. | ||
* | ||
@@ -134,6 +135,62 @@ * ```typescript | ||
* <div [\@myAnimationTrigger]="myStatusExp">...</div> | ||
* tools/gulp-tasks/validate-commit-message.js ``` | ||
* ``` | ||
* | ||
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'} | ||
* ## Disable Child Animations | ||
* A special animation control binding called `\@.disabled` can be placed on an element which will | ||
* then disable animations for any inner animation triggers situated within the element. | ||
* | ||
* When true, the `\@.disabled` binding will prevent inner animations from rendering. The example | ||
* below shows how to use this feature: | ||
* | ||
* ```ts | ||
* \@Component({ | ||
* selector: 'my-component', | ||
* template: ` | ||
* <div [\@.disabled]="isDisabled"> | ||
* <div [\@childAnimation]="exp"></div> | ||
* </div> | ||
* `, | ||
* animations: [ | ||
* trigger("childAnimation", [ | ||
* // ... | ||
* ]) | ||
* ] | ||
* }) | ||
* class MyComponent { | ||
* isDisabled = true; | ||
* exp = '...'; | ||
* } | ||
* ``` | ||
* | ||
* The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening | ||
* (when true). | ||
* | ||
* Note that `\@.disbled` will only disable inner animations (any animations running on the same | ||
* element will not be disabled). | ||
* | ||
* ### Disabling Animations Application-wide | ||
* When an area of the template is set to have animations disabled, **all** inner components will | ||
* also have their animations disabled as well. This means that all animations for an angular | ||
* application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular | ||
* component. | ||
* | ||
* ```ts | ||
* import {Component, HostBinding} from '\@angular/core'; | ||
* | ||
* \@Component({ | ||
* selector: 'app-component', | ||
* templateUrl: 'app.component.html', | ||
* }) | ||
* class AppComponent { | ||
* \@HostBinding('\@.disabled') | ||
* public animationsDisabled = true; | ||
* } | ||
* ``` | ||
* | ||
* ### What about animations that us `query()` and `animateChild()`? | ||
* Despite inner animations being disabled, a parent animation can {\@link query query} for inner | ||
* elements located in disabled areas of the template and still animate them as it sees fit. This is | ||
* also the case for when a sub animation is queried by a parent and then later animated using {\@link | ||
* animateChild animateChild}. | ||
* | ||
* \@experimental Animation support is experimental. | ||
@@ -140,0 +197,0 @@ * @param {?} name |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -84,13 +84,14 @@ * License: MIT | ||
* `trigger` is an animation-specific function that is designed to be used inside of Angular's | ||
* animation DSL language. If this information is new, please navigate to the {\@link | ||
* Component#animations component animations metadata page} to gain a better understanding of | ||
* how animations in Angular are used. | ||
* animation DSL language. If this information is new, please navigate to the | ||
* {\@link Component#animations component animations metadata page} to gain a better | ||
* understanding of how animations in Angular are used. | ||
* | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link | ||
* transition transition} entries that will be evaluated when the expression bound to the trigger | ||
* changes. | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and | ||
* {\@link transition transition} entries that will be evaluated when the expression | ||
* bound to the trigger changes. | ||
* | ||
* Triggers are registered within the component annotation data under the {\@link | ||
* Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that the | ||
* Triggers are registered within the component annotation data under the | ||
* {\@link Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that | ||
* the | ||
* trigger is bound to (in the form of `[\@triggerName]="expression"`. | ||
@@ -101,4 +102,4 @@ * | ||
* `trigger` will create an animation trigger reference based on the provided `name` value. The | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and {\@link | ||
* transition transition} declarations. | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and | ||
* {\@link transition transition} declarations. | ||
* | ||
@@ -129,6 +130,62 @@ * ```typescript | ||
* <div [\@myAnimationTrigger]="myStatusExp">...</div> | ||
* tools/gulp-tasks/validate-commit-message.js ``` | ||
* ``` | ||
* | ||
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'} | ||
* ## Disable Child Animations | ||
* A special animation control binding called `\@.disabled` can be placed on an element which will | ||
* then disable animations for any inner animation triggers situated within the element. | ||
* | ||
* When true, the `\@.disabled` binding will prevent inner animations from rendering. The example | ||
* below shows how to use this feature: | ||
* | ||
* ```ts | ||
* \@Component({ | ||
* selector: 'my-component', | ||
* template: ` | ||
* <div [\@.disabled]="isDisabled"> | ||
* <div [\@childAnimation]="exp"></div> | ||
* </div> | ||
* `, | ||
* animations: [ | ||
* trigger("childAnimation", [ | ||
* // ... | ||
* ]) | ||
* ] | ||
* }) | ||
* class MyComponent { | ||
* isDisabled = true; | ||
* exp = '...'; | ||
* } | ||
* ``` | ||
* | ||
* The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening | ||
* (when true). | ||
* | ||
* Note that `\@.disbled` will only disable inner animations (any animations running on the same | ||
* element will not be disabled). | ||
* | ||
* ### Disabling Animations Application-wide | ||
* When an area of the template is set to have animations disabled, **all** inner components will | ||
* also have their animations disabled as well. This means that all animations for an angular | ||
* application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular | ||
* component. | ||
* | ||
* ```ts | ||
* import {Component, HostBinding} from '\@angular/core'; | ||
* | ||
* \@Component({ | ||
* selector: 'app-component', | ||
* templateUrl: 'app.component.html', | ||
* }) | ||
* class AppComponent { | ||
* \@HostBinding('\@.disabled') | ||
* public animationsDisabled = true; | ||
* } | ||
* ``` | ||
* | ||
* ### What about animations that us `query()` and `animateChild()`? | ||
* Despite inner animations being disabled, a parent animation can {\@link query query} for inner | ||
* elements located in disabled areas of the template and still animate them as it sees fit. This is | ||
* also the case for when a sub animation is queried by a parent and then later animated using {\@link | ||
* animateChild animateChild}. | ||
* | ||
* \@experimental Animation support is experimental. | ||
@@ -135,0 +192,0 @@ * @param {?} name |
import * as tslib_1 from "tslib"; | ||
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -58,3 +58,13 @@ * License: MIT | ||
*/ | ||
function allowPreviousPlayerStylesMerge(duration, delay) { | ||
return duration === 0 || delay === 0; | ||
} | ||
/** | ||
* @license | ||
* Copyright Google Inc. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by an MIT-style license that can be | ||
* found in the LICENSE file at https://angular.io/license | ||
*/ | ||
/** | ||
* @experimental Animation support is experimental. | ||
@@ -102,8 +112,10 @@ */ | ||
_this.currentSnapshot = {}; | ||
previousPlayers.forEach(function (player) { | ||
if (player instanceof MockAnimationPlayer) { | ||
var styles_1 = player.currentSnapshot; | ||
Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; }); | ||
} | ||
}); | ||
if (allowPreviousPlayerStylesMerge(duration, delay)) { | ||
previousPlayers.forEach(function (player) { | ||
if (player instanceof MockAnimationPlayer) { | ||
var styles_1 = player.currentSnapshot; | ||
Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; }); | ||
} | ||
}); | ||
} | ||
_this.totalTime = delay + duration; | ||
@@ -110,0 +122,0 @@ return _this; |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -66,3 +66,36 @@ * License: MIT | ||
*/ | ||
function allowPreviousPlayerStylesMerge(duration, delay) { | ||
return duration === 0 || delay === 0; | ||
} | ||
/** | ||
* @license | ||
* Copyright Google Inc. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by an MIT-style license that can be | ||
* found in the LICENSE file at https://angular.io/license | ||
*/ | ||
/** | ||
* @experimental Animation support is experimental. | ||
@@ -105,8 +138,10 @@ */ | ||
this.currentSnapshot = {}; | ||
previousPlayers.forEach(player => { | ||
if (player instanceof MockAnimationPlayer) { | ||
const styles = player.currentSnapshot; | ||
Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]); | ||
} | ||
}); | ||
if (allowPreviousPlayerStylesMerge(duration, delay)) { | ||
previousPlayers.forEach(player => { | ||
if (player instanceof MockAnimationPlayer) { | ||
const styles = player.currentSnapshot; | ||
Object.keys(styles).forEach(prop => this.previousStyles[prop] = styles[prop]); | ||
} | ||
}); | ||
} | ||
this.totalTime = delay + duration; | ||
@@ -113,0 +148,0 @@ } |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -4,0 +4,0 @@ * License: MIT |
@@ -1,1 +0,1 @@ | ||
{"__symbolic":"module","version":3,"metadata":{"AnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}},"ɵAnimation":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","module":"@angular/animations","name":"AnimationMetadata"}]}],"buildTimelines":[{"__symbolic":"method"}]}},"ɵAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵWebAnimationsStyleNormalizer":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"},"members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵAnimationEngine":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"}]}],"registerTrigger":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"onInsert":[{"__symbolic":"method"}],"onRemove":[{"__symbolic":"method"}],"setProperty":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"flush":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}]}},"ɵWebAnimationsDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵsupportsWebAnimations":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":9,"module":"./src/render/web_animations/web_animations_driver"},"right":"undefined"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":43,"module":"./src/render/web_animations/web_animations_driver"},"right":"function"}}},"ɵWebAnimationsPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":32,"character":45,"module":"./src/render/web_animations/web_animations_player"}]},{"__symbolic":"error","message":"Expression form not supported","line":33,"character":22,"module":"./src/render/web_animations/web_animations_player"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵWebAnimationsPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"_buildPlayer":[{"__symbolic":"method"}],"_preparePlayerBeforeStart":[{"__symbolic":"method"}],"_triggerWebAnimation":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"_resetDomPlayerState":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationDriver":"./src/render/animation_driver","ɵAnimation":"./src/dsl/animation","ɵAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵNoopAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵWebAnimationsStyleNormalizer":"./src/dsl/style_normalization/web_animations_style_normalizer","ɵNoopAnimationDriver":"./src/render/animation_driver","ɵAnimationEngine":"./src/render/animation_engine_next","ɵWebAnimationsDriver":"./src/render/web_animations/web_animations_driver","ɵsupportsWebAnimations":"./src/render/web_animations/web_animations_driver","ɵWebAnimationsPlayer":"./src/render/web_animations/web_animations_player"},"importAs":"@angular/animations/browser"} | ||
{"__symbolic":"module","version":3,"metadata":{"AnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]},"statics":{"NOOP":{"__symbolic":"new","expression":{"__symbolic":"reference","name":"NoopAnimationDriver"}}}},"ɵAnimation":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","module":"@angular/animations","name":"AnimationMetadata"}]}],"buildTimelines":[{"__symbolic":"method"}]}},"ɵAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationStyleNormalizer":{"__symbolic":"class","members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵWebAnimationsStyleNormalizer":{"__symbolic":"class","extends":{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"},"members":{"normalizePropertyName":[{"__symbolic":"method"}],"normalizeStyleValue":[{"__symbolic":"method"}]}},"ɵNoopAnimationDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵAnimationEngine":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"AnimationDriver"},{"__symbolic":"reference","name":"ɵAnimationStyleNormalizer"}]}],"registerTrigger":[{"__symbolic":"method"}],"register":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"onInsert":[{"__symbolic":"method"}],"onRemove":[{"__symbolic":"method"}],"process":[{"__symbolic":"method"}],"listen":[{"__symbolic":"method"}],"flush":[{"__symbolic":"method"}],"whenRenderingDone":[{"__symbolic":"method"}]}},"ɵWebAnimationsDriver":{"__symbolic":"class","members":{"matchesElement":[{"__symbolic":"method"}],"containsElement":[{"__symbolic":"method"}],"query":[{"__symbolic":"method"}],"computeStyle":[{"__symbolic":"method"}],"animate":[{"__symbolic":"method"}]}},"ɵsupportsWebAnimations":{"__symbolic":"function","parameters":[],"value":{"__symbolic":"binop","operator":"&&","left":{"__symbolic":"binop","operator":"!==","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":9,"module":"./src/render/web_animations/web_animations_driver"},"right":"undefined"},"right":{"__symbolic":"binop","operator":"===","left":{"__symbolic":"error","message":"Expression form not supported","line":48,"character":43,"module":"./src/render/web_animations/web_animations_driver"},"right":"function"}}},"ɵWebAnimationsPlayer":{"__symbolic":"class","members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"any"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"error","message":"Expression form not supported","line":32,"character":45,"module":"./src/render/web_animations/web_animations_player"}]},{"__symbolic":"error","message":"Expression form not supported","line":33,"character":22,"module":"./src/render/web_animations/web_animations_player"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"ɵWebAnimationsPlayer"}]}]}],"_onFinish":[{"__symbolic":"method"}],"init":[{"__symbolic":"method"}],"_buildPlayer":[{"__symbolic":"method"}],"_preparePlayerBeforeStart":[{"__symbolic":"method"}],"_triggerWebAnimation":[{"__symbolic":"method"}],"onStart":[{"__symbolic":"method"}],"onDone":[{"__symbolic":"method"}],"onDestroy":[{"__symbolic":"method"}],"play":[{"__symbolic":"method"}],"pause":[{"__symbolic":"method"}],"finish":[{"__symbolic":"method"}],"reset":[{"__symbolic":"method"}],"_resetDomPlayerState":[{"__symbolic":"method"}],"restart":[{"__symbolic":"method"}],"hasStarted":[{"__symbolic":"method"}],"destroy":[{"__symbolic":"method"}],"setPosition":[{"__symbolic":"method"}],"getPosition":[{"__symbolic":"method"}],"beforeDestroy":[{"__symbolic":"method"}]}}},"origins":{"AnimationDriver":"./src/render/animation_driver","ɵAnimation":"./src/dsl/animation","ɵAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵNoopAnimationStyleNormalizer":"./src/dsl/style_normalization/animation_style_normalizer","ɵWebAnimationsStyleNormalizer":"./src/dsl/style_normalization/web_animations_style_normalizer","ɵNoopAnimationDriver":"./src/render/animation_driver","ɵAnimationEngine":"./src/render/animation_engine_next","ɵWebAnimationsDriver":"./src/render/web_animations/web_animations_driver","ɵsupportsWebAnimations":"./src/render/web_animations/web_animations_driver","ɵWebAnimationsPlayer":"./src/render/web_animations/web_animations_player"},"importAs":"@angular/animations/browser"} |
@@ -21,3 +21,3 @@ /** | ||
match(currentState: any, nextState: any): boolean; | ||
build(driver: AnimationDriver, element: any, currentState: any, nextState: any, options?: AnimationOptions, subInstructions?: ElementInstructionMap): AnimationTransitionInstruction | undefined; | ||
build(driver: AnimationDriver, element: any, currentState: any, nextState: any, options?: AnimationOptions, subInstructions?: ElementInstructionMap): AnimationTransitionInstruction; | ||
} |
@@ -27,2 +27,3 @@ /** | ||
}>; | ||
errors?: any[]; | ||
} | ||
@@ -33,2 +34,2 @@ export declare function createTransitionInstruction(element: any, triggerName: string, fromState: string, toState: string, isRemovalTransition: boolean, fromStyles: ɵStyleData, toStyles: ɵStyleData, timelines: AnimationTimelineInstruction[], queriedElements: any[], preStyleProps: Map<any, { | ||
[prop: string]: boolean; | ||
}>): AnimationTransitionInstruction; | ||
}>, errors?: any[]): AnimationTransitionInstruction; |
@@ -22,3 +22,3 @@ /** | ||
onRemove(namespaceId: string, element: any, context: any): void; | ||
setProperty(namespaceId: string, element: any, property: string, value: any): boolean; | ||
process(namespaceId: string, element: any, property: string, value: any): boolean; | ||
listen(namespaceId: string, element: any, eventName: string, eventPhase: string, callback: (event: any) => any): () => any; | ||
@@ -25,0 +25,0 @@ flush(microtaskId?: number): void; |
@@ -77,2 +77,3 @@ /** | ||
}>; | ||
disabledNodes: Set<any>; | ||
totalAnimations: number; | ||
@@ -100,2 +101,3 @@ totalQueuedPlayers: number; | ||
collectEnterElement(element: any): void; | ||
markElementAsDisabled(element: any, value: boolean): void; | ||
removeNode(namespaceId: string, element: any, context: any, doNotRecurse?: boolean): void; | ||
@@ -109,3 +111,3 @@ markElementAsRemoved(namespaceId: string, element: any, hasAnimation?: boolean, context?: any): void; | ||
flush(microtaskId?: number): void; | ||
private _flushAnimations(microtaskId); | ||
private _flushAnimations(cleanupFns, microtaskId); | ||
elementContainsData(namespaceId: string, element: any): boolean; | ||
@@ -112,0 +114,0 @@ afterFlush(callback: () => any): void; |
@@ -39,1 +39,2 @@ /** | ||
export declare function dashCaseToCamelCase(input: string): string; | ||
export declare function allowPreviousPlayerStylesMerge(duration: number, delay: number): boolean; |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -4,0 +4,0 @@ * License: MIT |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -39,3 +39,3 @@ * License: MIT | ||
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -94,3 +94,13 @@ * License: MIT | ||
*/ | ||
function allowPreviousPlayerStylesMerge(duration, delay) { | ||
return duration === 0 || delay === 0; | ||
} | ||
/** | ||
* @license | ||
* Copyright Google Inc. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by an MIT-style license that can be | ||
* found in the LICENSE file at https://angular.io/license | ||
*/ | ||
/** | ||
* @experimental Animation support is experimental. | ||
@@ -138,8 +148,10 @@ */ | ||
_this.currentSnapshot = {}; | ||
previousPlayers.forEach(function (player) { | ||
if (player instanceof MockAnimationPlayer) { | ||
var styles_1 = player.currentSnapshot; | ||
Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; }); | ||
} | ||
}); | ||
if (allowPreviousPlayerStylesMerge(duration, delay)) { | ||
previousPlayers.forEach(function (player) { | ||
if (player instanceof MockAnimationPlayer) { | ||
var styles_1 = player.currentSnapshot; | ||
Object.keys(styles_1).forEach(function (prop) { return _this.previousStyles[prop] = styles_1[prop]; }); | ||
} | ||
}); | ||
} | ||
_this.totalTime = delay + duration; | ||
@@ -146,0 +158,0 @@ return _this; |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
* License: MIT | ||
*/ | ||
!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/animations")):"function"==typeof define&&define.amd?define(["exports","@angular/animations"],factory):factory((global.ng=global.ng||{},global.ng.animations=global.ng.animations||{},global.ng.animations.browser=global.ng.animations.browser||{},global.ng.animations.browser.testing=global.ng.animations.browser.testing||{}),global._angular_animations)}(this,function(exports,_angular_animations){"use strict";function __extends(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}var extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])},_contains=function(elm1,elm2){return!1},_matches=function(element,selector){return!1},_query=function(element,selector,multi){return[]};if("undefined"!=typeof Element){if(_contains=function(elm1,elm2){return elm1.contains(elm2)},Element.prototype.matches)_matches=function(element,selector){return element.matches(selector)};else{var proto=Element.prototype,fn_1=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector;fn_1&&(_matches=function(element,selector){return fn_1.apply(element,[selector])})}_query=function(element,selector,multi){var results=[];if(multi)results.push.apply(results,element.querySelectorAll(selector));else{var elm=element.querySelector(selector);elm&&results.push(elm)}return results}}var matchesElement=_matches,containsElement=_contains,invokeQuery=_query,MockAnimationDriver=function(){function MockAnimationDriver(){}return MockAnimationDriver.prototype.matchesElement=function(element,selector){return matchesElement(element,selector)},MockAnimationDriver.prototype.containsElement=function(elm1,elm2){return containsElement(elm1,elm2)},MockAnimationDriver.prototype.query=function(element,selector,multi){return invokeQuery(element,selector,multi)},MockAnimationDriver.prototype.computeStyle=function(element,prop,defaultValue){return defaultValue||""},MockAnimationDriver.prototype.animate=function(element,keyframes,duration,delay,easing,previousPlayers){void 0===previousPlayers&&(previousPlayers=[]);var player=new MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers);return MockAnimationDriver.log.push(player),player},MockAnimationDriver}();MockAnimationDriver.log=[];var MockAnimationPlayer=function(_super){function MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers){var _this=_super.call(this)||this;return _this.element=element,_this.keyframes=keyframes,_this.duration=duration,_this.delay=delay,_this.easing=easing,_this.previousPlayers=previousPlayers,_this.__finished=!1,_this.__started=!1,_this.previousStyles={},_this._onInitFns=[],_this.currentSnapshot={},previousPlayers.forEach(function(player){if(player instanceof MockAnimationPlayer){var styles_1=player.currentSnapshot;Object.keys(styles_1).forEach(function(prop){return _this.previousStyles[prop]=styles_1[prop]})}}),_this.totalTime=delay+duration,_this}return __extends(MockAnimationPlayer,_super),MockAnimationPlayer.prototype.onInit=function(fn){this._onInitFns.push(fn)},MockAnimationPlayer.prototype.init=function(){_super.prototype.init.call(this),this._onInitFns.forEach(function(fn){return fn()}),this._onInitFns=[]},MockAnimationPlayer.prototype.finish=function(){_super.prototype.finish.call(this),this.__finished=!0},MockAnimationPlayer.prototype.destroy=function(){_super.prototype.destroy.call(this),this.__finished=!0},MockAnimationPlayer.prototype.triggerMicrotask=function(){},MockAnimationPlayer.prototype.play=function(){_super.prototype.play.call(this),this.__started=!0},MockAnimationPlayer.prototype.hasStarted=function(){return this.__started},MockAnimationPlayer.prototype.beforeDestroy=function(){var _this=this,captures={};Object.keys(this.previousStyles).forEach(function(prop){captures[prop]=_this.previousStyles[prop]}),this.hasStarted()&&this.keyframes.forEach(function(kf){Object.keys(kf).forEach(function(prop){"offset"!=prop&&(captures[prop]=_this.__finished?kf[prop]:_angular_animations.AUTO_STYLE)})}),this.currentSnapshot=captures},MockAnimationPlayer}(_angular_animations.NoopAnimationPlayer);exports.MockAnimationDriver=MockAnimationDriver,exports.MockAnimationPlayer=MockAnimationPlayer,Object.defineProperty(exports,"__esModule",{value:!0})}); | ||
!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?factory(exports,require("@angular/animations")):"function"==typeof define&&define.amd?define(["exports","@angular/animations"],factory):factory((global.ng=global.ng||{},global.ng.animations=global.ng.animations||{},global.ng.animations.browser=global.ng.animations.browser||{},global.ng.animations.browser.testing=global.ng.animations.browser.testing||{}),global._angular_animations)}(this,function(exports,_angular_animations){"use strict";function __extends(d,b){function __(){this.constructor=d}extendStatics(d,b),d.prototype=null===b?Object.create(b):(__.prototype=b.prototype,new __)}/** | ||
* @license | ||
* Copyright Google Inc. All Rights Reserved. | ||
* | ||
* Use of this source code is governed by an MIT-style license that can be | ||
* found in the LICENSE file at https://angular.io/license | ||
*/ | ||
function allowPreviousPlayerStylesMerge(duration,delay){return 0===duration||0===delay}var extendStatics=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(d,b){d.__proto__=b}||function(d,b){for(var p in b)b.hasOwnProperty(p)&&(d[p]=b[p])},_contains=function(elm1,elm2){return!1},_matches=function(element,selector){return!1},_query=function(element,selector,multi){return[]};if("undefined"!=typeof Element){if(_contains=function(elm1,elm2){return elm1.contains(elm2)},Element.prototype.matches)_matches=function(element,selector){return element.matches(selector)};else{var proto=Element.prototype,fn_1=proto.matchesSelector||proto.mozMatchesSelector||proto.msMatchesSelector||proto.oMatchesSelector||proto.webkitMatchesSelector;fn_1&&(_matches=function(element,selector){return fn_1.apply(element,[selector])})}_query=function(element,selector,multi){var results=[];if(multi)results.push.apply(results,element.querySelectorAll(selector));else{var elm=element.querySelector(selector);elm&&results.push(elm)}return results}}var matchesElement=_matches,containsElement=_contains,invokeQuery=_query,MockAnimationDriver=function(){function MockAnimationDriver(){}return MockAnimationDriver.prototype.matchesElement=function(element,selector){return matchesElement(element,selector)},MockAnimationDriver.prototype.containsElement=function(elm1,elm2){return containsElement(elm1,elm2)},MockAnimationDriver.prototype.query=function(element,selector,multi){return invokeQuery(element,selector,multi)},MockAnimationDriver.prototype.computeStyle=function(element,prop,defaultValue){return defaultValue||""},MockAnimationDriver.prototype.animate=function(element,keyframes,duration,delay,easing,previousPlayers){void 0===previousPlayers&&(previousPlayers=[]);var player=new MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers);return MockAnimationDriver.log.push(player),player},MockAnimationDriver}();MockAnimationDriver.log=[];var MockAnimationPlayer=function(_super){function MockAnimationPlayer(element,keyframes,duration,delay,easing,previousPlayers){var _this=_super.call(this)||this;return _this.element=element,_this.keyframes=keyframes,_this.duration=duration,_this.delay=delay,_this.easing=easing,_this.previousPlayers=previousPlayers,_this.__finished=!1,_this.__started=!1,_this.previousStyles={},_this._onInitFns=[],_this.currentSnapshot={},allowPreviousPlayerStylesMerge(duration,delay)&&previousPlayers.forEach(function(player){if(player instanceof MockAnimationPlayer){var styles_1=player.currentSnapshot;Object.keys(styles_1).forEach(function(prop){return _this.previousStyles[prop]=styles_1[prop]})}}),_this.totalTime=delay+duration,_this}return __extends(MockAnimationPlayer,_super),MockAnimationPlayer.prototype.onInit=function(fn){this._onInitFns.push(fn)},MockAnimationPlayer.prototype.init=function(){_super.prototype.init.call(this),this._onInitFns.forEach(function(fn){return fn()}),this._onInitFns=[]},MockAnimationPlayer.prototype.finish=function(){_super.prototype.finish.call(this),this.__finished=!0},MockAnimationPlayer.prototype.destroy=function(){_super.prototype.destroy.call(this),this.__finished=!0},MockAnimationPlayer.prototype.triggerMicrotask=function(){},MockAnimationPlayer.prototype.play=function(){_super.prototype.play.call(this),this.__started=!0},MockAnimationPlayer.prototype.hasStarted=function(){return this.__started},MockAnimationPlayer.prototype.beforeDestroy=function(){var _this=this,captures={};Object.keys(this.previousStyles).forEach(function(prop){captures[prop]=_this.previousStyles[prop]}),this.hasStarted()&&this.keyframes.forEach(function(kf){Object.keys(kf).forEach(function(prop){"offset"!=prop&&(captures[prop]=_this.__finished?kf[prop]:_angular_animations.AUTO_STYLE)})}),this.currentSnapshot=captures},MockAnimationPlayer}(_angular_animations.NoopAnimationPlayer);exports.MockAnimationDriver=MockAnimationDriver,exports.MockAnimationPlayer=MockAnimationPlayer,Object.defineProperty(exports,"__esModule",{value:!0})}); | ||
//# sourceMappingURL=animations-browser-testing.umd.min.js.map |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -13,3 +13,3 @@ * License: MIT | ||
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -101,13 +101,14 @@ * License: MIT | ||
* `trigger` is an animation-specific function that is designed to be used inside of Angular's | ||
* animation DSL language. If this information is new, please navigate to the {\@link | ||
* Component#animations component animations metadata page} to gain a better understanding of | ||
* how animations in Angular are used. | ||
* animation DSL language. If this information is new, please navigate to the | ||
* {\@link Component#animations component animations metadata page} to gain a better | ||
* understanding of how animations in Angular are used. | ||
* | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and {\@link | ||
* transition transition} entries that will be evaluated when the expression bound to the trigger | ||
* changes. | ||
* `trigger` Creates an animation trigger which will a list of {\@link state state} and | ||
* {\@link transition transition} entries that will be evaluated when the expression | ||
* bound to the trigger changes. | ||
* | ||
* Triggers are registered within the component annotation data under the {\@link | ||
* Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that the | ||
* Triggers are registered within the component annotation data under the | ||
* {\@link Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that | ||
* the | ||
* trigger is bound to (in the form of `[\@triggerName]="expression"`. | ||
@@ -118,4 +119,4 @@ * | ||
* `trigger` will create an animation trigger reference based on the provided `name` value. The | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and {\@link | ||
* transition transition} declarations. | ||
* provided `animation` value is expected to be an array consisting of {\@link state state} and | ||
* {\@link transition transition} declarations. | ||
* | ||
@@ -146,6 +147,62 @@ * ```typescript | ||
* <div [\@myAnimationTrigger]="myStatusExp">...</div> | ||
* tools/gulp-tasks/validate-commit-message.js ``` | ||
* ``` | ||
* | ||
* {\@example core/animation/ts/dsl/animation_example.ts region='Component'} | ||
* ## Disable Child Animations | ||
* A special animation control binding called `\@.disabled` can be placed on an element which will | ||
* then disable animations for any inner animation triggers situated within the element. | ||
* | ||
* When true, the `\@.disabled` binding will prevent inner animations from rendering. The example | ||
* below shows how to use this feature: | ||
* | ||
* ```ts | ||
* \@Component({ | ||
* selector: 'my-component', | ||
* template: ` | ||
* <div [\@.disabled]="isDisabled"> | ||
* <div [\@childAnimation]="exp"></div> | ||
* </div> | ||
* `, | ||
* animations: [ | ||
* trigger("childAnimation", [ | ||
* // ... | ||
* ]) | ||
* ] | ||
* }) | ||
* class MyComponent { | ||
* isDisabled = true; | ||
* exp = '...'; | ||
* } | ||
* ``` | ||
* | ||
* The `\@childAnimation` trigger will not animate because `\@.disabled` prevents it from happening | ||
* (when true). | ||
* | ||
* Note that `\@.disbled` will only disable inner animations (any animations running on the same | ||
* element will not be disabled). | ||
* | ||
* ### Disabling Animations Application-wide | ||
* When an area of the template is set to have animations disabled, **all** inner components will | ||
* also have their animations disabled as well. This means that all animations for an angular | ||
* application can be disabled by placing a host binding set on `\@.disabled` on the topmost Angular | ||
* component. | ||
* | ||
* ```ts | ||
* import {Component, HostBinding} from '\@angular/core'; | ||
* | ||
* \@Component({ | ||
* selector: 'app-component', | ||
* templateUrl: 'app.component.html', | ||
* }) | ||
* class AppComponent { | ||
* \@HostBinding('\@.disabled') | ||
* public animationsDisabled = true; | ||
* } | ||
* ``` | ||
* | ||
* ### What about animations that us `query()` and `animateChild()`? | ||
* Despite inner animations being disabled, a parent animation can {\@link query query} for inner | ||
* elements located in disabled areas of the template and still animate them as it sees fit. This is | ||
* also the case for when a sub animation is queried by a parent and then later animated using {\@link | ||
* animateChild animateChild}. | ||
* | ||
* \@experimental Animation support is experimental. | ||
@@ -152,0 +209,0 @@ * @param {?} name |
/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -16,3 +16,3 @@ * License: MIT | ||
function scheduleMicroTask(cb){Promise.resolve(null).then(cb)}/** | ||
* @license Angular v4.3.0-beta.1 | ||
* @license Angular v4.3.0-rc.0 | ||
* (c) 2010-2017 Google, Inc. https://angular.io/ | ||
@@ -19,0 +19,0 @@ * License: MIT |
{ | ||
"name": "@angular/animations", | ||
"version": "4.3.0-beta.1", | ||
"version": "4.3.0-rc.0", | ||
"description": "Angular - animations integration with web-animationss", | ||
@@ -15,3 +15,3 @@ "main": "./bundles/animations.umd.js", | ||
"peerDependencies": { | ||
"@angular/core": "4.3.0-beta.1" | ||
"@angular/core": "4.3.0-rc.0" | ||
}, | ||
@@ -18,0 +18,0 @@ "repository": { |
@@ -233,14 +233,15 @@ /** | ||
* `trigger` is an animation-specific function that is designed to be used inside of Angular's | ||
animation DSL language. If this information is new, please navigate to the {@link | ||
Component#animations component animations metadata page} to gain a better understanding of | ||
how animations in Angular are used. | ||
* animation DSL language. If this information is new, please navigate to the | ||
* {@link Component#animations component animations metadata page} to gain a better | ||
* understanding of how animations in Angular are used. | ||
* | ||
* `trigger` Creates an animation trigger which will a list of {@link state state} and {@link | ||
transition transition} entries that will be evaluated when the expression bound to the trigger | ||
changes. | ||
* `trigger` Creates an animation trigger which will a list of {@link state state} and | ||
* {@link transition transition} entries that will be evaluated when the expression | ||
* bound to the trigger changes. | ||
* | ||
* Triggers are registered within the component annotation data under the {@link | ||
Component#animations animations section}. An animation trigger can be placed on an element | ||
within a template by referencing the name of the trigger followed by the expression value that the | ||
trigger is bound to (in the form of `[@triggerName]="expression"`. | ||
* Triggers are registered within the component annotation data under the | ||
* {@link Component#animations animations section}. An animation trigger can be placed on an element | ||
* within a template by referencing the name of the trigger followed by the expression value that | ||
the | ||
* trigger is bound to (in the form of `[@triggerName]="expression"`. | ||
* | ||
@@ -250,4 +251,4 @@ * ### Usage | ||
* `trigger` will create an animation trigger reference based on the provided `name` value. The | ||
provided `animation` value is expected to be an array consisting of {@link state state} and {@link | ||
transition transition} declarations. | ||
* provided `animation` value is expected to be an array consisting of {@link state state} and | ||
* {@link transition transition} declarations. | ||
* | ||
@@ -278,6 +279,62 @@ * ```typescript | ||
* <div [@myAnimationTrigger]="myStatusExp">...</div> | ||
tools/gulp-tasks/validate-commit-message.js ``` | ||
* ``` | ||
* | ||
* {@example core/animation/ts/dsl/animation_example.ts region='Component'} | ||
* ## Disable Child Animations | ||
* A special animation control binding called `@.disabled` can be placed on an element which will | ||
then disable animations for any inner animation triggers situated within the element. | ||
* | ||
* When true, the `@.disabled` binding will prevent inner animations from rendering. The example | ||
below shows how to use this feature: | ||
* | ||
* ```ts | ||
* @Component({ | ||
* selector: 'my-component', | ||
* template: ` | ||
* <div [@.disabled]="isDisabled"> | ||
* <div [@childAnimation]="exp"></div> | ||
* </div> | ||
* `, | ||
* animations: [ | ||
* trigger("childAnimation", [ | ||
* // ... | ||
* ]) | ||
* ] | ||
* }) | ||
* class MyComponent { | ||
* isDisabled = true; | ||
* exp = '...'; | ||
* } | ||
* ``` | ||
* | ||
* The `@childAnimation` trigger will not animate because `@.disabled` prevents it from happening | ||
(when true). | ||
* | ||
* Note that `@.disbled` will only disable inner animations (any animations running on the same | ||
element will not be disabled). | ||
* | ||
* ### Disabling Animations Application-wide | ||
* When an area of the template is set to have animations disabled, **all** inner components will | ||
also have their animations disabled as well. This means that all animations for an angular | ||
application can be disabled by placing a host binding set on `@.disabled` on the topmost Angular | ||
component. | ||
* | ||
* ```ts | ||
* import {Component, HostBinding} from '@angular/core'; | ||
* | ||
* @Component({ | ||
* selector: 'app-component', | ||
* templateUrl: 'app.component.html', | ||
* }) | ||
* class AppComponent { | ||
* @HostBinding('@.disabled') | ||
* public animationsDisabled = true; | ||
* } | ||
* ``` | ||
* | ||
* ### What about animations that us `query()` and `animateChild()`? | ||
* Despite inner animations being disabled, a parent animation can {@link query query} for inner | ||
elements located in disabled areas of the template and still animate them as it sees fit. This is | ||
also the case for when a sub animation is queried by a parent and then later animated using {@link | ||
animateChild animateChild}. | ||
* | ||
* @experimental Animation support is experimental. | ||
@@ -284,0 +341,0 @@ */ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
2409020
81
21851