minerva-design 1.4.0 → 1.6.0

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 (824) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/README.md +21 -21
  3. package/custom-elements.json +3072 -611
  4. package/dist/angular/fesm2022/minerva-angular.mjs +1491 -5
  5. package/dist/angular/fesm2022/minerva-angular.mjs.map +1 -1
  6. package/dist/angular/types/minerva-angular.d.ts +595 -5
  7. package/dist/charts/canvas.d.cts +4 -3
  8. package/dist/charts/canvas.d.ts +4 -3
  9. package/dist/charts/core.cjs +1 -1
  10. package/dist/charts/core.d.cts +6 -4
  11. package/dist/charts/core.d.ts +6 -4
  12. package/dist/charts/core.js +24 -16
  13. package/dist/charts/engine/axis.cjs +1 -1
  14. package/dist/charts/engine/axis.cjs.map +1 -1
  15. package/dist/charts/engine/axis.js +42 -19
  16. package/dist/charts/engine/axis.js.map +1 -1
  17. package/dist/charts/engine/canvas.cjs +1 -1
  18. package/dist/charts/engine/canvas.cjs.map +1 -1
  19. package/dist/charts/engine/canvas.js +155 -127
  20. package/dist/charts/engine/canvas.js.map +1 -1
  21. package/dist/charts/engine/chart.cjs +1 -1
  22. package/dist/charts/engine/chart.cjs.map +1 -1
  23. package/dist/charts/engine/chart.js +370 -255
  24. package/dist/charts/engine/chart.js.map +1 -1
  25. package/dist/charts/engine/color.cjs +1 -1
  26. package/dist/charts/engine/color.cjs.map +1 -1
  27. package/dist/charts/engine/color.d.cts +18 -0
  28. package/dist/charts/engine/color.d.ts +18 -0
  29. package/dist/charts/engine/color.js +48 -2
  30. package/dist/charts/engine/color.js.map +1 -1
  31. package/dist/charts/engine/controller.cjs +2 -2
  32. package/dist/charts/engine/controller.cjs.map +1 -1
  33. package/dist/charts/engine/controller.d.cts +34 -1
  34. package/dist/charts/engine/controller.d.ts +34 -1
  35. package/dist/charts/engine/controller.js +318 -273
  36. package/dist/charts/engine/controller.js.map +1 -1
  37. package/dist/charts/engine/data.cjs +1 -1
  38. package/dist/charts/engine/data.cjs.map +1 -1
  39. package/dist/charts/engine/data.d.cts +3 -1
  40. package/dist/charts/engine/data.d.ts +3 -1
  41. package/dist/charts/engine/data.js +6 -4
  42. package/dist/charts/engine/data.js.map +1 -1
  43. package/dist/charts/engine/defaults.cjs +2 -0
  44. package/dist/charts/engine/defaults.cjs.map +1 -0
  45. package/dist/charts/engine/defaults.d.cts +20 -0
  46. package/dist/charts/engine/defaults.d.ts +20 -0
  47. package/dist/charts/engine/defaults.js +35 -0
  48. package/dist/charts/engine/defaults.js.map +1 -0
  49. package/dist/charts/engine/format.cjs +1 -1
  50. package/dist/charts/engine/format.cjs.map +1 -1
  51. package/dist/charts/engine/format.d.cts +6 -0
  52. package/dist/charts/engine/format.d.ts +6 -0
  53. package/dist/charts/engine/format.js +15 -2
  54. package/dist/charts/engine/format.js.map +1 -1
  55. package/dist/charts/engine/graph/chart.cjs +2 -0
  56. package/dist/charts/engine/graph/chart.cjs.map +1 -0
  57. package/dist/charts/engine/graph/chart.d.cts +3 -0
  58. package/dist/charts/engine/graph/chart.d.ts +3 -0
  59. package/dist/charts/engine/graph/chart.js +1708 -0
  60. package/dist/charts/engine/graph/chart.js.map +1 -0
  61. package/dist/charts/engine/graph/circular.cjs +2 -0
  62. package/dist/charts/engine/graph/circular.cjs.map +1 -0
  63. package/dist/charts/engine/graph/circular.d.cts +16 -0
  64. package/dist/charts/engine/graph/circular.d.ts +16 -0
  65. package/dist/charts/engine/graph/circular.js +62 -0
  66. package/dist/charts/engine/graph/circular.js.map +1 -0
  67. package/dist/charts/engine/graph/dag.cjs +2 -0
  68. package/dist/charts/engine/graph/dag.cjs.map +1 -0
  69. package/dist/charts/engine/graph/dag.d.cts +34 -0
  70. package/dist/charts/engine/graph/dag.d.ts +34 -0
  71. package/dist/charts/engine/graph/dag.js +339 -0
  72. package/dist/charts/engine/graph/dag.js.map +1 -0
  73. package/dist/charts/engine/graph/dom.cjs +2 -0
  74. package/dist/charts/engine/graph/dom.cjs.map +1 -0
  75. package/dist/charts/engine/graph/dom.d.cts +23 -0
  76. package/dist/charts/engine/graph/dom.d.ts +23 -0
  77. package/dist/charts/engine/graph/dom.js +158 -0
  78. package/dist/charts/engine/graph/dom.js.map +1 -0
  79. package/dist/charts/engine/graph/force.cjs +2 -0
  80. package/dist/charts/engine/graph/force.cjs.map +1 -0
  81. package/dist/charts/engine/graph/force.d.cts +76 -0
  82. package/dist/charts/engine/graph/force.d.ts +76 -0
  83. package/dist/charts/engine/graph/force.js +423 -0
  84. package/dist/charts/engine/graph/force.js.map +1 -0
  85. package/dist/charts/engine/graph/geometry.cjs +2 -0
  86. package/dist/charts/engine/graph/geometry.cjs.map +1 -0
  87. package/dist/charts/engine/graph/geometry.d.cts +50 -0
  88. package/dist/charts/engine/graph/geometry.d.ts +50 -0
  89. package/dist/charts/engine/graph/geometry.js +197 -0
  90. package/dist/charts/engine/graph/geometry.js.map +1 -0
  91. package/dist/charts/engine/graph/index.cjs +1 -0
  92. package/dist/charts/engine/graph/index.d.cts +6 -0
  93. package/dist/charts/engine/graph/index.d.ts +6 -0
  94. package/dist/charts/engine/graph/index.js +6 -0
  95. package/dist/charts/engine/graph/labels.cjs +2 -0
  96. package/dist/charts/engine/graph/labels.cjs.map +1 -0
  97. package/dist/charts/engine/graph/labels.d.cts +12 -0
  98. package/dist/charts/engine/graph/labels.d.ts +12 -0
  99. package/dist/charts/engine/graph/labels.js +128 -0
  100. package/dist/charts/engine/graph/labels.js.map +1 -0
  101. package/dist/charts/engine/graph/model.cjs +2 -0
  102. package/dist/charts/engine/graph/model.cjs.map +1 -0
  103. package/dist/charts/engine/graph/model.d.cts +52 -0
  104. package/dist/charts/engine/graph/model.d.ts +52 -0
  105. package/dist/charts/engine/graph/model.js +108 -0
  106. package/dist/charts/engine/graph/model.js.map +1 -0
  107. package/dist/charts/engine/graph/sizing.cjs +2 -0
  108. package/dist/charts/engine/graph/sizing.cjs.map +1 -0
  109. package/dist/charts/engine/graph/sizing.d.cts +33 -0
  110. package/dist/charts/engine/graph/sizing.d.ts +33 -0
  111. package/dist/charts/engine/graph/sizing.js +60 -0
  112. package/dist/charts/engine/graph/sizing.js.map +1 -0
  113. package/dist/charts/engine/graph/tree.cjs +2 -0
  114. package/dist/charts/engine/graph/tree.cjs.map +1 -0
  115. package/dist/charts/engine/graph/tree.d.cts +30 -0
  116. package/dist/charts/engine/graph/tree.d.ts +30 -0
  117. package/dist/charts/engine/graph/tree.js +218 -0
  118. package/dist/charts/engine/graph/tree.js.map +1 -0
  119. package/dist/charts/engine/graph/types.d.cts +640 -0
  120. package/dist/charts/engine/graph/types.d.ts +640 -0
  121. package/dist/charts/engine/graph/worker.cjs +52 -0
  122. package/dist/charts/engine/graph/worker.cjs.map +1 -0
  123. package/dist/charts/engine/graph/worker.d.cts +36 -0
  124. package/dist/charts/engine/graph/worker.d.ts +36 -0
  125. package/dist/charts/engine/graph/worker.js +135 -0
  126. package/dist/charts/engine/graph/worker.js.map +1 -0
  127. package/dist/charts/engine/items.cjs +1 -1
  128. package/dist/charts/engine/items.cjs.map +1 -1
  129. package/dist/charts/engine/items.d.cts +15 -2
  130. package/dist/charts/engine/items.d.ts +15 -2
  131. package/dist/charts/engine/items.js +131 -112
  132. package/dist/charts/engine/items.js.map +1 -1
  133. package/dist/charts/engine/labels.cjs +1 -1
  134. package/dist/charts/engine/labels.cjs.map +1 -1
  135. package/dist/charts/engine/labels.d.cts +17 -0
  136. package/dist/charts/engine/labels.d.ts +17 -0
  137. package/dist/charts/engine/labels.js +28 -4
  138. package/dist/charts/engine/labels.js.map +1 -1
  139. package/dist/charts/engine/layout.cjs +1 -1
  140. package/dist/charts/engine/layout.cjs.map +1 -1
  141. package/dist/charts/engine/layout.d.cts +9 -0
  142. package/dist/charts/engine/layout.d.ts +9 -0
  143. package/dist/charts/engine/layout.js +11 -2
  144. package/dist/charts/engine/layout.js.map +1 -1
  145. package/dist/charts/engine/model.cjs +1 -1
  146. package/dist/charts/engine/model.cjs.map +1 -1
  147. package/dist/charts/engine/model.d.cts +73 -3
  148. package/dist/charts/engine/model.d.ts +73 -3
  149. package/dist/charts/engine/model.js +258 -154
  150. package/dist/charts/engine/model.js.map +1 -1
  151. package/dist/charts/engine/orderbook/field.cjs +37 -0
  152. package/dist/charts/engine/orderbook/field.cjs.map +1 -0
  153. package/dist/charts/engine/orderbook/field.d.cts +92 -0
  154. package/dist/charts/engine/orderbook/field.d.ts +92 -0
  155. package/dist/charts/engine/orderbook/field.js +297 -0
  156. package/dist/charts/engine/orderbook/field.js.map +1 -0
  157. package/dist/charts/engine/orderbook/format.cjs +1 -1
  158. package/dist/charts/engine/orderbook/format.cjs.map +1 -1
  159. package/dist/charts/engine/orderbook/format.d.cts +3 -2
  160. package/dist/charts/engine/orderbook/format.d.ts +3 -2
  161. package/dist/charts/engine/orderbook/format.js +5 -5
  162. package/dist/charts/engine/orderbook/format.js.map +1 -1
  163. package/dist/charts/engine/orderbook/heatmap.cjs +1 -1
  164. package/dist/charts/engine/orderbook/heatmap.cjs.map +1 -1
  165. package/dist/charts/engine/orderbook/heatmap.js +566 -475
  166. package/dist/charts/engine/orderbook/heatmap.js.map +1 -1
  167. package/dist/charts/engine/orderbook/host.cjs +1 -1
  168. package/dist/charts/engine/orderbook/host.cjs.map +1 -1
  169. package/dist/charts/engine/orderbook/host.d.cts +8 -1
  170. package/dist/charts/engine/orderbook/host.d.ts +8 -1
  171. package/dist/charts/engine/orderbook/host.js +27 -5
  172. package/dist/charts/engine/orderbook/host.js.map +1 -1
  173. package/dist/charts/engine/orderbook/ladder.cjs +1 -1
  174. package/dist/charts/engine/orderbook/ladder.cjs.map +1 -1
  175. package/dist/charts/engine/orderbook/ladder.js +1 -1
  176. package/dist/charts/engine/orderbook/ladder.js.map +1 -1
  177. package/dist/charts/engine/orderbook/layout.cjs +2 -0
  178. package/dist/charts/engine/orderbook/layout.cjs.map +1 -0
  179. package/dist/charts/engine/orderbook/layout.d.cts +42 -0
  180. package/dist/charts/engine/orderbook/layout.d.ts +42 -0
  181. package/dist/charts/engine/orderbook/layout.js +76 -0
  182. package/dist/charts/engine/orderbook/layout.js.map +1 -0
  183. package/dist/charts/engine/orderbook/tape.cjs +1 -1
  184. package/dist/charts/engine/orderbook/tape.cjs.map +1 -1
  185. package/dist/charts/engine/orderbook/tape.js +4 -4
  186. package/dist/charts/engine/orderbook/tape.js.map +1 -1
  187. package/dist/charts/engine/orderbook/types.d.cts +27 -3
  188. package/dist/charts/engine/orderbook/types.d.ts +27 -3
  189. package/dist/charts/engine/overlay.cjs +1 -1
  190. package/dist/charts/engine/overlay.cjs.map +1 -1
  191. package/dist/charts/engine/overlay.d.cts +27 -0
  192. package/dist/charts/engine/overlay.d.ts +27 -0
  193. package/dist/charts/engine/overlay.js +34 -12
  194. package/dist/charts/engine/overlay.js.map +1 -1
  195. package/dist/charts/engine/presets.cjs +2 -2
  196. package/dist/charts/engine/presets.cjs.map +1 -1
  197. package/dist/charts/engine/presets.d.cts +35 -3
  198. package/dist/charts/engine/presets.d.ts +35 -3
  199. package/dist/charts/engine/presets.js +121 -101
  200. package/dist/charts/engine/presets.js.map +1 -1
  201. package/dist/charts/engine/renderers/canvas2d.cjs +1 -1
  202. package/dist/charts/engine/renderers/canvas2d.cjs.map +1 -1
  203. package/dist/charts/engine/renderers/canvas2d.js +13 -9
  204. package/dist/charts/engine/renderers/canvas2d.js.map +1 -1
  205. package/dist/charts/engine/renderers/detect.cjs +1 -1
  206. package/dist/charts/engine/renderers/detect.cjs.map +1 -1
  207. package/dist/charts/engine/renderers/detect.d.cts +2 -1
  208. package/dist/charts/engine/renderers/detect.d.ts +2 -1
  209. package/dist/charts/engine/renderers/detect.js +23 -21
  210. package/dist/charts/engine/renderers/detect.js.map +1 -1
  211. package/dist/charts/engine/renderers/follow.cjs +2 -0
  212. package/dist/charts/engine/renderers/follow.cjs.map +1 -0
  213. package/dist/charts/engine/renderers/follow.d.cts +8 -0
  214. package/dist/charts/engine/renderers/follow.d.ts +8 -0
  215. package/dist/charts/engine/renderers/follow.js +10 -0
  216. package/dist/charts/engine/renderers/follow.js.map +1 -0
  217. package/dist/charts/engine/renderers/gl-budget.cjs +2 -0
  218. package/dist/charts/engine/renderers/gl-budget.cjs.map +1 -0
  219. package/dist/charts/engine/renderers/gl-budget.d.cts +32 -0
  220. package/dist/charts/engine/renderers/gl-budget.d.ts +32 -0
  221. package/dist/charts/engine/renderers/gl-budget.js +95 -0
  222. package/dist/charts/engine/renderers/gl-budget.js.map +1 -0
  223. package/dist/charts/engine/renderers/gl.cjs +1 -1
  224. package/dist/charts/engine/renderers/gl.cjs.map +1 -1
  225. package/dist/charts/engine/renderers/gl.js +1 -1
  226. package/dist/charts/engine/renderers/gl.js.map +1 -1
  227. package/dist/charts/engine/renderers/shaders.cjs +9 -6
  228. package/dist/charts/engine/renderers/shaders.cjs.map +1 -1
  229. package/dist/charts/engine/renderers/shaders.d.cts +1 -1
  230. package/dist/charts/engine/renderers/shaders.d.ts +1 -1
  231. package/dist/charts/engine/renderers/shaders.js +9 -6
  232. package/dist/charts/engine/renderers/shaders.js.map +1 -1
  233. package/dist/charts/engine/renderers/types.cjs.map +1 -1
  234. package/dist/charts/engine/renderers/types.d.cts +2 -0
  235. package/dist/charts/engine/renderers/types.d.ts +2 -0
  236. package/dist/charts/engine/renderers/types.js.map +1 -1
  237. package/dist/charts/engine/renderers/webgl.cjs +1 -1
  238. package/dist/charts/engine/renderers/webgl.cjs.map +1 -1
  239. package/dist/charts/engine/renderers/webgl.js +85 -64
  240. package/dist/charts/engine/renderers/webgl.js.map +1 -1
  241. package/dist/charts/engine/renderers/webgl2.cjs +1 -1
  242. package/dist/charts/engine/renderers/webgl2.cjs.map +1 -1
  243. package/dist/charts/engine/renderers/webgl2.js +72 -58
  244. package/dist/charts/engine/renderers/webgl2.js.map +1 -1
  245. package/dist/charts/engine/renderers/webgpu.cjs +1 -1
  246. package/dist/charts/engine/renderers/webgpu.cjs.map +1 -1
  247. package/dist/charts/engine/renderers/webgpu.js +1 -1
  248. package/dist/charts/engine/renderers/webgpu.js.map +1 -1
  249. package/dist/charts/engine/scene.cjs +1 -1
  250. package/dist/charts/engine/scene.cjs.map +1 -1
  251. package/dist/charts/engine/scene.d.cts +104 -4
  252. package/dist/charts/engine/scene.d.ts +104 -4
  253. package/dist/charts/engine/scene.js +412 -193
  254. package/dist/charts/engine/scene.js.map +1 -1
  255. package/dist/charts/engine/shapes/bullet.cjs +1 -1
  256. package/dist/charts/engine/shapes/bullet.cjs.map +1 -1
  257. package/dist/charts/engine/shapes/bullet.js +110 -110
  258. package/dist/charts/engine/shapes/bullet.js.map +1 -1
  259. package/dist/charts/engine/shapes/chart.cjs +1 -1
  260. package/dist/charts/engine/shapes/chart.cjs.map +1 -1
  261. package/dist/charts/engine/shapes/chart.js +4 -1
  262. package/dist/charts/engine/shapes/chart.js.map +1 -1
  263. package/dist/charts/engine/shapes/chord.cjs +2 -0
  264. package/dist/charts/engine/shapes/chord.cjs.map +1 -0
  265. package/dist/charts/engine/shapes/chord.d.cts +18 -0
  266. package/dist/charts/engine/shapes/chord.d.ts +18 -0
  267. package/dist/charts/engine/shapes/chord.js +419 -0
  268. package/dist/charts/engine/shapes/chord.js.map +1 -0
  269. package/dist/charts/engine/shapes/draw.cjs +1 -1
  270. package/dist/charts/engine/shapes/draw.cjs.map +1 -1
  271. package/dist/charts/engine/shapes/draw.d.cts +5 -1
  272. package/dist/charts/engine/shapes/draw.d.ts +5 -1
  273. package/dist/charts/engine/shapes/draw.js +47 -17
  274. package/dist/charts/engine/shapes/draw.js.map +1 -1
  275. package/dist/charts/engine/shapes/hit.cjs +1 -1
  276. package/dist/charts/engine/shapes/hit.cjs.map +1 -1
  277. package/dist/charts/engine/shapes/hit.d.cts +3 -1
  278. package/dist/charts/engine/shapes/hit.d.ts +3 -1
  279. package/dist/charts/engine/shapes/hit.js +75 -46
  280. package/dist/charts/engine/shapes/hit.js.map +1 -1
  281. package/dist/charts/engine/shapes/index.d.cts +3 -2
  282. package/dist/charts/engine/shapes/index.d.ts +3 -2
  283. package/dist/charts/engine/shapes/labels.cjs +1 -1
  284. package/dist/charts/engine/shapes/labels.cjs.map +1 -1
  285. package/dist/charts/engine/shapes/labels.js +12 -4
  286. package/dist/charts/engine/shapes/labels.js.map +1 -1
  287. package/dist/charts/engine/shapes/layout.cjs +2 -2
  288. package/dist/charts/engine/shapes/layout.cjs.map +1 -1
  289. package/dist/charts/engine/shapes/layout.d.cts +3 -1
  290. package/dist/charts/engine/shapes/layout.d.ts +3 -1
  291. package/dist/charts/engine/shapes/layout.js +106 -78
  292. package/dist/charts/engine/shapes/layout.js.map +1 -1
  293. package/dist/charts/engine/shapes/scene.cjs +1 -1
  294. package/dist/charts/engine/shapes/scene.cjs.map +1 -1
  295. package/dist/charts/engine/shapes/scene.d.cts +33 -3
  296. package/dist/charts/engine/shapes/scene.d.ts +33 -3
  297. package/dist/charts/engine/shapes/scene.js +62 -19
  298. package/dist/charts/engine/shapes/scene.js.map +1 -1
  299. package/dist/charts/engine/shapes/types.d.cts +121 -8
  300. package/dist/charts/engine/shapes/types.d.ts +121 -8
  301. package/dist/charts/engine/signature.cjs +1 -1
  302. package/dist/charts/engine/signature.cjs.map +1 -1
  303. package/dist/charts/engine/signature.js +1 -1
  304. package/dist/charts/engine/signature.js.map +1 -1
  305. package/dist/charts/engine/three-d/canvas2d.cjs +1 -1
  306. package/dist/charts/engine/three-d/canvas2d.cjs.map +1 -1
  307. package/dist/charts/engine/three-d/canvas2d.d.cts +41 -3
  308. package/dist/charts/engine/three-d/canvas2d.d.ts +41 -3
  309. package/dist/charts/engine/three-d/canvas2d.js +166 -67
  310. package/dist/charts/engine/three-d/canvas2d.js.map +1 -1
  311. package/dist/charts/engine/three-d/chart.cjs +1 -1
  312. package/dist/charts/engine/three-d/chart.cjs.map +1 -1
  313. package/dist/charts/engine/three-d/chart.js +219 -215
  314. package/dist/charts/engine/three-d/chart.js.map +1 -1
  315. package/dist/charts/engine/three-d/detect.cjs +1 -1
  316. package/dist/charts/engine/three-d/detect.cjs.map +1 -1
  317. package/dist/charts/engine/three-d/detect.d.cts +3 -2
  318. package/dist/charts/engine/three-d/detect.d.ts +3 -2
  319. package/dist/charts/engine/three-d/detect.js +22 -20
  320. package/dist/charts/engine/three-d/detect.js.map +1 -1
  321. package/dist/charts/engine/three-d/geometry.cjs +1 -1
  322. package/dist/charts/engine/three-d/geometry.cjs.map +1 -1
  323. package/dist/charts/engine/three-d/geometry.d.cts +6 -0
  324. package/dist/charts/engine/three-d/geometry.d.ts +6 -0
  325. package/dist/charts/engine/three-d/geometry.js +106 -90
  326. package/dist/charts/engine/three-d/geometry.js.map +1 -1
  327. package/dist/charts/engine/three-d/model.cjs +1 -1
  328. package/dist/charts/engine/three-d/model.cjs.map +1 -1
  329. package/dist/charts/engine/three-d/model.d.cts +2 -0
  330. package/dist/charts/engine/three-d/model.d.ts +2 -0
  331. package/dist/charts/engine/three-d/model.js +2 -0
  332. package/dist/charts/engine/three-d/model.js.map +1 -1
  333. package/dist/charts/engine/three-d/oit.cjs +109 -0
  334. package/dist/charts/engine/three-d/oit.cjs.map +1 -0
  335. package/dist/charts/engine/three-d/oit.d.cts +34 -0
  336. package/dist/charts/engine/three-d/oit.d.ts +34 -0
  337. package/dist/charts/engine/three-d/oit.js +111 -0
  338. package/dist/charts/engine/three-d/oit.js.map +1 -0
  339. package/dist/charts/engine/three-d/overlay.cjs +1 -1
  340. package/dist/charts/engine/three-d/overlay.cjs.map +1 -1
  341. package/dist/charts/engine/three-d/overlay.js +43 -36
  342. package/dist/charts/engine/three-d/overlay.js.map +1 -1
  343. package/dist/charts/engine/three-d/render-types.cjs +1 -1
  344. package/dist/charts/engine/three-d/render-types.cjs.map +1 -1
  345. package/dist/charts/engine/three-d/render-types.d.cts +37 -3
  346. package/dist/charts/engine/three-d/render-types.d.ts +37 -3
  347. package/dist/charts/engine/three-d/render-types.js +6 -10
  348. package/dist/charts/engine/three-d/render-types.js.map +1 -1
  349. package/dist/charts/engine/three-d/shaders.cjs +109 -48
  350. package/dist/charts/engine/three-d/shaders.cjs.map +1 -1
  351. package/dist/charts/engine/three-d/shaders.d.cts +12 -5
  352. package/dist/charts/engine/three-d/shaders.d.ts +12 -5
  353. package/dist/charts/engine/three-d/shaders.js +118 -55
  354. package/dist/charts/engine/three-d/shaders.js.map +1 -1
  355. package/dist/charts/engine/three-d/sort.cjs +1 -1
  356. package/dist/charts/engine/three-d/sort.cjs.map +1 -1
  357. package/dist/charts/engine/three-d/sort.d.cts +18 -5
  358. package/dist/charts/engine/three-d/sort.d.ts +18 -5
  359. package/dist/charts/engine/three-d/sort.js +129 -43
  360. package/dist/charts/engine/three-d/sort.js.map +1 -1
  361. package/dist/charts/engine/three-d/types.d.cts +36 -0
  362. package/dist/charts/engine/three-d/types.d.ts +36 -0
  363. package/dist/charts/engine/three-d/webgl.cjs +1 -1
  364. package/dist/charts/engine/three-d/webgl.cjs.map +1 -1
  365. package/dist/charts/engine/three-d/webgl.d.cts +9 -0
  366. package/dist/charts/engine/three-d/webgl.d.ts +9 -0
  367. package/dist/charts/engine/three-d/webgl.js +199 -74
  368. package/dist/charts/engine/three-d/webgl.js.map +1 -1
  369. package/dist/charts/engine/three-d/webgpu.cjs +1 -1
  370. package/dist/charts/engine/three-d/webgpu.cjs.map +1 -1
  371. package/dist/charts/engine/three-d/webgpu.js +231 -94
  372. package/dist/charts/engine/three-d/webgpu.js.map +1 -1
  373. package/dist/charts/engine/trading/chart.cjs +1 -1
  374. package/dist/charts/engine/trading/chart.cjs.map +1 -1
  375. package/dist/charts/engine/trading/chart.d.cts +10 -1
  376. package/dist/charts/engine/trading/chart.d.ts +10 -1
  377. package/dist/charts/engine/trading/chart.js +1677 -813
  378. package/dist/charts/engine/trading/chart.js.map +1 -1
  379. package/dist/charts/engine/trading/drawings.cjs +2 -1
  380. package/dist/charts/engine/trading/drawings.cjs.map +1 -1
  381. package/dist/charts/engine/trading/drawings.d.cts +53 -9
  382. package/dist/charts/engine/trading/drawings.d.ts +53 -9
  383. package/dist/charts/engine/trading/drawings.js +346 -71
  384. package/dist/charts/engine/trading/drawings.js.map +1 -1
  385. package/dist/charts/engine/trading/format.cjs +1 -1
  386. package/dist/charts/engine/trading/format.cjs.map +1 -1
  387. package/dist/charts/engine/trading/format.d.cts +19 -0
  388. package/dist/charts/engine/trading/format.d.ts +19 -0
  389. package/dist/charts/engine/trading/format.js +65 -21
  390. package/dist/charts/engine/trading/format.js.map +1 -1
  391. package/dist/charts/engine/trading/geometry.cjs +1 -1
  392. package/dist/charts/engine/trading/geometry.cjs.map +1 -1
  393. package/dist/charts/engine/trading/geometry.d.cts +16 -0
  394. package/dist/charts/engine/trading/geometry.d.ts +16 -0
  395. package/dist/charts/engine/trading/geometry.js +19 -4
  396. package/dist/charts/engine/trading/geometry.js.map +1 -1
  397. package/dist/charts/engine/trading/index.cjs +1 -1
  398. package/dist/charts/engine/trading/index.d.cts +2 -1
  399. package/dist/charts/engine/trading/index.d.ts +2 -1
  400. package/dist/charts/engine/trading/index.js +4 -3
  401. package/dist/charts/engine/trading/indicators.cjs +1 -1
  402. package/dist/charts/engine/trading/indicators.cjs.map +1 -1
  403. package/dist/charts/engine/trading/indicators.d.cts +180 -10
  404. package/dist/charts/engine/trading/indicators.d.ts +180 -10
  405. package/dist/charts/engine/trading/indicators.js +449 -173
  406. package/dist/charts/engine/trading/indicators.js.map +1 -1
  407. package/dist/charts/engine/trading/labels.cjs +1 -1
  408. package/dist/charts/engine/trading/labels.cjs.map +1 -1
  409. package/dist/charts/engine/trading/labels.js +104 -4
  410. package/dist/charts/engine/trading/labels.js.map +1 -1
  411. package/dist/charts/engine/trading/store.cjs +1 -1
  412. package/dist/charts/engine/trading/store.cjs.map +1 -1
  413. package/dist/charts/engine/trading/store.d.cts +21 -0
  414. package/dist/charts/engine/trading/store.d.ts +21 -0
  415. package/dist/charts/engine/trading/store.js +22 -1
  416. package/dist/charts/engine/trading/store.js.map +1 -1
  417. package/dist/charts/engine/trading/studies.cjs +1 -1
  418. package/dist/charts/engine/trading/studies.cjs.map +1 -1
  419. package/dist/charts/engine/trading/studies.d.cts +49 -8
  420. package/dist/charts/engine/trading/studies.d.ts +49 -8
  421. package/dist/charts/engine/trading/studies.js +352 -93
  422. package/dist/charts/engine/trading/studies.js.map +1 -1
  423. package/dist/charts/engine/trading/sync.cjs +2 -0
  424. package/dist/charts/engine/trading/sync.cjs.map +1 -0
  425. package/dist/charts/engine/trading/sync.d.cts +8 -0
  426. package/dist/charts/engine/trading/sync.d.ts +8 -0
  427. package/dist/charts/engine/trading/sync.js +25 -0
  428. package/dist/charts/engine/trading/sync.js.map +1 -0
  429. package/dist/charts/engine/trading/types.d.cts +514 -16
  430. package/dist/charts/engine/trading/types.d.ts +514 -16
  431. package/dist/charts/engine/types.d.cts +106 -11
  432. package/dist/charts/engine/types.d.ts +106 -11
  433. package/dist/charts/index.cjs +1 -1
  434. package/dist/charts/index.d.cts +3 -2
  435. package/dist/charts/index.d.ts +3 -2
  436. package/dist/charts/index.js +30 -22
  437. package/dist/charts/react/charts.cjs +1 -1
  438. package/dist/charts/react/charts.cjs.map +1 -1
  439. package/dist/charts/react/charts.js +51 -34
  440. package/dist/charts/react/charts.js.map +1 -1
  441. package/dist/charts/react/graph.cjs +2 -0
  442. package/dist/charts/react/graph.cjs.map +1 -0
  443. package/dist/charts/react/graph.d.cts +219 -0
  444. package/dist/charts/react/graph.d.ts +219 -0
  445. package/dist/charts/react/graph.js +160 -0
  446. package/dist/charts/react/graph.js.map +1 -0
  447. package/dist/charts/react/orderbook.cjs +1 -1
  448. package/dist/charts/react/orderbook.cjs.map +1 -1
  449. package/dist/charts/react/orderbook.d.cts +3 -1
  450. package/dist/charts/react/orderbook.d.ts +3 -1
  451. package/dist/charts/react/orderbook.js +1 -0
  452. package/dist/charts/react/orderbook.js.map +1 -1
  453. package/dist/charts/react/shapes.cjs +1 -1
  454. package/dist/charts/react/shapes.cjs.map +1 -1
  455. package/dist/charts/react/shapes.d.cts +88 -4
  456. package/dist/charts/react/shapes.d.ts +88 -4
  457. package/dist/charts/react/shapes.js +55 -12
  458. package/dist/charts/react/shapes.js.map +1 -1
  459. package/dist/charts/react/three-d.cjs +1 -1
  460. package/dist/charts/react/three-d.cjs.map +1 -1
  461. package/dist/charts/react/three-d.d.cts +7 -0
  462. package/dist/charts/react/three-d.d.ts +7 -0
  463. package/dist/charts/react/three-d.js +14 -13
  464. package/dist/charts/react/three-d.js.map +1 -1
  465. package/dist/charts/react/trading.cjs +1 -1
  466. package/dist/charts/react/trading.cjs.map +1 -1
  467. package/dist/charts/react/trading.d.cts +54 -2
  468. package/dist/charts/react/trading.d.ts +54 -2
  469. package/dist/charts/react/trading.js +68 -37
  470. package/dist/charts/react/trading.js.map +1 -1
  471. package/dist/charts/react/types.d.cts +11 -0
  472. package/dist/charts/react/types.d.ts +11 -0
  473. package/dist/core/contracts.cjs +1 -1
  474. package/dist/core/contracts.cjs.map +1 -1
  475. package/dist/core/contracts.js +1 -1
  476. package/dist/core/contracts.js.map +1 -1
  477. package/dist/native/charts/src/canvas.cjs +1 -1
  478. package/dist/native/charts/src/canvas.js +5 -4
  479. package/dist/native/charts/src/engine/axis.cjs +1 -1
  480. package/dist/native/charts/src/engine/axis.cjs.map +1 -1
  481. package/dist/native/charts/src/engine/axis.js +42 -19
  482. package/dist/native/charts/src/engine/axis.js.map +1 -1
  483. package/dist/native/charts/src/engine/color.cjs +1 -1
  484. package/dist/native/charts/src/engine/color.cjs.map +1 -1
  485. package/dist/native/charts/src/engine/color.js +47 -5
  486. package/dist/native/charts/src/engine/color.js.map +1 -1
  487. package/dist/native/charts/src/engine/controller.cjs +2 -2
  488. package/dist/native/charts/src/engine/controller.cjs.map +1 -1
  489. package/dist/native/charts/src/engine/controller.js +296 -251
  490. package/dist/native/charts/src/engine/controller.js.map +1 -1
  491. package/dist/native/charts/src/engine/data.cjs +1 -1
  492. package/dist/native/charts/src/engine/data.cjs.map +1 -1
  493. package/dist/native/charts/src/engine/data.js +6 -4
  494. package/dist/native/charts/src/engine/data.js.map +1 -1
  495. package/dist/native/charts/src/engine/format.cjs +1 -1
  496. package/dist/native/charts/src/engine/format.cjs.map +1 -1
  497. package/dist/native/charts/src/engine/format.js +15 -2
  498. package/dist/native/charts/src/engine/format.js.map +1 -1
  499. package/dist/native/charts/src/engine/labels.cjs +1 -1
  500. package/dist/native/charts/src/engine/labels.cjs.map +1 -1
  501. package/dist/native/charts/src/engine/labels.js +42 -5
  502. package/dist/native/charts/src/engine/labels.js.map +1 -1
  503. package/dist/native/charts/src/engine/layout.cjs +1 -1
  504. package/dist/native/charts/src/engine/layout.cjs.map +1 -1
  505. package/dist/native/charts/src/engine/layout.js +11 -2
  506. package/dist/native/charts/src/engine/layout.js.map +1 -1
  507. package/dist/native/charts/src/engine/model.cjs +1 -1
  508. package/dist/native/charts/src/engine/model.cjs.map +1 -1
  509. package/dist/native/charts/src/engine/model.js +278 -174
  510. package/dist/native/charts/src/engine/model.js.map +1 -1
  511. package/dist/native/charts/src/engine/overlay.cjs.map +1 -1
  512. package/dist/native/charts/src/engine/overlay.js.map +1 -1
  513. package/dist/native/charts/src/engine/presets.cjs +2 -2
  514. package/dist/native/charts/src/engine/presets.cjs.map +1 -1
  515. package/dist/native/charts/src/engine/presets.js +110 -90
  516. package/dist/native/charts/src/engine/presets.js.map +1 -1
  517. package/dist/native/charts/src/engine/scene.cjs +1 -1
  518. package/dist/native/charts/src/engine/scene.cjs.map +1 -1
  519. package/dist/native/charts/src/engine/scene.js +421 -202
  520. package/dist/native/charts/src/engine/scene.js.map +1 -1
  521. package/dist/native/charts/src/engine/shapes/bullet.cjs +1 -1
  522. package/dist/native/charts/src/engine/shapes/bullet.cjs.map +1 -1
  523. package/dist/native/charts/src/engine/shapes/bullet.js +110 -110
  524. package/dist/native/charts/src/engine/shapes/bullet.js.map +1 -1
  525. package/dist/native/charts/src/engine/shapes/calendar.cjs +1 -1
  526. package/dist/native/charts/src/engine/shapes/calendar.cjs.map +1 -1
  527. package/dist/native/charts/src/engine/shapes/calendar.js +21 -16
  528. package/dist/native/charts/src/engine/shapes/calendar.js.map +1 -1
  529. package/dist/native/charts/src/engine/shapes/chord.cjs +2 -0
  530. package/dist/native/charts/src/engine/shapes/chord.cjs.map +1 -0
  531. package/dist/native/charts/src/engine/shapes/chord.js +419 -0
  532. package/dist/native/charts/src/engine/shapes/chord.js.map +1 -0
  533. package/dist/native/charts/src/engine/shapes/draw.cjs +1 -1
  534. package/dist/native/charts/src/engine/shapes/draw.cjs.map +1 -1
  535. package/dist/native/charts/src/engine/shapes/draw.js +47 -17
  536. package/dist/native/charts/src/engine/shapes/draw.js.map +1 -1
  537. package/dist/native/charts/src/engine/shapes/hit.cjs +1 -1
  538. package/dist/native/charts/src/engine/shapes/hit.cjs.map +1 -1
  539. package/dist/native/charts/src/engine/shapes/hit.js +73 -44
  540. package/dist/native/charts/src/engine/shapes/hit.js.map +1 -1
  541. package/dist/native/charts/src/engine/shapes/labels.cjs +1 -1
  542. package/dist/native/charts/src/engine/shapes/labels.cjs.map +1 -1
  543. package/dist/native/charts/src/engine/shapes/labels.js +12 -4
  544. package/dist/native/charts/src/engine/shapes/labels.js.map +1 -1
  545. package/dist/native/charts/src/engine/shapes/layout.cjs +2 -2
  546. package/dist/native/charts/src/engine/shapes/layout.cjs.map +1 -1
  547. package/dist/native/charts/src/engine/shapes/layout.js +136 -94
  548. package/dist/native/charts/src/engine/shapes/layout.js.map +1 -1
  549. package/dist/native/charts/src/engine/shapes/scene.cjs +1 -1
  550. package/dist/native/charts/src/engine/shapes/scene.cjs.map +1 -1
  551. package/dist/native/charts/src/engine/shapes/scene.js +62 -19
  552. package/dist/native/charts/src/engine/shapes/scene.js.map +1 -1
  553. package/dist/native/components/Chart/ChartBase.cjs +1 -1
  554. package/dist/native/components/Chart/ChartBase.cjs.map +1 -1
  555. package/dist/native/components/Chart/ChartBase.js +127 -115
  556. package/dist/native/components/Chart/ChartBase.js.map +1 -1
  557. package/dist/native/components/Chart/charts.cjs +1 -1
  558. package/dist/native/components/Chart/charts.cjs.map +1 -1
  559. package/dist/native/components/Chart/charts.js +8 -5
  560. package/dist/native/components/Chart/charts.js.map +1 -1
  561. package/dist/native/components/Chart/scene.cjs +1 -1
  562. package/dist/native/components/Chart/scene.cjs.map +1 -1
  563. package/dist/native/components/Chart/scene.d.cts +6 -1
  564. package/dist/native/components/Chart/scene.d.ts +6 -1
  565. package/dist/native/components/Chart/scene.js +226 -108
  566. package/dist/native/components/Chart/scene.js.map +1 -1
  567. package/dist/native/components/Chart/types.d.cts +7 -1
  568. package/dist/native/components/Chart/types.d.ts +7 -1
  569. package/dist/native/components/Charts/charts.cjs +1 -1
  570. package/dist/native/components/Charts/charts.cjs.map +1 -1
  571. package/dist/native/components/Charts/charts.js +60 -43
  572. package/dist/native/components/Charts/charts.js.map +1 -1
  573. package/dist/native/components/Charts/types.d.cts +11 -0
  574. package/dist/native/components/Charts/types.d.ts +11 -0
  575. package/dist/native/components/ShapeChart/ShapeChartBase.cjs +1 -1
  576. package/dist/native/components/ShapeChart/ShapeChartBase.cjs.map +1 -1
  577. package/dist/native/components/ShapeChart/ShapeChartBase.d.cts +1 -1
  578. package/dist/native/components/ShapeChart/ShapeChartBase.d.ts +1 -1
  579. package/dist/native/components/ShapeChart/ShapeChartBase.js +97 -106
  580. package/dist/native/components/ShapeChart/ShapeChartBase.js.map +1 -1
  581. package/dist/native/components/ShapeChart/charts.cjs +1 -1
  582. package/dist/native/components/ShapeChart/charts.cjs.map +1 -1
  583. package/dist/native/components/ShapeChart/charts.d.cts +6 -1
  584. package/dist/native/components/ShapeChart/charts.d.ts +6 -1
  585. package/dist/native/components/ShapeChart/charts.js +138 -96
  586. package/dist/native/components/ShapeChart/charts.js.map +1 -1
  587. package/dist/native/components/ShapeChart/draw.cjs +1 -1
  588. package/dist/native/components/ShapeChart/draw.cjs.map +1 -1
  589. package/dist/native/components/ShapeChart/draw.d.cts +1 -1
  590. package/dist/native/components/ShapeChart/draw.d.ts +1 -1
  591. package/dist/native/components/ShapeChart/draw.js +26 -17
  592. package/dist/native/components/ShapeChart/draw.js.map +1 -1
  593. package/dist/native/components/ShapeChart/geometry.cjs +1 -1
  594. package/dist/native/components/ShapeChart/geometry.cjs.map +1 -1
  595. package/dist/native/components/ShapeChart/geometry.js +233 -70
  596. package/dist/native/components/ShapeChart/geometry.js.map +1 -1
  597. package/dist/native/components/ShapeChart/index.cjs +1 -1
  598. package/dist/native/components/ShapeChart/index.d.cts +1 -1
  599. package/dist/native/components/ShapeChart/index.d.ts +1 -1
  600. package/dist/native/components/ShapeChart/index.js +2 -2
  601. package/dist/native/components/ShapeChart/recorder.cjs +1 -1
  602. package/dist/native/components/ShapeChart/recorder.cjs.map +1 -1
  603. package/dist/native/components/ShapeChart/recorder.d.cts +10 -1
  604. package/dist/native/components/ShapeChart/recorder.d.ts +10 -1
  605. package/dist/native/components/ShapeChart/recorder.js +19 -10
  606. package/dist/native/components/ShapeChart/recorder.js.map +1 -1
  607. package/dist/native/components/ShapeChart/types.d.cts +95 -8
  608. package/dist/native/components/ShapeChart/types.d.ts +95 -8
  609. package/dist/native/index.cjs +1 -1
  610. package/dist/native/index.js +2 -2
  611. package/dist/native/source/components/Chart/ChartBase.tsx +19 -6
  612. package/dist/native/source/components/Chart/charts.tsx +10 -3
  613. package/dist/native/source/components/Chart/scene.tsx +243 -14
  614. package/dist/native/source/components/Chart/types.ts +7 -0
  615. package/dist/native/source/components/Charts/charts.tsx +37 -2
  616. package/dist/native/source/components/Charts/types.ts +11 -0
  617. package/dist/native/source/components/ShapeChart/ShapeChartBase.tsx +10 -34
  618. package/dist/native/source/components/ShapeChart/charts.tsx +91 -35
  619. package/dist/native/source/components/ShapeChart/draw.tsx +39 -8
  620. package/dist/native/source/components/ShapeChart/geometry.ts +376 -25
  621. package/dist/native/source/components/ShapeChart/index.ts +1 -0
  622. package/dist/native/source/components/ShapeChart/recorder.ts +20 -5
  623. package/dist/native/source/components/ShapeChart/types.ts +99 -6
  624. package/dist/native/source/manifest.ts +1 -0
  625. package/dist/taro/chart-a11y.d.ts +7 -0
  626. package/dist/taro/charts.d.ts +29 -6
  627. package/dist/taro/index.js +3129 -1902
  628. package/dist/taro/shape-charts.d.ts +99 -5
  629. package/dist/uni/AreaChart.vue +2 -1
  630. package/dist/uni/AreaChart.vue.d.ts +5 -1
  631. package/dist/uni/Badge.vue.d.ts +1 -1
  632. package/dist/uni/BarChart.vue +2 -1
  633. package/dist/uni/BarChart.vue.d.ts +5 -1
  634. package/dist/uni/BoxPlotChart.vue +2 -1
  635. package/dist/uni/BoxPlotChart.vue.d.ts +8 -0
  636. package/dist/uni/BubbleChart.vue +2 -1
  637. package/dist/uni/BubbleChart.vue.d.ts +4 -0
  638. package/dist/uni/BulletChart.vue.d.ts +4 -0
  639. package/dist/uni/CalendarHeatmap.vue.d.ts +2 -0
  640. package/dist/uni/CandlestickChart.vue +2 -1
  641. package/dist/uni/CandlestickChart.vue.d.ts +4 -0
  642. package/dist/uni/Chart.vue +2 -1
  643. package/dist/uni/Chart.vue.d.ts +4 -0
  644. package/dist/uni/ChordChart.vue +93 -0
  645. package/dist/uni/ChordChart.vue.d.ts +136 -0
  646. package/dist/uni/Divider.vue.d.ts +1 -1
  647. package/dist/uni/DonutChart.vue.d.ts +5 -1
  648. package/dist/uni/FunnelChart.vue.d.ts +4 -0
  649. package/dist/uni/GanttChart.vue +2 -1
  650. package/dist/uni/GanttChart.vue.d.ts +15 -0
  651. package/dist/uni/GaugeChart.vue.d.ts +5 -1
  652. package/dist/uni/HeatmapChart.vue +2 -1
  653. package/dist/uni/HeatmapChart.vue.d.ts +8 -2
  654. package/dist/uni/HistogramChart.vue +2 -1
  655. package/dist/uni/HistogramChart.vue.d.ts +4 -0
  656. package/dist/uni/HorizontalBarChart.vue +2 -1
  657. package/dist/uni/HorizontalBarChart.vue.d.ts +3 -1
  658. package/dist/uni/LineChart.vue +2 -1
  659. package/dist/uni/LineChart.vue.d.ts +4 -0
  660. package/dist/uni/MixedChart.vue +2 -1
  661. package/dist/uni/MixedChart.vue.d.ts +4 -0
  662. package/dist/uni/PieChart.vue.d.ts +5 -1
  663. package/dist/uni/QuadrantChart.vue +2 -1
  664. package/dist/uni/QuadrantChart.vue.d.ts +4 -0
  665. package/dist/uni/RadarChart.vue.d.ts +4 -0
  666. package/dist/uni/RadialBarChart.vue.d.ts +4 -0
  667. package/dist/uni/RangeAreaChart.vue +2 -1
  668. package/dist/uni/RangeAreaChart.vue.d.ts +4 -0
  669. package/dist/uni/SankeyChart.vue.d.ts +4 -0
  670. package/dist/uni/ScatterChart.vue +2 -1
  671. package/dist/uni/ScatterChart.vue.d.ts +4 -0
  672. package/dist/uni/Sparkline.vue +2 -1
  673. package/dist/uni/Sparkline.vue.d.ts +4 -0
  674. package/dist/uni/SunburstChart.vue.d.ts +4 -0
  675. package/dist/uni/ToastProvider.vue.d.ts +1 -1
  676. package/dist/uni/TreemapChart.vue.d.ts +4 -0
  677. package/dist/uni/WaterfallChart.vue +2 -1
  678. package/dist/uni/WaterfallChart.vue.d.ts +9 -0
  679. package/dist/uni/chart-a11y.d.ts +7 -0
  680. package/dist/uni/chart-a11y.js +29 -0
  681. package/dist/uni/chart-canvas.d.ts +12 -0
  682. package/dist/uni/chart-canvas.js +15 -1
  683. package/dist/uni/chart-types.d.ts +36 -5
  684. package/dist/uni/chart-types.js +31 -3
  685. package/dist/uni/charts-canvas.js +3 -2
  686. package/dist/uni/index.d.ts +2 -1
  687. package/dist/uni/index.js +1 -0
  688. package/dist/uni/manifest.d.ts +7 -0
  689. package/dist/uni/manifest.js +10 -0
  690. package/dist/uni/named-chart-options.d.ts +11 -2
  691. package/dist/uni/named-chart-options.js +21 -1
  692. package/dist/uni/shape-chart-canvas.d.ts +3 -3
  693. package/dist/uni/shape-chart-canvas.js +17 -58
  694. package/dist/uni/shape-chart-types.d.ts +53 -3
  695. package/dist/uni/shape-chart-types.js +45 -1
  696. package/dist/vue/charts-global.d.ts +48 -0
  697. package/dist/vue/charts.d.ts +18 -0
  698. package/dist/vue/charts.js +56 -0
  699. package/dist/vue/charts.js.map +1 -0
  700. package/dist/vue/components/Chart/Bar3DChart.vue.d.ts +2 -0
  701. package/dist/vue/components/Chart/BoxPlotChart.vue.d.ts +8 -0
  702. package/dist/vue/components/Chart/BoxPlotChart.vue.js.map +1 -1
  703. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js +8 -2
  704. package/dist/vue/components/Chart/BoxPlotChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  705. package/dist/vue/components/Chart/ChordChart.vue.d.ts +153 -0
  706. package/dist/vue/components/Chart/ChordChart.vue.js +7 -0
  707. package/dist/vue/components/Chart/ChordChart.vue.js.map +1 -0
  708. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js +81 -0
  709. package/dist/vue/components/Chart/ChordChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  710. package/dist/vue/components/Chart/DependencyGraph.vue.d.ts +181 -0
  711. package/dist/vue/components/Chart/DependencyGraph.vue.js +7 -0
  712. package/dist/vue/components/Chart/DependencyGraph.vue.js.map +1 -0
  713. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js +65 -0
  714. package/dist/vue/components/Chart/DependencyGraph.vue_vue_type_script_setup_true_lang.js.map +1 -0
  715. package/dist/vue/components/Chart/GanttChart.vue.d.ts +19 -0
  716. package/dist/vue/components/Chart/GanttChart.vue.js.map +1 -1
  717. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js +12 -1
  718. package/dist/vue/components/Chart/GanttChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  719. package/dist/vue/components/Chart/GraphChart.vue.d.ts +186 -0
  720. package/dist/vue/components/Chart/GraphChart.vue.js +7 -0
  721. package/dist/vue/components/Chart/GraphChart.vue.js.map +1 -0
  722. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js +62 -0
  723. package/dist/vue/components/Chart/GraphChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  724. package/dist/vue/components/Chart/HeatmapChart.vue.d.ts +9 -5
  725. package/dist/vue/components/Chart/HeatmapChart.vue.js.map +1 -1
  726. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js +3 -1
  727. package/dist/vue/components/Chart/HeatmapChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  728. package/dist/vue/components/Chart/Line3DChart.vue.d.ts +2 -0
  729. package/dist/vue/components/Chart/OrderBookHeatmap.vue.d.ts +2 -0
  730. package/dist/vue/components/Chart/Scatter3DChart.vue.d.ts +2 -0
  731. package/dist/vue/components/Chart/Surface3DChart.vue.d.ts +2 -0
  732. package/dist/vue/components/Chart/TimeAndSales.vue.d.ts +2 -0
  733. package/dist/vue/components/Chart/TradingChart.vue.d.ts +58 -1
  734. package/dist/vue/components/Chart/TradingChart.vue.js.map +1 -1
  735. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js +31 -0
  736. package/dist/vue/components/Chart/TradingChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  737. package/dist/vue/components/Chart/TreeChart.vue.d.ts +174 -0
  738. package/dist/vue/components/Chart/TreeChart.vue.js +7 -0
  739. package/dist/vue/components/Chart/TreeChart.vue.js.map +1 -0
  740. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js +56 -0
  741. package/dist/vue/components/Chart/TreeChart.vue_vue_type_script_setup_true_lang.js.map +1 -0
  742. package/dist/vue/components/Chart/WaterfallChart.vue.d.ts +12 -1
  743. package/dist/vue/components/Chart/WaterfallChart.vue.js.map +1 -1
  744. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js +8 -2
  745. package/dist/vue/components/Chart/WaterfallChart.vue_vue_type_script_setup_true_lang.js.map +1 -1
  746. package/dist/vue/components/Chart/graph.d.ts +156 -0
  747. package/dist/vue/components/Chart/graph.js +137 -0
  748. package/dist/vue/components/Chart/graph.js.map +1 -0
  749. package/dist/vue/components/Chart/index.d.ts +5 -1
  750. package/dist/vue/components/Chart/index.js +5 -1
  751. package/dist/vue/components/Chart/orderbook.d.ts +5 -1
  752. package/dist/vue/components/Chart/orderbook.js +2 -0
  753. package/dist/vue/components/Chart/orderbook.js.map +1 -1
  754. package/dist/vue/components/Chart/three-d.d.ts +3 -0
  755. package/dist/vue/components/Chart/three-d.js +2 -0
  756. package/dist/vue/components/Chart/three-d.js.map +1 -1
  757. package/dist/vue/components/Chart/trading.d.ts +30 -3
  758. package/dist/vue/components/Chart/trading.js +9 -0
  759. package/dist/vue/components/Chart/trading.js.map +1 -1
  760. package/dist/vue/components/Chart/types.d.ts +74 -2
  761. package/dist/vue/global.d.ts +2 -38
  762. package/dist/vue/groups/charts.js +10 -2
  763. package/dist/vue/groups/charts.js.map +1 -1
  764. package/dist/vue/index.js +6 -2
  765. package/dist/vue/internal/register.d.ts +7 -0
  766. package/dist/vue/internal/register.js +14 -0
  767. package/dist/vue/internal/register.js.map +1 -0
  768. package/dist/vue/plugin.d.ts +9 -4
  769. package/dist/vue/plugin.js +6 -11
  770. package/dist/vue/plugin.js.map +1 -1
  771. package/dist/weapp/area-chart/index.wxml +1 -1
  772. package/dist/weapp/bar-chart/index.wxml +1 -1
  773. package/dist/weapp/box-plot-chart/index.wxml +1 -1
  774. package/dist/weapp/bubble-chart/index.wxml +1 -1
  775. package/dist/weapp/candlestick-chart/index.wxml +1 -1
  776. package/dist/weapp/chart/index.wxml +1 -1
  777. package/dist/weapp/charts/canvas.js +1987 -175
  778. package/dist/weapp/charts/core.js +3 -0
  779. package/dist/weapp/chord-chart/index.js +1 -0
  780. package/dist/weapp/chord-chart/index.json +1 -0
  781. package/dist/weapp/chord-chart/index.wxml +1 -0
  782. package/dist/weapp/chord-chart/index.wxss +1 -0
  783. package/dist/weapp/controls.js +148 -57
  784. package/dist/weapp/gantt-chart/index.wxml +1 -1
  785. package/dist/weapp/heatmap-chart/index.wxml +1 -1
  786. package/dist/weapp/histogram-chart/index.wxml +1 -1
  787. package/dist/weapp/horizontal-bar-chart/index.wxml +1 -1
  788. package/dist/weapp/line-chart/index.wxml +1 -1
  789. package/dist/weapp/mixed-chart/index.wxml +1 -1
  790. package/dist/weapp/quadrant-chart/index.wxml +1 -1
  791. package/dist/weapp/range-area-chart/index.wxml +1 -1
  792. package/dist/weapp/scatter-chart/index.wxml +1 -1
  793. package/dist/weapp/sparkline/index.wxml +1 -1
  794. package/dist/weapp/types.d.ts +96 -4
  795. package/dist/weapp/waterfall-chart/index.wxml +1 -1
  796. package/dist/web-components/components/chart/charts.d.ts +4 -2
  797. package/dist/web-components/components/chart/charts.js +8 -1
  798. package/dist/web-components/components/chart/charts.js.map +1 -1
  799. package/dist/web-components/components/chart/extended.d.ts +21 -7
  800. package/dist/web-components/components/chart/extended.js +29 -9
  801. package/dist/web-components/components/chart/extended.js.map +1 -1
  802. package/dist/web-components/components/chart/shapes-extended.d.ts +37 -1
  803. package/dist/web-components/components/chart/shapes-extended.js +27 -1
  804. package/dist/web-components/components/chart/shapes-extended.js.map +1 -1
  805. package/dist/web-components/components/chart-3d/chart-3d.d.ts +1 -1
  806. package/dist/web-components/components/chart-3d/chart-3d.js.map +1 -1
  807. package/dist/web-components/components/graph/graph.d.ts +156 -0
  808. package/dist/web-components/components/graph/graph.js +150 -0
  809. package/dist/web-components/components/graph/graph.js.map +1 -0
  810. package/dist/web-components/components/trading-chart/trading-chart.d.ts +49 -2
  811. package/dist/web-components/components/trading-chart/trading-chart.js +62 -0
  812. package/dist/web-components/components/trading-chart/trading-chart.js.map +1 -1
  813. package/dist/web-components/elements/chart.d.ts +1 -1
  814. package/dist/web-components/elements/chart.js +6 -5
  815. package/dist/web-components/elements/chart.js.map +1 -1
  816. package/dist/web-components/elements/graph.d.ts +2 -0
  817. package/dist/web-components/elements/graph.js +12 -0
  818. package/dist/web-components/elements/graph.js.map +1 -0
  819. package/dist/web-components/html-custom-data.json +318 -4
  820. package/dist/web-components/types/react.d.ts +63 -4
  821. package/dist/web-components/types/solid.d.ts +55 -8
  822. package/dist/web-components/types/svelte.d.ts +55 -8
  823. package/dist/web-components/types/vue.d.ts +55 -4
  824. package/package.json +16 -1
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu.cjs","names":["WGSL_POINTS","WGSL_MESH","WGSL_LINES","drawOrder","itemUniforms","writesDepth","require_render_types","require_shaders","BUFFER_INDEX","BUFFER_VERTEX","BUFFER_COPY_DST","TEXTURE_RENDER_ATTACHMENT","SAMPLES","createWebGpu3D","gpu","adapter","fallback","requireHardware","device","context","canvas","format","destroyed","onLost","bindGroupLayout","layout","blend","pipeline","module","depthWrite","pointBuffers","meshBuffers","lineBuffers","pipelines","targets","renderTargets","width","height","resources","uniformData","buffer","bytes","data","gpuBuffer","usage","release","res","upload","item","indices","vertex","index","uniform","encoder","pass","color","depth","seen","items","count","frame","variants","chosen","key"],"sources":["../../../../../charts/src/engine/three-d/webgpu.ts"],"sourcesContent":["// WebGPU backend of the 3D charts: 4× MSAA, a depth buffer, one draw per\n// item (instanced billboards / segments, indexed triangles).\n\nimport type { RendererLostHandler } from \"../renderers/types\";\nimport {\n POINT_STRIDE,\n SEGMENT_STRIDE,\n VERTEX_STRIDE,\n drawOrder,\n type Item3D,\n type Renderer3D,\n} from \"./render-types\";\nimport {\n UNIFORM_BYTES,\n WGSL_LINES,\n WGSL_MESH,\n WGSL_POINTS,\n itemUniforms,\n writesDepth,\n} from \"./shaders\";\n\n// lib.dom has the WebGPU interfaces but not these constant objects\nconst BUFFER_INDEX = 0x10;\nconst BUFFER_VERTEX = 0x20;\nconst BUFFER_UNIFORM = 0x40;\nconst BUFFER_COPY_DST = 0x08;\nconst STAGE_VERTEX = 0x1;\nconst STAGE_FRAGMENT = 0x2;\nconst TEXTURE_RENDER_ATTACHMENT = 0x10;\n\nconst SAMPLES = 4;\n\ninterface ItemResources {\n version: number;\n kind: Item3D[\"kind\"];\n vertex: GPUBuffer | null;\n index: GPUBuffer | null;\n /** `order` of the uploaded indices (meshes) */\n order: number;\n uniform: GPUBuffer;\n bindGroup: GPUBindGroup;\n}\n\ntype GpuNavigator = Navigator & { gpu?: GPU };\n\nexport const createWebGpu3D = async (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses fallback (software) adapters */\n requireHardware = false,\n): Promise<Renderer3D | null> => {\n const gpu =\n typeof navigator !== \"undefined\"\n ? (navigator as GpuNavigator).gpu\n : undefined;\n if (!gpu) return null;\n const adapter = await gpu.requestAdapter();\n if (!adapter) return null;\n const fallback = adapter as GPUAdapter & {\n isFallbackAdapter?: boolean;\n info?: { isFallbackAdapter?: boolean };\n };\n if (\n requireHardware &&\n (fallback.info?.isFallbackAdapter || fallback.isFallbackAdapter)\n ) {\n return null;\n }\n const device = await adapter.requestDevice();\n const context = canvas.getContext(\"webgpu\") as GPUCanvasContext | null;\n if (!context) {\n device.destroy();\n return null;\n }\n const format = gpu.getPreferredCanvasFormat();\n context.configure({ device, format, alphaMode: \"premultiplied\" });\n\n let destroyed = false;\n void device.lost.then(() => {\n if (!destroyed) onLost();\n });\n\n const bindGroupLayout = device.createBindGroupLayout({\n entries: [\n {\n binding: 0,\n visibility: STAGE_VERTEX | STAGE_FRAGMENT,\n buffer: { type: \"uniform\" },\n },\n ],\n });\n const layout = device.createPipelineLayout({\n bindGroupLayouts: [bindGroupLayout],\n });\n const blend: GPUBlendState = {\n color: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\",\n },\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\",\n },\n };\n const pipeline = (\n code: string,\n buffers: GPUVertexBufferLayout[],\n topology: GPUPrimitiveTopology,\n depthWrite: boolean,\n ) => {\n const module = device.createShaderModule({ code });\n return device.createRenderPipeline({\n layout,\n vertex: { module, entryPoint: \"vs\", buffers },\n fragment: { module, entryPoint: \"fs\", targets: [{ format, blend }] },\n primitive: { topology, cullMode: \"none\" },\n depthStencil: {\n format: \"depth24plus\",\n depthWriteEnabled: depthWrite,\n depthCompare: \"less-equal\",\n },\n multisample: { count: SAMPLES },\n });\n };\n const pointBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: POINT_STRIDE,\n stepMode: \"instance\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32\" },\n { shaderLocation: 2, offset: 16, format: \"unorm8x4\" },\n ],\n },\n ];\n const meshBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: VERTEX_STRIDE,\n stepMode: \"vertex\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32x3\" },\n { shaderLocation: 2, offset: 24, format: \"unorm8x4\" },\n ],\n },\n ];\n const lineBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: SEGMENT_STRIDE,\n stepMode: \"instance\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32x3\" },\n { shaderLocation: 2, offset: 24, format: \"unorm8x4\" },\n ],\n },\n ];\n const pipelines = {\n points: [\n pipeline(WGSL_POINTS, pointBuffers, \"triangle-strip\", false),\n pipeline(WGSL_POINTS, pointBuffers, \"triangle-strip\", true),\n ],\n mesh: [\n pipeline(WGSL_MESH, meshBuffers, \"triangle-list\", false),\n pipeline(WGSL_MESH, meshBuffers, \"triangle-list\", true),\n ],\n lines: [\n pipeline(WGSL_LINES, lineBuffers, \"triangle-strip\", false),\n pipeline(WGSL_LINES, lineBuffers, \"triangle-strip\", true),\n ],\n };\n\n let targets: {\n width: number;\n height: number;\n color: GPUTexture;\n depth: GPUTexture;\n } | null = null;\n const renderTargets = () => {\n const width = canvas.width;\n const height = canvas.height;\n if (targets && targets.width === width && targets.height === height)\n return targets;\n targets?.color.destroy();\n targets?.depth.destroy();\n targets = {\n width,\n height,\n color: device.createTexture({\n size: [width, height],\n sampleCount: SAMPLES,\n format,\n usage: TEXTURE_RENDER_ATTACHMENT,\n }),\n depth: device.createTexture({\n size: [width, height],\n sampleCount: SAMPLES,\n format: \"depth24plus\",\n usage: TEXTURE_RENDER_ATTACHMENT,\n }),\n };\n return targets;\n };\n\n const resources = new Map<string, ItemResources>();\n const uniformData = new Float32Array(UNIFORM_BYTES / 4);\n\n const buffer = (data: ArrayBuffer | Uint32Array, usage: number) => {\n const bytes = data.byteLength;\n if (bytes <= 0) return null;\n const gpuBuffer = device.createBuffer({\n size: Math.max(16, Math.ceil(bytes / 4) * 4),\n usage: usage | BUFFER_COPY_DST,\n });\n if (data instanceof Uint32Array) {\n device.queue.writeBuffer(\n gpuBuffer,\n 0,\n data.buffer,\n data.byteOffset,\n bytes,\n );\n } else {\n device.queue.writeBuffer(gpuBuffer, 0, data);\n }\n return gpuBuffer;\n };\n\n const release = (res: ItemResources) => {\n res.vertex?.destroy();\n res.index?.destroy();\n };\n\n const upload = (item: Item3D): ItemResources => {\n let res = resources.get(item.key);\n if (res && res.version === item.version && res.kind === item.kind) {\n // same mesh, triangles in a new order (transparent, sorted by depth)\n if (\n item.kind === \"mesh\" &&\n res.index &&\n (item.order ?? 0) !== res.order\n ) {\n const { indices } = item;\n device.queue.writeBuffer(\n res.index,\n 0,\n indices.buffer,\n indices.byteOffset,\n indices.byteLength,\n );\n res.order = item.order ?? 0;\n }\n return res;\n }\n if (res) release(res);\n const vertex = buffer(\n item.kind === \"mesh\" ? item.vertices : item.data,\n BUFFER_VERTEX,\n );\n const index =\n item.kind === \"mesh\" ? buffer(item.indices, BUFFER_INDEX) : null;\n if (!res) {\n const uniform = device.createBuffer({\n size: UNIFORM_BYTES,\n usage: BUFFER_UNIFORM | BUFFER_COPY_DST,\n });\n res = {\n version: item.version,\n kind: item.kind,\n vertex,\n index,\n order: item.kind === \"mesh\" ? (item.order ?? 0) : 0,\n uniform,\n bindGroup: device.createBindGroup({\n layout: bindGroupLayout,\n entries: [{ binding: 0, resource: { buffer: uniform } }],\n }),\n };\n resources.set(item.key, res);\n } else {\n res.version = item.version;\n res.kind = item.kind;\n res.vertex = vertex;\n res.index = index;\n res.order = item.kind === \"mesh\" ? (item.order ?? 0) : 0;\n }\n return res;\n };\n\n return {\n kind: \"webgpu\",\n canvas,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (destroyed) return;\n const { color, depth } = renderTargets();\n const encoder = device.createCommandEncoder();\n const pass = encoder.beginRenderPass({\n colorAttachments: [\n {\n view: color.createView(),\n resolveTarget: context.getCurrentTexture().createView(),\n clearValue: { r: 0, g: 0, b: 0, a: 0 },\n loadOp: \"clear\",\n storeOp: \"discard\",\n },\n ],\n depthStencilAttachment: {\n view: depth.createView(),\n depthClearValue: 1,\n depthLoadOp: \"clear\",\n depthStoreOp: \"discard\",\n },\n });\n const seen = new Set<string>();\n for (const item of drawOrder(items)) {\n seen.add(item.key);\n const count = item.kind === \"mesh\" ? item.indices.length : item.count;\n if (count <= 0) continue;\n const res = upload(item);\n if (!res.vertex) continue;\n device.queue.writeBuffer(\n res.uniform,\n 0,\n itemUniforms(item, frame, uniformData),\n );\n const variants = pipelines[item.kind];\n const chosen = variants[writesDepth(item) ? variants.length - 1 : 0];\n if (!chosen) continue;\n pass.setPipeline(chosen);\n pass.setBindGroup(0, res.bindGroup);\n pass.setVertexBuffer(0, res.vertex);\n if (item.kind === \"mesh\") {\n if (!res.index) continue;\n pass.setIndexBuffer(res.index, \"uint32\");\n pass.drawIndexed(count);\n } else {\n pass.draw(4, count);\n }\n }\n pass.end();\n device.queue.submit([encoder.finish()]);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n res.uniform.destroy();\n resources.delete(key);\n }\n }\n },\n destroy() {\n destroyed = true;\n for (const res of resources.values()) {\n release(res);\n res.uniform.destroy();\n }\n resources.clear();\n targets?.color.destroy();\n targets?.depth.destroy();\n targets = null;\n context.unconfigure();\n device.destroy();\n },\n };\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"webgpu.cjs","names":["WGSL_POINTS","WGSL_MESH","WGSL_LINES","writesDepth","WGSL_COMPOSITE","drawOrder","drawRank","itemUniforms","require_render_types","require_oit","require_shaders","BUFFER_INDEX","BUFFER_VERTEX","BUFFER_COPY_DST","STAGE_FRAGMENT","TEXTURE_RENDER_ATTACHMENT","SAMPLES","OIT_FORMAT","createWebGpu3D","gpu","adapter","fallback","requireHardware","device","context","canvas","format","destroyed","onLost","bindGroupLayout","layout","blend","additive","sum","pipeline","module","oit","blending","depthWrite","pointBuffers","meshBuffers","lineBuffers","pipelines","additivePoints","pipelineOf","item","variants","compositeLayout","compositeModule","oitPipelines","orderIndependent","targets","destroyOit","renderTargets","width","height","oitTargets","t","texture","samples","accumResolved","extraResolved","resources","uniformData","buffer","bytes","data","gpuBuffer","usage","release","res","upload","indices","vertex","index","uniform","ordered","items","blended","encoder","screen","seen","draw","count","frame","pass","chosen","main","transparent","last","key"],"sources":["../../../../../charts/src/engine/three-d/webgpu.ts"],"sourcesContent":["// WebGPU backend of the 3D charts: 4× MSAA, a depth buffer, one draw per\n// item (instanced billboards / segments, indexed triangles). With blended\n// items (transparent meshes, blended or additive points), three passes:\n// the opaque items; the blended ones into the float targets of the\n// weighted blended order-independent transparency (`oit.ts`, multisampled,\n// testing the opaque depth, resolved); then their composite and the lines.\n\nimport type { RendererLostHandler } from \"../renderers/types\";\nimport { WGSL_COMPOSITE } from \"./oit\";\nimport {\n POINT_STRIDE,\n SEGMENT_STRIDE,\n VERTEX_STRIDE,\n drawOrder,\n drawRank,\n type Item3D,\n type Renderer3D,\n} from \"./render-types\";\nimport {\n UNIFORM_BYTES,\n WGSL_LINES,\n WGSL_MESH,\n WGSL_POINTS,\n itemUniforms,\n writesDepth,\n} from \"./shaders\";\n\n// lib.dom has the WebGPU interfaces but not these constant objects\nconst BUFFER_INDEX = 0x10;\nconst BUFFER_VERTEX = 0x20;\nconst BUFFER_UNIFORM = 0x40;\nconst BUFFER_COPY_DST = 0x08;\nconst STAGE_VERTEX = 0x1;\nconst STAGE_FRAGMENT = 0x2;\nconst TEXTURE_BINDING = 0x04;\nconst TEXTURE_RENDER_ATTACHMENT = 0x10;\n\nconst SAMPLES = 4;\n/** Format of the transparency targets (renderable, blendable, resolvable) */\nconst OIT_FORMAT: GPUTextureFormat = \"rgba16float\";\n\ninterface ItemResources {\n version: number;\n kind: Item3D[\"kind\"];\n vertex: GPUBuffer | null;\n index: GPUBuffer | null;\n /** `order` of the uploaded indices (meshes) */\n order: number;\n uniform: GPUBuffer;\n bindGroup: GPUBindGroup;\n}\n\ntype GpuNavigator = Navigator & { gpu?: GPU };\n\nexport const createWebGpu3D = async (\n canvas: HTMLCanvasElement,\n onLost: RendererLostHandler,\n /** Refuses fallback (software) adapters */\n requireHardware = false,\n): Promise<Renderer3D | null> => {\n const gpu =\n typeof navigator !== \"undefined\"\n ? (navigator as GpuNavigator).gpu\n : undefined;\n if (!gpu) return null;\n const adapter = await gpu.requestAdapter();\n if (!adapter) return null;\n const fallback = adapter as GPUAdapter & {\n isFallbackAdapter?: boolean;\n info?: { isFallbackAdapter?: boolean };\n };\n if (\n requireHardware &&\n (fallback.info?.isFallbackAdapter || fallback.isFallbackAdapter)\n ) {\n return null;\n }\n const device = await adapter.requestDevice();\n const context = canvas.getContext(\"webgpu\") as GPUCanvasContext | null;\n if (!context) {\n device.destroy();\n return null;\n }\n const format = gpu.getPreferredCanvasFormat();\n context.configure({ device, format, alphaMode: \"premultiplied\" });\n\n let destroyed = false;\n void device.lost.then(() => {\n if (!destroyed) onLost();\n });\n\n const bindGroupLayout = device.createBindGroupLayout({\n entries: [\n {\n binding: 0,\n visibility: STAGE_VERTEX | STAGE_FRAGMENT,\n buffer: { type: \"uniform\" },\n },\n ],\n });\n const layout = device.createPipelineLayout({\n bindGroupLayouts: [bindGroupLayout],\n });\n const blend: GPUBlendState = {\n color: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\",\n },\n alpha: {\n srcFactor: \"one\",\n dstFactor: \"one-minus-src-alpha\",\n operation: \"add\",\n },\n };\n // additive points: the colors add up, the coverage composites as usual\n const additive: GPUBlendState = {\n color: { srcFactor: \"one\", dstFactor: \"one\", operation: \"add\" },\n alpha: blend.alpha,\n };\n // transparency targets: plain sums\n const sum: GPUBlendState = {\n color: { srcFactor: \"one\", dstFactor: \"one\", operation: \"add\" },\n alpha: { srcFactor: \"one\", dstFactor: \"one\", operation: \"add\" },\n };\n const pipeline = (\n code: string,\n buffers: GPUVertexBufferLayout[],\n topology: GPUPrimitiveTopology,\n depthWrite: boolean,\n blending: GPUBlendState = blend,\n oit = false,\n ) => {\n const module = device.createShaderModule({ code });\n return device.createRenderPipeline({\n layout,\n vertex: { module, entryPoint: \"vs\", buffers },\n fragment: {\n module,\n entryPoint: oit ? \"fsOit\" : \"fs\",\n targets: oit\n ? [\n { format: OIT_FORMAT, blend: sum },\n { format: OIT_FORMAT, blend: sum },\n ]\n : [{ format, blend: blending }],\n },\n primitive: { topology, cullMode: \"none\" },\n depthStencil: {\n format: \"depth24plus\",\n depthWriteEnabled: depthWrite,\n depthCompare: \"less-equal\",\n },\n multisample: { count: SAMPLES },\n });\n };\n const pointBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: POINT_STRIDE,\n stepMode: \"instance\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32\" },\n { shaderLocation: 2, offset: 16, format: \"unorm8x4\" },\n ],\n },\n ];\n const meshBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: VERTEX_STRIDE,\n stepMode: \"vertex\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32x3\" },\n { shaderLocation: 2, offset: 24, format: \"unorm8x4\" },\n ],\n },\n ];\n const lineBuffers: GPUVertexBufferLayout[] = [\n {\n arrayStride: SEGMENT_STRIDE,\n stepMode: \"instance\",\n attributes: [\n { shaderLocation: 0, offset: 0, format: \"float32x3\" },\n { shaderLocation: 1, offset: 12, format: \"float32x3\" },\n { shaderLocation: 2, offset: 24, format: \"unorm8x4\" },\n ],\n },\n ];\n const pipelines = {\n points: [\n pipeline(WGSL_POINTS, pointBuffers, \"triangle-strip\", false),\n pipeline(WGSL_POINTS, pointBuffers, \"triangle-strip\", true),\n ],\n mesh: [\n pipeline(WGSL_MESH, meshBuffers, \"triangle-list\", false),\n pipeline(WGSL_MESH, meshBuffers, \"triangle-list\", true),\n ],\n lines: [\n pipeline(WGSL_LINES, lineBuffers, \"triangle-strip\", false),\n pipeline(WGSL_LINES, lineBuffers, \"triangle-strip\", true),\n ],\n };\n let additivePoints: GPURenderPipeline | null = null;\n const pipelineOf = (item: Item3D) => {\n if (item.kind === \"points\" && item.additive) {\n additivePoints ??= pipeline(\n WGSL_POINTS,\n pointBuffers,\n \"triangle-strip\",\n false,\n additive,\n );\n return additivePoints;\n }\n const variants = pipelines[item.kind];\n return variants[writesDepth(item) ? variants.length - 1 : 0];\n };\n\n // order-independent transparency: validated once (rgba16float targets are\n // core, but a failing driver falls back to the sorted blending)\n device.pushErrorScope(\"validation\");\n const compositeLayout = device.createBindGroupLayout({\n entries: [0, 1].map((binding) => ({\n binding,\n visibility: STAGE_FRAGMENT,\n texture: { sampleType: \"unfilterable-float\" as const },\n })),\n });\n const compositeModule = device.createShaderModule({ code: WGSL_COMPOSITE });\n const oitPipelines = {\n points: pipeline(\n WGSL_POINTS,\n pointBuffers,\n \"triangle-strip\",\n false,\n blend,\n true,\n ),\n mesh: pipeline(WGSL_MESH, meshBuffers, \"triangle-list\", false, blend, true),\n composite: device.createRenderPipeline({\n layout: device.createPipelineLayout({\n bindGroupLayouts: [compositeLayout],\n }),\n vertex: { module: compositeModule, entryPoint: \"vs\" },\n fragment: {\n module: compositeModule,\n entryPoint: \"fs\",\n targets: [{ format, blend }],\n },\n primitive: { topology: \"triangle-list\" },\n depthStencil: {\n format: \"depth24plus\",\n depthWriteEnabled: false,\n depthCompare: \"always\",\n },\n multisample: { count: SAMPLES },\n }),\n };\n const orderIndependent = !(await device.popErrorScope());\n\n let targets: {\n width: number;\n height: number;\n color: GPUTexture;\n depth: GPUTexture;\n /** Transparency targets, created on first use */\n oit: {\n accum: GPUTexture;\n extra: GPUTexture;\n accumResolved: GPUTexture;\n extraResolved: GPUTexture;\n bindGroup: GPUBindGroup;\n } | null;\n } | null = null;\n const destroyOit = () => {\n const oit = targets?.oit;\n if (!oit) return;\n oit.accum.destroy();\n oit.extra.destroy();\n oit.accumResolved.destroy();\n oit.extraResolved.destroy();\n };\n const renderTargets = () => {\n const width = canvas.width;\n const height = canvas.height;\n if (targets && targets.width === width && targets.height === height)\n return targets;\n targets?.color.destroy();\n targets?.depth.destroy();\n destroyOit();\n targets = {\n width,\n height,\n color: device.createTexture({\n size: [width, height],\n sampleCount: SAMPLES,\n format,\n usage: TEXTURE_RENDER_ATTACHMENT,\n }),\n depth: device.createTexture({\n size: [width, height],\n sampleCount: SAMPLES,\n format: \"depth24plus\",\n usage: TEXTURE_RENDER_ATTACHMENT,\n }),\n oit: null,\n };\n return targets;\n };\n const oitTargets = (t: NonNullable<typeof targets>) => {\n if (t.oit) return t.oit;\n const texture = (samples: number) =>\n device.createTexture({\n size: [t.width, t.height],\n sampleCount: samples,\n format: OIT_FORMAT,\n usage:\n samples > 1\n ? TEXTURE_RENDER_ATTACHMENT\n : TEXTURE_RENDER_ATTACHMENT | TEXTURE_BINDING,\n });\n const accumResolved = texture(1);\n const extraResolved = texture(1);\n t.oit = {\n accum: texture(SAMPLES),\n extra: texture(SAMPLES),\n accumResolved,\n extraResolved,\n bindGroup: device.createBindGroup({\n layout: compositeLayout,\n entries: [\n { binding: 0, resource: accumResolved.createView() },\n { binding: 1, resource: extraResolved.createView() },\n ],\n }),\n };\n return t.oit;\n };\n\n const resources = new Map<string, ItemResources>();\n const uniformData = new Float32Array(UNIFORM_BYTES / 4);\n\n const buffer = (data: ArrayBuffer | Uint32Array, usage: number) => {\n const bytes = data.byteLength;\n if (bytes <= 0) return null;\n const gpuBuffer = device.createBuffer({\n size: Math.max(16, Math.ceil(bytes / 4) * 4),\n usage: usage | BUFFER_COPY_DST,\n });\n if (data instanceof Uint32Array) {\n device.queue.writeBuffer(\n gpuBuffer,\n 0,\n data.buffer,\n data.byteOffset,\n bytes,\n );\n } else {\n device.queue.writeBuffer(gpuBuffer, 0, data);\n }\n return gpuBuffer;\n };\n\n const release = (res: ItemResources) => {\n res.vertex?.destroy();\n res.index?.destroy();\n };\n\n const upload = (item: Item3D): ItemResources => {\n let res = resources.get(item.key);\n if (res && res.version === item.version && res.kind === item.kind) {\n // same mesh, triangles in a new order (transparent, sorted by depth)\n if (\n item.kind === \"mesh\" &&\n res.index &&\n (item.order ?? 0) !== res.order\n ) {\n const { indices } = item;\n device.queue.writeBuffer(\n res.index,\n 0,\n indices.buffer,\n indices.byteOffset,\n indices.byteLength,\n );\n res.order = item.order ?? 0;\n }\n return res;\n }\n if (res) release(res);\n const vertex = buffer(\n item.kind === \"mesh\" ? item.vertices : item.data,\n BUFFER_VERTEX,\n );\n const index =\n item.kind === \"mesh\" ? buffer(item.indices, BUFFER_INDEX) : null;\n if (!res) {\n const uniform = device.createBuffer({\n size: UNIFORM_BYTES,\n usage: BUFFER_UNIFORM | BUFFER_COPY_DST,\n });\n res = {\n version: item.version,\n kind: item.kind,\n vertex,\n index,\n order: item.kind === \"mesh\" ? (item.order ?? 0) : 0,\n uniform,\n bindGroup: device.createBindGroup({\n layout: bindGroupLayout,\n entries: [{ binding: 0, resource: { buffer: uniform } }],\n }),\n };\n resources.set(item.key, res);\n } else {\n res.version = item.version;\n res.kind = item.kind;\n res.vertex = vertex;\n res.index = index;\n res.order = item.kind === \"mesh\" ? (item.order ?? 0) : 0;\n }\n return res;\n };\n\n return {\n kind: \"webgpu\",\n canvas,\n orderIndependent,\n resize(width, height) {\n canvas.width = Math.max(1, width);\n canvas.height = Math.max(1, height);\n },\n render(items, frame) {\n if (destroyed) return;\n const t = renderTargets();\n const ordered = drawOrder(items);\n const blended =\n orderIndependent && ordered.some((item) => drawRank(item) === 2);\n const encoder = device.createCommandEncoder();\n const screen = context.getCurrentTexture().createView();\n const seen = new Set<string>();\n /** Draws an item; false when it has nothing to draw */\n const draw = (\n pass: GPURenderPassEncoder,\n item: Item3D,\n chosen: GPURenderPipeline,\n ) => {\n const count = item.kind === \"mesh\" ? item.indices.length : item.count;\n if (count <= 0) return;\n const res = upload(item);\n if (!res.vertex) return;\n device.queue.writeBuffer(\n res.uniform,\n 0,\n itemUniforms(item, frame, uniformData),\n );\n pass.setPipeline(chosen);\n pass.setBindGroup(0, res.bindGroup);\n pass.setVertexBuffer(0, res.vertex);\n if (item.kind === \"mesh\") {\n if (!res.index) return;\n pass.setIndexBuffer(res.index, \"uint32\");\n pass.drawIndexed(count);\n } else {\n pass.draw(4, count);\n }\n };\n\n // opaque items (every item without blended ones)\n const main = encoder.beginRenderPass({\n colorAttachments: [\n {\n view: t.color.createView(),\n resolveTarget: blended ? undefined : screen,\n clearValue: { r: 0, g: 0, b: 0, a: 0 },\n loadOp: \"clear\",\n storeOp: blended ? \"store\" : \"discard\",\n },\n ],\n depthStencilAttachment: {\n view: t.depth.createView(),\n depthClearValue: 1,\n depthLoadOp: \"clear\",\n depthStoreOp: blended ? \"store\" : \"discard\",\n },\n });\n for (const item of ordered) {\n if (blended && drawRank(item) > 1) break;\n seen.add(item.key);\n draw(main, item, pipelineOf(item));\n }\n main.end();\n\n if (blended) {\n // blended items, in any order, into the transparency targets\n const oit = oitTargets(t);\n const transparent = encoder.beginRenderPass({\n colorAttachments: [\n {\n view: oit.accum.createView(),\n resolveTarget: oit.accumResolved.createView(),\n clearValue: { r: 0, g: 0, b: 0, a: 0 },\n loadOp: \"clear\",\n storeOp: \"discard\",\n },\n {\n view: oit.extra.createView(),\n resolveTarget: oit.extraResolved.createView(),\n clearValue: { r: 0, g: 0, b: 0, a: 0 },\n loadOp: \"clear\",\n storeOp: \"discard\",\n },\n ],\n depthStencilAttachment: {\n view: t.depth.createView(),\n depthReadOnly: true,\n },\n });\n for (const item of ordered) {\n if (drawRank(item) !== 2 || item.kind === \"lines\") continue;\n seen.add(item.key);\n draw(transparent, item, oitPipelines[item.kind]);\n }\n transparent.end();\n\n // their composite over the opaque items, then the lines\n const last = encoder.beginRenderPass({\n colorAttachments: [\n {\n view: t.color.createView(),\n resolveTarget: screen,\n loadOp: \"load\",\n storeOp: \"discard\",\n },\n ],\n depthStencilAttachment: {\n view: t.depth.createView(),\n depthLoadOp: \"load\",\n depthStoreOp: \"discard\",\n },\n });\n last.setPipeline(oitPipelines.composite);\n last.setBindGroup(0, oit.bindGroup);\n last.draw(3);\n for (const item of ordered) {\n if (drawRank(item) < 3) continue;\n seen.add(item.key);\n draw(last, item, pipelineOf(item));\n }\n last.end();\n }\n device.queue.submit([encoder.finish()]);\n for (const [key, res] of resources) {\n if (!seen.has(key)) {\n release(res);\n res.uniform.destroy();\n resources.delete(key);\n }\n }\n },\n destroy() {\n destroyed = true;\n for (const res of resources.values()) {\n release(res);\n res.uniform.destroy();\n }\n resources.clear();\n targets?.color.destroy();\n targets?.depth.destroy();\n destroyOit();\n targets = null;\n context.unconfigure();\n device.destroy();\n },\n };\n};\n"],"mappings":"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"}
@@ -1,30 +1,31 @@
1
- import { drawOrder as e } from "./render-types.js";
2
- import { WGSL_LINES as t, WGSL_MESH as n, WGSL_POINTS as r, itemUniforms as i, writesDepth as a } from "./shaders.js";
1
+ import { drawOrder as e, drawRank as t, writesDepth as n } from "./render-types.js";
2
+ import { WGSL_COMPOSITE as r } from "./oit.js";
3
+ import { WGSL_LINES as i, WGSL_MESH as a, WGSL_POINTS as o, itemUniforms as s } from "./shaders.js";
3
4
  //#region src/engine/three-d/webgpu.ts
4
- var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
5
- let m = typeof navigator < "u" ? navigator.gpu : void 0;
6
- if (!m) return null;
7
- let h = await m.requestAdapter();
8
- if (!h) return null;
9
- let g = h;
10
- if (p && (g.info?.isFallbackAdapter || g.isFallbackAdapter)) return null;
11
- let _ = await h.requestDevice(), v = d.getContext("webgpu");
12
- if (!v) return _.destroy(), null;
13
- let y = m.getPreferredCanvasFormat();
14
- v.configure({
15
- device: _,
16
- format: y,
5
+ var c = 16, l = 32, u = 8, d = 2, f = 16, p = 4, m = "rgba16float", h = async (h, g, _ = !1) => {
6
+ let v = typeof navigator < "u" ? navigator.gpu : void 0;
7
+ if (!v) return null;
8
+ let y = await v.requestAdapter();
9
+ if (!y) return null;
10
+ let b = y;
11
+ if (_ && (b.info?.isFallbackAdapter || b.isFallbackAdapter)) return null;
12
+ let x = await y.requestDevice(), S = h.getContext("webgpu");
13
+ if (!S) return x.destroy(), null;
14
+ let C = v.getPreferredCanvasFormat();
15
+ S.configure({
16
+ device: x,
17
+ format: C,
17
18
  alphaMode: "premultiplied"
18
19
  });
19
- let b = !1;
20
- _.lost.then(() => {
21
- b || f();
20
+ let w = !1;
21
+ x.lost.then(() => {
22
+ w || g();
22
23
  });
23
- let x = _.createBindGroupLayout({ entries: [{
24
+ let T = x.createBindGroupLayout({ entries: [{
24
25
  binding: 0,
25
26
  visibility: 3,
26
27
  buffer: { type: "uniform" }
27
- }] }), S = _.createPipelineLayout({ bindGroupLayouts: [x] }), C = {
28
+ }] }), E = x.createPipelineLayout({ bindGroupLayouts: [T] }), D = {
28
29
  color: {
29
30
  srcFactor: "one",
30
31
  dstFactor: "one-minus-src-alpha",
@@ -35,21 +36,45 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
35
36
  dstFactor: "one-minus-src-alpha",
36
37
  operation: "add"
37
38
  }
38
- }, w = (e, t, n, r) => {
39
- let i = _.createShaderModule({ code: e });
40
- return _.createRenderPipeline({
41
- layout: S,
39
+ }, O = {
40
+ color: {
41
+ srcFactor: "one",
42
+ dstFactor: "one",
43
+ operation: "add"
44
+ },
45
+ alpha: D.alpha
46
+ }, k = {
47
+ color: {
48
+ srcFactor: "one",
49
+ dstFactor: "one",
50
+ operation: "add"
51
+ },
52
+ alpha: {
53
+ srcFactor: "one",
54
+ dstFactor: "one",
55
+ operation: "add"
56
+ }
57
+ }, A = (e, t, n, r, i = D, a = !1) => {
58
+ let o = x.createShaderModule({ code: e });
59
+ return x.createRenderPipeline({
60
+ layout: E,
42
61
  vertex: {
43
- module: i,
62
+ module: o,
44
63
  entryPoint: "vs",
45
64
  buffers: t
46
65
  },
47
66
  fragment: {
48
- module: i,
49
- entryPoint: "fs",
50
- targets: [{
51
- format: y,
52
- blend: C
67
+ module: o,
68
+ entryPoint: a ? "fsOit" : "fs",
69
+ targets: a ? [{
70
+ format: m,
71
+ blend: k
72
+ }, {
73
+ format: m,
74
+ blend: k
75
+ }] : [{
76
+ format: C,
77
+ blend: i
53
78
  }]
54
79
  },
55
80
  primitive: {
@@ -61,9 +86,9 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
61
86
  depthWriteEnabled: r,
62
87
  depthCompare: "less-equal"
63
88
  },
64
- multisample: { count: u }
89
+ multisample: { count: p }
65
90
  });
66
- }, T = [{
91
+ }, j = [{
67
92
  arrayStride: 20,
68
93
  stepMode: "instance",
69
94
  attributes: [
@@ -83,7 +108,7 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
83
108
  format: "unorm8x4"
84
109
  }
85
110
  ]
86
- }], E = [{
111
+ }], M = [{
87
112
  arrayStride: 28,
88
113
  stepMode: "vertex",
89
114
  attributes: [
@@ -103,7 +128,7 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
103
128
  format: "unorm8x4"
104
129
  }
105
130
  ]
106
- }], D = [{
131
+ }], N = [{
107
132
  arrayStride: 28,
108
133
  stepMode: "instance",
109
134
  attributes: [
@@ -123,52 +148,115 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
123
148
  format: "unorm8x4"
124
149
  }
125
150
  ]
126
- }], O = {
127
- points: [w(r, T, "triangle-strip", !1), w(r, T, "triangle-strip", !0)],
128
- mesh: [w(n, E, "triangle-list", !1), w(n, E, "triangle-list", !0)],
129
- lines: [w(t, D, "triangle-strip", !1), w(t, D, "triangle-strip", !0)]
130
- }, k = null, A = () => {
131
- let e = d.width, t = d.height;
132
- return k && k.width === e && k.height === t ? k : (k?.color.destroy(), k?.depth.destroy(), k = {
151
+ }], P = {
152
+ points: [A(o, j, "triangle-strip", !1), A(o, j, "triangle-strip", !0)],
153
+ mesh: [A(a, M, "triangle-list", !1), A(a, M, "triangle-list", !0)],
154
+ lines: [A(i, N, "triangle-strip", !1), A(i, N, "triangle-strip", !0)]
155
+ }, F = null, I = (e) => {
156
+ if (e.kind === "points" && e.additive) return F ?? (F = A(o, j, "triangle-strip", !1, O)), F;
157
+ let t = P[e.kind];
158
+ return t[n(e) ? t.length - 1 : 0];
159
+ };
160
+ x.pushErrorScope("validation");
161
+ let L = x.createBindGroupLayout({ entries: [0, 1].map((e) => ({
162
+ binding: e,
163
+ visibility: d,
164
+ texture: { sampleType: "unfilterable-float" }
165
+ })) }), R = x.createShaderModule({ code: r }), z = {
166
+ points: A(o, j, "triangle-strip", !1, D, !0),
167
+ mesh: A(a, M, "triangle-list", !1, D, !0),
168
+ composite: x.createRenderPipeline({
169
+ layout: x.createPipelineLayout({ bindGroupLayouts: [L] }),
170
+ vertex: {
171
+ module: R,
172
+ entryPoint: "vs"
173
+ },
174
+ fragment: {
175
+ module: R,
176
+ entryPoint: "fs",
177
+ targets: [{
178
+ format: C,
179
+ blend: D
180
+ }]
181
+ },
182
+ primitive: { topology: "triangle-list" },
183
+ depthStencil: {
184
+ format: "depth24plus",
185
+ depthWriteEnabled: !1,
186
+ depthCompare: "always"
187
+ },
188
+ multisample: { count: p }
189
+ })
190
+ }, B = !await x.popErrorScope(), V = null, H = () => {
191
+ let e = V?.oit;
192
+ e && (e.accum.destroy(), e.extra.destroy(), e.accumResolved.destroy(), e.extraResolved.destroy());
193
+ }, U = () => {
194
+ let e = h.width, t = h.height;
195
+ return V && V.width === e && V.height === t ? V : (V?.color.destroy(), V?.depth.destroy(), H(), V = {
133
196
  width: e,
134
197
  height: t,
135
- color: _.createTexture({
198
+ color: x.createTexture({
136
199
  size: [e, t],
137
- sampleCount: u,
138
- format: y,
139
- usage: l
200
+ sampleCount: p,
201
+ format: C,
202
+ usage: f
140
203
  }),
141
- depth: _.createTexture({
204
+ depth: x.createTexture({
142
205
  size: [e, t],
143
- sampleCount: u,
206
+ sampleCount: p,
144
207
  format: "depth24plus",
145
- usage: l
208
+ usage: f
209
+ }),
210
+ oit: null
211
+ }, V);
212
+ }, W = (e) => {
213
+ if (e.oit) return e.oit;
214
+ let t = (t) => x.createTexture({
215
+ size: [e.width, e.height],
216
+ sampleCount: t,
217
+ format: m,
218
+ usage: t > 1 ? f : 20
219
+ }), n = t(1), r = t(1);
220
+ return e.oit = {
221
+ accum: t(p),
222
+ extra: t(p),
223
+ accumResolved: n,
224
+ extraResolved: r,
225
+ bindGroup: x.createBindGroup({
226
+ layout: L,
227
+ entries: [{
228
+ binding: 0,
229
+ resource: n.createView()
230
+ }, {
231
+ binding: 1,
232
+ resource: r.createView()
233
+ }]
146
234
  })
147
- }, k);
148
- }, j = /* @__PURE__ */ new Map(), M = /* @__PURE__ */ new Float32Array(40), N = (e, t) => {
235
+ }, e.oit;
236
+ }, G = /* @__PURE__ */ new Map(), K = /* @__PURE__ */ new Float32Array(40), q = (e, t) => {
149
237
  let n = e.byteLength;
150
238
  if (n <= 0) return null;
151
- let r = _.createBuffer({
239
+ let r = x.createBuffer({
152
240
  size: Math.max(16, Math.ceil(n / 4) * 4),
153
- usage: t | c
241
+ usage: t | u
154
242
  });
155
- return e instanceof Uint32Array ? _.queue.writeBuffer(r, 0, e.buffer, e.byteOffset, n) : _.queue.writeBuffer(r, 0, e), r;
156
- }, P = (e) => {
243
+ return e instanceof Uint32Array ? x.queue.writeBuffer(r, 0, e.buffer, e.byteOffset, n) : x.queue.writeBuffer(r, 0, e), r;
244
+ }, J = (e) => {
157
245
  e.vertex?.destroy(), e.index?.destroy();
158
- }, F = (e) => {
159
- let t = j.get(e.key);
246
+ }, Y = (e) => {
247
+ let t = G.get(e.key);
160
248
  if (t && t.version === e.version && t.kind === e.kind) {
161
249
  if (e.kind === "mesh" && t.index && (e.order ?? 0) !== t.order) {
162
250
  let { indices: n } = e;
163
- _.queue.writeBuffer(t.index, 0, n.buffer, n.byteOffset, n.byteLength), t.order = e.order ?? 0;
251
+ x.queue.writeBuffer(t.index, 0, n.buffer, n.byteOffset, n.byteLength), t.order = e.order ?? 0;
164
252
  }
165
253
  return t;
166
254
  }
167
- t && P(t);
168
- let n = N(e.kind === "mesh" ? e.vertices : e.data, s), r = e.kind === "mesh" ? N(e.indices, o) : null;
255
+ t && J(t);
256
+ let n = q(e.kind === "mesh" ? e.vertices : e.data, l), r = e.kind === "mesh" ? q(e.indices, c) : null;
169
257
  if (t) t.version = e.version, t.kind = e.kind, t.vertex = n, t.index = r, t.order = e.kind === "mesh" ? e.order ?? 0 : 0;
170
258
  else {
171
- let i = _.createBuffer({
259
+ let i = x.createBuffer({
172
260
  size: 160,
173
261
  usage: 72
174
262
  });
@@ -179,29 +267,40 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
179
267
  index: r,
180
268
  order: e.kind === "mesh" ? e.order ?? 0 : 0,
181
269
  uniform: i,
182
- bindGroup: _.createBindGroup({
183
- layout: x,
270
+ bindGroup: x.createBindGroup({
271
+ layout: T,
184
272
  entries: [{
185
273
  binding: 0,
186
274
  resource: { buffer: i }
187
275
  }]
188
276
  })
189
- }, j.set(e.key, t);
277
+ }, G.set(e.key, t);
190
278
  }
191
279
  return t;
192
280
  };
193
281
  return {
194
282
  kind: "webgpu",
195
- canvas: d,
283
+ canvas: h,
284
+ orderIndependent: B,
196
285
  resize(e, t) {
197
- d.width = Math.max(1, e), d.height = Math.max(1, t);
286
+ h.width = Math.max(1, e), h.height = Math.max(1, t);
198
287
  },
199
- render(t, n) {
200
- if (b) return;
201
- let { color: r, depth: o } = A(), s = _.createCommandEncoder(), c = s.beginRenderPass({
288
+ render(n, r) {
289
+ if (w) return;
290
+ let i = U(), a = e(n), o = B && a.some((e) => t(e) === 2), c = x.createCommandEncoder(), l = S.getCurrentTexture().createView(), u = /* @__PURE__ */ new Set(), d = (e, t, n) => {
291
+ let i = t.kind === "mesh" ? t.indices.length : t.count;
292
+ if (i <= 0) return;
293
+ let a = Y(t);
294
+ if (a.vertex) {
295
+ if (x.queue.writeBuffer(a.uniform, 0, s(t, r, K)), e.setPipeline(n), e.setBindGroup(0, a.bindGroup), e.setVertexBuffer(0, a.vertex), t.kind === "mesh") {
296
+ if (!a.index) return;
297
+ e.setIndexBuffer(a.index, "uint32"), e.drawIndexed(i);
298
+ } else e.draw(4, i);
299
+ }
300
+ }, f = c.beginRenderPass({
202
301
  colorAttachments: [{
203
- view: r.createView(),
204
- resolveTarget: v.getCurrentTexture().createView(),
302
+ view: i.color.createView(),
303
+ resolveTarget: o ? void 0 : l,
205
304
  clearValue: {
206
305
  r: 0,
207
306
  g: 0,
@@ -209,41 +308,79 @@ var o = 16, s = 32, c = 8, l = 16, u = 4, d = async (d, f, p = !1) => {
209
308
  a: 0
210
309
  },
211
310
  loadOp: "clear",
212
- storeOp: "discard"
311
+ storeOp: o ? "store" : "discard"
213
312
  }],
214
313
  depthStencilAttachment: {
215
- view: o.createView(),
314
+ view: i.depth.createView(),
216
315
  depthClearValue: 1,
217
316
  depthLoadOp: "clear",
218
- depthStoreOp: "discard"
219
- }
220
- }), l = /* @__PURE__ */ new Set();
221
- for (let r of e(t)) {
222
- l.add(r.key);
223
- let e = r.kind === "mesh" ? r.indices.length : r.count;
224
- if (e <= 0) continue;
225
- let t = F(r);
226
- if (!t.vertex) continue;
227
- _.queue.writeBuffer(t.uniform, 0, i(r, n, M));
228
- let o = O[r.kind], s = o[a(r) ? o.length - 1 : 0];
229
- if (s) {
230
- if (c.setPipeline(s), c.setBindGroup(0, t.bindGroup), c.setVertexBuffer(0, t.vertex), r.kind === "mesh") {
231
- if (!t.index) continue;
232
- c.setIndexBuffer(t.index, "uint32"), c.drawIndexed(e);
233
- } else c.draw(4, e);
317
+ depthStoreOp: o ? "store" : "discard"
234
318
  }
319
+ });
320
+ for (let e of a) {
321
+ if (o && t(e) > 1) break;
322
+ u.add(e.key), d(f, e, I(e));
323
+ }
324
+ if (f.end(), o) {
325
+ let e = W(i), n = c.beginRenderPass({
326
+ colorAttachments: [{
327
+ view: e.accum.createView(),
328
+ resolveTarget: e.accumResolved.createView(),
329
+ clearValue: {
330
+ r: 0,
331
+ g: 0,
332
+ b: 0,
333
+ a: 0
334
+ },
335
+ loadOp: "clear",
336
+ storeOp: "discard"
337
+ }, {
338
+ view: e.extra.createView(),
339
+ resolveTarget: e.extraResolved.createView(),
340
+ clearValue: {
341
+ r: 0,
342
+ g: 0,
343
+ b: 0,
344
+ a: 0
345
+ },
346
+ loadOp: "clear",
347
+ storeOp: "discard"
348
+ }],
349
+ depthStencilAttachment: {
350
+ view: i.depth.createView(),
351
+ depthReadOnly: !0
352
+ }
353
+ });
354
+ for (let e of a) t(e) === 2 && e.kind !== "lines" && (u.add(e.key), d(n, e, z[e.kind]));
355
+ n.end();
356
+ let r = c.beginRenderPass({
357
+ colorAttachments: [{
358
+ view: i.color.createView(),
359
+ resolveTarget: l,
360
+ loadOp: "load",
361
+ storeOp: "discard"
362
+ }],
363
+ depthStencilAttachment: {
364
+ view: i.depth.createView(),
365
+ depthLoadOp: "load",
366
+ depthStoreOp: "discard"
367
+ }
368
+ });
369
+ r.setPipeline(z.composite), r.setBindGroup(0, e.bindGroup), r.draw(3);
370
+ for (let e of a) t(e) < 3 || (u.add(e.key), d(r, e, I(e)));
371
+ r.end();
235
372
  }
236
- c.end(), _.queue.submit([s.finish()]);
237
- for (let [e, t] of j) l.has(e) || (P(t), t.uniform.destroy(), j.delete(e));
373
+ x.queue.submit([c.finish()]);
374
+ for (let [e, t] of G) u.has(e) || (J(t), t.uniform.destroy(), G.delete(e));
238
375
  },
239
376
  destroy() {
240
- b = !0;
241
- for (let e of j.values()) P(e), e.uniform.destroy();
242
- j.clear(), k?.color.destroy(), k?.depth.destroy(), k = null, v.unconfigure(), _.destroy();
377
+ w = !0;
378
+ for (let e of G.values()) J(e), e.uniform.destroy();
379
+ G.clear(), V?.color.destroy(), V?.depth.destroy(), H(), V = null, S.unconfigure(), x.destroy();
243
380
  }
244
381
  };
245
382
  };
246
383
  //#endregion
247
- export { d as createWebGpu3D };
384
+ export { h as createWebGpu3D };
248
385
 
249
386
  //# sourceMappingURL=webgpu.js.map