@angular/animations 19.0.0-next.0 → 19.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/README.md +1 -1
  2. package/browser/index.d.ts +1 -1
  3. package/browser/testing/index.d.ts +1 -1
  4. package/fesm2022/animations.mjs +7 -7
  5. package/fesm2022/browser/testing.mjs +1 -1
  6. package/fesm2022/browser.mjs +4 -4
  7. package/index.d.ts +1 -1
  8. package/package.json +2 -8
  9. package/esm2022/animations.mjs +0 -5
  10. package/esm2022/browser/browser.mjs +0 -5
  11. package/esm2022/browser/index.mjs +0 -13
  12. package/esm2022/browser/public_api.mjs +0 -14
  13. package/esm2022/browser/src/browser.mjs +0 -15
  14. package/esm2022/browser/src/create_engine.mjs +0 -20
  15. package/esm2022/browser/src/dsl/animation.mjs +0 -37
  16. package/esm2022/browser/src/dsl/animation_ast.mjs +0 -3
  17. package/esm2022/browser/src/dsl/animation_ast_builder.mjs +0 -514
  18. package/esm2022/browser/src/dsl/animation_dsl_visitor.mjs +0 -2
  19. package/esm2022/browser/src/dsl/animation_timeline_builder.mjs +0 -780
  20. package/esm2022/browser/src/dsl/animation_timeline_instruction.mjs +0 -15
  21. package/esm2022/browser/src/dsl/animation_transition_expr.mjs +0 -82
  22. package/esm2022/browser/src/dsl/animation_transition_factory.mjs +0 -152
  23. package/esm2022/browser/src/dsl/animation_transition_instruction.mjs +0 -26
  24. package/esm2022/browser/src/dsl/animation_trigger.mjs +0 -65
  25. package/esm2022/browser/src/dsl/element_instruction_map.mjs +0 -22
  26. package/esm2022/browser/src/dsl/style_normalization/animation_style_normalizer.mjs +0 -18
  27. package/esm2022/browser/src/dsl/style_normalization/web_animations_style_normalizer.mjs +0 -63
  28. package/esm2022/browser/src/error_helpers.mjs +0 -145
  29. package/esm2022/browser/src/private_export.mjs +0 -19
  30. package/esm2022/browser/src/render/animation_driver.mjs +0 -71
  31. package/esm2022/browser/src/render/animation_engine_instruction.mjs +0 -2
  32. package/esm2022/browser/src/render/animation_engine_next.mjs +0 -83
  33. package/esm2022/browser/src/render/animation_renderer.mjs +0 -99
  34. package/esm2022/browser/src/render/renderer.mjs +0 -165
  35. package/esm2022/browser/src/render/shared.mjs +0 -162
  36. package/esm2022/browser/src/render/special_cased_styles.mjs +0 -97
  37. package/esm2022/browser/src/render/timeline_animation_engine.mjs +0 -140
  38. package/esm2022/browser/src/render/transition_animation_engine.mjs +0 -1516
  39. package/esm2022/browser/src/render/web_animations/animatable_props_set.mjs +0 -214
  40. package/esm2022/browser/src/render/web_animations/web_animations_driver.mjs +0 -54
  41. package/esm2022/browser/src/render/web_animations/web_animations_player.mjs +0 -177
  42. package/esm2022/browser/src/util.mjs +0 -217
  43. package/esm2022/browser/src/warning_helpers.mjs +0 -36
  44. package/esm2022/browser/testing/index.mjs +0 -13
  45. package/esm2022/browser/testing/public_api.mjs +0 -14
  46. package/esm2022/browser/testing/src/mock_animation_driver.mjs +0 -117
  47. package/esm2022/browser/testing/src/testing.mjs +0 -9
  48. package/esm2022/browser/testing/testing.mjs +0 -5
  49. package/esm2022/index.mjs +0 -13
  50. package/esm2022/public_api.mjs +0 -14
  51. package/esm2022/src/animation_builder.mjs +0 -200
  52. package/esm2022/src/animation_event.mjs +0 -9
  53. package/esm2022/src/animation_metadata.mjs +0 -934
  54. package/esm2022/src/animations.mjs +0 -17
  55. package/esm2022/src/errors.mjs +0 -9
  56. package/esm2022/src/players/animation_group_player.mjs +0 -147
  57. package/esm2022/src/players/animation_player.mjs +0 -104
  58. package/esm2022/src/private_export.mjs +0 -11
  59. package/esm2022/src/version.mjs +0 -15
@@ -1,145 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { ɵRuntimeError as RuntimeError } from '@angular/core';
9
- const LINE_START = '\n - ';
10
- export function invalidTimingValue(exp) {
11
- return new RuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value "${exp}" is invalid.`);
12
- }
13
- export function negativeStepValue() {
14
- return new RuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');
15
- }
16
- export function negativeDelayValue() {
17
- return new RuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');
18
- }
19
- export function invalidStyleParams(varName) {
20
- return new RuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&
21
- `Unable to resolve the local animation param ${varName} in the given list of values`);
22
- }
23
- export function invalidParamValue(varName) {
24
- return new RuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);
25
- }
26
- export function invalidNodeType(nodeType) {
27
- return new RuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);
28
- }
29
- export function invalidCssUnitValue(userProvidedProperty, value) {
30
- return new RuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);
31
- }
32
- export function invalidTrigger() {
33
- return new RuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&
34
- "animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))");
35
- }
36
- export function invalidDefinition() {
37
- return new RuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');
38
- }
39
- export function invalidState(metadataName, missingSubs) {
40
- return new RuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&
41
- `state("${metadataName}", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);
42
- }
43
- export function invalidStyleValue(value) {
44
- return new RuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);
45
- }
46
- export function invalidProperty(prop) {
47
- return new RuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&
48
- `The provided animation property "${prop}" is not a supported CSS property for animations`);
49
- }
50
- export function invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {
51
- return new RuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&
52
- `The CSS property "${prop}" that exists between the times of "${firstStart}ms" and "${firstEnd}ms" is also being animated in a parallel animation between the times of "${secondStart}ms" and "${secondEnd}ms"`);
53
- }
54
- export function invalidKeyframes() {
55
- return new RuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);
56
- }
57
- export function invalidOffset() {
58
- return new RuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);
59
- }
60
- export function keyframeOffsetsOutOfOrder() {
61
- return new RuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);
62
- }
63
- export function keyframesMissingOffsets() {
64
- return new RuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);
65
- }
66
- export function invalidStagger() {
67
- return new RuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);
68
- }
69
- export function invalidQuery(selector) {
70
- return new RuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&
71
- `\`query("${selector}")\` returned zero elements. (Use \`query("${selector}", { optional: true })\` if you wish to allow this.)`);
72
- }
73
- export function invalidExpression(expr) {
74
- return new RuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression "${expr}" is not supported`);
75
- }
76
- export function invalidTransitionAlias(alias) {
77
- return new RuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value "${alias}" is not supported`);
78
- }
79
- export function validationFailed(errors) {
80
- return new RuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\n${errors.map((err) => err.message).join('\n')}`);
81
- }
82
- export function buildingFailed(errors) {
83
- return new RuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\n${errors.map((err) => err.message).join('\n')}`);
84
- }
85
- export function triggerBuildFailed(name, errors) {
86
- return new RuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&
87
- `The animation trigger "${name}" has failed to build due to the following errors:\n - ${errors
88
- .map((err) => err.message)
89
- .join('\n - ')}`);
90
- }
91
- export function animationFailed(errors) {
92
- return new RuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&
93
- `Unable to animate due to the following errors:${LINE_START}${errors
94
- .map((err) => err.message)
95
- .join(LINE_START)}`);
96
- }
97
- export function registerFailed(errors) {
98
- return new RuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&
99
- `Unable to build the animation due to the following errors: ${errors
100
- .map((err) => err.message)
101
- .join('\n')}`);
102
- }
103
- export function missingOrDestroyedAnimation() {
104
- return new RuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && "The requested animation doesn't exist or has already been destroyed");
105
- }
106
- export function createAnimationFailed(errors) {
107
- return new RuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&
108
- `Unable to create the animation due to the following errors:${errors
109
- .map((err) => err.message)
110
- .join('\n')}`);
111
- }
112
- export function missingPlayer(id) {
113
- return new RuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);
114
- }
115
- export function missingTrigger(phase, name) {
116
- return new RuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&
117
- `Unable to listen on the animation trigger event "${phase}" because the animation trigger "${name}" doesn\'t exist!`);
118
- }
119
- export function missingEvent(name) {
120
- return new RuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&
121
- `Unable to listen on the animation trigger "${name}" because the provided event is undefined!`);
122
- }
123
- export function unsupportedTriggerEvent(phase, name) {
124
- return new RuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&
125
- `The provided animation trigger event "${phase}" for the animation trigger "${name}" is not supported!`);
126
- }
127
- export function unregisteredTrigger(name) {
128
- return new RuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger "${name}" has not been registered!`);
129
- }
130
- export function triggerTransitionsFailed(errors) {
131
- return new RuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&
132
- `Unable to process animations due to the following failed trigger transitions\n ${errors
133
- .map((err) => err.message)
134
- .join('\n')}`);
135
- }
136
- export function triggerParsingFailed(name, errors) {
137
- return new RuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&
138
- `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors
139
- .map((err) => err.message)
140
- .join(LINE_START)}`);
141
- }
142
- export function transitionFailed(name, errors) {
143
- return new RuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\n ${errors.map((err) => err.message).join('\n- ')}`);
144
- }
145
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JfaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuaW1hdGlvbnMvYnJvd3Nlci9zcmMvZXJyb3JfaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFHSCxPQUFPLEVBQUMsYUFBYSxJQUFJLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUM7QUFFM0IsTUFBTSxVQUFVLGtCQUFrQixDQUFDLEdBQW9CO0lBQ3JELE9BQU8sSUFBSSxZQUFZLG1EQUVyQixTQUFTLElBQUksOEJBQThCLEdBQUcsZUFBZSxDQUM5RCxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUI7SUFDL0IsT0FBTyxJQUFJLFlBQVksa0RBRXJCLFNBQVMsSUFBSSxrRUFBa0UsQ0FDaEYsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsa0JBQWtCO0lBQ2hDLE9BQU8sSUFBSSxZQUFZLG1EQUVyQixTQUFTLElBQUksK0RBQStELENBQzdFLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLGtCQUFrQixDQUFDLE9BQWU7SUFDaEQsT0FBTyxJQUFJLFlBQVksbURBRXJCLFNBQVM7UUFDUCwrQ0FBK0MsT0FBTyw4QkFBOEIsQ0FDdkYsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsT0FBZTtJQUMvQyxPQUFPLElBQUksWUFBWSxrREFFckIsU0FBUyxJQUFJLGtEQUFrRCxPQUFPLEVBQUUsQ0FDekUsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZSxDQUFDLFFBQWdCO0lBQzlDLE9BQU8sSUFBSSxZQUFZLGdEQUVyQixTQUFTLElBQUksOENBQThDLFFBQVEsRUFBRSxDQUN0RSxDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sVUFBVSxtQkFBbUIsQ0FBQyxvQkFB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RUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUM7YUFDekIsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQ2xCLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxVQUFVLG9CQUFvQixDQUFDLElBQVksRUFBRSxNQUFlO0lBQ2hFLE9BQU8sSUFBSSxZQUFZLHFEQUVyQixTQUFTO1FBQ1AsNkJBQTZCLElBQUksd0JBQXdCLFVBQVUsR0FBRyxNQUFNO2FBQ3pFLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FDeEIsQ0FBQztBQUNKLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsSUFBWSxFQUFFLE1BQWU7SUFDNUQsT0FBTyxJQUFJLFlBQVksZ0RBRXJCLFNBQVMsSUFBSSxJQUFJLElBQUkseUJBQXlCLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDOUYsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHvJtVJ1bnRpbWVFcnJvckNvZGUgYXMgUnVudGltZUVycm9yQ29kZX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQge8m1UnVudGltZUVycm9yIGFzIFJ1bnRpbWVFcnJvcn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IExJTkVfU1RBUlQgPSAnXFxuIC0gJztcblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRUaW1pbmdWYWx1ZShleHA6IHN0cmluZyB8IG51bWJlcik6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5JTlZBTElEX1RJTUlOR19WQUxVRSxcbiAgICBuZ0Rldk1vZGUgJiYgYFRoZSBwcm92aWRlZCB0aW1pbmcgdmFsdWUgXCIke2V4cH1cIiBpcyBpbnZhbGlkLmAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBuZWdhdGl2ZVN0ZXBWYWx1ZSgpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuTkVHQVRJVkVfU1RFUF9WQUxVRSxcbiAgICBuZ0Rldk1vZGUgJiYgJ0R1cmF0aW9uIHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4nLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbmVnYXRpdmVEZWxheVZhbHVlKCk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5ORUdBVElWRV9ERUxBWV9WQUxVRSxcbiAgICBuZ0Rldk1vZGUgJiYgJ0RlbGF5IHZhbHVlcyBiZWxvdyAwIGFyZSBub3QgYWxsb3dlZCBmb3IgdGhpcyBhbmltYXRpb24gc3RlcC4nLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZFN0eWxlUGFyYW1zKHZhck5hbWU6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5JTlZBTElEX1NUWUxFX1BBUkFNUyxcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIGBVbmFibGUgdG8gcmVzb2x2ZSB0aGUgbG9jYWwgYW5pbWF0aW9uIHBhcmFtICR7dmFyTmFtZX0gaW4gdGhlIGdpdmVuIGxpc3Qgb2YgdmFsdWVzYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRQYXJhbVZhbHVlKHZhck5hbWU6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5JTlZBTElEX1BBUkFNX1ZBTFVFLFxuICAgIG5nRGV2TW9kZSAmJiBgUGxlYXNlIHByb3ZpZGUgYSB2YWx1ZSBmb3IgdGhlIGFuaW1hdGlvbiBwYXJhbSAke3Zhck5hbWV9YCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWROb2RlVHlwZShub2RlVHlwZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfTk9ERV9UWVBFLFxuICAgIG5nRGV2TW9kZSAmJiBgVW5hYmxlIHRvIHJlc29sdmUgYW5pbWF0aW9uIG1ldGFkYXRhIG5vZGUgIyR7bm9kZVR5cGV9YCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRDc3NVbml0VmFsdWUodXNlclByb3ZpZGVkUHJvcGVydHk6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5JTlZBTElEX0NTU19VTklUX1ZBTFVFLFxuICAgIG5nRGV2TW9kZSAmJiBgUGxlYXNlIHByb3ZpZGUgYSBDU1MgdW5pdCB2YWx1ZSBmb3IgJHt1c2VyUHJvdmlkZWRQcm9wZXJ0eX06JHt2YWx1ZX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZFRyaWdnZXIoKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfVFJJR0dFUixcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIFwiYW5pbWF0aW9uIHRyaWdnZXJzIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGFuIGBAYCBzaWduIChlLmcuIHRyaWdnZXIoJ0Bmb28nLCBbLi4uXSkpXCIsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkRGVmaW5pdGlvbigpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuSU5WQUxJRF9ERUZJTklUSU9OLFxuICAgIG5nRGV2TW9kZSAmJiAnb25seSBzdGF0ZSgpIGFuZCB0cmFuc2l0aW9uKCkgZGVmaW5pdGlvbnMgY2FuIHNpdCBpbnNpZGUgb2YgYSB0cmlnZ2VyKCknLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZFN0YXRlKG1ldGFkYXRhTmFtZTogc3RyaW5nLCBtaXNzaW5nU3Viczogc3RyaW5nW10pOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuSU5WQUxJRF9TVEFURSxcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIGBzdGF0ZShcIiR7bWV0YWRhdGFOYW1lfVwiLCAuLi4pIG11c3QgZGVmaW5lIGRlZmF1bHQgdmFsdWVzIGZvciBhbGwgdGhlIGZvbGxvd2luZyBzdHlsZSBzdWJzdGl0dXRpb25zOiAke21pc3NpbmdTdWJzLmpvaW4oXG4gICAgICAgICcsICcsXG4gICAgICApfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkU3R5bGVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfU1RZTEVfVkFMVUUsXG4gICAgbmdEZXZNb2RlICYmIGBUaGUgcHJvdmlkZWQgc3R5bGUgc3RyaW5nIHZhbHVlICR7dmFsdWV9IGlzIG5vdCBhbGxvd2VkLmAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkUHJvcGVydHkocHJvcDogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfUFJPUEVSVFksXG4gICAgbmdEZXZNb2RlICYmXG4gICAgICBgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiBwcm9wZXJ0eSBcIiR7cHJvcH1cIiBpcyBub3QgYSBzdXBwb3J0ZWQgQ1NTIHByb3BlcnR5IGZvciBhbmltYXRpb25zYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRQYXJhbGxlbEFuaW1hdGlvbihcbiAgcHJvcDogc3RyaW5nLFxuICBmaXJzdFN0YXJ0OiBudW1iZXIsXG4gIGZpcnN0RW5kOiBudW1iZXIsXG4gIHNlY29uZFN0YXJ0OiBudW1iZXIsXG4gIHNlY29uZEVuZDogbnVtYmVyLFxuKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfUEFSQUxMRUxfQU5JTUFUSU9OLFxuICAgIG5nRGV2TW9kZSAmJlxuICAgICAgYFRoZSBDU1MgcHJvcGVydHkgXCIke3Byb3B9XCIgdGhhdCBleGlzdHMgYmV0d2VlbiB0aGUgdGltZXMgb2YgXCIke2ZpcnN0U3RhcnR9bXNcIiBhbmQgXCIke2ZpcnN0RW5kfW1zXCIgaXMgYWxzbyBiZWluZyBhbmltYXRlZCBpbiBhIHBhcmFsbGVsIGFuaW1hdGlvbiBiZXR3ZWVuIHRoZSB0aW1lcyBvZiBcIiR7c2Vjb25kU3RhcnR9bXNcIiBhbmQgXCIke3NlY29uZEVuZH1tc1wiYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRLZXlmcmFtZXMoKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfS0VZRlJBTUVTLFxuICAgIG5nRGV2TW9kZSAmJiBga2V5ZnJhbWVzKCkgbXVzdCBiZSBwbGFjZWQgaW5zaWRlIG9mIGEgY2FsbCB0byBhbmltYXRlKClgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZE9mZnNldCgpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuSU5WQUxJRF9PRkZTRVQsXG4gICAgbmdEZXZNb2RlICYmIGBQbGVhc2UgZW5zdXJlIHRoYXQgYWxsIGtleWZyYW1lIG9mZnNldHMgYXJlIGJldHdlZW4gMCBhbmQgMWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBrZXlmcmFtZU9mZnNldHNPdXRPZk9yZGVyKCk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5LRVlGUkFNRV9PRkZTRVRTX09VVF9PRl9PUkRFUixcbiAgICBuZ0Rldk1vZGUgJiYgYFBsZWFzZSBlbnN1cmUgdGhhdCBhbGwga2V5ZnJhbWUgb2Zmc2V0cyBhcmUgaW4gb3JkZXJgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2V5ZnJhbWVzTWlzc2luZ09mZnNldHMoKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLktFWUZSQU1FU19NSVNTSU5HX09GRlNFVFMsXG4gICAgbmdEZXZNb2RlICYmIGBOb3QgYWxsIHN0eWxlKCkgc3RlcHMgd2l0aGluIHRoZSBkZWNsYXJlZCBrZXlmcmFtZXMoKSBjb250YWluIG9mZnNldHNgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZFN0YWdnZXIoKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfU1RBR0dFUixcbiAgICBuZ0Rldk1vZGUgJiYgYHN0YWdnZXIoKSBjYW4gb25seSBiZSB1c2VkIGluc2lkZSBvZiBxdWVyeSgpYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludmFsaWRRdWVyeShzZWxlY3Rvcjogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfUVVFUlksXG4gICAgbmdEZXZNb2RlICYmXG4gICAgICBgXFxgcXVlcnkoXCIke3NlbGVjdG9yfVwiKVxcYCByZXR1cm5lZCB6ZXJvIGVsZW1lbnRzLiAoVXNlIFxcYHF1ZXJ5KFwiJHtzZWxlY3Rvcn1cIiwgeyBvcHRpb25hbDogdHJ1ZSB9KVxcYCBpZiB5b3Ugd2lzaCB0byBhbGxvdyB0aGlzLilgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaW52YWxpZEV4cHJlc3Npb24oZXhwcjogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfRVhQUkVTU0lPTixcbiAgICBuZ0Rldk1vZGUgJiYgYFRoZSBwcm92aWRlZCB0cmFuc2l0aW9uIGV4cHJlc3Npb24gXCIke2V4cHJ9XCIgaXMgbm90IHN1cHBvcnRlZGAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnZhbGlkVHJhbnNpdGlvbkFsaWFzKGFsaWFzOiBzdHJpbmcpOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuSU5WQUxJRF9UUkFOU0lUSU9OX0FMSUFTLFxuICAgIG5nRGV2TW9kZSAmJiBgVGhlIHRyYW5zaXRpb24gYWxpYXMgdmFsdWUgXCIke2FsaWFzfVwiIGlzIG5vdCBzdXBwb3J0ZWRgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdmFsaWRhdGlvbkZhaWxlZChlcnJvcnM6IEVycm9yW10pOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuVkFMSURBVElPTl9GQUlMRUQsXG4gICAgbmdEZXZNb2RlICYmIGBhbmltYXRpb24gdmFsaWRhdGlvbiBmYWlsZWQ6XFxuJHtlcnJvcnMubWFwKChlcnIpID0+IGVyci5tZXNzYWdlKS5qb2luKCdcXG4nKX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRpbmdGYWlsZWQoZXJyb3JzOiBFcnJvcltdKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLkJVSUxESU5HX0ZBSUxFRCxcbiAgICBuZ0Rldk1vZGUgJiYgYGFuaW1hdGlvbiBidWlsZGluZyBmYWlsZWQ6XFxuJHtlcnJvcnMubWFwKChlcnIpID0+IGVyci5tZXNzYWdlKS5qb2luKCdcXG4nKX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJpZ2dlckJ1aWxkRmFpbGVkKG5hbWU6IHN0cmluZywgZXJyb3JzOiBFcnJvcltdKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLlRSSUdHRVJfQlVJTERfRkFJTEVELFxuICAgIG5nRGV2TW9kZSAmJlxuICAgICAgYFRoZSBhbmltYXRpb24gdHJpZ2dlciBcIiR7bmFtZX1cIiBoYXMgZmFpbGVkIHRvIGJ1aWxkIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gLSAke2Vycm9yc1xuICAgICAgICAubWFwKChlcnIpID0+IGVyci5tZXNzYWdlKVxuICAgICAgICAuam9pbignXFxuIC0gJyl9YCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGFuaW1hdGlvbkZhaWxlZChlcnJvcnM6IEVycm9yW10pOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuQU5JTUFUSU9OX0ZBSUxFRCxcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIGBVbmFibGUgdG8gYW5pbWF0ZSBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6JHtMSU5FX1NUQVJUfSR7ZXJyb3JzXG4gICAgICAgIC5tYXAoKGVycikgPT4gZXJyLm1lc3NhZ2UpXG4gICAgICAgIC5qb2luKExJTkVfU1RBUlQpfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckZhaWxlZChlcnJvcnM6IEVycm9yW10pOiBFcnJvciB7XG4gIHJldHVybiBuZXcgUnVudGltZUVycm9yKFxuICAgIFJ1bnRpbWVFcnJvckNvZGUuUkVHSVNUUkFUSU9OX0ZBSUxFRCxcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIGBVbmFibGUgdG8gYnVpbGQgdGhlIGFuaW1hdGlvbiBkdWUgdG8gdGhlIGZvbGxvd2luZyBlcnJvcnM6ICR7ZXJyb3JzXG4gICAgICAgIC5tYXAoKGVycikgPT4gZXJyLm1lc3NhZ2UpXG4gICAgICAgIC5qb2luKCdcXG4nKX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ09yRGVzdHJveWVkQW5pbWF0aW9uKCk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5NSVNTSU5HX09SX0RFU1RST1lFRF9BTklNQVRJT04sXG4gICAgbmdEZXZNb2RlICYmIFwiVGhlIHJlcXVlc3RlZCBhbmltYXRpb24gZG9lc24ndCBleGlzdCBvciBoYXMgYWxyZWFkeSBiZWVuIGRlc3Ryb3llZFwiLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5pbWF0aW9uRmFpbGVkKGVycm9yczogRXJyb3JbXSk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5DUkVBVEVfQU5JTUFUSU9OX0ZBSUxFRCxcbiAgICBuZ0Rldk1vZGUgJiZcbiAgICAgIGBVbmFibGUgdG8gY3JlYXRlIHRoZSBhbmltYXRpb24gZHVlIHRvIHRoZSBmb2xsb3dpbmcgZXJyb3JzOiR7ZXJyb3JzXG4gICAgICAgIC5tYXAoKGVycikgPT4gZXJyLm1lc3NhZ2UpXG4gICAgICAgIC5qb2luKCdcXG4nKX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ1BsYXllcihpZDogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLk1JU1NJTkdfUExBWUVSLFxuICAgIG5nRGV2TW9kZSAmJiBgVW5hYmxlIHRvIGZpbmQgdGhlIHRpbWVsaW5lIHBsYXllciByZWZlcmVuY2VkIGJ5ICR7aWR9YCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pc3NpbmdUcmlnZ2VyKHBoYXNlOiBzdHJpbmcsIG5hbWU6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5NSVNTSU5HX1RSSUdHRVIsXG4gICAgbmdEZXZNb2RlICYmXG4gICAgICBgVW5hYmxlIHRvIGxpc3RlbiBvbiB0aGUgYW5pbWF0aW9uIHRyaWdnZXIgZXZlbnQgXCIke3BoYXNlfVwiIGJlY2F1c2UgdGhlIGFuaW1hdGlvbiB0cmlnZ2VyIFwiJHtuYW1lfVwiIGRvZXNuXFwndCBleGlzdCFgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbWlzc2luZ0V2ZW50KG5hbWU6IHN0cmluZyk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5NSVNTSU5HX0VWRU5ULFxuICAgIG5nRGV2TW9kZSAmJlxuICAgICAgYFVuYWJsZSB0byBsaXN0ZW4gb24gdGhlIGFuaW1hdGlvbiB0cmlnZ2VyIFwiJHtuYW1lfVwiIGJlY2F1c2UgdGhlIHByb3ZpZGVkIGV2ZW50IGlzIHVuZGVmaW5lZCFgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdW5zdXBwb3J0ZWRUcmlnZ2VyRXZlbnQocGhhc2U6IHN0cmluZywgbmFtZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLlVOU1VQUE9SVEVEX1RSSUdHRVJfRVZFTlQsXG4gICAgbmdEZXZNb2RlICYmXG4gICAgICBgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiB0cmlnZ2VyIGV2ZW50IFwiJHtwaGFzZX1cIiBmb3IgdGhlIGFuaW1hdGlvbiB0cmlnZ2VyIFwiJHtuYW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWQhYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHVucmVnaXN0ZXJlZFRyaWdnZXIobmFtZTogc3RyaW5nKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLlVOUkVHSVNURVJFRF9UUklHR0VSLFxuICAgIG5nRGV2TW9kZSAmJiBgVGhlIHByb3ZpZGVkIGFuaW1hdGlvbiB0cmlnZ2VyIFwiJHtuYW1lfVwiIGhhcyBub3QgYmVlbiByZWdpc3RlcmVkIWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2VyVHJhbnNpdGlvbnNGYWlsZWQoZXJyb3JzOiBFcnJvcltdKTogRXJyb3Ige1xuICByZXR1cm4gbmV3IFJ1bnRpbWVFcnJvcihcbiAgICBSdW50aW1lRXJyb3JDb2RlLlRSSUdHRVJfVFJBTlNJVElPTlNfRkFJTEVELFxuICAgIG5nRGV2TW9kZSAmJlxuICAgICAgYFVuYWJsZSB0byBwcm9jZXNzIGFuaW1hdGlvbnMgZHVlIHRvIHRoZSBmb2xsb3dpbmcgZmFpbGVkIHRyaWdnZXIgdHJhbnNpdGlvbnNcXG4gJHtlcnJvcnNcbiAgICAgICAgLm1hcCgoZXJyKSA9PiBlcnIubWVzc2FnZSlcbiAgICAgICAgLmpvaW4oJ1xcbicpfWAsXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiB0cmlnZ2VyUGFyc2luZ0ZhaWxlZChuYW1lOiBzdHJpbmcsIGVycm9yczogRXJyb3JbXSk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5UUklHR0VSX1BBUlNJTkdfRkFJTEVELFxuICAgIG5nRGV2TW9kZSAmJlxuICAgICAgYEFuaW1hdGlvbiBwYXJzaW5nIGZvciB0aGUgJHtuYW1lfSB0cmlnZ2VyIGhhdmUgZmFpbGVkOiR7TElORV9TVEFSVH0ke2Vycm9yc1xuICAgICAgICAubWFwKChlcnIpID0+IGVyci5tZXNzYWdlKVxuICAgICAgICAuam9pbihMSU5FX1NUQVJUKX1gLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gdHJhbnNpdGlvbkZhaWxlZChuYW1lOiBzdHJpbmcsIGVycm9yczogRXJyb3JbXSk6IEVycm9yIHtcbiAgcmV0dXJuIG5ldyBSdW50aW1lRXJyb3IoXG4gICAgUnVudGltZUVycm9yQ29kZS5UUkFOU0lUSU9OX0ZBSUxFRCxcbiAgICBuZ0Rldk1vZGUgJiYgYEAke25hbWV9IGhhcyBmYWlsZWQgZHVlIHRvOlxcbiAke2Vycm9ycy5tYXAoKGVycikgPT4gZXJyLm1lc3NhZ2UpLmpvaW4oJ1xcbi0gJyl9YCxcbiAgKTtcbn1cbiJdfQ==
@@ -1,19 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export { createEngine as ɵcreateEngine } from './create_engine';
9
- export { Animation as ɵAnimation } from './dsl/animation';
10
- export { AnimationStyleNormalizer as ɵAnimationStyleNormalizer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, } from './dsl/style_normalization/animation_style_normalizer';
11
- export { WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer } from './dsl/style_normalization/web_animations_style_normalizer';
12
- export { AnimationEngine as ɵAnimationEngine } from './render/animation_engine_next';
13
- export { AnimationRendererFactory as ɵAnimationRendererFactory } from './render/animation_renderer';
14
- export { AnimationRenderer as ɵAnimationRenderer, BaseAnimationRenderer as ɵBaseAnimationRenderer, } from './render/renderer';
15
- export { containsElement as ɵcontainsElement, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty, } from './render/shared';
16
- export { WebAnimationsDriver as ɵWebAnimationsDriver } from './render/web_animations/web_animations_driver';
17
- export { WebAnimationsPlayer as ɵWebAnimationsPlayer } from './render/web_animations/web_animations_player';
18
- export { allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, normalizeKeyframes as ɵnormalizeKeyframes, } from './util';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leHBvcnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmltYXRpb25zL2Jyb3dzZXIvc3JjL3ByaXZhdGVfZXhwb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBQyxZQUFZLElBQUksYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLFNBQVMsSUFBSSxVQUFVLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsd0JBQXdCLElBQUkseUJBQXlCLEVBQ3JELDRCQUE0QixJQUFJLDZCQUE2QixHQUM5RCxNQUFNLHNEQUFzRCxDQUFDO0FBQzlELE9BQU8sRUFBQyw0QkFBNEIsSUFBSSw2QkFBNkIsRUFBQyxNQUFNLDJEQUEyRCxDQUFDO0FBQ3hJLE9BQU8sRUFBQyxlQUFlLElBQUksZ0JBQWdCLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUMsd0JBQXdCLElBQUkseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRyxPQUFPLEVBQ0wsaUJBQWlCLElBQUksa0JBQWtCLEVBQ3ZDLHFCQUFxQixJQUFJLHNCQUFzQixHQUNoRCxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFDTCxlQUFlLElBQUksZ0JBQWdCLEVBQ25DLGdCQUFnQixJQUFJLGlCQUFpQixFQUNyQyxXQUFXLElBQUksWUFBWSxFQUMzQixxQkFBcUIsSUFBSSxzQkFBc0IsRUFDL0Msa0NBQWtDLElBQUksbUNBQW1DLEdBQzFFLE1BQU0saUJBQWlCLENBQUM7QUFDekIsT0FBTyxFQUFDLG1CQUFtQixJQUFJLG9CQUFvQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDMUcsT0FBTyxFQUFDLG1CQUFtQixJQUFJLG9CQUFvQixFQUFDLE1BQU0sK0NBQStDLENBQUM7QUFDMUcsT0FBTyxFQUNMLDhCQUE4QixJQUFJLCtCQUErQixFQUNqRSxtQkFBbUIsSUFBSSxvQkFBb0IsRUFDM0Msa0JBQWtCLElBQUksbUJBQW1CLEdBQzFDLE1BQU0sUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5leHBvcnQge2NyZWF0ZUVuZ2luZSBhcyDJtWNyZWF0ZUVuZ2luZX0gZnJvbSAnLi9jcmVhdGVfZW5naW5lJztcbmV4cG9ydCB7QW5pbWF0aW9uIGFzIMm1QW5pbWF0aW9ufSBmcm9tICcuL2RzbC9hbmltYXRpb24nO1xuZXhwb3J0IHtcbiAgQW5pbWF0aW9uU3R5bGVOb3JtYWxpemVyIGFzIMm1QW5pbWF0aW9uU3R5bGVOb3JtYWxpemVyLFxuICBOb29wQW5pbWF0aW9uU3R5bGVOb3JtYWxpemVyIGFzIMm1Tm9vcEFuaW1hdGlvblN0eWxlTm9ybWFsaXplcixcbn0gZnJvbSAnLi9kc2wvc3R5bGVfbm9ybWFsaXphdGlvbi9hbmltYXRpb25fc3R5bGVfbm9ybWFsaXplcic7XG5leHBvcnQge1dlYkFuaW1hdGlvbnNTdHlsZU5vcm1hbGl6ZXIgYXMgybVXZWJBbmltYXRpb25zU3R5bGVOb3JtYWxpemVyfSBmcm9tICcuL2RzbC9zdHlsZV9ub3JtYWxpemF0aW9uL3dlYl9hbmltYXRpb25zX3N0eWxlX25vcm1hbGl6ZXInO1xuZXhwb3J0IHtBbmltYXRpb25FbmdpbmUgYXMgybVBbmltYXRpb25FbmdpbmV9IGZyb20gJy4vcmVuZGVyL2FuaW1hdGlvbl9lbmdpbmVfbmV4dCc7XG5leHBvcnQge0FuaW1hdGlvblJlbmRlcmVyRmFjdG9yeSBhcyDJtUFuaW1hdGlvblJlbmRlcmVyRmFjdG9yeX0gZnJvbSAnLi9yZW5kZXIvYW5pbWF0aW9uX3JlbmRlcmVyJztcbmV4cG9ydCB7XG4gIEFuaW1hdGlvblJlbmRlcmVyIGFzIMm1QW5pbWF0aW9uUmVuZGVyZXIsXG4gIEJhc2VBbmltYXRpb25SZW5kZXJlciBhcyDJtUJhc2VBbmltYXRpb25SZW5kZXJlcixcbn0gZnJvbSAnLi9yZW5kZXIvcmVuZGVyZXInO1xuZXhwb3J0IHtcbiAgY29udGFpbnNFbGVtZW50IGFzIMm1Y29udGFpbnNFbGVtZW50LFxuICBnZXRQYXJlbnRFbGVtZW50IGFzIMm1Z2V0UGFyZW50RWxlbWVudCxcbiAgaW52b2tlUXVlcnkgYXMgybVpbnZva2VRdWVyeSxcbiAgdmFsaWRhdGVTdHlsZVByb3BlcnR5IGFzIMm1dmFsaWRhdGVTdHlsZVByb3BlcnR5LFxuICB2YWxpZGF0ZVdlYkFuaW1hdGFibGVTdHlsZVByb3BlcnR5IGFzIMm1dmFsaWRhdGVXZWJBbmltYXRhYmxlU3R5bGVQcm9wZXJ0eSxcbn0gZnJvbSAnLi9yZW5kZXIvc2hhcmVkJztcbmV4cG9ydCB7V2ViQW5pbWF0aW9uc0RyaXZlciBhcyDJtVdlYkFuaW1hdGlvbnNEcml2ZXJ9IGZyb20gJy4vcmVuZGVyL3dlYl9hbmltYXRpb25zL3dlYl9hbmltYXRpb25zX2RyaXZlcic7XG5leHBvcnQge1dlYkFuaW1hdGlvbnNQbGF5ZXIgYXMgybVXZWJBbmltYXRpb25zUGxheWVyfSBmcm9tICcuL3JlbmRlci93ZWJfYW5pbWF0aW9ucy93ZWJfYW5pbWF0aW9uc19wbGF5ZXInO1xuZXhwb3J0IHtcbiAgYWxsb3dQcmV2aW91c1BsYXllclN0eWxlc01lcmdlIGFzIMm1YWxsb3dQcmV2aW91c1BsYXllclN0eWxlc01lcmdlLFxuICBjYW1lbENhc2VUb0Rhc2hDYXNlIGFzIMm1Y2FtZWxDYXNlVG9EYXNoQ2FzZSxcbiAgbm9ybWFsaXplS2V5ZnJhbWVzIGFzIMm1bm9ybWFsaXplS2V5ZnJhbWVzLFxufSBmcm9tICcuL3V0aWwnO1xuIl19
@@ -1,71 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { NoopAnimationPlayer } from '@angular/animations';
9
- import { Injectable } from '@angular/core';
10
- import { containsElement, getParentElement, invokeQuery, validateStyleProperty } from './shared';
11
- import * as i0 from "@angular/core";
12
- /**
13
- * @publicApi
14
- *
15
- * `AnimationDriver` implentation for Noop animations
16
- */
17
- export class NoopAnimationDriver {
18
- /**
19
- * @returns Whether `prop` is a valid CSS property
20
- */
21
- validateStyleProperty(prop) {
22
- return validateStyleProperty(prop);
23
- }
24
- /**
25
- *
26
- * @returns Whether elm1 contains elm2.
27
- */
28
- containsElement(elm1, elm2) {
29
- return containsElement(elm1, elm2);
30
- }
31
- /**
32
- * @returns Rhe parent of the given element or `null` if the element is the `document`
33
- */
34
- getParentElement(element) {
35
- return getParentElement(element);
36
- }
37
- /**
38
- * @returns The result of the query selector on the element. The array will contain up to 1 item
39
- * if `multi` is `false`.
40
- */
41
- query(element, selector, multi) {
42
- return invokeQuery(element, selector, multi);
43
- }
44
- /**
45
- * @returns The `defaultValue` or empty string
46
- */
47
- computeStyle(element, prop, defaultValue) {
48
- return defaultValue || '';
49
- }
50
- /**
51
- * @returns An `NoopAnimationPlayer`
52
- */
53
- animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {
54
- return new NoopAnimationPlayer(duration, delay);
55
- }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.0-next.0", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
57
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.0.0-next.0", ngImport: i0, type: NoopAnimationDriver }); }
58
- }
59
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.0-next.0", ngImport: i0, type: NoopAnimationDriver, decorators: [{
60
- type: Injectable
61
- }] });
62
- /**
63
- * @publicApi
64
- */
65
- export class AnimationDriver {
66
- /**
67
- * @deprecated Use the NoopAnimationDriver class.
68
- */
69
- static { this.NOOP = new NoopAnimationDriver(); }
70
- }
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uX2RyaXZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuaW1hdGlvbnMvYnJvd3Nlci9zcmMvcmVuZGVyL2FuaW1hdGlvbl9kcml2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBQ0gsT0FBTyxFQUFrQixtQkFBbUIsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFDLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUMsTUFBTSxVQUFVLENBQUM7O0FBRS9GOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsSUFBWTtRQUNoQyxPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxlQUFlLENBQUMsSUFBUyxFQUFFLElBQVM7UUFDbEMsT0FBTyxlQUFlLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILGdCQUFnQixDQUFDLE9BQWdCO1FBQy9CLE9BQU8sZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVEOzs7T0FHRztJQUNILEtBQUssQ0FBQyxPQUFZLEVBQUUsUUFBZ0IsRUFBRSxLQUFjO1FBQ2xELE9BQU8sV0FBVyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLE9BQVksRUFBRSxJQUFZLEVBQUUsWUFBcUI7UUFDNUQsT0FBTyxZQUFZLElBQUksRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU8sQ0FDTCxPQUFZLEVBQ1osU0FBOEMsRUFDOUMsUUFBZ0IsRUFDaEIsS0FBYSxFQUNiLE1BQWMsRUFDZCxrQkFBeUIsRUFBRSxFQUMzQix1QkFBaUM7UUFFakMsT0FBTyxJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNsRCxDQUFDO3lIQW5EVSxtQkFBbUI7NkhBQW5CLG1CQUFtQjs7c0dBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7QUF1RFg7O0dBRUc7QUFDSCxNQUFNLE9BQWdCLGVBQWU7SUFDbkM7O09BRUc7YUFDSSxTQUFJLEdBQW9DLElBQUksbUJBQW1CLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtBbmltYXRpb25QbGF5ZXIsIE5vb3BBbmltYXRpb25QbGF5ZXJ9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtjb250YWluc0VsZW1lbnQsIGdldFBhcmVudEVsZW1lbnQsIGludm9rZVF1ZXJ5LCB2YWxpZGF0ZVN0eWxlUHJvcGVydHl9IGZyb20gJy4vc2hhcmVkJztcblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKlxuICogYEFuaW1hdGlvbkRyaXZlcmAgaW1wbGVudGF0aW9uIGZvciBOb29wIGFuaW1hdGlvbnNcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE5vb3BBbmltYXRpb25Ecml2ZXIgaW1wbGVtZW50cyBBbmltYXRpb25Ecml2ZXIge1xuICAvKipcbiAgICogQHJldHVybnMgV2hldGhlciBgcHJvcGAgaXMgYSB2YWxpZCBDU1MgcHJvcGVydHlcbiAgICovXG4gIHZhbGlkYXRlU3R5bGVQcm9wZXJ0eShwcm9wOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdmFsaWRhdGVTdHlsZVByb3BlcnR5KHByb3ApO1xuICB9XG5cbiAgLyoqXG4gICAqXG4gICAqIEByZXR1cm5zIFdoZXRoZXIgZWxtMSBjb250YWlucyBlbG0yLlxuICAgKi9cbiAgY29udGFpbnNFbGVtZW50KGVsbTE6IGFueSwgZWxtMjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbnRhaW5zRWxlbWVudChlbG0xLCBlbG0yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBSaGUgcGFyZW50IG9mIHRoZSBnaXZlbiBlbGVtZW50IG9yIGBudWxsYCBpZiB0aGUgZWxlbWVudCBpcyB0aGUgYGRvY3VtZW50YFxuICAgKi9cbiAgZ2V0UGFyZW50RWxlbWVudChlbGVtZW50OiB1bmtub3duKTogdW5rbm93biB7XG4gICAgcmV0dXJuIGdldFBhcmVudEVsZW1lbnQoZWxlbWVudCk7XG4gIH1cblxuICAvKipcbiAgICogQHJldHVybnMgVGhlIHJlc3VsdCBvZiB0aGUgcXVlcnkgc2VsZWN0b3Igb24gdGhlIGVsZW1lbnQuIFRoZSBhcnJheSB3aWxsIGNvbnRhaW4gdXAgdG8gMSBpdGVtXG4gICAqICAgICBpZiBgbXVsdGlgIGlzICBgZmFsc2VgLlxuICAgKi9cbiAgcXVlcnkoZWxlbWVudDogYW55LCBzZWxlY3Rvcjogc3RyaW5nLCBtdWx0aTogYm9vbGVhbik6IGFueVtdIHtcbiAgICByZXR1cm4gaW52b2tlUXVlcnkoZWxlbWVudCwgc2VsZWN0b3IsIG11bHRpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBUaGUgYGRlZmF1bHRWYWx1ZWAgb3IgZW1wdHkgc3RyaW5nXG4gICAqL1xuICBjb21wdXRlU3R5bGUoZWxlbWVudDogYW55LCBwcm9wOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZT86IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGRlZmF1bHRWYWx1ZSB8fCAnJztcbiAgfVxuXG4gIC8qKlxuICAgKiBAcmV0dXJucyBBbiBgTm9vcEFuaW1hdGlvblBsYXllcmBcbiAgICovXG4gIGFuaW1hdGUoXG4gICAgZWxlbWVudDogYW55LFxuICAgIGtleWZyYW1lczogQXJyYXk8TWFwPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPj4sXG4gICAgZHVyYXRpb246IG51bWJlcixcbiAgICBkZWxheTogbnVtYmVyLFxuICAgIGVhc2luZzogc3RyaW5nLFxuICAgIHByZXZpb3VzUGxheWVyczogYW55W10gPSBbXSxcbiAgICBzY3J1YmJlckFjY2Vzc1JlcXVlc3RlZD86IGJvb2xlYW4sXG4gICk6IEFuaW1hdGlvblBsYXllciB7XG4gICAgcmV0dXJuIG5ldyBOb29wQW5pbWF0aW9uUGxheWVyKGR1cmF0aW9uLCBkZWxheSk7XG4gIH1cbn1cblxuLyoqXG4gKiBAcHVibGljQXBpXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBbmltYXRpb25Ecml2ZXIge1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBOb29wQW5pbWF0aW9uRHJpdmVyIGNsYXNzLlxuICAgKi9cbiAgc3RhdGljIE5PT1A6IEFuaW1hdGlvbkRyaXZlciA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTm9vcEFuaW1hdGlvbkRyaXZlcigpO1xuXG4gIGFic3RyYWN0IHZhbGlkYXRlU3R5bGVQcm9wZXJ0eShwcm9wOiBzdHJpbmcpOiBib29sZWFuO1xuXG4gIGFic3RyYWN0IHZhbGlkYXRlQW5pbWF0YWJsZVN0eWxlUHJvcGVydHk/OiAocHJvcDogc3RyaW5nKSA9PiBib29sZWFuO1xuXG4gIGFic3RyYWN0IGNvbnRhaW5zRWxlbWVudChlbG0xOiBhbnksIGVsbTI6IGFueSk6IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9idGFpbnMgdGhlIHBhcmVudCBlbGVtZW50LCBpZiBhbnkuIGBudWxsYCBpcyByZXR1cm5lZCBpZiB0aGUgZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgcGFyZW50LlxuICAgKi9cbiAgYWJzdHJhY3QgZ2V0UGFyZW50RWxlbWVudChlbGVtZW50OiB1bmtub3duKTogdW5rbm93bjtcblxuICBhYnN0cmFjdCBxdWVyeShlbGVtZW50OiBhbnksIHNlbGVjdG9yOiBzdHJpbmcsIG11bHRpOiBib29sZWFuKTogYW55W107XG5cbiAgYWJzdHJhY3QgY29tcHV0ZVN0eWxlKGVsZW1lbnQ6IGFueSwgcHJvcDogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBzdHJpbmcpOiBzdHJpbmc7XG5cbiAgYWJzdHJhY3QgYW5pbWF0ZShcbiAgICBlbGVtZW50OiBhbnksXG4gICAga2V5ZnJhbWVzOiBBcnJheTxNYXA8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+PixcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIGRlbGF5OiBudW1iZXIsXG4gICAgZWFzaW5nPzogc3RyaW5nIHwgbnVsbCxcbiAgICBwcmV2aW91c1BsYXllcnM/OiBhbnlbXSxcbiAgICBzY3J1YmJlckFjY2Vzc1JlcXVlc3RlZD86IGJvb2xlYW4sXG4gICk6IGFueTtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uX2VuZ2luZV9pbnN0cnVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2FuaW1hdGlvbnMvYnJvd3Nlci9zcmMvcmVuZGVyL2FuaW1hdGlvbl9lbmdpbmVfaW5zdHJ1Y3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuZXhwb3J0IGNvbnN0IGVudW0gQW5pbWF0aW9uVHJhbnNpdGlvbkluc3RydWN0aW9uVHlwZSB7XG4gIFRyYW5zaXRpb25BbmltYXRpb24sXG4gIFRpbWVsaW5lQW5pbWF0aW9uLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFuaW1hdGlvbkVuZ2luZUluc3RydWN0aW9uIHtcbiAgdHlwZTogQW5pbWF0aW9uVHJhbnNpdGlvbkluc3RydWN0aW9uVHlwZTtcbn1cbiJdfQ==
@@ -1,83 +0,0 @@
1
- import { buildAnimationAst } from '../dsl/animation_ast_builder';
2
- import { buildTrigger } from '../dsl/animation_trigger';
3
- import { triggerBuildFailed } from '../error_helpers';
4
- import { warnTriggerBuild } from '../warning_helpers';
5
- import { parseTimelineCommand } from './shared';
6
- import { TimelineAnimationEngine } from './timeline_animation_engine';
7
- import { TransitionAnimationEngine } from './transition_animation_engine';
8
- export class AnimationEngine {
9
- constructor(doc, _driver, _normalizer) {
10
- this._driver = _driver;
11
- this._normalizer = _normalizer;
12
- this._triggerCache = {};
13
- // this method is designed to be overridden by the code that uses this engine
14
- this.onRemovalComplete = (element, context) => { };
15
- this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer);
16
- this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);
17
- this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);
18
- }
19
- registerTrigger(componentId, namespaceId, hostElement, name, metadata) {
20
- const cacheKey = componentId + '-' + name;
21
- let trigger = this._triggerCache[cacheKey];
22
- if (!trigger) {
23
- const errors = [];
24
- const warnings = [];
25
- const ast = buildAnimationAst(this._driver, metadata, errors, warnings);
26
- if (errors.length) {
27
- throw triggerBuildFailed(name, errors);
28
- }
29
- if (warnings.length) {
30
- warnTriggerBuild(name, warnings);
31
- }
32
- trigger = buildTrigger(name, ast, this._normalizer);
33
- this._triggerCache[cacheKey] = trigger;
34
- }
35
- this._transitionEngine.registerTrigger(namespaceId, name, trigger);
36
- }
37
- register(namespaceId, hostElement) {
38
- this._transitionEngine.register(namespaceId, hostElement);
39
- }
40
- destroy(namespaceId, context) {
41
- this._transitionEngine.destroy(namespaceId, context);
42
- }
43
- onInsert(namespaceId, element, parent, insertBefore) {
44
- this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);
45
- }
46
- onRemove(namespaceId, element, context) {
47
- this._transitionEngine.removeNode(namespaceId, element, context);
48
- }
49
- disableAnimations(element, disable) {
50
- this._transitionEngine.markElementAsDisabled(element, disable);
51
- }
52
- process(namespaceId, element, property, value) {
53
- if (property.charAt(0) == '@') {
54
- const [id, action] = parseTimelineCommand(property);
55
- const args = value;
56
- this._timelineEngine.command(id, element, action, args);
57
- }
58
- else {
59
- this._transitionEngine.trigger(namespaceId, element, property, value);
60
- }
61
- }
62
- listen(namespaceId, element, eventName, eventPhase, callback) {
63
- // @@listen
64
- if (eventName.charAt(0) == '@') {
65
- const [id, action] = parseTimelineCommand(eventName);
66
- return this._timelineEngine.listen(id, element, action, callback);
67
- }
68
- return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);
69
- }
70
- flush(microtaskId = -1) {
71
- this._transitionEngine.flush(microtaskId);
72
- }
73
- get players() {
74
- return [...this._transitionEngine.players, ...this._timelineEngine.players];
75
- }
76
- whenRenderingDone() {
77
- return this._transitionEngine.whenRenderingDone();
78
- }
79
- afterFlushAnimationsDone(cb) {
80
- this._transitionEngine.afterFlushAnimationsDone(cb);
81
- }
82
- }
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uX2VuZ2luZV9uZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5pbWF0aW9ucy9icm93c2VyL3NyYy9yZW5kZXIvYW5pbWF0aW9uX2VuZ2luZV9uZXh0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVVBLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBbUIsWUFBWSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFFeEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDcEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFHcEQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3BFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBRXhFLE1BQU0sT0FBTyxlQUFlO0lBUzFCLFlBQ0UsR0FBYSxFQUNMLE9BQXdCLEVBQ3hCLFdBQXFDO1FBRHJDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGdCQUFXLEdBQVgsV0FBVyxDQUEwQjtRQVJ2QyxrQkFBYSxHQUFzQyxFQUFFLENBQUM7UUFFOUQsNkVBQTZFO1FBQ3RFLHNCQUFpQixHQUFHLENBQUMsT0FBWSxFQUFFLE9BQVksRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO1FBTzVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLHlCQUF5QixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSx1QkFBdUIsQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVu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bnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5pbXBvcnQge0FuaW1hdGlvbk1ldGFkYXRhLCBBbmltYXRpb25QbGF5ZXIsIEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YX0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7VHJpZ2dlckFzdH0gZnJvbSAnLi4vZHNsL2FuaW1hdGlvbl9hc3QnO1xuaW1wb3J0IHtidWlsZEFuaW1hdGlvbkFzdH0gZnJvbSAnLi4vZHNsL2FuaW1hdGlvbl9hc3RfYnVpbGRlcic7XG5pbXBvcnQge0FuaW1hdGlvblRyaWdnZXIsIGJ1aWxkVHJpZ2dlcn0gZnJvbSAnLi4vZHNsL2FuaW1hdGlvbl90cmlnZ2VyJztcbmltcG9ydCB7QW5pbWF0aW9uU3R5bGVOb3JtYWxpemVyfSBmcm9tICcuLi9kc2wvc3R5bGVfbm9ybWFsaXphdGlvbi9hbmltYXRpb25fc3R5bGVfbm9ybWFsaXplcic7XG5pbXBvcnQge3RyaWdnZXJCdWlsZEZhaWxlZH0gZnJvbSAnLi4vZXJyb3JfaGVscGVycyc7XG5pbXBvcnQge3dhcm5UcmlnZ2VyQnVpbGR9IGZyb20gJy4uL3dhcm5pbmdfaGVscGVycyc7XG5cbmltcG9ydCB7QW5pbWF0aW9uRHJpdmVyfSBmcm9tICcuL2FuaW1hdGlvbl9kcml2ZXInO1xuaW1wb3J0IHtwYXJzZVRpbWVsaW5lQ29tbWFuZH0gZnJvbSAnLi9zaGFyZWQnO1xuaW1wb3J0IHtUaW1lbGluZUFuaW1hdGlvbkVuZ2luZX0gZnJvbSAnLi90aW1lbGluZV9hbmltYXRpb25fZW5naW5lJztcbmltcG9ydCB7VHJhbnNpdGlvbkFuaW1hdGlvbkVuZ2luZX0gZnJvbSAnLi90cmFuc2l0aW9uX2FuaW1hdGlvbl9lbmdpbmUnO1xuXG5leHBvcnQgY2xhc3MgQW5pbWF0aW9uRW5naW5lIHtcbiAgcHJpdmF0ZSBfdHJhbnNpdGlvbkVuZ2luZTogVHJhbnNpdGlvbkFuaW1hdGlvbkVuZ2luZTtcbiAgcHJpdmF0ZSBfdGltZWxpbmVFbmdpbmU6IFRpbWVsaW5lQW5pbWF0aW9uRW5naW5lO1xuXG4gIHByaXZhdGUgX3RyaWdnZXJDYWNoZToge1trZXk6IHN0cmluZ106IEFuaW1hdGlvblRyaWdnZXJ9ID0ge307XG5cbiAgLy8gdGhpcyBtZXRob2QgaXMgZGVzaWduZWQgdG8gYmUgb3ZlcnJpZGRlbiBieSB0aGUgY29kZSB0aGF0IHVzZXMgdGhpcyBlbmdpbmVcbiAgcHVibGljIG9uUmVtb3ZhbENvbXBsZXRlID0gKGVsZW1lbnQ6IGFueSwgY29udGV4dDogYW55KSA9PiB7fTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBkb2M6IERvY3VtZW50LFxuICAgIHByaXZhdGUgX2RyaXZlcjogQW5pbWF0aW9uRHJpdmVyLFxuICAgIHByaXZhdGUgX25vcm1hbGl6ZXI6IEFuaW1hdGlvblN0eWxlTm9ybWFsaXplcixcbiAgKSB7XG4gICAgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZSA9IG5ldyBUcmFuc2l0aW9uQW5pbWF0aW9uRW5naW5lKGRvYy5ib2R5LCBfZHJpdmVyLCBfbm9ybWFsaXplcik7XG4gICAgdGhpcy5fdGltZWxpbmVFbmdpbmUgPSBuZXcgVGltZWxpbmVBbmltYXRpb25FbmdpbmUoZG9jLmJvZHksIF9kcml2ZXIsIF9ub3JtYWxpemVyKTtcblxuICAgIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUub25SZW1vdmFsQ29tcGxldGUgPSAoZWxlbWVudDogYW55LCBjb250ZXh0OiBhbnkpID0+XG4gICAgICB0aGlzLm9uUmVtb3ZhbENvbXBsZXRlKGVsZW1lbnQsIGNvbnRleHQpO1xuICB9XG5cbiAgcmVnaXN0ZXJUcmlnZ2VyKFxuICAgIGNvbXBvbmVudElkOiBzdHJpbmcsXG4gICAgbmFtZXNwYWNlSWQ6IHN0cmluZyxcbiAgICBob3N0RWxlbWVudDogYW55LFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICBtZXRhZGF0YTogQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBjYWNoZUtleSA9IGNvbXBvbmVudElkICsgJy0nICsgbmFtZTtcbiAgICBsZXQgdHJpZ2dlciA9IHRoaXMuX3RyaWdnZXJDYWNoZVtjYWNoZUtleV07XG4gICAgaWYgKCF0cmlnZ2VyKSB7XG4gICAgICBjb25zdCBlcnJvcnM6IEVycm9yW10gPSBbXTtcbiAgICAgIGNvbnN0IHdhcm5pbmdzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgY29uc3QgYXN0ID0gYnVpbGRBbmltYXRpb25Bc3QoXG4gICAgICAgIHRoaXMuX2RyaXZlcixcbiAgICAgICAgbWV0YWRhdGEgYXMgQW5pbWF0aW9uTWV0YWRhdGEsXG4gICAgICAgIGVycm9ycyxcbiAgICAgICAgd2FybmluZ3MsXG4gICAgICApIGFzIFRyaWdnZXJBc3Q7XG4gICAgICBpZiAoZXJyb3JzLmxlbmd0aCkge1xuICAgICAgICB0aHJvdyB0cmlnZ2VyQnVpbGRGYWlsZWQobmFtZSwgZXJyb3JzKTtcbiAgICAgIH1cbiAgICAgIGlmICh3YXJuaW5ncy5sZW5ndGgpIHtcbiAgICAgICAgd2FyblRyaWdnZXJCdWlsZChuYW1lLCB3YXJuaW5ncyk7XG4gICAgICB9XG4gICAgICB0cmlnZ2VyID0gYnVpbGRUcmlnZ2VyKG5hbWUsIGFzdCwgdGhpcy5fbm9ybWFsaXplcik7XG4gICAgICB0aGlzLl90cmlnZ2VyQ2FjaGVbY2FjaGVLZXldID0gdHJpZ2dlcjtcbiAgICB9XG4gICAgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5yZWdpc3RlclRyaWdnZXIobmFtZXNwYWNlSWQsIG5hbWUsIHRyaWdnZXIpO1xuICB9XG5cbiAgcmVnaXN0ZXIobmFtZXNwYWNlSWQ6IHN0cmluZywgaG9zdEVsZW1lbnQ6IGFueSkge1xuICAgIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUucmVnaXN0ZXIobmFtZXNwYWNlSWQsIGhvc3RFbGVtZW50KTtcbiAgfVxuXG4gIGRlc3Ryb3kobmFtZXNwYWNlSWQ6IHN0cmluZywgY29udGV4dDogYW55KSB7XG4gICAgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5kZXN0cm95KG5hbWVzcGFjZUlkLCBjb250ZXh0KTtcbiAgfVxuXG4gIG9uSW5zZXJ0KG5hbWVzcGFjZUlkOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSwgcGFyZW50OiBhbnksIGluc2VydEJlZm9yZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuX3RyYW5zaXRpb25FbmdpbmUuaW5zZXJ0Tm9kZShuYW1lc3BhY2VJZCwgZWxlbWVudCwgcGFyZW50LCBpbnNlcnRCZWZvcmUpO1xuICB9XG5cbiAgb25SZW1vdmUobmFtZXNwYWNlSWQ6IHN0cmluZywgZWxlbWVudDogYW55LCBjb250ZXh0OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnJlbW92ZU5vZGUobmFtZXNwYWNlSWQsIGVsZW1lbnQsIGNvbnRleHQpO1xuICB9XG5cbiAgZGlzYWJsZUFuaW1hdGlvbnMoZWxlbWVudDogYW55LCBkaXNhYmxlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5tYXJrRWxlbWVudEFzRGlzYWJsZWQoZWxlbWVudCwgZGlzYWJsZSk7XG4gIH1cblxuICBwcm9jZXNzKG5hbWVzcGFjZUlkOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSwgcHJvcGVydHk6IHN0cmluZywgdmFsdWU6IGFueSkge1xuICAgIGlmIChwcm9wZXJ0eS5jaGFyQXQoMCkgPT0gJ0AnKSB7XG4gICAgICBjb25zdCBbaWQsIGFjdGlvbl0gPSBwYXJzZVRpbWVsaW5lQ29tbWFuZChwcm9wZXJ0eSk7XG4gICAgICBjb25zdCBhcmdzID0gdmFsdWUgYXMgYW55W107XG4gICAgICB0aGlzLl90aW1lbGluZUVuZ2luZS5jb21tYW5kKGlkLCBlbGVtZW50LCBhY3Rpb24sIGFyZ3MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90cmFuc2l0aW9uRW5naW5lLnRyaWdnZXIobmFtZXNwYWNlSWQsIGVsZW1lbnQsIHByb3BlcnR5LCB2YWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgbGlzdGVuKFxuICAgIG5hbWVzcGFjZUlkOiBzdHJpbmcsXG4gICAgZWxlbWVudDogYW55LFxuICAgIGV2ZW50TmFtZTogc3RyaW5nLFxuICAgIGV2ZW50UGhhc2U6IHN0cmluZyxcbiAgICBjYWxsYmFjazogKGV2ZW50OiBhbnkpID0+IGFueSxcbiAgKTogKCkgPT4gYW55IHtcbiAgICAvLyBAQGxpc3RlblxuICAgIGlmIChldmVudE5hbWUuY2hhckF0KDApID09ICdAJykge1xuICAgICAgY29uc3QgW2lkLCBhY3Rpb25dID0gcGFyc2VUaW1lbGluZUNvbW1hbmQoZXZlbnROYW1lKTtcbiAgICAgIHJldHVybiB0aGlzLl90aW1lbGluZUVuZ2luZS5saXN0ZW4oaWQsIGVsZW1lbnQsIGFjdGlvbiwgY2FsbGJhY2spO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5saXN0ZW4obmFtZXNwYWNlSWQsIGVsZW1lbnQsIGV2ZW50TmFtZSwgZXZlbnRQaGFzZSwgY2FsbGJhY2spO1xuICB9XG5cbiAgZmx1c2gobWljcm90YXNrSWQ6IG51bWJlciA9IC0xKTogdm9pZCB7XG4gICAgdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS5mbHVzaChtaWNyb3Rhc2tJZCk7XG4gIH1cblxuICBnZXQgcGxheWVycygpOiBBbmltYXRpb25QbGF5ZXJbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLl90cmFuc2l0aW9uRW5naW5lLnBsYXllcnMsIC4uLnRoaXMuX3RpbWVsaW5lRW5naW5lLnBsYXllcnNdO1xuICB9XG5cbiAgd2hlblJlbmRlcmluZ0RvbmUoKTogUHJvbWlzZTxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fdHJhbnNpdGlvbkVuZ2luZS53aGVuUmVuZGVyaW5nRG9uZSgpO1xuICB9XG5cbiAgYWZ0ZXJGbHVzaEFuaW1hdGlvbnNEb25lKGNiOiBWb2lkRnVuY3Rpb24pOiB2b2lkIHtcbiAgICB0aGlzLl90cmFuc2l0aW9uRW5naW5lLmFmdGVyRmx1c2hBbmltYXRpb25zRG9uZShjYik7XG4gIH1cbn1cbiJdfQ==
@@ -1,99 +0,0 @@
1
- import { AnimationRenderer, BaseAnimationRenderer } from './renderer';
2
- export class AnimationRendererFactory {
3
- constructor(delegate, engine, _zone) {
4
- this.delegate = delegate;
5
- this.engine = engine;
6
- this._zone = _zone;
7
- this._currentId = 0;
8
- this._microtaskId = 1;
9
- this._animationCallbacksBuffer = [];
10
- this._rendererCache = new Map();
11
- this._cdRecurDepth = 0;
12
- engine.onRemovalComplete = (element, delegate) => {
13
- delegate?.removeChild(null, element);
14
- };
15
- }
16
- createRenderer(hostElement, type) {
17
- const EMPTY_NAMESPACE_ID = '';
18
- // cache the delegates to find out which cached delegate can
19
- // be used by which cached renderer
20
- const delegate = this.delegate.createRenderer(hostElement, type);
21
- if (!hostElement || !type?.data?.['animation']) {
22
- const cache = this._rendererCache;
23
- let renderer = cache.get(delegate);
24
- if (!renderer) {
25
- // Ensure that the renderer is removed from the cache on destroy
26
- // since it may contain references to detached DOM nodes.
27
- const onRendererDestroy = () => cache.delete(delegate);
28
- renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);
29
- // only cache this result when the base renderer is used
30
- cache.set(delegate, renderer);
31
- }
32
- return renderer;
33
- }
34
- const componentId = type.id;
35
- const namespaceId = type.id + '-' + this._currentId;
36
- this._currentId++;
37
- this.engine.register(namespaceId, hostElement);
38
- const registerTrigger = (trigger) => {
39
- if (Array.isArray(trigger)) {
40
- trigger.forEach(registerTrigger);
41
- }
42
- else {
43
- this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);
44
- }
45
- };
46
- const animationTriggers = type.data['animation'];
47
- animationTriggers.forEach(registerTrigger);
48
- return new AnimationRenderer(this, namespaceId, delegate, this.engine);
49
- }
50
- begin() {
51
- this._cdRecurDepth++;
52
- if (this.delegate.begin) {
53
- this.delegate.begin();
54
- }
55
- }
56
- _scheduleCountTask() {
57
- queueMicrotask(() => {
58
- this._microtaskId++;
59
- });
60
- }
61
- /** @internal */
62
- scheduleListenerCallback(count, fn, data) {
63
- if (count >= 0 && count < this._microtaskId) {
64
- this._zone.run(() => fn(data));
65
- return;
66
- }
67
- const animationCallbacksBuffer = this._animationCallbacksBuffer;
68
- if (animationCallbacksBuffer.length == 0) {
69
- queueMicrotask(() => {
70
- this._zone.run(() => {
71
- animationCallbacksBuffer.forEach((tuple) => {
72
- const [fn, data] = tuple;
73
- fn(data);
74
- });
75
- this._animationCallbacksBuffer = [];
76
- });
77
- });
78
- }
79
- animationCallbacksBuffer.push([fn, data]);
80
- }
81
- end() {
82
- this._cdRecurDepth--;
83
- // this is to prevent animations from running twice when an inner
84
- // component does CD when a parent component instead has inserted it
85
- if (this._cdRecurDepth == 0) {
86
- this._zone.runOutsideAngular(() => {
87
- this._scheduleCountTask();
88
- this.engine.flush(this._microtaskId);
89
- });
90
- }
91
- if (this.delegate.end) {
92
- this.delegate.end();
93
- }
94
- }
95
- whenRenderingDone() {
96
- return this.engine.whenRenderingDone();
97
- }
98
- }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0aW9uX3JlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5pbWF0aW9ucy9icm93c2VyL3NyYy9yZW5kZXIvYW5pbWF0aW9uX3JlbmRlcmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVdBLE9BQU8sRUFBQyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLFlBQVksQ0FBQztBQVFwRSxNQUFNLE9BQU8sd0JBQXdCO0lBT25DLFlBQ1UsUUFBMEIsRUFDMUIsTUFBdUIsRUFDdkIsS0FBYTtRQUZiLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBQzFCLFdBQU0sR0FBTixNQUFNLENBQWlCO1FBQ3ZCLFVBQUssR0FBTCxLQUFLLENBQVE7UUFUZixlQUFVLEdBQVcsQ0FBQyxDQUFDO1FBQ3ZCLGlCQUFZLEdBQVcsQ0FBQyxDQUFDO1FBQ3pCLDhCQUF5QixHQUE2QixFQUFFLENBQUM7UUFDekQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBb0MsQ0FBQztRQUM3RCxrQkFBYSxHQUFHLENBQUMsQ0FBQztRQU94QixNQUFNLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxPQUFZLEVBQUUsUUFBMEIsRUFBRSxFQUFFO1lBQ3RFLFFBQVEsRUFBRSxXQUFXLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ3ZDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjLENBQUMsV0FBZ0IsRUFBRSxJQUFtQjtRQUNsRCxNQUFNLGtCQUFrQixHQUFHLEVBQUUsQ0FBQztRQUU5Qiw0REFBNEQ7UUFDNUQsbUNBQW1DO1FBQ25DLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLENB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QUFFO3dCQUN6QyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQzt3QkFDekIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNYLENBQUMsQ0FBQyxDQUFDO29CQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxFQUFFLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0Qsd0JBQXdCLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELEdBQUc7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFFckIsaUVBQWlFO1FBQ2pFLG9FQUFvRTtRQUNwRSxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdEIsQ0FBQztJQUNILENBQUM7SUFFRCxpQkFBaUI7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB0eXBlIHtOZ1pvbmUsIFJlbmRlcmVyMiwgUmVuZGVyZXJGYWN0b3J5MiwgUmVuZGVyZXJUeXBlMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QW5pbWF0aW9uRW5naW5lfSBmcm9tICcuL2FuaW1hdGlvbl9lbmdpbmVfbmV4dCc7XG5pbXBvcnQge0FuaW1hdGlvblJlbmRlcmVyLCBCYXNlQW5pbWF0aW9uUmVuZGVyZXJ9IGZyb20gJy4vcmVuZGVyZXInO1xuXG4vLyBEZWZpbmUgYSByZWN1cnNpdmUgdHlwZSB0byBhbGxvdyBmb3IgbmVzdGVkIGFycmF5cyBvZiBgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhYC4gTm90ZSB0aGF0IGFuXG4vLyBpbnRlcmZhY2UgZGVjbGFyYXRpb24gaXMgdXNlZCBhcyBUeXBlU2NyaXB0IHByaW9yIHRvIDMuNyBkb2VzIG5vdCBzdXBwb3J0IHJlY3Vyc2l2ZSB0eXBlXG4vLyByZWZlcmVuY2VzLCBzZWUgaHR0cHM6Ly9naXRodWIuY29tL21pY3Jvc29mdC9UeXBlU2NyaXB0L3B1bGwvMzMwNTAgZm9yIGRldGFpbHMuXG50eXBlIE5lc3RlZEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSB8IFJlY3Vyc2l2ZUFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YTtcbmludGVyZmFjZSBSZWN1cnNpdmVBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgZXh0ZW5kcyBBcnJheTxOZXN0ZWRBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGE+IHt9XG5cbmV4cG9ydCBjbGFzcyBBbmltYXRpb25SZW5kZXJlckZhY3RvcnkgaW1wbGVtZW50cyBSZW5kZXJlckZhY3RvcnkyIHtcbiAgcHJpdmF0ZSBfY3VycmVudElkOiBudW1iZXIgPSAwO1xuICBwcml2YXRlIF9taWNyb3Rhc2tJZDogbnVtYmVyID0gMTtcbiAgcHJpdmF0ZSBfYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyOiBbKGU6IGFueSkgPT4gYW55LCBhbnldW10gPSBbXTtcbiAgcHJpdmF0ZSBfcmVuZGVyZXJDYWNoZSA9IG5ldyBNYXA8UmVuZGVyZXIyLCBCYXNlQW5pbWF0aW9uUmVuZGVyZXI+KCk7XG4gIHByaXZhdGUgX2NkUmVjdXJEZXB0aCA9IDA7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBkZWxlZ2F0ZTogUmVuZGVyZXJGYWN0b3J5MixcbiAgICBwcml2YXRlIGVuZ2luZTogQW5pbWF0aW9uRW5naW5lLFxuICAgIHByaXZhdGUgX3pvbmU6IE5nWm9uZSxcbiAgKSB7XG4gICAgZW5naW5lLm9uUmVtb3ZhbENvbXBsZXRlID0gKGVsZW1lbnQ6IGFueSwgZGVsZWdhdGU6IFJlbmRlcmVyMiB8IG51bGwpID0+IHtcbiAgICAgIGRlbGVnYXRlPy5yZW1vdmVDaGlsZChudWxsLCBlbGVtZW50KTtcbiAgICB9O1xuICB9XG5cbiAgY3JlYXRlUmVuZGVyZXIoaG9zdEVsZW1lbnQ6IGFueSwgdHlwZTogUmVuZGVyZXJUeXBlMik6IEJhc2VBbmltYXRpb25SZW5kZXJlciB7XG4gICAgY29uc3QgRU1QVFlfTkFNRVNQQUNFX0lEID0gJyc7XG5cbiAgICAvLyBjYWNoZSB0aGUgZGVsZWdhdGVzIHRvIGZpbmQgb3V0IHdoaWNoIGNhY2hlZCBkZWxlZ2F0ZSBjYW5cbiAgICAvLyBiZSB1c2VkIGJ5IHdoaWNoIGNhY2hlZCByZW5kZXJlclxuICAgIGNvbnN0IGRlbGVnYXRlID0gdGhpcy5kZWxlZ2F0ZS5jcmVhdGVSZW5kZXJlcihob3N0RWxlbWVudCwgdHlwZSk7XG4gICAgaWYgKCFob3N0RWxlbWVudCB8fCAhdHlwZT8uZGF0YT8uWydhbmltYXRpb24nXSkge1xuICAgICAgY29uc3QgY2FjaGUgPSB0aGlzLl9yZW5kZXJlckNhY2hlO1xuICAgICAgbGV0IHJlbmRlcmVyOiBCYXNlQW5pbWF0aW9uUmVuZGVyZXIgfCB1bmRlZmluZWQgPSBjYWNoZS5nZXQoZGVsZWdhdGUpO1xuICAgICAgaWYgKCFyZW5kZXJlcikge1xuICAgICAgICAvLyBFbnN1cmUgdGhhdCB0aGUgcmVuZGVyZXIgaXMgcmVtb3ZlZCBmcm9tIHRoZSBjYWNoZSBvbiBkZXN0cm95XG4gICAgICAgIC8vIHNpbmNlIGl0IG1heSBjb250YWluIHJlZmVyZW5jZXMgdG8gZGV0YWNoZWQgRE9NIG5vZGVzLlxuICAgICAgICBjb25zdCBvblJlbmRlcmVyRGVzdHJveSA9ICgpID0+IGNhY2hlLmRlbGV0ZShkZWxlZ2F0ZSk7XG4gICAgICAgIHJlbmRlcmVyID0gbmV3IEJhc2VBbmltYXRpb25SZW5kZXJlcihcbiAgICAgICAgICBFTVBUWV9OQU1FU1BBQ0VfSUQsXG4gICAgICAgICAgZGVsZWdhdGUsXG4gICAgICAgICAgdGhpcy5lbmdpbmUsXG4gICAgICAgICAgb25SZW5kZXJlckRlc3Ryb3ksXG4gICAgICAgICk7XG4gICAgICAgIC8vIG9ubHkgY2FjaGUgdGhpcyByZXN1bHQgd2hlbiB0aGUgYmFzZSByZW5kZXJlciBpcyB1c2VkXG4gICAgICAgIGNhY2hlLnNldChkZWxlZ2F0ZSwgcmVuZGVyZXIpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlbmRlcmVyO1xuICAgIH1cblxuICAgIGNvbnN0IGNvbXBvbmVudElkID0gdHlwZS5pZDtcbiAgICBjb25zdCBuYW1lc3BhY2VJZCA9IHR5cGUuaWQgKyAnLScgKyB0aGlzLl9jdXJyZW50SWQ7XG4gICAgdGhpcy5fY3VycmVudElkKys7XG5cbiAgICB0aGlzLmVuZ2luZS5yZWdpc3RlcihuYW1lc3BhY2VJZCwgaG9zdEVsZW1lbnQpO1xuXG4gICAgY29uc3QgcmVnaXN0ZXJUcmlnZ2VyID0gKHRyaWdnZXI6IE5lc3RlZEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSkgPT4ge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkodHJpZ2dlcikpIHtcbiAgICAgICAgdHJpZ2dlci5mb3JFYWNoKHJlZ2lzdGVyVHJpZ2dlcik7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVuZ2luZS5yZWdpc3RlclRyaWdnZXIoY29tcG9uZW50SWQsIG5hbWVzcGFjZUlkLCBob3N0RWxlbWVudCwgdHJpZ2dlci5uYW1lLCB0cmlnZ2VyKTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGFuaW1hdGlvblRyaWdnZXJzID0gdHlwZS5kYXRhWydhbmltYXRpb24nXSBhcyBOZXN0ZWRBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGFbXTtcbiAgICBhbmltYXRpb25UcmlnZ2Vycy5mb3JFYWNoKHJlZ2lzdGVyVHJpZ2dlcik7XG5cbiAgICByZXR1cm4gbmV3IEFuaW1hdGlvblJlbmRlcmVyKHRoaXMsIG5hbWVzcGFjZUlkLCBkZWxlZ2F0ZSwgdGhpcy5lbmdpbmUpO1xuICB9XG5cbiAgYmVnaW4oKSB7XG4gICAgdGhpcy5fY2RSZWN1ckRlcHRoKys7XG4gICAgaWYgKHRoaXMuZGVsZWdhdGUuYmVnaW4pIHtcbiAgICAgIHRoaXMuZGVsZWdhdGUuYmVnaW4oKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9zY2hlZHVsZUNvdW50VGFzaygpIHtcbiAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICB0aGlzLl9taWNyb3Rhc2tJZCsrO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBzY2hlZHVsZUxpc3RlbmVyQ2FsbGJhY2soY291bnQ6IG51bWJlciwgZm46IChlOiBhbnkpID0+IGFueSwgZGF0YTogYW55KSB7XG4gICAgaWYgKGNvdW50ID49IDAgJiYgY291bnQgPCB0aGlzLl9taWNyb3Rhc2tJZCkge1xuICAgICAgdGhpcy5fem9uZS5ydW4oKCkgPT4gZm4oZGF0YSkpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGFuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlciA9IHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlcjtcbiAgICBpZiAoYW5pbWF0aW9uQ2FsbGJhY2tzQnVmZmVyLmxlbmd0aCA9PSAwKSB7XG4gICAgICBxdWV1ZU1pY3JvdGFzaygoKSA9PiB7XG4gICAgICAgIHRoaXMuX3pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICBhbmltYXRpb25DYWxsYmFja3NCdWZmZXIuZm9yRWFjaCgodHVwbGUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IFtmbiwgZGF0YV0gPSB0dXBsZTtcbiAgICAgICAgICAgIGZuKGRhdGEpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMuX2FuaW1hdGlvbkNhbGxiYWNrc0J1ZmZlciA9IFtdO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBhbmltYXRpb25DYWxsYmFja3NCdWZmZXIucHVzaChbZm4sIGRhdGFdKTtcbiAgfVxuXG4gIGVuZCgpIHtcbiAgICB0aGlzLl9jZFJlY3VyRGVwdGgtLTtcblxuICAgIC8vIHRoaXMgaXMgdG8gcHJldmVudCBhbmltYXRpb25zIGZyb20gcnVubmluZyB0d2ljZSB3aGVuIGFuIGlubmVyXG4gICAgLy8gY29tcG9uZW50IGRvZXMgQ0Qgd2hlbiBhIHBhcmVudCBjb21wb25lbnQgaW5zdGVhZCBoYXMgaW5zZXJ0ZWQgaXRcbiAgICBpZiAodGhpcy5fY2RSZWN1ckRlcHRoID09IDApIHtcbiAgICAgIHRoaXMuX3pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xuICAgICAgICB0aGlzLl9zY2hlZHVsZUNvdW50VGFzaygpO1xuICAgICAgICB0aGlzLmVuZ2luZS5mbHVzaCh0aGlzLl9taWNyb3Rhc2tJZCk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGVsZWdhdGUuZW5kKSB7XG4gICAgICB0aGlzLmRlbGVnYXRlLmVuZCgpO1xuICAgIH1cbiAgfVxuXG4gIHdoZW5SZW5kZXJpbmdEb25lKCk6IFByb21pc2U8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuZW5naW5lLndoZW5SZW5kZXJpbmdEb25lKCk7XG4gIH1cbn1cbiJdfQ==