@petal-nexus/toolkit 0.2.5 → 0.3.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 (2145) hide show
  1. package/CHANGELOG.md +82 -3
  2. package/README.md +2 -2
  3. package/dist/charts/core/FinancialChart/FinancialChart.d.ts +24 -7
  4. package/dist/charts/core/FinancialChart/index.d.ts +4 -2
  5. package/dist/charts/core/FinancialChart/presets.d.ts +29 -0
  6. package/dist/charts/core/FinancialChart/types.d.ts +81 -10
  7. package/dist/charts/core/TimeSeriesChart/TimeSeriesChart.d.ts +2 -2
  8. package/dist/charts/core/TimeSeriesChart/index.d.ts +1 -1
  9. package/dist/charts/core/index.d.ts +2 -2
  10. package/dist/components/DrawingToolbar.d.ts +32 -0
  11. package/dist/components/ObjectTreePanel.d.ts +28 -0
  12. package/dist/components/PropertiesPanel.d.ts +17 -0
  13. package/dist/components/index.d.ts +9 -0
  14. package/dist/index.d.ts +1 -1
  15. package/dist/mocks/drawingMockData.d.ts +41 -0
  16. package/dist/mocks/index.d.ts +4 -0
  17. package/dist/petal-toolkit.cjs10.js +1 -1
  18. package/dist/petal-toolkit.cjs100.js +1 -1
  19. package/dist/petal-toolkit.cjs101.js +1 -1
  20. package/dist/petal-toolkit.cjs102.js +1 -1
  21. package/dist/petal-toolkit.cjs1023.js +1 -1
  22. package/dist/petal-toolkit.cjs1025.js +1 -1
  23. package/dist/petal-toolkit.cjs1029.js +1 -1
  24. package/dist/petal-toolkit.cjs103.js +1 -1
  25. package/dist/petal-toolkit.cjs1030.js +1 -1
  26. package/dist/petal-toolkit.cjs104.js +1 -1
  27. package/dist/petal-toolkit.cjs105.js +1 -1
  28. package/dist/petal-toolkit.cjs1051.js +1 -1
  29. package/dist/petal-toolkit.cjs1051.js.map +1 -1
  30. package/dist/petal-toolkit.cjs1052.js +1 -1
  31. package/dist/petal-toolkit.cjs1052.js.map +1 -1
  32. package/dist/petal-toolkit.cjs1055.js +1 -1
  33. package/dist/petal-toolkit.cjs1056.js +1 -1
  34. package/dist/petal-toolkit.cjs106.js +1 -1
  35. package/dist/petal-toolkit.cjs1062.js +1 -1
  36. package/dist/petal-toolkit.cjs1062.js.map +1 -1
  37. package/dist/petal-toolkit.cjs1063.js +1 -1
  38. package/dist/petal-toolkit.cjs1063.js.map +1 -1
  39. package/dist/petal-toolkit.cjs1064.js +1 -1
  40. package/dist/petal-toolkit.cjs1065.js +1 -1
  41. package/dist/petal-toolkit.cjs1068.js +1 -1
  42. package/dist/petal-toolkit.cjs1069.js +1 -1
  43. package/dist/petal-toolkit.cjs107.js +1 -1
  44. package/dist/petal-toolkit.cjs108.js +1 -1
  45. package/dist/petal-toolkit.cjs109.js +1 -1
  46. package/dist/petal-toolkit.cjs11.js +1 -1
  47. package/dist/petal-toolkit.cjs110.js +1 -1
  48. package/dist/petal-toolkit.cjs111.js +1 -1
  49. package/dist/petal-toolkit.cjs1114.js +1 -1
  50. package/dist/petal-toolkit.cjs1115.js +1 -1
  51. package/dist/petal-toolkit.cjs1116.js +1 -1
  52. package/dist/petal-toolkit.cjs1117.js +1 -1
  53. package/dist/petal-toolkit.cjs112.js +1 -1
  54. package/dist/petal-toolkit.cjs1128.js +1 -1
  55. package/dist/petal-toolkit.cjs1128.js.map +1 -1
  56. package/dist/petal-toolkit.cjs1129.js +1 -1
  57. package/dist/petal-toolkit.cjs1129.js.map +1 -1
  58. package/dist/petal-toolkit.cjs113.js +1 -1
  59. package/dist/petal-toolkit.cjs1130.js +1 -1
  60. package/dist/petal-toolkit.cjs1130.js.map +1 -1
  61. package/dist/petal-toolkit.cjs1131.js +1 -1
  62. package/dist/petal-toolkit.cjs1131.js.map +1 -1
  63. package/dist/petal-toolkit.cjs1132.js +1 -1
  64. package/dist/petal-toolkit.cjs1132.js.map +1 -1
  65. package/dist/petal-toolkit.cjs1133.js +1 -1
  66. package/dist/petal-toolkit.cjs1133.js.map +1 -1
  67. package/dist/petal-toolkit.cjs1134.js +1 -1
  68. package/dist/petal-toolkit.cjs1134.js.map +1 -1
  69. package/dist/petal-toolkit.cjs1139.js +1 -1
  70. package/dist/petal-toolkit.cjs1139.js.map +1 -1
  71. package/dist/petal-toolkit.cjs114.js +1 -1
  72. package/dist/petal-toolkit.cjs1140.js +1 -1
  73. package/dist/petal-toolkit.cjs1140.js.map +1 -1
  74. package/dist/petal-toolkit.cjs115.js +1 -1
  75. package/dist/petal-toolkit.cjs1154.js +5 -1
  76. package/dist/petal-toolkit.cjs1154.js.map +1 -1
  77. package/dist/petal-toolkit.cjs1155.js +1 -5
  78. package/dist/petal-toolkit.cjs1155.js.map +1 -1
  79. package/dist/petal-toolkit.cjs1156.js +1 -1
  80. package/dist/petal-toolkit.cjs1157.js +1 -1
  81. package/dist/petal-toolkit.cjs116.js +1 -1
  82. package/dist/petal-toolkit.cjs1161.js +1 -1
  83. package/dist/petal-toolkit.cjs1162.js +1 -1
  84. package/dist/petal-toolkit.cjs1163.js +1 -1
  85. package/dist/petal-toolkit.cjs1163.js.map +1 -1
  86. package/dist/petal-toolkit.cjs1164.js +1 -1
  87. package/dist/petal-toolkit.cjs1164.js.map +1 -1
  88. package/dist/petal-toolkit.cjs117.js +1 -1
  89. package/dist/petal-toolkit.cjs1171.js +1 -1
  90. package/dist/petal-toolkit.cjs1171.js.map +1 -1
  91. package/dist/petal-toolkit.cjs1172.js +1 -1
  92. package/dist/petal-toolkit.cjs1172.js.map +1 -1
  93. package/dist/petal-toolkit.cjs1177.js +1 -1
  94. package/dist/petal-toolkit.cjs1177.js.map +1 -1
  95. package/dist/petal-toolkit.cjs1178.js +1 -1
  96. package/dist/petal-toolkit.cjs1178.js.map +1 -1
  97. package/dist/petal-toolkit.cjs118.js +1 -1
  98. package/dist/petal-toolkit.cjs1184.js +1 -1
  99. package/dist/petal-toolkit.cjs1185.js +1 -1
  100. package/dist/petal-toolkit.cjs119.js +1 -1
  101. package/dist/petal-toolkit.cjs12.js +1 -1
  102. package/dist/petal-toolkit.cjs120.js +1 -1
  103. package/dist/petal-toolkit.cjs121.js +1 -1
  104. package/dist/petal-toolkit.cjs122.js +1 -1
  105. package/dist/petal-toolkit.cjs1220.js +1 -1
  106. package/dist/petal-toolkit.cjs1220.js.map +1 -1
  107. package/dist/petal-toolkit.cjs1221.js +1 -1
  108. package/dist/petal-toolkit.cjs1221.js.map +1 -1
  109. package/dist/petal-toolkit.cjs123.js +1 -1
  110. package/dist/petal-toolkit.cjs124.js +1 -1
  111. package/dist/petal-toolkit.cjs1246.js +1 -1
  112. package/dist/petal-toolkit.cjs1247.js +1 -1
  113. package/dist/petal-toolkit.cjs1249.js +1 -1
  114. package/dist/petal-toolkit.cjs125.js +1 -1
  115. package/dist/petal-toolkit.cjs1250.js +1 -1
  116. package/dist/petal-toolkit.cjs126.js +1 -1
  117. package/dist/petal-toolkit.cjs127.js +1 -1
  118. package/dist/petal-toolkit.cjs128.js +1 -1
  119. package/dist/petal-toolkit.cjs129.js +1 -1
  120. package/dist/petal-toolkit.cjs13.js +1 -1
  121. package/dist/petal-toolkit.cjs130.js +1 -1
  122. package/dist/petal-toolkit.cjs131.js +1 -1
  123. package/dist/petal-toolkit.cjs1314.js +1 -1
  124. package/dist/petal-toolkit.cjs1315.js +1 -1
  125. package/dist/petal-toolkit.cjs1319.js +1 -1
  126. package/dist/petal-toolkit.cjs132.js +1 -1
  127. package/dist/petal-toolkit.cjs1320.js +1 -1
  128. package/dist/petal-toolkit.cjs1325.js +1 -1
  129. package/dist/petal-toolkit.cjs1325.js.map +1 -1
  130. package/dist/petal-toolkit.cjs1326.js +1 -1
  131. package/dist/petal-toolkit.cjs1326.js.map +1 -1
  132. package/dist/petal-toolkit.cjs1327.js +1 -2
  133. package/dist/petal-toolkit.cjs1327.js.map +1 -1
  134. package/dist/petal-toolkit.cjs1328.js +1 -1
  135. package/dist/petal-toolkit.cjs1328.js.map +1 -1
  136. package/dist/petal-toolkit.cjs1329.js +1 -1
  137. package/dist/petal-toolkit.cjs1329.js.map +1 -1
  138. package/dist/petal-toolkit.cjs133.js +1 -1
  139. package/dist/petal-toolkit.cjs1330.js +1 -1
  140. package/dist/petal-toolkit.cjs1330.js.map +1 -1
  141. package/dist/petal-toolkit.cjs1331.js +1 -1
  142. package/dist/petal-toolkit.cjs1331.js.map +1 -1
  143. package/dist/petal-toolkit.cjs1332.js +2 -1
  144. package/dist/petal-toolkit.cjs1332.js.map +1 -1
  145. package/dist/petal-toolkit.cjs1333.js +1 -1
  146. package/dist/petal-toolkit.cjs1334.js +1 -1
  147. package/dist/petal-toolkit.cjs1336.js +1 -1
  148. package/dist/petal-toolkit.cjs1338.js +1 -1
  149. package/dist/petal-toolkit.cjs134.js +1 -1
  150. package/dist/petal-toolkit.cjs1340.js +1 -1
  151. package/dist/petal-toolkit.cjs1342.js +1 -1
  152. package/dist/petal-toolkit.cjs1344.js +1 -1
  153. package/dist/petal-toolkit.cjs1345.js +1 -1
  154. package/dist/petal-toolkit.cjs135.js +1 -1
  155. package/dist/petal-toolkit.cjs1352.js +1 -1
  156. package/dist/petal-toolkit.cjs1353.js +1 -1
  157. package/dist/petal-toolkit.cjs1354.js +1 -1
  158. package/dist/petal-toolkit.cjs1355.js +1 -1
  159. package/dist/petal-toolkit.cjs1356.js +1 -1
  160. package/dist/petal-toolkit.cjs1357.js +1 -1
  161. package/dist/petal-toolkit.cjs1357.js.map +1 -1
  162. package/dist/petal-toolkit.cjs136.js +1 -1
  163. package/dist/petal-toolkit.cjs1361.js +1 -1
  164. package/dist/petal-toolkit.cjs1362.js +1 -1
  165. package/dist/petal-toolkit.cjs1363.js +1 -1
  166. package/dist/petal-toolkit.cjs1367.js +1 -1
  167. package/dist/petal-toolkit.cjs1368.js +2 -0
  168. package/dist/petal-toolkit.cjs1368.js.map +1 -0
  169. package/dist/petal-toolkit.cjs1369.js +2 -0
  170. package/dist/petal-toolkit.cjs1369.js.map +1 -0
  171. package/dist/petal-toolkit.cjs137.js +1 -1
  172. package/dist/petal-toolkit.cjs1370.js +2 -0
  173. package/dist/petal-toolkit.cjs1370.js.map +1 -0
  174. package/dist/petal-toolkit.cjs1371.js +2 -0
  175. package/dist/petal-toolkit.cjs1371.js.map +1 -0
  176. package/dist/petal-toolkit.cjs1372.js +2 -0
  177. package/dist/petal-toolkit.cjs1372.js.map +1 -0
  178. package/dist/petal-toolkit.cjs138.js +1 -1
  179. package/dist/petal-toolkit.cjs139.js +1 -1
  180. package/dist/petal-toolkit.cjs14.js +1 -1
  181. package/dist/petal-toolkit.cjs140.js +1 -1
  182. package/dist/petal-toolkit.cjs141.js +1 -1
  183. package/dist/petal-toolkit.cjs142.js +1 -1
  184. package/dist/petal-toolkit.cjs143.js +1 -1
  185. package/dist/petal-toolkit.cjs144.js +1 -1
  186. package/dist/petal-toolkit.cjs145.js +1 -1
  187. package/dist/petal-toolkit.cjs146.js +1 -1
  188. package/dist/petal-toolkit.cjs147.js +1 -1
  189. package/dist/petal-toolkit.cjs148.js +1 -1
  190. package/dist/petal-toolkit.cjs149.js +1 -1
  191. package/dist/petal-toolkit.cjs15.js +1 -1
  192. package/dist/petal-toolkit.cjs150.js +1 -1
  193. package/dist/petal-toolkit.cjs151.js +1 -1
  194. package/dist/petal-toolkit.cjs152.js +1 -1
  195. package/dist/petal-toolkit.cjs153.js +1 -1
  196. package/dist/petal-toolkit.cjs154.js +1 -1
  197. package/dist/petal-toolkit.cjs155.js +1 -1
  198. package/dist/petal-toolkit.cjs156.js +1 -1
  199. package/dist/petal-toolkit.cjs157.js +1 -1
  200. package/dist/petal-toolkit.cjs158.js +1 -1
  201. package/dist/petal-toolkit.cjs159.js +1 -1
  202. package/dist/petal-toolkit.cjs160.js +1 -1
  203. package/dist/petal-toolkit.cjs161.js +1 -1
  204. package/dist/petal-toolkit.cjs162.js +1 -1
  205. package/dist/petal-toolkit.cjs163.js +1 -1
  206. package/dist/petal-toolkit.cjs164.js +1 -1
  207. package/dist/petal-toolkit.cjs165.js +1 -1
  208. package/dist/petal-toolkit.cjs166.js +1 -1
  209. package/dist/petal-toolkit.cjs167.js +1 -1
  210. package/dist/petal-toolkit.cjs168.js +1 -1
  211. package/dist/petal-toolkit.cjs169.js +1 -1
  212. package/dist/petal-toolkit.cjs170.js +1 -1
  213. package/dist/petal-toolkit.cjs171.js +1 -1
  214. package/dist/petal-toolkit.cjs172.js +1 -1
  215. package/dist/petal-toolkit.cjs173.js +1 -1
  216. package/dist/petal-toolkit.cjs174.js +1 -1
  217. package/dist/petal-toolkit.cjs175.js +1 -1
  218. package/dist/petal-toolkit.cjs176.js +1 -1
  219. package/dist/petal-toolkit.cjs177.js +1 -1
  220. package/dist/petal-toolkit.cjs178.js +1 -1
  221. package/dist/petal-toolkit.cjs179.js +1 -1
  222. package/dist/petal-toolkit.cjs18.js +1 -1
  223. package/dist/petal-toolkit.cjs180.js +1 -1
  224. package/dist/petal-toolkit.cjs181.js +1 -1
  225. package/dist/petal-toolkit.cjs182.js +1 -1
  226. package/dist/petal-toolkit.cjs183.js +1 -1
  227. package/dist/petal-toolkit.cjs184.js +1 -1
  228. package/dist/petal-toolkit.cjs185.js +1 -1
  229. package/dist/petal-toolkit.cjs186.js +1 -1
  230. package/dist/petal-toolkit.cjs187.js +1 -1
  231. package/dist/petal-toolkit.cjs188.js +1 -1
  232. package/dist/petal-toolkit.cjs189.js +1 -1
  233. package/dist/petal-toolkit.cjs19.js +1 -1
  234. package/dist/petal-toolkit.cjs190.js +1 -1
  235. package/dist/petal-toolkit.cjs191.js +1 -1
  236. package/dist/petal-toolkit.cjs192.js +1 -1
  237. package/dist/petal-toolkit.cjs193.js +1 -1
  238. package/dist/petal-toolkit.cjs194.js +1 -1
  239. package/dist/petal-toolkit.cjs195.js +1 -1
  240. package/dist/petal-toolkit.cjs196.js +1 -1
  241. package/dist/petal-toolkit.cjs197.js +1 -1
  242. package/dist/petal-toolkit.cjs198.js +1 -1
  243. package/dist/petal-toolkit.cjs199.js +1 -1
  244. package/dist/petal-toolkit.cjs20.js +1 -1
  245. package/dist/petal-toolkit.cjs200.js +1 -1
  246. package/dist/petal-toolkit.cjs201.js +1 -1
  247. package/dist/petal-toolkit.cjs202.js +1 -1
  248. package/dist/petal-toolkit.cjs203.js +1 -1
  249. package/dist/petal-toolkit.cjs204.js +1 -1
  250. package/dist/petal-toolkit.cjs205.js +1 -1
  251. package/dist/petal-toolkit.cjs206.js +1 -1
  252. package/dist/petal-toolkit.cjs207.js +1 -1
  253. package/dist/petal-toolkit.cjs208.js +1 -1
  254. package/dist/petal-toolkit.cjs209.js +1 -1
  255. package/dist/petal-toolkit.cjs210.js +1 -1
  256. package/dist/petal-toolkit.cjs211.js +1 -1
  257. package/dist/petal-toolkit.cjs212.js +1 -1
  258. package/dist/petal-toolkit.cjs213.js +1 -1
  259. package/dist/petal-toolkit.cjs214.js +1 -1
  260. package/dist/petal-toolkit.cjs215.js +1 -1
  261. package/dist/petal-toolkit.cjs216.js +1 -1
  262. package/dist/petal-toolkit.cjs217.js +1 -1
  263. package/dist/petal-toolkit.cjs218.js +1 -1
  264. package/dist/petal-toolkit.cjs219.js +1 -1
  265. package/dist/petal-toolkit.cjs22.js +1 -1
  266. package/dist/petal-toolkit.cjs220.js +1 -1
  267. package/dist/petal-toolkit.cjs221.js +1 -1
  268. package/dist/petal-toolkit.cjs222.js +1 -1
  269. package/dist/petal-toolkit.cjs223.js +1 -1
  270. package/dist/petal-toolkit.cjs224.js +1 -1
  271. package/dist/petal-toolkit.cjs225.js +1 -1
  272. package/dist/petal-toolkit.cjs226.js +1 -1
  273. package/dist/petal-toolkit.cjs227.js +1 -1
  274. package/dist/petal-toolkit.cjs228.js +1 -1
  275. package/dist/petal-toolkit.cjs229.js +1 -1
  276. package/dist/petal-toolkit.cjs23.js +1 -1
  277. package/dist/petal-toolkit.cjs230.js +1 -1
  278. package/dist/petal-toolkit.cjs231.js +1 -1
  279. package/dist/petal-toolkit.cjs232.js +1 -1
  280. package/dist/petal-toolkit.cjs233.js +1 -1
  281. package/dist/petal-toolkit.cjs234.js +1 -1
  282. package/dist/petal-toolkit.cjs235.js +1 -1
  283. package/dist/petal-toolkit.cjs236.js +1 -1
  284. package/dist/petal-toolkit.cjs237.js +1 -1
  285. package/dist/petal-toolkit.cjs238.js +1 -1
  286. package/dist/petal-toolkit.cjs239.js +1 -1
  287. package/dist/petal-toolkit.cjs24.js +1 -1
  288. package/dist/petal-toolkit.cjs240.js +1 -1
  289. package/dist/petal-toolkit.cjs241.js +1 -1
  290. package/dist/petal-toolkit.cjs242.js +1 -1
  291. package/dist/petal-toolkit.cjs243.js +1 -1
  292. package/dist/petal-toolkit.cjs244.js +1 -1
  293. package/dist/petal-toolkit.cjs245.js +1 -1
  294. package/dist/petal-toolkit.cjs246.js +1 -1
  295. package/dist/petal-toolkit.cjs247.js +1 -1
  296. package/dist/petal-toolkit.cjs248.js +1 -1
  297. package/dist/petal-toolkit.cjs249.js +1 -1
  298. package/dist/petal-toolkit.cjs25.js +1 -1
  299. package/dist/petal-toolkit.cjs250.js +1 -1
  300. package/dist/petal-toolkit.cjs251.js +1 -1
  301. package/dist/petal-toolkit.cjs252.js +1 -1
  302. package/dist/petal-toolkit.cjs253.js +1 -1
  303. package/dist/petal-toolkit.cjs254.js +1 -1
  304. package/dist/petal-toolkit.cjs255.js +1 -1
  305. package/dist/petal-toolkit.cjs256.js +1 -1
  306. package/dist/petal-toolkit.cjs257.js +1 -1
  307. package/dist/petal-toolkit.cjs258.js +1 -1
  308. package/dist/petal-toolkit.cjs259.js +1 -1
  309. package/dist/petal-toolkit.cjs26.js +1 -1
  310. package/dist/petal-toolkit.cjs260.js +1 -1
  311. package/dist/petal-toolkit.cjs261.js +1 -1
  312. package/dist/petal-toolkit.cjs262.js +1 -1
  313. package/dist/petal-toolkit.cjs263.js +1 -1
  314. package/dist/petal-toolkit.cjs264.js +1 -1
  315. package/dist/petal-toolkit.cjs265.js +1 -1
  316. package/dist/petal-toolkit.cjs266.js +1 -1
  317. package/dist/petal-toolkit.cjs267.js +1 -1
  318. package/dist/petal-toolkit.cjs268.js +1 -1
  319. package/dist/petal-toolkit.cjs269.js +1 -1
  320. package/dist/petal-toolkit.cjs27.js +1 -1
  321. package/dist/petal-toolkit.cjs270.js +1 -1
  322. package/dist/petal-toolkit.cjs271.js +1 -1
  323. package/dist/petal-toolkit.cjs272.js +1 -1
  324. package/dist/petal-toolkit.cjs273.js +1 -1
  325. package/dist/petal-toolkit.cjs274.js +1 -1
  326. package/dist/petal-toolkit.cjs275.js +1 -1
  327. package/dist/petal-toolkit.cjs276.js +1 -1
  328. package/dist/petal-toolkit.cjs277.js +1 -1
  329. package/dist/petal-toolkit.cjs278.js +1 -1
  330. package/dist/petal-toolkit.cjs279.js +1 -1
  331. package/dist/petal-toolkit.cjs28.js +1 -1
  332. package/dist/petal-toolkit.cjs28.js.map +1 -1
  333. package/dist/petal-toolkit.cjs280.js +1 -1
  334. package/dist/petal-toolkit.cjs281.js +1 -1
  335. package/dist/petal-toolkit.cjs282.js +1 -1
  336. package/dist/petal-toolkit.cjs283.js +1 -1
  337. package/dist/petal-toolkit.cjs284.js +1 -1
  338. package/dist/petal-toolkit.cjs285.js +1 -1
  339. package/dist/petal-toolkit.cjs286.js +1 -1
  340. package/dist/petal-toolkit.cjs287.js +1 -1
  341. package/dist/petal-toolkit.cjs288.js +1 -1
  342. package/dist/petal-toolkit.cjs289.js +1 -1
  343. package/dist/petal-toolkit.cjs29.js +1 -1
  344. package/dist/petal-toolkit.cjs29.js.map +1 -1
  345. package/dist/petal-toolkit.cjs290.js +1 -1
  346. package/dist/petal-toolkit.cjs291.js +1 -1
  347. package/dist/petal-toolkit.cjs292.js +1 -1
  348. package/dist/petal-toolkit.cjs293.js +1 -1
  349. package/dist/petal-toolkit.cjs294.js +1 -1
  350. package/dist/petal-toolkit.cjs295.js +1 -1
  351. package/dist/petal-toolkit.cjs296.js +1 -1
  352. package/dist/petal-toolkit.cjs297.js +1 -1
  353. package/dist/petal-toolkit.cjs298.js +1 -1
  354. package/dist/petal-toolkit.cjs299.js +1 -1
  355. package/dist/petal-toolkit.cjs3.js.map +1 -1
  356. package/dist/petal-toolkit.cjs30.js +1 -1
  357. package/dist/petal-toolkit.cjs30.js.map +1 -1
  358. package/dist/petal-toolkit.cjs300.js +1 -1
  359. package/dist/petal-toolkit.cjs301.js +1 -1
  360. package/dist/petal-toolkit.cjs302.js +1 -1
  361. package/dist/petal-toolkit.cjs303.js +1 -1
  362. package/dist/petal-toolkit.cjs304.js +1 -1
  363. package/dist/petal-toolkit.cjs305.js +1 -1
  364. package/dist/petal-toolkit.cjs306.js +1 -1
  365. package/dist/petal-toolkit.cjs307.js +1 -1
  366. package/dist/petal-toolkit.cjs308.js +1 -1
  367. package/dist/petal-toolkit.cjs309.js +1 -1
  368. package/dist/petal-toolkit.cjs31.js +1 -1
  369. package/dist/petal-toolkit.cjs310.js +1 -1
  370. package/dist/petal-toolkit.cjs311.js +1 -1
  371. package/dist/petal-toolkit.cjs312.js +1 -1
  372. package/dist/petal-toolkit.cjs313.js +1 -1
  373. package/dist/petal-toolkit.cjs314.js +1 -1
  374. package/dist/petal-toolkit.cjs315.js +1 -1
  375. package/dist/petal-toolkit.cjs316.js +1 -1
  376. package/dist/petal-toolkit.cjs317.js +1 -1
  377. package/dist/petal-toolkit.cjs318.js +1 -1
  378. package/dist/petal-toolkit.cjs319.js +1 -1
  379. package/dist/petal-toolkit.cjs32.js +1 -1
  380. package/dist/petal-toolkit.cjs320.js +1 -1
  381. package/dist/petal-toolkit.cjs321.js +1 -1
  382. package/dist/petal-toolkit.cjs322.js +1 -1
  383. package/dist/petal-toolkit.cjs323.js +1 -1
  384. package/dist/petal-toolkit.cjs324.js +1 -1
  385. package/dist/petal-toolkit.cjs325.js +1 -1
  386. package/dist/petal-toolkit.cjs326.js +1 -1
  387. package/dist/petal-toolkit.cjs327.js +1 -1
  388. package/dist/petal-toolkit.cjs328.js +1 -1
  389. package/dist/petal-toolkit.cjs329.js +1 -1
  390. package/dist/petal-toolkit.cjs330.js +1 -1
  391. package/dist/petal-toolkit.cjs331.js +1 -1
  392. package/dist/petal-toolkit.cjs332.js +1 -1
  393. package/dist/petal-toolkit.cjs333.js +1 -1
  394. package/dist/petal-toolkit.cjs334.js +1 -1
  395. package/dist/petal-toolkit.cjs335.js +1 -1
  396. package/dist/petal-toolkit.cjs336.js +1 -1
  397. package/dist/petal-toolkit.cjs337.js +1 -1
  398. package/dist/petal-toolkit.cjs338.js +1 -1
  399. package/dist/petal-toolkit.cjs339.js +1 -1
  400. package/dist/petal-toolkit.cjs34.js +1 -1
  401. package/dist/petal-toolkit.cjs340.js +1 -1
  402. package/dist/petal-toolkit.cjs341.js +1 -1
  403. package/dist/petal-toolkit.cjs342.js +1 -1
  404. package/dist/petal-toolkit.cjs343.js +1 -1
  405. package/dist/petal-toolkit.cjs344.js +1 -1
  406. package/dist/petal-toolkit.cjs345.js +1 -1
  407. package/dist/petal-toolkit.cjs346.js +1 -1
  408. package/dist/petal-toolkit.cjs347.js +1 -1
  409. package/dist/petal-toolkit.cjs348.js +1 -1
  410. package/dist/petal-toolkit.cjs349.js +1 -1
  411. package/dist/petal-toolkit.cjs35.js +1 -1
  412. package/dist/petal-toolkit.cjs350.js +1 -1
  413. package/dist/petal-toolkit.cjs351.js +1 -1
  414. package/dist/petal-toolkit.cjs352.js +1 -1
  415. package/dist/petal-toolkit.cjs353.js +1 -1
  416. package/dist/petal-toolkit.cjs354.js +1 -1
  417. package/dist/petal-toolkit.cjs355.js +1 -1
  418. package/dist/petal-toolkit.cjs356.js +1 -1
  419. package/dist/petal-toolkit.cjs357.js +1 -1
  420. package/dist/petal-toolkit.cjs358.js +1 -1
  421. package/dist/petal-toolkit.cjs359.js +1 -1
  422. package/dist/petal-toolkit.cjs36.js +1 -1
  423. package/dist/petal-toolkit.cjs360.js +1 -1
  424. package/dist/petal-toolkit.cjs361.js +1 -1
  425. package/dist/petal-toolkit.cjs361.js.map +1 -1
  426. package/dist/petal-toolkit.cjs362.js +1 -1
  427. package/dist/petal-toolkit.cjs363.js +1 -1
  428. package/dist/petal-toolkit.cjs364.js +1 -1
  429. package/dist/petal-toolkit.cjs365.js +1 -1
  430. package/dist/petal-toolkit.cjs366.js +1 -1
  431. package/dist/petal-toolkit.cjs367.js +1 -1
  432. package/dist/petal-toolkit.cjs368.js +1 -1
  433. package/dist/petal-toolkit.cjs369.js +1 -1
  434. package/dist/petal-toolkit.cjs37.js +1 -1
  435. package/dist/petal-toolkit.cjs370.js +1 -1
  436. package/dist/petal-toolkit.cjs371.js +1 -1
  437. package/dist/petal-toolkit.cjs372.js +1 -1
  438. package/dist/petal-toolkit.cjs373.js +1 -1
  439. package/dist/petal-toolkit.cjs374.js +1 -1
  440. package/dist/petal-toolkit.cjs375.js +1 -1
  441. package/dist/petal-toolkit.cjs376.js +1 -1
  442. package/dist/petal-toolkit.cjs377.js +1 -1
  443. package/dist/petal-toolkit.cjs378.js +1 -1
  444. package/dist/petal-toolkit.cjs379.js +1 -1
  445. package/dist/petal-toolkit.cjs38.js +1 -1
  446. package/dist/petal-toolkit.cjs38.js.map +1 -1
  447. package/dist/petal-toolkit.cjs380.js +1 -1
  448. package/dist/petal-toolkit.cjs381.js +1 -1
  449. package/dist/petal-toolkit.cjs382.js +1 -1
  450. package/dist/petal-toolkit.cjs383.js +1 -1
  451. package/dist/petal-toolkit.cjs384.js +1 -1
  452. package/dist/petal-toolkit.cjs385.js +1 -1
  453. package/dist/petal-toolkit.cjs386.js +1 -1
  454. package/dist/petal-toolkit.cjs387.js +1 -1
  455. package/dist/petal-toolkit.cjs388.js +1 -1
  456. package/dist/petal-toolkit.cjs389.js +1 -1
  457. package/dist/petal-toolkit.cjs390.js +1 -1
  458. package/dist/petal-toolkit.cjs391.js +1 -1
  459. package/dist/petal-toolkit.cjs392.js +1 -1
  460. package/dist/petal-toolkit.cjs393.js +1 -1
  461. package/dist/petal-toolkit.cjs394.js +1 -1
  462. package/dist/petal-toolkit.cjs395.js +1 -1
  463. package/dist/petal-toolkit.cjs396.js +1 -1
  464. package/dist/petal-toolkit.cjs397.js +1 -1
  465. package/dist/petal-toolkit.cjs398.js +1 -1
  466. package/dist/petal-toolkit.cjs399.js +1 -1
  467. package/dist/petal-toolkit.cjs4.js +1 -1
  468. package/dist/petal-toolkit.cjs40.js +1 -1
  469. package/dist/petal-toolkit.cjs400.js +1 -1
  470. package/dist/petal-toolkit.cjs401.js +1 -1
  471. package/dist/petal-toolkit.cjs402.js +1 -1
  472. package/dist/petal-toolkit.cjs403.js +1 -1
  473. package/dist/petal-toolkit.cjs404.js +1 -1
  474. package/dist/petal-toolkit.cjs405.js +1 -1
  475. package/dist/petal-toolkit.cjs406.js +1 -1
  476. package/dist/petal-toolkit.cjs407.js +1 -1
  477. package/dist/petal-toolkit.cjs408.js +1 -1
  478. package/dist/petal-toolkit.cjs409.js +1 -1
  479. package/dist/petal-toolkit.cjs41.js +1 -1
  480. package/dist/petal-toolkit.cjs410.js +1 -1
  481. package/dist/petal-toolkit.cjs411.js +1 -1
  482. package/dist/petal-toolkit.cjs412.js +1 -1
  483. package/dist/petal-toolkit.cjs413.js +1 -1
  484. package/dist/petal-toolkit.cjs414.js +1 -1
  485. package/dist/petal-toolkit.cjs415.js +1 -1
  486. package/dist/petal-toolkit.cjs416.js +1 -1
  487. package/dist/petal-toolkit.cjs417.js +1 -1
  488. package/dist/petal-toolkit.cjs418.js +1 -1
  489. package/dist/petal-toolkit.cjs419.js +1 -1
  490. package/dist/petal-toolkit.cjs42.js +1 -1
  491. package/dist/petal-toolkit.cjs420.js +1 -1
  492. package/dist/petal-toolkit.cjs421.js +1 -1
  493. package/dist/petal-toolkit.cjs422.js +1 -1
  494. package/dist/petal-toolkit.cjs423.js +1 -1
  495. package/dist/petal-toolkit.cjs424.js +1 -1
  496. package/dist/petal-toolkit.cjs425.js +1 -1
  497. package/dist/petal-toolkit.cjs426.js +1 -1
  498. package/dist/petal-toolkit.cjs427.js +1 -1
  499. package/dist/petal-toolkit.cjs428.js +1 -1
  500. package/dist/petal-toolkit.cjs429.js +1 -1
  501. package/dist/petal-toolkit.cjs43.js +1 -1
  502. package/dist/petal-toolkit.cjs430.js +1 -1
  503. package/dist/petal-toolkit.cjs431.js +1 -1
  504. package/dist/petal-toolkit.cjs432.js +1 -1
  505. package/dist/petal-toolkit.cjs433.js +1 -1
  506. package/dist/petal-toolkit.cjs434.js +1 -1
  507. package/dist/petal-toolkit.cjs435.js +1 -1
  508. package/dist/petal-toolkit.cjs436.js +1 -1
  509. package/dist/petal-toolkit.cjs437.js +1 -1
  510. package/dist/petal-toolkit.cjs438.js +1 -1
  511. package/dist/petal-toolkit.cjs439.js +1 -1
  512. package/dist/petal-toolkit.cjs44.js +1 -1
  513. package/dist/petal-toolkit.cjs440.js +1 -1
  514. package/dist/petal-toolkit.cjs441.js +1 -1
  515. package/dist/petal-toolkit.cjs442.js +1 -1
  516. package/dist/petal-toolkit.cjs443.js +1 -1
  517. package/dist/petal-toolkit.cjs444.js +1 -1
  518. package/dist/petal-toolkit.cjs445.js +1 -1
  519. package/dist/petal-toolkit.cjs446.js +1 -1
  520. package/dist/petal-toolkit.cjs447.js +1 -1
  521. package/dist/petal-toolkit.cjs448.js +1 -1
  522. package/dist/petal-toolkit.cjs449.js +1 -1
  523. package/dist/petal-toolkit.cjs45.js +1 -1
  524. package/dist/petal-toolkit.cjs450.js +1 -1
  525. package/dist/petal-toolkit.cjs451.js +1 -1
  526. package/dist/petal-toolkit.cjs452.js +1 -1
  527. package/dist/petal-toolkit.cjs453.js +1 -1
  528. package/dist/petal-toolkit.cjs454.js +1 -1
  529. package/dist/petal-toolkit.cjs455.js +1 -1
  530. package/dist/petal-toolkit.cjs456.js +1 -1
  531. package/dist/petal-toolkit.cjs457.js +1 -1
  532. package/dist/petal-toolkit.cjs458.js +1 -1
  533. package/dist/petal-toolkit.cjs459.js +1 -1
  534. package/dist/petal-toolkit.cjs46.js +1 -1
  535. package/dist/petal-toolkit.cjs460.js +1 -1
  536. package/dist/petal-toolkit.cjs461.js +1 -1
  537. package/dist/petal-toolkit.cjs462.js +1 -1
  538. package/dist/petal-toolkit.cjs463.js +1 -1
  539. package/dist/petal-toolkit.cjs464.js +1 -1
  540. package/dist/petal-toolkit.cjs465.js +1 -1
  541. package/dist/petal-toolkit.cjs466.js +1 -1
  542. package/dist/petal-toolkit.cjs467.js +1 -1
  543. package/dist/petal-toolkit.cjs468.js +1 -1
  544. package/dist/petal-toolkit.cjs469.js +1 -1
  545. package/dist/petal-toolkit.cjs47.js +1 -1
  546. package/dist/petal-toolkit.cjs470.js +1 -1
  547. package/dist/petal-toolkit.cjs471.js +1 -1
  548. package/dist/petal-toolkit.cjs472.js +1 -1
  549. package/dist/petal-toolkit.cjs473.js +1 -1
  550. package/dist/petal-toolkit.cjs474.js +1 -1
  551. package/dist/petal-toolkit.cjs475.js +1 -1
  552. package/dist/petal-toolkit.cjs476.js +1 -1
  553. package/dist/petal-toolkit.cjs477.js +1 -1
  554. package/dist/petal-toolkit.cjs478.js +1 -1
  555. package/dist/petal-toolkit.cjs479.js +1 -1
  556. package/dist/petal-toolkit.cjs48.js +1 -1
  557. package/dist/petal-toolkit.cjs48.js.map +1 -1
  558. package/dist/petal-toolkit.cjs480.js +1 -1
  559. package/dist/petal-toolkit.cjs481.js +1 -1
  560. package/dist/petal-toolkit.cjs482.js +1 -1
  561. package/dist/petal-toolkit.cjs483.js +1 -1
  562. package/dist/petal-toolkit.cjs484.js +1 -1
  563. package/dist/petal-toolkit.cjs485.js +1 -1
  564. package/dist/petal-toolkit.cjs486.js +1 -1
  565. package/dist/petal-toolkit.cjs487.js +1 -1
  566. package/dist/petal-toolkit.cjs488.js +1 -1
  567. package/dist/petal-toolkit.cjs489.js +1 -1
  568. package/dist/petal-toolkit.cjs49.js +1 -1
  569. package/dist/petal-toolkit.cjs490.js +1 -1
  570. package/dist/petal-toolkit.cjs491.js +1 -1
  571. package/dist/petal-toolkit.cjs492.js +1 -1
  572. package/dist/petal-toolkit.cjs493.js +1 -1
  573. package/dist/petal-toolkit.cjs494.js +1 -1
  574. package/dist/petal-toolkit.cjs495.js +1 -1
  575. package/dist/petal-toolkit.cjs496.js +1 -1
  576. package/dist/petal-toolkit.cjs497.js +1 -1
  577. package/dist/petal-toolkit.cjs498.js +1 -1
  578. package/dist/petal-toolkit.cjs499.js +1 -1
  579. package/dist/petal-toolkit.cjs5.js +1 -1
  580. package/dist/petal-toolkit.cjs50.js +1 -1
  581. package/dist/petal-toolkit.cjs500.js +1 -1
  582. package/dist/petal-toolkit.cjs501.js +1 -1
  583. package/dist/petal-toolkit.cjs502.js +1 -1
  584. package/dist/petal-toolkit.cjs503.js +1 -1
  585. package/dist/petal-toolkit.cjs504.js +1 -1
  586. package/dist/petal-toolkit.cjs505.js +1 -1
  587. package/dist/petal-toolkit.cjs506.js +1 -1
  588. package/dist/petal-toolkit.cjs507.js +1 -1
  589. package/dist/petal-toolkit.cjs508.js +1 -1
  590. package/dist/petal-toolkit.cjs509.js +1 -1
  591. package/dist/petal-toolkit.cjs51.js +1 -1
  592. package/dist/petal-toolkit.cjs51.js.map +1 -1
  593. package/dist/petal-toolkit.cjs510.js +1 -1
  594. package/dist/petal-toolkit.cjs511.js +1 -1
  595. package/dist/petal-toolkit.cjs512.js +1 -1
  596. package/dist/petal-toolkit.cjs513.js +1 -1
  597. package/dist/petal-toolkit.cjs514.js +1 -1
  598. package/dist/petal-toolkit.cjs515.js +1 -1
  599. package/dist/petal-toolkit.cjs516.js +1 -1
  600. package/dist/petal-toolkit.cjs517.js +1 -1
  601. package/dist/petal-toolkit.cjs518.js +1 -1
  602. package/dist/petal-toolkit.cjs519.js +1 -1
  603. package/dist/petal-toolkit.cjs52.js +1 -1
  604. package/dist/petal-toolkit.cjs520.js +1 -1
  605. package/dist/petal-toolkit.cjs521.js +1 -1
  606. package/dist/petal-toolkit.cjs522.js +1 -1
  607. package/dist/petal-toolkit.cjs523.js +1 -1
  608. package/dist/petal-toolkit.cjs524.js +1 -1
  609. package/dist/petal-toolkit.cjs525.js +1 -1
  610. package/dist/petal-toolkit.cjs526.js +1 -1
  611. package/dist/petal-toolkit.cjs527.js +1 -1
  612. package/dist/petal-toolkit.cjs528.js +1 -1
  613. package/dist/petal-toolkit.cjs529.js +1 -1
  614. package/dist/petal-toolkit.cjs530.js +1 -1
  615. package/dist/petal-toolkit.cjs531.js +1 -1
  616. package/dist/petal-toolkit.cjs532.js +1 -1
  617. package/dist/petal-toolkit.cjs533.js +1 -1
  618. package/dist/petal-toolkit.cjs534.js +1 -1
  619. package/dist/petal-toolkit.cjs535.js +1 -1
  620. package/dist/petal-toolkit.cjs536.js +1 -1
  621. package/dist/petal-toolkit.cjs537.js +1 -1
  622. package/dist/petal-toolkit.cjs538.js +1 -1
  623. package/dist/petal-toolkit.cjs539.js +1 -1
  624. package/dist/petal-toolkit.cjs540.js +1 -1
  625. package/dist/petal-toolkit.cjs541.js +1 -1
  626. package/dist/petal-toolkit.cjs542.js +1 -1
  627. package/dist/petal-toolkit.cjs543.js +1 -1
  628. package/dist/petal-toolkit.cjs544.js +1 -1
  629. package/dist/petal-toolkit.cjs545.js +1 -1
  630. package/dist/petal-toolkit.cjs546.js +1 -1
  631. package/dist/petal-toolkit.cjs547.js +1 -1
  632. package/dist/petal-toolkit.cjs548.js +1 -1
  633. package/dist/petal-toolkit.cjs549.js +1 -1
  634. package/dist/petal-toolkit.cjs550.js +1 -1
  635. package/dist/petal-toolkit.cjs551.js +1 -1
  636. package/dist/petal-toolkit.cjs552.js +1 -1
  637. package/dist/petal-toolkit.cjs553.js +1 -1
  638. package/dist/petal-toolkit.cjs554.js +1 -1
  639. package/dist/petal-toolkit.cjs555.js +1 -1
  640. package/dist/petal-toolkit.cjs556.js +1 -1
  641. package/dist/petal-toolkit.cjs557.js +1 -1
  642. package/dist/petal-toolkit.cjs558.js +1 -1
  643. package/dist/petal-toolkit.cjs559.js +1 -1
  644. package/dist/petal-toolkit.cjs560.js +1 -1
  645. package/dist/petal-toolkit.cjs561.js +1 -1
  646. package/dist/petal-toolkit.cjs562.js +1 -1
  647. package/dist/petal-toolkit.cjs563.js +1 -1
  648. package/dist/petal-toolkit.cjs564.js +1 -1
  649. package/dist/petal-toolkit.cjs565.js +1 -1
  650. package/dist/petal-toolkit.cjs566.js +1 -1
  651. package/dist/petal-toolkit.cjs567.js +1 -1
  652. package/dist/petal-toolkit.cjs568.js +1 -1
  653. package/dist/petal-toolkit.cjs569.js +1 -1
  654. package/dist/petal-toolkit.cjs570.js +1 -1
  655. package/dist/petal-toolkit.cjs571.js +1 -1
  656. package/dist/petal-toolkit.cjs572.js +1 -1
  657. package/dist/petal-toolkit.cjs573.js +1 -1
  658. package/dist/petal-toolkit.cjs574.js +1 -1
  659. package/dist/petal-toolkit.cjs575.js +1 -1
  660. package/dist/petal-toolkit.cjs576.js +1 -1
  661. package/dist/petal-toolkit.cjs577.js +1 -1
  662. package/dist/petal-toolkit.cjs578.js +1 -1
  663. package/dist/petal-toolkit.cjs579.js +1 -1
  664. package/dist/petal-toolkit.cjs580.js +1 -1
  665. package/dist/petal-toolkit.cjs581.js +1 -1
  666. package/dist/petal-toolkit.cjs582.js +1 -1
  667. package/dist/petal-toolkit.cjs583.js +1 -1
  668. package/dist/petal-toolkit.cjs584.js +1 -1
  669. package/dist/petal-toolkit.cjs585.js +1 -1
  670. package/dist/petal-toolkit.cjs586.js +1 -1
  671. package/dist/petal-toolkit.cjs587.js +1 -1
  672. package/dist/petal-toolkit.cjs588.js +1 -1
  673. package/dist/petal-toolkit.cjs589.js +1 -1
  674. package/dist/petal-toolkit.cjs59.js +1 -1
  675. package/dist/petal-toolkit.cjs59.js.map +1 -1
  676. package/dist/petal-toolkit.cjs590.js +1 -1
  677. package/dist/petal-toolkit.cjs591.js +1 -1
  678. package/dist/petal-toolkit.cjs592.js +1 -1
  679. package/dist/petal-toolkit.cjs593.js +1 -1
  680. package/dist/petal-toolkit.cjs594.js +1 -1
  681. package/dist/petal-toolkit.cjs595.js +1 -1
  682. package/dist/petal-toolkit.cjs596.js +1 -1
  683. package/dist/petal-toolkit.cjs597.js +1 -1
  684. package/dist/petal-toolkit.cjs598.js +1 -1
  685. package/dist/petal-toolkit.cjs599.js +1 -1
  686. package/dist/petal-toolkit.cjs6.js +1 -1
  687. package/dist/petal-toolkit.cjs60.js +1 -1
  688. package/dist/petal-toolkit.cjs60.js.map +1 -1
  689. package/dist/petal-toolkit.cjs600.js +1 -1
  690. package/dist/petal-toolkit.cjs601.js +1 -1
  691. package/dist/petal-toolkit.cjs602.js +1 -1
  692. package/dist/petal-toolkit.cjs603.js +1 -1
  693. package/dist/petal-toolkit.cjs604.js +1 -1
  694. package/dist/petal-toolkit.cjs605.js +1 -1
  695. package/dist/petal-toolkit.cjs606.js +1 -1
  696. package/dist/petal-toolkit.cjs607.js +1 -1
  697. package/dist/petal-toolkit.cjs608.js +1 -1
  698. package/dist/petal-toolkit.cjs609.js +1 -1
  699. package/dist/petal-toolkit.cjs61.js +1 -1
  700. package/dist/petal-toolkit.cjs61.js.map +1 -1
  701. package/dist/petal-toolkit.cjs610.js +1 -1
  702. package/dist/petal-toolkit.cjs611.js +1 -1
  703. package/dist/petal-toolkit.cjs612.js +1 -1
  704. package/dist/petal-toolkit.cjs613.js +1 -1
  705. package/dist/petal-toolkit.cjs614.js +1 -1
  706. package/dist/petal-toolkit.cjs615.js +1 -1
  707. package/dist/petal-toolkit.cjs616.js +1 -1
  708. package/dist/petal-toolkit.cjs617.js +1 -1
  709. package/dist/petal-toolkit.cjs618.js +1 -1
  710. package/dist/petal-toolkit.cjs619.js +1 -1
  711. package/dist/petal-toolkit.cjs62.js +1 -1
  712. package/dist/petal-toolkit.cjs62.js.map +1 -1
  713. package/dist/petal-toolkit.cjs620.js +1 -1
  714. package/dist/petal-toolkit.cjs621.js +1 -1
  715. package/dist/petal-toolkit.cjs622.js +1 -1
  716. package/dist/petal-toolkit.cjs623.js +1 -1
  717. package/dist/petal-toolkit.cjs624.js +1 -1
  718. package/dist/petal-toolkit.cjs625.js +1 -1
  719. package/dist/petal-toolkit.cjs626.js +1 -1
  720. package/dist/petal-toolkit.cjs627.js +1 -1
  721. package/dist/petal-toolkit.cjs628.js +1 -1
  722. package/dist/petal-toolkit.cjs629.js +1 -1
  723. package/dist/petal-toolkit.cjs63.js +1 -1
  724. package/dist/petal-toolkit.cjs63.js.map +1 -1
  725. package/dist/petal-toolkit.cjs630.js +1 -1
  726. package/dist/petal-toolkit.cjs631.js +1 -1
  727. package/dist/petal-toolkit.cjs632.js +1 -1
  728. package/dist/petal-toolkit.cjs633.js +1 -1
  729. package/dist/petal-toolkit.cjs634.js +1 -1
  730. package/dist/petal-toolkit.cjs635.js +1 -1
  731. package/dist/petal-toolkit.cjs636.js +1 -1
  732. package/dist/petal-toolkit.cjs637.js +1 -1
  733. package/dist/petal-toolkit.cjs638.js +1 -1
  734. package/dist/petal-toolkit.cjs639.js +1 -1
  735. package/dist/petal-toolkit.cjs640.js +1 -1
  736. package/dist/petal-toolkit.cjs641.js +1 -1
  737. package/dist/petal-toolkit.cjs642.js +1 -1
  738. package/dist/petal-toolkit.cjs643.js +1 -1
  739. package/dist/petal-toolkit.cjs644.js +1 -1
  740. package/dist/petal-toolkit.cjs645.js +1 -1
  741. package/dist/petal-toolkit.cjs646.js +1 -1
  742. package/dist/petal-toolkit.cjs647.js +1 -1
  743. package/dist/petal-toolkit.cjs648.js +1 -1
  744. package/dist/petal-toolkit.cjs649.js +1 -1
  745. package/dist/petal-toolkit.cjs650.js +1 -1
  746. package/dist/petal-toolkit.cjs651.js +1 -1
  747. package/dist/petal-toolkit.cjs652.js +1 -1
  748. package/dist/petal-toolkit.cjs653.js +1 -1
  749. package/dist/petal-toolkit.cjs654.js +1 -1
  750. package/dist/petal-toolkit.cjs655.js +1 -1
  751. package/dist/petal-toolkit.cjs656.js +1 -1
  752. package/dist/petal-toolkit.cjs657.js +1 -1
  753. package/dist/petal-toolkit.cjs658.js +1 -1
  754. package/dist/petal-toolkit.cjs659.js +1 -1
  755. package/dist/petal-toolkit.cjs66.js +1 -1
  756. package/dist/petal-toolkit.cjs660.js +1 -1
  757. package/dist/petal-toolkit.cjs661.js +1 -1
  758. package/dist/petal-toolkit.cjs662.js +1 -1
  759. package/dist/petal-toolkit.cjs663.js +1 -1
  760. package/dist/petal-toolkit.cjs664.js +1 -1
  761. package/dist/petal-toolkit.cjs665.js +1 -1
  762. package/dist/petal-toolkit.cjs666.js +1 -1
  763. package/dist/petal-toolkit.cjs667.js +1 -1
  764. package/dist/petal-toolkit.cjs668.js +1 -1
  765. package/dist/petal-toolkit.cjs669.js +1 -1
  766. package/dist/petal-toolkit.cjs67.js +1 -1
  767. package/dist/petal-toolkit.cjs670.js +1 -1
  768. package/dist/petal-toolkit.cjs671.js +1 -1
  769. package/dist/petal-toolkit.cjs672.js +1 -1
  770. package/dist/petal-toolkit.cjs673.js +1 -1
  771. package/dist/petal-toolkit.cjs674.js +1 -1
  772. package/dist/petal-toolkit.cjs675.js +1 -1
  773. package/dist/petal-toolkit.cjs675.js.map +1 -1
  774. package/dist/petal-toolkit.cjs676.js +1 -1
  775. package/dist/petal-toolkit.cjs676.js.map +1 -1
  776. package/dist/petal-toolkit.cjs677.js +1 -1
  777. package/dist/petal-toolkit.cjs677.js.map +1 -1
  778. package/dist/petal-toolkit.cjs678.js +1 -1
  779. package/dist/petal-toolkit.cjs68.js +1 -1
  780. package/dist/petal-toolkit.cjs687.js +1 -1
  781. package/dist/petal-toolkit.cjs687.js.map +1 -1
  782. package/dist/petal-toolkit.cjs688.js +1 -1
  783. package/dist/petal-toolkit.cjs688.js.map +1 -1
  784. package/dist/petal-toolkit.cjs689.js +1 -1
  785. package/dist/petal-toolkit.cjs689.js.map +1 -1
  786. package/dist/petal-toolkit.cjs69.js +1 -1
  787. package/dist/petal-toolkit.cjs690.js +1 -1
  788. package/dist/petal-toolkit.cjs690.js.map +1 -1
  789. package/dist/petal-toolkit.cjs692.js +1 -1
  790. package/dist/petal-toolkit.cjs693.js +1 -1
  791. package/dist/petal-toolkit.cjs7.js +1 -1
  792. package/dist/petal-toolkit.cjs70.js +1 -1
  793. package/dist/petal-toolkit.cjs71.js +1 -1
  794. package/dist/petal-toolkit.cjs711.js +1 -1
  795. package/dist/petal-toolkit.cjs712.js +1 -1
  796. package/dist/petal-toolkit.cjs72.js +1 -1
  797. package/dist/petal-toolkit.cjs720.js +1 -1
  798. package/dist/petal-toolkit.cjs720.js.map +1 -1
  799. package/dist/petal-toolkit.cjs721.js +1 -1
  800. package/dist/petal-toolkit.cjs721.js.map +1 -1
  801. package/dist/petal-toolkit.cjs724.js +1 -1
  802. package/dist/petal-toolkit.cjs724.js.map +1 -1
  803. package/dist/petal-toolkit.cjs725.js +1 -1
  804. package/dist/petal-toolkit.cjs725.js.map +1 -1
  805. package/dist/petal-toolkit.cjs726.js +1 -1
  806. package/dist/petal-toolkit.cjs726.js.map +1 -1
  807. package/dist/petal-toolkit.cjs727.js +1 -1
  808. package/dist/petal-toolkit.cjs727.js.map +1 -1
  809. package/dist/petal-toolkit.cjs73.js +1 -1
  810. package/dist/petal-toolkit.cjs731.js +1 -1
  811. package/dist/petal-toolkit.cjs731.js.map +1 -1
  812. package/dist/petal-toolkit.cjs732.js +1 -1
  813. package/dist/petal-toolkit.cjs732.js.map +1 -1
  814. package/dist/petal-toolkit.cjs735.js +1 -1
  815. package/dist/petal-toolkit.cjs736.js +1 -1
  816. package/dist/petal-toolkit.cjs737.js +1 -1
  817. package/dist/petal-toolkit.cjs739.js +1 -1
  818. package/dist/petal-toolkit.cjs739.js.map +1 -1
  819. package/dist/petal-toolkit.cjs74.js +1 -1
  820. package/dist/petal-toolkit.cjs740.js +1 -1
  821. package/dist/petal-toolkit.cjs740.js.map +1 -1
  822. package/dist/petal-toolkit.cjs744.js +1 -1
  823. package/dist/petal-toolkit.cjs746.js +1 -1
  824. package/dist/petal-toolkit.cjs747.js +1 -1
  825. package/dist/petal-toolkit.cjs75.js +1 -1
  826. package/dist/petal-toolkit.cjs751.js +1 -1
  827. package/dist/petal-toolkit.cjs753.js +1 -1
  828. package/dist/petal-toolkit.cjs755.js +1 -1
  829. package/dist/petal-toolkit.cjs756.js +1 -1
  830. package/dist/petal-toolkit.cjs757.js +1 -1
  831. package/dist/petal-toolkit.cjs757.js.map +1 -1
  832. package/dist/petal-toolkit.cjs758.js +1 -1
  833. package/dist/petal-toolkit.cjs758.js.map +1 -1
  834. package/dist/petal-toolkit.cjs76.js +1 -1
  835. package/dist/petal-toolkit.cjs766.js +1 -1
  836. package/dist/petal-toolkit.cjs767.js +1 -1
  837. package/dist/petal-toolkit.cjs769.js +1 -1
  838. package/dist/petal-toolkit.cjs769.js.map +1 -1
  839. package/dist/petal-toolkit.cjs77.js +1 -1
  840. package/dist/petal-toolkit.cjs770.js +1 -1
  841. package/dist/petal-toolkit.cjs770.js.map +1 -1
  842. package/dist/petal-toolkit.cjs78.js +1 -1
  843. package/dist/petal-toolkit.cjs79.js +1 -1
  844. package/dist/petal-toolkit.cjs791.js +1 -1
  845. package/dist/petal-toolkit.cjs792.js +3 -1
  846. package/dist/petal-toolkit.cjs792.js.map +1 -1
  847. package/dist/petal-toolkit.cjs793.js +1 -3
  848. package/dist/petal-toolkit.cjs793.js.map +1 -1
  849. package/dist/petal-toolkit.cjs8.js +1 -1
  850. package/dist/petal-toolkit.cjs80.js +1 -1
  851. package/dist/petal-toolkit.cjs81.js +1 -1
  852. package/dist/petal-toolkit.cjs82.js +1 -1
  853. package/dist/petal-toolkit.cjs828.js +1 -1
  854. package/dist/petal-toolkit.cjs829.js +1 -1
  855. package/dist/petal-toolkit.cjs83.js +1 -1
  856. package/dist/petal-toolkit.cjs84.js +1 -1
  857. package/dist/petal-toolkit.cjs85.js +1 -1
  858. package/dist/petal-toolkit.cjs852.js +5 -1
  859. package/dist/petal-toolkit.cjs852.js.map +1 -1
  860. package/dist/petal-toolkit.cjs853.js +22 -5
  861. package/dist/petal-toolkit.cjs853.js.map +1 -1
  862. package/dist/petal-toolkit.cjs854.js +1 -22
  863. package/dist/petal-toolkit.cjs854.js.map +1 -1
  864. package/dist/petal-toolkit.cjs855.js +1 -1
  865. package/dist/petal-toolkit.cjs855.js.map +1 -1
  866. package/dist/petal-toolkit.cjs856.js +1 -1
  867. package/dist/petal-toolkit.cjs856.js.map +1 -1
  868. package/dist/petal-toolkit.cjs857.js +1 -1
  869. package/dist/petal-toolkit.cjs857.js.map +1 -1
  870. package/dist/petal-toolkit.cjs859.js +1 -1
  871. package/dist/petal-toolkit.cjs859.js.map +1 -1
  872. package/dist/petal-toolkit.cjs86.js +1 -1
  873. package/dist/petal-toolkit.cjs860.js +1 -1
  874. package/dist/petal-toolkit.cjs860.js.map +1 -1
  875. package/dist/petal-toolkit.cjs864.js +1 -1
  876. package/dist/petal-toolkit.cjs864.js.map +1 -1
  877. package/dist/petal-toolkit.cjs865.js +1 -1
  878. package/dist/petal-toolkit.cjs865.js.map +1 -1
  879. package/dist/petal-toolkit.cjs866.js +2 -1
  880. package/dist/petal-toolkit.cjs866.js.map +1 -1
  881. package/dist/petal-toolkit.cjs867.js +1 -2
  882. package/dist/petal-toolkit.cjs867.js.map +1 -1
  883. package/dist/petal-toolkit.cjs869.js +1 -1
  884. package/dist/petal-toolkit.cjs869.js.map +1 -1
  885. package/dist/petal-toolkit.cjs87.js +1 -1
  886. package/dist/petal-toolkit.cjs870.js +1 -1
  887. package/dist/petal-toolkit.cjs870.js.map +1 -1
  888. package/dist/petal-toolkit.cjs871.js +1 -1
  889. package/dist/petal-toolkit.cjs871.js.map +1 -1
  890. package/dist/petal-toolkit.cjs872.js +1 -1
  891. package/dist/petal-toolkit.cjs872.js.map +1 -1
  892. package/dist/petal-toolkit.cjs873.js +2 -1
  893. package/dist/petal-toolkit.cjs873.js.map +1 -1
  894. package/dist/petal-toolkit.cjs874.js +1 -2
  895. package/dist/petal-toolkit.cjs874.js.map +1 -1
  896. package/dist/petal-toolkit.cjs875.js +1 -1
  897. package/dist/petal-toolkit.cjs875.js.map +1 -1
  898. package/dist/petal-toolkit.cjs876.js +1 -1
  899. package/dist/petal-toolkit.cjs876.js.map +1 -1
  900. package/dist/petal-toolkit.cjs879.js +1 -1
  901. package/dist/petal-toolkit.cjs879.js.map +1 -1
  902. package/dist/petal-toolkit.cjs88.js +1 -1
  903. package/dist/petal-toolkit.cjs880.js +1 -1
  904. package/dist/petal-toolkit.cjs880.js.map +1 -1
  905. package/dist/petal-toolkit.cjs882.js +1 -1
  906. package/dist/petal-toolkit.cjs884.js +1 -1
  907. package/dist/petal-toolkit.cjs885.js +1 -1
  908. package/dist/petal-toolkit.cjs887.js +1 -1
  909. package/dist/petal-toolkit.cjs888.js +1 -1
  910. package/dist/petal-toolkit.cjs889.js +1 -1
  911. package/dist/petal-toolkit.cjs89.js +1 -1
  912. package/dist/petal-toolkit.cjs890.js +1 -1
  913. package/dist/petal-toolkit.cjs891.js +1 -1
  914. package/dist/petal-toolkit.cjs895.js +1 -1
  915. package/dist/petal-toolkit.cjs897.js +1 -1
  916. package/dist/petal-toolkit.cjs898.js +1 -1
  917. package/dist/petal-toolkit.cjs899.js +1 -1
  918. package/dist/petal-toolkit.cjs9.js +1 -1
  919. package/dist/petal-toolkit.cjs90.js +1 -1
  920. package/dist/petal-toolkit.cjs901.js +1 -1
  921. package/dist/petal-toolkit.cjs904.js +1 -1
  922. package/dist/petal-toolkit.cjs905.js +1 -1
  923. package/dist/petal-toolkit.cjs906.js +1 -1
  924. package/dist/petal-toolkit.cjs907.js +1 -1
  925. package/dist/petal-toolkit.cjs909.js +1 -1
  926. package/dist/petal-toolkit.cjs909.js.map +1 -1
  927. package/dist/petal-toolkit.cjs91.js +1 -1
  928. package/dist/petal-toolkit.cjs910.js +1 -1
  929. package/dist/petal-toolkit.cjs910.js.map +1 -1
  930. package/dist/petal-toolkit.cjs911.js +1 -1
  931. package/dist/petal-toolkit.cjs912.js +1 -1
  932. package/dist/petal-toolkit.cjs92.js +1 -1
  933. package/dist/petal-toolkit.cjs924.js +1 -1
  934. package/dist/petal-toolkit.cjs925.js +1 -1
  935. package/dist/petal-toolkit.cjs93.js +1 -1
  936. package/dist/petal-toolkit.cjs94.js +1 -1
  937. package/dist/petal-toolkit.cjs95.js +1 -1
  938. package/dist/petal-toolkit.cjs957.js +1 -1
  939. package/dist/petal-toolkit.cjs957.js.map +1 -1
  940. package/dist/petal-toolkit.cjs958.js +1 -1
  941. package/dist/petal-toolkit.cjs958.js.map +1 -1
  942. package/dist/petal-toolkit.cjs96.js +1 -1
  943. package/dist/petal-toolkit.cjs965.js +1 -1
  944. package/dist/petal-toolkit.cjs965.js.map +1 -1
  945. package/dist/petal-toolkit.cjs966.js +1 -1
  946. package/dist/petal-toolkit.cjs966.js.map +1 -1
  947. package/dist/petal-toolkit.cjs97.js +1 -1
  948. package/dist/petal-toolkit.cjs98.js +1 -1
  949. package/dist/petal-toolkit.cjs99.js +1 -1
  950. package/dist/petal-toolkit.es10.js +3 -3
  951. package/dist/petal-toolkit.es100.js +1 -1
  952. package/dist/petal-toolkit.es1002.js +2 -2
  953. package/dist/petal-toolkit.es1003.js +2 -2
  954. package/dist/petal-toolkit.es1004.js +2 -2
  955. package/dist/petal-toolkit.es1005.js +2 -2
  956. package/dist/petal-toolkit.es101.js +1 -1
  957. package/dist/petal-toolkit.es1010.js +2 -2
  958. package/dist/petal-toolkit.es1014.js +2 -2
  959. package/dist/petal-toolkit.es1015.js +2 -2
  960. package/dist/petal-toolkit.es1017.js +2 -2
  961. package/dist/petal-toolkit.es1018.js +2 -2
  962. package/dist/petal-toolkit.es102.js +1 -1
  963. package/dist/petal-toolkit.es1020.js +2 -2
  964. package/dist/petal-toolkit.es1021.js +2 -2
  965. package/dist/petal-toolkit.es1024.js +2 -2
  966. package/dist/petal-toolkit.es1025.js +2 -2
  967. package/dist/petal-toolkit.es1026.js +2 -2
  968. package/dist/petal-toolkit.es1027.js +2 -2
  969. package/dist/petal-toolkit.es1028.js +2 -2
  970. package/dist/petal-toolkit.es1029.js +2 -2
  971. package/dist/petal-toolkit.es103.js +1 -1
  972. package/dist/petal-toolkit.es1030.js +2 -2
  973. package/dist/petal-toolkit.es1032.js +2 -2
  974. package/dist/petal-toolkit.es1035.js +2 -2
  975. package/dist/petal-toolkit.es1037.js +2 -2
  976. package/dist/petal-toolkit.es1038.js +2 -2
  977. package/dist/petal-toolkit.es104.js +1 -1
  978. package/dist/petal-toolkit.es1042.js +2 -2
  979. package/dist/petal-toolkit.es1043.js +2 -2
  980. package/dist/petal-toolkit.es1045.js +2 -2
  981. package/dist/petal-toolkit.es1046.js +2 -2
  982. package/dist/petal-toolkit.es1047.js +2 -2
  983. package/dist/petal-toolkit.es1048.js +2 -2
  984. package/dist/petal-toolkit.es1049.js +2 -2
  985. package/dist/petal-toolkit.es105.js +1 -1
  986. package/dist/petal-toolkit.es1051.js +49 -2
  987. package/dist/petal-toolkit.es1051.js.map +1 -1
  988. package/dist/petal-toolkit.es1052.js +2 -49
  989. package/dist/petal-toolkit.es1052.js.map +1 -1
  990. package/dist/petal-toolkit.es1056.js +2 -2
  991. package/dist/petal-toolkit.es1057.js +2 -2
  992. package/dist/petal-toolkit.es1058.js +2 -2
  993. package/dist/petal-toolkit.es1059.js +2 -2
  994. package/dist/petal-toolkit.es106.js +2 -2
  995. package/dist/petal-toolkit.es1062.js +50 -2
  996. package/dist/petal-toolkit.es1062.js.map +1 -1
  997. package/dist/petal-toolkit.es1063.js +2 -50
  998. package/dist/petal-toolkit.es1063.js.map +1 -1
  999. package/dist/petal-toolkit.es1065.js +2 -2
  1000. package/dist/petal-toolkit.es1066.js +2 -2
  1001. package/dist/petal-toolkit.es107.js +2 -2
  1002. package/dist/petal-toolkit.es1070.js +2 -2
  1003. package/dist/petal-toolkit.es1075.js +2 -2
  1004. package/dist/petal-toolkit.es1076.js +2 -2
  1005. package/dist/petal-toolkit.es1078.js +2 -2
  1006. package/dist/petal-toolkit.es1079.js +2 -2
  1007. package/dist/petal-toolkit.es108.js +1 -1
  1008. package/dist/petal-toolkit.es1083.js +2 -2
  1009. package/dist/petal-toolkit.es1084.js +2 -2
  1010. package/dist/petal-toolkit.es109.js +2 -2
  1011. package/dist/petal-toolkit.es1091.js +2 -2
  1012. package/dist/petal-toolkit.es1092.js +2 -2
  1013. package/dist/petal-toolkit.es1096.js +2 -2
  1014. package/dist/petal-toolkit.es1097.js +2 -2
  1015. package/dist/petal-toolkit.es1098.js +2 -2
  1016. package/dist/petal-toolkit.es1099.js +2 -2
  1017. package/dist/petal-toolkit.es11.js +3 -3
  1018. package/dist/petal-toolkit.es110.js +3 -3
  1019. package/dist/petal-toolkit.es1104.js +2 -2
  1020. package/dist/petal-toolkit.es1105.js +2 -2
  1021. package/dist/petal-toolkit.es1106.js +2 -2
  1022. package/dist/petal-toolkit.es111.js +2 -2
  1023. package/dist/petal-toolkit.es1110.js +2 -2
  1024. package/dist/petal-toolkit.es1117.js +2 -2
  1025. package/dist/petal-toolkit.es1119.js +2 -2
  1026. package/dist/petal-toolkit.es112.js +1 -1
  1027. package/dist/petal-toolkit.es1120.js +2 -2
  1028. package/dist/petal-toolkit.es1122.js +2 -2
  1029. package/dist/petal-toolkit.es1123.js +2 -2
  1030. package/dist/petal-toolkit.es1124.js +2 -2
  1031. package/dist/petal-toolkit.es1127.js +2 -2
  1032. package/dist/petal-toolkit.es1128.js +10 -2
  1033. package/dist/petal-toolkit.es1128.js.map +1 -1
  1034. package/dist/petal-toolkit.es1129.js +2 -10
  1035. package/dist/petal-toolkit.es1129.js.map +1 -1
  1036. package/dist/petal-toolkit.es113.js +1 -1
  1037. package/dist/petal-toolkit.es1130.js +10 -2
  1038. package/dist/petal-toolkit.es1130.js.map +1 -1
  1039. package/dist/petal-toolkit.es1131.js +2 -10
  1040. package/dist/petal-toolkit.es1131.js.map +1 -1
  1041. package/dist/petal-toolkit.es1132.js +10 -2
  1042. package/dist/petal-toolkit.es1132.js.map +1 -1
  1043. package/dist/petal-toolkit.es1133.js +7 -7
  1044. package/dist/petal-toolkit.es1133.js.map +1 -1
  1045. package/dist/petal-toolkit.es1134.js +2 -10
  1046. package/dist/petal-toolkit.es1134.js.map +1 -1
  1047. package/dist/petal-toolkit.es1135.js +2 -2
  1048. package/dist/petal-toolkit.es1136.js +2 -2
  1049. package/dist/petal-toolkit.es1138.js +2 -2
  1050. package/dist/petal-toolkit.es1139.js +10 -2
  1051. package/dist/petal-toolkit.es1139.js.map +1 -1
  1052. package/dist/petal-toolkit.es114.js +2 -2
  1053. package/dist/petal-toolkit.es1140.js +2 -10
  1054. package/dist/petal-toolkit.es1140.js.map +1 -1
  1055. package/dist/petal-toolkit.es1143.js +2 -2
  1056. package/dist/petal-toolkit.es1145.js +2 -2
  1057. package/dist/petal-toolkit.es1146.js +2 -2
  1058. package/dist/petal-toolkit.es1147.js +2 -2
  1059. package/dist/petal-toolkit.es1148.js +2 -2
  1060. package/dist/petal-toolkit.es1149.js +2 -2
  1061. package/dist/petal-toolkit.es115.js +1 -1
  1062. package/dist/petal-toolkit.es1151.js +2 -2
  1063. package/dist/petal-toolkit.es1152.js +2 -2
  1064. package/dist/petal-toolkit.es1153.js +2 -2
  1065. package/dist/petal-toolkit.es1154.js +4742 -2
  1066. package/dist/petal-toolkit.es1154.js.map +1 -1
  1067. package/dist/petal-toolkit.es1155.js +2 -4742
  1068. package/dist/petal-toolkit.es1155.js.map +1 -1
  1069. package/dist/petal-toolkit.es1156.js +2 -2
  1070. package/dist/petal-toolkit.es1158.js +2 -2
  1071. package/dist/petal-toolkit.es116.js +1 -1
  1072. package/dist/petal-toolkit.es1160.js +2 -2
  1073. package/dist/petal-toolkit.es1161.js +2 -2
  1074. package/dist/petal-toolkit.es1162.js +2 -2
  1075. package/dist/petal-toolkit.es1163.js +12 -2
  1076. package/dist/petal-toolkit.es1163.js.map +1 -1
  1077. package/dist/petal-toolkit.es1164.js +2 -12
  1078. package/dist/petal-toolkit.es1164.js.map +1 -1
  1079. package/dist/petal-toolkit.es1165.js +2 -2
  1080. package/dist/petal-toolkit.es1166.js +2 -2
  1081. package/dist/petal-toolkit.es1167.js +2 -2
  1082. package/dist/petal-toolkit.es1169.js +2 -2
  1083. package/dist/petal-toolkit.es117.js +1 -1
  1084. package/dist/petal-toolkit.es1170.js +2 -2
  1085. package/dist/petal-toolkit.es1171.js +10 -2
  1086. package/dist/petal-toolkit.es1171.js.map +1 -1
  1087. package/dist/petal-toolkit.es1172.js +2 -10
  1088. package/dist/petal-toolkit.es1172.js.map +1 -1
  1089. package/dist/petal-toolkit.es1173.js +2 -2
  1090. package/dist/petal-toolkit.es1175.js +2 -2
  1091. package/dist/petal-toolkit.es1177.js +10 -2
  1092. package/dist/petal-toolkit.es1177.js.map +1 -1
  1093. package/dist/petal-toolkit.es1178.js +2 -10
  1094. package/dist/petal-toolkit.es1178.js.map +1 -1
  1095. package/dist/petal-toolkit.es1179.js +2 -2
  1096. package/dist/petal-toolkit.es118.js +2 -2
  1097. package/dist/petal-toolkit.es1180.js +2 -2
  1098. package/dist/petal-toolkit.es1184.js +2 -2
  1099. package/dist/petal-toolkit.es1185.js +2 -2
  1100. package/dist/petal-toolkit.es119.js +1 -1
  1101. package/dist/petal-toolkit.es1190.js +2 -2
  1102. package/dist/petal-toolkit.es1191.js +2 -2
  1103. package/dist/petal-toolkit.es1199.js +2 -2
  1104. package/dist/petal-toolkit.es12.js +3 -3
  1105. package/dist/petal-toolkit.es120.js +1 -1
  1106. package/dist/petal-toolkit.es1200.js +2 -2
  1107. package/dist/petal-toolkit.es1201.js +2 -2
  1108. package/dist/petal-toolkit.es1202.js +2 -2
  1109. package/dist/petal-toolkit.es1203.js +2 -2
  1110. package/dist/petal-toolkit.es1205.js +2 -2
  1111. package/dist/petal-toolkit.es1206.js +2 -2
  1112. package/dist/petal-toolkit.es1207.js +2 -2
  1113. package/dist/petal-toolkit.es1208.js +2 -2
  1114. package/dist/petal-toolkit.es1209.js +2 -2
  1115. package/dist/petal-toolkit.es121.js +2 -2
  1116. package/dist/petal-toolkit.es1210.js +2 -2
  1117. package/dist/petal-toolkit.es1211.js +2 -2
  1118. package/dist/petal-toolkit.es1212.js +2 -2
  1119. package/dist/petal-toolkit.es1215.js +2 -2
  1120. package/dist/petal-toolkit.es1216.js +2 -2
  1121. package/dist/petal-toolkit.es1217.js +2 -2
  1122. package/dist/petal-toolkit.es1218.js +2 -2
  1123. package/dist/petal-toolkit.es122.js +1 -1
  1124. package/dist/petal-toolkit.es1220.js +26 -2
  1125. package/dist/petal-toolkit.es1220.js.map +1 -1
  1126. package/dist/petal-toolkit.es1221.js +2 -26
  1127. package/dist/petal-toolkit.es1221.js.map +1 -1
  1128. package/dist/petal-toolkit.es1222.js +2 -2
  1129. package/dist/petal-toolkit.es1223.js +2 -2
  1130. package/dist/petal-toolkit.es1224.js +2 -2
  1131. package/dist/petal-toolkit.es1225.js +2 -2
  1132. package/dist/petal-toolkit.es1226.js +2 -2
  1133. package/dist/petal-toolkit.es1227.js +2 -2
  1134. package/dist/petal-toolkit.es1228.js +2 -2
  1135. package/dist/petal-toolkit.es1229.js +2 -2
  1136. package/dist/petal-toolkit.es123.js +1 -1
  1137. package/dist/petal-toolkit.es1231.js +2 -2
  1138. package/dist/petal-toolkit.es1232.js +2 -2
  1139. package/dist/petal-toolkit.es1233.js +2 -2
  1140. package/dist/petal-toolkit.es1235.js +2 -2
  1141. package/dist/petal-toolkit.es1236.js +2 -2
  1142. package/dist/petal-toolkit.es1239.js +2 -2
  1143. package/dist/petal-toolkit.es124.js +1 -1
  1144. package/dist/petal-toolkit.es1240.js +2 -2
  1145. package/dist/petal-toolkit.es1242.js +2 -2
  1146. package/dist/petal-toolkit.es1243.js +2 -2
  1147. package/dist/petal-toolkit.es1246.js +2 -2
  1148. package/dist/petal-toolkit.es1247.js +2 -2
  1149. package/dist/petal-toolkit.es1248.js +2 -2
  1150. package/dist/petal-toolkit.es125.js +1 -1
  1151. package/dist/petal-toolkit.es1251.js +2 -2
  1152. package/dist/petal-toolkit.es1252.js +2 -2
  1153. package/dist/petal-toolkit.es1257.js +2 -2
  1154. package/dist/petal-toolkit.es1258.js +2 -2
  1155. package/dist/petal-toolkit.es1259.js +2 -2
  1156. package/dist/petal-toolkit.es126.js +1 -1
  1157. package/dist/petal-toolkit.es1260.js +2 -2
  1158. package/dist/petal-toolkit.es1261.js +2 -2
  1159. package/dist/petal-toolkit.es1263.js +2 -2
  1160. package/dist/petal-toolkit.es1265.js +2 -2
  1161. package/dist/petal-toolkit.es1267.js +2 -2
  1162. package/dist/petal-toolkit.es1269.js +2 -2
  1163. package/dist/petal-toolkit.es127.js +1 -1
  1164. package/dist/petal-toolkit.es1270.js +2 -2
  1165. package/dist/petal-toolkit.es1274.js +2 -2
  1166. package/dist/petal-toolkit.es1275.js +2 -2
  1167. package/dist/petal-toolkit.es1276.js +2 -2
  1168. package/dist/petal-toolkit.es1277.js +2 -2
  1169. package/dist/petal-toolkit.es1278.js +2 -2
  1170. package/dist/petal-toolkit.es128.js +1 -1
  1171. package/dist/petal-toolkit.es1280.js +2 -2
  1172. package/dist/petal-toolkit.es1281.js +2 -2
  1173. package/dist/petal-toolkit.es1282.js +2 -2
  1174. package/dist/petal-toolkit.es1283.js +2 -2
  1175. package/dist/petal-toolkit.es1285.js +2 -2
  1176. package/dist/petal-toolkit.es1286.js +2 -2
  1177. package/dist/petal-toolkit.es1287.js +2 -2
  1178. package/dist/petal-toolkit.es129.js +1 -1
  1179. package/dist/petal-toolkit.es1290.js +2 -2
  1180. package/dist/petal-toolkit.es1291.js +2 -2
  1181. package/dist/petal-toolkit.es1292.js +2 -2
  1182. package/dist/petal-toolkit.es1294.js +2 -2
  1183. package/dist/petal-toolkit.es1295.js +2 -2
  1184. package/dist/petal-toolkit.es1296.js +2 -2
  1185. package/dist/petal-toolkit.es1297.js +2 -2
  1186. package/dist/petal-toolkit.es1298.js +2 -2
  1187. package/dist/petal-toolkit.es1299.js +2 -2
  1188. package/dist/petal-toolkit.es13.js +2 -2
  1189. package/dist/petal-toolkit.es130.js +1 -1
  1190. package/dist/petal-toolkit.es1300.js +2 -2
  1191. package/dist/petal-toolkit.es1302.js +2 -2
  1192. package/dist/petal-toolkit.es1303.js +2 -2
  1193. package/dist/petal-toolkit.es1304.js +2 -2
  1194. package/dist/petal-toolkit.es1305.js +2 -2
  1195. package/dist/petal-toolkit.es1306.js +2 -2
  1196. package/dist/petal-toolkit.es1307.js +2 -2
  1197. package/dist/petal-toolkit.es1308.js +2 -2
  1198. package/dist/petal-toolkit.es1309.js +2 -2
  1199. package/dist/petal-toolkit.es131.js +1 -1
  1200. package/dist/petal-toolkit.es1311.js +2 -2
  1201. package/dist/petal-toolkit.es1314.js +2 -2
  1202. package/dist/petal-toolkit.es1315.js +2 -2
  1203. package/dist/petal-toolkit.es1318.js +2 -2
  1204. package/dist/petal-toolkit.es1319.js +2 -2
  1205. package/dist/petal-toolkit.es132.js +1 -1
  1206. package/dist/petal-toolkit.es1320.js +2 -2
  1207. package/dist/petal-toolkit.es1321.js +2 -2
  1208. package/dist/petal-toolkit.es1322.js +2 -2
  1209. package/dist/petal-toolkit.es1325.js +17 -2
  1210. package/dist/petal-toolkit.es1325.js.map +1 -1
  1211. package/dist/petal-toolkit.es1326.js +256 -50
  1212. package/dist/petal-toolkit.es1326.js.map +1 -1
  1213. package/dist/petal-toolkit.es1327.js +276 -47
  1214. package/dist/petal-toolkit.es1327.js.map +1 -1
  1215. package/dist/petal-toolkit.es1328.js +168 -72
  1216. package/dist/petal-toolkit.es1328.js.map +1 -1
  1217. package/dist/petal-toolkit.es1329.js +483 -2
  1218. package/dist/petal-toolkit.es1329.js.map +1 -1
  1219. package/dist/petal-toolkit.es133.js +1 -1
  1220. package/dist/petal-toolkit.es1330.js +72 -2
  1221. package/dist/petal-toolkit.es1330.js.map +1 -1
  1222. package/dist/petal-toolkit.es1331.js +52 -2
  1223. package/dist/petal-toolkit.es1331.js.map +1 -1
  1224. package/dist/petal-toolkit.es1332.js +48 -2
  1225. package/dist/petal-toolkit.es1332.js.map +1 -1
  1226. package/dist/petal-toolkit.es1333.js +2 -2
  1227. package/dist/petal-toolkit.es1334.js +2 -2
  1228. package/dist/petal-toolkit.es1335.js +2 -2
  1229. package/dist/petal-toolkit.es1336.js +2 -2
  1230. package/dist/petal-toolkit.es1337.js +2 -2
  1231. package/dist/petal-toolkit.es1338.js +2 -2
  1232. package/dist/petal-toolkit.es1339.js +2 -2
  1233. package/dist/petal-toolkit.es134.js +1 -1
  1234. package/dist/petal-toolkit.es1340.js +2 -2
  1235. package/dist/petal-toolkit.es1341.js +2 -2
  1236. package/dist/petal-toolkit.es1342.js +2 -2
  1237. package/dist/petal-toolkit.es1343.js +2 -2
  1238. package/dist/petal-toolkit.es1344.js +2 -2
  1239. package/dist/petal-toolkit.es1345.js +2 -2
  1240. package/dist/petal-toolkit.es1347.js +2 -2
  1241. package/dist/petal-toolkit.es1348.js +2 -2
  1242. package/dist/petal-toolkit.es135.js +1 -1
  1243. package/dist/petal-toolkit.es1350.js +2 -2
  1244. package/dist/petal-toolkit.es1351.js +2 -2
  1245. package/dist/petal-toolkit.es1352.js +2 -2
  1246. package/dist/petal-toolkit.es1353.js +2 -2
  1247. package/dist/petal-toolkit.es1354.js +2 -2
  1248. package/dist/petal-toolkit.es1355.js +2 -2
  1249. package/dist/petal-toolkit.es1356.js +2 -2
  1250. package/dist/petal-toolkit.es1357.js +75 -2
  1251. package/dist/petal-toolkit.es1357.js.map +1 -1
  1252. package/dist/petal-toolkit.es136.js +1 -1
  1253. package/dist/petal-toolkit.es1361.js +2 -2
  1254. package/dist/petal-toolkit.es1362.js +2 -2
  1255. package/dist/petal-toolkit.es1363.js +2 -2
  1256. package/dist/petal-toolkit.es1367.js +2 -2
  1257. package/dist/petal-toolkit.es1368.js +5 -0
  1258. package/dist/petal-toolkit.es1368.js.map +1 -0
  1259. package/dist/petal-toolkit.es1369.js +5 -0
  1260. package/dist/petal-toolkit.es1369.js.map +1 -0
  1261. package/dist/petal-toolkit.es137.js +1 -1
  1262. package/dist/petal-toolkit.es1370.js +5 -0
  1263. package/dist/petal-toolkit.es1370.js.map +1 -0
  1264. package/dist/petal-toolkit.es1371.js +5 -0
  1265. package/dist/petal-toolkit.es1371.js.map +1 -0
  1266. package/dist/petal-toolkit.es1372.js +5 -0
  1267. package/dist/petal-toolkit.es1372.js.map +1 -0
  1268. package/dist/petal-toolkit.es138.js +2 -2
  1269. package/dist/petal-toolkit.es139.js +2 -2
  1270. package/dist/petal-toolkit.es14.js +2 -2
  1271. package/dist/petal-toolkit.es140.js +1 -1
  1272. package/dist/petal-toolkit.es141.js +1 -1
  1273. package/dist/petal-toolkit.es142.js +1 -1
  1274. package/dist/petal-toolkit.es143.js +2 -2
  1275. package/dist/petal-toolkit.es144.js +1 -1
  1276. package/dist/petal-toolkit.es145.js +1 -1
  1277. package/dist/petal-toolkit.es146.js +1 -1
  1278. package/dist/petal-toolkit.es147.js +1 -1
  1279. package/dist/petal-toolkit.es148.js +1 -1
  1280. package/dist/petal-toolkit.es149.js +3 -3
  1281. package/dist/petal-toolkit.es15.js +2 -2
  1282. package/dist/petal-toolkit.es150.js +1 -1
  1283. package/dist/petal-toolkit.es151.js +1 -1
  1284. package/dist/petal-toolkit.es152.js +1 -1
  1285. package/dist/petal-toolkit.es153.js +1 -1
  1286. package/dist/petal-toolkit.es154.js +1 -1
  1287. package/dist/petal-toolkit.es155.js +1 -1
  1288. package/dist/petal-toolkit.es156.js +1 -1
  1289. package/dist/petal-toolkit.es157.js +1 -1
  1290. package/dist/petal-toolkit.es158.js +1 -1
  1291. package/dist/petal-toolkit.es159.js +1 -1
  1292. package/dist/petal-toolkit.es160.js +1 -1
  1293. package/dist/petal-toolkit.es161.js +1 -1
  1294. package/dist/petal-toolkit.es162.js +1 -1
  1295. package/dist/petal-toolkit.es163.js +1 -1
  1296. package/dist/petal-toolkit.es164.js +1 -1
  1297. package/dist/petal-toolkit.es165.js +1 -1
  1298. package/dist/petal-toolkit.es166.js +1 -1
  1299. package/dist/petal-toolkit.es167.js +1 -1
  1300. package/dist/petal-toolkit.es168.js +1 -1
  1301. package/dist/petal-toolkit.es169.js +1 -1
  1302. package/dist/petal-toolkit.es170.js +1 -1
  1303. package/dist/petal-toolkit.es171.js +2 -2
  1304. package/dist/petal-toolkit.es172.js +1 -1
  1305. package/dist/petal-toolkit.es173.js +1 -1
  1306. package/dist/petal-toolkit.es174.js +1 -1
  1307. package/dist/petal-toolkit.es175.js +1 -1
  1308. package/dist/petal-toolkit.es176.js +1 -1
  1309. package/dist/petal-toolkit.es177.js +1 -1
  1310. package/dist/petal-toolkit.es178.js +1 -1
  1311. package/dist/petal-toolkit.es179.js +1 -1
  1312. package/dist/petal-toolkit.es18.js +3 -3
  1313. package/dist/petal-toolkit.es180.js +1 -1
  1314. package/dist/petal-toolkit.es181.js +1 -1
  1315. package/dist/petal-toolkit.es182.js +1 -1
  1316. package/dist/petal-toolkit.es183.js +1 -1
  1317. package/dist/petal-toolkit.es184.js +1 -1
  1318. package/dist/petal-toolkit.es185.js +1 -1
  1319. package/dist/petal-toolkit.es186.js +1 -1
  1320. package/dist/petal-toolkit.es187.js +1 -1
  1321. package/dist/petal-toolkit.es188.js +1 -1
  1322. package/dist/petal-toolkit.es189.js +1 -1
  1323. package/dist/petal-toolkit.es19.js +3 -3
  1324. package/dist/petal-toolkit.es190.js +1 -1
  1325. package/dist/petal-toolkit.es191.js +1 -1
  1326. package/dist/petal-toolkit.es192.js +1 -1
  1327. package/dist/petal-toolkit.es193.js +1 -1
  1328. package/dist/petal-toolkit.es194.js +1 -1
  1329. package/dist/petal-toolkit.es195.js +1 -1
  1330. package/dist/petal-toolkit.es196.js +1 -1
  1331. package/dist/petal-toolkit.es197.js +1 -1
  1332. package/dist/petal-toolkit.es198.js +1 -1
  1333. package/dist/petal-toolkit.es199.js +1 -1
  1334. package/dist/petal-toolkit.es20.js +1 -1
  1335. package/dist/petal-toolkit.es200.js +1 -1
  1336. package/dist/petal-toolkit.es201.js +1 -1
  1337. package/dist/petal-toolkit.es202.js +1 -1
  1338. package/dist/petal-toolkit.es203.js +1 -1
  1339. package/dist/petal-toolkit.es204.js +1 -1
  1340. package/dist/petal-toolkit.es205.js +1 -1
  1341. package/dist/petal-toolkit.es206.js +1 -1
  1342. package/dist/petal-toolkit.es207.js +1 -1
  1343. package/dist/petal-toolkit.es208.js +1 -1
  1344. package/dist/petal-toolkit.es209.js +1 -1
  1345. package/dist/petal-toolkit.es210.js +1 -1
  1346. package/dist/petal-toolkit.es211.js +1 -1
  1347. package/dist/petal-toolkit.es212.js +1 -1
  1348. package/dist/petal-toolkit.es213.js +1 -1
  1349. package/dist/petal-toolkit.es214.js +1 -1
  1350. package/dist/petal-toolkit.es215.js +1 -1
  1351. package/dist/petal-toolkit.es216.js +1 -1
  1352. package/dist/petal-toolkit.es217.js +1 -1
  1353. package/dist/petal-toolkit.es218.js +1 -1
  1354. package/dist/petal-toolkit.es219.js +1 -1
  1355. package/dist/petal-toolkit.es22.js +2 -2
  1356. package/dist/petal-toolkit.es220.js +1 -1
  1357. package/dist/petal-toolkit.es221.js +1 -1
  1358. package/dist/petal-toolkit.es222.js +1 -1
  1359. package/dist/petal-toolkit.es223.js +2 -2
  1360. package/dist/petal-toolkit.es224.js +2 -2
  1361. package/dist/petal-toolkit.es225.js +1 -1
  1362. package/dist/petal-toolkit.es226.js +1 -1
  1363. package/dist/petal-toolkit.es227.js +1 -1
  1364. package/dist/petal-toolkit.es228.js +1 -1
  1365. package/dist/petal-toolkit.es229.js +1 -1
  1366. package/dist/petal-toolkit.es23.js +1 -1
  1367. package/dist/petal-toolkit.es230.js +6 -6
  1368. package/dist/petal-toolkit.es231.js +1 -1
  1369. package/dist/petal-toolkit.es232.js +2 -2
  1370. package/dist/petal-toolkit.es233.js +1 -1
  1371. package/dist/petal-toolkit.es234.js +1 -1
  1372. package/dist/petal-toolkit.es235.js +1 -1
  1373. package/dist/petal-toolkit.es236.js +2 -2
  1374. package/dist/petal-toolkit.es237.js +4 -4
  1375. package/dist/petal-toolkit.es238.js +2 -2
  1376. package/dist/petal-toolkit.es239.js +4 -4
  1377. package/dist/petal-toolkit.es24.js +2 -2
  1378. package/dist/petal-toolkit.es240.js +8 -8
  1379. package/dist/petal-toolkit.es241.js +5 -5
  1380. package/dist/petal-toolkit.es242.js +1 -1
  1381. package/dist/petal-toolkit.es243.js +1 -1
  1382. package/dist/petal-toolkit.es244.js +3 -3
  1383. package/dist/petal-toolkit.es245.js +1 -1
  1384. package/dist/petal-toolkit.es246.js +1 -1
  1385. package/dist/petal-toolkit.es247.js +1 -1
  1386. package/dist/petal-toolkit.es248.js +1 -1
  1387. package/dist/petal-toolkit.es249.js +2 -2
  1388. package/dist/petal-toolkit.es25.js +2 -2
  1389. package/dist/petal-toolkit.es250.js +2 -2
  1390. package/dist/petal-toolkit.es251.js +2 -2
  1391. package/dist/petal-toolkit.es252.js +3 -3
  1392. package/dist/petal-toolkit.es253.js +2 -2
  1393. package/dist/petal-toolkit.es254.js +1 -1
  1394. package/dist/petal-toolkit.es255.js +2 -2
  1395. package/dist/petal-toolkit.es256.js +1 -1
  1396. package/dist/petal-toolkit.es257.js +2 -2
  1397. package/dist/petal-toolkit.es258.js +2 -2
  1398. package/dist/petal-toolkit.es259.js +1 -1
  1399. package/dist/petal-toolkit.es26.js +2 -2
  1400. package/dist/petal-toolkit.es260.js +2 -2
  1401. package/dist/petal-toolkit.es261.js +2 -2
  1402. package/dist/petal-toolkit.es262.js +2 -2
  1403. package/dist/petal-toolkit.es263.js +2 -2
  1404. package/dist/petal-toolkit.es264.js +2 -2
  1405. package/dist/petal-toolkit.es265.js +2 -2
  1406. package/dist/petal-toolkit.es266.js +2 -2
  1407. package/dist/petal-toolkit.es267.js +2 -2
  1408. package/dist/petal-toolkit.es268.js +1 -1
  1409. package/dist/petal-toolkit.es269.js +2 -2
  1410. package/dist/petal-toolkit.es27.js +3 -3
  1411. package/dist/petal-toolkit.es270.js +2 -2
  1412. package/dist/petal-toolkit.es271.js +2 -2
  1413. package/dist/petal-toolkit.es272.js +1 -1
  1414. package/dist/petal-toolkit.es273.js +3 -3
  1415. package/dist/petal-toolkit.es274.js +2 -2
  1416. package/dist/petal-toolkit.es275.js +1 -1
  1417. package/dist/petal-toolkit.es276.js +2 -2
  1418. package/dist/petal-toolkit.es277.js +1 -1
  1419. package/dist/petal-toolkit.es278.js +1 -1
  1420. package/dist/petal-toolkit.es279.js +2 -2
  1421. package/dist/petal-toolkit.es28.js +129 -110
  1422. package/dist/petal-toolkit.es28.js.map +1 -1
  1423. package/dist/petal-toolkit.es280.js +1 -1
  1424. package/dist/petal-toolkit.es281.js +1 -1
  1425. package/dist/petal-toolkit.es282.js +2 -2
  1426. package/dist/petal-toolkit.es283.js +1 -1
  1427. package/dist/petal-toolkit.es284.js +1 -1
  1428. package/dist/petal-toolkit.es285.js +1 -1
  1429. package/dist/petal-toolkit.es286.js +2 -2
  1430. package/dist/petal-toolkit.es287.js +1 -1
  1431. package/dist/petal-toolkit.es288.js +1 -1
  1432. package/dist/petal-toolkit.es289.js +1 -1
  1433. package/dist/petal-toolkit.es29.js +24 -22
  1434. package/dist/petal-toolkit.es29.js.map +1 -1
  1435. package/dist/petal-toolkit.es290.js +1 -1
  1436. package/dist/petal-toolkit.es291.js +1 -1
  1437. package/dist/petal-toolkit.es292.js +1 -1
  1438. package/dist/petal-toolkit.es293.js +2 -2
  1439. package/dist/petal-toolkit.es294.js +1 -1
  1440. package/dist/petal-toolkit.es295.js +1 -1
  1441. package/dist/petal-toolkit.es296.js +1 -1
  1442. package/dist/petal-toolkit.es297.js +1 -1
  1443. package/dist/petal-toolkit.es298.js +1 -1
  1444. package/dist/petal-toolkit.es299.js +1 -1
  1445. package/dist/petal-toolkit.es3.js.map +1 -1
  1446. package/dist/petal-toolkit.es30.js +714 -601
  1447. package/dist/petal-toolkit.es30.js.map +1 -1
  1448. package/dist/petal-toolkit.es300.js +2 -2
  1449. package/dist/petal-toolkit.es301.js +1 -1
  1450. package/dist/petal-toolkit.es302.js +1 -1
  1451. package/dist/petal-toolkit.es303.js +1 -1
  1452. package/dist/petal-toolkit.es304.js +1 -1
  1453. package/dist/petal-toolkit.es305.js +1 -1
  1454. package/dist/petal-toolkit.es306.js +1 -1
  1455. package/dist/petal-toolkit.es307.js +1 -1
  1456. package/dist/petal-toolkit.es308.js +2 -2
  1457. package/dist/petal-toolkit.es309.js +2 -2
  1458. package/dist/petal-toolkit.es31.js +2 -2
  1459. package/dist/petal-toolkit.es310.js +1 -1
  1460. package/dist/petal-toolkit.es311.js +1 -1
  1461. package/dist/petal-toolkit.es312.js +1 -1
  1462. package/dist/petal-toolkit.es313.js +1 -1
  1463. package/dist/petal-toolkit.es314.js +1 -1
  1464. package/dist/petal-toolkit.es315.js +1 -1
  1465. package/dist/petal-toolkit.es316.js +1 -1
  1466. package/dist/petal-toolkit.es317.js +1 -1
  1467. package/dist/petal-toolkit.es318.js +2 -2
  1468. package/dist/petal-toolkit.es319.js +1 -1
  1469. package/dist/petal-toolkit.es32.js +2 -2
  1470. package/dist/petal-toolkit.es320.js +3 -3
  1471. package/dist/petal-toolkit.es321.js +1 -1
  1472. package/dist/petal-toolkit.es322.js +1 -1
  1473. package/dist/petal-toolkit.es323.js +2 -2
  1474. package/dist/petal-toolkit.es324.js +1 -1
  1475. package/dist/petal-toolkit.es325.js +1 -1
  1476. package/dist/petal-toolkit.es326.js +1 -1
  1477. package/dist/petal-toolkit.es327.js +2 -2
  1478. package/dist/petal-toolkit.es328.js +2 -2
  1479. package/dist/petal-toolkit.es329.js +2 -2
  1480. package/dist/petal-toolkit.es330.js +2 -2
  1481. package/dist/petal-toolkit.es331.js +2 -2
  1482. package/dist/petal-toolkit.es332.js +3 -3
  1483. package/dist/petal-toolkit.es333.js +3 -3
  1484. package/dist/petal-toolkit.es334.js +2 -2
  1485. package/dist/petal-toolkit.es335.js +2 -2
  1486. package/dist/petal-toolkit.es336.js +1 -1
  1487. package/dist/petal-toolkit.es337.js +2 -2
  1488. package/dist/petal-toolkit.es338.js +2 -2
  1489. package/dist/petal-toolkit.es339.js +2 -2
  1490. package/dist/petal-toolkit.es34.js +2 -2
  1491. package/dist/petal-toolkit.es340.js +2 -2
  1492. package/dist/petal-toolkit.es341.js +2 -2
  1493. package/dist/petal-toolkit.es342.js +2 -2
  1494. package/dist/petal-toolkit.es343.js +1 -1
  1495. package/dist/petal-toolkit.es344.js +1 -1
  1496. package/dist/petal-toolkit.es345.js +1 -1
  1497. package/dist/petal-toolkit.es346.js +1 -1
  1498. package/dist/petal-toolkit.es347.js +2 -2
  1499. package/dist/petal-toolkit.es348.js +1 -1
  1500. package/dist/petal-toolkit.es349.js +2 -2
  1501. package/dist/petal-toolkit.es35.js +1 -1
  1502. package/dist/petal-toolkit.es350.js +1 -1
  1503. package/dist/petal-toolkit.es351.js +2 -2
  1504. package/dist/petal-toolkit.es352.js +1 -1
  1505. package/dist/petal-toolkit.es353.js +2 -2
  1506. package/dist/petal-toolkit.es354.js +1 -1
  1507. package/dist/petal-toolkit.es355.js +1 -1
  1508. package/dist/petal-toolkit.es356.js +1 -1
  1509. package/dist/petal-toolkit.es357.js +1 -1
  1510. package/dist/petal-toolkit.es358.js +3 -3
  1511. package/dist/petal-toolkit.es359.js +1 -1
  1512. package/dist/petal-toolkit.es36.js +2 -2
  1513. package/dist/petal-toolkit.es360.js +1 -1
  1514. package/dist/petal-toolkit.es361.js +2 -2
  1515. package/dist/petal-toolkit.es362.js +2 -2
  1516. package/dist/petal-toolkit.es363.js +2 -2
  1517. package/dist/petal-toolkit.es364.js +2 -2
  1518. package/dist/petal-toolkit.es365.js +2 -2
  1519. package/dist/petal-toolkit.es366.js +1 -1
  1520. package/dist/petal-toolkit.es367.js +1 -1
  1521. package/dist/petal-toolkit.es368.js +2 -2
  1522. package/dist/petal-toolkit.es369.js +2 -2
  1523. package/dist/petal-toolkit.es37.js +2 -2
  1524. package/dist/petal-toolkit.es370.js +2 -2
  1525. package/dist/petal-toolkit.es371.js +2 -2
  1526. package/dist/petal-toolkit.es372.js +1 -1
  1527. package/dist/petal-toolkit.es373.js +1 -1
  1528. package/dist/petal-toolkit.es374.js +1 -1
  1529. package/dist/petal-toolkit.es375.js +1 -1
  1530. package/dist/petal-toolkit.es376.js +1 -1
  1531. package/dist/petal-toolkit.es377.js +1 -1
  1532. package/dist/petal-toolkit.es378.js +1 -1
  1533. package/dist/petal-toolkit.es379.js +1 -1
  1534. package/dist/petal-toolkit.es38.js +2 -2
  1535. package/dist/petal-toolkit.es380.js +1 -1
  1536. package/dist/petal-toolkit.es381.js +1 -1
  1537. package/dist/petal-toolkit.es382.js +1 -1
  1538. package/dist/petal-toolkit.es383.js +1 -1
  1539. package/dist/petal-toolkit.es384.js +1 -1
  1540. package/dist/petal-toolkit.es385.js +1 -1
  1541. package/dist/petal-toolkit.es386.js +1 -1
  1542. package/dist/petal-toolkit.es387.js +1 -1
  1543. package/dist/petal-toolkit.es388.js +1 -1
  1544. package/dist/petal-toolkit.es389.js +1 -1
  1545. package/dist/petal-toolkit.es390.js +1 -1
  1546. package/dist/petal-toolkit.es391.js +1 -1
  1547. package/dist/petal-toolkit.es392.js +1 -1
  1548. package/dist/petal-toolkit.es393.js +1 -1
  1549. package/dist/petal-toolkit.es394.js +1 -1
  1550. package/dist/petal-toolkit.es395.js +1 -1
  1551. package/dist/petal-toolkit.es396.js +1 -1
  1552. package/dist/petal-toolkit.es397.js +1 -1
  1553. package/dist/petal-toolkit.es398.js +1 -1
  1554. package/dist/petal-toolkit.es399.js +1 -1
  1555. package/dist/petal-toolkit.es4.js +2 -2
  1556. package/dist/petal-toolkit.es40.js +2 -2
  1557. package/dist/petal-toolkit.es400.js +1 -1
  1558. package/dist/petal-toolkit.es401.js +2 -2
  1559. package/dist/petal-toolkit.es402.js +1 -1
  1560. package/dist/petal-toolkit.es403.js +1 -1
  1561. package/dist/petal-toolkit.es404.js +1 -1
  1562. package/dist/petal-toolkit.es405.js +1 -1
  1563. package/dist/petal-toolkit.es406.js +1 -1
  1564. package/dist/petal-toolkit.es407.js +1 -1
  1565. package/dist/petal-toolkit.es408.js +1 -1
  1566. package/dist/petal-toolkit.es409.js +1 -1
  1567. package/dist/petal-toolkit.es41.js +2 -2
  1568. package/dist/petal-toolkit.es410.js +1 -1
  1569. package/dist/petal-toolkit.es411.js +2 -2
  1570. package/dist/petal-toolkit.es412.js +3 -3
  1571. package/dist/petal-toolkit.es413.js +2 -2
  1572. package/dist/petal-toolkit.es414.js +1 -1
  1573. package/dist/petal-toolkit.es415.js +2 -2
  1574. package/dist/petal-toolkit.es416.js +2 -2
  1575. package/dist/petal-toolkit.es417.js +1 -1
  1576. package/dist/petal-toolkit.es418.js +2 -2
  1577. package/dist/petal-toolkit.es419.js +2 -2
  1578. package/dist/petal-toolkit.es42.js +2 -2
  1579. package/dist/petal-toolkit.es420.js +2 -2
  1580. package/dist/petal-toolkit.es421.js +2 -2
  1581. package/dist/petal-toolkit.es422.js +3 -3
  1582. package/dist/petal-toolkit.es423.js +2 -2
  1583. package/dist/petal-toolkit.es424.js +1 -1
  1584. package/dist/petal-toolkit.es425.js +2 -2
  1585. package/dist/petal-toolkit.es426.js +1 -1
  1586. package/dist/petal-toolkit.es427.js +2 -2
  1587. package/dist/petal-toolkit.es428.js +4 -4
  1588. package/dist/petal-toolkit.es429.js +4 -4
  1589. package/dist/petal-toolkit.es43.js +2 -2
  1590. package/dist/petal-toolkit.es430.js +1 -1
  1591. package/dist/petal-toolkit.es431.js +1 -1
  1592. package/dist/petal-toolkit.es432.js +1 -1
  1593. package/dist/petal-toolkit.es433.js +1 -1
  1594. package/dist/petal-toolkit.es434.js +1 -1
  1595. package/dist/petal-toolkit.es435.js +1 -1
  1596. package/dist/petal-toolkit.es436.js +1 -1
  1597. package/dist/petal-toolkit.es437.js +1 -1
  1598. package/dist/petal-toolkit.es438.js +1 -1
  1599. package/dist/petal-toolkit.es439.js +1 -1
  1600. package/dist/petal-toolkit.es44.js +3 -3
  1601. package/dist/petal-toolkit.es440.js +1 -1
  1602. package/dist/petal-toolkit.es441.js +1 -1
  1603. package/dist/petal-toolkit.es442.js +1 -1
  1604. package/dist/petal-toolkit.es443.js +1 -1
  1605. package/dist/petal-toolkit.es444.js +1 -1
  1606. package/dist/petal-toolkit.es445.js +1 -1
  1607. package/dist/petal-toolkit.es446.js +1 -1
  1608. package/dist/petal-toolkit.es447.js +1 -1
  1609. package/dist/petal-toolkit.es448.js +1 -1
  1610. package/dist/petal-toolkit.es449.js +1 -1
  1611. package/dist/petal-toolkit.es45.js +2 -2
  1612. package/dist/petal-toolkit.es450.js +1 -1
  1613. package/dist/petal-toolkit.es451.js +1 -1
  1614. package/dist/petal-toolkit.es452.js +1 -1
  1615. package/dist/petal-toolkit.es453.js +2 -2
  1616. package/dist/petal-toolkit.es454.js +1 -1
  1617. package/dist/petal-toolkit.es455.js +2 -2
  1618. package/dist/petal-toolkit.es456.js +1 -1
  1619. package/dist/petal-toolkit.es457.js +2 -2
  1620. package/dist/petal-toolkit.es458.js +1 -1
  1621. package/dist/petal-toolkit.es459.js +2 -2
  1622. package/dist/petal-toolkit.es46.js +1 -1
  1623. package/dist/petal-toolkit.es460.js +1 -1
  1624. package/dist/petal-toolkit.es461.js +1 -1
  1625. package/dist/petal-toolkit.es462.js +2 -2
  1626. package/dist/petal-toolkit.es463.js +1 -1
  1627. package/dist/petal-toolkit.es464.js +1 -1
  1628. package/dist/petal-toolkit.es465.js +1 -1
  1629. package/dist/petal-toolkit.es466.js +1 -1
  1630. package/dist/petal-toolkit.es467.js +1 -1
  1631. package/dist/petal-toolkit.es468.js +1 -1
  1632. package/dist/petal-toolkit.es469.js +1 -1
  1633. package/dist/petal-toolkit.es47.js +2 -2
  1634. package/dist/petal-toolkit.es470.js +2 -2
  1635. package/dist/petal-toolkit.es471.js +2 -2
  1636. package/dist/petal-toolkit.es472.js +1 -1
  1637. package/dist/petal-toolkit.es473.js +1 -1
  1638. package/dist/petal-toolkit.es474.js +1 -1
  1639. package/dist/petal-toolkit.es475.js +1 -1
  1640. package/dist/petal-toolkit.es476.js +1 -1
  1641. package/dist/petal-toolkit.es477.js +1 -1
  1642. package/dist/petal-toolkit.es478.js +1 -1
  1643. package/dist/petal-toolkit.es479.js +1 -1
  1644. package/dist/petal-toolkit.es48.js +2 -2
  1645. package/dist/petal-toolkit.es48.js.map +1 -1
  1646. package/dist/petal-toolkit.es480.js +1 -1
  1647. package/dist/petal-toolkit.es481.js +1 -1
  1648. package/dist/petal-toolkit.es482.js +1 -1
  1649. package/dist/petal-toolkit.es483.js +1 -1
  1650. package/dist/petal-toolkit.es484.js +1 -1
  1651. package/dist/petal-toolkit.es485.js +1 -1
  1652. package/dist/petal-toolkit.es486.js +1 -1
  1653. package/dist/petal-toolkit.es487.js +2 -2
  1654. package/dist/petal-toolkit.es488.js +2 -2
  1655. package/dist/petal-toolkit.es489.js +6 -6
  1656. package/dist/petal-toolkit.es49.js +1 -1
  1657. package/dist/petal-toolkit.es490.js +2 -2
  1658. package/dist/petal-toolkit.es491.js +3 -3
  1659. package/dist/petal-toolkit.es492.js +2 -2
  1660. package/dist/petal-toolkit.es493.js +2 -2
  1661. package/dist/petal-toolkit.es494.js +2 -2
  1662. package/dist/petal-toolkit.es495.js +1 -1
  1663. package/dist/petal-toolkit.es496.js +1 -1
  1664. package/dist/petal-toolkit.es497.js +1 -1
  1665. package/dist/petal-toolkit.es498.js +1 -1
  1666. package/dist/petal-toolkit.es499.js +1 -1
  1667. package/dist/petal-toolkit.es5.js +2 -2
  1668. package/dist/petal-toolkit.es50.js +2 -2
  1669. package/dist/petal-toolkit.es500.js +1 -1
  1670. package/dist/petal-toolkit.es501.js +1 -1
  1671. package/dist/petal-toolkit.es502.js +1 -1
  1672. package/dist/petal-toolkit.es503.js +1 -1
  1673. package/dist/petal-toolkit.es504.js +1 -1
  1674. package/dist/petal-toolkit.es505.js +1 -1
  1675. package/dist/petal-toolkit.es506.js +1 -1
  1676. package/dist/petal-toolkit.es507.js +1 -1
  1677. package/dist/petal-toolkit.es508.js +5 -5
  1678. package/dist/petal-toolkit.es509.js +1 -1
  1679. package/dist/petal-toolkit.es51.js +33 -23
  1680. package/dist/petal-toolkit.es51.js.map +1 -1
  1681. package/dist/petal-toolkit.es510.js +1 -1
  1682. package/dist/petal-toolkit.es511.js +1 -1
  1683. package/dist/petal-toolkit.es512.js +1 -1
  1684. package/dist/petal-toolkit.es513.js +6 -6
  1685. package/dist/petal-toolkit.es514.js +1 -1
  1686. package/dist/petal-toolkit.es515.js +2 -2
  1687. package/dist/petal-toolkit.es516.js +2 -2
  1688. package/dist/petal-toolkit.es517.js +1 -1
  1689. package/dist/petal-toolkit.es518.js +1 -1
  1690. package/dist/petal-toolkit.es519.js +1 -1
  1691. package/dist/petal-toolkit.es52.js +2 -2
  1692. package/dist/petal-toolkit.es520.js +1 -1
  1693. package/dist/petal-toolkit.es521.js +1 -1
  1694. package/dist/petal-toolkit.es522.js +1 -1
  1695. package/dist/petal-toolkit.es523.js +2 -2
  1696. package/dist/petal-toolkit.es524.js +1 -1
  1697. package/dist/petal-toolkit.es525.js +1 -1
  1698. package/dist/petal-toolkit.es526.js +1 -1
  1699. package/dist/petal-toolkit.es527.js +1 -1
  1700. package/dist/petal-toolkit.es528.js +2 -2
  1701. package/dist/petal-toolkit.es529.js +1 -1
  1702. package/dist/petal-toolkit.es530.js +1 -1
  1703. package/dist/petal-toolkit.es531.js +2 -2
  1704. package/dist/petal-toolkit.es532.js +1 -1
  1705. package/dist/petal-toolkit.es533.js +1 -1
  1706. package/dist/petal-toolkit.es534.js +1 -1
  1707. package/dist/petal-toolkit.es535.js +2 -2
  1708. package/dist/petal-toolkit.es536.js +1 -1
  1709. package/dist/petal-toolkit.es537.js +2 -2
  1710. package/dist/petal-toolkit.es538.js +2 -2
  1711. package/dist/petal-toolkit.es539.js +2 -2
  1712. package/dist/petal-toolkit.es540.js +1 -1
  1713. package/dist/petal-toolkit.es541.js +1 -1
  1714. package/dist/petal-toolkit.es542.js +2 -2
  1715. package/dist/petal-toolkit.es543.js +1 -1
  1716. package/dist/petal-toolkit.es544.js +1 -1
  1717. package/dist/petal-toolkit.es545.js +1 -1
  1718. package/dist/petal-toolkit.es546.js +1 -1
  1719. package/dist/petal-toolkit.es547.js +1 -1
  1720. package/dist/petal-toolkit.es548.js +3 -3
  1721. package/dist/petal-toolkit.es549.js +1 -1
  1722. package/dist/petal-toolkit.es550.js +3 -3
  1723. package/dist/petal-toolkit.es551.js +2 -2
  1724. package/dist/petal-toolkit.es552.js +1 -1
  1725. package/dist/petal-toolkit.es553.js +1 -1
  1726. package/dist/petal-toolkit.es554.js +1 -1
  1727. package/dist/petal-toolkit.es555.js +1 -1
  1728. package/dist/petal-toolkit.es556.js +1 -1
  1729. package/dist/petal-toolkit.es557.js +1 -1
  1730. package/dist/petal-toolkit.es558.js +1 -1
  1731. package/dist/petal-toolkit.es559.js +1 -1
  1732. package/dist/petal-toolkit.es560.js +1 -1
  1733. package/dist/petal-toolkit.es561.js +1 -1
  1734. package/dist/petal-toolkit.es562.js +1 -1
  1735. package/dist/petal-toolkit.es563.js +1 -1
  1736. package/dist/petal-toolkit.es564.js +1 -1
  1737. package/dist/petal-toolkit.es565.js +1 -1
  1738. package/dist/petal-toolkit.es566.js +1 -1
  1739. package/dist/petal-toolkit.es567.js +1 -1
  1740. package/dist/petal-toolkit.es568.js +1 -1
  1741. package/dist/petal-toolkit.es569.js +1 -1
  1742. package/dist/petal-toolkit.es570.js +4 -4
  1743. package/dist/petal-toolkit.es571.js +1 -1
  1744. package/dist/petal-toolkit.es572.js +2 -2
  1745. package/dist/petal-toolkit.es573.js +1 -1
  1746. package/dist/petal-toolkit.es574.js +1 -1
  1747. package/dist/petal-toolkit.es575.js +1 -1
  1748. package/dist/petal-toolkit.es576.js +1 -1
  1749. package/dist/petal-toolkit.es577.js +1 -1
  1750. package/dist/petal-toolkit.es578.js +1 -1
  1751. package/dist/petal-toolkit.es579.js +1 -1
  1752. package/dist/petal-toolkit.es580.js +1 -1
  1753. package/dist/petal-toolkit.es581.js +1 -1
  1754. package/dist/petal-toolkit.es582.js +1 -1
  1755. package/dist/petal-toolkit.es583.js +1 -1
  1756. package/dist/petal-toolkit.es584.js +1 -1
  1757. package/dist/petal-toolkit.es585.js +1 -1
  1758. package/dist/petal-toolkit.es586.js +1 -1
  1759. package/dist/petal-toolkit.es587.js +1 -1
  1760. package/dist/petal-toolkit.es588.js +1 -1
  1761. package/dist/petal-toolkit.es589.js +1 -1
  1762. package/dist/petal-toolkit.es59.js +40 -83
  1763. package/dist/petal-toolkit.es59.js.map +1 -1
  1764. package/dist/petal-toolkit.es590.js +1 -1
  1765. package/dist/petal-toolkit.es591.js +1 -1
  1766. package/dist/petal-toolkit.es592.js +1 -1
  1767. package/dist/petal-toolkit.es593.js +1 -1
  1768. package/dist/petal-toolkit.es594.js +1 -1
  1769. package/dist/petal-toolkit.es595.js +1 -1
  1770. package/dist/petal-toolkit.es596.js +1 -1
  1771. package/dist/petal-toolkit.es597.js +1 -1
  1772. package/dist/petal-toolkit.es598.js +1 -1
  1773. package/dist/petal-toolkit.es599.js +1 -1
  1774. package/dist/petal-toolkit.es6.js +3 -3
  1775. package/dist/petal-toolkit.es60.js +24 -40
  1776. package/dist/petal-toolkit.es60.js.map +1 -1
  1777. package/dist/petal-toolkit.es600.js +1 -1
  1778. package/dist/petal-toolkit.es601.js +1 -1
  1779. package/dist/petal-toolkit.es602.js +1 -1
  1780. package/dist/petal-toolkit.es603.js +1 -1
  1781. package/dist/petal-toolkit.es604.js +1 -1
  1782. package/dist/petal-toolkit.es605.js +1 -1
  1783. package/dist/petal-toolkit.es606.js +1 -1
  1784. package/dist/petal-toolkit.es607.js +1 -1
  1785. package/dist/petal-toolkit.es608.js +1 -1
  1786. package/dist/petal-toolkit.es609.js +1 -1
  1787. package/dist/petal-toolkit.es61.js +45 -24
  1788. package/dist/petal-toolkit.es61.js.map +1 -1
  1789. package/dist/petal-toolkit.es610.js +1 -1
  1790. package/dist/petal-toolkit.es611.js +1 -1
  1791. package/dist/petal-toolkit.es612.js +1 -1
  1792. package/dist/petal-toolkit.es613.js +1 -1
  1793. package/dist/petal-toolkit.es614.js +1 -1
  1794. package/dist/petal-toolkit.es615.js +1 -1
  1795. package/dist/petal-toolkit.es616.js +1 -1
  1796. package/dist/petal-toolkit.es617.js +1 -1
  1797. package/dist/petal-toolkit.es618.js +1 -1
  1798. package/dist/petal-toolkit.es619.js +1 -1
  1799. package/dist/petal-toolkit.es62.js +48 -42
  1800. package/dist/petal-toolkit.es62.js.map +1 -1
  1801. package/dist/petal-toolkit.es620.js +1 -1
  1802. package/dist/petal-toolkit.es621.js +1 -1
  1803. package/dist/petal-toolkit.es622.js +1 -1
  1804. package/dist/petal-toolkit.es623.js +1 -1
  1805. package/dist/petal-toolkit.es624.js +1 -1
  1806. package/dist/petal-toolkit.es625.js +1 -1
  1807. package/dist/petal-toolkit.es626.js +1 -1
  1808. package/dist/petal-toolkit.es627.js +1 -1
  1809. package/dist/petal-toolkit.es628.js +1 -1
  1810. package/dist/petal-toolkit.es629.js +1 -1
  1811. package/dist/petal-toolkit.es63.js +82 -50
  1812. package/dist/petal-toolkit.es63.js.map +1 -1
  1813. package/dist/petal-toolkit.es630.js +1 -1
  1814. package/dist/petal-toolkit.es631.js +1 -1
  1815. package/dist/petal-toolkit.es632.js +1 -1
  1816. package/dist/petal-toolkit.es633.js +1 -1
  1817. package/dist/petal-toolkit.es634.js +1 -1
  1818. package/dist/petal-toolkit.es635.js +1 -1
  1819. package/dist/petal-toolkit.es636.js +1 -1
  1820. package/dist/petal-toolkit.es637.js +1 -1
  1821. package/dist/petal-toolkit.es638.js +1 -1
  1822. package/dist/petal-toolkit.es639.js +1 -1
  1823. package/dist/petal-toolkit.es640.js +1 -1
  1824. package/dist/petal-toolkit.es641.js +1 -1
  1825. package/dist/petal-toolkit.es642.js +1 -1
  1826. package/dist/petal-toolkit.es643.js +1 -1
  1827. package/dist/petal-toolkit.es644.js +1 -1
  1828. package/dist/petal-toolkit.es645.js +2 -2
  1829. package/dist/petal-toolkit.es646.js +1 -1
  1830. package/dist/petal-toolkit.es647.js +1 -1
  1831. package/dist/petal-toolkit.es648.js +1 -1
  1832. package/dist/petal-toolkit.es649.js +1 -1
  1833. package/dist/petal-toolkit.es650.js +1 -1
  1834. package/dist/petal-toolkit.es651.js +1 -1
  1835. package/dist/petal-toolkit.es652.js +1 -1
  1836. package/dist/petal-toolkit.es653.js +1 -1
  1837. package/dist/petal-toolkit.es654.js +1 -1
  1838. package/dist/petal-toolkit.es655.js +1 -1
  1839. package/dist/petal-toolkit.es656.js +1 -1
  1840. package/dist/petal-toolkit.es657.js +1 -1
  1841. package/dist/petal-toolkit.es658.js +1 -1
  1842. package/dist/petal-toolkit.es659.js +1 -1
  1843. package/dist/petal-toolkit.es66.js +1 -1
  1844. package/dist/petal-toolkit.es660.js +2 -2
  1845. package/dist/petal-toolkit.es661.js +1 -1
  1846. package/dist/petal-toolkit.es662.js +1 -1
  1847. package/dist/petal-toolkit.es663.js +1 -1
  1848. package/dist/petal-toolkit.es664.js +1 -1
  1849. package/dist/petal-toolkit.es665.js +1 -1
  1850. package/dist/petal-toolkit.es666.js +1 -1
  1851. package/dist/petal-toolkit.es667.js +1 -1
  1852. package/dist/petal-toolkit.es668.js +1 -1
  1853. package/dist/petal-toolkit.es669.js +1 -1
  1854. package/dist/petal-toolkit.es67.js +1 -1
  1855. package/dist/petal-toolkit.es670.js +1 -1
  1856. package/dist/petal-toolkit.es671.js +1 -1
  1857. package/dist/petal-toolkit.es672.js +1 -1
  1858. package/dist/petal-toolkit.es673.js +1 -1
  1859. package/dist/petal-toolkit.es674.js +1 -1
  1860. package/dist/petal-toolkit.es675.js +230 -31
  1861. package/dist/petal-toolkit.es675.js.map +1 -1
  1862. package/dist/petal-toolkit.es676.js +34 -17
  1863. package/dist/petal-toolkit.es676.js.map +1 -1
  1864. package/dist/petal-toolkit.es677.js +2 -67
  1865. package/dist/petal-toolkit.es677.js.map +1 -1
  1866. package/dist/petal-toolkit.es678.js +2 -2
  1867. package/dist/petal-toolkit.es679.js +2 -2
  1868. package/dist/petal-toolkit.es68.js +1 -1
  1869. package/dist/petal-toolkit.es680.js +2 -2
  1870. package/dist/petal-toolkit.es681.js +2 -2
  1871. package/dist/petal-toolkit.es682.js +2 -2
  1872. package/dist/petal-toolkit.es684.js +2 -2
  1873. package/dist/petal-toolkit.es685.js +2 -2
  1874. package/dist/petal-toolkit.es686.js +2 -2
  1875. package/dist/petal-toolkit.es687.js +10 -2
  1876. package/dist/petal-toolkit.es687.js.map +1 -1
  1877. package/dist/petal-toolkit.es688.js +2 -10
  1878. package/dist/petal-toolkit.es688.js.map +1 -1
  1879. package/dist/petal-toolkit.es689.js +12 -2
  1880. package/dist/petal-toolkit.es689.js.map +1 -1
  1881. package/dist/petal-toolkit.es69.js +1 -1
  1882. package/dist/petal-toolkit.es690.js +2 -12
  1883. package/dist/petal-toolkit.es690.js.map +1 -1
  1884. package/dist/petal-toolkit.es692.js +2 -2
  1885. package/dist/petal-toolkit.es694.js +2 -2
  1886. package/dist/petal-toolkit.es696.js +2 -2
  1887. package/dist/petal-toolkit.es698.js +2 -2
  1888. package/dist/petal-toolkit.es7.js +2 -2
  1889. package/dist/petal-toolkit.es70.js +1 -1
  1890. package/dist/petal-toolkit.es700.js +2 -2
  1891. package/dist/petal-toolkit.es701.js +2 -2
  1892. package/dist/petal-toolkit.es702.js +2 -2
  1893. package/dist/petal-toolkit.es704.js +2 -2
  1894. package/dist/petal-toolkit.es706.js +2 -2
  1895. package/dist/petal-toolkit.es708.js +2 -2
  1896. package/dist/petal-toolkit.es71.js +1 -1
  1897. package/dist/petal-toolkit.es711.js +2 -2
  1898. package/dist/petal-toolkit.es712.js +2 -2
  1899. package/dist/petal-toolkit.es713.js +2 -2
  1900. package/dist/petal-toolkit.es714.js +2 -2
  1901. package/dist/petal-toolkit.es715.js +2 -2
  1902. package/dist/petal-toolkit.es716.js +2 -2
  1903. package/dist/petal-toolkit.es717.js +2 -2
  1904. package/dist/petal-toolkit.es718.js +2 -2
  1905. package/dist/petal-toolkit.es719.js +2 -2
  1906. package/dist/petal-toolkit.es72.js +1 -1
  1907. package/dist/petal-toolkit.es720.js +66 -2
  1908. package/dist/petal-toolkit.es720.js.map +1 -1
  1909. package/dist/petal-toolkit.es721.js +2 -66
  1910. package/dist/petal-toolkit.es721.js.map +1 -1
  1911. package/dist/petal-toolkit.es723.js +2 -2
  1912. package/dist/petal-toolkit.es724.js +10 -2
  1913. package/dist/petal-toolkit.es724.js.map +1 -1
  1914. package/dist/petal-toolkit.es725.js +2 -10
  1915. package/dist/petal-toolkit.es725.js.map +1 -1
  1916. package/dist/petal-toolkit.es726.js +11 -2
  1917. package/dist/petal-toolkit.es726.js.map +1 -1
  1918. package/dist/petal-toolkit.es727.js +2 -11
  1919. package/dist/petal-toolkit.es727.js.map +1 -1
  1920. package/dist/petal-toolkit.es729.js +2 -2
  1921. package/dist/petal-toolkit.es73.js +1 -1
  1922. package/dist/petal-toolkit.es730.js +2 -2
  1923. package/dist/petal-toolkit.es731.js +10 -2
  1924. package/dist/petal-toolkit.es731.js.map +1 -1
  1925. package/dist/petal-toolkit.es732.js +2 -10
  1926. package/dist/petal-toolkit.es732.js.map +1 -1
  1927. package/dist/petal-toolkit.es735.js +2 -2
  1928. package/dist/petal-toolkit.es736.js +2 -2
  1929. package/dist/petal-toolkit.es737.js +2 -2
  1930. package/dist/petal-toolkit.es738.js +2 -2
  1931. package/dist/petal-toolkit.es739.js +19 -2
  1932. package/dist/petal-toolkit.es739.js.map +1 -1
  1933. package/dist/petal-toolkit.es74.js +1 -1
  1934. package/dist/petal-toolkit.es740.js +2 -19
  1935. package/dist/petal-toolkit.es740.js.map +1 -1
  1936. package/dist/petal-toolkit.es741.js +2 -2
  1937. package/dist/petal-toolkit.es746.js +2 -2
  1938. package/dist/petal-toolkit.es748.js +2 -2
  1939. package/dist/petal-toolkit.es749.js +2 -2
  1940. package/dist/petal-toolkit.es75.js +2 -2
  1941. package/dist/petal-toolkit.es750.js +2 -2
  1942. package/dist/petal-toolkit.es752.js +2 -2
  1943. package/dist/petal-toolkit.es757.js +48 -2
  1944. package/dist/petal-toolkit.es757.js.map +1 -1
  1945. package/dist/petal-toolkit.es758.js +2 -48
  1946. package/dist/petal-toolkit.es758.js.map +1 -1
  1947. package/dist/petal-toolkit.es759.js +2 -2
  1948. package/dist/petal-toolkit.es76.js +3 -3
  1949. package/dist/petal-toolkit.es760.js +2 -2
  1950. package/dist/petal-toolkit.es761.js +2 -2
  1951. package/dist/petal-toolkit.es762.js +2 -2
  1952. package/dist/petal-toolkit.es763.js +2 -2
  1953. package/dist/petal-toolkit.es765.js +2 -2
  1954. package/dist/petal-toolkit.es766.js +2 -2
  1955. package/dist/petal-toolkit.es769.js +6 -2
  1956. package/dist/petal-toolkit.es769.js.map +1 -1
  1957. package/dist/petal-toolkit.es77.js +2 -2
  1958. package/dist/petal-toolkit.es770.js +2 -6
  1959. package/dist/petal-toolkit.es770.js.map +1 -1
  1960. package/dist/petal-toolkit.es771.js +2 -2
  1961. package/dist/petal-toolkit.es772.js +2 -2
  1962. package/dist/petal-toolkit.es776.js +2 -2
  1963. package/dist/petal-toolkit.es777.js +2 -2
  1964. package/dist/petal-toolkit.es78.js +1 -1
  1965. package/dist/petal-toolkit.es781.js +2 -2
  1966. package/dist/petal-toolkit.es782.js +2 -2
  1967. package/dist/petal-toolkit.es79.js +1 -1
  1968. package/dist/petal-toolkit.es791.js +2 -2
  1969. package/dist/petal-toolkit.es792.js +18 -2
  1970. package/dist/petal-toolkit.es792.js.map +1 -1
  1971. package/dist/petal-toolkit.es793.js +2 -18
  1972. package/dist/petal-toolkit.es793.js.map +1 -1
  1973. package/dist/petal-toolkit.es794.js +2 -2
  1974. package/dist/petal-toolkit.es796.js +2 -2
  1975. package/dist/petal-toolkit.es797.js +2 -2
  1976. package/dist/petal-toolkit.es799.js +2 -2
  1977. package/dist/petal-toolkit.es8.js +2 -2
  1978. package/dist/petal-toolkit.es80.js +1 -1
  1979. package/dist/petal-toolkit.es800.js +2 -2
  1980. package/dist/petal-toolkit.es801.js +2 -2
  1981. package/dist/petal-toolkit.es802.js +2 -2
  1982. package/dist/petal-toolkit.es803.js +2 -2
  1983. package/dist/petal-toolkit.es804.js +2 -2
  1984. package/dist/petal-toolkit.es805.js +2 -2
  1985. package/dist/petal-toolkit.es806.js +2 -2
  1986. package/dist/petal-toolkit.es808.js +2 -2
  1987. package/dist/petal-toolkit.es809.js +2 -2
  1988. package/dist/petal-toolkit.es81.js +2 -2
  1989. package/dist/petal-toolkit.es82.js +1 -1
  1990. package/dist/petal-toolkit.es824.js +2 -2
  1991. package/dist/petal-toolkit.es827.js +2 -2
  1992. package/dist/petal-toolkit.es828.js +2 -2
  1993. package/dist/petal-toolkit.es829.js +2 -2
  1994. package/dist/petal-toolkit.es83.js +1 -1
  1995. package/dist/petal-toolkit.es830.js +2 -2
  1996. package/dist/petal-toolkit.es832.js +2 -2
  1997. package/dist/petal-toolkit.es833.js +2 -2
  1998. package/dist/petal-toolkit.es84.js +1 -1
  1999. package/dist/petal-toolkit.es840.js +2 -2
  2000. package/dist/petal-toolkit.es841.js +2 -2
  2001. package/dist/petal-toolkit.es843.js +2 -2
  2002. package/dist/petal-toolkit.es844.js +2 -2
  2003. package/dist/petal-toolkit.es845.js +2 -2
  2004. package/dist/petal-toolkit.es847.js +2 -2
  2005. package/dist/petal-toolkit.es849.js +2 -2
  2006. package/dist/petal-toolkit.es85.js +1 -1
  2007. package/dist/petal-toolkit.es850.js +2 -2
  2008. package/dist/petal-toolkit.es851.js +2 -2
  2009. package/dist/petal-toolkit.es852.js +4737 -2
  2010. package/dist/petal-toolkit.es852.js.map +1 -1
  2011. package/dist/petal-toolkit.es853.js +546 -4712
  2012. package/dist/petal-toolkit.es853.js.map +1 -1
  2013. package/dist/petal-toolkit.es854.js +128 -561
  2014. package/dist/petal-toolkit.es854.js.map +1 -1
  2015. package/dist/petal-toolkit.es855.js +5 -137
  2016. package/dist/petal-toolkit.es855.js.map +1 -1
  2017. package/dist/petal-toolkit.es856.js +30 -5
  2018. package/dist/petal-toolkit.es856.js.map +1 -1
  2019. package/dist/petal-toolkit.es857.js +2 -31
  2020. package/dist/petal-toolkit.es857.js.map +1 -1
  2021. package/dist/petal-toolkit.es859.js +12 -2
  2022. package/dist/petal-toolkit.es859.js.map +1 -1
  2023. package/dist/petal-toolkit.es86.js +1 -1
  2024. package/dist/petal-toolkit.es860.js +2 -12
  2025. package/dist/petal-toolkit.es860.js.map +1 -1
  2026. package/dist/petal-toolkit.es861.js +2 -2
  2027. package/dist/petal-toolkit.es862.js +2 -2
  2028. package/dist/petal-toolkit.es864.js +22 -2
  2029. package/dist/petal-toolkit.es864.js.map +1 -1
  2030. package/dist/petal-toolkit.es865.js +2 -22
  2031. package/dist/petal-toolkit.es865.js.map +1 -1
  2032. package/dist/petal-toolkit.es866.js +89 -2
  2033. package/dist/petal-toolkit.es866.js.map +1 -1
  2034. package/dist/petal-toolkit.es867.js +2 -89
  2035. package/dist/petal-toolkit.es867.js.map +1 -1
  2036. package/dist/petal-toolkit.es869.js +6 -2
  2037. package/dist/petal-toolkit.es869.js.map +1 -1
  2038. package/dist/petal-toolkit.es87.js +1 -1
  2039. package/dist/petal-toolkit.es870.js +2 -6
  2040. package/dist/petal-toolkit.es870.js.map +1 -1
  2041. package/dist/petal-toolkit.es871.js +27 -2
  2042. package/dist/petal-toolkit.es871.js.map +1 -1
  2043. package/dist/petal-toolkit.es872.js +40 -22
  2044. package/dist/petal-toolkit.es872.js.map +1 -1
  2045. package/dist/petal-toolkit.es873.js +238 -42
  2046. package/dist/petal-toolkit.es873.js.map +1 -1
  2047. package/dist/petal-toolkit.es874.js +2 -241
  2048. package/dist/petal-toolkit.es874.js.map +1 -1
  2049. package/dist/petal-toolkit.es875.js +34 -2
  2050. package/dist/petal-toolkit.es875.js.map +1 -1
  2051. package/dist/petal-toolkit.es876.js +2 -34
  2052. package/dist/petal-toolkit.es876.js.map +1 -1
  2053. package/dist/petal-toolkit.es877.js +2 -2
  2054. package/dist/petal-toolkit.es878.js +2 -2
  2055. package/dist/petal-toolkit.es879.js +10 -2
  2056. package/dist/petal-toolkit.es879.js.map +1 -1
  2057. package/dist/petal-toolkit.es88.js +1 -1
  2058. package/dist/petal-toolkit.es880.js +2 -10
  2059. package/dist/petal-toolkit.es880.js.map +1 -1
  2060. package/dist/petal-toolkit.es882.js +2 -2
  2061. package/dist/petal-toolkit.es883.js +2 -2
  2062. package/dist/petal-toolkit.es885.js +2 -2
  2063. package/dist/petal-toolkit.es886.js +2 -2
  2064. package/dist/petal-toolkit.es887.js +2 -2
  2065. package/dist/petal-toolkit.es89.js +2 -2
  2066. package/dist/petal-toolkit.es892.js +2 -2
  2067. package/dist/petal-toolkit.es894.js +2 -2
  2068. package/dist/petal-toolkit.es895.js +2 -2
  2069. package/dist/petal-toolkit.es896.js +2 -2
  2070. package/dist/petal-toolkit.es897.js +2 -2
  2071. package/dist/petal-toolkit.es898.js +2 -2
  2072. package/dist/petal-toolkit.es899.js +2 -2
  2073. package/dist/petal-toolkit.es9.js +3 -3
  2074. package/dist/petal-toolkit.es90.js +2 -2
  2075. package/dist/petal-toolkit.es901.js +2 -2
  2076. package/dist/petal-toolkit.es902.js +2 -2
  2077. package/dist/petal-toolkit.es905.js +2 -2
  2078. package/dist/petal-toolkit.es906.js +2 -2
  2079. package/dist/petal-toolkit.es908.js +2 -2
  2080. package/dist/petal-toolkit.es909.js +10 -2
  2081. package/dist/petal-toolkit.es909.js.map +1 -1
  2082. package/dist/petal-toolkit.es91.js +2 -2
  2083. package/dist/petal-toolkit.es910.js +2 -10
  2084. package/dist/petal-toolkit.es910.js.map +1 -1
  2085. package/dist/petal-toolkit.es911.js +2 -2
  2086. package/dist/petal-toolkit.es912.js +2 -2
  2087. package/dist/petal-toolkit.es914.js +2 -2
  2088. package/dist/petal-toolkit.es915.js +2 -2
  2089. package/dist/petal-toolkit.es916.js +2 -2
  2090. package/dist/petal-toolkit.es918.js +2 -2
  2091. package/dist/petal-toolkit.es92.js +2 -2
  2092. package/dist/petal-toolkit.es920.js +2 -2
  2093. package/dist/petal-toolkit.es921.js +2 -2
  2094. package/dist/petal-toolkit.es926.js +2 -2
  2095. package/dist/petal-toolkit.es927.js +2 -2
  2096. package/dist/petal-toolkit.es928.js +2 -2
  2097. package/dist/petal-toolkit.es929.js +2 -2
  2098. package/dist/petal-toolkit.es93.js +1 -1
  2099. package/dist/petal-toolkit.es930.js +2 -2
  2100. package/dist/petal-toolkit.es932.js +2 -2
  2101. package/dist/petal-toolkit.es933.js +2 -2
  2102. package/dist/petal-toolkit.es934.js +2 -2
  2103. package/dist/petal-toolkit.es935.js +2 -2
  2104. package/dist/petal-toolkit.es936.js +2 -2
  2105. package/dist/petal-toolkit.es937.js +2 -2
  2106. package/dist/petal-toolkit.es94.js +1 -1
  2107. package/dist/petal-toolkit.es940.js +2 -2
  2108. package/dist/petal-toolkit.es941.js +2 -2
  2109. package/dist/petal-toolkit.es942.js +2 -2
  2110. package/dist/petal-toolkit.es943.js +2 -2
  2111. package/dist/petal-toolkit.es945.js +2 -2
  2112. package/dist/petal-toolkit.es947.js +2 -2
  2113. package/dist/petal-toolkit.es948.js +2 -2
  2114. package/dist/petal-toolkit.es95.js +1 -1
  2115. package/dist/petal-toolkit.es950.js +2 -2
  2116. package/dist/petal-toolkit.es951.js +2 -2
  2117. package/dist/petal-toolkit.es952.js +2 -2
  2118. package/dist/petal-toolkit.es956.js +2 -2
  2119. package/dist/petal-toolkit.es957.js +10 -2
  2120. package/dist/petal-toolkit.es957.js.map +1 -1
  2121. package/dist/petal-toolkit.es958.js +2 -10
  2122. package/dist/petal-toolkit.es958.js.map +1 -1
  2123. package/dist/petal-toolkit.es96.js +1 -1
  2124. package/dist/petal-toolkit.es964.js +2 -2
  2125. package/dist/petal-toolkit.es965.js +10 -2
  2126. package/dist/petal-toolkit.es965.js.map +1 -1
  2127. package/dist/petal-toolkit.es966.js +2 -10
  2128. package/dist/petal-toolkit.es966.js.map +1 -1
  2129. package/dist/petal-toolkit.es97.js +2 -2
  2130. package/dist/petal-toolkit.es979.js +2 -2
  2131. package/dist/petal-toolkit.es98.js +2 -2
  2132. package/dist/petal-toolkit.es980.js +2 -2
  2133. package/dist/petal-toolkit.es989.js +2 -2
  2134. package/dist/petal-toolkit.es99.js +1 -1
  2135. package/dist/petal-toolkit.es990.js +2 -2
  2136. package/dist/petal-toolkit.es997.js +2 -2
  2137. package/dist/petal-toolkit.es998.js +2 -2
  2138. package/dist/scichart/drawing/DrawingManager.d.ts +9 -9
  2139. package/dist/scichart/drawing/index.d.ts +1 -1
  2140. package/dist/scichart/modifiers/FinChartLegendAnnotation.d.ts +14 -0
  2141. package/dist/scichart/modifiers/FinChartLegendModifier.d.ts +6 -0
  2142. package/dist/scichart/modifiers/index.d.ts +1 -1
  2143. package/dist/scichart/palettes/VolumePaletteProvider.d.ts +6 -1
  2144. package/dist/toolkit.css +1 -0
  2145. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"petal-toolkit.cjs30.js","sources":["../src/charts/core/FinancialChart/FinancialChart.tsx"],"sourcesContent":["import { useEffect, useRef, memo, useId } from 'react';\nimport {\n SciChartSurface,\n SciChartVerticalGroup,\n SciChartHorizontalGroup,\n FastCandlestickRenderableSeries,\n FastColumnRenderableSeries,\n FastLineRenderableSeries,\n FastBandRenderableSeries,\n OhlcDataSeries,\n XyDataSeries,\n XyyDataSeries,\n NumberRange,\n EAutoRange,\n ENumericFormat,\n EAxisType,\n ESeriesType,\n EChart2DModifierType,\n EXyDirection,\n EAxisAlignment,\n EAnnotationLayer,\n ECoordinateMode,\n Rect,\n Thickness,\n chartBuilder,\n BoxAnnotation,\n HorizontalLineAnnotation,\n type IThemeProvider,\n type NumericAxis,\n} from 'scichart';\nimport {\n VolumePaletteProvider,\n MACDHistogramPaletteProvider,\n MACDGradientPaletteProvider,\n} from '@/scichart/palettes';\nimport { FinChartLegendModifier } from '@/scichart/modifiers';\nimport {\n type SciChartThemePreset,\n getThemeFromPreset,\n getFinancialChartColors,\n} from '@/scichart/themes';\nimport { toUnixTimestamp, formatAxisLabel } from '@/utils';\nimport {\n calculateMACD,\n calculateRSI,\n calculateSMA,\n calculateEMA,\n calculateBollingerBands,\n calculateStochastic,\n calculateADX,\n calculateVWAP,\n type VWAPParams,\n} from '@/scichart/indicators';\nimport type { OHLCDataPoint } from '@/types';\nimport type {\n MovingAverageConfig,\n RSIConfig,\n MACDConfig,\n StochasticConfig,\n ADXConfig,\n BollingerConfig,\n VWAPConfig,\n} from './types';\nimport {\n DEFAULT_RSI_CONFIG,\n DEFAULT_MACD_CONFIG,\n DEFAULT_STOCHASTIC_CONFIG,\n DEFAULT_ADX_CONFIG,\n DEFAULT_BOLLINGER_CONFIG,\n DEFAULT_VWAP_CONFIG,\n} from './types';\n\nexport type { SciChartThemePreset };\nexport type {\n MovingAverageConfig,\n RSIConfig,\n MACDConfig,\n StochasticConfig,\n ADXConfig,\n BollingerConfig,\n VWAPConfig,\n};\n\n/** Chart type options */\nexport type ChartType = 'candlestick' | 'hollow-candlestick' | 'ohlc' | 'hlc' | 'line';\n\n/** Moving average type */\nexport type MAType = 'sma' | 'ema';\n\n/** Standard MA periods used by professionals */\nexport const MA_PERIODS = {\n /** Fast momentum, popular with day traders */\n FAST: 9,\n /** Institutional standard, medium-term */\n SHORT: 20,\n /** \"Line in the sand\" everyone watches */\n MEDIUM: 50,\n /** Sometimes used, less universal */\n LONG: 100,\n /** The big one, defines bull vs bear market */\n VERY_LONG: 200,\n} as const;\n\n/** Common MA period values */\nexport const MA_PERIOD_OPTIONS = [9, 20, 50, 100, 200] as const;\nexport type MAPeriod = (typeof MA_PERIOD_OPTIONS)[number];\n\n/** Volume Y-axis ID for linking volume series */\nconst Y_AXIS_VOLUME_ID = 'VolumeAxis';\n\n/** Default MA colors for multiple MAs */\nconst DEFAULT_MA_COLORS = [\n '#FF9800', // Orange - 9 EMA\n '#2196F3', // Blue - 21 EMA\n '#9C27B0', // Purple - 50 SMA\n '#E91E63', // Pink - 200 SMA\n '#4CAF50', // Green\n '#00BCD4', // Cyan\n];\n\nexport interface FinancialChartProps {\n /** OHLC data points with volume */\n data: OHLCDataPoint[];\n /** Chart width (CSS value or number for pixels) */\n width?: string | number;\n /** Total chart height (CSS value or number for pixels) */\n height?: string | number;\n /** Whether to show volume bars */\n showVolume?: boolean;\n /** Optional className for the container */\n className?: string;\n /** SciChart theme preset: 'dark' | 'light' | 'navy' */\n themePreset?: SciChartThemePreset;\n /** Custom SciChart theme (overrides themePreset) */\n theme?: IThemeProvider;\n /** Up bar color for volume (default: green with opacity) */\n volumeUpColor?: string;\n /** Down bar color for volume (default: red with opacity) */\n volumeDownColor?: string;\n /** Volume opacity (0-1, default 0.5) */\n volumeOpacity?: number;\n /** Callback when chart is ready */\n onChartReady?: (surface: SciChartSurface) => void;\n\n /** Chart display type (default: 'candlestick') */\n chartType?: ChartType;\n\n // =========================================================================\n // NEW CONFIG-BASED API (PREFERRED)\n // =========================================================================\n\n /**\n * Multiple moving averages configuration.\n * Supports multiple MAs of different types and periods overlaid on the main chart.\n * @example\n * movingAverages={[\n * { type: 'ema', period: 9, color: '#FF9800' },\n * { type: 'ema', period: 21, color: '#2196F3' },\n * { type: 'sma', period: 200, color: '#9C27B0' },\n * ]}\n */\n movingAverages?: MovingAverageConfig[];\n\n /**\n * RSI indicator configuration.\n * RSI shares a \"Momentum\" pane with Stochastic when both are enabled.\n * @example rsi={{ enabled: true, period: 14 }}\n */\n rsi?: RSIConfig;\n\n /**\n * MACD indicator configuration.\n * MACD gets its own dedicated pane (unbounded scale).\n * @example macd={{ enabled: true }}\n */\n macd?: MACDConfig;\n\n /**\n * Stochastic oscillator configuration.\n * Stochastic shares a \"Momentum\" pane with RSI when both are enabled.\n * @example stochastic={{ enabled: true, kPeriod: 14, dPeriod: 3 }}\n */\n stochastic?: StochasticConfig;\n\n /**\n * ADX indicator configuration.\n * ADX gets its own dedicated pane.\n * @example adx={{ enabled: true, period: 14 }}\n */\n adx?: ADXConfig;\n\n /**\n * Bollinger Bands overlay configuration.\n * Rendered on the main price chart.\n * @example bollinger={{ enabled: true, period: 20, stdDev: 2 }}\n */\n bollinger?: BollingerConfig;\n\n /**\n * VWAP overlay configuration.\n * Rendered on the main price chart with optional std dev bands.\n * @example vwap={{ enabled: true, includeBands: true }}\n */\n vwap?: VWAPConfig;\n\n /** Show legend with OHLC values (default: true) */\n showLegend?: boolean;\n\n // =========================================================================\n // VOLUME ENHANCEMENT PROPS\n // =========================================================================\n\n /** Show volume moving average line (default: false) */\n showVolumeAverage?: boolean;\n /** Period for volume moving average (default: 20) */\n volumeAveragePeriod?: number;\n /** Volume average line color (default: theme-based) */\n volumeAverageColor?: string;\n}\n\n/**\n * Find the first index where value is valid (not NaN)\n */\nfunction findFirstValidIndex(values: number[]): number {\n for (let i = 0; i < values.length; i++) {\n if (!isNaN(values[i])) return i;\n }\n return values.length; // No valid values\n}\n\n/**\n * Trim arrays to only include valid data (skip NaN warm-up period).\n * Returns aligned x and y arrays starting from the first valid y value.\n */\nfunction trimToValidData(xValues: number[], yValues: number[]): { x: number[]; y: number[] } {\n const startIndex = findFirstValidIndex(yValues);\n if (startIndex >= yValues.length) {\n return { x: [], y: [] };\n }\n return {\n x: xValues.slice(startIndex),\n y: yValues.slice(startIndex),\n };\n}\n\n/**\n * Trim multiple y-arrays to start where ALL of them have valid data.\n * Used for MACD where we need macdLine, signalLine, and histogram aligned.\n */\nfunction trimMultipleToValidData(\n xValues: number[],\n ...yArrays: number[][]\n): { x: number[]; ys: number[][] } {\n // Find the latest start index among all arrays\n let startIndex = 0;\n for (const yValues of yArrays) {\n const idx = findFirstValidIndex(yValues);\n if (idx > startIndex) startIndex = idx;\n }\n\n if (startIndex >= xValues.length) {\n return { x: [], ys: yArrays.map(() => []) };\n }\n\n return {\n x: xValues.slice(startIndex),\n ys: yArrays.map((y) => y.slice(startIndex)),\n };\n}\n\n/**\n * Get chart type styling for candlestick series\n * Let SciChart theme handle colors - only set structural properties\n */\nfunction getChartTypeStyling(chartType: ChartType) {\n switch (chartType) {\n case 'ohlc':\n return {\n strokeThickness: 2,\n dataPointWidth: 0.7,\n brushUp: 'Transparent',\n brushDown: 'Transparent',\n };\n case 'hlc':\n return {\n strokeThickness: 2,\n dataPointWidth: 0.7,\n brushUp: 'Transparent',\n brushDown: 'Transparent',\n };\n case 'hollow-candlestick':\n return {\n strokeThickness: 1,\n dataPointWidth: 0.7,\n brushUp: 'Transparent', // Hollow for up - theme handles colors\n };\n case 'line':\n // Special case - handled separately\n return null;\n case 'candlestick':\n default:\n return {\n strokeThickness: 1,\n dataPointWidth: 0.7,\n // Let theme handle brush colors\n };\n }\n}\n\n/**\n * Create zone shading annotations for RSI/Stochastic/ADX panes\n */\nfunction createZoneAnnotations(config: {\n overboughtStart: number;\n overboughtEnd: number;\n oversoldStart: number;\n oversoldEnd: number;\n overboughtColor: string;\n oversoldColor: string;\n thresholdColor: string;\n centerLine?: number;\n centerLineColor?: string;\n}): (BoxAnnotation | HorizontalLineAnnotation)[] {\n const annotations: (BoxAnnotation | HorizontalLineAnnotation)[] = [];\n\n // Overbought zone box\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: config.overboughtStart,\n y2: config.overboughtEnd,\n fill: config.overboughtColor,\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Oversold zone box\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: config.oversoldStart,\n y2: config.oversoldEnd,\n fill: config.oversoldColor,\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Overbought threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.overboughtStart,\n stroke: config.thresholdColor,\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Oversold threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.oversoldEnd,\n stroke: config.thresholdColor,\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Center line (e.g., 50 for RSI)\n if (config.centerLine !== undefined) {\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.centerLine,\n stroke: config.centerLineColor ?? 'rgba(156, 163, 175, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [6, 3],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n }\n\n return annotations;\n}\n\n/**\n * Create ADX zone annotations (weak trend zone + threshold lines)\n */\nfunction createADXZoneAnnotations(\n weakTrendLevel: number,\n strongTrendLevel: number\n): (BoxAnnotation | HorizontalLineAnnotation)[] {\n const annotations: (BoxAnnotation | HorizontalLineAnnotation)[] = [];\n\n // Weak trend zone (0 to weakTrendLevel)\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: 0,\n y2: weakTrendLevel,\n fill: 'rgba(156, 163, 175, 0.08)',\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Weak trend threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: weakTrendLevel,\n stroke: 'rgba(156, 163, 175, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Strong trend threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: strongTrendLevel,\n stroke: 'rgba(168, 85, 247, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n return annotations;\n}\n\n/**\n * Financial chart component with candlesticks and volume on a single unified surface.\n * Supports multiple moving averages, MACD, RSI, Stochastic, ADX, Bollinger Bands, and VWAP.\n *\n * @example\n * ```tsx\n * import { FinancialChart } from '@petal/toolkit';\n *\n * function App() {\n * return (\n * <FinancialChart\n * data={data}\n * height={800}\n * showVolume={true}\n * // Multiple MAs\n * movingAverages={[\n * { type: 'ema', period: 9, color: '#FF9800' },\n * { type: 'ema', period: 21, color: '#2196F3' },\n * { type: 'sma', period: 200, color: '#9C27B0' },\n * ]}\n * // Overlays\n * bollinger={{ enabled: true, period: 20, stdDev: 2 }}\n * vwap={{ enabled: true, includeBands: true }}\n * // Subcharts (RSI + Stochastic share momentum pane)\n * rsi={{ enabled: true, period: 14 }}\n * stochastic={{ enabled: true }}\n * macd={{ enabled: true }}\n * adx={{ enabled: true }}\n * />\n * );\n * }\n * ```\n */\nexport const FinancialChart = memo(function FinancialChart({\n data,\n width = '100%',\n height = 500,\n showVolume = true,\n className,\n themePreset = 'dark',\n theme: customTheme,\n volumeUpColor,\n volumeDownColor,\n volumeOpacity = 0.5,\n onChartReady,\n chartType = 'candlestick',\n // Config-based API\n movingAverages,\n rsi: rsiConfig,\n macd: macdConfig,\n stochastic: stochasticConfig,\n adx: adxConfig,\n bollinger: bollingerConfig,\n vwap: vwapConfig,\n showLegend = true,\n // Volume enhancement props\n showVolumeAverage = false,\n volumeAveragePeriod = 20,\n volumeAverageColor,\n}: FinancialChartProps) {\n const chartId = useId();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const surfaceRef = useRef<SciChartSurface | null>(null);\n const ohlcDataSeriesRef = useRef<OhlcDataSeries | null>(null);\n const volumeDataSeriesRef = useRef<XyDataSeries | null>(null);\n const maDataSeriesRefs = useRef<(XyDataSeries | null)[]>([]);\n // Refs for band fill data series (for data updates)\n const bollingerFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n const vwapInnerFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n const vwapOuterFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n\n // =========================================================================\n // RESOLVE CONFIG WITH DEFAULTS\n // =========================================================================\n\n // Resolve moving averages with defaults\n const resolvedMovingAverages: MovingAverageConfig[] = movingAverages ?? [];\n\n // Resolve RSI config with defaults\n const resolvedRsi: RSIConfig = rsiConfig ?? { ...DEFAULT_RSI_CONFIG, enabled: false };\n\n // Resolve MACD config with defaults\n const resolvedMacd: MACDConfig = macdConfig ?? { ...DEFAULT_MACD_CONFIG, enabled: false };\n\n // Resolve Stochastic config with defaults\n const resolvedStochastic: StochasticConfig = stochasticConfig ?? {\n ...DEFAULT_STOCHASTIC_CONFIG,\n enabled: false,\n };\n\n // Resolve ADX config with defaults\n const resolvedAdx: ADXConfig = adxConfig ?? { ...DEFAULT_ADX_CONFIG, enabled: false };\n\n // Resolve Bollinger config with defaults\n const resolvedBollinger: BollingerConfig = bollingerConfig ?? {\n ...DEFAULT_BOLLINGER_CONFIG,\n enabled: false,\n };\n\n // Resolve VWAP config with defaults\n const resolvedVwap: VWAPConfig = vwapConfig ?? { ...DEFAULT_VWAP_CONFIG, enabled: false };\n\n // Get the SciChart theme to use\n const sciChartTheme = customTheme ?? getThemeFromPreset(themePreset);\n\n // Get theme colors for custom styling\n const themeColors = getFinancialChartColors(themePreset);\n\n // Resolved volume colors with opacity\n const resolvedVolumeUpColor = volumeUpColor ?? themeColors.upColor + 'CC';\n const resolvedVolumeDownColor = volumeDownColor ?? themeColors.downColor + 'CC';\n const resolvedBollingerColor = resolvedBollinger.bandColor ?? '#2196F380';\n const resolvedVwapColor = resolvedVwap.color ?? '#FF5722';\n const resolvedVwapBandColor = resolvedVwap.bandColor ?? '#FF572240';\n\n // Generate unique IDs for chart containers\n const mainChartId = `financial-main-${chartId}`;\n const momentumChartId = `financial-momentum-${chartId}`;\n const macdChartId = `financial-macd-${chartId}`;\n const adxChartId = `financial-adx-${chartId}`;\n\n // =========================================================================\n // CALCULATE SUBCHART LAYOUT\n // =========================================================================\n // New layout: RSI + Stochastic share \"Momentum\" pane, MACD and ADX get own panes\n\n const hasMomentumPane = resolvedRsi.enabled || resolvedStochastic.enabled;\n const hasMacdPane = resolvedMacd.enabled;\n const hasAdxPane = resolvedAdx.enabled;\n\n // Count distinct panes (not individual indicators)\n const paneCount = [hasMomentumPane, hasMacdPane, hasAdxPane].filter(Boolean).length;\n\n // Calculate chart heights based on pane count\n const paneGap = 0.005; // Gap between panes (~0.5% of chart height)\n\n // Pane height configuration by count: { main, indicator }\n const PANE_HEIGHTS: Record<number, { main: number; indicator: number }> = {\n 0: { main: 1.0, indicator: 0 },\n 1: { main: 0.7, indicator: 0.3 },\n 2: { main: 0.6, indicator: 0.2 },\n 3: { main: 0.55, indicator: 0.15 },\n };\n\n const { main, indicator } = PANE_HEIGHTS[paneCount] ?? PANE_HEIGHTS[3];\n const totalGap = paneGap * paneCount;\n const mainChartHeight = main - totalGap;\n const momentumChartHeight = hasMomentumPane ? indicator : 0;\n const macdChartHeight = hasMacdPane ? indicator : 0;\n const adxChartHeight = hasAdxPane ? indicator : 0;\n\n // Initialize chart\n useEffect(() => {\n if (!wrapperRef.current || data.length === 0) return;\n\n let isDisposed = false;\n\n const initChart = async () => {\n try {\n // Convert data to SciChart format\n const xValues = data.map((d) => toUnixTimestamp(d.date));\n const openValues = data.map((d) => d.open);\n const highValues = data.map((d) => d.high);\n const lowValues = data.map((d) => d.low);\n const closeValues = data.map((d) => d.close);\n const volumeValues = data.map((d) => d.volume ?? 0);\n\n // =====================================================================\n // CALCULATE INDICATORS\n // =====================================================================\n\n // Calculate multiple MAs\n const maResults: { config: MovingAverageConfig; trimmed: { x: number[]; y: number[] } }[] =\n [];\n for (const maConfig of resolvedMovingAverages) {\n if (maConfig.visible === false) continue;\n const rawValues =\n maConfig.type === 'ema'\n ? calculateEMA(closeValues, maConfig.period)\n : calculateSMA(closeValues, maConfig.period);\n const trimmed = trimToValidData(xValues, rawValues);\n maResults.push({ config: maConfig, trimmed });\n }\n\n // MACD\n const macdData = resolvedMacd.enabled\n ? calculateMACD(closeValues, {\n fastPeriod: resolvedMacd.fastPeriod ?? 12,\n slowPeriod: resolvedMacd.slowPeriod ?? 26,\n signalPeriod: resolvedMacd.signalPeriod ?? 9,\n })\n : null;\n\n // RSI\n const rsiData = resolvedRsi.enabled\n ? calculateRSI(closeValues, resolvedRsi.period ?? 14)\n : null;\n\n // Bollinger Bands\n const bollingerData = resolvedBollinger.enabled\n ? calculateBollingerBands(closeValues, {\n period: resolvedBollinger.period ?? 20,\n stdDevMultiplier: resolvedBollinger.stdDevMultiplier ?? 2,\n })\n : null;\n\n // Stochastic\n const stochasticData = resolvedStochastic.enabled\n ? calculateStochastic(\n data.map((d) => ({ high: d.high, low: d.low, close: d.close })),\n {\n kPeriod: resolvedStochastic.kPeriod ?? 14,\n dPeriod: resolvedStochastic.dPeriod ?? 3,\n smoothK: resolvedStochastic.smoothK ?? 3,\n }\n )\n : null;\n\n // ADX\n const adxData = resolvedAdx.enabled\n ? calculateADX(\n data.map((d) => ({ high: d.high, low: d.low, close: d.close })),\n { period: resolvedAdx.period ?? 14 }\n )\n : null;\n\n // VWAP\n const vwapData = resolvedVwap.enabled\n ? calculateVWAP(\n data.map((d) => ({\n high: d.high,\n low: d.low,\n close: d.close,\n volume: d.volume ?? 0,\n })),\n {\n includeBands: resolvedVwap.includeBands ?? DEFAULT_VWAP_CONFIG.includeBands,\n bandCount: resolvedVwap.bandCount ?? DEFAULT_VWAP_CONFIG.bandCount,\n } as VWAPParams\n )\n : null;\n\n // =====================================================================\n // TRIM DATA TO VALID RANGES\n // =====================================================================\n\n // Trim MACD data - all three lines need to be valid\n const trimmedMacd = macdData\n ? trimMultipleToValidData(\n xValues,\n macdData.macdLine,\n macdData.signalLine,\n macdData.histogram\n )\n : null;\n\n // Trim RSI data to valid range\n const trimmedRsi = rsiData ? trimToValidData(xValues, rsiData.rsi) : null;\n\n // Trim Bollinger Bands data\n const trimmedBollinger = bollingerData\n ? trimMultipleToValidData(\n xValues,\n bollingerData.upperBand,\n bollingerData.middleBand,\n bollingerData.lowerBand\n )\n : null;\n\n // Trim Stochastic data\n const trimmedStochastic = stochasticData\n ? trimMultipleToValidData(xValues, stochasticData.percentK, stochasticData.percentD)\n : null;\n\n // Trim ADX data\n const trimmedADX = adxData\n ? trimMultipleToValidData(xValues, adxData.adx, adxData.plusDI, adxData.minusDI)\n : null;\n\n // VWAP doesn't need trimming (starts valid from first bar)\n const trimmedVwap = vwapData\n ? {\n x: xValues,\n vwap: vwapData.vwap,\n upperBand1: vwapData.upperBand1,\n lowerBand1: vwapData.lowerBand1,\n upperBand2: vwapData.upperBand2,\n lowerBand2: vwapData.lowerBand2,\n }\n : null;\n\n // =====================================================================\n // CHART MODIFIERS\n // =====================================================================\n\n const chartModifiers = [\n { type: EChart2DModifierType.ZoomPan, options: { xyDirection: EXyDirection.XDirection } },\n {\n type: EChart2DModifierType.ZoomExtents,\n options: { xyDirection: EXyDirection.XDirection },\n },\n {\n type: EChart2DModifierType.MouseWheelZoom,\n options: { xyDirection: EXyDirection.XDirection },\n },\n ];\n\n // =====================================================================\n // BUILD MAIN CHART Y-AXES\n // =====================================================================\n\n const mainYAxes: any[] = [\n // PRIMARY Y-AXIS: Price\n {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 2,\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n },\n },\n ];\n\n // Add volume Y-axis if showing volume\n if (showVolume) {\n mainYAxes.push({\n type: EAxisType.NumericAxis,\n options: {\n id: Y_AXIS_VOLUME_ID,\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0, 4), // Volume takes bottom ~20% of chart\n isVisible: false, // Hidden axis\n autoRange: EAutoRange.Always,\n },\n });\n }\n\n // =====================================================================\n // BUILD MAIN CHART SERIES\n // =====================================================================\n\n const chartTypeStyling = getChartTypeStyling(chartType);\n const mainSeries: any[] = [];\n\n if (chartType === 'line') {\n // Line chart - use close prices (theme handles color)\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues,\n yValues: closeValues,\n dataSeriesName: 'Price',\n },\n options: {\n strokeThickness: 2,\n },\n });\n } else {\n // Candlestick/OHLC series\n mainSeries.push({\n type: ESeriesType.CandlestickSeries,\n ohlcData: {\n xValues,\n openValues,\n highValues,\n lowValues,\n closeValues,\n dataSeriesName: 'OHLC',\n },\n options: {\n ...chartTypeStyling,\n },\n });\n }\n\n // Add multiple MA series\n for (let i = 0; i < maResults.length; i++) {\n const { config, trimmed } = maResults[i];\n if (trimmed.y.length === 0) continue;\n\n const color = config.color ?? DEFAULT_MA_COLORS[i % DEFAULT_MA_COLORS.length];\n const label = `${config.type.toUpperCase()}${config.period}`;\n\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmed.x,\n yValues: trimmed.y,\n dataSeriesName: label,\n },\n options: {\n stroke: color,\n strokeThickness: config.strokeThickness ?? 1.5,\n },\n });\n }\n\n // Add Bollinger Bands overlay if enabled\n if (resolvedBollinger.enabled && trimmedBollinger && trimmedBollinger.x.length > 0) {\n const [upperBand, middleBand, lowerBand] = trimmedBollinger.ys;\n\n // Upper Band\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: upperBand,\n dataSeriesName: 'BB Upper',\n },\n options: {\n stroke: resolvedBollingerColor,\n strokeThickness: 1,\n },\n });\n\n // Middle Band (SMA)\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: middleBand,\n dataSeriesName: 'BB Middle',\n },\n options: {\n stroke: resolvedBollinger.middleColor ?? resolvedBollingerColor,\n strokeThickness: 1,\n strokeDashArray: [5, 5],\n },\n });\n\n // Lower Band\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: lowerBand,\n dataSeriesName: 'BB Lower',\n },\n options: {\n stroke: resolvedBollingerColor,\n strokeThickness: 1,\n },\n });\n }\n\n // Add VWAP overlay if enabled\n if (resolvedVwap.enabled && trimmedVwap && trimmedVwap.vwap.length > 0) {\n // Main VWAP line\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.vwap,\n dataSeriesName: 'VWAP',\n },\n options: {\n stroke: resolvedVwapColor,\n strokeThickness: 2,\n },\n });\n\n // VWAP bands if enabled\n if (resolvedVwap.includeBands !== false) {\n // +1 and -1 std dev bands\n if (trimmedVwap.upperBand1 && trimmedVwap.lowerBand1) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand1,\n dataSeriesName: 'VWAP +1σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n },\n });\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.lowerBand1,\n dataSeriesName: 'VWAP -1σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n },\n });\n }\n\n // +2 and -2 std dev bands\n if (\n (resolvedVwap.bandCount ?? 2) === 2 &&\n trimmedVwap.upperBand2 &&\n trimmedVwap.lowerBand2\n ) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand2,\n dataSeriesName: 'VWAP +2σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n strokeDashArray: [3, 3],\n },\n });\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.lowerBand2,\n dataSeriesName: 'VWAP -2σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n strokeDashArray: [3, 3],\n },\n });\n }\n }\n }\n\n // Add volume series if showing volume\n if (showVolume) {\n mainSeries.push({\n type: ESeriesType.ColumnSeries,\n xyData: {\n xValues,\n yValues: volumeValues,\n dataSeriesName: 'Volume',\n },\n options: {\n yAxisId: Y_AXIS_VOLUME_ID,\n strokeThickness: 0,\n dataPointWidth: 0.7,\n opacity: volumeOpacity,\n },\n });\n\n // Add volume moving average line if enabled\n if (showVolumeAverage) {\n const volumeSma = calculateSMA(volumeValues, volumeAveragePeriod);\n const trimmedVolumeSma = trimToValidData(xValues, volumeSma);\n\n if (trimmedVolumeSma.y.length > 0) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVolumeSma.x,\n yValues: trimmedVolumeSma.y,\n dataSeriesName: `Vol SMA${volumeAveragePeriod}`,\n },\n options: {\n yAxisId: Y_AXIS_VOLUME_ID,\n stroke: volumeAverageColor ?? '#f97316',\n strokeThickness: 1.5,\n strokeDashArray: [4, 4],\n },\n });\n }\n }\n }\n\n // =====================================================================\n // BUILD SUBCHARTS\n // =====================================================================\n\n const subCharts: any[] = [];\n let currentY = 0;\n\n // Determine which subchart shows x-axis labels (the last one)\n const lastPaneType = hasAdxPane\n ? 'adx'\n : hasMacdPane\n ? 'macd'\n : hasMomentumPane\n ? 'momentum'\n : 'main';\n\n // Main chart subchart\n subCharts.push({\n surface: {\n id: 'mainChart',\n position: new Rect(0, currentY, 1, mainChartHeight),\n theme: sciChartTheme,\n subChartContainerId: mainChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'main',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: mainYAxes,\n series: mainSeries,\n modifiers: chartModifiers,\n });\n currentY += mainChartHeight + paneGap;\n\n // =====================================================================\n // SHARED MOMENTUM PANE (RSI + Stochastic)\n // =====================================================================\n\n if (hasMomentumPane) {\n const momentumSeries: any[] = [];\n\n // Add RSI to momentum pane\n if (resolvedRsi.enabled && trimmedRsi && trimmedRsi.y.length > 0) {\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedRsi.x,\n yValues: trimmedRsi.y,\n dataSeriesName: 'RSI',\n },\n options: {\n stroke: resolvedRsi.color ?? themeColors.rsiColor,\n strokeThickness: 1.5,\n },\n });\n }\n\n // Add Stochastic to momentum pane\n if (resolvedStochastic.enabled && trimmedStochastic && trimmedStochastic.x.length > 0) {\n const [percentK, percentD] = trimmedStochastic.ys;\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedStochastic.x,\n yValues: percentK,\n dataSeriesName: '%K',\n },\n options: {\n stroke: resolvedStochastic.kColor ?? '#3b82f6',\n strokeThickness: 1.5,\n },\n });\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedStochastic.x,\n yValues: percentD,\n dataSeriesName: '%D',\n },\n options: {\n stroke: resolvedStochastic.dColor ?? '#f97316',\n strokeThickness: 1.5,\n strokeDashArray: [3, 3],\n },\n });\n }\n\n subCharts.push({\n surface: {\n id: 'momentumChart',\n position: new Rect(0, currentY, 1, momentumChartHeight),\n theme: sciChartTheme,\n subChartContainerId: momentumChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'momentum',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n visibleRange: new NumberRange(0, 100),\n autoRange: EAutoRange.Never,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 0,\n },\n },\n series: momentumSeries,\n modifiers: chartModifiers,\n });\n currentY += momentumChartHeight + paneGap;\n }\n\n // =====================================================================\n // MACD PANE\n // =====================================================================\n\n if (hasMacdPane && trimmedMacd && trimmedMacd.x.length > 0) {\n const [macdLine, signalLine, histogram] = trimmedMacd.ys;\n subCharts.push({\n surface: {\n id: 'macdChart',\n position: new Rect(0, currentY, 1, macdChartHeight),\n theme: sciChartTheme,\n subChartContainerId: macdChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'macd',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 4,\n },\n },\n series: [\n // MACD Histogram\n {\n type: ESeriesType.ColumnSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: histogram,\n dataSeriesName: 'Histogram',\n },\n options: {\n strokeThickness: 0,\n dataPointWidth: 0.6,\n },\n },\n // MACD Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: macdLine,\n dataSeriesName: 'MACD',\n },\n options: {\n stroke: resolvedMacd.macdColor ?? themeColors.macdLineColor,\n strokeThickness: 1.5,\n },\n },\n // Signal Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: signalLine,\n dataSeriesName: 'Signal',\n },\n options: {\n stroke: resolvedMacd.signalColor ?? themeColors.signalLineColor,\n strokeThickness: 1.5,\n },\n },\n ],\n modifiers: chartModifiers,\n });\n currentY += macdChartHeight + paneGap;\n }\n\n // =====================================================================\n // ADX PANE\n // =====================================================================\n\n if (hasAdxPane && trimmedADX && trimmedADX.x.length > 0) {\n const [adx, plusDI, minusDI] = trimmedADX.ys;\n subCharts.push({\n surface: {\n id: 'adxChart',\n position: new Rect(0, currentY, 1, adxChartHeight),\n theme: sciChartTheme,\n subChartContainerId: adxChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'adx',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 0,\n },\n },\n series: [\n // ADX Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: adx,\n dataSeriesName: 'ADX',\n },\n options: {\n stroke: resolvedAdx.adxColor ?? '#a855f7',\n strokeThickness: 2,\n },\n },\n // +DI Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: plusDI,\n dataSeriesName: '+DI',\n },\n options: {\n stroke: resolvedAdx.plusDIColor ?? themeColors.upColor,\n strokeThickness: 1.5,\n },\n },\n // -DI Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: minusDI,\n dataSeriesName: '-DI',\n },\n options: {\n stroke: resolvedAdx.minusDIColor ?? themeColors.downColor,\n strokeThickness: 1.5,\n },\n },\n ],\n modifiers: chartModifiers,\n });\n }\n\n // =====================================================================\n // BUILD CHART\n // =====================================================================\n\n const { sciChartSurface } = await chartBuilder.build2DChart(wrapperRef.current!, {\n subCharts,\n });\n\n if (isDisposed) {\n sciChartSurface.delete();\n return;\n }\n\n surfaceRef.current = sciChartSurface;\n\n // Force apply theme to all surfaces (chartBuilder doesn't always do this correctly)\n sciChartSurface.applyTheme(sciChartTheme);\n sciChartSurface.subCharts.forEach((subChart) => {\n subChart.applyTheme(sciChartTheme);\n });\n\n // Remove default padding from surface and subcharts to minimize gaps\n sciChartSurface.padding = Thickness.fromNumber(0);\n sciChartSurface.subCharts.forEach((subChart) => {\n subChart.padding = Thickness.fromNumber(0);\n });\n\n // Synchronize Y-axis widths across all sub-charts using SciChartVerticalGroup\n const verticalGroup = new SciChartVerticalGroup();\n sciChartSurface.subCharts.forEach((subChart) => {\n verticalGroup.addSurfaceToGroup(subChart);\n });\n\n // Synchronize X-axis grid lines across all sub-charts using SciChartHorizontalGroup\n const horizontalGroup = new SciChartHorizontalGroup();\n sciChartSurface.subCharts.forEach((subChart) => {\n horizontalGroup.addSurfaceToGroup(subChart);\n });\n\n // Override X-axis label formatter on all subcharts with smart granularity detection\n const minX = Math.min(...xValues);\n const maxX = Math.max(...xValues);\n sciChartSurface.subCharts.forEach((subChart) => {\n const xAxis = subChart.xAxes.get(0);\n if (xAxis?.labelProvider) {\n xAxis.labelProvider.formatLabel = (dataValue: number) =>\n formatAxisLabel(dataValue, [minX, maxX]);\n }\n });\n\n // Get data series references from created chart\n const mainSubChart = sciChartSurface.subCharts[0];\n\n // Set up data series references\n if (chartType !== 'line') {\n const candlestickSeries = mainSubChart.renderableSeries.get(\n 0\n ) as FastCandlestickRenderableSeries;\n ohlcDataSeriesRef.current = candlestickSeries.dataSeries as OhlcDataSeries;\n }\n\n // Find MA and Volume series\n let seriesIndex = 1; // Start after candlestick/line\n\n // Store MA data series refs\n maDataSeriesRefs.current = [];\n for (let i = 0; i < maResults.length; i++) {\n const maSeries = mainSubChart.renderableSeries.get(\n seriesIndex\n ) as FastLineRenderableSeries;\n if (maSeries) {\n maDataSeriesRefs.current.push(maSeries.dataSeries as XyDataSeries);\n }\n seriesIndex++;\n }\n\n // Skip Bollinger bands series\n if (resolvedBollinger.enabled && trimmedBollinger && trimmedBollinger.x.length > 0) {\n seriesIndex += 3; // Upper, Middle, Lower bands\n }\n\n // Skip VWAP series\n if (resolvedVwap.enabled && trimmedVwap && trimmedVwap.vwap.length > 0) {\n seriesIndex += 1; // VWAP line\n if (resolvedVwap.includeBands !== false) {\n seriesIndex += 2; // +1σ, -1σ\n if ((resolvedVwap.bandCount ?? 2) === 2) {\n seriesIndex += 2; // +2σ, -2σ\n }\n }\n }\n\n if (showVolume) {\n const volumeSeries = mainSubChart.renderableSeries.get(\n seriesIndex\n ) as FastColumnRenderableSeries;\n if (volumeSeries) {\n volumeDataSeriesRef.current = volumeSeries.dataSeries as XyDataSeries;\n\n // Apply volume palette provider if we have OHLC data\n if (ohlcDataSeriesRef.current) {\n volumeSeries.paletteProvider = new VolumePaletteProvider(\n ohlcDataSeriesRef.current,\n resolvedVolumeUpColor,\n resolvedVolumeDownColor\n );\n }\n }\n }\n\n // Apply MACD histogram palette provider\n if (hasMacdPane && trimmedMacd && trimmedMacd.x.length > 0) {\n const macdSubChart = sciChartSurface.subCharts.find((sc) => sc.id === 'macdChart');\n if (macdSubChart) {\n const histogramSeries = macdSubChart.renderableSeries.get(\n 0\n ) as FastColumnRenderableSeries;\n if (histogramSeries) {\n // Use gradient histogram if enabled (default: true)\n if (resolvedMacd.useGradientHistogram !== false) {\n const gradientPalette = new MACDGradientPaletteProvider();\n gradientPalette.setHistogramData(trimmedMacd.ys[2]);\n histogramSeries.paletteProvider = gradientPalette;\n } else {\n histogramSeries.paletteProvider = new MACDHistogramPaletteProvider(\n resolvedMacd.histogramUpColor ?? themeColors.histogramUpColor,\n resolvedMacd.histogramDownColor ?? themeColors.histogramDownColor\n );\n }\n }\n\n // Add MACD zero line if enabled (default: true)\n if (resolvedMacd.showZeroLine !== false) {\n macdSubChart.annotations.add(\n new HorizontalLineAnnotation({\n y1: 0,\n stroke: 'rgba(156, 163, 175, 0.6)',\n strokeThickness: 1.5,\n strokeDashArray: [6, 3],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n }\n }\n }\n\n // =====================================================================\n // ADD ZONE ANNOTATIONS TO MOMENTUM PANE (RSI + Stochastic)\n // =====================================================================\n\n if (hasMomentumPane) {\n const momentumSubChart = sciChartSurface.subCharts.find(\n (sc) => sc.id === 'momentumChart'\n );\n if (momentumSubChart) {\n // Add RSI zones if RSI is enabled\n if (resolvedRsi.enabled && resolvedRsi.showZones !== false) {\n const rsiOverbought = resolvedRsi.overbought ?? 70;\n const rsiOversold = resolvedRsi.oversold ?? 30;\n\n const rsiZones = createZoneAnnotations({\n overboughtStart: rsiOverbought,\n overboughtEnd: 100,\n oversoldStart: 0,\n oversoldEnd: rsiOversold,\n overboughtColor: 'rgba(239, 68, 68, 0.1)',\n oversoldColor: 'rgba(34, 197, 94, 0.1)',\n thresholdColor: 'rgba(156, 163, 175, 0.5)',\n centerLine: resolvedRsi.showCenterLine !== false ? 50 : undefined,\n centerLineColor: 'rgba(156, 163, 175, 0.5)',\n });\n\n rsiZones.forEach((annotation) => momentumSubChart.annotations.add(annotation));\n }\n\n // Add Stochastic zones if Stochastic is enabled (and RSI zones not already added)\n if (\n resolvedStochastic.enabled &&\n resolvedStochastic.showZones !== false &&\n !resolvedRsi.enabled\n ) {\n const stochOverbought = resolvedStochastic.overboughtLevel ?? 80;\n const stochOversold = resolvedStochastic.oversoldLevel ?? 20;\n\n const stochZones = createZoneAnnotations({\n overboughtStart: stochOverbought,\n overboughtEnd: 100,\n oversoldStart: 0,\n oversoldEnd: stochOversold,\n overboughtColor: 'rgba(239, 68, 68, 0.1)',\n oversoldColor: 'rgba(34, 197, 94, 0.1)',\n thresholdColor: 'rgba(156, 163, 175, 0.5)',\n });\n\n stochZones.forEach((annotation) => momentumSubChart.annotations.add(annotation));\n }\n }\n }\n\n // =====================================================================\n // ADD ZONE ANNOTATIONS TO ADX PANE\n // =====================================================================\n\n if (hasAdxPane && trimmedADX && trimmedADX.x.length > 0) {\n const adxSubChart = sciChartSurface.subCharts.find((sc) => sc.id === 'adxChart');\n if (adxSubChart) {\n // Add ADX zones if enabled\n if (resolvedAdx.showZones !== false) {\n const weakTrendLevel = resolvedAdx.weakTrendLevel ?? 20;\n const strongTrendLevel = resolvedAdx.strongTrendLevel ?? 40;\n\n const adxZones = createADXZoneAnnotations(weakTrendLevel, strongTrendLevel);\n adxZones.forEach((annotation) => adxSubChart.annotations.add(annotation));\n }\n }\n }\n\n // =====================================================================\n // ADD BOLLINGER BANDS FILL (BAND SERIES)\n // =====================================================================\n\n if (\n resolvedBollinger.enabled &&\n resolvedBollinger.showFill !== false &&\n trimmedBollinger &&\n trimmedBollinger.x.length > 0\n ) {\n const wasmContext = mainSubChart.webAssemblyContext2D;\n const [upperBand, , lowerBand] = trimmedBollinger.ys;\n\n // Create band fill series (inserted at index 0 so it's behind the lines)\n const bollingerFillColor = resolvedBollinger.fillColor ?? 'rgba(59, 130, 246, 0.1)';\n const bandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedBollinger.x,\n yValues: upperBand,\n y1Values: lowerBand,\n dataSeriesName: 'BB Fill',\n });\n\n // Store ref for data updates\n bollingerFillDataSeriesRef.current = bandDataSeries;\n\n const bandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: bandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: bollingerFillColor,\n fillY1: bollingerFillColor,\n strokeThickness: 0,\n });\n\n // Insert at beginning so it renders behind the band lines\n mainSubChart.renderableSeries.insert(0, bandSeries);\n }\n\n // =====================================================================\n // ADD VWAP BAND FILLS (BAND SERIES)\n // =====================================================================\n\n if (\n resolvedVwap.enabled &&\n resolvedVwap.showFill !== false &&\n resolvedVwap.includeBands !== false &&\n trimmedVwap\n ) {\n const wasmContext = mainSubChart.webAssemblyContext2D;\n const band1Fill = resolvedVwap.band1Fill ?? 'rgba(255, 87, 34, 0.15)';\n const band2Fill = resolvedVwap.band2Fill ?? 'rgba(255, 87, 34, 0.08)';\n\n // Add outer bands fill first (±2σ) - only if bandCount is 2\n if (\n (resolvedVwap.bandCount ?? 2) === 2 &&\n trimmedVwap.upperBand2 &&\n trimmedVwap.lowerBand2\n ) {\n const outerBandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand2,\n y1Values: trimmedVwap.lowerBand2,\n dataSeriesName: 'VWAP ±2σ Fill',\n });\n\n // Store ref for data updates\n vwapOuterFillDataSeriesRef.current = outerBandDataSeries;\n\n const outerBandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: outerBandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: band2Fill,\n fillY1: band2Fill,\n strokeThickness: 0,\n });\n\n mainSubChart.renderableSeries.insert(0, outerBandSeries);\n }\n\n // Add inner bands fill (±1σ)\n if (trimmedVwap.upperBand1 && trimmedVwap.lowerBand1) {\n const innerBandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand1,\n y1Values: trimmedVwap.lowerBand1,\n dataSeriesName: 'VWAP ±1σ Fill',\n });\n\n // Store ref for data updates\n vwapInnerFillDataSeriesRef.current = innerBandDataSeries;\n\n const innerBandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: innerBandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: band1Fill,\n fillY1: band1Fill,\n strokeThickness: 0,\n });\n\n mainSubChart.renderableSeries.insert(0, innerBandSeries);\n }\n }\n\n // Add legend modifier if enabled\n if (showLegend) {\n const legendModifier = new FinChartLegendModifier({\n crosshairStroke: '#666666',\n crosshairStrokeDashArray: [3, 3],\n showAxisLabels: true,\n axisLabelFill: themePreset === 'light' ? '#ffffff' : '#1a3a4a',\n axisLabelStroke: themePreset === 'light' ? '#333333' : '#e0e0e0',\n textColor: themePreset === 'light' ? '#1f2937' : '#e0e0e0',\n });\n sciChartSurface.chartModifiers.add(legendModifier);\n }\n\n // Set up X-axis sync across subcharts (range AND tick positions)\n if (sciChartSurface.subCharts.length > 1) {\n let isSyncing = false;\n const mainXAxis = mainSubChart.xAxes.get(0) as NumericAxis;\n\n if (mainXAxis) {\n // Sync both visible range AND major/minor delta for grid line alignment\n const syncAxes = (sourceAxis: NumericAxis) => {\n if (isSyncing) return;\n isSyncing = true;\n\n sciChartSurface.subCharts.forEach((subChart) => {\n if (subChart.id !== 'mainChart') {\n const xAxis = subChart.xAxes.get(0) as NumericAxis;\n if (xAxis) {\n xAxis.visibleRange = sourceAxis.visibleRange;\n // Sync tick intervals for grid line alignment\n if (sourceAxis.majorDelta !== undefined) {\n xAxis.majorDelta = sourceAxis.majorDelta;\n }\n if (sourceAxis.minorDelta !== undefined) {\n xAxis.minorDelta = sourceAxis.minorDelta;\n }\n }\n }\n });\n\n isSyncing = false;\n };\n\n // Initial sync to align grid lines on first render\n syncAxes(mainXAxis);\n\n // Subscribe to main X-axis changes\n if (mainXAxis.visibleRangeChanged?.subscribe) {\n mainXAxis.visibleRangeChanged.subscribe(() => {\n syncAxes(mainXAxis);\n });\n }\n\n // Also sync from indicator charts back to main\n sciChartSurface.subCharts.forEach((subChart) => {\n if (subChart.id !== 'mainChart') {\n const xAxis = subChart.xAxes.get(0) as NumericAxis;\n if (xAxis?.visibleRangeChanged?.subscribe) {\n xAxis.visibleRangeChanged.subscribe((args) => {\n if (isSyncing || !args?.visibleRange) return;\n isSyncing = true;\n mainXAxis.visibleRange = args.visibleRange;\n isSyncing = false;\n });\n }\n }\n });\n }\n }\n\n onChartReady?.(sciChartSurface);\n } catch (error) {\n console.error('Failed to initialize FinancialChart:', error);\n }\n };\n\n initChart();\n\n return () => {\n isDisposed = true;\n if (surfaceRef.current) {\n surfaceRef.current.delete();\n surfaceRef.current = null;\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n sciChartTheme,\n showVolume,\n resolvedVolumeUpColor,\n resolvedVolumeDownColor,\n volumeOpacity,\n chartType,\n // New config API\n JSON.stringify(resolvedMovingAverages),\n JSON.stringify(resolvedRsi),\n JSON.stringify(resolvedMacd),\n JSON.stringify(resolvedStochastic),\n JSON.stringify(resolvedAdx),\n JSON.stringify(resolvedBollinger),\n JSON.stringify(resolvedVwap),\n showLegend,\n themePreset,\n onChartReady,\n ]);\n\n // Update data when it changes\n useEffect(() => {\n if (!surfaceRef.current || data.length === 0) return;\n\n const xValues = data.map((d) => toUnixTimestamp(d.date));\n const openValues = data.map((d) => d.open);\n const highValues = data.map((d) => d.high);\n const lowValues = data.map((d) => d.low);\n const closeValues = data.map((d) => d.close);\n const volumeValues = data.map((d) => d.volume ?? 0);\n\n // Update OHLC data\n if (ohlcDataSeriesRef.current) {\n const ohlcSeries = ohlcDataSeriesRef.current;\n ohlcSeries.clear();\n ohlcSeries.appendRange(xValues, openValues, highValues, lowValues, closeValues);\n }\n\n // Update MA data for each MA\n for (let i = 0; i < maDataSeriesRefs.current.length; i++) {\n const maSeries = maDataSeriesRefs.current[i];\n const maConfig = resolvedMovingAverages[i];\n if (maSeries && maConfig) {\n const rawMaValues =\n maConfig.type === 'ema'\n ? calculateEMA(closeValues, maConfig.period)\n : calculateSMA(closeValues, maConfig.period);\n const trimmedMa = trimToValidData(xValues, rawMaValues);\n maSeries.clear();\n if (trimmedMa.x.length > 0) {\n maSeries.appendRange(trimmedMa.x, trimmedMa.y);\n }\n }\n }\n\n // Update volume data\n if (volumeDataSeriesRef.current) {\n const volumeSeries = volumeDataSeriesRef.current;\n volumeSeries.clear();\n volumeSeries.appendRange(xValues, volumeValues);\n }\n\n // Update Bollinger Bands fill data\n if (bollingerFillDataSeriesRef.current && resolvedBollinger.enabled) {\n const bollingerData = calculateBollingerBands(closeValues, {\n period: resolvedBollinger.period ?? 20,\n stdDevMultiplier: resolvedBollinger.stdDevMultiplier ?? 2,\n });\n const trimmedBollinger = trimMultipleToValidData(\n xValues,\n bollingerData.upperBand,\n bollingerData.middleBand,\n bollingerData.lowerBand\n );\n if (trimmedBollinger.x.length > 0) {\n const [upperBand, , lowerBand] = trimmedBollinger.ys;\n const fillSeries = bollingerFillDataSeriesRef.current;\n fillSeries.clear();\n fillSeries.appendRange(trimmedBollinger.x, upperBand, lowerBand);\n }\n }\n\n // Update VWAP bands fill data\n if (\n (vwapInnerFillDataSeriesRef.current || vwapOuterFillDataSeriesRef.current) &&\n resolvedVwap.enabled\n ) {\n const vwapData = calculateVWAP(\n data.map((d) => ({\n high: d.high,\n low: d.low,\n close: d.close,\n volume: d.volume ?? 0,\n })),\n {\n includeBands: resolvedVwap.includeBands ?? true,\n bandCount: resolvedVwap.bandCount ?? 2,\n } as VWAPParams\n );\n\n if (vwapInnerFillDataSeriesRef.current && vwapData.upperBand1 && vwapData.lowerBand1) {\n const innerFillSeries = vwapInnerFillDataSeriesRef.current;\n innerFillSeries.clear();\n innerFillSeries.appendRange(xValues, vwapData.upperBand1, vwapData.lowerBand1);\n }\n\n if (vwapOuterFillDataSeriesRef.current && vwapData.upperBand2 && vwapData.lowerBand2) {\n const outerFillSeries = vwapOuterFillDataSeriesRef.current;\n outerFillSeries.clear();\n outerFillSeries.appendRange(xValues, vwapData.upperBand2, vwapData.lowerBand2);\n }\n }\n\n // Trigger redraw\n surfaceRef.current.invalidateElement();\n }, [\n data,\n JSON.stringify(resolvedMovingAverages),\n JSON.stringify(resolvedBollinger),\n JSON.stringify(resolvedVwap),\n ]);\n\n const containerStyle: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n position: 'relative',\n overflow: 'hidden',\n };\n\n const wrapperStyle: React.CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n };\n\n // Calculate subchart container styles\n const getSubChartStyle = (yStart: number, heightFraction: number): React.CSSProperties => ({\n position: 'absolute',\n left: 0,\n right: 0,\n top: `${yStart * 100}%`,\n height: `${heightFraction * 100}%`,\n });\n\n // Build accessibility description\n const indicators: string[] = [];\n if (showVolume) indicators.push('volume');\n if (resolvedMovingAverages.length > 0) {\n const maDesc = resolvedMovingAverages\n .map((ma) => `${ma.type.toUpperCase()}${ma.period}`)\n .join(', ');\n indicators.push(`moving averages (${maDesc})`);\n }\n if (resolvedBollinger.enabled) indicators.push('Bollinger Bands');\n if (resolvedVwap.enabled) indicators.push('VWAP');\n if (resolvedRsi.enabled) indicators.push('RSI');\n if (resolvedStochastic.enabled) indicators.push('Stochastic');\n if (resolvedMacd.enabled) indicators.push('MACD');\n if (resolvedAdx.enabled) indicators.push('ADX');\n const indicatorText = indicators.length > 0 ? ` with ${indicators.join(', ')} indicators` : '';\n\n return (\n <div\n className={className}\n style={containerStyle}\n role=\"img\"\n aria-label={`Financial chart displaying ${data.length} ${chartType} price points${indicatorText}`}\n aria-describedby={`${mainChartId}-desc`}\n >\n <span\n id={`${mainChartId}-desc`}\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n whiteSpace: 'nowrap',\n border: 0,\n }}\n >\n Interactive financial chart with {chartType} display.{' '}\n {resolvedBollinger.enabled ? 'Includes Bollinger Bands overlay. ' : ''}\n {resolvedVwap.enabled ? 'Includes VWAP overlay. ' : ''}\n {hasMomentumPane ? 'Includes Momentum (RSI/Stochastic) subchart. ' : ''}\n {hasMacdPane ? 'Includes MACD subchart. ' : ''}\n {hasAdxPane ? 'Includes ADX subchart. ' : ''}\n Chart features zoom, pan, and synchronized crosshair across all panes.\n </span>\n <div ref={wrapperRef} style={wrapperStyle}>\n {/* Main chart container - always visible */}\n <div id={mainChartId} style={getSubChartStyle(0, mainChartHeight)} />\n\n {/* Momentum chart container (RSI + Stochastic shared) */}\n <div\n id={momentumChartId}\n style={{\n ...getSubChartStyle(mainChartHeight, momentumChartHeight),\n display: hasMomentumPane ? 'block' : 'none',\n }}\n />\n\n {/* MACD chart container */}\n <div\n id={macdChartId}\n style={{\n ...getSubChartStyle(mainChartHeight + momentumChartHeight, macdChartHeight),\n display: hasMacdPane ? 'block' : 'none',\n }}\n />\n\n {/* ADX chart container */}\n <div\n id={adxChartId}\n style={{\n ...getSubChartStyle(\n mainChartHeight + momentumChartHeight + macdChartHeight,\n adxChartHeight\n ),\n display: hasAdxPane ? 'block' : 'none',\n }}\n />\n </div>\n </div>\n );\n});\n"],"names":["MA_PERIODS","MA_PERIOD_OPTIONS","Y_AXIS_VOLUME_ID","DEFAULT_MA_COLORS","findFirstValidIndex","values","i","trimToValidData","xValues","yValues","startIndex","trimMultipleToValidData","yArrays","idx","y","getChartTypeStyling","chartType","createZoneAnnotations","config","annotations","BoxAnnotation","ECoordinateMode","EAnnotationLayer","HorizontalLineAnnotation","createADXZoneAnnotations","weakTrendLevel","strongTrendLevel","FinancialChart","memo","data","width","height","showVolume","className","themePreset","customTheme","volumeUpColor","volumeDownColor","volumeOpacity","onChartReady","movingAverages","rsiConfig","macdConfig","stochasticConfig","adxConfig","bollingerConfig","vwapConfig","showLegend","showVolumeAverage","volumeAveragePeriod","volumeAverageColor","chartId","useId","wrapperRef","useRef","surfaceRef","ohlcDataSeriesRef","volumeDataSeriesRef","maDataSeriesRefs","bollingerFillDataSeriesRef","vwapInnerFillDataSeriesRef","vwapOuterFillDataSeriesRef","resolvedMovingAverages","resolvedRsi","DEFAULT_RSI_CONFIG","resolvedMacd","DEFAULT_MACD_CONFIG","resolvedStochastic","DEFAULT_STOCHASTIC_CONFIG","resolvedAdx","DEFAULT_ADX_CONFIG","resolvedBollinger","DEFAULT_BOLLINGER_CONFIG","resolvedVwap","DEFAULT_VWAP_CONFIG","sciChartTheme","getThemeFromPreset","themeColors","getFinancialChartColors","resolvedVolumeUpColor","resolvedVolumeDownColor","resolvedBollingerColor","resolvedVwapColor","resolvedVwapBandColor","mainChartId","momentumChartId","macdChartId","adxChartId","hasMomentumPane","hasMacdPane","hasAdxPane","paneCount","paneGap","PANE_HEIGHTS","main","indicator","totalGap","mainChartHeight","momentumChartHeight","macdChartHeight","adxChartHeight","useEffect","isDisposed","d","toUnixTimestamp","openValues","highValues","lowValues","closeValues","volumeValues","maResults","maConfig","rawValues","calculateEMA","calculateSMA","trimmed","macdData","calculateMACD","rsiData","calculateRSI","bollingerData","calculateBollingerBands","stochasticData","calculateStochastic","adxData","calculateADX","vwapData","calculateVWAP","trimmedMacd","trimmedRsi","trimmedBollinger","trimmedStochastic","trimmedADX","trimmedVwap","chartModifiers","EChart2DModifierType","EXyDirection","mainYAxes","EAxisType","EAxisAlignment","NumberRange","ENumericFormat","EAutoRange","chartTypeStyling","mainSeries","ESeriesType","color","label","upperBand","middleBand","lowerBand","volumeSma","trimmedVolumeSma","subCharts","currentY","lastPaneType","Rect","momentumSeries","percentK","percentD","macdLine","signalLine","histogram","adx","plusDI","minusDI","sciChartSurface","chartBuilder","subChart","Thickness","verticalGroup","SciChartVerticalGroup","horizontalGroup","SciChartHorizontalGroup","minX","maxX","xAxis","dataValue","formatAxisLabel","mainSubChart","candlestickSeries","seriesIndex","maSeries","volumeSeries","VolumePaletteProvider","macdSubChart","sc","histogramSeries","gradientPalette","MACDGradientPaletteProvider","MACDHistogramPaletteProvider","momentumSubChart","rsiOverbought","rsiOversold","annotation","stochOverbought","stochOversold","adxSubChart","wasmContext","bollingerFillColor","bandDataSeries","XyyDataSeries","bandSeries","FastBandRenderableSeries","band1Fill","band2Fill","outerBandDataSeries","outerBandSeries","innerBandDataSeries","innerBandSeries","legendModifier","FinChartLegendModifier","isSyncing","mainXAxis","syncAxes","sourceAxis","_a","args","error","ohlcSeries","rawMaValues","trimmedMa","fillSeries","innerFillSeries","outerFillSeries","containerStyle","wrapperStyle","getSubChartStyle","yStart","heightFraction","indicators","maDesc","ma","indicatorText","jsxs","jsx"],"mappings":"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"}
1
+ {"version":3,"file":"petal-toolkit.cjs30.js","sources":["../src/charts/core/FinancialChart/FinancialChart.tsx"],"sourcesContent":["import { useEffect, useRef, memo, useId, useState } from 'react';\nimport {\n SciChartSurface,\n SciChartVerticalGroup,\n SciChartHorizontalGroup,\n FastCandlestickRenderableSeries,\n FastColumnRenderableSeries,\n FastLineRenderableSeries,\n FastBandRenderableSeries,\n OhlcDataSeries,\n XyDataSeries,\n XyyDataSeries,\n NumberRange,\n EAutoRange,\n ENumericFormat,\n EAxisType,\n ESeriesType,\n EChart2DModifierType,\n EXyDirection,\n EAxisAlignment,\n EAnnotationLayer,\n ECoordinateMode,\n ELabelPlacement,\n Rect,\n Thickness,\n chartBuilder,\n BoxAnnotation,\n HorizontalLineAnnotation,\n ZoomPanModifier,\n ZoomExtentsModifier,\n MouseWheelZoomModifier,\n type IThemeProvider,\n type NumericAxis,\n} from 'scichart';\nimport {\n VolumePaletteProvider,\n MACDHistogramPaletteProvider,\n MACDGradientPaletteProvider,\n} from '@/scichart/palettes';\nimport { FinChartLegendModifier, DrawingModifier } from '@/scichart/modifiers';\nimport { DrawingManager } from '@/scichart/drawing';\nimport { DrawingToolbar, ObjectTreePanel, PropertiesPanel } from '@/components';\nimport {\n type SciChartThemePreset,\n getThemeFromPreset,\n getFinancialChartColors,\n} from '@/scichart/themes';\nimport { toUnixTimestamp, formatAxisLabel } from '@/utils';\nimport {\n calculateMACD,\n calculateRSI,\n calculateSMA,\n calculateEMA,\n calculateBollingerBands,\n calculateStochastic,\n calculateADX,\n calculateVWAP,\n type VWAPParams,\n} from '@/scichart/indicators';\nimport type { OHLCDataPoint } from '@/types';\nimport type {\n MovingAverageConfig,\n RSIConfig,\n MACDConfig,\n StochasticConfig,\n ADXConfig,\n BollingerConfig,\n VWAPConfig,\n PriceLevelMarker,\n DrawingToolsConfig,\n DrawingState,\n DrawingKind,\n} from './types';\nimport {\n DEFAULT_RSI_CONFIG,\n DEFAULT_MACD_CONFIG,\n DEFAULT_STOCHASTIC_CONFIG,\n DEFAULT_ADX_CONFIG,\n DEFAULT_BOLLINGER_CONFIG,\n DEFAULT_VWAP_CONFIG,\n} from './types';\n\nexport type { SciChartThemePreset };\nexport type {\n MovingAverageConfig,\n RSIConfig,\n MACDConfig,\n StochasticConfig,\n ADXConfig,\n BollingerConfig,\n VWAPConfig,\n PriceLevelMarker,\n DrawingToolsConfig,\n DrawingState,\n DrawingKind,\n};\n\n/** Chart style options */\nexport type ChartStyle = 'candlestick' | 'hollow-candlestick' | 'ohlc' | 'hlc' | 'line';\n\n/** Standard MA periods used by professionals */\nexport const MA_PERIODS = {\n /** Fast momentum, popular with day traders */\n FAST: 9,\n /** Institutional standard, medium-term */\n SHORT: 20,\n /** \"Line in the sand\" everyone watches */\n MEDIUM: 50,\n /** Sometimes used, less universal */\n LONG: 100,\n /** The big one, defines bull vs bear market */\n VERY_LONG: 200,\n} as const;\n\n/** Common MA period values */\nexport const MA_PERIOD_OPTIONS = [9, 20, 50, 100, 200] as const;\nexport type MAPeriod = (typeof MA_PERIOD_OPTIONS)[number];\n\n/** Volume Y-axis ID for linking volume series */\nconst Y_AXIS_VOLUME_ID = 'VolumeAxis';\n\n/** Default MA colors for multiple MAs */\nconst DEFAULT_MA_COLORS = [\n '#FF9800', // Orange - 9 EMA\n '#2196F3', // Blue - 21 EMA\n '#9C27B0', // Purple - 50 SMA\n '#E91E63', // Pink - 200 SMA\n '#4CAF50', // Green\n '#00BCD4', // Cyan\n];\n\nexport interface FinancialChartProps {\n /** OHLC data points with volume */\n data: OHLCDataPoint[];\n /** Chart width (CSS value or number for pixels) */\n width?: string | number;\n /** Total chart height (CSS value or number for pixels) */\n height?: string | number;\n /** Whether to show volume bars */\n showVolume?: boolean;\n /** Optional className for the container */\n className?: string;\n /** SciChart theme preset: 'dark' | 'light' | 'navy' */\n themePreset?: SciChartThemePreset;\n /** Custom SciChart theme (overrides themePreset) */\n theme?: IThemeProvider;\n /** Up bar color for volume (default: green with opacity) */\n volumeUpColor?: string;\n /** Down bar color for volume (default: red with opacity) */\n volumeDownColor?: string;\n /** Volume opacity (0-1, default 0.5) */\n volumeOpacity?: number;\n /** Callback when chart is ready */\n onChartReady?: (surface: SciChartSurface) => void;\n\n /** Chart display type (default: 'candlestick') */\n chartType?: ChartStyle;\n\n // =========================================================================\n // NEW CONFIG-BASED API (PREFERRED)\n // =========================================================================\n\n /**\n * Multiple moving averages configuration.\n * Supports multiple MAs of different types and periods overlaid on the main chart.\n * @example\n * movingAverages={[\n * { type: 'ema', period: 9, color: '#FF9800' },\n * { type: 'ema', period: 21, color: '#2196F3' },\n * { type: 'sma', period: 200, color: '#9C27B0' },\n * ]}\n */\n movingAverages?: MovingAverageConfig[];\n\n /**\n * RSI indicator configuration.\n * RSI shares a \"Momentum\" pane with Stochastic when both are enabled.\n * @example rsi={{ enabled: true, period: 14 }}\n */\n rsi?: RSIConfig;\n\n /**\n * MACD indicator configuration.\n * MACD gets its own dedicated pane (unbounded scale).\n * @example macd={{ enabled: true }}\n */\n macd?: MACDConfig;\n\n /**\n * Stochastic oscillator configuration.\n * Stochastic shares a \"Momentum\" pane with RSI when both are enabled.\n * @example stochastic={{ enabled: true, kPeriod: 14, dPeriod: 3 }}\n */\n stochastic?: StochasticConfig;\n\n /**\n * ADX indicator configuration.\n * ADX gets its own dedicated pane.\n * @example adx={{ enabled: true, period: 14 }}\n */\n adx?: ADXConfig;\n\n /**\n * Bollinger Bands overlay configuration.\n * Rendered on the main price chart.\n * @example bollinger={{ enabled: true, period: 20, stdDev: 2 }}\n */\n bollinger?: BollingerConfig;\n\n /**\n * VWAP overlay configuration.\n * Rendered on the main price chart with optional std dev bands.\n * @example vwap={{ enabled: true, includeBands: true }}\n */\n vwap?: VWAPConfig;\n\n /** Show legend with OHLC values (default: true) */\n showLegend?: boolean;\n\n // =========================================================================\n // SERIES VISIBILITY CONTROL\n // =========================================================================\n\n /**\n * Control which series are visible/hidden.\n * Provide an array of series names to hide, or a Record mapping series names to visibility.\n * Series names: 'OHLC', 'Volume', 'EMA9', 'SMA20', 'RSI', 'MACD', etc.\n * @example\n * hiddenSeries={['EMA9', 'Volume']} // Hide EMA9 and Volume\n * hiddenSeries={{ 'EMA9': false, 'Volume': false }} // Same using Record\n */\n hiddenSeries?: string[] | Record<string, boolean>;\n\n // =========================================================================\n // PRICE LEVEL MARKERS\n // =========================================================================\n\n /** Price level markers (support, resistance, targets, stops) */\n priceLevels?: PriceLevelMarker[];\n\n // =========================================================================\n // DRAWING TOOLS\n // =========================================================================\n\n /** Drawing tools configuration (trendlines, Fibonacci, shapes, etc.) */\n drawingTools?: DrawingToolsConfig;\n\n // =========================================================================\n // CROSSHAIR STYLING\n // =========================================================================\n\n /** Crosshair line color (default: '#666666') */\n crosshairColor?: string;\n /** Crosshair line thickness (default: 1) */\n crosshairThickness?: number;\n /** Crosshair line dash pattern, e.g., [3, 3] for dashed (default: [3, 3]) */\n crosshairDashArray?: number[];\n\n // =========================================================================\n // VOLUME ENHANCEMENT PROPS\n // =========================================================================\n\n /** Show volume moving average line (default: false) */\n showVolumeAverage?: boolean;\n /** Period for volume moving average (default: 20) */\n volumeAveragePeriod?: number;\n /** Volume average line color (default: theme-based) */\n volumeAverageColor?: string;\n}\n\n/**\n * Find the first index where value is valid (not NaN)\n */\nfunction findFirstValidIndex(values: number[]): number {\n for (let i = 0; i < values.length; i++) {\n if (!isNaN(values[i])) return i;\n }\n return values.length; // No valid values\n}\n\n/**\n * Trim arrays to only include valid data (skip NaN warm-up period).\n * Returns aligned x and y arrays starting from the first valid y value.\n */\nfunction trimToValidData(xValues: number[], yValues: number[]): { x: number[]; y: number[] } {\n const startIndex = findFirstValidIndex(yValues);\n if (startIndex >= yValues.length) {\n return { x: [], y: [] };\n }\n return {\n x: xValues.slice(startIndex),\n y: yValues.slice(startIndex),\n };\n}\n\n/**\n * Trim multiple y-arrays to start where ALL of them have valid data.\n * Used for MACD where we need macdLine, signalLine, and histogram aligned.\n */\nfunction trimMultipleToValidData(\n xValues: number[],\n ...yArrays: number[][]\n): { x: number[]; ys: number[][] } {\n // Find the latest start index among all arrays\n let startIndex = 0;\n for (const yValues of yArrays) {\n const idx = findFirstValidIndex(yValues);\n if (idx > startIndex) startIndex = idx;\n }\n\n if (startIndex >= xValues.length) {\n return { x: [], ys: yArrays.map(() => []) };\n }\n\n return {\n x: xValues.slice(startIndex),\n ys: yArrays.map((y) => y.slice(startIndex)),\n };\n}\n\n/**\n * Get chart type styling for candlestick series\n * Let SciChart theme handle colors - only set structural properties\n */\nfunction getChartStyleStyling(chartType: ChartStyle) {\n switch (chartType) {\n case 'ohlc':\n return {\n strokeThickness: 2,\n dataPointWidth: 0.7,\n brushUp: 'Transparent',\n brushDown: 'Transparent',\n };\n case 'hlc':\n return {\n strokeThickness: 2,\n dataPointWidth: 0.7,\n brushUp: 'Transparent',\n brushDown: 'Transparent',\n };\n case 'hollow-candlestick':\n return {\n strokeThickness: 1,\n dataPointWidth: 0.7,\n brushUp: 'Transparent', // Hollow for up - theme handles colors\n };\n case 'line':\n // Special case - handled separately\n return null;\n case 'candlestick':\n default:\n return {\n strokeThickness: 1,\n dataPointWidth: 0.7,\n // Let theme handle brush colors\n };\n }\n}\n\n/**\n * Create zone shading annotations for RSI/Stochastic/ADX panes\n */\nfunction createZoneAnnotations(config: {\n overboughtStart: number;\n overboughtEnd: number;\n oversoldStart: number;\n oversoldEnd: number;\n overboughtColor: string;\n oversoldColor: string;\n thresholdColor: string;\n centerLine?: number;\n centerLineColor?: string;\n}): (BoxAnnotation | HorizontalLineAnnotation)[] {\n const annotations: (BoxAnnotation | HorizontalLineAnnotation)[] = [];\n\n // Overbought zone box\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: config.overboughtStart,\n y2: config.overboughtEnd,\n fill: config.overboughtColor,\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Oversold zone box\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: config.oversoldStart,\n y2: config.oversoldEnd,\n fill: config.oversoldColor,\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Overbought threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.overboughtStart,\n stroke: config.thresholdColor,\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Oversold threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.oversoldEnd,\n stroke: config.thresholdColor,\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Center line (e.g., 50 for RSI)\n if (config.centerLine !== undefined) {\n annotations.push(\n new HorizontalLineAnnotation({\n y1: config.centerLine,\n stroke: config.centerLineColor ?? 'rgba(156, 163, 175, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [6, 3],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n }\n\n return annotations;\n}\n\n/**\n * Create ADX zone annotations (weak trend zone + threshold lines)\n */\nfunction createADXZoneAnnotations(\n weakTrendLevel: number,\n strongTrendLevel: number,\n weakTrendZoneColor?: string\n): (BoxAnnotation | HorizontalLineAnnotation)[] {\n const annotations: (BoxAnnotation | HorizontalLineAnnotation)[] = [];\n\n // Weak trend zone (0 to weakTrendLevel)\n annotations.push(\n new BoxAnnotation({\n x1: 0,\n x2: 1,\n y1: 0,\n y2: weakTrendLevel,\n fill: weakTrendZoneColor ?? 'rgba(156, 163, 175, 0.08)',\n stroke: 'transparent',\n strokeThickness: 0,\n xCoordinateMode: ECoordinateMode.Relative,\n yCoordinateMode: ECoordinateMode.DataValue,\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Weak trend threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: weakTrendLevel,\n stroke: 'rgba(156, 163, 175, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n // Strong trend threshold line\n annotations.push(\n new HorizontalLineAnnotation({\n y1: strongTrendLevel,\n stroke: 'rgba(168, 85, 247, 0.5)',\n strokeThickness: 1,\n strokeDashArray: [4, 4],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n\n return annotations;\n}\n\n/**\n * Financial chart component with candlesticks and volume on a single unified surface.\n * Supports multiple moving averages, MACD, RSI, Stochastic, ADX, Bollinger Bands, and VWAP.\n *\n * @example\n * ```tsx\n * import { FinancialChart } from '@petal/toolkit';\n *\n * function App() {\n * return (\n * <FinancialChart\n * data={data}\n * height={800}\n * showVolume={true}\n * // Multiple MAs\n * movingAverages={[\n * { type: 'ema', period: 9, color: '#FF9800' },\n * { type: 'ema', period: 21, color: '#2196F3' },\n * { type: 'sma', period: 200, color: '#9C27B0' },\n * ]}\n * // Overlays\n * bollinger={{ enabled: true, period: 20, stdDev: 2 }}\n * vwap={{ enabled: true, includeBands: true }}\n * // Subcharts (RSI + Stochastic share momentum pane)\n * rsi={{ enabled: true, period: 14 }}\n * stochastic={{ enabled: true }}\n * macd={{ enabled: true }}\n * adx={{ enabled: true }}\n * />\n * );\n * }\n * ```\n */\nexport const FinancialChart = memo(function FinancialChart({\n data,\n width = '100%',\n height = 500,\n showVolume = true,\n className,\n themePreset = 'dark',\n theme: customTheme,\n volumeUpColor,\n volumeDownColor,\n volumeOpacity = 0.5,\n onChartReady,\n chartType = 'candlestick',\n // Config-based API\n movingAverages,\n rsi: rsiConfig,\n macd: macdConfig,\n stochastic: stochasticConfig,\n adx: adxConfig,\n bollinger: bollingerConfig,\n vwap: vwapConfig,\n showLegend = true,\n hiddenSeries,\n priceLevels = [],\n drawingTools,\n crosshairColor = '#666666',\n crosshairThickness = 1,\n crosshairDashArray = [3, 3],\n // Volume enhancement props\n showVolumeAverage = false,\n volumeAveragePeriod = 20,\n volumeAverageColor,\n}: FinancialChartProps) {\n const chartId = useId();\n const wrapperRef = useRef<HTMLDivElement>(null);\n const surfaceRef = useRef<SciChartSurface | null>(null);\n const ohlcDataSeriesRef = useRef<OhlcDataSeries | null>(null);\n const volumeDataSeriesRef = useRef<XyDataSeries | null>(null);\n const maDataSeriesRefs = useRef<(XyDataSeries | null)[]>([]);\n // Refs for band fill data series (for data updates)\n const bollingerFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n const vwapInnerFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n const vwapOuterFillDataSeriesRef = useRef<XyyDataSeries | null>(null);\n // Drawing tools refs\n const drawingManagerRef = useRef<DrawingManager | null>(null);\n const drawingModifierRef = useRef<DrawingModifier | null>(null);\n\n // Drawing tools state\n const [selectedDrawingId, setSelectedDrawingId] = useState<string | null>(null);\n\n // Helper to check if a series should be hidden\n const isSeriesHidden = (seriesName: string): boolean => {\n if (!hiddenSeries) return false;\n if (Array.isArray(hiddenSeries)) {\n return hiddenSeries.includes(seriesName);\n }\n return hiddenSeries[seriesName] === false;\n };\n\n // =========================================================================\n // RESOLVE CONFIG WITH DEFAULTS\n // =========================================================================\n\n // Resolve moving averages with defaults\n const resolvedMovingAverages: MovingAverageConfig[] = movingAverages ?? [];\n\n // Resolve RSI config with defaults\n const resolvedRsi: RSIConfig = rsiConfig ?? { ...DEFAULT_RSI_CONFIG, enabled: false };\n\n // Resolve MACD config with defaults\n const resolvedMacd: MACDConfig = macdConfig ?? { ...DEFAULT_MACD_CONFIG, enabled: false };\n\n // Resolve Stochastic config with defaults\n const resolvedStochastic: StochasticConfig = stochasticConfig ?? {\n ...DEFAULT_STOCHASTIC_CONFIG,\n enabled: false,\n };\n\n // Resolve ADX config with defaults\n const resolvedAdx: ADXConfig = adxConfig ?? { ...DEFAULT_ADX_CONFIG, enabled: false };\n\n // Resolve Bollinger config with defaults\n const resolvedBollinger: BollingerConfig = bollingerConfig ?? {\n ...DEFAULT_BOLLINGER_CONFIG,\n enabled: false,\n };\n\n // Resolve VWAP config with defaults\n const resolvedVwap: VWAPConfig = vwapConfig ?? { ...DEFAULT_VWAP_CONFIG, enabled: false };\n\n // Get the SciChart theme to use\n const sciChartTheme = customTheme ?? getThemeFromPreset(themePreset);\n\n // Get theme colors for custom styling\n const themeColors = getFinancialChartColors(themePreset);\n\n // Resolved volume colors with opacity\n const resolvedVolumeUpColor = volumeUpColor ?? themeColors.upColor + 'CC';\n const resolvedVolumeDownColor = volumeDownColor ?? themeColors.downColor + 'CC';\n const resolvedBollingerColor = resolvedBollinger.bandColor ?? '#2196F380';\n const resolvedVwapColor = resolvedVwap.color ?? '#FF5722';\n const resolvedVwapBandColor = resolvedVwap.bandColor ?? '#FF572240';\n\n // Generate unique IDs for chart containers\n const mainChartId = `financial-main-${chartId}`;\n const momentumChartId = `financial-momentum-${chartId}`;\n const macdChartId = `financial-macd-${chartId}`;\n const adxChartId = `financial-adx-${chartId}`;\n\n // =========================================================================\n // CALCULATE SUBCHART LAYOUT\n // =========================================================================\n // New layout: RSI + Stochastic share \"Momentum\" pane, MACD and ADX get own panes\n\n const hasMomentumPane = resolvedRsi.enabled || resolvedStochastic.enabled;\n const hasMacdPane = resolvedMacd.enabled;\n const hasAdxPane = resolvedAdx.enabled;\n\n // Count distinct panes (not individual indicators)\n const paneCount = [hasMomentumPane, hasMacdPane, hasAdxPane].filter(Boolean).length;\n\n // Calculate chart heights based on pane count\n const paneGap = 0.005; // Gap between panes (~0.5% of chart height)\n\n // Pane height configuration by count: { main, indicator }\n const PANE_HEIGHTS: Record<number, { main: number; indicator: number }> = {\n 0: { main: 1.0, indicator: 0 },\n 1: { main: 0.7, indicator: 0.3 },\n 2: { main: 0.6, indicator: 0.2 },\n 3: { main: 0.55, indicator: 0.15 },\n };\n\n const { main, indicator } = PANE_HEIGHTS[paneCount] ?? PANE_HEIGHTS[3];\n const totalGap = paneGap * paneCount;\n const mainChartHeight = main - totalGap;\n const momentumChartHeight = hasMomentumPane ? indicator : 0;\n const macdChartHeight = hasMacdPane ? indicator : 0;\n const adxChartHeight = hasAdxPane ? indicator : 0;\n\n // Initialize chart\n useEffect(() => {\n if (!wrapperRef.current || data.length === 0) return;\n\n let isDisposed = false;\n\n const initChart = async () => {\n try {\n // Convert data to SciChart format\n const xValues = data.map((d) => toUnixTimestamp(d.date));\n const openValues = data.map((d) => d.open);\n const highValues = data.map((d) => d.high);\n const lowValues = data.map((d) => d.low);\n const closeValues = data.map((d) => d.close);\n const volumeValues = data.map((d) => d.volume ?? 0);\n\n // =====================================================================\n // CALCULATE INDICATORS\n // =====================================================================\n\n // Calculate multiple MAs\n const maResults: { config: MovingAverageConfig; trimmed: { x: number[]; y: number[] } }[] =\n [];\n for (const maConfig of resolvedMovingAverages) {\n if (maConfig.visible === false) continue;\n const rawValues =\n maConfig.type === 'ema'\n ? calculateEMA(closeValues, maConfig.period)\n : calculateSMA(closeValues, maConfig.period);\n const trimmed = trimToValidData(xValues, rawValues);\n maResults.push({ config: maConfig, trimmed });\n }\n\n // MACD\n const macdData = resolvedMacd.enabled\n ? calculateMACD(closeValues, {\n fastPeriod: resolvedMacd.fastPeriod ?? 12,\n slowPeriod: resolvedMacd.slowPeriod ?? 26,\n signalPeriod: resolvedMacd.signalPeriod ?? 9,\n })\n : null;\n\n // RSI\n const rsiData = resolvedRsi.enabled\n ? calculateRSI(closeValues, resolvedRsi.period ?? 14)\n : null;\n\n // Bollinger Bands\n const bollingerData = resolvedBollinger.enabled\n ? calculateBollingerBands(closeValues, {\n period: resolvedBollinger.period ?? 20,\n stdDevMultiplier: resolvedBollinger.stdDevMultiplier ?? 2,\n })\n : null;\n\n // Stochastic\n const stochasticData = resolvedStochastic.enabled\n ? calculateStochastic(\n data.map((d) => ({ high: d.high, low: d.low, close: d.close })),\n {\n kPeriod: resolvedStochastic.kPeriod ?? 14,\n dPeriod: resolvedStochastic.dPeriod ?? 3,\n smoothK: resolvedStochastic.smoothK ?? 3,\n }\n )\n : null;\n\n // ADX\n const adxData = resolvedAdx.enabled\n ? calculateADX(\n data.map((d) => ({ high: d.high, low: d.low, close: d.close })),\n { period: resolvedAdx.period ?? 14 }\n )\n : null;\n\n // VWAP\n const vwapData = resolvedVwap.enabled\n ? calculateVWAP(\n data.map((d) => ({\n high: d.high,\n low: d.low,\n close: d.close,\n volume: d.volume ?? 0,\n })),\n {\n includeBands: resolvedVwap.includeBands ?? DEFAULT_VWAP_CONFIG.includeBands,\n bandCount: resolvedVwap.bandCount ?? DEFAULT_VWAP_CONFIG.bandCount,\n } as VWAPParams\n )\n : null;\n\n // =====================================================================\n // TRIM DATA TO VALID RANGES\n // =====================================================================\n\n // Trim MACD data - all three lines need to be valid\n const trimmedMacd = macdData\n ? trimMultipleToValidData(\n xValues,\n macdData.macdLine,\n macdData.signalLine,\n macdData.histogram\n )\n : null;\n\n // Trim RSI data to valid range\n const trimmedRsi = rsiData ? trimToValidData(xValues, rsiData.rsi) : null;\n\n // Trim Bollinger Bands data\n const trimmedBollinger = bollingerData\n ? trimMultipleToValidData(\n xValues,\n bollingerData.upperBand,\n bollingerData.middleBand,\n bollingerData.lowerBand\n )\n : null;\n\n // Trim Stochastic data\n const trimmedStochastic = stochasticData\n ? trimMultipleToValidData(xValues, stochasticData.percentK, stochasticData.percentD)\n : null;\n\n // Trim ADX data\n const trimmedADX = adxData\n ? trimMultipleToValidData(xValues, adxData.adx, adxData.plusDI, adxData.minusDI)\n : null;\n\n // VWAP doesn't need trimming (starts valid from first bar)\n const trimmedVwap = vwapData\n ? {\n x: xValues,\n vwap: vwapData.vwap,\n upperBand1: vwapData.upperBand1,\n lowerBand1: vwapData.lowerBand1,\n upperBand2: vwapData.upperBand2,\n lowerBand2: vwapData.lowerBand2,\n }\n : null;\n\n // =====================================================================\n // CHART MODIFIERS\n // =====================================================================\n\n const chartModifiers = [\n { type: EChart2DModifierType.ZoomPan, options: { xyDirection: EXyDirection.XDirection } },\n {\n type: EChart2DModifierType.ZoomExtents,\n options: { xyDirection: EXyDirection.XDirection },\n },\n {\n type: EChart2DModifierType.MouseWheelZoom,\n options: { xyDirection: EXyDirection.XDirection },\n },\n ];\n\n // =====================================================================\n // BUILD MAIN CHART Y-AXES\n // =====================================================================\n\n const mainYAxes: any[] = [\n // PRIMARY Y-AXIS: Price\n {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 2,\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n },\n },\n ];\n\n // Add volume Y-axis if showing volume\n if (showVolume) {\n mainYAxes.push({\n type: EAxisType.NumericAxis,\n options: {\n id: Y_AXIS_VOLUME_ID,\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0, 4), // Volume takes bottom ~20% of chart\n isVisible: false, // Hidden axis\n autoRange: EAutoRange.Always,\n },\n });\n }\n\n // =====================================================================\n // BUILD MAIN CHART SERIES\n // =====================================================================\n\n const chartTypeStyling = getChartStyleStyling(chartType);\n const mainSeries: any[] = [];\n\n if (chartType === 'line') {\n // Line chart - use close prices (theme handles color)\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues,\n yValues: closeValues,\n dataSeriesName: 'Price',\n },\n options: {\n strokeThickness: 2,\n isVisible: !isSeriesHidden('Price'),\n },\n });\n } else {\n // Candlestick/OHLC series\n mainSeries.push({\n type: ESeriesType.CandlestickSeries,\n ohlcData: {\n xValues,\n openValues,\n highValues,\n lowValues,\n closeValues,\n dataSeriesName: 'OHLC',\n },\n options: {\n ...chartTypeStyling,\n isVisible: !isSeriesHidden('OHLC'),\n },\n });\n }\n\n // Add multiple MA series\n for (let i = 0; i < maResults.length; i++) {\n const { config, trimmed } = maResults[i];\n if (trimmed.y.length === 0) continue;\n\n const color = config.color ?? DEFAULT_MA_COLORS[i % DEFAULT_MA_COLORS.length];\n const label = `${config.type.toUpperCase()}${config.period}`;\n\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmed.x,\n yValues: trimmed.y,\n dataSeriesName: label,\n },\n options: {\n stroke: color,\n strokeThickness: config.strokeThickness ?? 1.5,\n strokeDashArray: config.strokeDashArray,\n opacity: config.opacity ?? 1.0,\n isVisible: !isSeriesHidden(label),\n },\n });\n }\n\n // Add Bollinger Bands overlay if enabled\n if (resolvedBollinger.enabled && trimmedBollinger && trimmedBollinger.x.length > 0) {\n const [upperBand, middleBand, lowerBand] = trimmedBollinger.ys;\n\n // Upper Band\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: upperBand,\n dataSeriesName: 'BB Upper',\n },\n options: {\n stroke: resolvedBollingerColor,\n strokeThickness: 1,\n isVisible: !isSeriesHidden('BB Upper') && !isSeriesHidden('Bollinger'),\n },\n });\n\n // Middle Band (SMA)\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: middleBand,\n dataSeriesName: 'BB Middle',\n },\n options: {\n stroke: resolvedBollinger.middleColor ?? resolvedBollingerColor,\n strokeThickness: 1,\n strokeDashArray: [5, 5],\n isVisible: !isSeriesHidden('BB Middle') && !isSeriesHidden('Bollinger'),\n },\n });\n\n // Lower Band\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedBollinger.x,\n yValues: lowerBand,\n dataSeriesName: 'BB Lower',\n },\n options: {\n stroke: resolvedBollingerColor,\n strokeThickness: 1,\n isVisible: !isSeriesHidden('BB Lower') && !isSeriesHidden('Bollinger'),\n },\n });\n }\n\n // Add VWAP overlay if enabled\n if (resolvedVwap.enabled && trimmedVwap && trimmedVwap.vwap.length > 0) {\n // Main VWAP line\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.vwap,\n dataSeriesName: 'VWAP',\n },\n options: {\n stroke: resolvedVwapColor,\n strokeThickness: 2,\n isVisible: !isSeriesHidden('VWAP'),\n },\n });\n\n // VWAP bands if enabled\n if (resolvedVwap.includeBands !== false) {\n // +1 and -1 std dev bands\n if (trimmedVwap.upperBand1 && trimmedVwap.lowerBand1) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand1,\n dataSeriesName: 'VWAP +1σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n isVisible: !isSeriesHidden('VWAP +1σ') && !isSeriesHidden('VWAP'),\n },\n });\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.lowerBand1,\n dataSeriesName: 'VWAP -1σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n isVisible: !isSeriesHidden('VWAP -1σ') && !isSeriesHidden('VWAP'),\n },\n });\n }\n\n // +2 and -2 std dev bands\n if (\n (resolvedVwap.bandCount ?? 2) === 2 &&\n trimmedVwap.upperBand2 &&\n trimmedVwap.lowerBand2\n ) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand2,\n dataSeriesName: 'VWAP +2σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n strokeDashArray: [3, 3],\n isVisible: !isSeriesHidden('VWAP +2σ') && !isSeriesHidden('VWAP'),\n },\n });\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.lowerBand2,\n dataSeriesName: 'VWAP -2σ',\n },\n options: {\n stroke: resolvedVwapBandColor,\n strokeThickness: 1,\n strokeDashArray: [3, 3],\n isVisible: !isSeriesHidden('VWAP -2σ') && !isSeriesHidden('VWAP'),\n },\n });\n }\n }\n }\n\n // Add volume series if showing volume\n if (showVolume) {\n mainSeries.push({\n type: ESeriesType.ColumnSeries,\n xyData: {\n xValues,\n yValues: volumeValues,\n dataSeriesName: 'Volume',\n },\n options: {\n yAxisId: Y_AXIS_VOLUME_ID,\n strokeThickness: 0,\n dataPointWidth: 0.7,\n opacity: volumeOpacity,\n isVisible: !isSeriesHidden('Volume'),\n },\n });\n\n // Add volume moving average line if enabled\n if (showVolumeAverage) {\n const volumeSma = calculateSMA(volumeValues, volumeAveragePeriod);\n const trimmedVolumeSma = trimToValidData(xValues, volumeSma);\n\n if (trimmedVolumeSma.y.length > 0) {\n mainSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedVolumeSma.x,\n yValues: trimmedVolumeSma.y,\n dataSeriesName: `Vol SMA${volumeAveragePeriod}`,\n },\n options: {\n yAxisId: Y_AXIS_VOLUME_ID,\n stroke: volumeAverageColor ?? '#f97316',\n strokeThickness: 1.5,\n strokeDashArray: [4, 4],\n isVisible:\n !isSeriesHidden(`Vol SMA${volumeAveragePeriod}`) && !isSeriesHidden('Volume'),\n },\n });\n }\n }\n }\n\n // =====================================================================\n // BUILD SUBCHARTS\n // =====================================================================\n\n const subCharts: any[] = [];\n let currentY = 0;\n\n // Determine which subchart shows x-axis labels (the last one)\n const lastPaneType = hasAdxPane\n ? 'adx'\n : hasMacdPane\n ? 'macd'\n : hasMomentumPane\n ? 'momentum'\n : 'main';\n\n // Main chart subchart\n subCharts.push({\n surface: {\n id: 'mainChart',\n position: new Rect(0, currentY, 1, mainChartHeight),\n theme: sciChartTheme,\n subChartContainerId: mainChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'main',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: mainYAxes,\n series: mainSeries,\n modifiers: chartModifiers,\n });\n currentY += mainChartHeight + paneGap;\n\n // =====================================================================\n // SHARED MOMENTUM PANE (RSI + Stochastic)\n // =====================================================================\n\n if (hasMomentumPane) {\n const momentumSeries: any[] = [];\n\n // Add RSI to momentum pane\n if (resolvedRsi.enabled && trimmedRsi && trimmedRsi.y.length > 0) {\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedRsi.x,\n yValues: trimmedRsi.y,\n dataSeriesName: 'RSI',\n },\n options: {\n stroke: resolvedRsi.color ?? themeColors.rsiColor,\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('RSI'),\n },\n });\n }\n\n // Add Stochastic to momentum pane\n if (resolvedStochastic.enabled && trimmedStochastic && trimmedStochastic.x.length > 0) {\n const [percentK, percentD] = trimmedStochastic.ys;\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedStochastic.x,\n yValues: percentK,\n dataSeriesName: '%K',\n },\n options: {\n stroke: resolvedStochastic.kColor ?? '#3b82f6',\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('%K') && !isSeriesHidden('Stochastic'),\n },\n });\n momentumSeries.push({\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedStochastic.x,\n yValues: percentD,\n dataSeriesName: '%D',\n },\n options: {\n stroke: resolvedStochastic.dColor ?? '#f97316',\n strokeThickness: 1.5,\n strokeDashArray: [3, 3],\n isVisible: !isSeriesHidden('%D') && !isSeriesHidden('Stochastic'),\n },\n });\n }\n\n subCharts.push({\n surface: {\n id: 'momentumChart',\n position: new Rect(0, currentY, 1, momentumChartHeight),\n theme: sciChartTheme,\n subChartContainerId: momentumChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'momentum',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n visibleRange: new NumberRange(0, 100),\n autoRange: EAutoRange.Never,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 0,\n },\n },\n series: momentumSeries,\n modifiers: chartModifiers,\n });\n currentY += momentumChartHeight + paneGap;\n }\n\n // =====================================================================\n // MACD PANE\n // =====================================================================\n\n if (hasMacdPane && trimmedMacd && trimmedMacd.x.length > 0) {\n const [macdLine, signalLine, histogram] = trimmedMacd.ys;\n subCharts.push({\n surface: {\n id: 'macdChart',\n position: new Rect(0, currentY, 1, macdChartHeight),\n theme: sciChartTheme,\n subChartContainerId: macdChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'macd',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 4,\n },\n },\n series: [\n // MACD Histogram\n {\n type: ESeriesType.ColumnSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: histogram,\n dataSeriesName: 'Histogram',\n },\n options: {\n strokeThickness: 0,\n dataPointWidth: 0.6,\n isVisible: !isSeriesHidden('Histogram') && !isSeriesHidden('MACD'),\n },\n },\n // MACD Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: macdLine,\n dataSeriesName: 'MACD',\n },\n options: {\n stroke: resolvedMacd.macdColor ?? themeColors.macdLineColor,\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('MACD'),\n },\n },\n // Signal Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedMacd.x,\n yValues: signalLine,\n dataSeriesName: 'Signal',\n },\n options: {\n stroke: resolvedMacd.signalColor ?? themeColors.signalLineColor,\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('Signal') && !isSeriesHidden('MACD'),\n },\n },\n ],\n modifiers: chartModifiers,\n });\n currentY += macdChartHeight + paneGap;\n }\n\n // =====================================================================\n // ADX PANE\n // =====================================================================\n\n if (hasAdxPane && trimmedADX && trimmedADX.x.length > 0) {\n const [adx, plusDI, minusDI] = trimmedADX.ys;\n subCharts.push({\n surface: {\n id: 'adxChart',\n position: new Rect(0, currentY, 1, adxChartHeight),\n theme: sciChartTheme,\n subChartContainerId: adxChartId,\n },\n xAxes: {\n type: EAxisType.DateTimeNumericAxis,\n options: {\n drawLabels: lastPaneType === 'adx',\n drawMajorTickLines: true,\n drawMinorTickLines: false,\n autoRange: EAutoRange.Never, // Synced from main chart\n drawMajorGridLines: true,\n maxAutoTicks: 10,\n axisBorder: {\n borderTop: 1,\n borderBottom: 1,\n },\n },\n },\n yAxes: {\n type: EAxisType.NumericAxis,\n options: {\n axisAlignment: EAxisAlignment.Right,\n growBy: new NumberRange(0.1, 0.1),\n autoRange: EAutoRange.Always,\n drawMajorGridLines: true,\n drawMinorGridLines: false,\n labelFormat: ENumericFormat.Decimal,\n labelPrecision: 0,\n },\n },\n series: [\n // ADX Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: adx,\n dataSeriesName: 'ADX',\n },\n options: {\n stroke: resolvedAdx.adxColor ?? '#a855f7',\n strokeThickness: 2,\n isVisible: !isSeriesHidden('ADX'),\n },\n },\n // +DI Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: plusDI,\n dataSeriesName: '+DI',\n },\n options: {\n stroke: resolvedAdx.plusDIColor ?? themeColors.upColor,\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('+DI') && !isSeriesHidden('ADX'),\n },\n },\n // -DI Line\n {\n type: ESeriesType.LineSeries,\n xyData: {\n xValues: trimmedADX.x,\n yValues: minusDI,\n dataSeriesName: '-DI',\n },\n options: {\n stroke: resolvedAdx.minusDIColor ?? themeColors.downColor,\n strokeThickness: 1.5,\n isVisible: !isSeriesHidden('-DI') && !isSeriesHidden('ADX'),\n },\n },\n ],\n modifiers: chartModifiers,\n });\n }\n\n // =====================================================================\n // BUILD CHART\n // =====================================================================\n\n const { sciChartSurface } = await chartBuilder.build2DChart(wrapperRef.current!, {\n subCharts,\n });\n\n if (isDisposed) {\n sciChartSurface.delete();\n return;\n }\n\n surfaceRef.current = sciChartSurface;\n\n // Force apply theme to all surfaces (chartBuilder doesn't always do this correctly)\n sciChartSurface.applyTheme(sciChartTheme);\n sciChartSurface.subCharts.forEach((subChart) => {\n subChart.applyTheme(sciChartTheme);\n });\n\n // Remove default padding from surface and subcharts to minimize gaps\n sciChartSurface.padding = Thickness.fromNumber(0);\n sciChartSurface.subCharts.forEach((subChart) => {\n subChart.padding = Thickness.fromNumber(0);\n });\n\n // Manually add modifiers to each subchart (chartBuilder doesn't always apply them)\n sciChartSurface.subCharts.forEach((subChart) => {\n // Check if modifiers already exist\n if (subChart.chartModifiers.size() === 0) {\n subChart.chartModifiers.add(\n new ZoomPanModifier({ xyDirection: EXyDirection.XDirection }),\n new ZoomExtentsModifier({ xyDirection: EXyDirection.XDirection }),\n new MouseWheelZoomModifier({ xyDirection: EXyDirection.XDirection })\n );\n }\n });\n\n // Synchronize Y-axis widths across all sub-charts using SciChartVerticalGroup\n const verticalGroup = new SciChartVerticalGroup();\n sciChartSurface.subCharts.forEach((subChart) => {\n verticalGroup.addSurfaceToGroup(subChart);\n });\n\n // Synchronize X-axis grid lines across all sub-charts using SciChartHorizontalGroup\n const horizontalGroup = new SciChartHorizontalGroup();\n sciChartSurface.subCharts.forEach((subChart) => {\n horizontalGroup.addSurfaceToGroup(subChart);\n });\n\n // Override X-axis label formatter on all subcharts with smart granularity detection\n const minX = Math.min(...xValues);\n const maxX = Math.max(...xValues);\n sciChartSurface.subCharts.forEach((subChart) => {\n const xAxis = subChart.xAxes.get(0);\n if (xAxis?.labelProvider) {\n xAxis.labelProvider.formatLabel = (dataValue: number) =>\n formatAxisLabel(dataValue, [minX, maxX]);\n }\n });\n\n // Get data series references from created chart\n const mainSubChart = sciChartSurface.subCharts[0];\n\n // Set up data series references\n if (chartType !== 'line') {\n const candlestickSeries = mainSubChart.renderableSeries.get(\n 0\n ) as FastCandlestickRenderableSeries;\n ohlcDataSeriesRef.current = candlestickSeries.dataSeries as OhlcDataSeries;\n }\n\n // Find MA and Volume series\n let seriesIndex = 1; // Start after candlestick/line\n\n // Store MA data series refs\n maDataSeriesRefs.current = [];\n for (let i = 0; i < maResults.length; i++) {\n const maSeries = mainSubChart.renderableSeries.get(\n seriesIndex\n ) as FastLineRenderableSeries;\n if (maSeries) {\n maDataSeriesRefs.current.push(maSeries.dataSeries as XyDataSeries);\n }\n seriesIndex++;\n }\n\n // Skip Bollinger bands series\n if (resolvedBollinger.enabled && trimmedBollinger && trimmedBollinger.x.length > 0) {\n seriesIndex += 3; // Upper, Middle, Lower bands\n }\n\n // Skip VWAP series\n if (resolvedVwap.enabled && trimmedVwap && trimmedVwap.vwap.length > 0) {\n seriesIndex += 1; // VWAP line\n if (resolvedVwap.includeBands !== false) {\n seriesIndex += 2; // +1σ, -1σ\n if ((resolvedVwap.bandCount ?? 2) === 2) {\n seriesIndex += 2; // +2σ, -2σ\n }\n }\n }\n\n if (showVolume) {\n const volumeSeries = mainSubChart.renderableSeries.get(\n seriesIndex\n ) as FastColumnRenderableSeries;\n if (volumeSeries) {\n volumeDataSeriesRef.current = volumeSeries.dataSeries as XyDataSeries;\n\n // Apply volume palette provider if we have OHLC data\n if (ohlcDataSeriesRef.current) {\n volumeSeries.paletteProvider = new VolumePaletteProvider(\n ohlcDataSeriesRef.current,\n resolvedVolumeUpColor,\n resolvedVolumeDownColor\n );\n }\n }\n }\n\n // Apply MACD histogram palette provider\n if (hasMacdPane && trimmedMacd && trimmedMacd.x.length > 0) {\n const macdSubChart = sciChartSurface.subCharts.find((sc) => sc.id === 'macdChart');\n if (macdSubChart) {\n const histogramSeries = macdSubChart.renderableSeries.get(\n 0\n ) as FastColumnRenderableSeries;\n if (histogramSeries) {\n // Use gradient histogram if enabled (default: true)\n if (resolvedMacd.useGradientHistogram !== false) {\n const gradientPalette = new MACDGradientPaletteProvider();\n gradientPalette.setHistogramData(trimmedMacd.ys[2]);\n histogramSeries.paletteProvider = gradientPalette;\n } else {\n histogramSeries.paletteProvider = new MACDHistogramPaletteProvider(\n resolvedMacd.histogramUpColor ?? themeColors.histogramUpColor,\n resolvedMacd.histogramDownColor ?? themeColors.histogramDownColor\n );\n }\n }\n\n // Add MACD zero line if enabled (default: true)\n if (resolvedMacd.showZeroLine !== false) {\n macdSubChart.annotations.add(\n new HorizontalLineAnnotation({\n y1: 0,\n stroke: 'rgba(156, 163, 175, 0.6)',\n strokeThickness: 1.5,\n strokeDashArray: [6, 3],\n annotationLayer: EAnnotationLayer.BelowChart,\n })\n );\n }\n }\n }\n\n // =====================================================================\n // ADD ZONE ANNOTATIONS TO MOMENTUM PANE (RSI + Stochastic)\n // =====================================================================\n\n if (hasMomentumPane) {\n const momentumSubChart = sciChartSurface.subCharts.find(\n (sc) => sc.id === 'momentumChart'\n );\n if (momentumSubChart) {\n // Add RSI zones if RSI is enabled\n if (resolvedRsi.enabled && resolvedRsi.showZones !== false) {\n const rsiOverbought = resolvedRsi.overbought ?? 70;\n const rsiOversold = resolvedRsi.oversold ?? 30;\n\n const rsiZones = createZoneAnnotations({\n overboughtStart: rsiOverbought,\n overboughtEnd: 100,\n oversoldStart: 0,\n oversoldEnd: rsiOversold,\n overboughtColor: resolvedRsi.overboughtZoneColor ?? 'rgba(239, 68, 68, 0.1)',\n oversoldColor: resolvedRsi.oversoldZoneColor ?? 'rgba(34, 197, 94, 0.1)',\n thresholdColor: 'rgba(156, 163, 175, 0.5)',\n centerLine: resolvedRsi.showCenterLine !== false ? 50 : undefined,\n centerLineColor: 'rgba(156, 163, 175, 0.5)',\n });\n\n rsiZones.forEach((annotation) => momentumSubChart.annotations.add(annotation));\n }\n\n // Add Stochastic zones if Stochastic is enabled (and RSI zones not already added)\n if (\n resolvedStochastic.enabled &&\n resolvedStochastic.showZones !== false &&\n !resolvedRsi.enabled\n ) {\n const stochOverbought = resolvedStochastic.overboughtLevel ?? 80;\n const stochOversold = resolvedStochastic.oversoldLevel ?? 20;\n\n const stochZones = createZoneAnnotations({\n overboughtStart: stochOverbought,\n overboughtEnd: 100,\n oversoldStart: 0,\n oversoldEnd: stochOversold,\n overboughtColor: resolvedStochastic.overboughtZoneColor ?? 'rgba(239, 68, 68, 0.1)',\n oversoldColor: resolvedStochastic.oversoldZoneColor ?? 'rgba(34, 197, 94, 0.1)',\n thresholdColor: 'rgba(156, 163, 175, 0.5)',\n });\n\n stochZones.forEach((annotation) => momentumSubChart.annotations.add(annotation));\n }\n }\n }\n\n // =====================================================================\n // ADD ZONE ANNOTATIONS TO ADX PANE\n // =====================================================================\n\n if (hasAdxPane && trimmedADX && trimmedADX.x.length > 0) {\n const adxSubChart = sciChartSurface.subCharts.find((sc) => sc.id === 'adxChart');\n if (adxSubChart) {\n // Add ADX zones if enabled\n if (resolvedAdx.showZones !== false) {\n const weakTrendLevel = resolvedAdx.weakTrendLevel ?? 20;\n const strongTrendLevel = resolvedAdx.strongTrendLevel ?? 40;\n\n const adxZones = createADXZoneAnnotations(\n weakTrendLevel,\n strongTrendLevel,\n resolvedAdx.weakTrendZoneColor\n );\n adxZones.forEach((annotation) => adxSubChart.annotations.add(annotation));\n }\n }\n }\n\n // =====================================================================\n // ADD BOLLINGER BANDS FILL (BAND SERIES)\n // =====================================================================\n\n if (\n resolvedBollinger.enabled &&\n resolvedBollinger.showFill !== false &&\n trimmedBollinger &&\n trimmedBollinger.x.length > 0\n ) {\n const wasmContext = mainSubChart.webAssemblyContext2D;\n const [upperBand, , lowerBand] = trimmedBollinger.ys;\n\n // Create band fill series (inserted at index 0 so it's behind the lines)\n const bollingerFillColor = resolvedBollinger.fillColor ?? 'rgba(59, 130, 246, 0.1)';\n const bandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedBollinger.x,\n yValues: upperBand,\n y1Values: lowerBand,\n dataSeriesName: 'BB Fill',\n });\n\n // Store ref for data updates\n bollingerFillDataSeriesRef.current = bandDataSeries;\n\n const bandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: bandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: bollingerFillColor,\n fillY1: bollingerFillColor,\n strokeThickness: 0,\n });\n\n // Insert at beginning so it renders behind the band lines\n mainSubChart.renderableSeries.insert(0, bandSeries);\n }\n\n // =====================================================================\n // ADD VWAP BAND FILLS (BAND SERIES)\n // =====================================================================\n\n if (\n resolvedVwap.enabled &&\n resolvedVwap.showFill !== false &&\n resolvedVwap.includeBands !== false &&\n trimmedVwap\n ) {\n const wasmContext = mainSubChart.webAssemblyContext2D;\n const band1Fill = resolvedVwap.band1Fill ?? 'rgba(255, 87, 34, 0.15)';\n const band2Fill = resolvedVwap.band2Fill ?? 'rgba(255, 87, 34, 0.08)';\n\n // Add outer bands fill first (±2σ) - only if bandCount is 2\n if (\n (resolvedVwap.bandCount ?? 2) === 2 &&\n trimmedVwap.upperBand2 &&\n trimmedVwap.lowerBand2\n ) {\n const outerBandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand2,\n y1Values: trimmedVwap.lowerBand2,\n dataSeriesName: 'VWAP ±2σ Fill',\n });\n\n // Store ref for data updates\n vwapOuterFillDataSeriesRef.current = outerBandDataSeries;\n\n const outerBandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: outerBandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: band2Fill,\n fillY1: band2Fill,\n strokeThickness: 0,\n });\n\n mainSubChart.renderableSeries.insert(0, outerBandSeries);\n }\n\n // Add inner bands fill (±1σ)\n if (trimmedVwap.upperBand1 && trimmedVwap.lowerBand1) {\n const innerBandDataSeries = new XyyDataSeries(wasmContext, {\n xValues: trimmedVwap.x,\n yValues: trimmedVwap.upperBand1,\n y1Values: trimmedVwap.lowerBand1,\n dataSeriesName: 'VWAP ±1σ Fill',\n });\n\n // Store ref for data updates\n vwapInnerFillDataSeriesRef.current = innerBandDataSeries;\n\n const innerBandSeries = new FastBandRenderableSeries(wasmContext, {\n dataSeries: innerBandDataSeries,\n stroke: 'transparent',\n strokeY1: 'transparent',\n fill: band1Fill,\n fillY1: band1Fill,\n strokeThickness: 0,\n });\n\n mainSubChart.renderableSeries.insert(0, innerBandSeries);\n }\n }\n\n // Add legend modifier if enabled\n if (showLegend) {\n const legendModifier = new FinChartLegendModifier({\n crosshairStroke: crosshairColor,\n crosshairStrokeThickness: crosshairThickness,\n crosshairStrokeDashArray: crosshairDashArray,\n showAxisLabels: true,\n legendPlacement: 'top-left',\n axisLabelFill: themePreset === 'light' ? '#ffffff' : '#1a3a4a',\n axisLabelStroke: themePreset === 'light' ? '#333333' : '#e0e0e0',\n textColor: themePreset === 'light' ? '#1f2937' : '#e0e0e0',\n });\n sciChartSurface.chartModifiers.add(legendModifier);\n }\n\n // =====================================================================\n // ADD PRICE LEVEL MARKERS\n // =====================================================================\n\n if (priceLevels && priceLevels.length > 0) {\n priceLevels.forEach((level) => {\n const strokeDashArray =\n level.lineStyle === 'solid'\n ? undefined\n : level.lineStyle === 'dotted'\n ? [2, 2]\n : [5, 5];\n\n const labelText =\n level.showPrice !== false\n ? level.label\n ? `${level.label}: ${level.price.toFixed(2)}`\n : level.price.toFixed(2)\n : (level.label ?? '');\n\n mainSubChart.annotations.add(\n new HorizontalLineAnnotation({\n y1: level.price,\n stroke: level.color ?? '#9ca3af',\n strokeThickness: level.strokeThickness ?? 1,\n strokeDashArray,\n labelPlacement:\n level.labelPosition === 'left'\n ? ELabelPlacement.TopLeft\n : ELabelPlacement.TopRight,\n showLabel: !!labelText,\n labelValue: labelText,\n axisLabelFill: level.color ?? '#9ca3af',\n axisLabelStroke: themePreset === 'light' ? '#ffffff' : '#1a3a4a',\n })\n );\n });\n }\n\n // =====================================================================\n // INITIALIZE DRAWING TOOLS\n // =====================================================================\n\n if (drawingTools?.enabled) {\n // Create DrawingManager instance\n drawingManagerRef.current = new DrawingManager({\n maxHistoryLength: 50,\n enableHistory: true,\n });\n\n // Listen to drawing changes and notify parent\n if (drawingTools.onDrawingChange) {\n drawingManagerRef.current.addEventListener((event) => {\n if (\n event.type === 'drawing-added' ||\n event.type === 'drawing-removed' ||\n event.type === 'drawing-modified'\n ) {\n drawingTools.onDrawingChange?.(drawingManagerRef.current!.getAllDrawings());\n }\n });\n }\n\n // Load initial drawings if provided\n if (drawingTools.initialTools && drawingTools.initialTools.length > 0) {\n drawingTools.initialTools.forEach((drawing) => {\n drawingManagerRef.current!.addDrawing({\n type: drawing.type,\n x1: drawing.x1,\n y1: drawing.y1,\n x2: drawing.x2,\n y2: drawing.y2,\n properties: drawing.properties,\n });\n });\n }\n\n // Create DrawingModifier instance\n drawingModifierRef.current = new DrawingModifier({\n drawingManager: drawingManagerRef.current,\n hitTestTolerance: drawingTools.snapTolerance ?? 10,\n });\n\n // Add DrawingModifier to main chart\n mainSubChart.chartModifiers.add(drawingModifierRef.current);\n\n // Set default tool if specified\n if (drawingTools.defaultTool) {\n drawingManagerRef.current.setMode('draw', drawingTools.defaultTool);\n }\n }\n\n // Set up X-axis sync across subcharts (range AND tick positions)\n if (sciChartSurface.subCharts.length > 1) {\n let isSyncing = false;\n const mainXAxis = mainSubChart.xAxes.get(0) as NumericAxis;\n\n if (mainXAxis) {\n // Sync both visible range AND major/minor delta for grid line alignment\n const syncAxes = (sourceAxis: NumericAxis) => {\n if (isSyncing) return;\n isSyncing = true;\n\n sciChartSurface.subCharts.forEach((subChart) => {\n if (subChart.id !== 'mainChart') {\n const xAxis = subChart.xAxes.get(0) as NumericAxis;\n if (xAxis) {\n xAxis.visibleRange = sourceAxis.visibleRange;\n // Sync tick intervals for grid line alignment\n if (sourceAxis.majorDelta !== undefined) {\n xAxis.majorDelta = sourceAxis.majorDelta;\n }\n if (sourceAxis.minorDelta !== undefined) {\n xAxis.minorDelta = sourceAxis.minorDelta;\n }\n }\n }\n });\n\n isSyncing = false;\n };\n\n // Initial sync to align grid lines on first render\n syncAxes(mainXAxis);\n\n // Subscribe to main X-axis changes\n if (mainXAxis.visibleRangeChanged?.subscribe) {\n mainXAxis.visibleRangeChanged.subscribe(() => {\n syncAxes(mainXAxis);\n });\n }\n\n // Also sync from indicator charts back to main\n sciChartSurface.subCharts.forEach((subChart) => {\n if (subChart.id !== 'mainChart') {\n const xAxis = subChart.xAxes.get(0) as NumericAxis;\n if (xAxis?.visibleRangeChanged?.subscribe) {\n xAxis.visibleRangeChanged.subscribe((args) => {\n if (isSyncing || !args?.visibleRange) return;\n isSyncing = true;\n mainXAxis.visibleRange = args.visibleRange;\n isSyncing = false;\n });\n }\n }\n });\n }\n }\n\n onChartReady?.(sciChartSurface);\n } catch (error) {\n console.error('Failed to initialize FinancialChart:', error);\n }\n };\n\n initChart();\n\n return () => {\n isDisposed = true;\n\n // Cleanup drawing tools\n if (drawingModifierRef.current) {\n drawingModifierRef.current.delete?.();\n drawingModifierRef.current = null;\n }\n if (drawingManagerRef.current) {\n drawingManagerRef.current.dispose();\n drawingManagerRef.current = null;\n }\n\n if (surfaceRef.current) {\n surfaceRef.current.delete();\n surfaceRef.current = null;\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n sciChartTheme,\n showVolume,\n resolvedVolumeUpColor,\n resolvedVolumeDownColor,\n volumeOpacity,\n chartType,\n // New config API\n JSON.stringify(resolvedMovingAverages),\n JSON.stringify(resolvedRsi),\n JSON.stringify(resolvedMacd),\n JSON.stringify(resolvedStochastic),\n JSON.stringify(resolvedAdx),\n JSON.stringify(resolvedBollinger),\n JSON.stringify(resolvedVwap),\n showLegend,\n themePreset,\n onChartReady,\n ]);\n\n // Update data when it changes\n useEffect(() => {\n if (!surfaceRef.current || data.length === 0) return;\n\n const xValues = data.map((d) => toUnixTimestamp(d.date));\n const openValues = data.map((d) => d.open);\n const highValues = data.map((d) => d.high);\n const lowValues = data.map((d) => d.low);\n const closeValues = data.map((d) => d.close);\n const volumeValues = data.map((d) => d.volume ?? 0);\n\n // Update OHLC data\n if (ohlcDataSeriesRef.current) {\n const ohlcSeries = ohlcDataSeriesRef.current;\n ohlcSeries.clear();\n ohlcSeries.appendRange(xValues, openValues, highValues, lowValues, closeValues);\n }\n\n // Update MA data for each MA\n for (let i = 0; i < maDataSeriesRefs.current.length; i++) {\n const maSeries = maDataSeriesRefs.current[i];\n const maConfig = resolvedMovingAverages[i];\n if (maSeries && maConfig) {\n const rawMaValues =\n maConfig.type === 'ema'\n ? calculateEMA(closeValues, maConfig.period)\n : calculateSMA(closeValues, maConfig.period);\n const trimmedMa = trimToValidData(xValues, rawMaValues);\n maSeries.clear();\n if (trimmedMa.x.length > 0) {\n maSeries.appendRange(trimmedMa.x, trimmedMa.y);\n }\n }\n }\n\n // Update volume data\n if (volumeDataSeriesRef.current) {\n const volumeSeries = volumeDataSeriesRef.current;\n volumeSeries.clear();\n volumeSeries.appendRange(xValues, volumeValues);\n }\n\n // Update Bollinger Bands fill data\n if (bollingerFillDataSeriesRef.current && resolvedBollinger.enabled) {\n const bollingerData = calculateBollingerBands(closeValues, {\n period: resolvedBollinger.period ?? 20,\n stdDevMultiplier: resolvedBollinger.stdDevMultiplier ?? 2,\n });\n const trimmedBollinger = trimMultipleToValidData(\n xValues,\n bollingerData.upperBand,\n bollingerData.middleBand,\n bollingerData.lowerBand\n );\n if (trimmedBollinger.x.length > 0) {\n const [upperBand, , lowerBand] = trimmedBollinger.ys;\n const fillSeries = bollingerFillDataSeriesRef.current;\n fillSeries.clear();\n fillSeries.appendRange(trimmedBollinger.x, upperBand, lowerBand);\n }\n }\n\n // Update VWAP bands fill data\n if (\n (vwapInnerFillDataSeriesRef.current || vwapOuterFillDataSeriesRef.current) &&\n resolvedVwap.enabled\n ) {\n const vwapData = calculateVWAP(\n data.map((d) => ({\n high: d.high,\n low: d.low,\n close: d.close,\n volume: d.volume ?? 0,\n })),\n {\n includeBands: resolvedVwap.includeBands ?? true,\n bandCount: resolvedVwap.bandCount ?? 2,\n } as VWAPParams\n );\n\n if (vwapInnerFillDataSeriesRef.current && vwapData.upperBand1 && vwapData.lowerBand1) {\n const innerFillSeries = vwapInnerFillDataSeriesRef.current;\n innerFillSeries.clear();\n innerFillSeries.appendRange(xValues, vwapData.upperBand1, vwapData.lowerBand1);\n }\n\n if (vwapOuterFillDataSeriesRef.current && vwapData.upperBand2 && vwapData.lowerBand2) {\n const outerFillSeries = vwapOuterFillDataSeriesRef.current;\n outerFillSeries.clear();\n outerFillSeries.appendRange(xValues, vwapData.upperBand2, vwapData.lowerBand2);\n }\n }\n\n // Trigger redraw\n surfaceRef.current.invalidateElement();\n }, [\n data,\n JSON.stringify(resolvedMovingAverages),\n JSON.stringify(resolvedBollinger),\n JSON.stringify(resolvedVwap),\n ]);\n\n const containerStyle: React.CSSProperties = {\n width: typeof width === 'number' ? `${width}px` : width,\n height: typeof height === 'number' ? `${height}px` : height,\n position: 'relative',\n overflow: 'hidden',\n };\n\n const wrapperStyle: React.CSSProperties = {\n position: 'absolute',\n width: '100%',\n height: '100%',\n };\n\n // Calculate subchart container styles\n const getSubChartStyle = (yStart: number, heightFraction: number): React.CSSProperties => ({\n position: 'absolute',\n left: 0,\n right: 0,\n top: `${yStart * 100}%`,\n height: `${heightFraction * 100}%`,\n });\n\n // Build accessibility description\n const indicators: string[] = [];\n if (showVolume) indicators.push('volume');\n if (resolvedMovingAverages.length > 0) {\n const maDesc = resolvedMovingAverages\n .map((ma) => `${ma.type.toUpperCase()}${ma.period}`)\n .join(', ');\n indicators.push(`moving averages (${maDesc})`);\n }\n if (resolvedBollinger.enabled) indicators.push('Bollinger Bands');\n if (resolvedVwap.enabled) indicators.push('VWAP');\n if (resolvedRsi.enabled) indicators.push('RSI');\n if (resolvedStochastic.enabled) indicators.push('Stochastic');\n if (resolvedMacd.enabled) indicators.push('MACD');\n if (resolvedAdx.enabled) indicators.push('ADX');\n const indicatorText = indicators.length > 0 ? ` with ${indicators.join(', ')} indicators` : '';\n\n return (\n <div\n className={className}\n style={containerStyle}\n role=\"img\"\n aria-label={`Financial chart displaying ${data.length} ${chartType} price points${indicatorText}`}\n aria-describedby={`${mainChartId}-desc`}\n >\n <span\n id={`${mainChartId}-desc`}\n style={{\n position: 'absolute',\n width: '1px',\n height: '1px',\n padding: 0,\n margin: '-1px',\n overflow: 'hidden',\n clip: 'rect(0,0,0,0)',\n whiteSpace: 'nowrap',\n border: 0,\n }}\n >\n Interactive financial chart with {chartType} display.{' '}\n {resolvedBollinger.enabled ? 'Includes Bollinger Bands overlay. ' : ''}\n {resolvedVwap.enabled ? 'Includes VWAP overlay. ' : ''}\n {hasMomentumPane ? 'Includes Momentum (RSI/Stochastic) subchart. ' : ''}\n {hasMacdPane ? 'Includes MACD subchart. ' : ''}\n {hasAdxPane ? 'Includes ADX subchart. ' : ''}\n Chart features zoom, pan, and synchronized crosshair across all panes.\n </span>\n <div ref={wrapperRef} style={wrapperStyle}>\n {/* Main chart container - always visible */}\n <div id={mainChartId} style={getSubChartStyle(0, mainChartHeight)} />\n\n {/* Momentum chart container (RSI + Stochastic shared) */}\n <div\n id={momentumChartId}\n style={{\n ...getSubChartStyle(mainChartHeight, momentumChartHeight),\n display: hasMomentumPane ? 'block' : 'none',\n }}\n />\n\n {/* MACD chart container */}\n <div\n id={macdChartId}\n style={{\n ...getSubChartStyle(mainChartHeight + momentumChartHeight, macdChartHeight),\n display: hasMacdPane ? 'block' : 'none',\n }}\n />\n\n {/* ADX chart container */}\n <div\n id={adxChartId}\n style={{\n ...getSubChartStyle(\n mainChartHeight + momentumChartHeight + macdChartHeight,\n adxChartHeight\n ),\n display: hasAdxPane ? 'block' : 'none',\n }}\n />\n </div>\n\n {/* Drawing toolbar - conditionally rendered */}\n {drawingTools?.enabled && drawingTools.showToolbar !== false && drawingManagerRef.current && (\n <DrawingToolbar\n drawingManager={drawingManagerRef.current}\n enableKeyboardShortcuts={drawingTools.enableKeyboardShortcuts ?? true}\n onToolChange={(tool) => {\n console.log('Active drawing tool:', tool);\n }}\n />\n )}\n\n {/* Object tree panel - conditionally rendered */}\n {drawingTools?.enabled &&\n drawingTools.showObjectTree !== false &&\n drawingManagerRef.current && (\n <ObjectTreePanel\n drawingManager={drawingManagerRef.current}\n onDrawingSelect={(id) => {\n setSelectedDrawingId(id);\n console.log('Selected drawing:', id);\n }}\n onDrawingDelete={(id) => {\n if (selectedDrawingId === id) {\n setSelectedDrawingId(null);\n }\n console.log('Deleted drawing:', id);\n }}\n />\n )}\n\n {/* Properties panel - conditionally rendered */}\n {drawingTools?.enabled &&\n drawingTools.showPropertiesPanel !== false &&\n drawingManagerRef.current && (\n <PropertiesPanel\n drawingManager={drawingManagerRef.current}\n selectedDrawingId={selectedDrawingId}\n onPropertyChange={(drawingId, property, value) => {\n console.log('Property changed:', { drawingId, property, value });\n }}\n />\n )}\n </div>\n );\n});\n"],"names":["MA_PERIODS","MA_PERIOD_OPTIONS","Y_AXIS_VOLUME_ID","DEFAULT_MA_COLORS","findFirstValidIndex","values","i","trimToValidData","xValues","yValues","startIndex","trimMultipleToValidData","yArrays","idx","y","getChartStyleStyling","chartType","createZoneAnnotations","config","annotations","BoxAnnotation","ECoordinateMode","EAnnotationLayer","HorizontalLineAnnotation","createADXZoneAnnotations","weakTrendLevel","strongTrendLevel","weakTrendZoneColor","FinancialChart","memo","data","width","height","showVolume","className","themePreset","customTheme","volumeUpColor","volumeDownColor","volumeOpacity","onChartReady","movingAverages","rsiConfig","macdConfig","stochasticConfig","adxConfig","bollingerConfig","vwapConfig","showLegend","hiddenSeries","priceLevels","drawingTools","crosshairColor","crosshairThickness","crosshairDashArray","showVolumeAverage","volumeAveragePeriod","volumeAverageColor","chartId","useId","wrapperRef","useRef","surfaceRef","ohlcDataSeriesRef","volumeDataSeriesRef","maDataSeriesRefs","bollingerFillDataSeriesRef","vwapInnerFillDataSeriesRef","vwapOuterFillDataSeriesRef","drawingManagerRef","drawingModifierRef","selectedDrawingId","setSelectedDrawingId","useState","isSeriesHidden","seriesName","resolvedMovingAverages","resolvedRsi","DEFAULT_RSI_CONFIG","resolvedMacd","DEFAULT_MACD_CONFIG","resolvedStochastic","DEFAULT_STOCHASTIC_CONFIG","resolvedAdx","DEFAULT_ADX_CONFIG","resolvedBollinger","DEFAULT_BOLLINGER_CONFIG","resolvedVwap","DEFAULT_VWAP_CONFIG","sciChartTheme","getThemeFromPreset","themeColors","getFinancialChartColors","resolvedVolumeUpColor","resolvedVolumeDownColor","resolvedBollingerColor","resolvedVwapColor","resolvedVwapBandColor","mainChartId","momentumChartId","macdChartId","adxChartId","hasMomentumPane","hasMacdPane","hasAdxPane","paneCount","paneGap","PANE_HEIGHTS","main","indicator","totalGap","mainChartHeight","momentumChartHeight","macdChartHeight","adxChartHeight","useEffect","isDisposed","d","toUnixTimestamp","openValues","highValues","lowValues","closeValues","volumeValues","maResults","maConfig","rawValues","calculateEMA","calculateSMA","trimmed","macdData","calculateMACD","rsiData","calculateRSI","bollingerData","calculateBollingerBands","stochasticData","calculateStochastic","adxData","calculateADX","vwapData","calculateVWAP","trimmedMacd","trimmedRsi","trimmedBollinger","trimmedStochastic","trimmedADX","trimmedVwap","chartModifiers","EChart2DModifierType","EXyDirection","mainYAxes","EAxisType","EAxisAlignment","NumberRange","ENumericFormat","EAutoRange","chartTypeStyling","mainSeries","ESeriesType","color","label","upperBand","middleBand","lowerBand","volumeSma","trimmedVolumeSma","subCharts","currentY","lastPaneType","Rect","momentumSeries","percentK","percentD","macdLine","signalLine","histogram","adx","plusDI","minusDI","sciChartSurface","chartBuilder","subChart","Thickness","ZoomPanModifier","ZoomExtentsModifier","MouseWheelZoomModifier","verticalGroup","SciChartVerticalGroup","horizontalGroup","SciChartHorizontalGroup","minX","maxX","xAxis","dataValue","formatAxisLabel","mainSubChart","candlestickSeries","seriesIndex","maSeries","volumeSeries","VolumePaletteProvider","macdSubChart","sc","histogramSeries","gradientPalette","MACDGradientPaletteProvider","MACDHistogramPaletteProvider","momentumSubChart","rsiOverbought","rsiOversold","annotation","stochOverbought","stochOversold","adxSubChart","wasmContext","bollingerFillColor","bandDataSeries","XyyDataSeries","bandSeries","FastBandRenderableSeries","band1Fill","band2Fill","outerBandDataSeries","outerBandSeries","innerBandDataSeries","innerBandSeries","legendModifier","FinChartLegendModifier","level","strokeDashArray","labelText","ELabelPlacement","DrawingManager","event","_a","drawing","DrawingModifier","isSyncing","mainXAxis","syncAxes","sourceAxis","args","error","_b","ohlcSeries","rawMaValues","trimmedMa","fillSeries","innerFillSeries","outerFillSeries","containerStyle","wrapperStyle","getSubChartStyle","yStart","heightFraction","indicators","maDesc","ma","indicatorText","jsxs","jsx","DrawingToolbar","tool","ObjectTreePanel","id","PropertiesPanel","drawingId","property","value"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./petal-toolkit.cjs937.js"),Z=require("./petal-toolkit.cjs555.js"),ee=require("./petal-toolkit.cjs567.js"),re=require("./petal-toolkit.cjs569.js"),te=require("./petal-toolkit.cjs107.js"),ie=require("./petal-toolkit.cjs111.js"),oe=require("./petal-toolkit.cjs313.js"),ne=require("./petal-toolkit.cjs241.js"),ae=require("./petal-toolkit.cjs492.js"),se=require("./petal-toolkit.cjs273.js"),le=require("./petal-toolkit.cjs275.js"),fe=require("./petal-toolkit.cjs910.js"),ue=require("./petal-toolkit.cjs301.js"),he=require("./petal-toolkit.cjs304.js"),de=require("./petal-toolkit.cjs305.js"),ce=require("./petal-toolkit.cjs306.js");var X;function pe(){if(X)return y.__exports;X=1;var H=y.__exports&&y.__exports.__extends||(function(){var s=function(i,e){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])},s(i,e)};return function(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");s(i,e);function r(){this.constructor=i}i.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}})(),g=y.__exports&&y.__exports.__assign||function(){return g=Object.assign||function(s){for(var i,e=1,r=arguments.length;e<r;e++){i=arguments[e];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(s[t]=i[t])}return s},g.apply(this,arguments)};Object.defineProperty(y.__exports,"__esModule",{value:!0}),y.__exports.PolarAxisBase=void 0;var z=Z.__require(),S=ee.__require(),N=re.__require(),D=te.__require(),E=ie.__require(),f=oe.__require(),v=ne.__require(),O=ae.__require(),G=se.__require(),U=le.__require(),q=fe.__require(),Y=ue.__require(),w=he.__require(),T=de.__require(),W=ce.__require(),J=(function(s){H(i,s);function i(e,r){var t=this,o,n,a,u,h,d,c,A,x,b;return Object.assign(r??{},{majorGridLineStyle:g({strokeThickness:1,color:(o=v.SciChartSurfaceBase.DEFAULT_THEME.polarMajorGridLineBrush)!==null&&o!==void 0?o:v.SciChartSurfaceBase.DEFAULT_THEME.majorGridLineBrush},r==null?void 0:r.majorGridLineStyle),minorGridLineStyle:g({strokeThickness:1,color:(n=v.SciChartSurfaceBase.DEFAULT_THEME.polarMinorGridLineBrush)!==null&&n!==void 0?n:v.SciChartSurfaceBase.DEFAULT_THEME.minorGridLineBrush},r==null?void 0:r.minorGridLineStyle)}),t=s.call(this,e,r)||this,t.isPolarAxis=!0,t.axisLayoutState=new U.PolarAxisLayoutState,t.startAngleProperty=0,t.totalAngleProperty=2*Math.PI,t.xCenterOffsetProperty=0,t.yCenterOffsetProperty=0,t.lengthScaleProperty=1,t.gridlineModeProperty=T.EPolarGridlineMode.Circles,t.polarLabelModeProperty=W.EPolarLabelMode.Horizontal,t.innerRadiusProperty=0,t.polarAxisModeProperty=r==null?void 0:r.polarAxisMode,t.gridlineMode=(a=r==null?void 0:r.gridlineMode)!==null&&a!==void 0?a:t.gridlineModeProperty,t.coordTransform=new e.SCRTPolarCoordinateTransform(0,0,0),t.drawMajorBandsProperty=!1,t.innerRadius=(u=r==null?void 0:r.innerRadius)!==null&&u!==void 0?u:t.innerRadiusProperty,t.xCenterOffset=(h=r==null?void 0:r.xCenterOffset)!==null&&h!==void 0?h:t.xCenterOffsetProperty,t.yCenterOffset=(d=r==null?void 0:r.yCenterOffset)!==null&&d!==void 0?d:t.yCenterOffsetProperty,t.lengthScaleProperty=(c=r==null?void 0:r.lengthScale)!==null&&c!==void 0?c:t.lengthScaleProperty,t.polarLabelMode=(A=r==null?void 0:r.polarLabelMode)!==null&&A!==void 0?A:t.polarLabelModeProperty,t.startAngleProperty=(x=r==null?void 0:r.startAngle)!==null&&x!==void 0?x:(r==null?void 0:r.startAngleDegrees)!==void 0?t.toRadians(r.startAngleDegrees):t.startAngleProperty,t.totalAngleProperty=(b=r==null?void 0:r.totalAngle)!==null&&b!==void 0?b:(r==null?void 0:r.totalAngleDegrees)!==void 0?t.toRadians(r.totalAngleDegrees):t.totalAngleProperty,t}return i.prototype.onAttach=function(e,r,t){s.prototype.onAttach.call(this,e,r,t),this.polarAxisMode===void 0&&(this.polarAxisModeProperty=r?w.EPolarAxisMode.Angular:w.EPolarAxisMode.Radial)},Object.defineProperty(i.prototype,"isAngular",{get:function(){return this.polarAxisModeProperty===w.EPolarAxisMode.Angular},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"polarAxisMode",{get:function(){return this.polarAxisModeProperty},set:function(e){this.polarAxisMode!==e&&(this.polarAxisModeProperty=e,this.notifyPropertyChanged("polarAxisMode"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"gridlineMode",{get:function(){return this.gridlineModeProperty},set:function(e){if(this.gridlineMode!==e){if(this.isAngular){console.warn("PolarAxisBase.gridlineMode property is ignored for the angular axis");return}this.gridlineModeProperty=e,this.notifyPropertyChanged("gridlineMode")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"startAngle",{get:function(){return this.startAngleProperty},set:function(e){this.startAngleProperty!==e&&(this.startAngleProperty=e,this.notifyPropertyChanged("startAngle"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalAngle",{get:function(){return this.totalAngleProperty},set:function(e){if(this.totalAngleProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.totalAngle property is ignored for the radial axis");return}e===0&&console.warn("PolarAxisBase.totalAngle can not be zero"),this.totalAngleProperty=e,this.notifyPropertyChanged("totalAngle")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"startAngleDegrees",{get:function(){return Math.round(this.startAngleProperty*180/Math.PI*10)/10},set:function(e){e!==void 0&&(this.startAngleProperty=this.toRadians(e),this.notifyPropertyChanged("startAngle"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalAngleDegrees",{get:function(){return Math.round(this.totalAngleProperty*180/Math.PI*10)/10},set:function(e){if(e!==void 0){if(!this.isAngular){console.warn("PolarAxisBase.totalAngleDegrees property is ignored for the radial axis");return}e===0&&console.warn("PolarAxisBase.totalAngleDegrees can not be zero"),this.totalAngleProperty=this.toRadians(e),this.notifyPropertyChanged("totalAngle")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"xCenterOffset",{get:function(){return this.xCenterOffsetProperty},set:function(e){if(this.xCenterOffsetProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.xCenterOffset property is ignored for the radial axis");return}this.xCenterOffsetProperty=e,this.notifyPropertyChanged("xCenterOffset")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"yCenterOffset",{get:function(){return this.yCenterOffsetProperty},set:function(e){if(this.yCenterOffsetProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.yCenterOffset property is ignored for the radial axis");return}this.yCenterOffsetProperty=e,this.notifyPropertyChanged("yCenterOffset")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"lengthScale",{get:function(){return this.lengthScaleProperty},set:function(e){this.lengthScaleProperty!==e&&(this.lengthScaleProperty=e,this.notifyPropertyChanged("lengthScale"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"axisLength",{get:function(){var e;return((e=this.axisLengthProperty)!==null&&e!==void 0?e:1)*this.lengthScale-this.offset},set:function(e){this.axisLengthProperty!==e&&(this.axisLengthProperty=e,this.notifyPropertyChanged(q.PROPERTY.AXIS_LENGTH))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"maxRadius",{get:function(){var e;return(e=this.axisLengthProperty)!==null&&e!==void 0?e:1},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"polarLabelMode",{get:function(){return this.polarLabelModeProperty},set:function(e){if(this.polarLabelMode!==e){if(!this.isAngular){console.warn("PolarAxisBase.polarLabelMode property is ignored for the radial axis");return}this.polarLabelModeProperty=e,this.notifyPropertyChanged("polarLabelMode")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"offset",{get:function(){var e,r=this.offsetProperty;return this.offsetOverrideProperty?r=this.offsetOverrideProperty:this.innerRadius!==void 0&&(r=this.innerRadius*((e=this.axisLengthProperty)!==null&&e!==void 0?e:1)),r*this.lengthScale},set:function(e){this.offsetProperty!==e&&(this.offsetProperty=e,this.innerRadius===void 0&&(this.clearCoordCalcCache(),this.notifyPropertyChanged(q.PROPERTY.OFFSET)))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"innerRadius",{get:function(){return this.innerRadiusProperty},set:function(e){if(this.innerRadius!==e){if(this.isAngular){console.warn("PolarAxisBase.innerRadius property is ignored for the angular axis");return}if(e<0||e>1)throw Error("innerRadius must be between 0 and 1");this.innerRadiusProperty=e,this.clearCoordCalcCache(),this.notifyPropertyChanged("innerRadius")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"otherAxis",{get:function(){return this.otherAxisProperty},enumerable:!1,configurable:!0}),i.prototype.measure=function(){var e=this;if(this.isXAxis){var r=this.parentSurface.yAxes.asArray().find(function(o){return o.isPolarAxis&&o.isAngular!==e.isAngular});if(!r)throw new Error("Could not find a polar y axis with isAngluar: ".concat(!this.isAngular));this.otherAxisProperty=r,this.isAngular||(this.xCenterOffsetProperty=r.xCenterOffset,this.yCenterOffsetProperty=r.yCenterOffset)}else{var t=this.parentSurface.xAxes.asArray().find(function(o){return o.isPolarAxis&&o.isAngular!==e.isAngular});if(!t)throw new Error("Could not find a polar x axis with isAngluar: ".concat(!this.isAngular));this.otherAxisProperty=t,this.isAngular||(this.xCenterOffsetProperty=t.xCenterOffset,this.yCenterOffsetProperty=t.yCenterOffset)}s.prototype.measure.call(this)},i.prototype.zoomBy=function(e,r){return this.isAngular?s.prototype.zoomBy.call(this,e,r):s.prototype.zoomBy.call(this,0,r/10)},i.prototype.scroll=function(e,r){return this.isAngular?s.prototype.scroll.call(this,e/this.otherAxis.axisLength*this.axisLength,r):s.prototype.scroll.call(this,e,G.EClipMode.ClipAtMin)},i.prototype.getTransform=function(e){e===void 0&&(e=!1);var r=this.viewRect,t=r.x,o=r.y;this.coordTransform.yIsPolar=this.isAngular&&!this.isXAxisProperty;var n=e?O.DpiHelper.PIXEL_RATIO:1;return this.coordTransform.XCenter=(t-this.parentSurface.seriesViewRect.left)/n,this.coordTransform.YCenter=(o-this.parentSurface.seriesViewRect.top)/n,this.coordTransform.StartAngle=this.startAngle,this.coordTransform},Object.defineProperty(i.prototype,"isHorizontalAxis",{get:function(){return this.isAngular},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isVerticalChart",{get:function(){return this.isXAxis&&!this.isAngular},enumerable:!1,configurable:!0}),i.prototype.applyTheme=function(e){var r,t,o,n,a=this.parentSurface.previousThemeProvider;this.axisBandsFill===a.axisBandsFill&&(this.axisBandsFill=e.axisBandsFill),this.labelStyle.color===a.tickTextBrush&&(this.labelStyle={color:e.tickTextBrush});var u=(r=a.polarMinorGridLineBrush)!==null&&r!==void 0?r:a.minorGridLineBrush,h=(t=e.polarMinorGridLineBrush)!==null&&t!==void 0?t:e.minorGridLineBrush;this.minorGridLineStyle.color===u&&(this.minorGridLineStyle={color:h});var d=(o=a.polarMajorGridLineBrush)!==null&&o!==void 0?o:a.majorGridLineBrush,c=(n=e.polarMajorGridLineBrush)!==null&&n!==void 0?n:e.majorGridLineBrush;this.majorGridLineStyle.color===d&&(this.majorGridLineStyle={color:c}),this.minorTickLineStyle.color===a.minorGridLineBrush&&(this.minorTickLineStyle={color:e.minorGridLineBrush}),this.majorTickLineStyle.color===a.majorGridLineBrush&&(this.majorTickLineStyle={color:e.majorGridLineBrush}),this.axisTitleStyle.color===a.axisTitleColor&&(this.axisTitleStyle={color:e.axisTitleColor})},i.prototype.toJSON=function(){var e=s.prototype.toJSON.call(this),r={gridlineMode:this.gridlineMode,innerRadius:this.innerRadius,lengthScale:this.lengthScale,polarAxisMode:this.polarAxisMode,polarLabelMode:this.polarLabelMode,startAngle:this.startAngle,totalAngle:this.totalAngle,xCenterOffset:this.xCenterOffset,yCenterOffset:this.yCenterOffset},t=g(g({},e),{options:g(g({},e.options),r)});return t},i.prototype.delete=function(){this.coordTransform=(0,z.deleteSafe)(this.coordTransform),s.prototype.delete.call(this)},i.prototype.drawAxisBands=function(e,r,t,o){},i.prototype.getPenForLines=function(e,r,t,o){if((e===this.penCacheForMajorGridLines||e===this.penCacheForMinorGridLines)&&!this.isAngular&&this.gridlineMode===T.EPolarGridlineMode.Circles){var n=t>0?t+1:0;return(0,D.createPenInCache)(e,r,n,1,o,!1)}var a=t>0?t+1:0;return(0,D.createPenInCache)(e,r,a,1,o,!0)},i.prototype.drawGridLines=function(e,r,t,o){var n=this,a,u,h,d;if(!(!r||r.length===0)){var c=((u=(a=this.parentSurface.padding)===null||a===void 0?void 0:a.left)!==null&&u!==void 0?u:0)*O.DpiHelper.PIXEL_RATIO,A=((d=(h=this.parentSurface.padding)===null||h===void 0?void 0:h.top)!==null&&d!==void 0?d:0)*O.DpiHelper.PIXEL_RATIO,x=this.viewRect;x.x,x.y;var b=x.width,l=this.getTransform();b=b*this.otherAxis.lengthScale;var m=N.Rect.intersect(this.parentSurface.clipRect,this.parentSurface.seriesViewRect);if(this.isAngular){e.EnsureContextTransform(0,0,m);var _=(0,f.getVectorColorVertex)(this.webAssemblyContext2D),p=(0,f.getVector2)(this.webAssemblyContext2D),P=(0,f.getVertex)(this.webAssemblyContext2D,0,0),$=15;r.forEach(function(C,L){l.TransformPoint(b,C,p),P.SetPosition(p.x,p.y),_.push_back(P),n.otherAxis.offset>0?(l.TransformPoint(n.otherAxis.offset,C,p),P.SetPosition(p.x,p.y),_.push_back(P)):o?(P.SetPosition(l.XCenter,l.YCenter),_.push_back(P)):(l.TransformPoint($,C,p),P.SetPosition(p.x,p.y),_.push_back(P))}),e.drawLinesNative(_,t,E.ELineDrawMode.DiscontinuousLine,m,c,A)}else if(this.gridlineMode===T.EPolarGridlineMode.Polygons){e.EnsureContextTransform(0,0,m);var k=this.otherAxis.getTicksWithCoords().majorTickCoords,B=(0,f.getVectorColorVertex)(this.webAssemblyContext2D),j=(0,f.getVector2)(this.webAssemblyContext2D),R=(0,f.getVertex)(this.webAssemblyContext2D,0,0);r.forEach(function(C){k.forEach(function(L,F){l.TransformPoint(C,L,j),R.SetPosition(j.x,j.y),B.push_back(R),F>0&&F<k.length-1&&B.push_back(R)})}),e.drawLinesNative(B,t,E.ELineDrawMode.DiscontinuousLine,m,c,A)}else{var I=(0,f.getVectorArcVertex)(this.webAssemblyContext2D),V=(0,f.getArcVertex)(this.webAssemblyContext2D),M=0;this.parentSurface.isCopyCanvasSurface?M=v.SciChartSurfaceBase.domMasterCanvas.height:M=this.parentSurface.renderSurface.viewportSize.height;var K=this.otherAxis.startAngle,Q=this.otherAxis.axisLength;r.forEach(function(C){var L=(0,f.getArcParams)(n.webAssemblyContext2D,l.XCenter,M-l.YCenter,0,Q,C,0,1,1,t.m_fThickness);V.MakeCircularArc(L),I.push_back(V)}),e.drawArcs(I,l.XCenter,M-l.YCenter,K,m,t,void 0,c,A)}}},i.prototype.toRadians=function(e){return e*Math.PI/180},i.prototype.reverseTransform=function(e,r,t){t===void 0&&(t=!0);var o=this.getTransform(),n=new this.webAssemblyContext2D.TSRVector2;o.ReverseTransformPoint(e,r,n);var a;return t?this.isXAxis&&this.isAngular?a=new S.Point(-n.y,n.x):a=new S.Point(n.x,-n.y):this.isXAxis?a=new S.Point(-n.y,n.x):a=new S.Point(n.x,-n.y),n.delete(),a},i.prototype.createAxisRender=function(){return new Y.PolarAxisRenderer(this.webAssemblyContext2D)},i})(G.AxisBase2D);return y.__exports.PolarAxisBase=J,y.__exports}exports.__require=pe;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const y=require("./petal-toolkit.cjs936.js"),Z=require("./petal-toolkit.cjs555.js"),ee=require("./petal-toolkit.cjs567.js"),re=require("./petal-toolkit.cjs569.js"),te=require("./petal-toolkit.cjs107.js"),ie=require("./petal-toolkit.cjs111.js"),oe=require("./petal-toolkit.cjs313.js"),ne=require("./petal-toolkit.cjs241.js"),ae=require("./petal-toolkit.cjs492.js"),se=require("./petal-toolkit.cjs273.js"),le=require("./petal-toolkit.cjs275.js"),fe=require("./petal-toolkit.cjs909.js"),ue=require("./petal-toolkit.cjs301.js"),he=require("./petal-toolkit.cjs304.js"),de=require("./petal-toolkit.cjs305.js"),ce=require("./petal-toolkit.cjs306.js");var X;function pe(){if(X)return y.__exports;X=1;var H=y.__exports&&y.__exports.__extends||(function(){var s=function(i,e){return s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(r,t){r.__proto__=t}||function(r,t){for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(r[o]=t[o])},s(i,e)};return function(i,e){if(typeof e!="function"&&e!==null)throw new TypeError("Class extends value "+String(e)+" is not a constructor or null");s(i,e);function r(){this.constructor=i}i.prototype=e===null?Object.create(e):(r.prototype=e.prototype,new r)}})(),g=y.__exports&&y.__exports.__assign||function(){return g=Object.assign||function(s){for(var i,e=1,r=arguments.length;e<r;e++){i=arguments[e];for(var t in i)Object.prototype.hasOwnProperty.call(i,t)&&(s[t]=i[t])}return s},g.apply(this,arguments)};Object.defineProperty(y.__exports,"__esModule",{value:!0}),y.__exports.PolarAxisBase=void 0;var z=Z.__require(),S=ee.__require(),N=re.__require(),D=te.__require(),E=ie.__require(),f=oe.__require(),v=ne.__require(),O=ae.__require(),G=se.__require(),U=le.__require(),q=fe.__require(),Y=ue.__require(),w=he.__require(),T=de.__require(),W=ce.__require(),J=(function(s){H(i,s);function i(e,r){var t=this,o,n,a,u,h,d,c,A,x,b;return Object.assign(r??{},{majorGridLineStyle:g({strokeThickness:1,color:(o=v.SciChartSurfaceBase.DEFAULT_THEME.polarMajorGridLineBrush)!==null&&o!==void 0?o:v.SciChartSurfaceBase.DEFAULT_THEME.majorGridLineBrush},r==null?void 0:r.majorGridLineStyle),minorGridLineStyle:g({strokeThickness:1,color:(n=v.SciChartSurfaceBase.DEFAULT_THEME.polarMinorGridLineBrush)!==null&&n!==void 0?n:v.SciChartSurfaceBase.DEFAULT_THEME.minorGridLineBrush},r==null?void 0:r.minorGridLineStyle)}),t=s.call(this,e,r)||this,t.isPolarAxis=!0,t.axisLayoutState=new U.PolarAxisLayoutState,t.startAngleProperty=0,t.totalAngleProperty=2*Math.PI,t.xCenterOffsetProperty=0,t.yCenterOffsetProperty=0,t.lengthScaleProperty=1,t.gridlineModeProperty=T.EPolarGridlineMode.Circles,t.polarLabelModeProperty=W.EPolarLabelMode.Horizontal,t.innerRadiusProperty=0,t.polarAxisModeProperty=r==null?void 0:r.polarAxisMode,t.gridlineMode=(a=r==null?void 0:r.gridlineMode)!==null&&a!==void 0?a:t.gridlineModeProperty,t.coordTransform=new e.SCRTPolarCoordinateTransform(0,0,0),t.drawMajorBandsProperty=!1,t.innerRadius=(u=r==null?void 0:r.innerRadius)!==null&&u!==void 0?u:t.innerRadiusProperty,t.xCenterOffset=(h=r==null?void 0:r.xCenterOffset)!==null&&h!==void 0?h:t.xCenterOffsetProperty,t.yCenterOffset=(d=r==null?void 0:r.yCenterOffset)!==null&&d!==void 0?d:t.yCenterOffsetProperty,t.lengthScaleProperty=(c=r==null?void 0:r.lengthScale)!==null&&c!==void 0?c:t.lengthScaleProperty,t.polarLabelMode=(A=r==null?void 0:r.polarLabelMode)!==null&&A!==void 0?A:t.polarLabelModeProperty,t.startAngleProperty=(x=r==null?void 0:r.startAngle)!==null&&x!==void 0?x:(r==null?void 0:r.startAngleDegrees)!==void 0?t.toRadians(r.startAngleDegrees):t.startAngleProperty,t.totalAngleProperty=(b=r==null?void 0:r.totalAngle)!==null&&b!==void 0?b:(r==null?void 0:r.totalAngleDegrees)!==void 0?t.toRadians(r.totalAngleDegrees):t.totalAngleProperty,t}return i.prototype.onAttach=function(e,r,t){s.prototype.onAttach.call(this,e,r,t),this.polarAxisMode===void 0&&(this.polarAxisModeProperty=r?w.EPolarAxisMode.Angular:w.EPolarAxisMode.Radial)},Object.defineProperty(i.prototype,"isAngular",{get:function(){return this.polarAxisModeProperty===w.EPolarAxisMode.Angular},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"polarAxisMode",{get:function(){return this.polarAxisModeProperty},set:function(e){this.polarAxisMode!==e&&(this.polarAxisModeProperty=e,this.notifyPropertyChanged("polarAxisMode"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"gridlineMode",{get:function(){return this.gridlineModeProperty},set:function(e){if(this.gridlineMode!==e){if(this.isAngular){console.warn("PolarAxisBase.gridlineMode property is ignored for the angular axis");return}this.gridlineModeProperty=e,this.notifyPropertyChanged("gridlineMode")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"startAngle",{get:function(){return this.startAngleProperty},set:function(e){this.startAngleProperty!==e&&(this.startAngleProperty=e,this.notifyPropertyChanged("startAngle"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalAngle",{get:function(){return this.totalAngleProperty},set:function(e){if(this.totalAngleProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.totalAngle property is ignored for the radial axis");return}e===0&&console.warn("PolarAxisBase.totalAngle can not be zero"),this.totalAngleProperty=e,this.notifyPropertyChanged("totalAngle")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"startAngleDegrees",{get:function(){return Math.round(this.startAngleProperty*180/Math.PI*10)/10},set:function(e){e!==void 0&&(this.startAngleProperty=this.toRadians(e),this.notifyPropertyChanged("startAngle"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"totalAngleDegrees",{get:function(){return Math.round(this.totalAngleProperty*180/Math.PI*10)/10},set:function(e){if(e!==void 0){if(!this.isAngular){console.warn("PolarAxisBase.totalAngleDegrees property is ignored for the radial axis");return}e===0&&console.warn("PolarAxisBase.totalAngleDegrees can not be zero"),this.totalAngleProperty=this.toRadians(e),this.notifyPropertyChanged("totalAngle")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"xCenterOffset",{get:function(){return this.xCenterOffsetProperty},set:function(e){if(this.xCenterOffsetProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.xCenterOffset property is ignored for the radial axis");return}this.xCenterOffsetProperty=e,this.notifyPropertyChanged("xCenterOffset")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"yCenterOffset",{get:function(){return this.yCenterOffsetProperty},set:function(e){if(this.yCenterOffsetProperty!==e){if(!this.isAngular){console.warn("PolarAxisBase.yCenterOffset property is ignored for the radial axis");return}this.yCenterOffsetProperty=e,this.notifyPropertyChanged("yCenterOffset")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"lengthScale",{get:function(){return this.lengthScaleProperty},set:function(e){this.lengthScaleProperty!==e&&(this.lengthScaleProperty=e,this.notifyPropertyChanged("lengthScale"))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"axisLength",{get:function(){var e;return((e=this.axisLengthProperty)!==null&&e!==void 0?e:1)*this.lengthScale-this.offset},set:function(e){this.axisLengthProperty!==e&&(this.axisLengthProperty=e,this.notifyPropertyChanged(q.PROPERTY.AXIS_LENGTH))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"maxRadius",{get:function(){var e;return(e=this.axisLengthProperty)!==null&&e!==void 0?e:1},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"polarLabelMode",{get:function(){return this.polarLabelModeProperty},set:function(e){if(this.polarLabelMode!==e){if(!this.isAngular){console.warn("PolarAxisBase.polarLabelMode property is ignored for the radial axis");return}this.polarLabelModeProperty=e,this.notifyPropertyChanged("polarLabelMode")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"offset",{get:function(){var e,r=this.offsetProperty;return this.offsetOverrideProperty?r=this.offsetOverrideProperty:this.innerRadius!==void 0&&(r=this.innerRadius*((e=this.axisLengthProperty)!==null&&e!==void 0?e:1)),r*this.lengthScale},set:function(e){this.offsetProperty!==e&&(this.offsetProperty=e,this.innerRadius===void 0&&(this.clearCoordCalcCache(),this.notifyPropertyChanged(q.PROPERTY.OFFSET)))},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"innerRadius",{get:function(){return this.innerRadiusProperty},set:function(e){if(this.innerRadius!==e){if(this.isAngular){console.warn("PolarAxisBase.innerRadius property is ignored for the angular axis");return}if(e<0||e>1)throw Error("innerRadius must be between 0 and 1");this.innerRadiusProperty=e,this.clearCoordCalcCache(),this.notifyPropertyChanged("innerRadius")}},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"otherAxis",{get:function(){return this.otherAxisProperty},enumerable:!1,configurable:!0}),i.prototype.measure=function(){var e=this;if(this.isXAxis){var r=this.parentSurface.yAxes.asArray().find(function(o){return o.isPolarAxis&&o.isAngular!==e.isAngular});if(!r)throw new Error("Could not find a polar y axis with isAngluar: ".concat(!this.isAngular));this.otherAxisProperty=r,this.isAngular||(this.xCenterOffsetProperty=r.xCenterOffset,this.yCenterOffsetProperty=r.yCenterOffset)}else{var t=this.parentSurface.xAxes.asArray().find(function(o){return o.isPolarAxis&&o.isAngular!==e.isAngular});if(!t)throw new Error("Could not find a polar x axis with isAngluar: ".concat(!this.isAngular));this.otherAxisProperty=t,this.isAngular||(this.xCenterOffsetProperty=t.xCenterOffset,this.yCenterOffsetProperty=t.yCenterOffset)}s.prototype.measure.call(this)},i.prototype.zoomBy=function(e,r){return this.isAngular?s.prototype.zoomBy.call(this,e,r):s.prototype.zoomBy.call(this,0,r/10)},i.prototype.scroll=function(e,r){return this.isAngular?s.prototype.scroll.call(this,e/this.otherAxis.axisLength*this.axisLength,r):s.prototype.scroll.call(this,e,G.EClipMode.ClipAtMin)},i.prototype.getTransform=function(e){e===void 0&&(e=!1);var r=this.viewRect,t=r.x,o=r.y;this.coordTransform.yIsPolar=this.isAngular&&!this.isXAxisProperty;var n=e?O.DpiHelper.PIXEL_RATIO:1;return this.coordTransform.XCenter=(t-this.parentSurface.seriesViewRect.left)/n,this.coordTransform.YCenter=(o-this.parentSurface.seriesViewRect.top)/n,this.coordTransform.StartAngle=this.startAngle,this.coordTransform},Object.defineProperty(i.prototype,"isHorizontalAxis",{get:function(){return this.isAngular},enumerable:!1,configurable:!0}),Object.defineProperty(i.prototype,"isVerticalChart",{get:function(){return this.isXAxis&&!this.isAngular},enumerable:!1,configurable:!0}),i.prototype.applyTheme=function(e){var r,t,o,n,a=this.parentSurface.previousThemeProvider;this.axisBandsFill===a.axisBandsFill&&(this.axisBandsFill=e.axisBandsFill),this.labelStyle.color===a.tickTextBrush&&(this.labelStyle={color:e.tickTextBrush});var u=(r=a.polarMinorGridLineBrush)!==null&&r!==void 0?r:a.minorGridLineBrush,h=(t=e.polarMinorGridLineBrush)!==null&&t!==void 0?t:e.minorGridLineBrush;this.minorGridLineStyle.color===u&&(this.minorGridLineStyle={color:h});var d=(o=a.polarMajorGridLineBrush)!==null&&o!==void 0?o:a.majorGridLineBrush,c=(n=e.polarMajorGridLineBrush)!==null&&n!==void 0?n:e.majorGridLineBrush;this.majorGridLineStyle.color===d&&(this.majorGridLineStyle={color:c}),this.minorTickLineStyle.color===a.minorGridLineBrush&&(this.minorTickLineStyle={color:e.minorGridLineBrush}),this.majorTickLineStyle.color===a.majorGridLineBrush&&(this.majorTickLineStyle={color:e.majorGridLineBrush}),this.axisTitleStyle.color===a.axisTitleColor&&(this.axisTitleStyle={color:e.axisTitleColor})},i.prototype.toJSON=function(){var e=s.prototype.toJSON.call(this),r={gridlineMode:this.gridlineMode,innerRadius:this.innerRadius,lengthScale:this.lengthScale,polarAxisMode:this.polarAxisMode,polarLabelMode:this.polarLabelMode,startAngle:this.startAngle,totalAngle:this.totalAngle,xCenterOffset:this.xCenterOffset,yCenterOffset:this.yCenterOffset},t=g(g({},e),{options:g(g({},e.options),r)});return t},i.prototype.delete=function(){this.coordTransform=(0,z.deleteSafe)(this.coordTransform),s.prototype.delete.call(this)},i.prototype.drawAxisBands=function(e,r,t,o){},i.prototype.getPenForLines=function(e,r,t,o){if((e===this.penCacheForMajorGridLines||e===this.penCacheForMinorGridLines)&&!this.isAngular&&this.gridlineMode===T.EPolarGridlineMode.Circles){var n=t>0?t+1:0;return(0,D.createPenInCache)(e,r,n,1,o,!1)}var a=t>0?t+1:0;return(0,D.createPenInCache)(e,r,a,1,o,!0)},i.prototype.drawGridLines=function(e,r,t,o){var n=this,a,u,h,d;if(!(!r||r.length===0)){var c=((u=(a=this.parentSurface.padding)===null||a===void 0?void 0:a.left)!==null&&u!==void 0?u:0)*O.DpiHelper.PIXEL_RATIO,A=((d=(h=this.parentSurface.padding)===null||h===void 0?void 0:h.top)!==null&&d!==void 0?d:0)*O.DpiHelper.PIXEL_RATIO,x=this.viewRect;x.x,x.y;var b=x.width,l=this.getTransform();b=b*this.otherAxis.lengthScale;var m=N.Rect.intersect(this.parentSurface.clipRect,this.parentSurface.seriesViewRect);if(this.isAngular){e.EnsureContextTransform(0,0,m);var _=(0,f.getVectorColorVertex)(this.webAssemblyContext2D),p=(0,f.getVector2)(this.webAssemblyContext2D),P=(0,f.getVertex)(this.webAssemblyContext2D,0,0),$=15;r.forEach(function(C,L){l.TransformPoint(b,C,p),P.SetPosition(p.x,p.y),_.push_back(P),n.otherAxis.offset>0?(l.TransformPoint(n.otherAxis.offset,C,p),P.SetPosition(p.x,p.y),_.push_back(P)):o?(P.SetPosition(l.XCenter,l.YCenter),_.push_back(P)):(l.TransformPoint($,C,p),P.SetPosition(p.x,p.y),_.push_back(P))}),e.drawLinesNative(_,t,E.ELineDrawMode.DiscontinuousLine,m,c,A)}else if(this.gridlineMode===T.EPolarGridlineMode.Polygons){e.EnsureContextTransform(0,0,m);var k=this.otherAxis.getTicksWithCoords().majorTickCoords,B=(0,f.getVectorColorVertex)(this.webAssemblyContext2D),j=(0,f.getVector2)(this.webAssemblyContext2D),R=(0,f.getVertex)(this.webAssemblyContext2D,0,0);r.forEach(function(C){k.forEach(function(L,F){l.TransformPoint(C,L,j),R.SetPosition(j.x,j.y),B.push_back(R),F>0&&F<k.length-1&&B.push_back(R)})}),e.drawLinesNative(B,t,E.ELineDrawMode.DiscontinuousLine,m,c,A)}else{var I=(0,f.getVectorArcVertex)(this.webAssemblyContext2D),V=(0,f.getArcVertex)(this.webAssemblyContext2D),M=0;this.parentSurface.isCopyCanvasSurface?M=v.SciChartSurfaceBase.domMasterCanvas.height:M=this.parentSurface.renderSurface.viewportSize.height;var K=this.otherAxis.startAngle,Q=this.otherAxis.axisLength;r.forEach(function(C){var L=(0,f.getArcParams)(n.webAssemblyContext2D,l.XCenter,M-l.YCenter,0,Q,C,0,1,1,t.m_fThickness);V.MakeCircularArc(L),I.push_back(V)}),e.drawArcs(I,l.XCenter,M-l.YCenter,K,m,t,void 0,c,A)}}},i.prototype.toRadians=function(e){return e*Math.PI/180},i.prototype.reverseTransform=function(e,r,t){t===void 0&&(t=!0);var o=this.getTransform(),n=new this.webAssemblyContext2D.TSRVector2;o.ReverseTransformPoint(e,r,n);var a;return t?this.isXAxis&&this.isAngular?a=new S.Point(-n.y,n.x):a=new S.Point(n.x,-n.y):this.isXAxis?a=new S.Point(-n.y,n.x):a=new S.Point(n.x,-n.y),n.delete(),a},i.prototype.createAxisRender=function(){return new Y.PolarAxisRenderer(this.webAssemblyContext2D)},i})(G.AxisBase2D);return y.__exports.PolarAxisBase=J,y.__exports}exports.__require=pe;
2
2
  //# sourceMappingURL=petal-toolkit.cjs300.js.map