@shijiu/jsview 1.9.719

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 (148) hide show
  1. package/dom/bin/jsview-browser-debug-dom.min.js +1 -0
  2. package/dom/bin/jsview-dom.min.js +1 -0
  3. package/dom/bin/jsview-engine-js-browser.min.js +1 -0
  4. package/dom/bin/jsview-forge-define.min.js +1 -0
  5. package/dom/browser-root-style.css +21 -0
  6. package/dom/jsv-browser-debug-dom.js +8 -0
  7. package/dom/jsv-dom.js +6 -0
  8. package/dom/jsv-engine-js-browser.js +6 -0
  9. package/dom/jsv-forge-define.js +6 -0
  10. package/dom/jsview-dom/README.md +5 -0
  11. package/dom/jsview-dom/package-lock.json-perfect +3898 -0
  12. package/dom/jsview-dom/package.json +23 -0
  13. package/dom/jsview-dom/rollup/browser-debug-dom.rollup.config.js +15 -0
  14. package/dom/jsview-dom/rollup/dom.rollup.config.js +14 -0
  15. package/dom/jsview-dom/rollup/engine-js-browser.rollup.config.js +14 -0
  16. package/dom/jsview-dom/rollup/forge-define.rollup.config.js +14 -0
  17. package/dom/jsview-dom/scripts/release_dist.sh +36 -0
  18. package/dom/jsview-dom/src/dom-browser-hook/HookDocument.js +118 -0
  19. package/dom/jsview-dom/src/dom-browser-hook/OriginDocument.js +19 -0
  20. package/dom/jsview-dom/src/dom-browser-hook/StyleFormatCheck.js +559 -0
  21. package/dom/jsview-dom/src/dom-browser-hook/index.js +6 -0
  22. package/dom/jsview-dom/src/dom-wrapper/ForgeExtension.js +226 -0
  23. package/dom/jsview-dom/src/dom-wrapper/JsViewForgeApp.js +85 -0
  24. package/dom/jsview-dom/src/dom-wrapper/JsViewProxy.js +51 -0
  25. package/dom/jsview-dom/src/dom-wrapper/event/AnimationEvent.js +7 -0
  26. package/dom/jsview-dom/src/dom-wrapper/event/Event.js +12 -0
  27. package/dom/jsview-dom/src/dom-wrapper/event/FocusEvent.js +9 -0
  28. package/dom/jsview-dom/src/dom-wrapper/event/KeyboardEvent.js +43 -0
  29. package/dom/jsview-dom/src/dom-wrapper/event/LoadEvent.js +8 -0
  30. package/dom/jsview-dom/src/dom-wrapper/index.js +16 -0
  31. package/dom/jsview-dom/src/dom-wrapper/node/AnchorElement.js +24 -0
  32. package/dom/jsview-dom/src/dom-wrapper/node/AudioElement.js +60 -0
  33. package/dom/jsview-dom/src/dom-wrapper/node/Comment.js +10 -0
  34. package/dom/jsview-dom/src/dom-wrapper/node/DivElement.js +498 -0
  35. package/dom/jsview-dom/src/dom-wrapper/node/Document.js +274 -0
  36. package/dom/jsview-dom/src/dom-wrapper/node/Element.js +852 -0
  37. package/dom/jsview-dom/src/dom-wrapper/node/FDivElement.js +48 -0
  38. package/dom/jsview-dom/src/dom-wrapper/node/HeadElement.js +47 -0
  39. package/dom/jsview-dom/src/dom-wrapper/node/ImageElement.js +203 -0
  40. package/dom/jsview-dom/src/dom-wrapper/node/JsvAudioTrackElement.js +22 -0
  41. package/dom/jsview-dom/src/dom-wrapper/node/JsvElement.js +40 -0
  42. package/dom/jsview-dom/src/dom-wrapper/node/LinkElement.js +48 -0
  43. package/dom/jsview-dom/src/dom-wrapper/node/MediaElement.js +230 -0
  44. package/dom/jsview-dom/src/dom-wrapper/node/Node.js +178 -0
  45. package/dom/jsview-dom/src/dom-wrapper/node/SVGElement.js +9 -0
  46. package/dom/jsview-dom/src/dom-wrapper/node/ScriptElement.js +45 -0
  47. package/dom/jsview-dom/src/dom-wrapper/node/StyleElement.js +33 -0
  48. package/dom/jsview-dom/src/dom-wrapper/node/StyleElementCache.js +41 -0
  49. package/dom/jsview-dom/src/dom-wrapper/node/Text.js +22 -0
  50. package/dom/jsview-dom/src/dom-wrapper/node/UnknownElement.js +4 -0
  51. package/dom/jsview-dom/src/dom-wrapper/node/VideoElement.js +237 -0
  52. package/dom/jsview-dom/src/dom-wrapper/style/BorderImage.js +25 -0
  53. package/dom/jsview-dom/src/dom-wrapper/style/Inset.js +26 -0
  54. package/dom/jsview-dom/src/dom-wrapper/style/JsvStyleVariable.js +65 -0
  55. package/dom/jsview-dom/src/dom-wrapper/style/KeyframeRule.js +11 -0
  56. package/dom/jsview-dom/src/dom-wrapper/style/StyleDeclaration.js +609 -0
  57. package/dom/jsview-dom/src/dom-wrapper/style/StyleSheet.js +51 -0
  58. package/dom/jsview-dom/src/dom-wrapper/style/StyleValue.js +385 -0
  59. package/dom/jsview-dom/src/dom-wrapper/style/TextStylePackMap.js +43 -0
  60. package/dom/jsview-dom/src/dom-wrapper/style/URL.js +144 -0
  61. package/dom/jsview-dom/src/dom-wrapper/utils/EventHandler.js +42 -0
  62. package/dom/jsview-dom/src/dom-wrapper/utils/FDivRoot.js +86 -0
  63. package/dom/jsview-dom/src/dom-wrapper/utils/JsvLazySyncCache.js +64 -0
  64. package/dom/jsview-dom/src/dom-wrapper/utils/Log.js +42 -0
  65. package/dom/jsview-dom/src/dom-wrapper/utils/MutationObserver.js +32 -0
  66. package/dom/jsview-dom/src/dom-wrapper/utils/focusableNode.js +715 -0
  67. package/dom/jsview-dom/src/engine-js/ForgeDefine.js +8 -0
  68. package/dom/jsview-dom/src/engine-js/ForgeExtensionDefine.js +14 -0
  69. package/dom/jsview-dom/src/engine-js/browser/PlatformUtils.js +100 -0
  70. package/dom/jsview-dom/src/engine-js/browser/animation_base.js +313 -0
  71. package/dom/jsview-dom/src/engine-js/browser/animation_keyframe.js +64 -0
  72. package/dom/jsview-dom/src/engine-js/browser/animation_progress.js +287 -0
  73. package/dom/jsview-dom/src/engine-js/browser/animation_proxy.js +906 -0
  74. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/demux.js +143 -0
  75. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/gifDecoder.js +12 -0
  76. package/dom/jsview-dom/src/engine-js/browser/apic_decoder/libwebp-0.6.0.min.js +160 -0
  77. package/dom/jsview-dom/src/engine-js/browser/console_log.js +25 -0
  78. package/dom/jsview-dom/src/engine-js/browser/dynamic_key_frames.js +95 -0
  79. package/dom/jsview-dom/src/engine-js/browser/easing.js +114 -0
  80. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/element_transform.js +122 -0
  81. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/gjk.js +450 -0
  82. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/mat.js +102 -0
  83. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/range_model.js +296 -0
  84. package/dom/jsview-dom/src/engine-js/browser/html_shared_tools/test_collide.js +10 -0
  85. package/dom/jsview-dom/src/engine-js/browser/index.js +38 -0
  86. package/dom/jsview-dom/src/engine-js/browser/latex_parse.js +336 -0
  87. package/dom/jsview-dom/src/engine-js/browser/layout_params.js +113 -0
  88. package/dom/jsview-dom/src/engine-js/browser/layout_view.js +3545 -0
  89. package/dom/jsview-dom/src/engine-js/browser/layout_view_debug.js +15 -0
  90. package/dom/jsview-dom/src/engine-js/browser/media.js +379 -0
  91. package/dom/jsview-dom/src/engine-js/browser/page_base.js +941 -0
  92. package/dom/jsview-dom/src/engine-js/browser/particle_view.js +526 -0
  93. package/dom/jsview-dom/src/engine-js/browser/platform_timer.js +61 -0
  94. package/dom/jsview-dom/src/engine-js/browser/react_utils.js +5 -0
  95. package/dom/jsview-dom/src/engine-js/browser/rect_utils.js +91 -0
  96. package/dom/jsview-dom/src/engine-js/browser/render_bridge.js +128 -0
  97. package/dom/jsview-dom/src/engine-js/browser/render_texture_proxy.js +155 -0
  98. package/dom/jsview-dom/src/engine-js/browser/renderer_deprecated.js +75 -0
  99. package/dom/jsview-dom/src/engine-js/browser/sound_pool.js +139 -0
  100. package/dom/jsview-dom/src/engine-js/browser/steps_animation.js +192 -0
  101. package/dom/jsview-dom/src/engine-js/browser/text_style_cache.js +454 -0
  102. package/dom/jsview-dom/src/engine-js/browser/text_utils.js +299 -0
  103. package/dom/jsview-dom/src/engine-js/browser/text_view.js +428 -0
  104. package/dom/jsview-dom/src/engine-js/browser/texture_manager.js +1060 -0
  105. package/dom/jsview-dom/src/engine-js/browser/url.js +69 -0
  106. package/dom/jsview-dom/src/engine-js/browser/velocity.js +40 -0
  107. package/dom/jsview-dom/src/engine-js/browser/view_sensor/autofroze_sensor.js +77 -0
  108. package/dom/jsview-dom/src/engine-js/browser/view_sensor/drag_impact_sensor.js +67 -0
  109. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor.js +98 -0
  110. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_callback.js +21 -0
  111. package/dom/jsview-dom/src/engine-js/browser/view_sensor/impact_sensor_manager.js +24 -0
  112. package/dom/jsview-dom/src/engine-js/browser/view_sensor/index.js +9 -0
  113. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor.js +268 -0
  114. package/dom/jsview-dom/src/engine-js/browser/view_sensor/view_sensor_manager.js +84 -0
  115. package/dom/jsview-dom/src/engine-js/browser/view_sensor/visible_sensor.js +213 -0
  116. package/dom/jsview-dom/src/engine-js/browser/view_store.js +41 -0
  117. package/dom/jsview-dom/src/engine-js/index.js +2 -0
  118. package/dom/jsview-dom/src/engine-js/native/README.md +1 -0
  119. package/dom/target_core_revision.mjs +15 -0
  120. package/index.js +0 -0
  121. package/loader/header_script_loader.js +134 -0
  122. package/loader/jsview-main.js +42 -0
  123. package/loader/jsview.config.default.js +37 -0
  124. package/loader/jsview.default.config.js +37 -0
  125. package/loader/loader.js +183 -0
  126. package/loader/loader_webkit.js +40 -0
  127. package/package.json +31 -0
  128. package/patches/node_modules/@vitejs/plugin-react/dist/index.cjs +520 -0
  129. package/patches/node_modules/@vue/compiler-sfc/dist/compiler-sfc.cjs.js +17609 -0
  130. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-css-to-js.js +335 -0
  131. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-format.js +446 -0
  132. package/patches/node_modules/@vue/compiler-sfc/dist/jsview-style-types.js +91 -0
  133. package/patches/node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js +8038 -0
  134. package/patches/node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js +1700 -0
  135. package/patches/node_modules/postcss-js/objectifier.js +90 -0
  136. package/patches/node_modules/vite/dist/node/chunks/dep-0fc8e132.js +63175 -0
  137. package/patches/node_modules/vite/dist/node/jsview-react.vite.config.js +7 -0
  138. package/patches/node_modules/vite/dist/node/jsview-vue.vite.config.js +7 -0
  139. package/patches/node_modules/vite/dist/node/jsview.vite.config.js +56 -0
  140. package/patches/node_modules/vue-router/dist/vue-router.mjs +3595 -0
  141. package/tools/common.js +58 -0
  142. package/tools/jsview-jsmap-serve.js +105 -0
  143. package/tools/jsview-post-build.js +184 -0
  144. package/tools/jsview-post-install-react.js +13 -0
  145. package/tools/jsview-post-install-vue.js +16 -0
  146. package/tools/jsview-post-install.js +116 -0
  147. package/tools/jsview-run-android.js +67 -0
  148. package/tsconfig.json +34 -0
@@ -0,0 +1,287 @@
1
+ /* eslint-disable no-prototype-builtins */
2
+ import { animationToStyle, getStaticFrameControl, convertTimingFunc } from "./animation_keyframe";
3
+
4
+ const is_char = char_code => (char_code >= 65 && char_code <= 90) || (char_code >= 97 && char_code <= 122);
5
+ const is_num = char_code => char_code >= 48 && char_code <= 57;
6
+ const __parseTransform = (transform) => {
7
+ if (!transform) { return null; }
8
+ let func_name = "";
9
+ let param = "";
10
+ let param_list = [];
11
+ let mode = 0; // 0 parse name; 1 parse params;
12
+ for (let i = 0; i < transform.length; i++) {
13
+ const char_code = transform.charCodeAt(i);
14
+ if (mode === 0) {
15
+ if (is_char(char_code) || is_num(char_code)) {
16
+ func_name += transform[i];
17
+ }
18
+ } else {
19
+ if (is_num(char_code) || char_code === 46 || char_code === 45 || char_code === 101) { // 科学计数
20
+ param += transform[i];
21
+ }
22
+ }
23
+
24
+ if (char_code === 40) { // (
25
+ mode = 1;
26
+ param = "";
27
+ param_list = [];
28
+ } else if (char_code === 41) { // )
29
+ param_list.push(parseFloat(param));
30
+ return {
31
+ name: func_name,
32
+ params: param_list
33
+ };
34
+ } else if (char_code === 44) { // ,
35
+ param_list.push(parseFloat(param));
36
+ param = "";
37
+ }
38
+ }
39
+ console.error("transform error", transform);
40
+ return null;
41
+ };
42
+
43
+ function _BuildTracer(layout_view) {
44
+ const children = layout_view.Element.children;
45
+ let found_tracer = null;
46
+ // 寻找进度跟踪器,以免重复创建,浪费资源
47
+ for (let i = 0; i < children.length; i++) {
48
+ if (children[i].id === "_AnimateProgressTracer") {
49
+ found_tracer = children[i];
50
+ break;
51
+ }
52
+ }
53
+
54
+ if (found_tracer === null) {
55
+ // 若在此节点下没有进度跟踪器,则创建一个
56
+ found_tracer = window.originDocument.createElement("div");
57
+ found_tracer.id = "_AnimateProgressTracer";
58
+ layout_view.Element.appendChild(found_tracer);
59
+ }
60
+
61
+ return found_tracer;
62
+ }
63
+
64
+ let sIdToken = 0;
65
+
66
+ class AnimationProgress {
67
+ constructor(layout_view) {
68
+ this._TracerDiv = _BuildTracer(layout_view);
69
+ this._IdToken = (sIdToken++);
70
+ this._KeyFrameName = null;
71
+ this._AdvanceTimer = null;
72
+ this._AdvanceListener = null;
73
+ if (!this._TracerDiv.hasOwnProperty("_ForgeProgressToken")) {
74
+ this._TracerDiv._ForgeProgressToken = 0;
75
+ }
76
+
77
+ // 阻止事件上发到父节点
78
+ this._OnEndListener = ((event) => {
79
+ event.stopPropagation();
80
+ });
81
+
82
+ // TODO: 要支持Android WebView? WebkitAnimationEnd...
83
+ this._TracerDiv.addEventListener("animationend", this._OnEndListener);
84
+ }
85
+
86
+ _ClearAdvanceTimer() {
87
+ if (this._AdvanceTimer !== null) {
88
+ clearInterval(this._AdvanceTimer);
89
+ this._AdvanceTimer = null;
90
+ }
91
+ }
92
+
93
+ _NotifyAdvance() {
94
+ this._ClearAdvanceTimer();
95
+ if (this._AdvanceListener !== null) {
96
+ this._AdvanceTimer = setInterval(() => {
97
+ const progress = this.GetProgress();
98
+ this._AdvanceListener(progress);
99
+ if (progress === 1) {
100
+ this._ClearAdvanceTimer();
101
+ }
102
+ }, 100);
103
+ }
104
+ }
105
+
106
+ Start(host_animation, starter_progress, advance_listener) {
107
+ this._AdvanceListener = advance_listener;
108
+
109
+ // 保证可用的Animation动画
110
+ if (this._KeyFrameName) {
111
+ console.error("Error: Asset!! should Stop before start");
112
+ }
113
+ this._TracerDiv._ForgeProgressToken = (this._TracerDiv._ForgeProgressToken + 1) % 2;
114
+ this._KeyFrameName = this._BuildTraceKeyFrame(
115
+ starter_progress,
116
+ this._IdToken,
117
+ this._TracerDiv._ForgeProgressToken);
118
+ this._TracerDiv.style.animation = animationToStyle(host_animation, this._KeyFrameName);
119
+ // TODO: 要支持Android WebView? WebkitAnimationEnd...
120
+ this._TracerDiv.addEventListener("animationend", this._OnEndListener);
121
+
122
+ this._NotifyAdvance();
123
+ }
124
+
125
+ // 停止进度跟进,并返回进度值
126
+ Stop() {
127
+ const progress = this.GetProgress();
128
+ this._TracerDiv.style.animation = null;
129
+
130
+ if (this._KeyFrameName) {
131
+ this._RemoveTraceKeyFrame(this._KeyFrameName);
132
+ this._KeyFrameName = null;
133
+ }
134
+
135
+ if (this._AdvanceListener) {
136
+ this._ClearAdvanceTimer();
137
+ this._AdvanceListener(progress);
138
+ this._AdvanceListener = null;
139
+ }
140
+
141
+ return progress;
142
+ }
143
+
144
+ GetProgress() {
145
+ const s = window.getComputedStyle(this._TracerDiv);
146
+ if (s.transform.length === 0) {
147
+ // 没有transform,以目前调查结果认为是动画结束
148
+ } else if (s.transform.length > 0 && s.transform !== "none") {
149
+ const trans_values = __parseTransform(s.transform);
150
+ if (trans_values !== null) {
151
+ return (trans_values.params[4] / 1000); // type is matrix...
152
+ }
153
+ console.error("Error:internal error");
154
+ return 0;
155
+ }
156
+ // none的场合代表动画结束了
157
+ return 1;
158
+ }
159
+
160
+ _BuildTraceKeyFrame(starter_progress/* 0~1 */, token, dynamic_count) {
161
+ const keyframe_name = `_AnimateProgress_${token}_${dynamic_count}`;
162
+ const keyframe_control = getStaticFrameControl();
163
+ const animate_progress = `@keyframes ${keyframe_name}
164
+ {0%{transform:translate3d(${Math.floor(starter_progress * 1000)}px,0,0)}
165
+ 100%{transform:translate3d(1000px,0,0)}}`;
166
+ keyframe_control.insertRule(animate_progress);
167
+ return keyframe_name;
168
+ }
169
+
170
+ _RemoveTraceKeyFrame(name) {
171
+ const keyframe_control = getStaticFrameControl();
172
+ keyframe_control.removeRule(name);
173
+ }
174
+ }
175
+
176
+ class AnimationGroupProgress {
177
+ constructor(layout_view, steps_total) {
178
+ this._TracerDiv = _BuildTracer(layout_view);
179
+ this._IdToken = (sIdToken++);
180
+ this._KeyFrameNameArray = null;
181
+ this._StepsTotal = steps_total;
182
+ this._RunAnimList = null;
183
+
184
+ if (!this._TracerDiv.hasOwnProperty("_ForgeProgressToken")) {
185
+ this._TracerDiv._ForgeProgressToken = 0;
186
+ }
187
+
188
+ // 阻止事件上发到父节点
189
+ this._OnEndListener = ((event) => {
190
+ event.stopPropagation();
191
+ });
192
+
193
+ // TODO: 要支持Android WebView? WebkitAnimationEnd...
194
+ this._TracerDiv.addEventListener("animationend", this._OnEndListener);
195
+ }
196
+
197
+ Start(steps_settings/* [{easing:xxx, duration:xxxx},{}...] */) {
198
+ // 保证可用的Animation动画
199
+ if (this._KeyFrameName) {
200
+ console.error("Error: Asset!! should Stop before start");
201
+ }
202
+
203
+ // 交替token,避免animation属性中KeyFrames名字不变导致不触发动画启动
204
+ this._TracerDiv._ForgeProgressToken = (this._TracerDiv._ForgeProgressToken + 1) % 2;
205
+ this._BuildTraceKeyFrameGroup(this._IdToken, this._TracerDiv._ForgeProgressToken);
206
+
207
+ this._RunAnimList = this._ConvertToAnimationStyle(steps_settings);
208
+ this._TracerDiv.style.animation = this._RunAnimList[0];
209
+ }
210
+
211
+ // 下个步骤的触发由KeyFrameGroupAnimation来完成
212
+ TriggerNextStep(index) {
213
+ this._TracerDiv.style.animation = this._RunAnimList[index];
214
+ }
215
+
216
+ // 停止进度跟进,并返回进度值
217
+ Stop() {
218
+ const progress = this.GetProgress();
219
+ this._TracerDiv.style.animation = null;
220
+
221
+ if (this._KeyFrameNameArray !== null) {
222
+ this._RemoveTraceKeyFrameGroup();
223
+ this._KeyFrameNameArray = null;
224
+ }
225
+
226
+ return progress;
227
+ }
228
+
229
+ GetProgress() {
230
+ const s = window.getComputedStyle(this._TracerDiv);
231
+ if (s.transform.length === 0) {
232
+ // 没有transform,以目前调查结果认为是动画结束
233
+ } else if (s.transform !== "none") {
234
+ const trans_values = __parseTransform(s.transform);
235
+ if (trans_values !== null) {
236
+ const p = (trans_values.params[4] / (this._StepsTotal * 100)); // type is matrix...
237
+ // console.log("Report progress=" + p + " v=" + trans_values.params);
238
+ return p;
239
+ }
240
+ console.error("Error:internal error");
241
+ return 0;
242
+ }
243
+ // none的场合代表动画结束了
244
+ return 1;
245
+ }
246
+
247
+ _BuildTraceKeyFrameGroup(token, dynamic_count) {
248
+ this._KeyFrameNameArray = new Array(this._StepsTotal);
249
+ const keyframe_control = getStaticFrameControl();
250
+ for (let i = 0; i < this._KeyFrameNameArray.length; i++) {
251
+ const step_name = (i === this._KeyFrameNameArray.length - 1 ? "finalStep" : `${i}`);
252
+ const keyframe_name = `_AnimateGroupProgress_${token}_${dynamic_count}_Cnt_${step_name}`;
253
+ const animate_progress = `@keyframes ${keyframe_name}
254
+ {0%{transform:translate3d(${100 * i}px,0,0)}
255
+ 100%{transform:translate3d(${100 + 100 * i}px,0,0)}}`;
256
+ keyframe_control.insertRule(animate_progress);
257
+ this._KeyFrameNameArray[i] = keyframe_name;
258
+ }
259
+ }
260
+
261
+ _RemoveTraceKeyFrameGroup() {
262
+ const keyframe_control = getStaticFrameControl();
263
+ this._KeyFrameNameArray.forEach((name) => {
264
+ keyframe_control.removeRule(name);
265
+ });
266
+ }
267
+
268
+ _ConvertToAnimationStyle(steps_settings) {
269
+ const anim_list = [];
270
+ for (let i = 0; i < steps_settings.length; i++) {
271
+ let timing_func = "linear";
272
+ const settings = steps_settings[i];
273
+ if (settings.easing) {
274
+ timing_func = convertTimingFunc(settings.easing);
275
+ }
276
+ anim_list.push(`${this._KeyFrameNameArray[i]} ${settings.duration / 1000}s ${timing_func}`);
277
+ }
278
+
279
+ return anim_list;
280
+ }
281
+ }
282
+
283
+ export default AnimationProgress;
284
+ export {
285
+ AnimationGroupProgress,
286
+ AnimationProgress
287
+ };