@visactor/vrender-core 1.1.0-alpha.24 → 1.1.0-alpha.26

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 (404) hide show
  1. package/cjs/common/event-listener-manager.js +1 -2
  2. package/cjs/common/event-transformer.js +2 -1
  3. package/cjs/common/performance-raf.js +1 -1
  4. package/cjs/common/xml/is-xml.d.ts +2 -0
  5. package/cjs/common/xml/is-xml.js +14 -0
  6. package/cjs/common/xml/is-xml.js.map +1 -0
  7. package/cjs/common/xml/parser.d.ts +2 -2
  8. package/cjs/common/xml/parser.js +14 -11
  9. package/cjs/common/xml/parser.js.map +1 -1
  10. package/cjs/container.d.ts +2 -0
  11. package/cjs/container.js +50 -0
  12. package/cjs/container.js.map +1 -0
  13. package/cjs/core/graphic-utils.js +1 -2
  14. package/cjs/core/layer-service.js +2 -1
  15. package/cjs/core/stage.d.ts +0 -9
  16. package/cjs/core/stage.js +11 -29
  17. package/cjs/core/stage.js.map +1 -1
  18. package/cjs/entries/miniapp.d.ts +0 -1
  19. package/cjs/entries/miniapp.js +1 -5
  20. package/cjs/entries/miniapp.js.map +1 -1
  21. package/cjs/entries/node.d.ts +0 -1
  22. package/cjs/entries/node.js +1 -5
  23. package/cjs/entries/node.js.map +1 -1
  24. package/cjs/env.d.ts +1 -0
  25. package/cjs/env.js +25 -0
  26. package/cjs/env.js.map +1 -0
  27. package/cjs/event/public-constant.d.ts +7 -0
  28. package/cjs/event/public-constant.js +100 -0
  29. package/cjs/event/public-constant.js.map +1 -0
  30. package/cjs/event/util.d.ts +1 -1
  31. package/cjs/graphic/base.d.ts +2 -0
  32. package/cjs/graphic/base.js +15 -0
  33. package/cjs/graphic/base.js.map +1 -0
  34. package/cjs/graphic/creator.d.ts +16 -0
  35. package/cjs/graphic/creator.js +160 -0
  36. package/cjs/graphic/creator.js.map +1 -0
  37. package/cjs/graphic/glyph.js +4 -8
  38. package/cjs/graphic/glyph.js.map +1 -1
  39. package/cjs/graphic/graphic-service/graphic-service.d.ts +0 -1
  40. package/cjs/graphic/graphic-service/graphic-service.js +1 -8
  41. package/cjs/graphic/graphic-service/graphic-service.js.map +1 -1
  42. package/cjs/graphic/graphic.d.ts +19 -29
  43. package/cjs/graphic/graphic.js +123 -201
  44. package/cjs/graphic/graphic.js.map +1 -1
  45. package/cjs/graphic/group.d.ts +1 -3
  46. package/cjs/graphic/group.js +22 -28
  47. package/cjs/graphic/group.js.map +1 -1
  48. package/cjs/graphic/modules.d.ts +16 -0
  49. package/cjs/graphic/modules.js +150 -0
  50. package/cjs/graphic/modules.js.map +1 -0
  51. package/cjs/graphic/node-tree.d.ts +3 -3
  52. package/cjs/graphic/node-tree.js +1 -0
  53. package/cjs/graphic/node-tree.js.map +1 -1
  54. package/cjs/graphic/state/shared-state-refresh.js +11 -32
  55. package/cjs/graphic/state/shared-state-refresh.js.map +1 -1
  56. package/cjs/graphic/state/shared-state-scope.d.ts +2 -5
  57. package/cjs/graphic/state/shared-state-scope.js +8 -27
  58. package/cjs/graphic/state/shared-state-scope.js.map +1 -1
  59. package/cjs/graphic/state/state-definition-compiler.js +4 -5
  60. package/cjs/graphic/state/state-definition-compiler.js.map +1 -1
  61. package/cjs/graphic/state/state-definition.d.ts +2 -5
  62. package/cjs/graphic/state/state-definition.js.map +1 -1
  63. package/cjs/graphic/state/state-engine.d.ts +0 -5
  64. package/cjs/graphic/state/state-engine.js +20 -70
  65. package/cjs/graphic/state/state-engine.js.map +1 -1
  66. package/cjs/graphic/state/state-transition-orchestrator.d.ts +7 -9
  67. package/cjs/graphic/state/state-transition-orchestrator.js +10 -13
  68. package/cjs/graphic/state/state-transition-orchestrator.js.map +1 -1
  69. package/cjs/graphic/tools.js +3 -3
  70. package/cjs/graphic/tools.js.map +1 -1
  71. package/cjs/index.js.map +1 -1
  72. package/cjs/interface/graphic/group.d.ts +0 -2
  73. package/cjs/interface/graphic/group.js.map +1 -1
  74. package/cjs/interface/graphic.d.ts +1 -5
  75. package/cjs/interface/graphic.js.map +1 -1
  76. package/cjs/interface/index.js.map +1 -1
  77. package/cjs/interface/node-tree.d.ts +3 -0
  78. package/cjs/interface/node-tree.js.map +1 -1
  79. package/cjs/interface/stage.d.ts +0 -7
  80. package/cjs/interface/stage.js.map +1 -1
  81. package/cjs/interpolate.d.ts +2 -0
  82. package/cjs/interpolate.js +34 -0
  83. package/cjs/interpolate.js.map +1 -0
  84. package/cjs/modules.js.map +1 -1
  85. package/cjs/path.d.ts +4 -0
  86. package/cjs/path.js +33 -0
  87. package/cjs/path.js.map +1 -0
  88. package/cjs/plugin/3d.d.ts +3 -0
  89. package/cjs/plugin/3d.js +33 -0
  90. package/cjs/plugin/3d.js.map +1 -0
  91. package/cjs/plugin/attribute.d.ts +2 -0
  92. package/cjs/plugin/attribute.js +24 -0
  93. package/cjs/plugin/attribute.js.map +1 -0
  94. package/cjs/plugin/flex-layout.d.ts +1 -0
  95. package/cjs/plugin/flex-layout.js +15 -0
  96. package/cjs/plugin/flex-layout.js.map +1 -0
  97. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
  98. package/cjs/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  99. package/cjs/plugins/index.d.ts +0 -4
  100. package/cjs/plugins/index.js +1 -3
  101. package/cjs/plugins/index.js.map +1 -1
  102. package/cjs/plugins/plugin-service.d.ts +0 -1
  103. package/cjs/plugins/plugin-service.js +2 -3
  104. package/cjs/plugins/plugin-service.js.map +1 -1
  105. package/cjs/plugins/types.d.ts +1 -8
  106. package/cjs/plugins/types.js.map +1 -1
  107. package/cjs/register/graphic.d.ts +19 -0
  108. package/cjs/register/graphic.js +177 -0
  109. package/cjs/register/graphic.js.map +1 -0
  110. package/cjs/registry/contribution-registry.d.ts +0 -1
  111. package/cjs/registry/contribution-registry.js +0 -3
  112. package/cjs/registry/contribution-registry.js.map +1 -1
  113. package/cjs/registry/picker-registry.d.ts +0 -1
  114. package/cjs/registry/picker-registry.js +0 -3
  115. package/cjs/registry/picker-registry.js.map +1 -1
  116. package/cjs/registry/renderer-registry.d.ts +0 -1
  117. package/cjs/registry/renderer-registry.js +0 -3
  118. package/cjs/registry/renderer-registry.js.map +1 -1
  119. package/cjs/registry/types.d.ts +0 -3
  120. package/cjs/registry/types.js.map +1 -1
  121. package/cjs/svg.d.ts +1 -0
  122. package/cjs/svg.js +15 -0
  123. package/cjs/svg.js.map +1 -0
  124. package/cjs/text.d.ts +2 -0
  125. package/cjs/text.js +29 -0
  126. package/cjs/text.js.map +1 -0
  127. package/dist/index.es.js +897 -2213
  128. package/es/common/event-listener-manager.js +1 -2
  129. package/es/common/event-transformer.js +2 -1
  130. package/es/common/performance-raf.js +1 -1
  131. package/es/common/xml/is-xml.d.ts +2 -0
  132. package/es/common/xml/is-xml.js +8 -0
  133. package/es/common/xml/is-xml.js.map +1 -0
  134. package/es/common/xml/parser.d.ts +2 -2
  135. package/es/common/xml/parser.js +3 -7
  136. package/es/common/xml/parser.js.map +1 -1
  137. package/es/container.d.ts +2 -0
  138. package/es/container.js +2 -0
  139. package/es/container.js.map +1 -0
  140. package/es/core/graphic-utils.js +1 -2
  141. package/es/core/layer-service.js +2 -1
  142. package/es/core/stage.d.ts +0 -9
  143. package/es/core/stage.js +9 -30
  144. package/es/core/stage.js.map +1 -1
  145. package/es/entries/miniapp.d.ts +0 -1
  146. package/es/entries/miniapp.js +1 -5
  147. package/es/entries/miniapp.js.map +1 -1
  148. package/es/entries/node.d.ts +0 -1
  149. package/es/entries/node.js +1 -5
  150. package/es/entries/node.js.map +1 -1
  151. package/es/env.d.ts +1 -0
  152. package/es/env.js +2 -0
  153. package/es/env.js.map +1 -0
  154. package/es/event/public-constant.d.ts +7 -0
  155. package/es/event/public-constant.js +12 -0
  156. package/es/event/public-constant.js.map +1 -0
  157. package/es/event/util.d.ts +1 -1
  158. package/es/graphic/base.d.ts +2 -0
  159. package/es/graphic/base.js +2 -0
  160. package/es/graphic/base.js.map +1 -0
  161. package/es/graphic/creator.d.ts +16 -0
  162. package/es/graphic/creator.js +32 -0
  163. package/es/graphic/creator.js.map +1 -0
  164. package/es/graphic/glyph.js +4 -8
  165. package/es/graphic/glyph.js.map +1 -1
  166. package/es/graphic/graphic-service/graphic-service.d.ts +0 -1
  167. package/es/graphic/graphic-service/graphic-service.js +0 -10
  168. package/es/graphic/graphic-service/graphic-service.js.map +1 -1
  169. package/es/graphic/graphic.d.ts +19 -29
  170. package/es/graphic/graphic.js +123 -207
  171. package/es/graphic/graphic.js.map +1 -1
  172. package/es/graphic/group.d.ts +1 -3
  173. package/es/graphic/group.js +22 -28
  174. package/es/graphic/group.js.map +1 -1
  175. package/es/graphic/modules.d.ts +16 -0
  176. package/es/graphic/modules.js +32 -0
  177. package/es/graphic/modules.js.map +1 -0
  178. package/es/graphic/node-tree.d.ts +3 -3
  179. package/es/graphic/node-tree.js +1 -0
  180. package/es/graphic/node-tree.js.map +1 -1
  181. package/es/graphic/state/shared-state-refresh.js +8 -28
  182. package/es/graphic/state/shared-state-refresh.js.map +1 -1
  183. package/es/graphic/state/shared-state-scope.d.ts +2 -5
  184. package/es/graphic/state/shared-state-scope.js +7 -28
  185. package/es/graphic/state/shared-state-scope.js.map +1 -1
  186. package/es/graphic/state/state-definition-compiler.js +4 -5
  187. package/es/graphic/state/state-definition-compiler.js.map +1 -1
  188. package/es/graphic/state/state-definition.d.ts +2 -5
  189. package/es/graphic/state/state-definition.js.map +1 -1
  190. package/es/graphic/state/state-engine.d.ts +0 -5
  191. package/es/graphic/state/state-engine.js +17 -67
  192. package/es/graphic/state/state-engine.js.map +1 -1
  193. package/es/graphic/state/state-transition-orchestrator.d.ts +7 -9
  194. package/es/graphic/state/state-transition-orchestrator.js +10 -13
  195. package/es/graphic/state/state-transition-orchestrator.js.map +1 -1
  196. package/es/graphic/tools.js +3 -3
  197. package/es/graphic/tools.js.map +1 -1
  198. package/es/index.js.map +1 -1
  199. package/es/interface/graphic/group.d.ts +0 -2
  200. package/es/interface/graphic/group.js.map +1 -1
  201. package/es/interface/graphic.d.ts +1 -5
  202. package/es/interface/graphic.js.map +1 -1
  203. package/es/interface/index.js.map +1 -1
  204. package/es/interface/node-tree.d.ts +3 -0
  205. package/es/interface/node-tree.js.map +1 -1
  206. package/es/interface/stage.d.ts +0 -7
  207. package/es/interface/stage.js.map +1 -1
  208. package/es/interpolate.d.ts +2 -0
  209. package/es/interpolate.js +4 -0
  210. package/es/interpolate.js.map +1 -0
  211. package/es/modules.js.map +1 -1
  212. package/es/path.d.ts +4 -0
  213. package/es/path.js +6 -0
  214. package/es/path.js.map +1 -0
  215. package/es/plugin/3d.d.ts +3 -0
  216. package/es/plugin/3d.js +6 -0
  217. package/es/plugin/3d.js.map +1 -0
  218. package/es/plugin/attribute.d.ts +2 -0
  219. package/es/plugin/attribute.js +4 -0
  220. package/es/plugin/attribute.js.map +1 -0
  221. package/es/plugin/flex-layout.d.ts +1 -0
  222. package/es/plugin/flex-layout.js +2 -0
  223. package/es/plugin/flex-layout.js.map +1 -0
  224. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js +8 -8
  225. package/es/plugins/builtin-plugin/dirty-bounds-plugin.js.map +1 -1
  226. package/es/plugins/index.d.ts +0 -4
  227. package/es/plugins/index.js +0 -8
  228. package/es/plugins/index.js.map +1 -1
  229. package/es/plugins/plugin-service.d.ts +0 -1
  230. package/es/plugins/plugin-service.js +2 -3
  231. package/es/plugins/plugin-service.js.map +1 -1
  232. package/es/plugins/types.d.ts +1 -8
  233. package/es/plugins/types.js.map +1 -1
  234. package/es/register/graphic.d.ts +19 -0
  235. package/es/register/graphic.js +38 -0
  236. package/es/register/graphic.js.map +1 -0
  237. package/es/registry/contribution-registry.d.ts +0 -1
  238. package/es/registry/contribution-registry.js +0 -3
  239. package/es/registry/contribution-registry.js.map +1 -1
  240. package/es/registry/picker-registry.d.ts +0 -1
  241. package/es/registry/picker-registry.js +0 -3
  242. package/es/registry/picker-registry.js.map +1 -1
  243. package/es/registry/renderer-registry.d.ts +0 -1
  244. package/es/registry/renderer-registry.js +0 -3
  245. package/es/registry/renderer-registry.js.map +1 -1
  246. package/es/registry/types.d.ts +0 -3
  247. package/es/registry/types.js.map +1 -1
  248. package/es/svg.d.ts +1 -0
  249. package/es/svg.js +2 -0
  250. package/es/svg.js.map +1 -0
  251. package/es/text.d.ts +2 -0
  252. package/es/text.js +4 -0
  253. package/es/text.js.map +1 -0
  254. package/package.json +245 -1
  255. package/cjs/allocator/constants.d.ts +0 -9
  256. package/cjs/allocator/constants.js +0 -11
  257. package/cjs/allocator/constants.js.map +0 -1
  258. package/cjs/common/Reflect-metadata.d.ts +0 -2
  259. package/cjs/common/Reflect-metadata.js +0 -182
  260. package/cjs/common/Reflect-metadata.js.map +0 -1
  261. package/cjs/common/segment/curve/arc.d.ts +0 -17
  262. package/cjs/common/segment/curve/arc.js +0 -38
  263. package/cjs/common/segment/curve/arc.js.map +0 -1
  264. package/cjs/common/segment/curve/ellipse.d.ts +0 -21
  265. package/cjs/common/segment/curve/ellipse.js +0 -39
  266. package/cjs/common/segment/curve/ellipse.js.map +0 -1
  267. package/cjs/common/segment/curve/move.d.ts +0 -16
  268. package/cjs/common/segment/curve/move.js +0 -37
  269. package/cjs/common/segment/curve/move.js.map +0 -1
  270. package/cjs/common/store.d.ts +0 -2
  271. package/cjs/common/store.js +0 -2
  272. package/cjs/common/store.js.map +0 -1
  273. package/cjs/core/application.d.ts +0 -1
  274. package/cjs/core/application.js +0 -6
  275. package/cjs/core/application.js.map +0 -1
  276. package/cjs/core/global-module.d.ts +0 -1
  277. package/cjs/core/global-module.js +0 -1
  278. package/cjs/core/global-module.js.map +0 -1
  279. package/cjs/export.d.ts +0 -1
  280. package/cjs/export.js +0 -1
  281. package/cjs/export.js.map +0 -1
  282. package/cjs/graphic/state/state-batch-scheduler.d.ts +0 -42
  283. package/cjs/graphic/state/state-batch-scheduler.js +0 -285
  284. package/cjs/graphic/state/state-batch-scheduler.js.map +0 -1
  285. package/cjs/graphic/state/state-model.d.ts +0 -43
  286. package/cjs/graphic/state/state-model.js +0 -143
  287. package/cjs/graphic/state/state-model.js.map +0 -1
  288. package/cjs/graphic/state/state-perf-monitor.d.ts +0 -120
  289. package/cjs/graphic/state/state-perf-monitor.js +0 -224
  290. package/cjs/graphic/state/state-perf-monitor.js.map +0 -1
  291. package/cjs/graphic/state/state-style-resolver.d.ts +0 -13
  292. package/cjs/graphic/state/state-style-resolver.js +0 -50
  293. package/cjs/graphic/state/state-style-resolver.js.map +0 -1
  294. package/cjs/interface/animate.d.ts +0 -1
  295. package/cjs/interface/animate.js +0 -3
  296. package/cjs/interface/animate.js.map +0 -1
  297. package/cjs/interface/creator.d.ts +0 -4
  298. package/cjs/interface/creator.js +0 -6
  299. package/cjs/interface/creator.js.map +0 -1
  300. package/cjs/interface/graphic/dynamic-path.d.ts +0 -1
  301. package/cjs/interface/graphic/dynamic-path.js +0 -3
  302. package/cjs/interface/graphic/dynamic-path.js.map +0 -1
  303. package/cjs/interface/graphic-utils.d.ts +0 -1
  304. package/cjs/interface/graphic-utils.js +0 -3
  305. package/cjs/interface/graphic-utils.js.map +0 -1
  306. package/cjs/interface/theme-service.d.ts +0 -1
  307. package/cjs/interface/theme-service.js +0 -3
  308. package/cjs/interface/theme-service.js.map +0 -1
  309. package/cjs/plugins/base-plugin.d.ts +0 -8
  310. package/cjs/plugins/base-plugin.js +0 -15
  311. package/cjs/plugins/base-plugin.js.map +0 -1
  312. package/cjs/plugins/browser-env-plugin.d.ts +0 -8
  313. package/cjs/plugins/browser-env-plugin.js +0 -24
  314. package/cjs/plugins/browser-env-plugin.js.map +0 -1
  315. package/cjs/plugins/builtin-plugin/poptip-plugin.d.ts +0 -1
  316. package/cjs/plugins/builtin-plugin/poptip-plugin.js +0 -3
  317. package/cjs/plugins/builtin-plugin/poptip-plugin.js.map +0 -1
  318. package/cjs/plugins/picker-plugin.d.ts +0 -7
  319. package/cjs/plugins/picker-plugin.js +0 -19
  320. package/cjs/plugins/picker-plugin.js.map +0 -1
  321. package/cjs/plugins/renderer-plugin.d.ts +0 -7
  322. package/cjs/plugins/renderer-plugin.js +0 -19
  323. package/cjs/plugins/renderer-plugin.js.map +0 -1
  324. package/cjs/render/contributions/render/clear-screen.d.ts +0 -1
  325. package/cjs/render/contributions/render/clear-screen.js +0 -3
  326. package/cjs/render/contributions/render/clear-screen.js.map +0 -1
  327. package/cjs/render/contributions/render/render-slector.d.ts +0 -1
  328. package/cjs/render/contributions/render/render-slector.js +0 -3
  329. package/cjs/render/contributions/render/render-slector.js.map +0 -1
  330. package/es/allocator/constants.d.ts +0 -9
  331. package/es/allocator/constants.js +0 -18
  332. package/es/allocator/constants.js.map +0 -1
  333. package/es/common/Reflect-metadata.d.ts +0 -2
  334. package/es/common/Reflect-metadata.js +0 -178
  335. package/es/common/Reflect-metadata.js.map +0 -1
  336. package/es/common/segment/curve/arc.d.ts +0 -17
  337. package/es/common/segment/curve/arc.js +0 -31
  338. package/es/common/segment/curve/arc.js.map +0 -1
  339. package/es/common/segment/curve/ellipse.d.ts +0 -21
  340. package/es/common/segment/curve/ellipse.js +0 -33
  341. package/es/common/segment/curve/ellipse.js.map +0 -1
  342. package/es/common/segment/curve/move.d.ts +0 -16
  343. package/es/common/segment/curve/move.js +0 -31
  344. package/es/common/segment/curve/move.js.map +0 -1
  345. package/es/common/store.d.ts +0 -2
  346. package/es/common/store.js +0 -2
  347. package/es/common/store.js.map +0 -1
  348. package/es/core/application.d.ts +0 -1
  349. package/es/core/application.js +0 -2
  350. package/es/core/application.js.map +0 -1
  351. package/es/core/global-module.d.ts +0 -1
  352. package/es/core/global-module.js +0 -1
  353. package/es/core/global-module.js.map +0 -1
  354. package/es/export.d.ts +0 -1
  355. package/es/export.js +0 -1
  356. package/es/export.js.map +0 -1
  357. package/es/graphic/state/state-batch-scheduler.d.ts +0 -42
  358. package/es/graphic/state/state-batch-scheduler.js +0 -278
  359. package/es/graphic/state/state-batch-scheduler.js.map +0 -1
  360. package/es/graphic/state/state-model.d.ts +0 -43
  361. package/es/graphic/state/state-model.js +0 -135
  362. package/es/graphic/state/state-model.js.map +0 -1
  363. package/es/graphic/state/state-perf-monitor.d.ts +0 -120
  364. package/es/graphic/state/state-perf-monitor.js +0 -214
  365. package/es/graphic/state/state-perf-monitor.js.map +0 -1
  366. package/es/graphic/state/state-style-resolver.d.ts +0 -13
  367. package/es/graphic/state/state-style-resolver.js +0 -42
  368. package/es/graphic/state/state-style-resolver.js.map +0 -1
  369. package/es/interface/animate.d.ts +0 -1
  370. package/es/interface/animate.js +0 -3
  371. package/es/interface/animate.js.map +0 -1
  372. package/es/interface/creator.d.ts +0 -4
  373. package/es/interface/creator.js +0 -2
  374. package/es/interface/creator.js.map +0 -1
  375. package/es/interface/graphic/dynamic-path.d.ts +0 -1
  376. package/es/interface/graphic/dynamic-path.js +0 -3
  377. package/es/interface/graphic/dynamic-path.js.map +0 -1
  378. package/es/interface/graphic-utils.d.ts +0 -1
  379. package/es/interface/graphic-utils.js +0 -3
  380. package/es/interface/graphic-utils.js.map +0 -1
  381. package/es/interface/theme-service.d.ts +0 -1
  382. package/es/interface/theme-service.js +0 -3
  383. package/es/interface/theme-service.js.map +0 -1
  384. package/es/plugins/base-plugin.d.ts +0 -8
  385. package/es/plugins/base-plugin.js +0 -7
  386. package/es/plugins/base-plugin.js.map +0 -1
  387. package/es/plugins/browser-env-plugin.d.ts +0 -8
  388. package/es/plugins/browser-env-plugin.js +0 -16
  389. package/es/plugins/browser-env-plugin.js.map +0 -1
  390. package/es/plugins/builtin-plugin/poptip-plugin.d.ts +0 -1
  391. package/es/plugins/builtin-plugin/poptip-plugin.js +0 -3
  392. package/es/plugins/builtin-plugin/poptip-plugin.js.map +0 -1
  393. package/es/plugins/picker-plugin.d.ts +0 -7
  394. package/es/plugins/picker-plugin.js +0 -11
  395. package/es/plugins/picker-plugin.js.map +0 -1
  396. package/es/plugins/renderer-plugin.d.ts +0 -7
  397. package/es/plugins/renderer-plugin.js +0 -11
  398. package/es/plugins/renderer-plugin.js.map +0 -1
  399. package/es/render/contributions/render/clear-screen.d.ts +0 -1
  400. package/es/render/contributions/render/clear-screen.js +0 -3
  401. package/es/render/contributions/render/clear-screen.js.map +0 -1
  402. package/es/render/contributions/render/render-slector.d.ts +0 -1
  403. package/es/render/contributions/render/render-slector.js +0 -3
  404. package/es/render/contributions/render/render-slector.js.map +0 -1
@@ -1,38 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.ArcCurve = void 0;
6
-
7
- const enums_1 = require("../../enums"), base_1 = require("./base");
8
-
9
- class ArcCurve extends base_1.Curve {
10
- constructor(p0, p1, radius) {
11
- super(), this.type = enums_1.CurveTypeEnum.ArcCurve, this.p0 = p0, this.p1 = p1,
12
- this.radius = radius;
13
- }
14
- getPointAt(t) {
15
- throw new Error("ArcCurve暂不支持getPointAt");
16
- }
17
- calcLength() {
18
- throw new Error("ArcCurve暂不支持updateLength");
19
- }
20
- calcProjLength(direction) {
21
- throw new Error("QuadraticBezierCurve暂不支持updateLength");
22
- }
23
- getAngleAt(t) {
24
- throw new Error("ArcCurve暂不支持getAngleAt");
25
- }
26
- draw(path, percent) {
27
- throw new Error("暂不支持");
28
- }
29
- getYAt(x) {
30
- throw new Error("ArcCurve暂不支持getYAt");
31
- }
32
- includeX(x) {
33
- throw new Error("ArcCurve暂不支持includeX");
34
- }
35
- }
36
-
37
- exports.ArcCurve = ArcCurve;
38
- //# sourceMappingURL=arc.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/segment/curve/arc.ts"],"names":[],"mappings":";;;AACA,uCAA4C;AAC5C,iCAA+B;AAG/B,MAAa,QAAS,SAAQ,YAAK;IAKjC,YAAY,EAAU,EAAE,EAAU,EAAE,MAAc;QAChD,KAAK,EAAE,CAAC;QALV,SAAI,GAAW,qBAAa,CAAC,QAAQ,CAAC;QAMpC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IAED,IAAI,CAAC,IAAa,EAAE,OAAe;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,CAAS;QACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IACD,QAAQ,CAAC,CAAS;QAChB,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;IAC1C,CAAC;CACF;AAjCD,4BAiCC","file":"arc.js","sourcesContent":["import type { IDirection, IArcCurve, IPath2D } from '../../../interface';\nimport { CurveTypeEnum } from '../../enums';\nimport { Curve } from './base';\nimport type { IPoint, IPointLike } from '@visactor/vutils';\n\nexport class ArcCurve extends Curve implements IArcCurve {\n type: number = CurveTypeEnum.ArcCurve;\n declare readonly p0: IPoint;\n declare readonly p1: IPoint;\n declare radius: number;\n constructor(p0: IPoint, p1: IPoint, radius: number) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n this.radius = radius;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('ArcCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('ArcCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n\n draw(path: IPath2D, percent: number) {\n throw new Error('暂不支持');\n }\n getYAt(x: number): number {\n throw new Error('ArcCurve暂不支持getYAt');\n }\n includeX(x: number): boolean {\n throw new Error('ArcCurve暂不支持includeX');\n }\n}\n"]}
@@ -1,21 +0,0 @@
1
- import type { IPoint, IPointLike } from '@visactor/vutils';
2
- import type { IEllipseCurve, IDirection, IPath2D } from '../../../interface';
3
- import { Curve } from './base';
4
- export declare class EllipseCurve extends Curve implements IEllipseCurve {
5
- type: number;
6
- p0: IPoint;
7
- radiusX: number;
8
- radiusY: number;
9
- rotation: number;
10
- startAngle: number;
11
- endAngle: number;
12
- anticlockwise?: boolean;
13
- constructor(p0: IPoint, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, anticlockwise?: boolean);
14
- getPointAt(t: number): IPointLike;
15
- getAngleAt(t: number): number;
16
- protected calcLength(): number;
17
- protected calcProjLength(direction: IDirection): number;
18
- draw(path: IPath2D, percent: number): void;
19
- getYAt(x: number): number;
20
- includeX(x: number): boolean;
21
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.EllipseCurve = void 0;
6
-
7
- const base_1 = require("./base"), enums_1 = require("../../enums");
8
-
9
- class EllipseCurve extends base_1.Curve {
10
- constructor(p0, radiusX, radiusY, rotation, startAngle, endAngle, anticlockwise) {
11
- super(), this.type = enums_1.CurveTypeEnum.EllipseCurve, this.p0 = p0, this.radiusX = radiusX,
12
- this.radiusY = radiusY, this.rotation = rotation, this.startAngle = startAngle,
13
- this.endAngle = endAngle, this.anticlockwise = anticlockwise;
14
- }
15
- getPointAt(t) {
16
- throw new Error("EllipseCurve暂不支持getPointAt");
17
- }
18
- getAngleAt(t) {
19
- throw new Error("ArcCurve暂不支持getAngleAt");
20
- }
21
- calcLength() {
22
- throw new Error("EllipseCurve暂不支持updateLength");
23
- }
24
- calcProjLength(direction) {
25
- throw new Error("QuadraticBezierCurve暂不支持updateLength");
26
- }
27
- draw(path, percent) {
28
- throw new Error("暂不支持");
29
- }
30
- getYAt(x) {
31
- throw new Error("QuadraticBezierCurve暂不支持getYAt");
32
- }
33
- includeX(x) {
34
- throw new Error("QuadraticBezierCurve暂不支持includeX");
35
- }
36
- }
37
-
38
- exports.EllipseCurve = EllipseCurve;
39
- //# sourceMappingURL=ellipse.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/segment/curve/ellipse.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,YAAa,SAAQ,YAAK;IASrC,YACE,EAAU,EACV,OAAe,EACf,OAAe,EACf,QAAgB,EAChB,UAAkB,EAClB,QAAgB,EAChB,aAAuB;QAEvB,KAAK,EAAE,CAAC;QAjBV,SAAI,GAAW,qBAAa,CAAC,YAAY,CAAC;QAkBxC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;IACrC,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAa,EAAE,OAAe;QACjC,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,CAAC,CAAS;QACd,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IACD,QAAQ,CAAC,CAAS;QAChB,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;IACtD,CAAC;CACF;AAjDD,oCAiDC","file":"ellipse.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IEllipseCurve, IDirection, IPath2D } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class EllipseCurve extends Curve implements IEllipseCurve {\n type: number = CurveTypeEnum.EllipseCurve;\n declare p0: IPoint;\n declare radiusX: number;\n declare radiusY: number;\n declare rotation: number;\n declare startAngle: number;\n declare endAngle: number;\n declare anticlockwise?: boolean;\n constructor(\n p0: IPoint,\n radiusX: number,\n radiusY: number,\n rotation: number,\n startAngle: number,\n endAngle: number,\n anticlockwise?: boolean\n ) {\n super();\n this.p0 = p0;\n this.radiusX = radiusX;\n this.radiusY = radiusY;\n this.rotation = rotation;\n this.startAngle = startAngle;\n this.endAngle = endAngle;\n this.anticlockwise = anticlockwise;\n }\n getPointAt(t: number): IPointLike {\n throw new Error('EllipseCurve暂不支持getPointAt');\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n protected calcLength(): number {\n throw new Error('EllipseCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n\n draw(path: IPath2D, percent: number) {\n throw new Error('暂不支持');\n }\n getYAt(x: number): number {\n throw new Error('QuadraticBezierCurve暂不支持getYAt');\n }\n includeX(x: number): boolean {\n throw new Error('QuadraticBezierCurve暂不支持includeX');\n }\n}\n"]}
@@ -1,16 +0,0 @@
1
- import type { IPoint, IPointLike } from '@visactor/vutils';
2
- import type { IMoveCurve, IDirection, IPath2D } from '../../../interface';
3
- import { Curve } from './base';
4
- export declare class MoveCurve extends Curve implements IMoveCurve {
5
- type: number;
6
- p0: IPoint;
7
- p1: IPoint;
8
- constructor(p0: IPoint, p1: IPoint);
9
- getAngleAt(t: number): number;
10
- getPointAt(t: number): IPointLike;
11
- protected calcLength(): number;
12
- protected calcProjLength(direction: IDirection): number;
13
- draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number): void;
14
- includeX(x: number): boolean;
15
- getYAt(x: number): number;
16
- }
@@ -1,37 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.MoveCurve = void 0;
6
-
7
- const base_1 = require("./base"), enums_1 = require("../../enums");
8
-
9
- class MoveCurve extends base_1.Curve {
10
- constructor(p0, p1) {
11
- super(), this.type = enums_1.CurveTypeEnum.MoveCurve, this.p0 = p0, this.p1 = p1;
12
- }
13
- getAngleAt(t) {
14
- throw new Error("ArcCurve暂不支持getAngleAt");
15
- }
16
- getPointAt(t) {
17
- throw new Error("MoveCurve暂不支持getPointAt");
18
- }
19
- calcLength() {
20
- throw new Error("MoveCurve暂不支持updateLength");
21
- }
22
- calcProjLength(direction) {
23
- throw new Error("QuadraticBezierCurve暂不支持updateLength");
24
- }
25
- draw(path, x, y, sx, sy, percent) {
26
- path.moveTo(this.p1.x * sx + x, this.p1.y * sy + y);
27
- }
28
- includeX(x) {
29
- return !1;
30
- }
31
- getYAt(x) {
32
- return 1 / 0;
33
- }
34
- }
35
-
36
- exports.MoveCurve = MoveCurve;
37
- //# sourceMappingURL=move.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/segment/curve/move.ts"],"names":[],"mappings":";;;AAEA,iCAA+B;AAC/B,uCAA4C;AAE5C,MAAa,SAAU,SAAQ,YAAK;IAIlC,YAAY,EAAU,EAAE,EAAU;QAChC,KAAK,EAAE,CAAC;QAJV,SAAI,GAAW,qBAAa,CAAC,SAAS,CAAC;QAKrC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;IAC5C,CAAC;IACD,UAAU,CAAC,CAAS;QAClB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IACS,UAAU;QAClB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IACS,cAAc,CAAC,SAAqB;QAC5C,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,CAAC,IAAa,EAAE,CAAS,EAAE,CAAS,EAAE,EAAU,EAAE,EAAU,EAAE,OAAe;QAC/E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,QAAQ,CAAC,CAAS;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,CAAC,CAAS;QACd,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA/BD,8BA+BC","file":"move.js","sourcesContent":["import type { IPoint, IPointLike } from '@visactor/vutils';\nimport type { IMoveCurve, IDirection, IPath2D } from '../../../interface';\nimport { Curve } from './base';\nimport { CurveTypeEnum } from '../../enums';\n\nexport class MoveCurve extends Curve implements IMoveCurve {\n type: number = CurveTypeEnum.MoveCurve;\n declare p0: IPoint;\n declare p1: IPoint;\n constructor(p0: IPoint, p1: IPoint) {\n super();\n this.p0 = p0;\n this.p1 = p1;\n }\n getAngleAt(t: number): number {\n throw new Error('ArcCurve暂不支持getAngleAt');\n }\n getPointAt(t: number): IPointLike {\n throw new Error('MoveCurve暂不支持getPointAt');\n }\n protected calcLength(): number {\n throw new Error('MoveCurve暂不支持updateLength');\n }\n protected calcProjLength(direction: IDirection): number {\n throw new Error('QuadraticBezierCurve暂不支持updateLength');\n }\n\n draw(path: IPath2D, x: number, y: number, sx: number, sy: number, percent: number) {\n path.moveTo(this.p1.x * sx + x, this.p1.y * sy + y);\n }\n includeX(x: number): boolean {\n return false;\n }\n getYAt(x: number): number {\n return Infinity;\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- declare class StageStore {
2
- }
@@ -1,2 +0,0 @@
1
- class StageStore {}
2
- //# sourceMappingURL=store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common/store.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU;CAAG","file":"store.js","sourcesContent":["class StageStore {}\n"]}
@@ -1 +0,0 @@
1
- export declare const ApplicationContribution: unique symbol;
@@ -1,6 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: !0
5
- }), exports.ApplicationContribution = void 0, exports.ApplicationContribution = Symbol("ApplicationContribution");
6
- //# sourceMappingURL=application.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/application.ts"],"names":[],"mappings":";;;AAAa,QAAA,uBAAuB,GAAG,MAAM,CAAC,yBAAyB,CAAC,CAAC","file":"application.js","sourcesContent":["export const ApplicationContribution = Symbol('ApplicationContribution');\n"]}
@@ -1 +0,0 @@
1
-
@@ -1 +0,0 @@
1
- //# sourceMappingURL=global-module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/global-module.ts"],"names":[],"mappings":"","file":"global-module.js","sourcesContent":["// import type { IGlobal } from '../interface';\n// legacy container bootstrap has been removed in major cleanup.\n// import { DefaultGlobal } from './global';\n// import envModules from './contributions/env/modules';\n// import { Global } from '../constants';\n\n// const globalModule = new ContainerModule((bind, unbind, isBound) => {\n// // global对象,全局单例模式\n// if (!isBound(Global)) {\n// bind(DefaultGlobal).toSelf().inSingletonScope();\n// bind(Global).toService(DefaultGlobal);\n// }\n// });\n\n// container.load(globalModule);\n// container.load(envModules);\n\n// export const global = container.get<IGlobal>(Global);\n\n// export default globalModule;\n"]}
package/cjs/export.d.ts DELETED
@@ -1 +0,0 @@
1
-
package/cjs/export.js DELETED
@@ -1 +0,0 @@
1
- //# sourceMappingURL=export.js.map
package/cjs/export.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/export.ts"],"names":[],"mappings":"","file":"export.js","sourcesContent":["// // 导出所有扩展需要的模块\n// // graphic\n// export * from './interface/graphic/circle';\n// export * from './interface/graphic/rect';\n// export * from './interface/graphic/arc';\n// export * from './interface/graphic/area';\n// export * from './interface/graphic/image';\n// export * from './interface/graphic/line';\n// export * from './interface/graphic/path';\n// export * from './interface/graphic/symbol';\n// export * from './interface/graphic/text';\n\n// // render-service\n// export * from './render/render-service';\n// export * from './render/contributions/render/graphic-render';\n// export * from './render/contributions/render/circle-render';\n"]}
@@ -1,42 +0,0 @@
1
- import type { IGraphic, IGroup, ILayer, IStage } from '../../interface';
2
- import { type IDeferredStateConfig, type StatePerfMonitor } from './state-perf-monitor';
3
- type StateBatchJobKind = 'apply_states';
4
- type StateBatchIntentKey = string;
5
- export interface IStateBatchJob {
6
- id: number;
7
- kind: StateBatchJobKind;
8
- intentKey: StateBatchIntentKey;
9
- status: 'pending' | 'running' | 'completed' | 'cancelled';
10
- targetStates: string[];
11
- targetStatesKey: string;
12
- pendingGraphics: Set<IGraphic>;
13
- orderedGraphics: IGraphic[];
14
- config: Required<IDeferredStateConfig>;
15
- contextOwner: IStage | ILayer | IGroup;
16
- contextOwnerId: number;
17
- configFingerprint: string;
18
- createdAt: number;
19
- processedCount: number;
20
- }
21
- export declare class StateBatchScheduler {
22
- private readonly stage;
23
- private readonly perfMonitor?;
24
- readonly jobsByIntentKey: Map<string, IStateBatchJob>;
25
- readonly pendingIntentByGraphic: Map<IGraphic<Partial<import("../../interface").IGraphicAttribute>>, string>;
26
- private nextJobId;
27
- private readonly runningJobs;
28
- constructor(stage: IStage, perfMonitor?: StatePerfMonitor);
29
- schedule(graphics: IGraphic[], targetStates: string[]): void;
30
- release(): void;
31
- private resolveEligibility;
32
- private resolveDeferredContext;
33
- private classifyGraphicTargetStates;
34
- private enqueueDeferredIntent;
35
- private removeGraphicFromPending;
36
- private removeGraphicFromIntentJob;
37
- private ensureJobRunning;
38
- private runJob;
39
- private waitForNextFrame;
40
- private commitSynchronously;
41
- }
42
- export {};
@@ -1,285 +0,0 @@
1
- "use strict";
2
-
3
- var __awaiter = this && this.__awaiter || function(thisArg, _arguments, P, generator) {
4
- return new (P || (P = Promise))((function(resolve, reject) {
5
- function fulfilled(value) {
6
- try {
7
- step(generator.next(value));
8
- } catch (e) {
9
- reject(e);
10
- }
11
- }
12
- function rejected(value) {
13
- try {
14
- step(generator.throw(value));
15
- } catch (e) {
16
- reject(e);
17
- }
18
- }
19
- function step(result) {
20
- var value;
21
- result.done ? resolve(result.value) : (value = result.value, value instanceof P ? value : new P((function(resolve) {
22
- resolve(value);
23
- }))).then(fulfilled, rejected);
24
- }
25
- step((generator = generator.apply(thisArg, _arguments || [])).next());
26
- }));
27
- };
28
-
29
- Object.defineProperty(exports, "__esModule", {
30
- value: !0
31
- }), exports.StateBatchScheduler = void 0;
32
-
33
- const attribute_update_classifier_1 = require("./attribute-update-classifier"), state_perf_monitor_1 = require("./state-perf-monitor");
34
-
35
- function isRenderableGraphic(graphic) {
36
- return !!graphic.stage && "released" !== graphic.releaseStatus;
37
- }
38
-
39
- function createTargetStatesKey(targetStates) {
40
- return targetStates.length ? targetStates.join("|") : "__clear__";
41
- }
42
-
43
- function createIntentKey(contextOwnerId, configFingerprint, targetStatesKey) {
44
- return `${contextOwnerId}:${configFingerprint}:${targetStatesKey}`;
45
- }
46
-
47
- function hasMeaningfulDeferredConfig(config) {
48
- const normalized = (0, state_perf_monitor_1.normalizeDeferredStateOwnerConfig)(config);
49
- return !!normalized && (null != normalized.localEnabled || null != normalized.deferred);
50
- }
51
-
52
- function getGraphicCompiledDefinitions(graphic) {
53
- const graphicAny = graphic;
54
- if ("function" == typeof graphicAny.resolveEffectiveCompiledDefinitions) {
55
- const result = graphicAny.resolveEffectiveCompiledDefinitions();
56
- return {
57
- compiledDefinitions: result.compiledDefinitions,
58
- stateProxyEligibility: result.stateProxyEligibility
59
- };
60
- }
61
- return {};
62
- }
63
-
64
- function getCurrentStateNames(graphic) {
65
- var _a, _b;
66
- return null !== (_b = null === (_a = graphic.currentStates) || void 0 === _a ? void 0 : _a.slice()) && void 0 !== _b ? _b : [];
67
- }
68
-
69
- class StateBatchScheduler {
70
- constructor(stage, perfMonitor) {
71
- this.stage = stage, this.perfMonitor = perfMonitor, this.jobsByIntentKey = new Map,
72
- this.pendingIntentByGraphic = new Map, this.nextJobId = 1, this.runningJobs = new Map;
73
- }
74
- schedule(graphics, targetStates) {
75
- const batchOperation = graphics.length > 1;
76
- graphics.forEach((graphic => {
77
- const eligibility = this.resolveEligibility(graphic, targetStates, batchOperation, !0);
78
- if ("reason" in eligibility) return this.removeGraphicFromPending(graphic), void ("graphic_unavailable" !== eligibility.reason && this.commitSynchronously(graphic, targetStates));
79
- this.enqueueDeferredIntent(graphic, targetStates, eligibility.context, eligibility.targetStatesKey);
80
- }));
81
- }
82
- release() {
83
- var _a;
84
- this.jobsByIntentKey.forEach((job => {
85
- job.status = "cancelled";
86
- })), this.jobsByIntentKey.clear(), this.pendingIntentByGraphic.clear(), this.runningJobs.clear(),
87
- null === (_a = this.perfMonitor) || void 0 === _a || _a.updateBatchPending(0);
88
- }
89
- resolveEligibility(graphic, targetStates, batchOperation, recordObservability) {
90
- var _a, _b, _c, _d, _e, _f;
91
- if (!isRenderableGraphic(graphic)) return recordObservability && (null === (_a = this.perfMonitor) || void 0 === _a || _a.recordDeferredIneligible("graphic_unavailable")),
92
- {
93
- eligible: !1,
94
- reason: "graphic_unavailable"
95
- };
96
- if (!batchOperation) return recordObservability && (null === (_b = this.perfMonitor) || void 0 === _b || _b.recordDeferredIneligible("non_batch_operation")),
97
- {
98
- eligible: !1,
99
- reason: "non_batch_operation"
100
- };
101
- const context = this.resolveDeferredContext(graphic);
102
- if (!context) return recordObservability && (null === (_c = this.perfMonitor) || void 0 === _c || _c.recordDeferredIneligible("graphic_unavailable")),
103
- {
104
- eligible: !1,
105
- reason: "graphic_unavailable"
106
- };
107
- if (!context.config.enabled) {
108
- const normalizedOwnerConfig = (0, state_perf_monitor_1.normalizeDeferredStateOwnerConfig)(context.contextOwner.deferredStateConfig), reason = !1 === (null == normalizedOwnerConfig ? void 0 : normalizedOwnerConfig.localEnabled) ? "context_disabled" : "config_disabled";
109
- return recordObservability && (null === (_d = this.perfMonitor) || void 0 === _d || _d.recordDeferredIneligible(reason)),
110
- {
111
- eligible: !1,
112
- reason: reason
113
- };
114
- }
115
- const classification = this.classifyGraphicTargetStates(graphic, targetStates);
116
- return classification.reason ? (recordObservability && (null === (_e = this.perfMonitor) || void 0 === _e || _e.recordDeferredIneligible(classification.reason)),
117
- {
118
- eligible: !1,
119
- reason: classification.reason
120
- }) : classification.category !== attribute_update_classifier_1.UpdateCategory.PAINT ? (recordObservability && (null === (_f = this.perfMonitor) || void 0 === _f || _f.recordDeferredIneligible("mixed_update_category")),
121
- {
122
- eligible: !1,
123
- reason: "mixed_update_category"
124
- }) : {
125
- eligible: !0,
126
- context: context,
127
- targetStatesKey: createTargetStatesKey(targetStates)
128
- };
129
- }
130
- resolveDeferredContext(graphic) {
131
- var _a;
132
- const stage = graphic.stage;
133
- if (!stage) return;
134
- let owner = stage, config = (0, state_perf_monitor_1.normalizeDeferredStateConfig)(void 0);
135
- const ownerConfigs = [ stage ], parents = [];
136
- let parent = graphic.parent;
137
- for (;parent && parent !== stage; ) parents.push(parent), parent = parent.parent;
138
- parents.reverse().forEach((current => ownerConfigs.push(current))), ownerConfigs.forEach((current => {
139
- const deferredStateConfig = (0, state_perf_monitor_1.normalizeDeferredStateOwnerConfig)(current.deferredStateConfig);
140
- deferredStateConfig && (deferredStateConfig.deferred && (config = Object.assign(Object.assign({}, config), deferredStateConfig.deferred)),
141
- null != deferredStateConfig.localEnabled && (config.enabled = deferredStateConfig.localEnabled),
142
- hasMeaningfulDeferredConfig(current.deferredStateConfig) && (owner = current));
143
- }));
144
- const normalized = (0, state_perf_monitor_1.normalizeDeferredStateConfig)(config);
145
- return {
146
- contextOwner: owner,
147
- contextOwnerId: null !== (_a = owner._uid) && void 0 !== _a ? _a : 0,
148
- config: normalized,
149
- configFingerprint: (0, state_perf_monitor_1.fingerprintDeferredStateConfig)(normalized)
150
- };
151
- }
152
- classifyGraphicTargetStates(graphic, targetStates) {
153
- const {compiledDefinitions: compiledDefinitions, stateProxyEligibility: stateProxyEligibility} = getGraphicCompiledDefinitions(graphic), candidateStates = Array.from(new Set([ ...getCurrentStateNames(graphic), ...targetStates ]));
154
- let category = attribute_update_classifier_1.UpdateCategory.NONE;
155
- return candidateStates.forEach((stateName => {
156
- if (null == stateProxyEligibility ? void 0 : stateProxyEligibility(stateName)) return void (category = attribute_update_classifier_1.UpdateCategory.NONE);
157
- const definition = null == compiledDefinitions ? void 0 : compiledDefinitions.get(stateName);
158
- definition && (definition.hasResolver && 0 === definition.affectedKeys.size ? category = attribute_update_classifier_1.UpdateCategory.NONE : category |= (0,
159
- attribute_update_classifier_1.classifyAffectedKeys)(definition.affectedKeys));
160
- })), candidateStates.some((stateName => null == stateProxyEligibility ? void 0 : stateProxyEligibility(stateName))) || candidateStates.some((stateName => {
161
- const definition = null == compiledDefinitions ? void 0 : compiledDefinitions.get(stateName);
162
- return !!(null == definition ? void 0 : definition.hasResolver) && 0 === definition.affectedKeys.size;
163
- })) ? {
164
- category: attribute_update_classifier_1.UpdateCategory.NONE,
165
- reason: "resolver_unstable_keys"
166
- } : {
167
- category: category === attribute_update_classifier_1.UpdateCategory.NONE ? attribute_update_classifier_1.UpdateCategory.PAINT : category
168
- };
169
- }
170
- enqueueDeferredIntent(graphic, targetStates, context, targetStatesKey) {
171
- var _a, _b, _c, _d, _e, _f;
172
- const nextIntentKey = createIntentKey(context.contextOwnerId, context.configFingerprint, targetStatesKey), prevIntentKey = this.pendingIntentByGraphic.get(graphic);
173
- if (prevIntentKey === nextIntentKey) return void (null === (_a = this.perfMonitor) || void 0 === _a || _a.incrementCounter("deferredJobsCoalesced"));
174
- prevIntentKey && this.removeGraphicFromIntentJob(graphic, prevIntentKey);
175
- let job = this.jobsByIntentKey.get(nextIntentKey);
176
- job ? null === (_d = this.perfMonitor) || void 0 === _d || _d.incrementCounter("deferredJobsCoalesced") : (job = {
177
- id: this.nextJobId++,
178
- kind: "apply_states",
179
- intentKey: nextIntentKey,
180
- status: "pending",
181
- targetStates: [ ...targetStates ],
182
- targetStatesKey: targetStatesKey,
183
- pendingGraphics: new Set,
184
- orderedGraphics: [],
185
- config: context.config,
186
- contextOwner: context.contextOwner,
187
- contextOwnerId: context.contextOwnerId,
188
- configFingerprint: context.configFingerprint,
189
- createdAt: Date.now(),
190
- processedCount: 0
191
- }, this.jobsByIntentKey.set(nextIntentKey, job), null === (_b = this.perfMonitor) || void 0 === _b || _b.incrementCounter("deferredJobsCreated"),
192
- null === (_c = this.perfMonitor) || void 0 === _c || _c.updateBatchPending(this.jobsByIntentKey.size)),
193
- job.pendingGraphics.has(graphic) || (job.pendingGraphics.add(graphic), job.orderedGraphics.push(graphic),
194
- this.pendingIntentByGraphic.set(graphic, nextIntentKey), null === (_e = this.perfMonitor) || void 0 === _e || _e.recordAllocation("batchEntriesCreated"),
195
- null === (_f = this.perfMonitor) || void 0 === _f || _f.updateMaxGraphicsInJob(job.pendingGraphics.size)),
196
- this.ensureJobRunning(job);
197
- }
198
- removeGraphicFromPending(graphic) {
199
- const prevIntentKey = this.pendingIntentByGraphic.get(graphic);
200
- prevIntentKey && this.removeGraphicFromIntentJob(graphic, prevIntentKey);
201
- }
202
- removeGraphicFromIntentJob(graphic, intentKey) {
203
- var _a, _b, _c;
204
- const job = this.jobsByIntentKey.get(intentKey);
205
- job ? (job.pendingGraphics.delete(graphic), this.pendingIntentByGraphic.get(graphic) === intentKey && this.pendingIntentByGraphic.delete(graphic),
206
- 0 === job.pendingGraphics.size && "completed" !== job.status && (job.status = "cancelled",
207
- this.jobsByIntentKey.delete(intentKey), null === (_a = this.perfMonitor) || void 0 === _a || _a.incrementCounter("deferredJobsCancelled"),
208
- null === (_b = this.perfMonitor) || void 0 === _b || _b.recordEvent("deferred-job-cancel", {
209
- intentKey: intentKey,
210
- jobId: job.id
211
- }), null === (_c = this.perfMonitor) || void 0 === _c || _c.updateBatchPending(this.jobsByIntentKey.size))) : this.pendingIntentByGraphic.delete(graphic);
212
- }
213
- ensureJobRunning(job) {
214
- if (this.runningJobs.has(job.intentKey)) return;
215
- const runner = this.runJob(job).then((() => {
216
- this.runningJobs.delete(job.intentKey);
217
- }), (() => {
218
- this.runningJobs.delete(job.intentKey);
219
- }));
220
- this.runningJobs.set(job.intentKey, runner);
221
- }
222
- runJob(job) {
223
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
224
- return __awaiter(this, void 0, void 0, (function*() {
225
- if ("cancelled" === job.status) return;
226
- if (yield this.waitForNextFrame(), "cancelled" === job.status) return;
227
- job.status = "running", null === (_a = this.perfMonitor) || void 0 === _a || _a.recordEvent("deferred-job-start", {
228
- intentKey: job.intentKey,
229
- jobId: job.id
230
- });
231
- let index = 0, frameStart = performance.now(), processedInFrame = 0, committedInSlice = 0;
232
- for (;index < job.orderedGraphics.length; ) {
233
- if ("cancelled" === job.status) return;
234
- processedInFrame > 0 && (processedInFrame >= job.config.maxGraphicsPerFrame || performance.now() - frameStart >= job.config.frameBudget) && (null === (_b = this.perfMonitor) || void 0 === _b || _b.incrementCounter("deferredBudgetYields"),
235
- null === (_c = this.perfMonitor) || void 0 === _c || _c.recordCost("batchSlice", performance.now() - frameStart),
236
- null === (_d = this.perfMonitor) || void 0 === _d || _d.recordEvent("deferred-job-yield", {
237
- intentKey: job.intentKey,
238
- jobId: job.id,
239
- processedInFrame: processedInFrame
240
- }), committedInSlice > 0 && this.stage.renderNextFrame(), yield this.waitForNextFrame(),
241
- frameStart = performance.now(), processedInFrame = 0, committedInSlice = 0);
242
- const graphic = job.orderedGraphics[index++];
243
- if (!job.pendingGraphics.has(graphic)) continue;
244
- if (!isRenderableGraphic(graphic)) {
245
- job.pendingGraphics.delete(graphic), this.pendingIntentByGraphic.get(graphic) === job.intentKey && this.pendingIntentByGraphic.delete(graphic);
246
- continue;
247
- }
248
- if (this.pendingIntentByGraphic.get(graphic) !== job.intentKey) {
249
- job.pendingGraphics.delete(graphic);
250
- continue;
251
- }
252
- const nextEligibility = this.resolveEligibility(graphic, job.targetStates, !0, !1);
253
- if (!nextEligibility.eligible) {
254
- job.pendingGraphics.delete(graphic), this.pendingIntentByGraphic.delete(graphic),
255
- this.commitSynchronously(graphic, job.targetStates);
256
- continue;
257
- }
258
- createIntentKey(nextEligibility.context.contextOwnerId, nextEligibility.context.configFingerprint, nextEligibility.targetStatesKey) === job.intentKey ? (this.commitSynchronously(graphic, job.targetStates),
259
- job.pendingGraphics.delete(graphic), this.pendingIntentByGraphic.delete(graphic),
260
- job.processedCount += 1, processedInFrame += 1, committedInSlice += 1, null === (_e = this.perfMonitor) || void 0 === _e || _e.incrementCounter("deferredGraphicsCommitted")) : (job.pendingGraphics.delete(graphic),
261
- this.pendingIntentByGraphic.delete(graphic), this.enqueueDeferredIntent(graphic, job.targetStates, nextEligibility.context, nextEligibility.targetStatesKey));
262
- }
263
- processedInFrame > 0 && (null === (_f = this.perfMonitor) || void 0 === _f || _f.recordCost("batchSlice", performance.now() - frameStart),
264
- this.stage.renderNextFrame()), 0 === job.pendingGraphics.size && this.jobsByIntentKey.get(job.intentKey) === job && (job.status = "completed",
265
- this.jobsByIntentKey.delete(job.intentKey), null === (_g = this.perfMonitor) || void 0 === _g || _g.incrementCounter("deferredJobsCompleted"),
266
- null === (_h = this.perfMonitor) || void 0 === _h || _h.recordEvent("deferred-job-complete", {
267
- intentKey: job.intentKey,
268
- jobId: job.id,
269
- processedCount: job.processedCount
270
- }), null === (_j = this.perfMonitor) || void 0 === _j || _j.updateBatchPending(this.jobsByIntentKey.size));
271
- }));
272
- }
273
- waitForNextFrame() {
274
- const stageGlobal = this.stage.global;
275
- return (null == stageGlobal ? void 0 : stageGlobal.getSpecifiedPerformanceRAF) ? stageGlobal.getSpecifiedPerformanceRAF(this.stage.rafId).wait() : new Promise((resolve => {
276
- null == stageGlobal || stageGlobal.getSpecifiedRequestAnimationFrame(this.stage.rafId)((() => resolve()));
277
- }));
278
- }
279
- commitSynchronously(graphic, targetStates) {
280
- isRenderableGraphic(graphic) && (targetStates.length ? graphic.useStates(targetStates, !1) : graphic.clearStates(!1));
281
- }
282
- }
283
-
284
- exports.StateBatchScheduler = StateBatchScheduler;
285
- //# sourceMappingURL=state-batch-scheduler.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/graphic/state/state-batch-scheduler.ts"],"names":[],"mappings":"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","file":"state-batch-scheduler.js","sourcesContent":["import type { IGraphic, IGroup, ILayer, IStage } from '../../interface';\nimport type { CompiledStateDefinition } from './state-definition';\nimport { UpdateCategory, classifyAffectedKeys } from './attribute-update-classifier';\nimport {\n type DeferredIneligibleReason,\n type IDeferredStateConfig,\n type IDeferredStateOwnerConfig,\n type IResolvedDeferredContext,\n type StatePerfMonitor,\n fingerprintDeferredStateConfig,\n normalizeDeferredStateConfig,\n normalizeDeferredStateOwnerConfig\n} from './state-perf-monitor';\n\ntype StateBatchJobKind = 'apply_states';\ntype StateBatchIntentKey = string;\n\nexport interface IStateBatchJob {\n id: number;\n kind: StateBatchJobKind;\n intentKey: StateBatchIntentKey;\n status: 'pending' | 'running' | 'completed' | 'cancelled';\n targetStates: string[];\n targetStatesKey: string;\n pendingGraphics: Set<IGraphic>;\n orderedGraphics: IGraphic[];\n config: Required<IDeferredStateConfig>;\n contextOwner: IStage | ILayer | IGroup;\n contextOwnerId: number;\n configFingerprint: string;\n createdAt: number;\n processedCount: number;\n}\n\ntype DeferredEligibilityResult =\n | {\n eligible: true;\n context: IResolvedDeferredContext;\n targetStatesKey: string;\n }\n | {\n eligible: false;\n reason: DeferredIneligibleReason;\n };\n\nfunction isRenderableGraphic(graphic: IGraphic): boolean {\n return !!graphic.stage && (graphic as any).releaseStatus !== 'released';\n}\n\nfunction createTargetStatesKey(targetStates: string[]): string {\n return targetStates.length ? targetStates.join('|') : '__clear__';\n}\n\nfunction createIntentKey(\n contextOwnerId: number,\n configFingerprint: string,\n targetStatesKey: string\n): StateBatchIntentKey {\n return `${contextOwnerId}:${configFingerprint}:${targetStatesKey}`;\n}\n\nfunction hasMeaningfulDeferredConfig(config?: IDeferredStateOwnerConfig): boolean {\n const normalized = normalizeDeferredStateOwnerConfig(config);\n return !!normalized && (normalized.localEnabled != null || normalized.deferred != null);\n}\n\nfunction getGraphicCompiledDefinitions(graphic: IGraphic): {\n compiledDefinitions?: Map<string, CompiledStateDefinition<any>>;\n stateProxyEligibility?: (stateName: string) => boolean;\n} {\n const graphicAny = graphic as any;\n if (typeof graphicAny.resolveEffectiveCompiledDefinitions === 'function') {\n const result = graphicAny.resolveEffectiveCompiledDefinitions();\n return {\n compiledDefinitions: result.compiledDefinitions,\n stateProxyEligibility: result.stateProxyEligibility\n };\n }\n\n return {};\n}\n\nfunction getCurrentStateNames(graphic: IGraphic): string[] {\n return ((graphic as any).currentStates as string[] | undefined)?.slice() ?? [];\n}\n\nexport class StateBatchScheduler {\n readonly jobsByIntentKey = new Map<StateBatchIntentKey, IStateBatchJob>();\n readonly pendingIntentByGraphic = new Map<IGraphic, StateBatchIntentKey>();\n\n private nextJobId = 1;\n private readonly runningJobs = new Map<StateBatchIntentKey, Promise<void>>();\n\n constructor(private readonly stage: IStage, private readonly perfMonitor?: StatePerfMonitor) {}\n\n schedule(graphics: IGraphic[], targetStates: string[]): void {\n const batchOperation = graphics.length > 1;\n\n graphics.forEach(graphic => {\n const eligibility = this.resolveEligibility(graphic, targetStates, batchOperation, true);\n if ('reason' in eligibility) {\n this.removeGraphicFromPending(graphic);\n if (eligibility.reason !== 'graphic_unavailable') {\n this.commitSynchronously(graphic, targetStates);\n }\n return;\n }\n\n this.enqueueDeferredIntent(graphic, targetStates, eligibility.context, eligibility.targetStatesKey);\n });\n }\n\n release(): void {\n this.jobsByIntentKey.forEach(job => {\n job.status = 'cancelled';\n });\n this.jobsByIntentKey.clear();\n this.pendingIntentByGraphic.clear();\n this.runningJobs.clear();\n this.perfMonitor?.updateBatchPending(0);\n }\n\n private resolveEligibility(\n graphic: IGraphic,\n targetStates: string[],\n batchOperation: boolean,\n recordObservability: boolean\n ): DeferredEligibilityResult {\n if (!isRenderableGraphic(graphic)) {\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible('graphic_unavailable');\n }\n return { eligible: false, reason: 'graphic_unavailable' };\n }\n\n if (!batchOperation) {\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible('non_batch_operation');\n }\n return { eligible: false, reason: 'non_batch_operation' };\n }\n\n const context = this.resolveDeferredContext(graphic);\n if (!context) {\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible('graphic_unavailable');\n }\n return { eligible: false, reason: 'graphic_unavailable' };\n }\n\n if (!context.config.enabled) {\n const normalizedOwnerConfig = normalizeDeferredStateOwnerConfig(\n (context.contextOwner as any).deferredStateConfig as IDeferredStateOwnerConfig | undefined\n );\n const reason = normalizedOwnerConfig?.localEnabled === false ? 'context_disabled' : 'config_disabled';\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible(reason);\n }\n return { eligible: false, reason };\n }\n\n const classification = this.classifyGraphicTargetStates(graphic, targetStates);\n if (classification.reason) {\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible(classification.reason);\n }\n return { eligible: false, reason: classification.reason };\n }\n\n if (classification.category !== UpdateCategory.PAINT) {\n if (recordObservability) {\n this.perfMonitor?.recordDeferredIneligible('mixed_update_category');\n }\n return { eligible: false, reason: 'mixed_update_category' };\n }\n\n return {\n eligible: true,\n context,\n targetStatesKey: createTargetStatesKey(targetStates)\n };\n }\n\n private resolveDeferredContext(graphic: IGraphic): IResolvedDeferredContext | undefined {\n const stage = graphic.stage;\n if (!stage) {\n return undefined;\n }\n\n let owner: IStage | ILayer | IGroup = stage;\n let config = normalizeDeferredStateConfig(undefined);\n\n const ownerConfigs: Array<IStage | ILayer | IGroup> = [stage];\n const parents: Array<IGroup | ILayer> = [];\n let parent = graphic.parent as any;\n\n while (parent && parent !== stage) {\n parents.push(parent);\n parent = parent.parent as any;\n }\n\n parents.reverse().forEach(current => ownerConfigs.push(current));\n\n ownerConfigs.forEach(current => {\n const deferredStateConfig = normalizeDeferredStateOwnerConfig(\n (current as any).deferredStateConfig as IDeferredStateOwnerConfig | undefined\n );\n if (!deferredStateConfig) {\n return;\n }\n\n if (deferredStateConfig.deferred) {\n config = {\n ...config,\n ...deferredStateConfig.deferred\n };\n }\n\n if (deferredStateConfig.localEnabled != null) {\n config.enabled = deferredStateConfig.localEnabled;\n }\n\n if (hasMeaningfulDeferredConfig((current as any).deferredStateConfig)) {\n owner = current;\n }\n });\n\n const normalized = normalizeDeferredStateConfig(config);\n return {\n contextOwner: owner,\n contextOwnerId: (owner as any)._uid ?? 0,\n config: normalized,\n configFingerprint: fingerprintDeferredStateConfig(normalized)\n };\n }\n\n private classifyGraphicTargetStates(\n graphic: IGraphic,\n targetStates: string[]\n ): { category: UpdateCategory; reason?: DeferredIneligibleReason } {\n const { compiledDefinitions, stateProxyEligibility } = getGraphicCompiledDefinitions(graphic);\n const candidateStates = Array.from(new Set([...getCurrentStateNames(graphic), ...targetStates]));\n let category = UpdateCategory.NONE;\n\n candidateStates.forEach(stateName => {\n if (stateProxyEligibility?.(stateName)) {\n category = UpdateCategory.NONE;\n return;\n }\n\n const definition = compiledDefinitions?.get(stateName);\n if (!definition) {\n return;\n }\n\n if (definition.hasResolver && definition.affectedKeys.size === 0) {\n category = UpdateCategory.NONE;\n return;\n }\n\n category |= classifyAffectedKeys(definition.affectedKeys);\n });\n\n if (\n candidateStates.some(stateName => stateProxyEligibility?.(stateName)) ||\n candidateStates.some(stateName => {\n const definition = compiledDefinitions?.get(stateName);\n return !!definition?.hasResolver && definition.affectedKeys.size === 0;\n })\n ) {\n return {\n category: UpdateCategory.NONE,\n reason: 'resolver_unstable_keys'\n };\n }\n\n return {\n category: category === UpdateCategory.NONE ? UpdateCategory.PAINT : category\n };\n }\n\n private enqueueDeferredIntent(\n graphic: IGraphic,\n targetStates: string[],\n context: IResolvedDeferredContext,\n targetStatesKey: string\n ): void {\n const nextIntentKey = createIntentKey(context.contextOwnerId, context.configFingerprint, targetStatesKey);\n const prevIntentKey = this.pendingIntentByGraphic.get(graphic);\n\n if (prevIntentKey === nextIntentKey) {\n this.perfMonitor?.incrementCounter('deferredJobsCoalesced');\n return;\n }\n\n if (prevIntentKey) {\n this.removeGraphicFromIntentJob(graphic, prevIntentKey);\n }\n\n let job = this.jobsByIntentKey.get(nextIntentKey);\n if (!job) {\n job = {\n id: this.nextJobId++,\n kind: 'apply_states',\n intentKey: nextIntentKey,\n status: 'pending',\n targetStates: [...targetStates],\n targetStatesKey,\n pendingGraphics: new Set(),\n orderedGraphics: [],\n config: context.config,\n contextOwner: context.contextOwner,\n contextOwnerId: context.contextOwnerId,\n configFingerprint: context.configFingerprint,\n createdAt: Date.now(),\n processedCount: 0\n };\n this.jobsByIntentKey.set(nextIntentKey, job);\n this.perfMonitor?.incrementCounter('deferredJobsCreated');\n this.perfMonitor?.updateBatchPending(this.jobsByIntentKey.size);\n } else {\n this.perfMonitor?.incrementCounter('deferredJobsCoalesced');\n }\n\n if (!job.pendingGraphics.has(graphic)) {\n job.pendingGraphics.add(graphic);\n job.orderedGraphics.push(graphic);\n this.pendingIntentByGraphic.set(graphic, nextIntentKey);\n this.perfMonitor?.recordAllocation('batchEntriesCreated');\n this.perfMonitor?.updateMaxGraphicsInJob(job.pendingGraphics.size);\n }\n\n this.ensureJobRunning(job);\n }\n\n private removeGraphicFromPending(graphic: IGraphic): void {\n const prevIntentKey = this.pendingIntentByGraphic.get(graphic);\n if (!prevIntentKey) {\n return;\n }\n this.removeGraphicFromIntentJob(graphic, prevIntentKey);\n }\n\n private removeGraphicFromIntentJob(graphic: IGraphic, intentKey: StateBatchIntentKey): void {\n const job = this.jobsByIntentKey.get(intentKey);\n if (!job) {\n this.pendingIntentByGraphic.delete(graphic);\n return;\n }\n\n job.pendingGraphics.delete(graphic);\n if (this.pendingIntentByGraphic.get(graphic) === intentKey) {\n this.pendingIntentByGraphic.delete(graphic);\n }\n\n if (job.pendingGraphics.size === 0 && job.status !== 'completed') {\n job.status = 'cancelled';\n this.jobsByIntentKey.delete(intentKey);\n this.perfMonitor?.incrementCounter('deferredJobsCancelled');\n this.perfMonitor?.recordEvent('deferred-job-cancel', {\n intentKey,\n jobId: job.id\n });\n this.perfMonitor?.updateBatchPending(this.jobsByIntentKey.size);\n }\n }\n\n private ensureJobRunning(job: IStateBatchJob): void {\n if (this.runningJobs.has(job.intentKey)) {\n return;\n }\n\n const runner = this.runJob(job).then(\n () => {\n this.runningJobs.delete(job.intentKey);\n },\n () => {\n this.runningJobs.delete(job.intentKey);\n }\n );\n\n this.runningJobs.set(job.intentKey, runner);\n }\n\n private async runJob(job: IStateBatchJob): Promise<void> {\n if ((job.status as string) === 'cancelled') {\n return;\n }\n\n await this.waitForNextFrame();\n if ((job.status as string) === 'cancelled') {\n return;\n }\n\n job.status = 'running';\n this.perfMonitor?.recordEvent('deferred-job-start', {\n intentKey: job.intentKey,\n jobId: job.id\n });\n\n let index = 0;\n let frameStart = performance.now();\n let processedInFrame = 0;\n let committedInSlice = 0;\n\n while (index < job.orderedGraphics.length) {\n if ((job.status as string) === 'cancelled') {\n return;\n }\n\n if (\n processedInFrame > 0 &&\n (processedInFrame >= job.config.maxGraphicsPerFrame || performance.now() - frameStart >= job.config.frameBudget)\n ) {\n this.perfMonitor?.incrementCounter('deferredBudgetYields');\n this.perfMonitor?.recordCost('batchSlice', performance.now() - frameStart);\n this.perfMonitor?.recordEvent('deferred-job-yield', {\n intentKey: job.intentKey,\n jobId: job.id,\n processedInFrame\n });\n if (committedInSlice > 0) {\n this.stage.renderNextFrame();\n }\n await this.waitForNextFrame();\n frameStart = performance.now();\n processedInFrame = 0;\n committedInSlice = 0;\n }\n\n const graphic = job.orderedGraphics[index++];\n\n if (!job.pendingGraphics.has(graphic)) {\n continue;\n }\n\n if (!isRenderableGraphic(graphic)) {\n job.pendingGraphics.delete(graphic);\n if (this.pendingIntentByGraphic.get(graphic) === job.intentKey) {\n this.pendingIntentByGraphic.delete(graphic);\n }\n continue;\n }\n\n if (this.pendingIntentByGraphic.get(graphic) !== job.intentKey) {\n job.pendingGraphics.delete(graphic);\n continue;\n }\n\n const nextEligibility = this.resolveEligibility(graphic, job.targetStates, true, false);\n if (!nextEligibility.eligible) {\n job.pendingGraphics.delete(graphic);\n this.pendingIntentByGraphic.delete(graphic);\n this.commitSynchronously(graphic, job.targetStates);\n continue;\n }\n\n const nextIntentKey = createIntentKey(\n nextEligibility.context.contextOwnerId,\n nextEligibility.context.configFingerprint,\n nextEligibility.targetStatesKey\n );\n\n if (nextIntentKey !== job.intentKey) {\n job.pendingGraphics.delete(graphic);\n this.pendingIntentByGraphic.delete(graphic);\n this.enqueueDeferredIntent(graphic, job.targetStates, nextEligibility.context, nextEligibility.targetStatesKey);\n continue;\n }\n\n this.commitSynchronously(graphic, job.targetStates);\n job.pendingGraphics.delete(graphic);\n this.pendingIntentByGraphic.delete(graphic);\n job.processedCount += 1;\n processedInFrame += 1;\n committedInSlice += 1;\n this.perfMonitor?.incrementCounter('deferredGraphicsCommitted');\n }\n\n if (processedInFrame > 0) {\n this.perfMonitor?.recordCost('batchSlice', performance.now() - frameStart);\n this.stage.renderNextFrame();\n }\n\n if (job.pendingGraphics.size === 0 && this.jobsByIntentKey.get(job.intentKey) === job) {\n job.status = 'completed';\n this.jobsByIntentKey.delete(job.intentKey);\n this.perfMonitor?.incrementCounter('deferredJobsCompleted');\n this.perfMonitor?.recordEvent('deferred-job-complete', {\n intentKey: job.intentKey,\n jobId: job.id,\n processedCount: job.processedCount\n });\n this.perfMonitor?.updateBatchPending(this.jobsByIntentKey.size);\n }\n }\n\n private waitForNextFrame(): Promise<void> {\n const stageGlobal = (this.stage as any).global;\n if (stageGlobal?.getSpecifiedPerformanceRAF) {\n return stageGlobal.getSpecifiedPerformanceRAF((this.stage as any).rafId).wait();\n }\n\n return new Promise(resolve => {\n stageGlobal?.getSpecifiedRequestAnimationFrame((this.stage as any).rafId)(() => resolve());\n });\n }\n\n private commitSynchronously(graphic: IGraphic, targetStates: string[]): void {\n if (!isRenderableGraphic(graphic)) {\n return;\n }\n\n if (!targetStates.length) {\n graphic.clearStates(false);\n return;\n }\n\n graphic.useStates(targetStates, false);\n }\n}\n"]}