@visactor/vrender-core 0.22.6 → 0.23.0-alpha.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 (188) hide show
  1. package/cjs/canvas/constants.js +1 -2
  2. package/cjs/color-string/index.js +1 -2
  3. package/cjs/color-string/interpolate.d.ts +1 -0
  4. package/cjs/color-string/interpolate.js +7 -2
  5. package/cjs/color-string/interpolate.js.map +1 -1
  6. package/cjs/color-string/store.js +2 -1
  7. package/cjs/common/path-svg.js +1 -2
  8. package/cjs/common/performance-raf.d.ts +6 -0
  9. package/cjs/common/performance-raf.js +26 -0
  10. package/cjs/common/performance-raf.js.map +1 -0
  11. package/cjs/common/render-area.js +1 -0
  12. package/cjs/common/store.js +1 -1
  13. package/cjs/common/text.js +1 -1
  14. package/cjs/common/utils.js +1 -1
  15. package/cjs/core/application.js +1 -1
  16. package/cjs/core/camera.js +1 -1
  17. package/cjs/core/constants.js +1 -1
  18. package/cjs/core/core-modules.js +1 -1
  19. package/cjs/core/global-module.js +0 -2
  20. package/cjs/core/stage.d.ts +2 -1
  21. package/cjs/core/stage.js +19 -15
  22. package/cjs/core/stage.js.map +1 -1
  23. package/cjs/event/event-system.js +7 -6
  24. package/cjs/event/event-system.js.map +1 -1
  25. package/cjs/graphic/graphic.d.ts +4 -3
  26. package/cjs/graphic/graphic.js +16 -22
  27. package/cjs/graphic/graphic.js.map +1 -1
  28. package/cjs/index.d.ts +1 -3
  29. package/cjs/index.js +16 -17
  30. package/cjs/index.js.map +1 -1
  31. package/cjs/interface/animate.d.ts +5 -0
  32. package/cjs/interface/animate.js.map +1 -1
  33. package/cjs/interface/graphic.d.ts +3 -1
  34. package/cjs/interface/graphic.js.map +1 -1
  35. package/cjs/interface/index.d.ts +1 -1
  36. package/cjs/interface/index.js +9 -9
  37. package/cjs/interface/index.js.map +1 -1
  38. package/cjs/interface/stage.d.ts +1 -0
  39. package/cjs/interface/stage.js.map +1 -1
  40. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.d.ts +2 -2
  41. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js +6 -5
  42. package/cjs/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  43. package/dist/index.es.js +2323 -5068
  44. package/es/canvas/constants.js +1 -2
  45. package/es/color-string/index.js +1 -2
  46. package/es/color-string/interpolate.d.ts +1 -0
  47. package/es/color-string/interpolate.js +4 -0
  48. package/es/color-string/interpolate.js.map +1 -1
  49. package/es/color-string/store.js +2 -1
  50. package/es/common/path-svg.js +1 -2
  51. package/es/common/performance-raf.d.ts +6 -0
  52. package/es/common/performance-raf.js +18 -0
  53. package/es/common/performance-raf.js.map +1 -0
  54. package/es/common/render-area.js +2 -1
  55. package/es/common/store.js +1 -1
  56. package/es/common/text.js +1 -1
  57. package/es/common/utils.js +1 -1
  58. package/es/core/application.js +1 -1
  59. package/es/core/camera.js +1 -1
  60. package/es/core/constants.js +1 -1
  61. package/es/core/core-modules.js +1 -1
  62. package/es/core/global-module.js +0 -2
  63. package/es/core/stage.d.ts +2 -1
  64. package/es/core/stage.js +18 -17
  65. package/es/core/stage.js.map +1 -1
  66. package/es/event/event-system.js +7 -6
  67. package/es/event/event-system.js.map +1 -1
  68. package/es/graphic/graphic.d.ts +4 -3
  69. package/es/graphic/graphic.js +17 -23
  70. package/es/graphic/graphic.js.map +1 -1
  71. package/es/index.d.ts +1 -3
  72. package/es/index.js +2 -6
  73. package/es/index.js.map +1 -1
  74. package/es/interface/animate.d.ts +5 -0
  75. package/es/interface/animate.js.map +1 -1
  76. package/es/interface/graphic.d.ts +3 -1
  77. package/es/interface/graphic.js.map +1 -1
  78. package/es/interface/index.d.ts +1 -1
  79. package/es/interface/index.js +2 -2
  80. package/es/interface/index.js.map +1 -1
  81. package/es/interface/stage.d.ts +1 -0
  82. package/es/interface/stage.js.map +1 -1
  83. package/es/plugins/builtin-plugin/richtext-edit-plugin.d.ts +2 -2
  84. package/es/plugins/builtin-plugin/richtext-edit-plugin.js +4 -5
  85. package/es/plugins/builtin-plugin/richtext-edit-plugin.js.map +1 -1
  86. package/package.json +1 -1
  87. package/cjs/animate/Ticker/default-ticker.d.ts +0 -40
  88. package/cjs/animate/Ticker/default-ticker.js +0 -140
  89. package/cjs/animate/Ticker/default-ticker.js.map +0 -1
  90. package/cjs/animate/Ticker/index.d.ts +0 -5
  91. package/cjs/animate/Ticker/index.js +0 -23
  92. package/cjs/animate/Ticker/index.js.map +0 -1
  93. package/cjs/animate/Ticker/manual-ticker-handler.d.ts +0 -15
  94. package/cjs/animate/Ticker/manual-ticker-handler.js +0 -36
  95. package/cjs/animate/Ticker/manual-ticker-handler.js.map +0 -1
  96. package/cjs/animate/Ticker/manual-ticker.d.ts +0 -19
  97. package/cjs/animate/Ticker/manual-ticker.js +0 -37
  98. package/cjs/animate/Ticker/manual-ticker.js.map +0 -1
  99. package/cjs/animate/Ticker/raf-tick-handler.d.ts +0 -9
  100. package/cjs/animate/Ticker/raf-tick-handler.js +0 -30
  101. package/cjs/animate/Ticker/raf-tick-handler.js.map +0 -1
  102. package/cjs/animate/Ticker/timeout-tick-handler.d.ts +0 -9
  103. package/cjs/animate/Ticker/timeout-tick-handler.js +0 -28
  104. package/cjs/animate/Ticker/timeout-tick-handler.js.map +0 -1
  105. package/cjs/animate/Ticker/type.d.ts +0 -6
  106. package/cjs/animate/Ticker/type.js +0 -11
  107. package/cjs/animate/Ticker/type.js.map +0 -1
  108. package/cjs/animate/animate.d.ts +0 -147
  109. package/cjs/animate/animate.js +0 -403
  110. package/cjs/animate/animate.js.map +0 -1
  111. package/cjs/animate/custom-animate.d.ts +0 -236
  112. package/cjs/animate/custom-animate.js +0 -722
  113. package/cjs/animate/custom-animate.js.map +0 -1
  114. package/cjs/animate/default-ticker.d.ts +0 -2
  115. package/cjs/animate/default-ticker.js +0 -14
  116. package/cjs/animate/default-ticker.js.map +0 -1
  117. package/cjs/animate/easing-func.d.ts +0 -1
  118. package/cjs/animate/easing-func.js +0 -16
  119. package/cjs/animate/easing-func.js.map +0 -1
  120. package/cjs/animate/easing.d.ts +0 -49
  121. package/cjs/animate/easing.js +0 -141
  122. package/cjs/animate/easing.js.map +0 -1
  123. package/cjs/animate/group-fade.d.ts +0 -16
  124. package/cjs/animate/group-fade.js +0 -66
  125. package/cjs/animate/group-fade.js.map +0 -1
  126. package/cjs/animate/index.d.ts +0 -8
  127. package/cjs/animate/index.js +0 -24
  128. package/cjs/animate/index.js.map +0 -1
  129. package/cjs/animate/morphing.d.ts +0 -52
  130. package/cjs/animate/morphing.js +0 -292
  131. package/cjs/animate/morphing.js.map +0 -1
  132. package/cjs/animate/timeline.d.ts +0 -17
  133. package/cjs/animate/timeline.js +0 -46
  134. package/cjs/animate/timeline.js.map +0 -1
  135. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  136. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  137. package/cjs/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
  138. package/es/animate/Ticker/default-ticker.d.ts +0 -40
  139. package/es/animate/Ticker/default-ticker.js +0 -138
  140. package/es/animate/Ticker/default-ticker.js.map +0 -1
  141. package/es/animate/Ticker/index.d.ts +0 -5
  142. package/es/animate/Ticker/index.js +0 -10
  143. package/es/animate/Ticker/index.js.map +0 -1
  144. package/es/animate/Ticker/manual-ticker-handler.d.ts +0 -15
  145. package/es/animate/Ticker/manual-ticker-handler.js +0 -28
  146. package/es/animate/Ticker/manual-ticker-handler.js.map +0 -1
  147. package/es/animate/Ticker/manual-ticker.d.ts +0 -19
  148. package/es/animate/Ticker/manual-ticker.js +0 -31
  149. package/es/animate/Ticker/manual-ticker.js.map +0 -1
  150. package/es/animate/Ticker/raf-tick-handler.d.ts +0 -9
  151. package/es/animate/Ticker/raf-tick-handler.js +0 -22
  152. package/es/animate/Ticker/raf-tick-handler.js.map +0 -1
  153. package/es/animate/Ticker/timeout-tick-handler.d.ts +0 -9
  154. package/es/animate/Ticker/timeout-tick-handler.js +0 -20
  155. package/es/animate/Ticker/timeout-tick-handler.js.map +0 -1
  156. package/es/animate/Ticker/type.d.ts +0 -6
  157. package/es/animate/Ticker/type.js +0 -7
  158. package/es/animate/Ticker/type.js.map +0 -1
  159. package/es/animate/animate.d.ts +0 -147
  160. package/es/animate/animate.js +0 -398
  161. package/es/animate/animate.js.map +0 -1
  162. package/es/animate/custom-animate.d.ts +0 -236
  163. package/es/animate/custom-animate.js +0 -699
  164. package/es/animate/custom-animate.js.map +0 -1
  165. package/es/animate/default-ticker.d.ts +0 -2
  166. package/es/animate/default-ticker.js +0 -12
  167. package/es/animate/default-ticker.js.map +0 -1
  168. package/es/animate/easing-func.d.ts +0 -1
  169. package/es/animate/easing-func.js +0 -10
  170. package/es/animate/easing-func.js.map +0 -1
  171. package/es/animate/easing.d.ts +0 -49
  172. package/es/animate/easing.js +0 -134
  173. package/es/animate/easing.js.map +0 -1
  174. package/es/animate/group-fade.d.ts +0 -16
  175. package/es/animate/group-fade.js +0 -56
  176. package/es/animate/group-fade.js.map +0 -1
  177. package/es/animate/index.d.ts +0 -8
  178. package/es/animate/index.js +0 -16
  179. package/es/animate/index.js.map +0 -1
  180. package/es/animate/morphing.d.ts +0 -52
  181. package/es/animate/morphing.js +0 -295
  182. package/es/animate/morphing.js.map +0 -1
  183. package/es/animate/timeline.d.ts +0 -17
  184. package/es/animate/timeline.js +0 -42
  185. package/es/animate/timeline.js.map +0 -1
  186. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.d.ts +0 -1
  187. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js +0 -3
  188. package/es/plugins/builtin-plugin/richtext-edit-plugin-old.js.map +0 -1
@@ -1,4 +1,3 @@
1
1
  export const CanvasFactory = Symbol.for("CanvasFactory");
2
2
 
3
- export const Context2dFactory = Symbol.for("Context2dFactory");
4
- //# sourceMappingURL=constants.js.map
3
+ export const Context2dFactory = Symbol.for("Context2dFactory");
@@ -2,5 +2,4 @@ export * from "./interpolate";
2
2
 
3
3
  export * from "./store";
4
4
 
5
- export * from "./colorName";
6
- //# sourceMappingURL=index.js.map
5
+ export * from "./colorName";
@@ -5,4 +5,5 @@ export declare function interpolateGradientLinearColor(fc: ILinearGradient, tc:
5
5
  export declare function interpolateGradientRadialColor(fc: IRadialGradient, tc: IRadialGradient, ratio: number): false | IRadialGradient;
6
6
  export declare function interpolateGradientConicalColor(fc: IConicalGradient, tc: IConicalGradient, ratio: number): false | IConicalGradient;
7
7
  export declare function interpolatePureColorArray(from: [number, number, number, number], to: [number, number, number, number], ratio: number): [number, number, number, number];
8
+ export declare function interpolatePureColorArrayToStr(from: [number, number, number, number], to: [number, number, number, number], ratio: number): string;
8
9
  export declare function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string;
@@ -91,6 +91,10 @@ export function interpolatePureColorArray(from, to, ratio) {
91
91
  return [ from[0] + (to[0] - from[0]) * ratio, from[1] + (to[1] - from[1]) * ratio, from[2] + (to[2] - from[2]) * ratio, from[3] + (to[3] - from[3]) * ratio ];
92
92
  }
93
93
 
94
+ export function interpolatePureColorArrayToStr(from, to, ratio) {
95
+ return `rgba(${from[0] + (to[0] - from[0]) * ratio},${from[1] + (to[1] - from[1]) * ratio},${from[2] + (to[2] - from[2]) * ratio},${from[3] + (to[3] - from[3]) * ratio})`;
96
+ }
97
+
94
98
  const _fromColorRGB = [ 0, 0, 0, 0 ], _toColorRGB = [ 0, 0, 0, 0 ];
95
99
 
96
100
  export function colorStringInterpolationToStr(fromColor, toColor, ratio) {
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './store';\nimport type { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\nimport { isArray, isNumber } from '@visactor/vutils';\n\nfunction colorArrayToString(\n color: string | IGradientColor | [number, number, number, number],\n alphaChannel: boolean = false\n) {\n if (Array.isArray(color) && isNumber(color[0])) {\n return alphaChannel\n ? `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])},${color[3].toFixed(2)})`\n : `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])})`;\n }\n return color;\n}\n\nexport function interpolateColor(\n from: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n to: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if ((Array.isArray(from) && !isNumber(from[0])) || (Array.isArray(to) && !isNumber(to[0]))) {\n // 待性能优化\n const out: string[] = new Array(4).fill(0).map((_, index) => {\n return _interpolateColor(\n isArray(from) ? (from[index] as string) : from,\n isArray(to) ? (to[index] as string) : to,\n ratio,\n alphaChannel\n ) as string;\n });\n return out;\n // cb && cb(from!, to!);\n }\n return _interpolateColor(from as any, to as any, ratio, alphaChannel, cb);\n}\n\nexport function _interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if (!(from && to)) {\n return (from && colorArrayToString(from)) || (to && colorArrayToString(to)) || (false as any);\n }\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n // 纯色到渐变色,那就将纯色转成渐变色\n const gradient: IGradientColor = (fromGradient ? from : to) as IGradientColor;\n const pure = (fromGradient ? to : from) as string | [number, number, number, number];\n const gradientFromPure: IGradientColor = {\n ...gradient,\n stops: gradient.stops.map(v => ({ ...v, color: colorArrayToString(pure) as string }))\n };\n return fromGradient\n ? interpolateColor(gradient, gradientFromPure, ratio, alphaChannel, cb)\n : interpolateColor(gradientFromPure, gradient, ratio, alphaChannel, cb);\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray!, toArray!);\n const result = interpolatePureColorArray(fromArray!, toArray!, ratio);\n return colorArrayToString(result, alphaChannel) as any;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
1
+ {"version":3,"sources":["../src/color-string/interpolate.ts"],"names":[],"mappings":"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","file":"interpolate.js","sourcesContent":["import { ColorStore, ColorType } from './store';\nimport type { IGradientColor, ILinearGradient, IRadialGradient, IConicalGradient } from '../interface';\nimport { isArray, isNumber } from '@visactor/vutils';\n\nfunction colorArrayToString(\n color: string | IGradientColor | [number, number, number, number],\n alphaChannel: boolean = false\n) {\n if (Array.isArray(color) && isNumber(color[0])) {\n return alphaChannel\n ? `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])},${color[3].toFixed(2)})`\n : `rgb(${Math.round(color[0])},${Math.round(color[1])},${Math.round(color[2])})`;\n }\n return color;\n}\n\nexport function interpolateColor(\n from: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n to: [number, number, number, number] | [string, string, string, string] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if ((Array.isArray(from) && !isNumber(from[0])) || (Array.isArray(to) && !isNumber(to[0]))) {\n // 待性能优化\n const out: string[] = new Array(4).fill(0).map((_, index) => {\n return _interpolateColor(\n isArray(from) ? (from[index] as string) : from,\n isArray(to) ? (to[index] as string) : to,\n ratio,\n alphaChannel\n ) as string;\n });\n return out;\n // cb && cb(from!, to!);\n }\n return _interpolateColor(from as any, to as any, ratio, alphaChannel, cb);\n}\n\nexport function _interpolateColor(\n from: [number, number, number, number] | string | IGradientColor,\n to: [number, number, number, number] | string | IGradientColor,\n ratio: number,\n alphaChannel: boolean,\n cb?: (fromArray: [number, number, number, number], toArray: [number, number, number, number]) => void\n): false | string | IGradientColor | string[] {\n if (!(from && to)) {\n return (from && colorArrayToString(from)) || (to && colorArrayToString(to)) || (false as any);\n }\n let fromArray: [number, number, number, number];\n let toArray: [number, number, number, number];\n let fromGradient: boolean = false;\n let toGradient: boolean = false;\n if (Array.isArray(from)) {\n fromArray = from as [number, number, number, number];\n } else if (typeof from === 'string') {\n fromArray = ColorStore.Get(from, ColorType.Color255);\n } else {\n fromGradient = true;\n }\n if (Array.isArray(to)) {\n toArray = to as [number, number, number, number];\n } else if (typeof to === 'string') {\n toArray = ColorStore.Get(to, ColorType.Color255);\n } else {\n toGradient = true;\n }\n if (fromGradient !== toGradient) {\n // 纯色到渐变色,那就将纯色转成渐变色\n const gradient: IGradientColor = (fromGradient ? from : to) as IGradientColor;\n const pure = (fromGradient ? to : from) as string | [number, number, number, number];\n const gradientFromPure: IGradientColor = {\n ...gradient,\n stops: gradient.stops.map(v => ({ ...v, color: colorArrayToString(pure) as string }))\n };\n return fromGradient\n ? interpolateColor(gradient, gradientFromPure, ratio, alphaChannel, cb)\n : interpolateColor(gradientFromPure, gradient, ratio, alphaChannel, cb);\n }\n\n if (fromGradient) {\n if ((from as IGradientColor).gradient === (to as IGradientColor).gradient) {\n const fc: IGradientColor = from as IGradientColor;\n const tc: IGradientColor = to as IGradientColor;\n // 渐变色插值,只支持相同数量stopColor的插值,并且认为当前的stopColor数量是和from、to相同\n const fromStops = fc.stops;\n const toStops = tc.stops;\n if (fromStops.length !== toStops.length) {\n return false;\n }\n if (fc.gradient === 'linear') {\n return interpolateGradientLinearColor(fc, tc as ILinearGradient, ratio);\n } else if (fc.gradient === 'radial') {\n return interpolateGradientRadialColor(fc, tc as IRadialGradient, ratio);\n } else if (fc.gradient === 'conical') {\n return interpolateGradientConicalColor(fc, tc as IConicalGradient, ratio);\n }\n }\n return false;\n }\n cb && cb(fromArray!, toArray!);\n const result = interpolatePureColorArray(fromArray!, toArray!, ratio);\n return colorArrayToString(result, alphaChannel) as any;\n}\n\nexport function interpolateGradientLinearColor(\n fc: ILinearGradient,\n tc: ILinearGradient,\n ratio: number\n): false | ILinearGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: ILinearGradient = {\n gradient: 'linear',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientRadialColor(\n fc: IRadialGradient,\n tc: IRadialGradient,\n ratio: number\n): false | IRadialGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IRadialGradient = {\n gradient: 'radial',\n x0: fc.x0 + (tc.x0 - fc.x0) * ratio,\n x1: fc.x1 + (tc.x1 - fc.x1) * ratio,\n y0: fc.y0 + (tc.y0 - fc.y0) * ratio,\n y1: fc.y1 + (tc.y1 - fc.y1) * ratio,\n r0: fc.r0 + (tc.r0 - fc.r0) * ratio,\n r1: fc.r1 + (tc.r1 - fc.r1) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolateGradientConicalColor(\n fc: IConicalGradient,\n tc: IConicalGradient,\n ratio: number\n): false | IConicalGradient {\n const fStops = fc.stops;\n const tStops = tc.stops;\n const color: IConicalGradient = {\n gradient: 'conical',\n startAngle: fc.startAngle + (tc.startAngle - fc.startAngle) * ratio,\n endAngle: fc.endAngle + (tc.endAngle - fc.endAngle) * ratio,\n x: fc.x + (tc.x - fc.x) * ratio,\n y: fc.y + (tc.y - fc.y) * ratio,\n stops: new Array(fStops.length).fill(0).map((_, i) => {\n return {\n color: colorStringInterpolationToStr(fStops[i].color, tStops[i].color, ratio),\n offset: fStops[i].offset + (tStops[i].offset - fStops[i].offset) * ratio\n };\n })\n };\n return color;\n}\n\nexport function interpolatePureColorArray(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): [number, number, number, number] {\n return [\n from[0] + (to[0] - from[0]) * ratio,\n from[1] + (to[1] - from[1]) * ratio,\n from[2] + (to[2] - from[2]) * ratio,\n from[3] + (to[3] - from[3]) * ratio\n ];\n}\nexport function interpolatePureColorArrayToStr(\n from: [number, number, number, number],\n to: [number, number, number, number],\n ratio: number\n): string {\n // eslint-disable-next-line max-len\n return `rgba(${from[0] + (to[0] - from[0]) * ratio},${from[1] + (to[1] - from[1]) * ratio},${\n from[2] + (to[2] - from[2]) * ratio\n },${from[3] + (to[3] - from[3]) * ratio})`;\n}\n\nconst _fromColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nconst _toColorRGB: [number, number, number, number] = [0, 0, 0, 0];\nexport function colorStringInterpolationToStr(fromColor: string, toColor: string, ratio: number): string {\n ColorStore.Get(fromColor, ColorType.Color255, _fromColorRGB);\n ColorStore.Get(toColor, ColorType.Color255, _toColorRGB);\n return `rgba(${Math.round(_fromColorRGB[0] + (_toColorRGB[0] - _fromColorRGB[0]) * ratio)},${Math.round(\n _fromColorRGB[1] + (_toColorRGB[1] - _fromColorRGB[1]) * ratio\n )},${Math.round(_fromColorRGB[2] + (_toColorRGB[2] - _fromColorRGB[2]) * ratio)},${\n _fromColorRGB[3] + (_toColorRGB[3] - _fromColorRGB[3]) * ratio\n })`;\n}\n"]}
@@ -44,4 +44,5 @@ export class ColorStore {
44
44
  }
45
45
  }
46
46
 
47
- ColorStore.store255 = {}, ColorStore.store1 = {};
47
+ ColorStore.store255 = {}, ColorStore.store1 = {};
48
+ //# sourceMappingURL=store.js.map
@@ -54,5 +54,4 @@ export function parseSvgPath(str) {
54
54
  } else result.push(currCommandData);
55
55
  } else result.push(currCommandData);
56
56
  return result;
57
- }
58
- //# sourceMappingURL=path-svg.js.map
57
+ }
@@ -0,0 +1,6 @@
1
+ export declare class PerformanceRAF {
2
+ nextAnimationFrameCbs: FrameRequestCallback[];
3
+ addAnimationFrameCb(callback: FrameRequestCallback): number;
4
+ protected runAnimationFrame: (time: number) => void;
5
+ protected tryRunAnimationFrameNextFrame: () => void;
6
+ }
@@ -0,0 +1,18 @@
1
+ import { vglobal } from "../modules";
2
+
3
+ export class PerformanceRAF {
4
+ constructor() {
5
+ this.nextAnimationFrameCbs = [], this.runAnimationFrame = time => {
6
+ const cbs = this.nextAnimationFrameCbs;
7
+ this.nextAnimationFrameCbs = [];
8
+ for (let i = 0; i < cbs.length; i++) cbs[i](time);
9
+ }, this.tryRunAnimationFrameNextFrame = () => {
10
+ this.nextAnimationFrameCbs && 1 === this.nextAnimationFrameCbs.length && vglobal.getRequestAnimationFrame()(this.runAnimationFrame);
11
+ };
12
+ }
13
+ addAnimationFrameCb(callback) {
14
+ return this.nextAnimationFrameCbs.push(callback), this.tryRunAnimationFrameNextFrame(),
15
+ this.nextAnimationFrameCbs.length - 1;
16
+ }
17
+ }
18
+ //# sourceMappingURL=performance-raf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common/performance-raf.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAKrC,MAAM,OAAO,cAAc;IAA3B;QACE,0BAAqB,GAA2B,EAAE,CAAC;QASzC,sBAAiB,GAAG,CAAC,IAAY,EAAE,EAAE;YAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,qBAAqB,CAAC;YACvC,IAAI,CAAC,qBAAqB,GAAG,EAAE,CAAC;YAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACnC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;aACd;QACH,CAAC,CAAC;QAEQ,kCAA6B,GAAG,GAAG,EAAE;YAC7C,IAAI,CAAC,CAAC,IAAI,CAAC,qBAAqB,IAAI,IAAI,CAAC,qBAAqB,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBAC5E,OAAO;aACR;YACD,OAAO,CAAC,wBAAwB,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;QAC7D,CAAC,CAAC;IACJ,CAAC;IArBC,mBAAmB,CAAC,QAA8B;QAChD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1C,IAAI,CAAC,6BAA6B,EAAE,CAAC;QACrC,OAAO,IAAI,CAAC,qBAAqB,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/C,CAAC;CAgBF","file":"performance-raf.js","sourcesContent":["import { vglobal } from '../modules';\n\n/**\n * 性能优化,将requestAnimationFrame的回调函数存储起来,在下一帧执行\n */\nexport class PerformanceRAF {\n nextAnimationFrameCbs: FrameRequestCallback[] = [];\n\n addAnimationFrameCb(callback: FrameRequestCallback) {\n this.nextAnimationFrameCbs.push(callback);\n // 下一帧执行nextAnimationFrameCbs\n this.tryRunAnimationFrameNextFrame();\n return this.nextAnimationFrameCbs.length - 1;\n }\n\n protected runAnimationFrame = (time: number) => {\n const cbs = this.nextAnimationFrameCbs;\n this.nextAnimationFrameCbs = [];\n for (let i = 0; i < cbs.length; i++) {\n cbs[i](time);\n }\n };\n\n protected tryRunAnimationFrameNextFrame = () => {\n if (!(this.nextAnimationFrameCbs && this.nextAnimationFrameCbs.length === 1)) {\n return;\n }\n vglobal.getRequestAnimationFrame()(this.runAnimationFrame);\n };\n}\n"]}
@@ -60,4 +60,5 @@ function drawAreaBlock(path, topList, bottomList, params) {
60
60
  drawSegItem(path, curve, 1, params), needMoveTo = !1) : needMoveTo = !0;
61
61
  }
62
62
  path.closePath();
63
- }
63
+ }
64
+ //# sourceMappingURL=render-area.js.map
@@ -1,2 +1,2 @@
1
1
  class StageStore {}
2
- //# sourceMappingURL=store.js.map
2
+ //# sourceMappingURL=store.js.map
package/es/common/text.js CHANGED
@@ -24,4 +24,4 @@ export function textAttributesToStyle(attrs) {
24
24
  attrs.underline ? style["text-decoration"] = "underline" : attrs.lineThrough && (style["text-decoration"] = "line-through"),
25
25
  attrs.fill && isString(attrs.fill) && (style.color = attrs.fill), style;
26
26
  }
27
- //# sourceMappingURL=text.js.map
27
+ //# sourceMappingURL=text.js.map
@@ -152,4 +152,4 @@ export const calculateLineHeight = (lineHeight, fontSize) => {
152
152
  const _lh = _calculateLineHeight(lineHeight, fontSize);
153
153
  return isNaN(_lh) ? _lh : Math.max(fontSize, _lh);
154
154
  };
155
- //# sourceMappingURL=utils.js.map
155
+ //# sourceMappingURL=utils.js.map
@@ -1,2 +1,2 @@
1
1
  export const ApplicationContribution = Symbol("ApplicationContribution");
2
- //# sourceMappingURL=application.js.map
2
+ //# sourceMappingURL=application.js.map
package/es/core/camera.js CHANGED
@@ -66,4 +66,4 @@ export class OrthoCamera {
66
66
  export const registerOrthoCamera = () => {
67
67
  Factory.registerPlugin("OrthoCamera", OrthoCamera);
68
68
  };
69
- //# sourceMappingURL=camera.js.map
69
+ //# sourceMappingURL=camera.js.map
@@ -9,4 +9,4 @@ export const StaticLayerHandlerContribution = Symbol.for("StaticLayerHandlerCont
9
9
  export const DynamicLayerHandlerContribution = Symbol.for("DynamicLayerHandlerContribution");
10
10
 
11
11
  export const VirtualLayerHandlerContribution = Symbol.for("VirtualLayerHandlerContribution");
12
- //# sourceMappingURL=constants.js.map
12
+ //# sourceMappingURL=constants.js.map
@@ -17,4 +17,4 @@ export default new ContainerModule((bind => {
17
17
  bind(GraphicUtil).to(DefaultGraphicUtil).inSingletonScope(), bind(TransformUtil).to(DefaultTransformUtil).inSingletonScope(),
18
18
  bind(LayerService).to(DefaultLayerService).inSingletonScope();
19
19
  }));
20
- //# sourceMappingURL=core-modules.js.map
20
+ //# sourceMappingURL=core-modules.js.map
@@ -1,3 +1 @@
1
-
2
-
3
1
  //# sourceMappingURL=global-module.js.map
@@ -66,6 +66,8 @@ export declare class Stage extends Group implements IStage {
66
66
  params: Partial<IStageParams>;
67
67
  protected tickedBeforeRender: boolean;
68
68
  constructor(params?: Partial<IStageParams>);
69
+ initAnimate(params: Partial<IStageParams>): void;
70
+ startAnimate(): void;
69
71
  pauseRender(sr?: number): void;
70
72
  resumeRender(): void;
71
73
  protected tryInitEventSystem(): void;
@@ -141,7 +143,6 @@ export declare class Stage extends Group implements IStage {
141
143
  setOrigin(x: number, y: number): void;
142
144
  export(type: IExportType): HTMLCanvasElement | ImageData;
143
145
  pick(x: number, y: number): PickResult | false;
144
- startAnimate(t: number): void;
145
146
  setToFrame(t: number): void;
146
147
  release(): void;
147
148
  setStage(stage?: IStage): void;
package/es/core/stage.js CHANGED
@@ -24,14 +24,10 @@ import { IncrementalAutoRenderPlugin } from "../plugins/builtin-plugin/increment
24
24
 
25
25
  import { DirtyBoundsPlugin } from "../plugins/builtin-plugin/dirty-bounds-plugin";
26
26
 
27
- import { defaultTicker } from "../animate/default-ticker";
28
-
29
27
  import { SyncHook } from "../tapable";
30
28
 
31
29
  import { LayerService } from "./constants";
32
30
 
33
- import { DefaultTimeline } from "../animate";
34
-
35
31
  import { application } from "../application";
36
32
 
37
33
  import { isBrowserEnv } from "../env-check";
@@ -153,11 +149,18 @@ export class Stage extends Group {
153
149
  params.ReactDOM && this.enableReactAttribute(params.ReactDOM), params.enableLayout && this.enableLayout(),
154
150
  this.hooks.beforeRender.tap("constructor", this.beforeRender), this.hooks.afterRender.tap("constructor", this.afterRender),
155
151
  this._beforeRender = params.beforeRender, this._afterRender = params.afterRender,
156
- this.ticker = params.ticker || defaultTicker, this.supportInteractiveLayer = !1 !== params.interactiveLayer,
157
- this.timeline = new DefaultTimeline, this.ticker.addTimeline(this.timeline), this.timeline.pause(),
158
- params.optimize || (params.optimize = {}), this.optmize(params.optimize), params.background && isString(this._background) && this._background.includes("/") && this.setAttributes({
152
+ this.supportInteractiveLayer = !1 !== params.interactiveLayer, params.optimize || (params.optimize = {
153
+ animateMode: "performance"
154
+ }), this.optmize(params.optimize), params.background && isString(this._background) && this._background.includes("/") && this.setAttributes({
159
155
  background: this._background
160
- }), this.ticker.on("afterTick", this.afterTickCb);
156
+ }), this.initAnimate(params);
157
+ }
158
+ initAnimate(params) {
159
+ this.createTicker && this.createTimeline && (this.ticker = params.ticker || this.createTicker(this),
160
+ this.timeline = this.createTimeline(), this.ticker.addTimeline(this.timeline), this.ticker.on("tick", this.afterTickCb));
161
+ }
162
+ startAnimate() {
163
+ this.ticker && this.timeline && (this.ticker.start(), this.timeline.resume());
161
164
  }
162
165
  pauseRender(sr = -1) {
163
166
  this._skipRender = sr;
@@ -361,10 +364,9 @@ export class Stage extends Group {
361
364
  }
362
365
  render(layers, params) {
363
366
  if ("released" === this.releaseStatus) return;
364
- this.ticker.start(), this.timeline.resume();
367
+ this.startAnimate();
365
368
  const state = this.state;
366
- this.state = "rendering", this.tickedBeforeRender || this.ticker.trySyncTickStatus(),
367
- this.layerService.prepareStageLayer(this), this._skipRender || (this.lastRenderparams = params,
369
+ this.state = "rendering", this.layerService.prepareStageLayer(this), this._skipRender || (this.lastRenderparams = params,
368
370
  this.hooks.beforeRender.call(this), this._skipRender || (this.renderLayerList(this.children),
369
371
  this.combineLayersToWindow(), this.nextFrameRenderLayerSet.clear()), this.hooks.afterRender.call(this)),
370
372
  this.state = state, this._skipRender && this._skipRender++;
@@ -389,7 +391,7 @@ export class Stage extends Group {
389
391
  }
390
392
  _doRenderInThisFrame() {
391
393
  if ("released" === this.releaseStatus) return;
392
- this.timeline.resume(), this.ticker.start();
394
+ this.startAnimate();
393
395
  const state = this.state;
394
396
  this.state = "rendering", this.layerService.prepareStageLayer(this), this.nextFrameRenderLayerSet.size && !this._skipRender && (this.hooks.beforeRender.call(this),
395
397
  this._skipRender || (this.renderLayerList(Array.from(this.nextFrameRenderLayerSet.values()), this.lastRenderparams || {}),
@@ -467,21 +469,20 @@ export class Stage extends Group {
467
469
  });
468
470
  return !(!(null == result ? void 0 : result.graphic) && !(null == result ? void 0 : result.group)) && result;
469
471
  }
470
- startAnimate(t) {
471
- throw new Error("暂不支持");
472
- }
473
472
  setToFrame(t) {
474
473
  throw new Error("暂不支持");
475
474
  }
476
475
  release() {
476
+ var _a, _b;
477
477
  super.release(), this.hooks.beforeRender.unTap("constructor", this.beforeRender),
478
478
  this.hooks.afterRender.unTap("constructor", this.afterRender), this.eventSystem && this.eventSystem.release(),
479
479
  this.layerService.releaseStage(this), this.pluginService.release(), this.forEach((layer => {
480
480
  layer.release();
481
481
  })), this.interactiveLayer && (this.interactiveLayer.forEachChildren((item => {
482
482
  item.setStage && item.setStage(null, null), this.interactiveLayer.removeChild(item);
483
- })), this.interactiveLayer.release()), this.window.release(), this.ticker.remTimeline(this.timeline),
484
- this.ticker.removeListener("afterTick", this.afterTickCb), this.renderService.renderTreeRoots = [];
483
+ })), this.interactiveLayer.release()), this.window.release(), null === (_a = this.ticker) || void 0 === _a || _a.remTimeline(null == this ? void 0 : this.timeline),
484
+ null === (_b = this.ticker) || void 0 === _b || _b.removeListener("afterTick", this.afterTickCb),
485
+ this.renderService.renderTreeRoots = [];
485
486
  }
486
487
  setStage(stage) {}
487
488
  dirty(b, matrix) {