@angular/animations 19.0.0-next.1 → 19.0.0-next.11

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 (62) hide show
  1. package/LICENSE +21 -0
  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/animations.mjs.map +1 -1
  6. package/fesm2022/browser/testing.mjs +1 -1
  7. package/fesm2022/browser/testing.mjs.map +1 -1
  8. package/fesm2022/browser.mjs +4 -4
  9. package/fesm2022/browser.mjs.map +1 -1
  10. package/index.d.ts +1 -1
  11. package/package.json +2 -8
  12. package/esm2022/animations.mjs +0 -5
  13. package/esm2022/browser/browser.mjs +0 -5
  14. package/esm2022/browser/index.mjs +0 -13
  15. package/esm2022/browser/public_api.mjs +0 -14
  16. package/esm2022/browser/src/browser.mjs +0 -15
  17. package/esm2022/browser/src/create_engine.mjs +0 -20
  18. package/esm2022/browser/src/dsl/animation.mjs +0 -37
  19. package/esm2022/browser/src/dsl/animation_ast.mjs +0 -3
  20. package/esm2022/browser/src/dsl/animation_ast_builder.mjs +0 -514
  21. package/esm2022/browser/src/dsl/animation_dsl_visitor.mjs +0 -2
  22. package/esm2022/browser/src/dsl/animation_timeline_builder.mjs +0 -780
  23. package/esm2022/browser/src/dsl/animation_timeline_instruction.mjs +0 -15
  24. package/esm2022/browser/src/dsl/animation_transition_expr.mjs +0 -82
  25. package/esm2022/browser/src/dsl/animation_transition_factory.mjs +0 -152
  26. package/esm2022/browser/src/dsl/animation_transition_instruction.mjs +0 -26
  27. package/esm2022/browser/src/dsl/animation_trigger.mjs +0 -65
  28. package/esm2022/browser/src/dsl/element_instruction_map.mjs +0 -22
  29. package/esm2022/browser/src/dsl/style_normalization/animation_style_normalizer.mjs +0 -18
  30. package/esm2022/browser/src/dsl/style_normalization/web_animations_style_normalizer.mjs +0 -63
  31. package/esm2022/browser/src/error_helpers.mjs +0 -145
  32. package/esm2022/browser/src/private_export.mjs +0 -19
  33. package/esm2022/browser/src/render/animation_driver.mjs +0 -71
  34. package/esm2022/browser/src/render/animation_engine_instruction.mjs +0 -2
  35. package/esm2022/browser/src/render/animation_engine_next.mjs +0 -83
  36. package/esm2022/browser/src/render/animation_renderer.mjs +0 -99
  37. package/esm2022/browser/src/render/renderer.mjs +0 -165
  38. package/esm2022/browser/src/render/shared.mjs +0 -162
  39. package/esm2022/browser/src/render/special_cased_styles.mjs +0 -97
  40. package/esm2022/browser/src/render/timeline_animation_engine.mjs +0 -140
  41. package/esm2022/browser/src/render/transition_animation_engine.mjs +0 -1516
  42. package/esm2022/browser/src/render/web_animations/animatable_props_set.mjs +0 -214
  43. package/esm2022/browser/src/render/web_animations/web_animations_driver.mjs +0 -54
  44. package/esm2022/browser/src/render/web_animations/web_animations_player.mjs +0 -177
  45. package/esm2022/browser/src/util.mjs +0 -217
  46. package/esm2022/browser/src/warning_helpers.mjs +0 -36
  47. package/esm2022/browser/testing/index.mjs +0 -13
  48. package/esm2022/browser/testing/public_api.mjs +0 -14
  49. package/esm2022/browser/testing/src/mock_animation_driver.mjs +0 -117
  50. package/esm2022/browser/testing/src/testing.mjs +0 -9
  51. package/esm2022/browser/testing/testing.mjs +0 -5
  52. package/esm2022/index.mjs +0 -13
  53. package/esm2022/public_api.mjs +0 -14
  54. package/esm2022/src/animation_builder.mjs +0 -200
  55. package/esm2022/src/animation_event.mjs +0 -9
  56. package/esm2022/src/animation_metadata.mjs +0 -934
  57. package/esm2022/src/animations.mjs +0 -17
  58. package/esm2022/src/errors.mjs +0 -9
  59. package/esm2022/src/players/animation_group_player.mjs +0 -147
  60. package/esm2022/src/players/animation_player.mjs +0 -104
  61. package/esm2022/src/private_export.mjs +0 -11
  62. package/esm2022/src/version.mjs +0 -15
@@ -1,214 +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
- /**
9
- * Set of all animatable CSS properties
10
- *
11
- * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties
12
- */
13
- export const ANIMATABLE_PROP_SET = new Set([
14
- '-moz-outline-radius',
15
- '-moz-outline-radius-bottomleft',
16
- '-moz-outline-radius-bottomright',
17
- '-moz-outline-radius-topleft',
18
- '-moz-outline-radius-topright',
19
- '-ms-grid-columns',
20
- '-ms-grid-rows',
21
- '-webkit-line-clamp',
22
- '-webkit-text-fill-color',
23
- '-webkit-text-stroke',
24
- '-webkit-text-stroke-color',
25
- 'accent-color',
26
- 'all',
27
- 'backdrop-filter',
28
- 'background',
29
- 'background-color',
30
- 'background-position',
31
- 'background-size',
32
- 'block-size',
33
- 'border',
34
- 'border-block-end',
35
- 'border-block-end-color',
36
- 'border-block-end-width',
37
- 'border-block-start',
38
- 'border-block-start-color',
39
- 'border-block-start-width',
40
- 'border-bottom',
41
- 'border-bottom-color',
42
- 'border-bottom-left-radius',
43
- 'border-bottom-right-radius',
44
- 'border-bottom-width',
45
- 'border-color',
46
- 'border-end-end-radius',
47
- 'border-end-start-radius',
48
- 'border-image-outset',
49
- 'border-image-slice',
50
- 'border-image-width',
51
- 'border-inline-end',
52
- 'border-inline-end-color',
53
- 'border-inline-end-width',
54
- 'border-inline-start',
55
- 'border-inline-start-color',
56
- 'border-inline-start-width',
57
- 'border-left',
58
- 'border-left-color',
59
- 'border-left-width',
60
- 'border-radius',
61
- 'border-right',
62
- 'border-right-color',
63
- 'border-right-width',
64
- 'border-start-end-radius',
65
- 'border-start-start-radius',
66
- 'border-top',
67
- 'border-top-color',
68
- 'border-top-left-radius',
69
- 'border-top-right-radius',
70
- 'border-top-width',
71
- 'border-width',
72
- 'bottom',
73
- 'box-shadow',
74
- 'caret-color',
75
- 'clip',
76
- 'clip-path',
77
- 'color',
78
- 'column-count',
79
- 'column-gap',
80
- 'column-rule',
81
- 'column-rule-color',
82
- 'column-rule-width',
83
- 'column-width',
84
- 'columns',
85
- 'filter',
86
- 'flex',
87
- 'flex-basis',
88
- 'flex-grow',
89
- 'flex-shrink',
90
- 'font',
91
- 'font-size',
92
- 'font-size-adjust',
93
- 'font-stretch',
94
- 'font-variation-settings',
95
- 'font-weight',
96
- 'gap',
97
- 'grid-column-gap',
98
- 'grid-gap',
99
- 'grid-row-gap',
100
- 'grid-template-columns',
101
- 'grid-template-rows',
102
- 'height',
103
- 'inline-size',
104
- 'input-security',
105
- 'inset',
106
- 'inset-block',
107
- 'inset-block-end',
108
- 'inset-block-start',
109
- 'inset-inline',
110
- 'inset-inline-end',
111
- 'inset-inline-start',
112
- 'left',
113
- 'letter-spacing',
114
- 'line-clamp',
115
- 'line-height',
116
- 'margin',
117
- 'margin-block-end',
118
- 'margin-block-start',
119
- 'margin-bottom',
120
- 'margin-inline-end',
121
- 'margin-inline-start',
122
- 'margin-left',
123
- 'margin-right',
124
- 'margin-top',
125
- 'mask',
126
- 'mask-border',
127
- 'mask-position',
128
- 'mask-size',
129
- 'max-block-size',
130
- 'max-height',
131
- 'max-inline-size',
132
- 'max-lines',
133
- 'max-width',
134
- 'min-block-size',
135
- 'min-height',
136
- 'min-inline-size',
137
- 'min-width',
138
- 'object-position',
139
- 'offset',
140
- 'offset-anchor',
141
- 'offset-distance',
142
- 'offset-path',
143
- 'offset-position',
144
- 'offset-rotate',
145
- 'opacity',
146
- 'order',
147
- 'outline',
148
- 'outline-color',
149
- 'outline-offset',
150
- 'outline-width',
151
- 'padding',
152
- 'padding-block-end',
153
- 'padding-block-start',
154
- 'padding-bottom',
155
- 'padding-inline-end',
156
- 'padding-inline-start',
157
- 'padding-left',
158
- 'padding-right',
159
- 'padding-top',
160
- 'perspective',
161
- 'perspective-origin',
162
- 'right',
163
- 'rotate',
164
- 'row-gap',
165
- 'scale',
166
- 'scroll-margin',
167
- 'scroll-margin-block',
168
- 'scroll-margin-block-end',
169
- 'scroll-margin-block-start',
170
- 'scroll-margin-bottom',
171
- 'scroll-margin-inline',
172
- 'scroll-margin-inline-end',
173
- 'scroll-margin-inline-start',
174
- 'scroll-margin-left',
175
- 'scroll-margin-right',
176
- 'scroll-margin-top',
177
- 'scroll-padding',
178
- 'scroll-padding-block',
179
- 'scroll-padding-block-end',
180
- 'scroll-padding-block-start',
181
- 'scroll-padding-bottom',
182
- 'scroll-padding-inline',
183
- 'scroll-padding-inline-end',
184
- 'scroll-padding-inline-start',
185
- 'scroll-padding-left',
186
- 'scroll-padding-right',
187
- 'scroll-padding-top',
188
- 'scroll-snap-coordinate',
189
- 'scroll-snap-destination',
190
- 'scrollbar-color',
191
- 'shape-image-threshold',
192
- 'shape-margin',
193
- 'shape-outside',
194
- 'tab-size',
195
- 'text-decoration',
196
- 'text-decoration-color',
197
- 'text-decoration-thickness',
198
- 'text-emphasis',
199
- 'text-emphasis-color',
200
- 'text-indent',
201
- 'text-shadow',
202
- 'text-underline-offset',
203
- 'top',
204
- 'transform',
205
- 'transform-origin',
206
- 'translate',
207
- 'vertical-align',
208
- 'visibility',
209
- 'width',
210
- 'word-spacing',
211
- 'z-index',
212
- 'zoom',
213
- ]);
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5pbWF0YWJsZV9wcm9wc19zZXQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9hbmltYXRpb25zL2Jyb3dzZXIvc3JjL3JlbmRlci93ZWJfYW5pbWF0aW9ucy9hbmltYXRhYmxlX3Byb3BzX3NldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSDs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxHQUFHLENBQUM7SUFDekMscUJBQXFCO0lBQ3JCLGdDQUFnQztJQUNoQyxpQ0FBaUM7SUFDakMsNkJBQTZCO0lBQzdCLDhCQUE4QjtJQUM5QixrQkFBa0I7SUFDbEIsZUFBZTtJQUNmLG9CQUFvQjtJQUNwQix5QkFBeUI7SUFDekIscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQixjQUFjO0lBQ2QsS0FBSztJQUNMLGlCQUFpQjtJQUNqQixZQUFZO0lBQ1osa0JBQWtCO0lBQ2xCLHFCQUFxQjtJQUNyQixpQkFBaUI7SUFDakIsWUFBWTtJQUNaLFFBQVE7SUFDUixrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLDBCQUEwQjtJQUMxQixlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLDJCQUEyQjtJQUMzQiw0QkFBNEI7SUFDNUIscUJBQXFCO0lBQ3JCLGNBQWM7SUFDZCx1QkFBdUI7SUFDdkIseUJBQXlCO0lBQ3pCLHFCQUFxQjtJQUNyQixvQkFBb0I7SUFDcEIsb0JBQW9CO0lBQ3BCLG1CQUFtQjtJQUNuQix5QkFBeUI7SUFDekIseUJBQXlCO0lBQ3pCLHFCQUFxQjtJQUNyQiwyQkFBMkI7SUFDM0IsMkJBQTJCO0lBQzNCLGFBQWE7SUFDYixtQkFBbUI7SUFDbkIsbUJBQW1CO0lBQ25CLGVBQWU7SUFDZixjQUFjO0lBQ2Qsb0JBQW9CO0lBQ3BCLG9CQUFvQjtJQUNwQix5QkFBeUI7SUFDekIsMkJBQTJCO0lBQzNCLFlBQVk7SUFDWixrQkFBa0I7SUFDbEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixrQkFBa0I7SUFDbEIsY0FBYztJQUNkLFFBQVE7SUFDUixZQUFZO0lBQ1osYUFBYTtJQUNiLE1BQU07SUFDTixXQUFXO0lBQ1gsT0FBTztJQUNQLGNBQWM7SUFDZCxZQUFZO0lBQ1osYUFBYTtJQUNiLG1CQUFtQjtJQUNuQixtQkFBbUI7SUFDbkIsY0FBYztJQUNkLFNBQVM7SUFDVCxRQUFRO0lBQ1IsTUFBTTtJQUNOLFlBQVk7SUFDWixXQUFXO0lBQ1gsYUFBYTtJQUNiLE1BQU07SUFDTixXQUFXO0lBQ1gsa0JBQWtCO0lBQ2xCLGNBQWM7SUFDZCx5QkFBeUI7SUFDekIsYUFBYTtJQUNiLEtBQUs7SUFDTCxpQkFBaUI7SUFDakIsVUFBVTtJQUNWLGNBQWM7SUFDZCx1QkFBdUI7SUFDdkIsb0JBQW9CO0lBQ3BCLFFBQVE7SUFDUixhQUFhO0lBQ2IsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLG1CQUFtQjtJQUNuQixjQUFjO0lBQ2Qsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixNQUFNO0lBQ04sZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixhQUFhO0lBQ2IsUUFBUTtJQUNSLGtCQUFrQjtJQUNsQixvQkFBb0I7SUFDcEIsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLGNBQWM7SUFDZCxZQUFZO0lBQ1osTUFBTTtJQUNOLGFBQWE7SUFDYixlQUFlO0lBQ2YsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osaUJBQWlCO0lBQ2pCLFdBQVc7SUFDWCxXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixpQkFBaUI7SUFDakIsV0FBVztJQUNYLGlCQUFpQjtJQUNqQixRQUFRO0lBQ1IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixhQUFhO0lBQ2IsaUJBQWlCO0lBQ2pCLGVBQWU7SUFDZixTQUFTO0lBQ1QsT0FBTztJQUNQLFNBQVM7SUFDVCxlQUFlO0lBQ2YsZ0JBQWdCO0lBQ2hCLGVBQWU7SUFDZixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLHFCQUFxQjtJQUNyQixnQkFBZ0I7SUFDaEIsb0JBQW9CO0lBQ3BCLHNCQUFzQjtJQUN0QixjQUFjO0lBQ2QsZUFBZTtJQUNmLGFBQWE7SUFDYixhQUFhO0lBQ2Isb0JBQW9CO0lBQ3BCLE9BQU87SUFDUCxRQUFRO0lBQ1IsU0FBUztJQUNULE9BQU87SUFDUCxlQUFlO0lBQ2YscUJBQXFCO0lBQ3JCLHlCQUF5QjtJQUN6QiwyQkFBMkI7SUFDM0Isc0JBQXNCO0lBQ3RCLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUIsNEJBQTRCO0lBQzVCLG9CQUFvQjtJQUNwQixxQkFBcUI7SUFDckIsbUJBQW1CO0lBQ25CLGdCQUFnQjtJQUNoQixzQkFBc0I7SUFDdEIsMEJBQTBCO0lBQzFCLDRCQUE0QjtJQUM1Qix1QkFBdUI7SUFDdkIsdUJBQXVCO0lBQ3ZCLDJCQUEyQjtJQUMzQiw2QkFBNkI7SUFDN0IscUJBQXFCO0lBQ3JCLHNCQUFzQjtJQUN0QixvQkFBb0I7SUFDcEIsd0JBQXdCO0lBQ3hCLHlCQUF5QjtJQUN6QixpQkFBaUI7SUFDakIsdUJBQXVCO0lBQ3ZCLGNBQWM7SUFDZCxlQUFlO0lBQ2YsVUFBVTtJQUNWLGlCQUFpQjtJQUNqQix1QkFBdUI7SUFDdkIsMkJBQTJCO0lBQzNCLGVBQWU7SUFDZixxQkFBcUI7SUFDckIsYUFBYTtJQUNiLGFBQWE7SUFDYix1QkFBdUI7SUFDdkIsS0FBSztJQUNMLFdBQVc7SUFDWCxrQkFBa0I7SUFDbEIsV0FBVztJQUNYLGdCQUFnQjtJQUNoQixZQUFZO0lBQ1osT0FBTztJQUNQLGNBQWM7SUFDZCxTQUFTO0lBQ1QsTUFBTTtDQUNQLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKipcbiAqIFNldCBvZiBhbGwgYW5pbWF0YWJsZSBDU1MgcHJvcGVydGllc1xuICpcbiAqIEBzZWUgaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQ1NTL0NTU19hbmltYXRlZF9wcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBjb25zdCBBTklNQVRBQkxFX1BST1BfU0VUID0gbmV3IFNldChbXG4gICctbW96LW91dGxpbmUtcmFkaXVzJyxcbiAgJy1tb3otb3V0bGluZS1yYWRpdXMtYm90dG9tbGVmdCcsXG4gICctbW96LW91dGxpbmUtcmFkaXVzLWJvdHRvbXJpZ2h0JyxcbiAgJy1tb3otb3V0bGluZS1yYWRpdXMtdG9wbGVmdCcsXG4gICctbW96LW91dGxpbmUtcmFkaXVzLXRvcHJpZ2h0JyxcbiAgJy1tcy1ncmlkLWNvbHVtbnMnLFxuICAnLW1zLWdyaWQtcm93cycsXG4gICctd2Via2l0LWxpbmUtY2xhbXAnLFxuICAnLXdlYmtpdC10ZXh0LWZpbGwtY29sb3InLFxuICAnLXdlYmtpdC10ZXh0LXN0cm9rZScsXG4gICctd2Via2l0LXRleHQtc3Ryb2tlLWNvbG9yJyxcbiAgJ2FjY2VudC1jb2xvcicsXG4gICdhbGwnLFxuICAnYmFja2Ryb3AtZmlsdGVyJyxcbiAgJ2JhY2tncm91bmQnLFxuICAnYmFja2dyb3VuZC1jb2xvcicsXG4gICdiYWNrZ3JvdW5kLXBvc2l0aW9uJyxcbiAgJ2JhY2tncm91bmQtc2l6ZScsXG4gICdibG9jay1zaXplJyxcbiAgJ2JvcmRlcicsXG4gICdib3JkZXItYmxvY2stZW5kJyxcbiAgJ2JvcmRlci1ibG9jay1lbmQtY29sb3InLFxuICAnYm9yZGVyLWJsb2NrLWVuZC13aWR0aCcsXG4gICdib3JkZXItYmxvY2stc3RhcnQnLFxuICAnYm9yZGVyLWJsb2NrLXN0YXJ0LWNvbG9yJyxcbiAgJ2JvcmRlci1ibG9jay1zdGFydC13aWR0aCcsXG4gICdib3JkZXItYm90dG9tJyxcbiAgJ2JvcmRlci1ib3R0b20tY29sb3InLFxuICAnYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItYm90dG9tLXdpZHRoJyxcbiAgJ2JvcmRlci1jb2xvcicsXG4gICdib3JkZXItZW5kLWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLWVuZC1zdGFydC1yYWRpdXMnLFxuICAnYm9yZGVyLWltYWdlLW91dHNldCcsXG4gICdib3JkZXItaW1hZ2Utc2xpY2UnLFxuICAnYm9yZGVyLWltYWdlLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLWNvbG9yJyxcbiAgJ2JvcmRlci1pbmxpbmUtZW5kLXdpZHRoJyxcbiAgJ2JvcmRlci1pbmxpbmUtc3RhcnQnLFxuICAnYm9yZGVyLWlubGluZS1zdGFydC1jb2xvcicsXG4gICdib3JkZXItaW5saW5lLXN0YXJ0LXdpZHRoJyxcbiAgJ2JvcmRlci1sZWZ0JyxcbiAgJ2JvcmRlci1sZWZ0LWNvbG9yJyxcbiAgJ2JvcmRlci1sZWZ0LXdpZHRoJyxcbiAgJ2JvcmRlci1yYWRpdXMnLFxuICAnYm9yZGVyLXJpZ2h0JyxcbiAgJ2JvcmRlci1yaWdodC1jb2xvcicsXG4gICdib3JkZXItcmlnaHQtd2lkdGgnLFxuICAnYm9yZGVyLXN0YXJ0LWVuZC1yYWRpdXMnLFxuICAnYm9yZGVyLXN0YXJ0LXN0YXJ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wJyxcbiAgJ2JvcmRlci10b3AtY29sb3InLFxuICAnYm9yZGVyLXRvcC1sZWZ0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXJpZ2h0LXJhZGl1cycsXG4gICdib3JkZXItdG9wLXdpZHRoJyxcbiAgJ2JvcmRlci13aWR0aCcsXG4gICdib3R0b20nLFxuICAnYm94LXNoYWRvdycsXG4gICdjYXJldC1jb2xvcicsXG4gICdjbGlwJyxcbiAgJ2NsaXAtcGF0aCcsXG4gICdjb2xvcicsXG4gICdjb2x1bW4tY291bnQnLFxuICAnY29sdW1uLWdhcCcsXG4gICdjb2x1bW4tcnVsZScsXG4gICdjb2x1bW4tcnVsZS1jb2xvcicsXG4gICdjb2x1bW4tcnVsZS13aWR0aCcsXG4gICdjb2x1bW4td2lkdGgnLFxuICAnY29sdW1ucycsXG4gICdmaWx0ZXInLFxuICAnZmxleCcsXG4gICdmbGV4LWJhc2lzJyxcbiAgJ2ZsZXgtZ3JvdycsXG4gICdmbGV4LXNocmluaycsXG4gICdmb250JyxcbiAgJ2ZvbnQtc2l6ZScsXG4gICdmb250LXNpemUtYWRqdXN0JyxcbiAgJ2ZvbnQtc3RyZXRjaCcsXG4gICdmb250LXZhcmlhdGlvbi1zZXR0aW5ncycsXG4gICdmb250LXdlaWdodCcsXG4gICdnYXAnLFxuICAnZ3JpZC1jb2x1bW4tZ2FwJyxcbiAgJ2dyaWQtZ2FwJyxcbiAgJ2dyaWQtcm93LWdhcCcsXG4gICdncmlkLXRlbXBsYXRlLWNvbHVtbnMnLFxuICAnZ3JpZC10ZW1wbGF0ZS1yb3dzJyxcbiAgJ2hlaWdodCcsXG4gICdpbmxpbmUtc2l6ZScsXG4gICdpbnB1dC1zZWN1cml0eScsXG4gICdpbnNldCcsXG4gICdpbnNldC1ibG9jaycsXG4gICdpbnNldC1ibG9jay1lbmQnLFxuICAnaW5zZXQtYmxvY2stc3RhcnQnLFxuICAnaW5zZXQtaW5saW5lJyxcbiAgJ2luc2V0LWlubGluZS1lbmQnLFxuICAnaW5zZXQtaW5saW5lLXN0YXJ0JyxcbiAgJ2xlZnQnLFxuICAnbGV0dGVyLXNwYWNpbmcnLFxuICAnbGluZS1jbGFtcCcsXG4gICdsaW5lLWhlaWdodCcsXG4gICdtYXJnaW4nLFxuICAnbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdtYXJnaW4tYmxvY2stc3RhcnQnLFxuICAnbWFyZ2luLWJvdHRvbScsXG4gICdtYXJnaW4taW5saW5lLWVuZCcsXG4gICdtYXJnaW4taW5saW5lLXN0YXJ0JyxcbiAgJ21hcmdpbi1sZWZ0JyxcbiAgJ21hcmdpbi1yaWdodCcsXG4gICdtYXJnaW4tdG9wJyxcbiAgJ21hc2snLFxuICAnbWFzay1ib3JkZXInLFxuICAnbWFzay1wb3NpdGlvbicsXG4gICdtYXNrLXNpemUnLFxuICAnbWF4LWJsb2NrLXNpemUnLFxuICAnbWF4LWhlaWdodCcsXG4gICdtYXgtaW5saW5lLXNpemUnLFxuICAnbWF4LWxpbmVzJyxcbiAgJ21heC13aWR0aCcsXG4gICdtaW4tYmxvY2stc2l6ZScsXG4gICdtaW4taGVpZ2h0JyxcbiAgJ21pbi1pbmxpbmUtc2l6ZScsXG4gICdtaW4td2lkdGgnLFxuICAnb2JqZWN0LXBvc2l0aW9uJyxcbiAgJ29mZnNldCcsXG4gICdvZmZzZXQtYW5jaG9yJyxcbiAgJ29mZnNldC1kaXN0YW5jZScsXG4gICdvZmZzZXQtcGF0aCcsXG4gICdvZmZzZXQtcG9zaXRpb24nLFxuICAnb2Zmc2V0LXJvdGF0ZScsXG4gICdvcGFjaXR5JyxcbiAgJ29yZGVyJyxcbiAgJ291dGxpbmUnLFxuICAnb3V0bGluZS1jb2xvcicsXG4gICdvdXRsaW5lLW9mZnNldCcsXG4gICdvdXRsaW5lLXdpZHRoJyxcbiAgJ3BhZGRpbmcnLFxuICAncGFkZGluZy1ibG9jay1lbmQnLFxuICAncGFkZGluZy1ibG9jay1zdGFydCcsXG4gICdwYWRkaW5nLWJvdHRvbScsXG4gICdwYWRkaW5nLWlubGluZS1lbmQnLFxuICAncGFkZGluZy1pbmxpbmUtc3RhcnQnLFxuICAncGFkZGluZy1sZWZ0JyxcbiAgJ3BhZGRpbmctcmlnaHQnLFxuICAncGFkZGluZy10b3AnLFxuICAncGVyc3BlY3RpdmUnLFxuICAncGVyc3BlY3RpdmUtb3JpZ2luJyxcbiAgJ3JpZ2h0JyxcbiAgJ3JvdGF0ZScsXG4gICdyb3ctZ2FwJyxcbiAgJ3NjYWxlJyxcbiAgJ3Njcm9sbC1tYXJnaW4nLFxuICAnc2Nyb2xsLW1hcmdpbi1ibG9jaycsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWJsb2NrLXN0YXJ0JyxcbiAgJ3Njcm9sbC1tYXJnaW4tYm90dG9tJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lJyxcbiAgJ3Njcm9sbC1tYXJnaW4taW5saW5lLWVuZCcsXG4gICdzY3JvbGwtbWFyZ2luLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtbWFyZ2luLWxlZnQnLFxuICAnc2Nyb2xsLW1hcmdpbi1yaWdodCcsXG4gICdzY3JvbGwtbWFyZ2luLXRvcCcsXG4gICdzY3JvbGwtcGFkZGluZycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jaycsXG4gICdzY3JvbGwtcGFkZGluZy1ibG9jay1lbmQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYmxvY2stc3RhcnQnLFxuICAnc2Nyb2xsLXBhZGRpbmctYm90dG9tJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZScsXG4gICdzY3JvbGwtcGFkZGluZy1pbmxpbmUtZW5kJyxcbiAgJ3Njcm9sbC1wYWRkaW5nLWlubGluZS1zdGFydCcsXG4gICdzY3JvbGwtcGFkZGluZy1sZWZ0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXJpZ2h0JyxcbiAgJ3Njcm9sbC1wYWRkaW5nLXRvcCcsXG4gICdzY3JvbGwtc25hcC1jb29yZGluYXRlJyxcbiAgJ3Njcm9sbC1zbmFwLWRlc3RpbmF0aW9uJyxcbiAgJ3Njcm9sbGJhci1jb2xvcicsXG4gICdzaGFwZS1pbWFnZS10aHJlc2hvbGQnLFxuICAnc2hhcGUtbWFyZ2luJyxcbiAgJ3NoYXBlLW91dHNpZGUnLFxuICAndGFiLXNpemUnLFxuICAndGV4dC1kZWNvcmF0aW9uJyxcbiAgJ3RleHQtZGVjb3JhdGlvbi1jb2xvcicsXG4gICd0ZXh0LWRlY29yYXRpb24tdGhpY2tuZXNzJyxcbiAgJ3RleHQtZW1waGFzaXMnLFxuICAndGV4dC1lbXBoYXNpcy1jb2xvcicsXG4gICd0ZXh0LWluZGVudCcsXG4gICd0ZXh0LXNoYWRvdycsXG4gICd0ZXh0LXVuZGVybGluZS1vZmZzZXQnLFxuICAndG9wJyxcbiAgJ3RyYW5zZm9ybScsXG4gICd0cmFuc2Zvcm0tb3JpZ2luJyxcbiAgJ3RyYW5zbGF0ZScsXG4gICd2ZXJ0aWNhbC1hbGlnbicsXG4gICd2aXNpYmlsaXR5JyxcbiAgJ3dpZHRoJyxcbiAgJ3dvcmQtc3BhY2luZycsXG4gICd6LWluZGV4JyxcbiAgJ3pvb20nLFxuXSk7XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { allowPreviousPlayerStylesMerge, balancePreviousStylesIntoKeyframes, camelCaseToDashCase, computeStyle, normalizeKeyframes, } from '../../util';
2
- import { containsElement, getParentElement, invokeQuery, validateStyleProperty, validateWebAnimatableStyleProperty, } from '../shared';
3
- import { packageNonAnimatableStyles } from '../special_cased_styles';
4
- import { WebAnimationsPlayer } from './web_animations_player';
5
- export class WebAnimationsDriver {
6
- validateStyleProperty(prop) {
7
- // Perform actual validation in dev mode only, in prod mode this check is a noop.
8
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
9
- return validateStyleProperty(prop);
10
- }
11
- return true;
12
- }
13
- validateAnimatableStyleProperty(prop) {
14
- // Perform actual validation in dev mode only, in prod mode this check is a noop.
15
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
16
- const cssProp = camelCaseToDashCase(prop);
17
- return validateWebAnimatableStyleProperty(cssProp);
18
- }
19
- return true;
20
- }
21
- containsElement(elm1, elm2) {
22
- return containsElement(elm1, elm2);
23
- }
24
- getParentElement(element) {
25
- return getParentElement(element);
26
- }
27
- query(element, selector, multi) {
28
- return invokeQuery(element, selector, multi);
29
- }
30
- computeStyle(element, prop, defaultValue) {
31
- return computeStyle(element, prop);
32
- }
33
- animate(element, keyframes, duration, delay, easing, previousPlayers = []) {
34
- const fill = delay == 0 ? 'both' : 'forwards';
35
- const playerOptions = { duration, delay, fill };
36
- // we check for this to avoid having a null|undefined value be present
37
- // for the easing (which results in an error for certain browsers #9752)
38
- if (easing) {
39
- playerOptions['easing'] = easing;
40
- }
41
- const previousStyles = new Map();
42
- const previousWebAnimationPlayers = (previousPlayers.filter((player) => player instanceof WebAnimationsPlayer));
43
- if (allowPreviousPlayerStylesMerge(duration, delay)) {
44
- previousWebAnimationPlayers.forEach((player) => {
45
- player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));
46
- });
47
- }
48
- let _keyframes = normalizeKeyframes(keyframes).map((styles) => new Map(styles));
49
- _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);
50
- const specialStyles = packageNonAnimatableStyles(element, _keyframes);
51
- return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);
52
- }
53
- }
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX2FuaW1hdGlvbnNfZHJpdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5pbWF0aW9ucy9icm93c2VyL3NyYy9yZW5kZXIvd2ViX2FuaW1hdGlvbnMvd2ViX2FuaW1hdGlvbnNfZHJpdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsa0NBQWtDLEVBQ2xDLG1CQUFtQixFQUNuQixZQUFZLEVBQ1osa0JBQWtCLEdBQ25CLE1BQU0sWUFBWSxDQUFDO0FBRXBCLE9BQU8sRUFDTCxlQUFlLEVBQ2YsZ0JBQWdCLEVBQ2hCLFdBQVcsRUFDWCxxQkFBcUIsRUFDckIsa0NBQWtDLEdBQ25DLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRW5FLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE1BQU0sT0FBTyxtQkFBbUI7SUFDOUIscUJBQXFCLENBQUMsSUFBWTtRQUNoQyxpRkFBaUY7UUFDakYsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEQsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsK0JBQStCLENBQUMsSUFBWTtRQUMxQyxpRkFBaUY7UUFDakYsSUFBSSxPQUFPLFNBQVMsS0FBSyxXQUFXLElBQUksU0FBUyxFQUFFLENBQUM7WUFDbEQsTUFBTSxPQUFPLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUMsT0FBTyxrQ0FBa0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQVMsRUFBRSxJQUFTO1FBQ2xDLE9BQU8sZUFBZSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsT0FBZ0I7UUFDL0IsT0FBTyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQVksRUFBRSxRQUFnQixFQUFFLEtBQWM7UUFDbEQsT0FBTyxXQUFXLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQsWUFBWSxDQUFDLE9BQVksRUFBRSxJQUFZLEVBQUUsWUFBcUI7UUFDNUQsT0FBTyxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLENBQ0wsT0FBWSxFQUNaLFNBQThDLEVBQzlDLFFBQWdCLEVBQ2hCLEtBQWEsRUFDYixNQUFjLEVBQ2Qsa0JBQXFDLEVBQUU7UUFFdkMsTUFBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7UUFDOUMsTUFBTSxhQUFhLEdBQXFDLEVBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUMsQ0FBQztRQUNoRixzRUFBc0U7UUFDdEUsd0VBQXdFO1FBQ3hFLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxhQUFhLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ25DLENBQUM7UUFFRCxNQUFNLGNBQWMsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNoRCxNQUFNLDJCQUEyQixHQUEwQixDQUN6RCxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLFlBQVksbUJBQW1CLENBQUMsQ0FDMUUsQ0FBQztRQUNGLElBQUksOEJBQThCLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDcEQsMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQzdDLE1BQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxFQUFFLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMvRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLFVBQVUsR0FBRyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEYsVUFBVSxHQUFHLGtDQUFrQyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQUM7UUFDckYsTUFBTSxhQUFhLEdBQUcsMEJBQTBCLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RFLE9BQU8sSUFBSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUNwRixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QW5pbWF0aW9uUGxheWVyLCDJtVN0eWxlRGF0YU1hcH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7XG4gIGFsbG93UHJldmlvdXNQbGF5ZXJTdHlsZXNNZXJnZSxcbiAgYmFsYW5jZVByZXZpb3VzU3R5bGVzSW50b0tleWZyYW1lcyxcbiAgY2FtZWxDYXNlVG9EYXNoQ2FzZSxcbiAgY29tcHV0ZVN0eWxlLFxuICBub3JtYWxpemVLZXlmcmFtZXMsXG59IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHtBbmltYXRpb25Ecml2ZXJ9IGZyb20gJy4uL2FuaW1hdGlvbl9kcml2ZXInO1xuaW1wb3J0IHtcbiAgY29udGFpbnNFbGVtZW50LFxuICBnZXRQYXJlbnRFbGVtZW50LFxuICBpbnZva2VRdWVyeSxcbiAgdmFsaWRhdGVTdHlsZVByb3BlcnR5LFxuICB2YWxpZGF0ZVdlYkFuaW1hdGFibGVTdHlsZVByb3BlcnR5LFxufSBmcm9tICcuLi9zaGFyZWQnO1xuaW1wb3J0IHtwYWNrYWdlTm9uQW5pbWF0YWJsZVN0eWxlc30gZnJvbSAnLi4vc3BlY2lhbF9jYXNlZF9zdHlsZXMnO1xuXG5pbXBvcnQge1dlYkFuaW1hdGlvbnNQbGF5ZXJ9IGZyb20gJy4vd2ViX2FuaW1hdGlvbnNfcGxheWVyJztcblxuZXhwb3J0IGNsYXNzIFdlYkFuaW1hdGlvbnNEcml2ZXIgaW1wbGVtZW50cyBBbmltYXRpb25Ecml2ZXIge1xuICB2YWxpZGF0ZVN0eWxlUHJvcGVydHkocHJvcDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgLy8gUGVyZm9ybSBhY3R1YWwgdmFsaWRhdGlvbiBpbiBkZXYgbW9kZSBvbmx5LCBpbiBwcm9kIG1vZGUgdGhpcyBjaGVjayBpcyBhIG5vb3AuXG4gICAgaWYgKHR5cGVvZiBuZ0Rldk1vZGUgPT09ICd1bmRlZmluZWQnIHx8IG5nRGV2TW9kZSkge1xuICAgICAgcmV0dXJuIHZhbGlkYXRlU3R5bGVQcm9wZXJ0eShwcm9wKTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICB2YWxpZGF0ZUFuaW1hdGFibGVTdHlsZVByb3BlcnR5KHByb3A6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIC8vIFBlcmZvcm0gYWN0dWFsIHZhbGlkYXRpb24gaW4gZGV2IG1vZGUgb25seSwgaW4gcHJvZCBtb2RlIHRoaXMgY2hlY2sgaXMgYSBub29wLlxuICAgIGlmICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpIHtcbiAgICAgIGNvbnN0IGNzc1Byb3AgPSBjYW1lbENhc2VUb0Rhc2hDYXNlKHByb3ApO1xuICAgICAgcmV0dXJuIHZhbGlkYXRlV2ViQW5pbWF0YWJsZVN0eWxlUHJvcGVydHkoY3NzUHJvcCk7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgY29udGFpbnNFbGVtZW50KGVsbTE6IGFueSwgZWxtMjogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGNvbnRhaW5zRWxlbWVudChlbG0xLCBlbG0yKTtcbiAgfVxuXG4gIGdldFBhcmVudEVsZW1lbnQoZWxlbWVudDogdW5rbm93bik6IHVua25vd24ge1xuICAgIHJldHVybiBnZXRQYXJlbnRFbGVtZW50KGVsZW1lbnQpO1xuICB9XG5cbiAgcXVlcnkoZWxlbWVudDogYW55LCBzZWxlY3Rvcjogc3RyaW5nLCBtdWx0aTogYm9vbGVhbik6IGFueVtdIHtcbiAgICByZXR1cm4gaW52b2tlUXVlcnkoZWxlbWVudCwgc2VsZWN0b3IsIG11bHRpKTtcbiAgfVxuXG4gIGNvbXB1dGVTdHlsZShlbGVtZW50OiBhbnksIHByb3A6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gY29tcHV0ZVN0eWxlKGVsZW1lbnQsIHByb3ApO1xuICB9XG5cbiAgYW5pbWF0ZShcbiAgICBlbGVtZW50OiBhbnksXG4gICAga2V5ZnJhbWVzOiBBcnJheTxNYXA8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+PixcbiAgICBkdXJhdGlvbjogbnVtYmVyLFxuICAgIGRlbGF5OiBudW1iZXIsXG4gICAgZWFzaW5nOiBzdHJpbmcsXG4gICAgcHJldmlvdXNQbGF5ZXJzOiBBbmltYXRpb25QbGF5ZXJbXSA9IFtdLFxuICApOiBBbmltYXRpb25QbGF5ZXIge1xuICAgIGNvbnN0IGZpbGwgPSBkZWxheSA9PSAwID8gJ2JvdGgnIDogJ2ZvcndhcmRzJztcbiAgICBjb25zdCBwbGF5ZXJPcHRpb25zOiB7W2tleTogc3RyaW5nXTogc3RyaW5nIHwgbnVtYmVyfSA9IHtkdXJhdGlvbiwgZGVsYXksIGZpbGx9O1xuICAgIC8vIHdlIGNoZWNrIGZvciB0aGlzIHRvIGF2b2lkIGhhdmluZyBhIG51bGx8dW5kZWZpbmVkIHZhbHVlIGJlIHByZXNlbnRcbiAgICAvLyBmb3IgdGhlIGVhc2luZyAod2hpY2ggcmVzdWx0cyBpbiBhbiBlcnJvciBmb3IgY2VydGFpbiBicm93c2VycyAjOTc1MilcbiAgICBpZiAoZWFzaW5nKSB7XG4gICAgICBwbGF5ZXJPcHRpb25zWydlYXNpbmcnXSA9IGVhc2luZztcbiAgICB9XG5cbiAgICBjb25zdCBwcmV2aW91c1N0eWxlczogybVTdHlsZURhdGFNYXAgPSBuZXcgTWFwKCk7XG4gICAgY29uc3QgcHJldmlvdXNXZWJBbmltYXRpb25QbGF5ZXJzID0gPFdlYkFuaW1hdGlvbnNQbGF5ZXJbXT4oXG4gICAgICBwcmV2aW91c1BsYXllcnMuZmlsdGVyKChwbGF5ZXIpID0+IHBsYXllciBpbnN0YW5jZW9mIFdlYkFuaW1hdGlvbnNQbGF5ZXIpXG4gICAgKTtcbiAgICBpZiAoYWxsb3dQcmV2aW91c1BsYXllclN0eWxlc01lcmdlKGR1cmF0aW9uLCBkZWxheSkpIHtcbiAgICAgIHByZXZpb3VzV2ViQW5pbWF0aW9uUGxheWVycy5mb3JFYWNoKChwbGF5ZXIpID0+IHtcbiAgICAgICAgcGxheWVyLmN1cnJlbnRTbmFwc2hvdC5mb3JFYWNoKCh2YWwsIHByb3ApID0+IHByZXZpb3VzU3R5bGVzLnNldChwcm9wLCB2YWwpKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGxldCBfa2V5ZnJhbWVzID0gbm9ybWFsaXplS2V5ZnJhbWVzKGtleWZyYW1lcykubWFwKChzdHlsZXMpID0+IG5ldyBNYXAoc3R5bGVzKSk7XG4gICAgX2tleWZyYW1lcyA9IGJhbGFuY2VQcmV2aW91c1N0eWxlc0ludG9LZXlmcmFtZXMoZWxlbWVudCwgX2tleWZyYW1lcywgcHJldmlvdXNTdHlsZXMpO1xuICAgIGNvbnN0IHNwZWNpYWxTdHlsZXMgPSBwYWNrYWdlTm9uQW5pbWF0YWJsZVN0eWxlcyhlbGVtZW50LCBfa2V5ZnJhbWVzKTtcbiAgICByZXR1cm4gbmV3IFdlYkFuaW1hdGlvbnNQbGF5ZXIoZWxlbWVudCwgX2tleWZyYW1lcywgcGxheWVyT3B0aW9ucywgc3BlY2lhbFN0eWxlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -1,177 +0,0 @@
1
- import { computeStyle } from '../../util';
2
- export class WebAnimationsPlayer {
3
- constructor(element, keyframes, options, _specialStyles) {
4
- this.element = element;
5
- this.keyframes = keyframes;
6
- this.options = options;
7
- this._specialStyles = _specialStyles;
8
- this._onDoneFns = [];
9
- this._onStartFns = [];
10
- this._onDestroyFns = [];
11
- this._initialized = false;
12
- this._finished = false;
13
- this._started = false;
14
- this._destroyed = false;
15
- // the following original fns are persistent copies of the _onStartFns and _onDoneFns
16
- // and are used to reset the fns to their original values upon reset()
17
- // (since the _onStartFns and _onDoneFns get deleted after they are called)
18
- this._originalOnDoneFns = [];
19
- this._originalOnStartFns = [];
20
- this.time = 0;
21
- this.parentPlayer = null;
22
- this.currentSnapshot = new Map();
23
- this._duration = options['duration'];
24
- this._delay = options['delay'] || 0;
25
- this.time = this._duration + this._delay;
26
- }
27
- _onFinish() {
28
- if (!this._finished) {
29
- this._finished = true;
30
- this._onDoneFns.forEach((fn) => fn());
31
- this._onDoneFns = [];
32
- }
33
- }
34
- init() {
35
- this._buildPlayer();
36
- this._preparePlayerBeforeStart();
37
- }
38
- _buildPlayer() {
39
- if (this._initialized)
40
- return;
41
- this._initialized = true;
42
- const keyframes = this.keyframes;
43
- // @ts-expect-error overwriting a readonly property
44
- this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);
45
- this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();
46
- const onFinish = () => this._onFinish();
47
- this.domPlayer.addEventListener('finish', onFinish);
48
- this.onDestroy(() => {
49
- // We must remove the `finish` event listener once an animation has completed all its
50
- // iterations. This action is necessary to prevent a memory leak since the listener captures
51
- // `this`, creating a closure that prevents `this` from being garbage collected.
52
- this.domPlayer.removeEventListener('finish', onFinish);
53
- });
54
- }
55
- _preparePlayerBeforeStart() {
56
- // this is required so that the player doesn't start to animate right away
57
- if (this._delay) {
58
- this._resetDomPlayerState();
59
- }
60
- else {
61
- this.domPlayer.pause();
62
- }
63
- }
64
- _convertKeyframesToObject(keyframes) {
65
- const kfs = [];
66
- keyframes.forEach((frame) => {
67
- kfs.push(Object.fromEntries(frame));
68
- });
69
- return kfs;
70
- }
71
- /** @internal */
72
- _triggerWebAnimation(element, keyframes, options) {
73
- return element.animate(this._convertKeyframesToObject(keyframes), options);
74
- }
75
- onStart(fn) {
76
- this._originalOnStartFns.push(fn);
77
- this._onStartFns.push(fn);
78
- }
79
- onDone(fn) {
80
- this._originalOnDoneFns.push(fn);
81
- this._onDoneFns.push(fn);
82
- }
83
- onDestroy(fn) {
84
- this._onDestroyFns.push(fn);
85
- }
86
- play() {
87
- this._buildPlayer();
88
- if (!this.hasStarted()) {
89
- this._onStartFns.forEach((fn) => fn());
90
- this._onStartFns = [];
91
- this._started = true;
92
- if (this._specialStyles) {
93
- this._specialStyles.start();
94
- }
95
- }
96
- this.domPlayer.play();
97
- }
98
- pause() {
99
- this.init();
100
- this.domPlayer.pause();
101
- }
102
- finish() {
103
- this.init();
104
- if (this._specialStyles) {
105
- this._specialStyles.finish();
106
- }
107
- this._onFinish();
108
- this.domPlayer.finish();
109
- }
110
- reset() {
111
- this._resetDomPlayerState();
112
- this._destroyed = false;
113
- this._finished = false;
114
- this._started = false;
115
- this._onStartFns = this._originalOnStartFns;
116
- this._onDoneFns = this._originalOnDoneFns;
117
- }
118
- _resetDomPlayerState() {
119
- if (this.domPlayer) {
120
- this.domPlayer.cancel();
121
- }
122
- }
123
- restart() {
124
- this.reset();
125
- this.play();
126
- }
127
- hasStarted() {
128
- return this._started;
129
- }
130
- destroy() {
131
- if (!this._destroyed) {
132
- this._destroyed = true;
133
- this._resetDomPlayerState();
134
- this._onFinish();
135
- if (this._specialStyles) {
136
- this._specialStyles.destroy();
137
- }
138
- this._onDestroyFns.forEach((fn) => fn());
139
- this._onDestroyFns = [];
140
- }
141
- }
142
- setPosition(p) {
143
- if (this.domPlayer === undefined) {
144
- this.init();
145
- }
146
- this.domPlayer.currentTime = p * this.time;
147
- }
148
- getPosition() {
149
- // tsc is complaining with TS2362 without the conversion to number
150
- return +(this.domPlayer.currentTime ?? 0) / this.time;
151
- }
152
- get totalTime() {
153
- return this._delay + this._duration;
154
- }
155
- beforeDestroy() {
156
- const styles = new Map();
157
- if (this.hasStarted()) {
158
- // note: this code is invoked only when the `play` function was called prior to this
159
- // (thus `hasStarted` returns true), this implies that the code that initializes
160
- // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here
161
- const finalKeyframe = this._finalKeyframe;
162
- finalKeyframe.forEach((val, prop) => {
163
- if (prop !== 'offset') {
164
- styles.set(prop, this._finished ? val : computeStyle(this.element, prop));
165
- }
166
- });
167
- }
168
- this.currentSnapshot = styles;
169
- }
170
- /** @internal */
171
- triggerCallback(phaseName) {
172
- const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;
173
- methods.forEach((fn) => fn());
174
- methods.length = 0;
175
- }
176
- }
177
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2ViX2FuaW1hdGlvbnNfcGxheWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvYW5pbWF0aW9ucy9icm93c2VyL3NyYy9yZW5kZXIvd2ViX2FuaW1hdGlvbnMvd2ViX2FuaW1hdGlvbnNfcGxheWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxZQUFZLENBQUM7QUFHeEMsTUFBTSxPQUFPLG1CQUFtQjtJQXlCOUIsWUFDUyxPQUFZLEVBQ1osU0FBK0IsRUFDL0IsT0FBeUMsRUFDeEMsY0FBMEM7UUFIM0MsWUFBTyxHQUFQLE9BQU8sQ0FBSztRQUNaLGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQy9CLFlBQU8sR0FBUCxPQUFPLENBQWtDO1FBQ3hDLG1CQUFjLEdBQWQsY0FBYyxDQUE0QjtRQTVCNUMsZUFBVSxHQUFlLEVBQUUsQ0FBQztRQUM1QixnQkFBVyxHQUFlLEVBQUUsQ0FBQztRQUM3QixrQkFBYSxHQUFlLEVBQUUsQ0FBQztRQUcvQixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUczQixxRkFBcUY7UUFDckYsc0VBQXNFO1FBQ3RFLDJFQUEyRTtRQUNuRSx1QkFBa0IsR0FBZSxFQUFFLENBQUM7UUFDcEMsd0JBQW1CLEdBQWUsRUFBRSxDQUFDO1FBSXRDLFNBQUksR0FBRyxDQUFDLENBQUM7UUFFVCxpQkFBWSxHQUEyQixJQUFJLENBQUM7UUFDNUMsb0JBQWUsR0FBa0IsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQVFoRCxJQUFJLENBQUMsU0FBUyxHQUFXLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxHQUFXLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFB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QUFDLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDM0UsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QixPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUNyQixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cbmltcG9ydCB7QW5pbWF0aW9uUGxheWVyLCDJtVN0eWxlRGF0YU1hcH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5cbmltcG9ydCB7Y29tcHV0ZVN0eWxlfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7U3BlY2lhbENhc2VkU3R5bGVzfSBmcm9tICcuLi9zcGVjaWFsX2Nhc2VkX3N0eWxlcyc7XG5cbmV4cG9ydCBjbGFzcyBXZWJBbmltYXRpb25zUGxheWVyIGltcGxlbWVudHMgQW5pbWF0aW9uUGxheWVyIHtcbiAgcHJpdmF0ZSBfb25Eb25lRm5zOiBGdW5jdGlvbltdID0gW107XG4gIHByaXZhdGUgX29uU3RhcnRGbnM6IEZ1bmN0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBfb25EZXN0cm95Rm5zOiBGdW5jdGlvbltdID0gW107XG4gIHByaXZhdGUgX2R1cmF0aW9uOiBudW1iZXI7XG4gIHByaXZhdGUgX2RlbGF5OiBudW1iZXI7XG4gIHByaXZhdGUgX2luaXRpYWxpemVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbmlzaGVkID0gZmFsc2U7XG4gIHByaXZhdGUgX3N0YXJ0ZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGVzdHJveWVkID0gZmFsc2U7XG4gIHByaXZhdGUgX2ZpbmFsS2V5ZnJhbWU/OiDJtVN0eWxlRGF0YU1hcDtcblxuICAvLyB0aGUgZm9sbG93aW5nIG9yaWdpbmFsIGZucyBhcmUgcGVyc2lzdGVudCBjb3BpZXMgb2YgdGhlIF9vblN0YXJ0Rm5zIGFuZCBfb25Eb25lRm5zXG4gIC8vIGFuZCBhcmUgdXNlZCB0byByZXNldCB0aGUgZm5zIHRvIHRoZWlyIG9yaWdpbmFsIHZhbHVlcyB1cG9uIHJlc2V0KClcbiAgLy8gKHNpbmNlIHRoZSBfb25TdGFydEZucyBhbmQgX29uRG9uZUZucyBnZXQgZGVsZXRlZCBhZnRlciB0aGV5IGFyZSBjYWxsZWQpXG4gIHByaXZhdGUgX29yaWdpbmFsT25Eb25lRm5zOiBGdW5jdGlvbltdID0gW107XG4gIHByaXZhdGUgX29yaWdpbmFsT25TdGFydEZuczogRnVuY3Rpb25bXSA9IFtdO1xuXG4gIC8vIHVzaW5nIG5vbi1udWxsIGFzc2VydGlvbiBiZWNhdXNlIGl0J3MgcmUoc2V0KSBieSBpbml0KCk7XG4gIHB1YmxpYyByZWFkb25seSBkb21QbGF5ZXIhOiBBbmltYXRpb247XG4gIHB1YmxpYyB0aW1lID0gMDtcblxuICBwdWJsaWMgcGFyZW50UGxheWVyOiBBbmltYXRpb25QbGF5ZXIgfCBudWxsID0gbnVsbDtcbiAgcHVibGljIGN1cnJlbnRTbmFwc2hvdDogybVTdHlsZURhdGFNYXAgPSBuZXcgTWFwKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGVsZW1lbnQ6IGFueSxcbiAgICBwdWJsaWMga2V5ZnJhbWVzOiBBcnJheTzJtVN0eWxlRGF0YU1hcD4sXG4gICAgcHVibGljIG9wdGlvbnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBudW1iZXJ9LFxuICAgIHByaXZhdGUgX3NwZWNpYWxTdHlsZXM/OiBTcGVjaWFsQ2FzZWRTdHlsZXMgfCBudWxsLFxuICApIHtcbiAgICB0aGlzLl9kdXJhdGlvbiA9IDxudW1iZXI+b3B0aW9uc1snZHVyYXRpb24nXTtcbiAgICB0aGlzLl9kZWxheSA9IDxudW1iZXI+b3B0aW9uc1snZGVsYXknXSB8fCAwO1xuICAgIHRoaXMudGltZSA9IHRoaXMuX2R1cmF0aW9uICsgdGhpcy5fZGVsYXk7XG4gIH1cblxuICBwcml2YXRlIF9vbkZpbmlzaCgpIHtcbiAgICBpZiAoIXRoaXMuX2ZpbmlzaGVkKSB7XG4gICAgICB0aGlzLl9maW5pc2hlZCA9IHRydWU7XG4gICAgICB0aGlzLl9vbkRvbmVGbnMuZm9yRWFjaCgoZm4pID0+IGZuKCkpO1xuICAgICAgdGhpcy5fb25Eb25lRm5zID0gW107XG4gICAgfVxuICB9XG5cbiAgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9idWlsZFBsYXllcigpO1xuICAgIHRoaXMuX3ByZXBhcmVQbGF5ZXJCZWZvcmVTdGFydCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfYnVpbGRQbGF5ZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX2luaXRpYWxpemVkKSByZXR1cm47XG4gICAgdGhpcy5faW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgY29uc3Qga2V5ZnJhbWVzID0gdGhpcy5rZXlmcmFtZXM7XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvciBvdmVyd3JpdGluZyBhIHJlYWRvbmx5IHByb3BlcnR5XG4gICAgdGhpcy5kb21QbGF5ZXIgPSB0aGlzLl90cmlnZ2VyV2ViQW5pbWF0aW9uKHRoaXMuZWxlbWVudCwga2V5ZnJhbWVzLCB0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuX2ZpbmFsS2V5ZnJhbWUgPSBrZXlmcmFtZXMubGVuZ3RoID8ga2V5ZnJhbWVzW2tleWZyYW1lcy5sZW5ndGggLSAxXSA6IG5ldyBNYXAoKTtcbiAgICBjb25zdCBvbkZpbmlzaCA9ICgpID0+IHRoaXMuX29uRmluaXNoKCk7XG4gICAgdGhpcy5kb21QbGF5ZXIuYWRkRXZlbnRMaXN0ZW5lcignZmluaXNoJywgb25GaW5pc2gpO1xuICAgIHRoaXMub25EZXN0cm95KCgpID0+IHtcbiAgICAgIC8vIFdlIG11c3QgcmVtb3ZlIHRoZSBgZmluaXNoYCBldmVudCBsaXN0ZW5lciBvbmNlIGFuIGFuaW1hdGlvbiBoYXMgY29tcGxldGVkIGFsbCBpdHNcbiAgICAgIC8vIGl0ZXJhdGlvbnMuIFRoaXMgYWN0aW9uIGlzIG5lY2Vzc2FyeSB0byBwcmV2ZW50IGEgbWVtb3J5IGxlYWsgc2luY2UgdGhlIGxpc3RlbmVyIGNhcHR1cmVzXG4gICAgICAvLyBgdGhpc2AsIGNyZWF0aW5nIGEgY2xvc3VyZSB0aGF0IHByZXZlbnRzIGB0aGlzYCBmcm9tIGJlaW5nIGdhcmJhZ2UgY29sbGVjdGVkLlxuICAgICAgdGhpcy5kb21QbGF5ZXIucmVtb3ZlRXZlbnRMaXN0ZW5lcignZmluaXNoJywgb25GaW5pc2gpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJlcGFyZVBsYXllckJlZm9yZVN0YXJ0KCkge1xuICAgIC8vIHRoaXMgaXMgcmVxdWlyZWQgc28gdGhhdCB0aGUgcGxheWVyIGRvZXNuJ3Qgc3RhcnQgdG8gYW5pbWF0ZSByaWdodCBhd2F5XG4gICAgaWYgKHRoaXMuX2RlbGF5KSB7XG4gICAgICB0aGlzLl9yZXNldERvbVBsYXllclN0YXRlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZG9tUGxheWVyLnBhdXNlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY29udmVydEtleWZyYW1lc1RvT2JqZWN0KGtleWZyYW1lczogQXJyYXk8ybVTdHlsZURhdGFNYXA+KTogYW55W10ge1xuICAgIGNvbnN0IGtmczogYW55W10gPSBbXTtcbiAgICBrZXlmcmFtZXMuZm9yRWFjaCgoZnJhbWUpID0+IHtcbiAgICAgIGtmcy5wdXNoKE9iamVjdC5mcm9tRW50cmllcyhmcmFtZSkpO1xuICAgIH0pO1xuICAgIHJldHVybiBrZnM7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIF90cmlnZ2VyV2ViQW5pbWF0aW9uKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxuICAgIGtleWZyYW1lczogQXJyYXk8ybVTdHlsZURhdGFNYXA+LFxuICAgIG9wdGlvbnM6IGFueSxcbiAgKTogQW5pbWF0aW9uIHtcbiAgICByZXR1cm4gZWxlbWVudC5hbmltYXRlKHRoaXMuX2NvbnZlcnRLZXlmcmFtZXNUb09iamVjdChrZXlmcmFtZXMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIG9uU3RhcnQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnMucHVzaChmbik7XG4gICAgdGhpcy5fb25TdGFydEZucy5wdXNoKGZuKTtcbiAgfVxuXG4gIG9uRG9uZShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29yaWdpbmFsT25Eb25lRm5zLnB1c2goZm4pO1xuICAgIHRoaXMuX29uRG9uZUZucy5wdXNoKGZuKTtcbiAgfVxuXG4gIG9uRGVzdHJveShmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX29uRGVzdHJveUZucy5wdXNoKGZuKTtcbiAgfVxuXG4gIHBsYXkoKTogdm9pZCB7XG4gICAgdGhpcy5fYnVpbGRQbGF5ZXIoKTtcbiAgICBpZiAoIXRoaXMuaGFzU3RhcnRlZCgpKSB7XG4gICAgICB0aGlzLl9vblN0YXJ0Rm5zLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgICAgIHRoaXMuX29uU3RhcnRGbnMgPSBbXTtcbiAgICAgIHRoaXMuX3N0YXJ0ZWQgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuX3NwZWNpYWxTdHlsZXMpIHtcbiAgICAgICAgdGhpcy5fc3BlY2lhbFN0eWxlcy5zdGFydCgpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmRvbVBsYXllci5wbGF5KCk7XG4gIH1cblxuICBwYXVzZSgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXQoKTtcbiAgICB0aGlzLmRvbVBsYXllci5wYXVzZSgpO1xuICB9XG5cbiAgZmluaXNoKCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdCgpO1xuICAgIGlmICh0aGlzLl9zcGVjaWFsU3R5bGVzKSB7XG4gICAgICB0aGlzLl9zcGVjaWFsU3R5bGVzLmZpbmlzaCgpO1xuICAgIH1cbiAgICB0aGlzLl9vbkZpbmlzaCgpO1xuICAgIHRoaXMuZG9tUGxheWVyLmZpbmlzaCgpO1xuICB9XG5cbiAgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVzZXREb21QbGF5ZXJTdGF0ZSgpO1xuICAgIHRoaXMuX2Rlc3Ryb3llZCA9IGZhbHNlO1xuICAgIHRoaXMuX2ZpbmlzaGVkID0gZmFsc2U7XG4gICAgdGhpcy5fc3RhcnRlZCA9IGZhbHNlO1xuICAgIHRoaXMuX29uU3RhcnRGbnMgPSB0aGlzLl9vcmlnaW5hbE9uU3RhcnRGbnM7XG4gICAgdGhpcy5fb25Eb25lRm5zID0gdGhpcy5fb3JpZ2luYWxPbkRvbmVGbnM7XG4gIH1cblxuICBwcml2YXRlIF9yZXNldERvbVBsYXllclN0YXRlKCkge1xuICAgIGlmICh0aGlzLmRvbVBsYXllcikge1xuICAgICAgdGhpcy5kb21QbGF5ZXIuY2FuY2VsKCk7XG4gICAgfVxuICB9XG5cbiAgcmVzdGFydCgpOiB2b2lkIHtcbiAgICB0aGlzLnJlc2V0KCk7XG4gICAgdGhpcy5wbGF5KCk7XG4gIH1cblxuICBoYXNTdGFydGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9zdGFydGVkO1xuICB9XG5cbiAgZGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2Rlc3Ryb3llZCkge1xuICAgICAgdGhpcy5fZGVzdHJveWVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3Jlc2V0RG9tUGxheWVyU3RhdGUoKTtcbiAgICAgIHRoaXMuX29uRmluaXNoKCk7XG4gICAgICBpZiAodGhpcy5fc3BlY2lhbFN0eWxlcykge1xuICAgICAgICB0aGlzLl9zcGVjaWFsU3R5bGVzLmRlc3Ryb3koKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX29uRGVzdHJveUZucy5mb3JFYWNoKChmbikgPT4gZm4oKSk7XG4gICAgICB0aGlzLl9vbkRlc3Ryb3lGbnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZXRQb3NpdGlvbihwOiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kb21QbGF5ZXIgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pbml0KCk7XG4gICAgfVxuICAgIHRoaXMuZG9tUGxheWVyLmN1cnJlbnRUaW1lID0gcCAqIHRoaXMudGltZTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uKCk6IG51bWJlciB7XG4gICAgLy8gdHNjIGlzIGNvbXBsYWluaW5nIHdpdGggVFMyMzYyIHdpdGhvdXQgdGhlIGNvbnZlcnNpb24gdG8gbnVtYmVyXG4gICAgcmV0dXJuICsodGhpcy5kb21QbGF5ZXIuY3VycmVudFRpbWUgPz8gMCkgLyB0aGlzLnRpbWU7XG4gIH1cblxuICBnZXQgdG90YWxUaW1lKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX2RlbGF5ICsgdGhpcy5fZHVyYXRpb247XG4gIH1cblxuICBiZWZvcmVEZXN0cm95KCkge1xuICAgIGNvbnN0IHN0eWxlczogybVTdHlsZURhdGFNYXAgPSBuZXcgTWFwKCk7XG4gICAgaWYgKHRoaXMuaGFzU3RhcnRlZCgpKSB7XG4gICAgICAvLyBub3RlOiB0aGlzIGNvZGUgaXMgaW52b2tlZCBvbmx5IHdoZW4gdGhlIGBwbGF5YCBmdW5jdGlvbiB3YXMgY2FsbGVkIHByaW9yIHRvIHRoaXNcbiAgICAgIC8vICh0aHVzIGBoYXNTdGFydGVkYCByZXR1cm5zIHRydWUpLCB0aGlzIGltcGxpZXMgdGhhdCB0aGUgY29kZSB0aGF0IGluaXRpYWxpemVzXG4gICAgICAvLyBgX2ZpbmFsS2V5ZnJhbWVgIGhhcyBhbHNvIGJlZW4gZXhlY3V0ZWQgYW5kIHRoZSBub24tbnVsbCBhc3NlcnRpb24gY2FuIGJlIHNhZmVseSB1c2VkIGhlcmVcbiAgICAgIGNvbnN0IGZpbmFsS2V5ZnJhbWUgPSB0aGlzLl9maW5hbEtleWZyYW1lITtcbiAgICAgIGZpbmFsS2V5ZnJhbWUuZm9yRWFjaCgodmFsLCBwcm9wKSA9PiB7XG4gICAgICAgIGlmIChwcm9wICE9PSAnb2Zmc2V0Jykge1xuICAgICAgICAgIHN0eWxlcy5zZXQocHJvcCwgdGhpcy5fZmluaXNoZWQgPyB2YWwgOiBjb21wdXRlU3R5bGUodGhpcy5lbGVtZW50LCBwcm9wKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuY3VycmVudFNuYXBzaG90ID0gc3R5bGVzO1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICB0cmlnZ2VyQ2FsbGJhY2socGhhc2VOYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBtZXRob2RzID0gcGhhc2VOYW1lID09PSAnc3RhcnQnID8gdGhpcy5fb25TdGFydEZucyA6IHRoaXMuX29uRG9uZUZucztcbiAgICBtZXRob2RzLmZvckVhY2goKGZuKSA9PiBmbigpKTtcbiAgICBtZXRob2RzLmxlbmd0aCA9IDA7XG4gIH1cbn1cbiJdfQ==