react-native-wagmi-charts 1.7.0 → 2.1.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 (601) hide show
  1. package/.DS_Store +0 -0
  2. package/README.md +365 -193
  3. package/example/.DS_Store +0 -0
  4. package/example/.expo/web/cache/development/babel-loader/0048eab7a1937596c83f7a0a8669a057.json +1 -0
  5. package/example/.expo/web/cache/development/babel-loader/00e78539c92f01b2990b35cc56404077.json +1 -0
  6. package/example/.expo/web/cache/development/babel-loader/01548be34380766518c44d302f0da833.json +1 -0
  7. package/example/.expo/web/cache/development/babel-loader/01dc8e11259412b46f72a16b6f6f989a.json +1 -0
  8. package/example/.expo/web/cache/development/babel-loader/022bc27c62f111b60de1d9cf31798db5.json +1 -0
  9. package/example/.expo/web/cache/development/babel-loader/02341c3581c9b4661b5deec14d244183.json +1 -0
  10. package/example/.expo/web/cache/development/babel-loader/029e21747cfcaf8be0db65a531a13e45.json +1 -0
  11. package/example/.expo/web/cache/development/babel-loader/02cacb7980022332144135d930ecea11.json +1 -0
  12. package/example/.expo/web/cache/development/babel-loader/030b07a0a05e98460988fcc5b21543fd.json +1 -0
  13. package/example/.expo/web/cache/development/babel-loader/03e0f78352a5cc290e9a694dfa0457b2.json +1 -0
  14. package/example/.expo/web/cache/development/babel-loader/03f273e96dda522f2f1ffb0c11d9cb41.json +1 -0
  15. package/example/.expo/web/cache/development/babel-loader/040ef89e9083432c9c572aecfb055253.json +1 -0
  16. package/example/.expo/web/cache/development/babel-loader/053109a5af2f50846dbff99c9ddaa08b.json +1 -0
  17. package/example/.expo/web/cache/development/babel-loader/05c8ee51599e49b8df4c2aea1c61f9bd.json +1 -0
  18. package/example/.expo/web/cache/development/babel-loader/061e5f7ad7d0922480d8aa5ec61bb646.json +1 -0
  19. package/example/.expo/web/cache/development/babel-loader/062a149ffbda2b47d4a754da17f0ed89.json +1 -0
  20. package/example/.expo/web/cache/development/babel-loader/06c9aabc7c8dc32a774403b9acd1d9e3.json +1 -0
  21. package/example/.expo/web/cache/development/babel-loader/06de2f6698410c68adcc5a227728a923.json +1 -0
  22. package/example/.expo/web/cache/development/babel-loader/078d39387ece388cb409a9de98417dd7.json +1 -0
  23. package/example/.expo/web/cache/development/babel-loader/08ae8c107c10803a4fd1dcd9bb77631b.json +1 -0
  24. package/example/.expo/web/cache/development/babel-loader/0b71299ddceefa8034f07d7bd25f7132.json +1 -0
  25. package/example/.expo/web/cache/development/babel-loader/0ba484ac7ba0d1abe8d566757740b901.json +1 -0
  26. package/example/.expo/web/cache/development/babel-loader/0bdbd4da7c535a6cfa3d301a2e03cdb3.json +1 -0
  27. package/example/.expo/web/cache/development/babel-loader/0ca19fcabd7879d8a09389c265186c73.json +1 -0
  28. package/example/.expo/web/cache/development/babel-loader/0dba3b74d1f9e83e7e1be547f59f9b0d.json +1 -0
  29. package/example/.expo/web/cache/development/babel-loader/0dda8bfcef9ddb34113838e01d884c94.json +1 -0
  30. package/example/.expo/web/cache/development/babel-loader/0fed877538eec4c0fe6fc59a7fba1884.json +1 -0
  31. package/example/.expo/web/cache/development/babel-loader/10c42328cedbca0b7c02e292cbf7e819.json +1 -0
  32. package/example/.expo/web/cache/development/babel-loader/11e5e2a288b722ed1a72951da903668f.json +1 -0
  33. package/example/.expo/web/cache/development/babel-loader/124b86bda7fafdb400a04e42fb06d241.json +1 -0
  34. package/example/.expo/web/cache/development/babel-loader/12ddb38f86b223c6168a22c3c441d23c.json +1 -0
  35. package/example/.expo/web/cache/development/babel-loader/12f8b90d6b32fd8d434f74ec0a1cc5de.json +1 -0
  36. package/example/.expo/web/cache/development/babel-loader/14896ac3a706173aa66f99f5ac81de25.json +1 -0
  37. package/example/.expo/web/cache/development/babel-loader/155b2897eaa205c153dc174759391596.json +1 -0
  38. package/example/.expo/web/cache/development/babel-loader/159bcfbc06914dc0fa53d932ecdeb3a8.json +1 -0
  39. package/example/.expo/web/cache/development/babel-loader/15adfc2176211fd1b1f1e26ffac54860.json +1 -0
  40. package/example/.expo/web/cache/development/babel-loader/16bf97aa1df29d051e75cdcfe30258ca.json +1 -0
  41. package/example/.expo/web/cache/development/babel-loader/173757cc1e741e39f50c821a347ca6a7.json +1 -0
  42. package/example/.expo/web/cache/development/babel-loader/17539008e1af521bbd4be8772219d502.json +1 -0
  43. package/example/.expo/web/cache/development/babel-loader/178a06574c91fc5f7d66bb5c1087d694.json +1 -0
  44. package/example/.expo/web/cache/development/babel-loader/17f33cd1288f2d81431bd2cc3594a889.json +1 -0
  45. package/example/.expo/web/cache/development/babel-loader/1ae598529609953300b8831809806773.json +1 -0
  46. package/example/.expo/web/cache/development/babel-loader/1bf72c5e82adfae4cd9fb7d062f43c7b.json +1 -0
  47. package/example/.expo/web/cache/development/babel-loader/1e954e44cae79871d604d778ed2b019b.json +1 -0
  48. package/example/.expo/web/cache/development/babel-loader/1f3db19af6a4daad8ac653aef9a17b3e.json +1 -0
  49. package/example/.expo/web/cache/development/babel-loader/1fa8d4f7956d15e5d2301b5bc0ea5cda.json +1 -0
  50. package/example/.expo/web/cache/development/babel-loader/20143c2ba144a977d78c7b106120350d.json +1 -0
  51. package/example/.expo/web/cache/development/babel-loader/201eb696584a8e8ed6ccc7f1c94bea83.json +1 -0
  52. package/example/.expo/web/cache/development/babel-loader/208778a4ee646ee0555ed1e67b562757.json +1 -0
  53. package/example/.expo/web/cache/development/babel-loader/219c2137c40f30853f1c0da86e6195ae.json +1 -0
  54. package/example/.expo/web/cache/development/babel-loader/224ade2bbe8e0b2388eb1c55bff3f264.json +1 -0
  55. package/example/.expo/web/cache/development/babel-loader/22eb55b287473e3a78908381441cfcb4.json +1 -0
  56. package/example/.expo/web/cache/development/babel-loader/240cb3678995c4254ed6e5c7582952ba.json +1 -0
  57. package/example/.expo/web/cache/development/babel-loader/2530791779144ffab597cad5be52c226.json +1 -0
  58. package/example/.expo/web/cache/development/babel-loader/2596af2ade89538878b6d544100f3399.json +1 -0
  59. package/example/.expo/web/cache/development/babel-loader/25ba14deb6adaac77b56e2c781b4f065.json +1 -0
  60. package/example/.expo/web/cache/development/babel-loader/26d2d37f205cec86abab8af6ff0ebc64.json +1 -0
  61. package/example/.expo/web/cache/development/babel-loader/283e292d5ceb581a50e9755ac42601a2.json +1 -0
  62. package/example/.expo/web/cache/development/babel-loader/28d1872152a5070e160a78864dac71c9.json +1 -0
  63. package/example/.expo/web/cache/development/babel-loader/29518ab58c8aacdb2e5e164fc13d872b.json +1 -0
  64. package/example/.expo/web/cache/development/babel-loader/29d79f626f6ad6bfe79bbbf010acedf3.json +1 -0
  65. package/example/.expo/web/cache/development/babel-loader/2aa749a94f4df8b760e8acfdb25028ff.json +1 -0
  66. package/example/.expo/web/cache/development/babel-loader/2b64d55ee11f0015681db4ce68a395d2.json +1 -0
  67. package/example/.expo/web/cache/development/babel-loader/2cccd0ecb5914d7b91a0e2a0fbd995c9.json +1 -0
  68. package/example/.expo/web/cache/development/babel-loader/2dbbd507ae02c5249d7088f625312a95.json +1 -0
  69. package/example/.expo/web/cache/development/babel-loader/2dce9894a2affe7bfe287cd3e27b4efd.json +1 -0
  70. package/example/.expo/web/cache/development/babel-loader/2e27f8a130af009b492bc9f13a3bb578.json +1 -0
  71. package/example/.expo/web/cache/development/babel-loader/2f57f3c72b3b460c5d299bcf081b429b.json +1 -0
  72. package/example/.expo/web/cache/development/babel-loader/2f63db06dec4ae0f934cbe269ca78b7c.json +1 -0
  73. package/example/.expo/web/cache/development/babel-loader/3146ea18d415deb6177ac03e1355688e.json +1 -0
  74. package/example/.expo/web/cache/development/babel-loader/319feb766afa0b6ef1fd0f61a79d8306.json +1 -0
  75. package/example/.expo/web/cache/development/babel-loader/35c0fe0f3af5e5bb30c862ab2f0352fe.json +1 -0
  76. package/example/.expo/web/cache/development/babel-loader/35e42e8dca6b3242a869b68dd19c9320.json +1 -0
  77. package/example/.expo/web/cache/development/babel-loader/3683ce1bd7ea848ec955de2738873cfb.json +1 -0
  78. package/example/.expo/web/cache/development/babel-loader/368688165f40c4cfc59238bacf69d131.json +1 -0
  79. package/example/.expo/web/cache/development/babel-loader/36e75d47020ead36881558873b7ed051.json +1 -0
  80. package/example/.expo/web/cache/development/babel-loader/38146d6afeec03b463523c4710274e9a.json +1 -0
  81. package/example/.expo/web/cache/development/babel-loader/394f45d48a9648d70c4b5b64076be031.json +1 -0
  82. package/example/.expo/web/cache/development/babel-loader/3972208eae9b5b632b17b21baa8bf208.json +1 -0
  83. package/example/.expo/web/cache/development/babel-loader/39f743b81b60417ab847556a7179e22a.json +1 -0
  84. package/example/.expo/web/cache/development/babel-loader/3b7135501e404451314cdcc9fe0600b8.json +1 -0
  85. package/example/.expo/web/cache/development/babel-loader/3c20b6d457837e0ac87f3e648e6eca00.json +1 -0
  86. package/example/.expo/web/cache/development/babel-loader/3c5f38af9e2ec3a91de4f1b4fec17b0a.json +1 -0
  87. package/example/.expo/web/cache/development/babel-loader/3e1698f99f9fc08d49f7b34982fa5ff9.json +1 -0
  88. package/example/.expo/web/cache/development/babel-loader/3e2d35c9bbfe5423a7d98376bcd56e6b.json +1 -0
  89. package/example/.expo/web/cache/development/babel-loader/3e7a2e7fe4f726704b568371689534ae.json +1 -0
  90. package/example/.expo/web/cache/development/babel-loader/3f86d59727c3e03e54652149a8f8d3b6.json +1 -0
  91. package/example/.expo/web/cache/development/babel-loader/40402ff33d7840c2ef429fb4b123038d.json +1 -0
  92. package/example/.expo/web/cache/development/babel-loader/4088615ef9d57b3f7fe4190660ba6ddc.json +1 -0
  93. package/example/.expo/web/cache/development/babel-loader/40c4fde14ef2e0ea53a7432cd848ff2b.json +1 -0
  94. package/example/.expo/web/cache/development/babel-loader/42c2f18b8307bc0d3ea5d84373a5d67f.json +1 -0
  95. package/example/.expo/web/cache/development/babel-loader/437dd685561b93a81742ac2ecbeb7d41.json +1 -0
  96. package/example/.expo/web/cache/development/babel-loader/44dc1996d592f2e6f37bad3a90765f47.json +1 -0
  97. package/example/.expo/web/cache/development/babel-loader/45873f55ae22e035954bc06cc50b2173.json +1 -0
  98. package/example/.expo/web/cache/development/babel-loader/46679e2a6fceee1389fc81e63b21348f.json +1 -0
  99. package/example/.expo/web/cache/development/babel-loader/4861470a02020675a1ee3db81cf82013.json +1 -0
  100. package/example/.expo/web/cache/development/babel-loader/4864be71b0d3193e0c759b91a9548cce.json +1 -0
  101. package/example/.expo/web/cache/development/babel-loader/487488e8e5ae8ef9217e3c56a43ad05a.json +1 -0
  102. package/example/.expo/web/cache/development/babel-loader/49f4c364b909987eb06dde9e5e191155.json +1 -0
  103. package/example/.expo/web/cache/development/babel-loader/4b81b318c8d202092e5f11c893ba60ca.json +1 -0
  104. package/example/.expo/web/cache/development/babel-loader/4b929b061248038485fe18a4000f0dc7.json +1 -0
  105. package/example/.expo/web/cache/development/babel-loader/4bb899e66458fe70451b960feb748cca.json +1 -0
  106. package/example/.expo/web/cache/development/babel-loader/4bf2841cd4d191e4fcd069fc2defa95d.json +1 -0
  107. package/example/.expo/web/cache/development/babel-loader/4bfdf05b16115a8f6be82091518c35be.json +1 -0
  108. package/example/.expo/web/cache/development/babel-loader/4c14d7bff7de294fd991c68522f97ee4.json +1 -0
  109. package/example/.expo/web/cache/development/babel-loader/4c723644cc0a1300f119db91b3a4e1d8.json +1 -0
  110. package/example/.expo/web/cache/development/babel-loader/4c912e44b450dfff1f0d609c6fcf770c.json +1 -0
  111. package/example/.expo/web/cache/development/babel-loader/4c91a10b38720099ce4af9a3b12902e3.json +1 -0
  112. package/example/.expo/web/cache/development/babel-loader/4d466fa65871bcbc64956934ceb7b82f.json +1 -0
  113. package/example/.expo/web/cache/development/babel-loader/4e225e240a0c5e5724f9d92ab2c2a5c7.json +1 -0
  114. package/example/.expo/web/cache/development/babel-loader/4e741f92fbbd92b96334530f6ad10846.json +1 -0
  115. package/example/.expo/web/cache/development/babel-loader/4f17a38ef723d2f2f88ab36229447848.json +1 -0
  116. package/example/.expo/web/cache/development/babel-loader/5126e93c01ee93124a5e74d11303b9c8.json +1 -0
  117. package/example/.expo/web/cache/development/babel-loader/519238552f7ca486b938192b9cbcceae.json +1 -0
  118. package/example/.expo/web/cache/development/babel-loader/523038c6dc8ac0e76ef7a23d3eed51ec.json +1 -0
  119. package/example/.expo/web/cache/development/babel-loader/532fa6c08d38d3c6de9df3cbc1e6a903.json +1 -0
  120. package/example/.expo/web/cache/development/babel-loader/53bf8f177165c6b0e75a631aa4519d41.json +1 -0
  121. package/example/.expo/web/cache/development/babel-loader/53ea8a26aeb6e2759a7f1f5f4f56b6fb.json +1 -0
  122. package/example/.expo/web/cache/development/babel-loader/542e618262a94895f81236112129bd3e.json +1 -0
  123. package/example/.expo/web/cache/development/babel-loader/546891698aff03b72ed2f6ceb6e7fa89.json +1 -0
  124. package/example/.expo/web/cache/development/babel-loader/5471a749a6e8af27964d87af251c688a.json +1 -0
  125. package/example/.expo/web/cache/development/babel-loader/547a11a6bdd8bda252dfd4614f815fbb.json +1 -0
  126. package/example/.expo/web/cache/development/babel-loader/549d7a1c3d15fdb39d9bffcf267e3f56.json +1 -0
  127. package/example/.expo/web/cache/development/babel-loader/55add2461e97c93eb8aac04bb6999d6f.json +1 -0
  128. package/example/.expo/web/cache/development/babel-loader/566edd7dfdc185ef467beb97fcd9e08c.json +1 -0
  129. package/example/.expo/web/cache/development/babel-loader/567acdadac00f4c65b037849683131b6.json +1 -0
  130. package/example/.expo/web/cache/development/babel-loader/57892340c5b232df0a75f1339c9e68ce.json +1 -0
  131. package/example/.expo/web/cache/development/babel-loader/586d05cc2c149bd7435298a982b57d60.json +1 -0
  132. package/example/.expo/web/cache/development/babel-loader/5954d33f838e7e341ebe043096ac7fe5.json +1 -0
  133. package/example/.expo/web/cache/development/babel-loader/5a07d6d40bd575c25f45538b187acd8a.json +1 -0
  134. package/example/.expo/web/cache/development/babel-loader/5a27a1760bd4f6407b1fea26715a87bc.json +1 -0
  135. package/example/.expo/web/cache/development/babel-loader/5b36330631e46bbf63f870970b2122f7.json +1 -0
  136. package/example/.expo/web/cache/development/babel-loader/5b9bc4b234aa59e34135748fd93507b6.json +1 -0
  137. package/example/.expo/web/cache/development/babel-loader/5c0087a9595888025264a9904d1b8eef.json +1 -0
  138. package/example/.expo/web/cache/development/babel-loader/5d16233202c82021ddec174b9bb58863.json +1 -0
  139. package/example/.expo/web/cache/development/babel-loader/5d569557de3b7d5fa8afc576ac512a04.json +1 -0
  140. package/example/.expo/web/cache/development/babel-loader/5d646ca9aa7f759e829259ce504269e2.json +1 -0
  141. package/example/.expo/web/cache/development/babel-loader/5eef44eed8ccb290fe3456e2fe6bf8ed.json +1 -0
  142. package/example/.expo/web/cache/development/babel-loader/6024b3f768564aaeb1361263b0202a14.json +1 -0
  143. package/example/.expo/web/cache/development/babel-loader/61cfc5a0e7335e0b9a219b1cbe277614.json +1 -0
  144. package/example/.expo/web/cache/development/babel-loader/620f55f17382101002e5e9426ce3e366.json +1 -0
  145. package/example/.expo/web/cache/development/babel-loader/62676c7e580c2e05b3597d53b1cec852.json +1 -0
  146. package/example/.expo/web/cache/development/babel-loader/62f012bfa58863dc3ea69f00f9b90a77.json +1 -0
  147. package/example/.expo/web/cache/development/babel-loader/6320f4e69400d39312489472d7f26d50.json +1 -0
  148. package/example/.expo/web/cache/development/babel-loader/63a9473d63154c31603b1ec1c728c8ab.json +1 -0
  149. package/example/.expo/web/cache/development/babel-loader/63bae7aa325e3c82ba555ac19c0912fa.json +1 -0
  150. package/example/.expo/web/cache/development/babel-loader/63c7331c32b247560f7318cb076a7c40.json +1 -0
  151. package/example/.expo/web/cache/development/babel-loader/645eaa3c12cea785d12fed54225c1bad.json +1 -0
  152. package/example/.expo/web/cache/development/babel-loader/64f7c8f31e295eee69738bfe05c5bff5.json +1 -0
  153. package/example/.expo/web/cache/development/babel-loader/68189da0029a30976a2484255a17ce79.json +1 -0
  154. package/example/.expo/web/cache/development/babel-loader/696a6f2f23efafc28fc3c6d5b5ffaeac.json +1 -0
  155. package/example/.expo/web/cache/development/babel-loader/6991b1cd9f19326a94f92ef5b1b842a8.json +1 -0
  156. package/example/.expo/web/cache/development/babel-loader/6b97a59c5465397dba921f389acaafdd.json +1 -0
  157. package/example/.expo/web/cache/development/babel-loader/6c2f82c0db7403ccd4f19071f91173e4.json +1 -0
  158. package/example/.expo/web/cache/development/babel-loader/6c8a2848fe0f787148c2fb6de4264155.json +1 -0
  159. package/example/.expo/web/cache/development/babel-loader/6d6f8b41da6a4ba792c39f671105e620.json +1 -0
  160. package/example/.expo/web/cache/development/babel-loader/6e1b109f621c0d54775303f058483115.json +1 -0
  161. package/example/.expo/web/cache/development/babel-loader/6f12c17d739331ecffc1403342ba41da.json +1 -0
  162. package/example/.expo/web/cache/development/babel-loader/6fd1661af13dedb5e44522d491a1caf6.json +1 -0
  163. package/example/.expo/web/cache/development/babel-loader/70011f5e5361437bcf72ec2b53fad9f0.json +1 -0
  164. package/example/.expo/web/cache/development/babel-loader/71c89114f87eec2560a35accc6fb21d7.json +1 -0
  165. package/example/.expo/web/cache/development/babel-loader/71f17bedd745f584f7abc4f4d51c7ad4.json +1 -0
  166. package/example/.expo/web/cache/development/babel-loader/72b944856e68e4a8a0ed8e4c2413070a.json +1 -0
  167. package/example/.expo/web/cache/development/babel-loader/740b2f1ab937b3d8fae7d547e9118390.json +1 -0
  168. package/example/.expo/web/cache/development/babel-loader/748a994e95eb1d1311d08dae70ff213a.json +1 -0
  169. package/example/.expo/web/cache/development/babel-loader/74b3b0d02f286a48fe045bb68c2a4650.json +1 -0
  170. package/example/.expo/web/cache/development/babel-loader/74d8aca04393d958004db6c2ef850b15.json +1 -0
  171. package/example/.expo/web/cache/development/babel-loader/765c63eb89770f11615c740460d8a605.json +1 -0
  172. package/example/.expo/web/cache/development/babel-loader/7695443a011b53044155a45950f64551.json +1 -0
  173. package/example/.expo/web/cache/development/babel-loader/77348d41c4a630ac871ec1662d753572.json +1 -0
  174. package/example/.expo/web/cache/development/babel-loader/77a4283c1f4aa52a3ec7489dfcb4fd3c.json +1 -0
  175. package/example/.expo/web/cache/development/babel-loader/77c1d4c9c2134086a760c84c8dbb0767.json +1 -0
  176. package/example/.expo/web/cache/development/babel-loader/7856391ec0a27839d3fa6acbeb9aadda.json +1 -0
  177. package/example/.expo/web/cache/development/babel-loader/78d3d5bbf14c6f41859897e37d770fcf.json +1 -0
  178. package/example/.expo/web/cache/development/babel-loader/79c9840acdf1d5058d1dd9a3ee4c26a1.json +1 -0
  179. package/example/.expo/web/cache/development/babel-loader/79d14c794bf695a8710614f2650caadc.json +1 -0
  180. package/example/.expo/web/cache/development/babel-loader/79d484d4cd279cefd19f3ae34fbabc47.json +1 -0
  181. package/example/.expo/web/cache/development/babel-loader/7ac59aadbbeb87bbaa689455f49462e7.json +1 -0
  182. package/example/.expo/web/cache/development/babel-loader/7addb7eb6bdec7308191a341bbe4f418.json +1 -0
  183. package/example/.expo/web/cache/development/babel-loader/7c6b46cf1a8d27fbf10098fc7b3147d4.json +1 -0
  184. package/example/.expo/web/cache/development/babel-loader/7e073695c8dd0edfff43941d69ed768f.json +1 -0
  185. package/example/.expo/web/cache/development/babel-loader/7ea547e52608eb3d07287f91483f92d0.json +1 -0
  186. package/example/.expo/web/cache/development/babel-loader/80b2a7b63d2968f55ad413f37a77625e.json +1 -0
  187. package/example/.expo/web/cache/development/babel-loader/81da8afb512f1fe3dc5283eed7693dc3.json +1 -0
  188. package/example/.expo/web/cache/development/babel-loader/83ce5beb699584197b95c23e16070359.json +1 -0
  189. package/example/.expo/web/cache/development/babel-loader/84cbca54aad0ba7ad9155efbe50994e6.json +1 -0
  190. package/example/.expo/web/cache/development/babel-loader/86aa7c8020aadae1b6047e779a070006.json +1 -0
  191. package/example/.expo/web/cache/development/babel-loader/873f17ead5c8a3a89f8c307d3fc3d749.json +1 -0
  192. package/example/.expo/web/cache/development/babel-loader/88fd90442a3cd6528e4248e448007e21.json +1 -0
  193. package/example/.expo/web/cache/development/babel-loader/8947ed6ed81ae1ed2f0d1a5f7a21d4bd.json +1 -0
  194. package/example/.expo/web/cache/development/babel-loader/8b0fa6466bfbb43efbc8a796bb0a058f.json +1 -0
  195. package/example/.expo/web/cache/development/babel-loader/8bcdd0d74f6bf06c96dc636553f1ada8.json +1 -0
  196. package/example/.expo/web/cache/development/babel-loader/8bfd7063b443cb17646e674300dd862b.json +1 -0
  197. package/example/.expo/web/cache/development/babel-loader/8d06501d3b127619583bc480630ad389.json +1 -0
  198. package/example/.expo/web/cache/development/babel-loader/8d9e770602734e0d230feafb37171ca8.json +1 -0
  199. package/example/.expo/web/cache/development/babel-loader/8dbfb280c88ee5948b0a3cc84074bd43.json +1 -0
  200. package/example/.expo/web/cache/development/babel-loader/8df99953a7fe26875c55c9bc1e71ca29.json +1 -0
  201. package/example/.expo/web/cache/development/babel-loader/8e7ea386f4f497f8c5e0a4a9b80b093a.json +1 -0
  202. package/example/.expo/web/cache/development/babel-loader/8efad0218d4db05da11e8e21002ac55e.json +1 -0
  203. package/example/.expo/web/cache/development/babel-loader/8f6e1de5d12755c13e6c50a07e2d0778.json +1 -0
  204. package/example/.expo/web/cache/development/babel-loader/91ed31500f942f97aec1be73e89a7af8.json +1 -0
  205. package/example/.expo/web/cache/development/babel-loader/9252abf85af8c03f427a2e2117a1ad62.json +1 -0
  206. package/example/.expo/web/cache/development/babel-loader/92b72e3964caccd73a132a988edcfae7.json +1 -0
  207. package/example/.expo/web/cache/development/babel-loader/93945109a64716fc3d15a12d81598ef8.json +1 -0
  208. package/example/.expo/web/cache/development/babel-loader/93ee4950a9326c046f9fa65c13dac411.json +1 -0
  209. package/example/.expo/web/cache/development/babel-loader/93fe9632bb5db4ded992478e2af27d5f.json +1 -0
  210. package/example/.expo/web/cache/development/babel-loader/942ff966d1b2f375164a20370f75739c.json +1 -0
  211. package/example/.expo/web/cache/development/babel-loader/954ad5b7f72730fad3a93e8333b0da09.json +1 -0
  212. package/example/.expo/web/cache/development/babel-loader/957bea32dcc83e0fc7f2fd8795a8f818.json +1 -0
  213. package/example/.expo/web/cache/development/babel-loader/964cb097c867a1ded7eb7446f5548c22.json +1 -0
  214. package/example/.expo/web/cache/development/babel-loader/98e4f7e158718137c26f2fe60b84369d.json +1 -0
  215. package/example/.expo/web/cache/development/babel-loader/9ae989e87da92329c1f285a30c2be6f5.json +1 -0
  216. package/example/.expo/web/cache/development/babel-loader/9ba4ab6ad62c186c10cc4440ed5f54a7.json +1 -0
  217. package/example/.expo/web/cache/development/babel-loader/9ce0ea8540198d071a57d36dae227cbc.json +1 -0
  218. package/example/.expo/web/cache/development/babel-loader/9d2bab4aa3187dee265f1d9c8ce6f0f6.json +1 -0
  219. package/example/.expo/web/cache/development/babel-loader/9e653ee142610f0516609ca3fb386739.json +1 -0
  220. package/example/.expo/web/cache/development/babel-loader/9e75ea79fea0209053c68ef4989b4a3a.json +1 -0
  221. package/example/.expo/web/cache/development/babel-loader/9f2f6a11de269026061831c947435758.json +1 -0
  222. package/example/.expo/web/cache/development/babel-loader/9f3fd9ca3231e3002df99db9d9616aa0.json +1 -0
  223. package/example/.expo/web/cache/development/babel-loader/a076afeae19d4e15321e5d81cf41364a.json +1 -0
  224. package/example/.expo/web/cache/development/babel-loader/a261d7c057c570a5d74c5c84cc08e7f9.json +1 -0
  225. package/example/.expo/web/cache/development/babel-loader/a3611e076e067e7397bd47a9ebe95cf1.json +1 -0
  226. package/example/.expo/web/cache/development/babel-loader/a375a3eadad6ab2ce64ed38759b31415.json +1 -0
  227. package/example/.expo/web/cache/development/babel-loader/a3b99e0ec7f17e098c6b02a04282d805.json +1 -0
  228. package/example/.expo/web/cache/development/babel-loader/a3bde08c6c572203f93bcfa1170d4790.json +1 -0
  229. package/example/.expo/web/cache/development/babel-loader/a3bf51a1af912c42396b784cf9851941.json +1 -0
  230. package/example/.expo/web/cache/development/babel-loader/a48b6217b860aab3e81b366a7306ee03.json +1 -0
  231. package/example/.expo/web/cache/development/babel-loader/a4d591b829ddddd57e666af1737b9d34.json +1 -0
  232. package/example/.expo/web/cache/development/babel-loader/a5439975918b87c11694b33af83dab36.json +1 -0
  233. package/example/.expo/web/cache/development/babel-loader/a5813eb247e0c87dcc99934f4b49ae48.json +1 -0
  234. package/example/.expo/web/cache/development/babel-loader/a584b9a0fe744b07e9054b7aa6e79f77.json +1 -0
  235. package/example/.expo/web/cache/development/babel-loader/a689718c369fcd0f651d9089f15f507e.json +1 -0
  236. package/example/.expo/web/cache/development/babel-loader/a78dc48e202b1f3be61ef3bc64699d14.json +1 -0
  237. package/example/.expo/web/cache/development/babel-loader/a79a096843947a83012402bb34b93567.json +1 -0
  238. package/example/.expo/web/cache/development/babel-loader/aa0e6e0aa152ebcb49584ecc82533c72.json +1 -0
  239. package/example/.expo/web/cache/development/babel-loader/abfc16406c69f7727d3e40be1f492f11.json +1 -0
  240. package/example/.expo/web/cache/development/babel-loader/ac5ac27f40cd535964ff8a0f4a7ee169.json +1 -0
  241. package/example/.expo/web/cache/development/babel-loader/ac5c7f32acb8bbc71777904317929782.json +1 -0
  242. package/example/.expo/web/cache/development/babel-loader/acc343298b9d93f37fea5d0160a6e4ba.json +1 -0
  243. package/example/.expo/web/cache/development/babel-loader/b0a4e8cf7a76d3009a62200ed32812d9.json +1 -0
  244. package/example/.expo/web/cache/development/babel-loader/b1661b3c840f0f1de996ba1d52a39764.json +1 -0
  245. package/example/.expo/web/cache/development/babel-loader/b18b69c1c5e4f8cf7c4ded4ea78be1b5.json +1 -0
  246. package/example/.expo/web/cache/development/babel-loader/b265f89f5ab4c2ac5fe0a4efeb01770f.json +1 -0
  247. package/example/.expo/web/cache/development/babel-loader/b32b03cd1b812594924db2f0dadb2f56.json +1 -0
  248. package/example/.expo/web/cache/development/babel-loader/b36ad3720ed8bc69cd40bacd30394013.json +1 -0
  249. package/example/.expo/web/cache/development/babel-loader/b5d4cbb6bcdc394e0d5535f5bbf695e3.json +1 -0
  250. package/example/.expo/web/cache/development/babel-loader/b64b0b9559bbba155f24caa6cf08f433.json +1 -0
  251. package/example/.expo/web/cache/development/babel-loader/bbfb771df3000d27f236c2f6538e6d31.json +1 -0
  252. package/example/.expo/web/cache/development/babel-loader/bcd08666cb6eeb4d7141e38e753e5e5c.json +1 -0
  253. package/example/.expo/web/cache/development/babel-loader/beef69cc65e73363978524809c84094f.json +1 -0
  254. package/example/.expo/web/cache/development/babel-loader/bf018174df7cdbed5ae77cf03c266fee.json +1 -0
  255. package/example/.expo/web/cache/development/babel-loader/bf53ba81ac3956a07f41a09fa6c4fa7e.json +1 -0
  256. package/example/.expo/web/cache/development/babel-loader/c15cb7604e78e9a4f0cc5e4b79a227c2.json +1 -0
  257. package/example/.expo/web/cache/development/babel-loader/c20807f969171763f83e5286ffb7183c.json +1 -0
  258. package/example/.expo/web/cache/development/babel-loader/c309e4999a3ca5404709ed911ec9fdda.json +1 -0
  259. package/example/.expo/web/cache/development/babel-loader/c37b2427c54ed0b731d9413ea475f338.json +1 -0
  260. package/example/.expo/web/cache/development/babel-loader/c43017273abd7760afa188cb903bfa5d.json +1 -0
  261. package/example/.expo/web/cache/development/babel-loader/c5134c3fb7b800b1c9b34655b8e97e4f.json +1 -0
  262. package/example/.expo/web/cache/development/babel-loader/c62552ef04c76cdb7a94ba2f041360ac.json +1 -0
  263. package/example/.expo/web/cache/development/babel-loader/c69144c50f8f0d981b66c62204aaae74.json +1 -0
  264. package/example/.expo/web/cache/development/babel-loader/c733b561ef63b80564242d9b6f4954ec.json +1 -0
  265. package/example/.expo/web/cache/development/babel-loader/c78a01224ddb57513f9dc1603e721184.json +1 -0
  266. package/example/.expo/web/cache/development/babel-loader/c800cb1a4eccf4cc18e1408cf178b86d.json +1 -0
  267. package/example/.expo/web/cache/development/babel-loader/c8c61768113386918420fa8baaa34704.json +1 -0
  268. package/example/.expo/web/cache/development/babel-loader/ca0c207f9e3ba434db8f3775513736e6.json +1 -0
  269. package/example/.expo/web/cache/development/babel-loader/ca4498d52ea6fed7e01c9ed5c26fcf95.json +1 -0
  270. package/example/.expo/web/cache/development/babel-loader/cba71c3eea31dc8ca85b9ced8f7b1720.json +1 -0
  271. package/example/.expo/web/cache/development/babel-loader/cc2ae312a6441a2fedd76ee22ac87d51.json +1 -0
  272. package/example/.expo/web/cache/development/babel-loader/cc37b4c4f23da7c9d04d8693a5bbaaab.json +1 -0
  273. package/example/.expo/web/cache/development/babel-loader/cced66a0b48653e5bfa98910a88f9fba.json +1 -0
  274. package/example/.expo/web/cache/development/babel-loader/cd0e23910d814598adda82d05396be53.json +1 -0
  275. package/example/.expo/web/cache/development/babel-loader/cd55e478acd924f5c082f02840ed8bbb.json +1 -0
  276. package/example/.expo/web/cache/development/babel-loader/cd8b6c6cd6a24fa61739c4d22dda95f8.json +1 -0
  277. package/example/.expo/web/cache/development/babel-loader/cdf6fa5dcab6f3a13fa07e89fe985423.json +1 -0
  278. package/example/.expo/web/cache/development/babel-loader/ceccb76ea280ae97ededa88718ed0c3b.json +1 -0
  279. package/example/.expo/web/cache/development/babel-loader/cfc467109de81a77ce3d683966f4b354.json +1 -0
  280. package/example/.expo/web/cache/development/babel-loader/d0c3cb818782b9a81bfc30385f72b89b.json +1 -0
  281. package/example/.expo/web/cache/development/babel-loader/d0fcdc8e889d972bbb4337e548164f40.json +1 -0
  282. package/example/.expo/web/cache/development/babel-loader/d168cd3939b990979e911bb032f8577b.json +1 -0
  283. package/example/.expo/web/cache/development/babel-loader/d2fc7ecda4f6641f8d52e406be776196.json +1 -0
  284. package/example/.expo/web/cache/development/babel-loader/d358f00c23a45360cbb79dabdb721cd1.json +1 -0
  285. package/example/.expo/web/cache/development/babel-loader/d45d41c244dad2c3ea03ba49a46a0423.json +1 -0
  286. package/example/.expo/web/cache/development/babel-loader/d4f6275737ee0b15864d1784084ec4e9.json +1 -0
  287. package/example/.expo/web/cache/development/babel-loader/d5420905583aa27006ceaa13da6b662a.json +1 -0
  288. package/example/.expo/web/cache/development/babel-loader/d5552d7ee552fec6e21e0b398feb3ddb.json +1 -0
  289. package/example/.expo/web/cache/development/babel-loader/d5cec4c149045421487b8541b94a68b3.json +1 -0
  290. package/example/.expo/web/cache/development/babel-loader/d72ee3cf688a67b27f18b05bef74d879.json +1 -0
  291. package/example/.expo/web/cache/development/babel-loader/d797775538f909e9de0d644bcf0389e4.json +1 -0
  292. package/example/.expo/web/cache/development/babel-loader/d7cfda25d1654f23b9938352b3e5f0fd.json +1 -0
  293. package/example/.expo/web/cache/development/babel-loader/d7f22047db03832a0314db9bb7c9e4e8.json +1 -0
  294. package/example/.expo/web/cache/development/babel-loader/d92da9ccd71edac1d6d7f1b72554205f.json +1 -0
  295. package/example/.expo/web/cache/development/babel-loader/dae925659703faa3496df0985e30eb46.json +1 -0
  296. package/example/.expo/web/cache/development/babel-loader/db2362a80925087fd6dfea2ecf5d1527.json +1 -0
  297. package/example/.expo/web/cache/development/babel-loader/db44721b3956bd3b7617e773f566987b.json +1 -0
  298. package/example/.expo/web/cache/development/babel-loader/dd2e7e9f0700b6295764b0357f97fbd1.json +1 -0
  299. package/example/.expo/web/cache/development/babel-loader/dee3d7eeaa9d088adee455787ecfdbba.json +1 -0
  300. package/example/.expo/web/cache/development/babel-loader/df177e28e870b3f9ed04286275590e05.json +1 -0
  301. package/example/.expo/web/cache/development/babel-loader/df8cca84735630b31c89ab8c4525d586.json +1 -0
  302. package/example/.expo/web/cache/development/babel-loader/dffc3d3b5387634869406f7b262b0334.json +1 -0
  303. package/example/.expo/web/cache/development/babel-loader/e00a687de4af483a065036c6b80fa9f9.json +1 -0
  304. package/example/.expo/web/cache/development/babel-loader/e0bc2b67f28f7d20625141635fb72278.json +1 -0
  305. package/example/.expo/web/cache/development/babel-loader/e12513c015e82fb05ce94ecc8be7102a.json +1 -0
  306. package/example/.expo/web/cache/development/babel-loader/e13d64c5b0cbfdf147e8b47baa112969.json +1 -0
  307. package/example/.expo/web/cache/development/babel-loader/e1630fcfbaff568bf2f669a3e388c026.json +1 -0
  308. package/example/.expo/web/cache/development/babel-loader/e1962858e3fc18c71d271c6eaa3a943d.json +1 -0
  309. package/example/.expo/web/cache/development/babel-loader/e1a0963978b2cb66dec1b5d8a5a2c753.json +1 -0
  310. package/example/.expo/web/cache/development/babel-loader/e21dcee29960dda3812a8e73f9b0fcbc.json +1 -0
  311. package/example/.expo/web/cache/development/babel-loader/e2faafd77df6c4f281c0c99a9e458e54.json +1 -0
  312. package/example/.expo/web/cache/development/babel-loader/e30c76c9a2d4f8d448441c1cb652eb01.json +1 -0
  313. package/example/.expo/web/cache/development/babel-loader/e3e477529ed5548f8e901ee83d7395ef.json +1 -0
  314. package/example/.expo/web/cache/development/babel-loader/e40e88a5ee7080ae8c27b8b8b14fbe3b.json +1 -0
  315. package/example/.expo/web/cache/development/babel-loader/e4815f1b8edf5002fdece1b55fbc36bb.json +1 -0
  316. package/example/.expo/web/cache/development/babel-loader/e656bc77be79a05f8054e227f7f79d12.json +1 -0
  317. package/example/.expo/web/cache/development/babel-loader/e6f55b8bb2f55bff9c7239707407e38b.json +1 -0
  318. package/example/.expo/web/cache/development/babel-loader/e71b020cacbbe302bb14d7910742ec2d.json +1 -0
  319. package/example/.expo/web/cache/development/babel-loader/e7472dd2c104082f95c6920e14b1ebf1.json +1 -0
  320. package/example/.expo/web/cache/development/babel-loader/e7b42d4997a3a0970f307de97b93e04a.json +1 -0
  321. package/example/.expo/web/cache/development/babel-loader/e958dca390e4e96d3ffd3fd3e668de5a.json +1 -0
  322. package/example/.expo/web/cache/development/babel-loader/e9ee1fc9a9a662fdf210526a05895585.json +1 -0
  323. package/example/.expo/web/cache/development/babel-loader/ea69e12059df73da64e057bade5f4ba1.json +1 -0
  324. package/example/.expo/web/cache/development/babel-loader/eae09ceb3f4483977f405539fff299a4.json +1 -0
  325. package/example/.expo/web/cache/development/babel-loader/eaffd3d95bf68dd8a7419e53498b4640.json +1 -0
  326. package/example/.expo/web/cache/development/babel-loader/ec22a1721004d1dffd715720d5c2bda5.json +1 -0
  327. package/example/.expo/web/cache/development/babel-loader/ee15d7496b6f14edc02d2cd58a7353f9.json +1 -0
  328. package/example/.expo/web/cache/development/babel-loader/ee8e3abcff9f49ec89705c0e083bc14e.json +1 -0
  329. package/example/.expo/web/cache/development/babel-loader/ef79cc0b13fea249ac3b074f0a0de8eb.json +1 -0
  330. package/example/.expo/web/cache/development/babel-loader/efdf5fb16bfb6755d38d6afaec705dcc.json +1 -0
  331. package/example/.expo/web/cache/development/babel-loader/f114b6650124f4aa114c8641a8fb2e95.json +1 -0
  332. package/example/.expo/web/cache/development/babel-loader/f26a2ea3fe78d43644601e71fefe7a1e.json +1 -0
  333. package/example/.expo/web/cache/development/babel-loader/f2df4e0da01cdba6223f5bbe6b36ff68.json +1 -0
  334. package/example/.expo/web/cache/development/babel-loader/f3060f14259d3179812abd59791780a5.json +1 -0
  335. package/example/.expo/web/cache/development/babel-loader/f3beb518b54ed38f03ac6db8f54e60ff.json +1 -0
  336. package/example/.expo/web/cache/development/babel-loader/f3c616fbd126299d1e806d6ecc1ec318.json +1 -0
  337. package/example/.expo/web/cache/development/babel-loader/f42e9bcb2c70b941d26c869beae57ebd.json +1 -0
  338. package/example/.expo/web/cache/development/babel-loader/f4a9921d6e837efff4d9a9df358e594f.json +1 -0
  339. package/example/.expo/web/cache/development/babel-loader/f4c95c91f375005a143433586f729253.json +1 -0
  340. package/example/.expo/web/cache/development/babel-loader/f557735276807fa1f2857d869fcf3f24.json +1 -0
  341. package/example/.expo/web/cache/development/babel-loader/f7747a8774208f97feee323659c8fd9c.json +1 -0
  342. package/example/.expo/web/cache/development/babel-loader/f78eccb875790b4d905e542a961bf15d.json +1 -0
  343. package/example/.expo/web/cache/development/babel-loader/f79a20eb5fe07a41699a4082250176ee.json +1 -0
  344. package/example/.expo/web/cache/development/babel-loader/f8161007e70676aff950dd230d92b913.json +1 -0
  345. package/example/.expo/web/cache/development/babel-loader/f89bed9b99073eb34bdcfe509a9eef7b.json +1 -0
  346. package/example/.expo/web/cache/development/babel-loader/f8da7cfcc868c4561939eb69b187852b.json +1 -0
  347. package/example/.expo/web/cache/development/babel-loader/f9a453849a2adca3c8d16c288ee63674.json +1 -0
  348. package/example/.expo/web/cache/development/babel-loader/f9c8751528f50853c93bccaef3665cb2.json +1 -0
  349. package/example/.expo/web/cache/development/babel-loader/fa1cac776862e25b801ccd74fe04dedb.json +1 -0
  350. package/example/.expo/web/cache/development/babel-loader/fa7135f62c5758217dd521fe11e4f3be.json +1 -0
  351. package/example/.expo/web/cache/development/babel-loader/fb1afe2167ecb0e405e51371bc59a75e.json +1 -0
  352. package/example/.expo/web/cache/development/babel-loader/fc02f1af2a9db4facfa4f4fc290432fe.json +1 -0
  353. package/example/.expo/web/cache/development/babel-loader/fc62eb1057700a3ed46569b3ca6ae7b8.json +1 -0
  354. package/example/.expo/web/cache/development/babel-loader/fc941b53721fd7910cde57ec192fe407.json +1 -0
  355. package/example/.expo/web/cache/development/babel-loader/fd143c0566e976f3b69413de3ca79ebf.json +1 -0
  356. package/example/.expo/web/cache/development/babel-loader/fd655c3e164d6c50e7affcee01046566.json +1 -0
  357. package/example/.expo/web/cache/development/babel-loader/fdada169c1988ef70eea3e2b77f7b727.json +1 -0
  358. package/example/.expo/web/cache/development/babel-loader/fe0a5f0e6f28f358efb1ed12c10b3240.json +1 -0
  359. package/example/.expo/web/cache/development/babel-loader/ff9a6e20e331b715609602c9bca399e9.json +1 -0
  360. package/example/package.json +11 -13
  361. package/example/src/App.tsx +39 -34
  362. package/example/src/CandlestickChart.tsx +4 -1
  363. package/example/src/LineChart.tsx +20 -4
  364. package/example/src/data/line-data.json +20 -20
  365. package/example/yarn.lock +1819 -8871
  366. package/lib/commonjs/charts/candle/HoverTrap/index.web.js +120 -0
  367. package/lib/commonjs/charts/candle/HoverTrap/index.web.js.map +1 -0
  368. package/lib/commonjs/charts/candle/utils/getDomain.js +19 -0
  369. package/lib/commonjs/charts/candle/utils/getDomain.js.map +1 -0
  370. package/lib/commonjs/charts/candle/utils/getHeight.js +19 -0
  371. package/lib/commonjs/charts/candle/utils/getHeight.js.map +1 -0
  372. package/lib/commonjs/charts/candle/utils/getPrice.js +20 -0
  373. package/lib/commonjs/charts/candle/utils/getPrice.js.map +1 -0
  374. package/lib/commonjs/charts/candle/utils/getY.js +19 -0
  375. package/lib/commonjs/charts/candle/utils/getY.js.map +1 -0
  376. package/lib/commonjs/charts/candle/utils/index.js +58 -0
  377. package/lib/commonjs/charts/candle/utils/index.js.map +1 -0
  378. package/lib/commonjs/charts/line/Chart.js +27 -9
  379. package/lib/commonjs/charts/line/Chart.js.map +1 -1
  380. package/lib/commonjs/charts/line/ChartPath.js +83 -21
  381. package/lib/commonjs/charts/line/ChartPath.js.map +1 -1
  382. package/lib/commonjs/charts/line/Context.js +8 -4
  383. package/lib/commonjs/charts/line/Context.js.map +1 -1
  384. package/lib/commonjs/charts/line/Cursor.js +2 -1
  385. package/lib/commonjs/charts/line/Cursor.js.map +1 -1
  386. package/lib/commonjs/charts/line/CursorCrosshair.js +12 -3
  387. package/lib/commonjs/charts/line/CursorCrosshair.js.map +1 -1
  388. package/lib/commonjs/charts/line/CursorLine.js +6 -6
  389. package/lib/commonjs/charts/line/CursorLine.js.map +1 -1
  390. package/lib/commonjs/charts/line/DatetimeText.js +2 -0
  391. package/lib/commonjs/charts/line/DatetimeText.js.map +1 -1
  392. package/lib/commonjs/charts/line/Dot.js +126 -0
  393. package/lib/commonjs/charts/line/Dot.js.map +1 -0
  394. package/lib/commonjs/charts/line/Gradient.js +8 -25
  395. package/lib/commonjs/charts/line/Gradient.js.map +1 -1
  396. package/lib/commonjs/charts/line/Group.js +5 -24
  397. package/lib/commonjs/charts/line/Group.js.map +1 -1
  398. package/lib/commonjs/charts/line/Highlight.js +92 -0
  399. package/lib/commonjs/charts/line/Highlight.js.map +1 -0
  400. package/lib/commonjs/charts/line/HorizontalLine.js +6 -6
  401. package/lib/commonjs/charts/line/HorizontalLine.js.map +1 -1
  402. package/lib/commonjs/charts/line/HoverTrap/index.js +15 -0
  403. package/lib/commonjs/charts/line/HoverTrap/index.js.map +1 -0
  404. package/lib/commonjs/charts/line/HoverTrap/index.web.js +120 -0
  405. package/lib/commonjs/charts/line/HoverTrap/index.web.js.map +1 -0
  406. package/lib/commonjs/charts/line/Path.js +19 -30
  407. package/lib/commonjs/charts/line/Path.js.map +1 -1
  408. package/lib/commonjs/charts/line/PriceText.js +2 -0
  409. package/lib/commonjs/charts/line/PriceText.js.map +1 -1
  410. package/lib/commonjs/charts/line/Tooltip.js +2 -0
  411. package/lib/commonjs/charts/line/Tooltip.js.map +1 -1
  412. package/lib/commonjs/charts/line/index.js +48 -15
  413. package/lib/commonjs/charts/line/index.js.map +1 -1
  414. package/lib/commonjs/charts/line/useAnimatedPath.js +44 -0
  415. package/lib/commonjs/charts/line/useAnimatedPath.js.map +1 -0
  416. package/lib/commonjs/charts/line/{utils.js → utils/getArea.js} +2 -49
  417. package/lib/commonjs/charts/line/utils/getArea.js.map +1 -0
  418. package/lib/commonjs/charts/line/utils/getDomain.js +16 -0
  419. package/lib/commonjs/charts/line/utils/getDomain.js.map +1 -0
  420. package/lib/commonjs/charts/line/utils/getPath.js +34 -0
  421. package/lib/commonjs/charts/line/utils/getPath.js.map +1 -0
  422. package/lib/commonjs/charts/line/utils/index.js +71 -0
  423. package/lib/commonjs/charts/line/utils/index.js.map +1 -0
  424. package/lib/commonjs/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
  425. package/lib/commonjs/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
  426. package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js +27 -0
  427. package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
  428. package/lib/commonjs/components/AnimatedText.js +25 -13
  429. package/lib/commonjs/components/AnimatedText.js.map +1 -1
  430. package/lib/commonjs/index.js +8 -8
  431. package/lib/commonjs/index.js.map +1 -1
  432. package/lib/commonjs/utils/formatDatetime.js +21 -0
  433. package/lib/commonjs/utils/formatDatetime.js.map +1 -0
  434. package/lib/commonjs/utils/formatPrice.js +46 -0
  435. package/lib/commonjs/utils/formatPrice.js.map +1 -0
  436. package/lib/commonjs/utils/index.js +45 -0
  437. package/lib/commonjs/utils/index.js.map +1 -0
  438. package/lib/commonjs/{utils.js → utils/usePrevious.js} +1 -57
  439. package/lib/commonjs/utils/usePrevious.js.map +1 -0
  440. package/lib/module/charts/candle/HoverTrap/index.web.js +101 -0
  441. package/lib/module/charts/candle/HoverTrap/index.web.js.map +1 -0
  442. package/lib/module/charts/candle/utils/getDomain.js +12 -0
  443. package/lib/module/charts/candle/utils/getDomain.js.map +1 -0
  444. package/lib/module/charts/candle/utils/getHeight.js +11 -0
  445. package/lib/module/charts/candle/utils/getHeight.js.map +1 -0
  446. package/lib/module/charts/candle/utils/getPrice.js +12 -0
  447. package/lib/module/charts/candle/utils/getPrice.js.map +1 -0
  448. package/lib/module/charts/candle/utils/getY.js +11 -0
  449. package/lib/module/charts/candle/utils/getY.js.map +1 -0
  450. package/lib/module/charts/candle/utils/index.js +5 -0
  451. package/lib/module/charts/candle/utils/index.js.map +1 -0
  452. package/lib/module/charts/line/Chart.js +27 -10
  453. package/lib/module/charts/line/Chart.js.map +1 -1
  454. package/lib/module/charts/line/ChartPath.js +79 -21
  455. package/lib/module/charts/line/ChartPath.js.map +1 -1
  456. package/lib/module/charts/line/Context.js +8 -4
  457. package/lib/module/charts/line/Context.js.map +1 -1
  458. package/lib/module/charts/line/Cursor.js +2 -1
  459. package/lib/module/charts/line/Cursor.js.map +1 -1
  460. package/lib/module/charts/line/CursorCrosshair.js +12 -4
  461. package/lib/module/charts/line/CursorCrosshair.js.map +1 -1
  462. package/lib/module/charts/line/CursorLine.js +4 -3
  463. package/lib/module/charts/line/CursorLine.js.map +1 -1
  464. package/lib/module/charts/line/DatetimeText.js +1 -0
  465. package/lib/module/charts/line/DatetimeText.js.map +1 -1
  466. package/lib/module/charts/line/Dot.js +105 -0
  467. package/lib/module/charts/line/Dot.js.map +1 -0
  468. package/lib/module/charts/line/Gradient.js +8 -24
  469. package/lib/module/charts/line/Gradient.js.map +1 -1
  470. package/lib/module/charts/line/Group.js +2 -23
  471. package/lib/module/charts/line/Group.js.map +1 -1
  472. package/lib/module/charts/line/Highlight.js +69 -0
  473. package/lib/module/charts/line/Highlight.js.map +1 -0
  474. package/lib/module/charts/line/HorizontalLine.js +4 -3
  475. package/lib/module/charts/line/HorizontalLine.js.map +1 -1
  476. package/lib/module/charts/line/HoverTrap/index.js +3 -0
  477. package/lib/module/charts/line/HoverTrap/index.js.map +1 -0
  478. package/lib/module/charts/line/HoverTrap/index.web.js +101 -0
  479. package/lib/module/charts/line/HoverTrap/index.web.js.map +1 -0
  480. package/lib/module/charts/line/Path.js +17 -29
  481. package/lib/module/charts/line/Path.js.map +1 -1
  482. package/lib/module/charts/line/PriceText.js +1 -0
  483. package/lib/module/charts/line/PriceText.js.map +1 -1
  484. package/lib/module/charts/line/Tooltip.js +1 -0
  485. package/lib/module/charts/line/Tooltip.js.map +1 -1
  486. package/lib/module/charts/line/index.js +13 -5
  487. package/lib/module/charts/line/index.js.map +1 -1
  488. package/lib/module/charts/line/useAnimatedPath.js +34 -0
  489. package/lib/module/charts/line/useAnimatedPath.js.map +1 -0
  490. package/lib/module/charts/line/utils/getArea.js +19 -0
  491. package/lib/module/charts/line/utils/getArea.js.map +1 -0
  492. package/lib/module/charts/line/utils/getDomain.js +9 -0
  493. package/lib/module/charts/line/utils/getDomain.js.map +1 -0
  494. package/lib/module/charts/line/utils/getPath.js +21 -0
  495. package/lib/module/charts/line/utils/getPath.js.map +1 -0
  496. package/lib/module/charts/line/utils/index.js +6 -0
  497. package/lib/module/charts/line/utils/index.js.map +1 -0
  498. package/lib/module/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
  499. package/lib/module/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
  500. package/lib/module/charts/line/utils/lineChartDataPropToArray.js +20 -0
  501. package/lib/module/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
  502. package/lib/module/components/AnimatedText.js +24 -13
  503. package/lib/module/components/AnimatedText.js.map +1 -1
  504. package/lib/module/index.js +1 -1
  505. package/lib/module/index.js.map +1 -1
  506. package/lib/module/utils/formatDatetime.js +14 -0
  507. package/lib/module/utils/formatDatetime.js.map +1 -0
  508. package/lib/module/{utils.js → utils/formatPrice.js} +1 -29
  509. package/lib/module/utils/formatPrice.js.map +1 -0
  510. package/lib/module/utils/index.js +4 -0
  511. package/lib/module/utils/index.js.map +1 -0
  512. package/lib/module/utils/usePrevious.js +14 -0
  513. package/lib/module/utils/usePrevious.js.map +1 -0
  514. package/lib/typescript/src/charts/candle/HoverTrap/index.web.d.ts +2 -0
  515. package/lib/typescript/src/charts/candle/utils/getDomain.d.ts +2 -0
  516. package/lib/typescript/src/charts/candle/utils/getHeight.d.ts +6 -0
  517. package/lib/typescript/src/charts/candle/utils/getPrice.d.ts +6 -0
  518. package/lib/typescript/src/charts/candle/utils/getY.d.ts +6 -0
  519. package/lib/typescript/src/charts/candle/utils/index.d.ts +4 -0
  520. package/lib/typescript/src/charts/line/Chart.d.ts +6 -1
  521. package/lib/typescript/src/charts/line/ChartPath.d.ts +12 -3
  522. package/lib/typescript/src/charts/line/Context.d.ts +5 -1
  523. package/lib/typescript/src/charts/line/Cursor.d.ts +3 -0
  524. package/lib/typescript/src/charts/line/CursorCrosshair.d.ts +4 -1
  525. package/lib/typescript/src/charts/line/CursorLine.d.ts +4 -1
  526. package/lib/typescript/src/charts/line/DatetimeText.d.ts +3 -0
  527. package/lib/typescript/src/charts/line/Dot.d.ts +31 -0
  528. package/lib/typescript/src/charts/line/Gradient.d.ts +3 -0
  529. package/lib/typescript/src/charts/line/Group.d.ts +1 -2
  530. package/lib/typescript/src/charts/line/Highlight.d.ts +15 -0
  531. package/lib/typescript/src/charts/line/HorizontalLine.d.ts +4 -1
  532. package/lib/typescript/src/charts/line/HoverTrap/index.d.ts +2 -0
  533. package/lib/typescript/src/charts/line/HoverTrap/index.web.d.ts +2 -0
  534. package/lib/typescript/src/charts/line/Path.d.ts +5 -1
  535. package/lib/typescript/src/charts/line/PriceText.d.ts +3 -0
  536. package/lib/typescript/src/charts/line/Tooltip.d.ts +3 -0
  537. package/lib/typescript/src/charts/line/index.d.ts +16 -22
  538. package/lib/typescript/src/charts/line/types.d.ts +1 -0
  539. package/lib/typescript/src/charts/line/useAnimatedPath.d.ts +8 -0
  540. package/lib/typescript/src/charts/line/useLineChart.d.ts +1 -0
  541. package/lib/typescript/src/charts/line/utils/getArea.d.ts +9 -0
  542. package/lib/typescript/src/charts/line/utils/getDomain.d.ts +2 -0
  543. package/lib/typescript/src/charts/line/utils/getPath.d.ts +11 -0
  544. package/lib/typescript/src/charts/line/utils/index.d.ts +5 -0
  545. package/lib/typescript/src/charts/line/{interpolatePath.d.ts → utils/interpolatePath.d.ts} +1 -1
  546. package/lib/typescript/src/charts/line/utils/lineChartDataPropToArray.d.ts +2 -0
  547. package/lib/typescript/src/index.d.ts +1 -1
  548. package/lib/typescript/src/utils/formatDatetime.d.ts +8 -0
  549. package/lib/typescript/src/utils/formatPrice.d.ts +8 -0
  550. package/lib/typescript/src/utils/index.d.ts +3 -0
  551. package/lib/typescript/src/utils/usePrevious.d.ts +1 -0
  552. package/package.json +8 -6
  553. package/src/charts/candle/HoverTrap/index.web.tsx +110 -0
  554. package/src/charts/candle/utils/getDomain.ts +9 -0
  555. package/src/charts/candle/utils/getHeight.ts +21 -0
  556. package/src/charts/candle/utils/getPrice.ts +17 -0
  557. package/src/charts/candle/utils/getY.ts +16 -0
  558. package/src/charts/candle/utils/index.ts +4 -0
  559. package/src/charts/line/Chart.tsx +24 -8
  560. package/src/charts/line/ChartPath.tsx +119 -36
  561. package/src/charts/line/Context.tsx +8 -0
  562. package/src/charts/line/Cursor.tsx +5 -1
  563. package/src/charts/line/CursorCrosshair.tsx +22 -5
  564. package/src/charts/line/CursorLine.tsx +5 -3
  565. package/src/charts/line/DatetimeText.tsx +2 -0
  566. package/src/charts/line/Dot.tsx +175 -0
  567. package/src/charts/line/Gradient.tsx +7 -34
  568. package/src/charts/line/Group.tsx +4 -45
  569. package/src/charts/line/Highlight.tsx +78 -0
  570. package/src/charts/line/HorizontalLine.tsx +5 -3
  571. package/src/charts/line/HoverTrap/index.tsx +3 -0
  572. package/src/charts/line/HoverTrap/index.web.tsx +110 -0
  573. package/src/charts/line/Path.tsx +14 -38
  574. package/src/charts/line/PriceText.tsx +2 -0
  575. package/src/charts/line/Tooltip.tsx +2 -0
  576. package/src/charts/line/index.ts +13 -5
  577. package/src/charts/line/types.ts +1 -0
  578. package/src/charts/line/useAnimatedPath.ts +47 -0
  579. package/src/charts/line/utils/getArea.ts +38 -0
  580. package/src/charts/line/utils/getDomain.ts +7 -0
  581. package/src/charts/line/utils/getPath.ts +48 -0
  582. package/src/charts/line/utils/index.ts +5 -0
  583. package/src/charts/line/{interpolatePath.ts → utils/interpolatePath.ts} +1 -1
  584. package/src/charts/line/utils/lineChartDataPropToArray.ts +25 -0
  585. package/src/components/AnimatedText.tsx +27 -16
  586. package/src/index.ts +1 -1
  587. package/src/utils/formatDatetime.ts +16 -0
  588. package/src/{utils.ts → utils/formatPrice.ts} +0 -31
  589. package/src/utils/index.ts +3 -0
  590. package/src/utils/usePrevious.ts +13 -0
  591. package/tsconfig.json +1 -1
  592. package/yarn.lock +1847 -796
  593. package/example/patches/react-native-reanimated+2.2.2.patch +0 -28
  594. package/lib/commonjs/charts/line/utils.js.map +0 -1
  595. package/lib/commonjs/utils.js.map +0 -1
  596. package/lib/module/charts/line/utils.js +0 -60
  597. package/lib/module/charts/line/utils.js.map +0 -1
  598. package/lib/module/utils.js.map +0 -1
  599. package/lib/typescript/src/charts/line/utils.d.ts +0 -20
  600. package/lib/typescript/src/utils.d.ts +0 -17
  601. package/src/charts/line/utils.ts +0 -100
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LineChartHoverTrap = void 0;
7
+
8
+ var React = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _reactNativeRedash = require("react-native-redash");
13
+
14
+ var _Chart = require("../../line/Chart");
15
+
16
+ var _useLineChart = require("../../line/useLineChart");
17
+
18
+ var _ExecutionEnvironment = require("fbjs/lib/ExecutionEnvironment");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ // @ts-expect-error missing types
25
+ let isEnabled = false; // the following logic comes from the creator of react-native-web
26
+ // https://gist.github.com/necolas/1c494e44e23eb7f8c5864a2fac66299a
27
+ // it's also used by MotiPressable's hover interactions
28
+ // https://github.com/nandorojo/moti/blob/master/packages/interactions/src/pressable/hoverable.tsx
29
+
30
+ if (_ExecutionEnvironment.canUseDOM) {
31
+ /**
32
+ * Web browsers emulate mouse events (and hover states) after touch events.
33
+ * This code infers when the currently-in-use modality supports hover
34
+ * (including for multi-modality devices) and considers "hover" to be enabled
35
+ * if a mouse movement occurs more than 1 second after the last touch event.
36
+ * This threshold is long enough to account for longer delays between the
37
+ * browser firing touch and mouse events on low-powered devices.
38
+ */
39
+ const HOVER_THRESHOLD_MS = 1000;
40
+ let lastTouchTimestamp = 0;
41
+
42
+ function enableHover() {
43
+ if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {
44
+ return;
45
+ }
46
+
47
+ isEnabled = true;
48
+ }
49
+
50
+ function disableHover() {
51
+ lastTouchTimestamp = Date.now();
52
+
53
+ if (isEnabled) {
54
+ isEnabled = false;
55
+ }
56
+ }
57
+
58
+ document.addEventListener('touchstart', disableHover, true);
59
+ document.addEventListener('touchmove', disableHover, true);
60
+ document.addEventListener('mousemove', enableHover, true);
61
+ }
62
+
63
+ function isHoverEnabled() {
64
+ return isEnabled;
65
+ }
66
+
67
+ const LineChartHoverTrap = () => {
68
+ const {
69
+ width,
70
+ path
71
+ } = React.useContext(_Chart.LineChartDimensionsContext);
72
+ const {
73
+ currentX,
74
+ currentIndex,
75
+ isActive,
76
+ data
77
+ } = (0, _useLineChart.useLineChart)();
78
+ const parsedPath = React.useMemo(() => path ? (0, _reactNativeRedash.parse)(path) : undefined, [path]);
79
+ const onMouseMove = React.useCallback(({
80
+ x
81
+ }) => {
82
+ if (isHoverEnabled()) {
83
+ if (parsedPath) {
84
+ const boundedX = Math.min(x, width);
85
+ isActive.value = true;
86
+ currentX.value = boundedX; // on Web, we could drag the cursor to be negative, breaking it
87
+ // so we clamp the index at 0 to fix it
88
+ // https://github.com/coinjar/react-native-wagmi-charts/issues/24
89
+
90
+ const minIndex = 0;
91
+ const boundedIndex = Math.max(minIndex, Math.round(boundedX / width / (1 / (data.length - 1))));
92
+ currentIndex.value = boundedIndex;
93
+ }
94
+ } else {
95
+ isActive.value = false;
96
+ currentIndex.value = -1;
97
+ }
98
+ }, [currentIndex, currentX, data.length, isActive, parsedPath, width]);
99
+ const onMouseLeave = React.useCallback(() => {
100
+ isActive.value = false;
101
+ currentIndex.value = -1;
102
+ }, [currentIndex, isActive]);
103
+ return /*#__PURE__*/React.createElement(_reactNative.View, {
104
+ style: _reactNative.StyleSheet.absoluteFill // @ts-expect-error mouse move event
105
+ ,
106
+ onMouseMove: React.useCallback( // eslint-disable-next-line no-undef
107
+ e => {
108
+ let rect = e.currentTarget.getBoundingClientRect();
109
+ let x = e.clientX - rect.left; // x position within the element.
110
+
111
+ onMouseMove({
112
+ x
113
+ });
114
+ }, [onMouseMove]),
115
+ onMouseLeave: onMouseLeave
116
+ });
117
+ };
118
+
119
+ exports.LineChartHoverTrap = LineChartHoverTrap;
120
+ //# sourceMappingURL=index.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.web.tsx"],"names":["isEnabled","canUseDOM","HOVER_THRESHOLD_MS","lastTouchTimestamp","enableHover","Date","now","disableHover","document","addEventListener","isHoverEnabled","LineChartHoverTrap","width","path","React","useContext","LineChartDimensionsContext","currentX","currentIndex","isActive","data","parsedPath","useMemo","undefined","onMouseMove","useCallback","x","boundedX","Math","min","value","minIndex","boundedIndex","max","round","length","onMouseLeave","StyleSheet","absoluteFill","e","rect","currentTarget","getBoundingClientRect","clientX","left"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { parse } from 'react-native-redash';\n\nimport { LineChartDimensionsContext } from '../../line/Chart';\nimport { useLineChart } from '../../line/useLineChart';\n\n// @ts-expect-error missing types\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\n\nlet isEnabled = false;\n\n// the following logic comes from the creator of react-native-web\n// https://gist.github.com/necolas/1c494e44e23eb7f8c5864a2fac66299a\n// it's also used by MotiPressable's hover interactions\n// https://github.com/nandorojo/moti/blob/master/packages/interactions/src/pressable/hoverable.tsx\nif (canUseDOM) {\n /**\n * Web browsers emulate mouse events (and hover states) after touch events.\n * This code infers when the currently-in-use modality supports hover\n * (including for multi-modality devices) and considers \"hover\" to be enabled\n * if a mouse movement occurs more than 1 second after the last touch event.\n * This threshold is long enough to account for longer delays between the\n * browser firing touch and mouse events on low-powered devices.\n */\n const HOVER_THRESHOLD_MS = 1000;\n let lastTouchTimestamp = 0;\n\n function enableHover() {\n if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {\n return;\n }\n isEnabled = true;\n }\n\n function disableHover() {\n lastTouchTimestamp = Date.now();\n if (isEnabled) {\n isEnabled = false;\n }\n }\n\n document.addEventListener('touchstart', disableHover, true);\n document.addEventListener('touchmove', disableHover, true);\n document.addEventListener('mousemove', enableHover, true);\n}\n\nfunction isHoverEnabled(): boolean {\n return isEnabled;\n}\n\nexport const LineChartHoverTrap = () => {\n const { width, path } = React.useContext(LineChartDimensionsContext);\n const { currentX, currentIndex, isActive, data } = useLineChart();\n\n const parsedPath = React.useMemo(\n () => (path ? parse(path) : undefined),\n [path]\n );\n\n const onMouseMove = React.useCallback(\n ({ x }: { x: number }) => {\n if (isHoverEnabled()) {\n if (parsedPath) {\n const boundedX = Math.min(x, width);\n isActive.value = true;\n currentX.value = boundedX;\n\n // on Web, we could drag the cursor to be negative, breaking it\n // so we clamp the index at 0 to fix it\n // https://github.com/coinjar/react-native-wagmi-charts/issues/24\n const minIndex = 0;\n const boundedIndex = Math.max(\n minIndex,\n Math.round(boundedX / width / (1 / (data.length - 1)))\n );\n\n currentIndex.value = boundedIndex;\n }\n } else {\n isActive.value = false;\n currentIndex.value = -1;\n }\n },\n [currentIndex, currentX, data.length, isActive, parsedPath, width]\n );\n\n const onMouseLeave = React.useCallback(() => {\n isActive.value = false;\n currentIndex.value = -1;\n }, [currentIndex, isActive]);\n\n return (\n <View\n style={StyleSheet.absoluteFill}\n // @ts-expect-error mouse move event\n onMouseMove={React.useCallback(\n // eslint-disable-next-line no-undef\n (e: React.MouseEvent<HTMLElement>) => {\n let rect = e.currentTarget.getBoundingClientRect();\n let x = e.clientX - rect.left; // x position within the element.\n\n onMouseMove({ x });\n },\n [onMouseMove]\n )}\n onMouseLeave={onMouseLeave}\n />\n );\n};\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getDomain = getDomain;
7
+
8
+ function getDomain(rows) {
9
+ 'worklet';
10
+
11
+ const values = rows.map(({
12
+ high,
13
+ low
14
+ }) => [high, low]).flat();
15
+ const min = Math.min(...values);
16
+ const max = Math.max(...values);
17
+ return [min - (max - min) * 0.025, max + (max - min) * 0.025];
18
+ }
19
+ //# sourceMappingURL=getDomain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getDomain.ts"],"names":["getDomain","rows","values","map","high","low","flat","min","Math","max"],"mappings":";;;;;;;AAEO,SAASA,SAAT,CAAmBC,IAAnB,EAAgE;AACrE;;AACA,QAAMC,MAAM,GAAGD,IAAI,CAACE,GAAL,CAAS,CAAC;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAD,KAAmB,CAACD,IAAD,EAAOC,GAAP,CAA5B,EAAyCC,IAAzC,EAAf;AACA,QAAMC,GAAG,GAAGC,IAAI,CAACD,GAAL,CAAS,GAAGL,MAAZ,CAAZ;AACA,QAAMO,GAAG,GAAGD,IAAI,CAACC,GAAL,CAAS,GAAGP,MAAZ,CAAZ;AACA,SAAO,CAACK,GAAG,GAAG,CAACE,GAAG,GAAGF,GAAP,IAAc,KAArB,EAA4BE,GAAG,GAAG,CAACA,GAAG,GAAGF,GAAP,IAAc,KAAhD,CAAP;AACD","sourcesContent":["import type { TCandle } from '../types';\n\nexport function getDomain(rows: TCandle[]): [min: number, max: number] {\n 'worklet';\n const values = rows.map(({ high, low }) => [high, low]).flat();\n const min = Math.min(...values);\n const max = Math.max(...values);\n return [min - (max - min) * 0.025, max + (max - min) * 0.025];\n}\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getHeight = getHeight;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ function getHeight({
11
+ value,
12
+ domain,
13
+ maxHeight
14
+ }) {
15
+ 'worklet';
16
+
17
+ return (0, _reactNativeReanimated.interpolate)(value, [0, Math.max(...domain) - Math.min(...domain)], [0, maxHeight], _reactNativeReanimated.Extrapolate.CLAMP);
18
+ }
19
+ //# sourceMappingURL=getHeight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getHeight.ts"],"names":["getHeight","value","domain","maxHeight","Math","max","min","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,SAAT,CAAmB;AACxBC,EAAAA,KADwB;AAExBC,EAAAA,MAFwB;AAGxBC,EAAAA;AAHwB,CAAnB,EAQJ;AACD;;AACA,SAAO,wCACLF,KADK,EAEL,CAAC,CAAD,EAAIG,IAAI,CAACC,GAAL,CAAS,GAAGH,MAAZ,IAAsBE,IAAI,CAACE,GAAL,CAAS,GAAGJ,MAAZ,CAA1B,CAFK,EAGL,CAAC,CAAD,EAAIC,SAAJ,CAHK,EAILI,mCAAYC,KAJP,CAAP;AAMD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getHeight({\n value,\n domain,\n maxHeight,\n}: {\n value: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n return interpolate(\n value,\n [0, Math.max(...domain) - Math.min(...domain)],\n [0, maxHeight],\n Extrapolate.CLAMP\n );\n}\n"]}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getPrice = getPrice;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ function getPrice({
11
+ y,
12
+ domain,
13
+ maxHeight
14
+ }) {
15
+ 'worklet';
16
+
17
+ if (y === -1) return -1;
18
+ return (0, _reactNativeReanimated.interpolate)(y, [0, maxHeight], domain.reverse(), _reactNativeReanimated.Extrapolate.CLAMP);
19
+ }
20
+ //# sourceMappingURL=getPrice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getPrice.ts"],"names":["getPrice","y","domain","maxHeight","reverse","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,QAAT,CAAkB;AACvBC,EAAAA,CADuB;AAEvBC,EAAAA,MAFuB;AAGvBC,EAAAA;AAHuB,CAAlB,EAQJ;AACD;;AACA,MAAIF,CAAC,KAAK,CAAC,CAAX,EAAc,OAAO,CAAC,CAAR;AACd,SAAO,wCAAYA,CAAZ,EAAe,CAAC,CAAD,EAAIE,SAAJ,CAAf,EAA+BD,MAAM,CAACE,OAAP,EAA/B,EAAiDC,mCAAYC,KAA7D,CAAP;AACD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getPrice({\n y,\n domain,\n maxHeight,\n}: {\n y: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n if (y === -1) return -1;\n return interpolate(y, [0, maxHeight], domain.reverse(), Extrapolate.CLAMP);\n}\n"]}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getY = getY;
7
+
8
+ var _reactNativeReanimated = require("react-native-reanimated");
9
+
10
+ function getY({
11
+ value,
12
+ domain,
13
+ maxHeight
14
+ }) {
15
+ 'worklet';
16
+
17
+ return (0, _reactNativeReanimated.interpolate)(value, domain, [maxHeight, 0], _reactNativeReanimated.Extrapolate.CLAMP);
18
+ }
19
+ //# sourceMappingURL=getY.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["getY.ts"],"names":["getY","value","domain","maxHeight","Extrapolate","CLAMP"],"mappings":";;;;;;;AAAA;;AAIO,SAASA,IAAT,CAAc;AACnBC,EAAAA,KADmB;AAEnBC,EAAAA,MAFmB;AAGnBC,EAAAA;AAHmB,CAAd,EAQJ;AACD;;AACA,SAAO,wCAAYF,KAAZ,EAAmBC,MAAnB,EAA2B,CAACC,SAAD,EAAY,CAAZ,CAA3B,EAA2CC,mCAAYC,KAAvD,CAAP;AACD","sourcesContent":["import { interpolate, Extrapolate } from 'react-native-reanimated';\n\nimport type { TDomain } from '../types';\n\nexport function getY({\n value,\n domain,\n maxHeight,\n}: {\n value: number;\n domain: TDomain;\n maxHeight: number;\n}) {\n 'worklet';\n return interpolate(value, domain, [maxHeight, 0], Extrapolate.CLAMP);\n}\n"]}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+
7
+ var _getDomain = require("./getDomain");
8
+
9
+ Object.keys(_getDomain).forEach(function (key) {
10
+ if (key === "default" || key === "__esModule") return;
11
+ if (key in exports && exports[key] === _getDomain[key]) return;
12
+ Object.defineProperty(exports, key, {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _getDomain[key];
16
+ }
17
+ });
18
+ });
19
+
20
+ var _getHeight = require("./getHeight");
21
+
22
+ Object.keys(_getHeight).forEach(function (key) {
23
+ if (key === "default" || key === "__esModule") return;
24
+ if (key in exports && exports[key] === _getHeight[key]) return;
25
+ Object.defineProperty(exports, key, {
26
+ enumerable: true,
27
+ get: function () {
28
+ return _getHeight[key];
29
+ }
30
+ });
31
+ });
32
+
33
+ var _getPrice = require("./getPrice");
34
+
35
+ Object.keys(_getPrice).forEach(function (key) {
36
+ if (key === "default" || key === "__esModule") return;
37
+ if (key in exports && exports[key] === _getPrice[key]) return;
38
+ Object.defineProperty(exports, key, {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _getPrice[key];
42
+ }
43
+ });
44
+ });
45
+
46
+ var _getY = require("./getY");
47
+
48
+ Object.keys(_getY).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (key in exports && exports[key] === _getY[key]) return;
51
+ Object.defineProperty(exports, key, {
52
+ enumerable: true,
53
+ get: function () {
54
+ return _getY[key];
55
+ }
56
+ });
57
+ });
58
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["index.ts"],"names":[],"mappings":";;;;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA","sourcesContent":["export * from './getDomain';\nexport * from './getHeight';\nexport * from './getPrice';\nexport * from './getY';\n"]}
@@ -8,6 +8,8 @@ exports.LineChartDimensionsContext = void 0;
8
8
 
9
9
  var React = _interopRequireWildcard(require("react"));
10
10
 
11
+ var d3Shape = _interopRequireWildcard(require("d3-shape"));
12
+
11
13
  var _reactNative = require("react-native");
12
14
 
13
15
  var _Context = require("./Context");
@@ -27,7 +29,9 @@ const LineChartDimensionsContext = /*#__PURE__*/React.createContext({
27
29
  height: 0,
28
30
  path: '',
29
31
  area: '',
30
- gutter: 0
32
+ shape: d3Shape.curveBumpX,
33
+ gutter: 0,
34
+ pathWidth: 0
31
35
  });
32
36
  exports.LineChartDimensionsContext = LineChartDimensionsContext;
33
37
 
@@ -35,29 +39,41 @@ const {
35
39
  width: screenWidth
36
40
  } = _reactNative.Dimensions.get('window');
37
41
 
42
+ LineChart.displayName = 'LineChart';
43
+
38
44
  function LineChart({
39
45
  children,
40
46
  yGutter = 16,
41
47
  width = screenWidth,
42
48
  height = screenWidth,
43
- shape,
49
+ shape = d3Shape.curveBumpX,
44
50
  id,
45
51
  absolute,
46
52
  ...props
47
53
  }) {
48
54
  const {
49
- yDomain
55
+ yDomain,
56
+ xLength
50
57
  } = React.useContext(_Context.LineChartContext);
51
58
  const {
52
59
  data
53
60
  } = (0, _Data.useLineChartData)({
54
61
  id
55
62
  });
63
+ const pathWidth = React.useMemo(() => {
64
+ let allowedWidth = width;
65
+
66
+ if (xLength > data.length) {
67
+ allowedWidth = width * data.length / xLength;
68
+ }
69
+
70
+ return allowedWidth;
71
+ }, [data.length, width, xLength]);
56
72
  const path = React.useMemo(() => {
57
73
  if (data && data.length > 0) {
58
74
  return (0, _utils.getPath)({
59
75
  data,
60
- width,
76
+ width: pathWidth,
61
77
  height,
62
78
  gutter: yGutter,
63
79
  shape,
@@ -66,12 +82,12 @@ function LineChart({
66
82
  }
67
83
 
68
84
  return '';
69
- }, [data, width, height, yGutter, shape, yDomain]);
85
+ }, [data, pathWidth, height, yGutter, shape, yDomain]);
70
86
  const area = React.useMemo(() => {
71
87
  if (data && data.length > 0) {
72
88
  return (0, _utils.getArea)({
73
89
  data,
74
- width,
90
+ width: pathWidth,
75
91
  height,
76
92
  gutter: yGutter,
77
93
  shape,
@@ -80,14 +96,16 @@ function LineChart({
80
96
  }
81
97
 
82
98
  return '';
83
- }, [data, width, height, yGutter, shape, yDomain]);
99
+ }, [data, pathWidth, height, yGutter, shape, yDomain]);
84
100
  const contextValue = React.useMemo(() => ({
85
101
  gutter: yGutter,
86
102
  area,
87
103
  path,
88
104
  width,
89
- height
90
- }), [area, height, path, width, yGutter]);
105
+ height,
106
+ pathWidth,
107
+ shape
108
+ }), [yGutter, area, path, width, height, pathWidth, shape]);
91
109
  return /*#__PURE__*/React.createElement(_Data.LineChartIdProvider, {
92
110
  id: id
93
111
  }, /*#__PURE__*/React.createElement(LineChartDimensionsContext.Provider, {
@@ -1 +1 @@
1
- {"version":3,"sources":["Chart.tsx"],"names":["LineChartDimensionsContext","React","createContext","width","height","path","area","gutter","screenWidth","Dimensions","get","LineChart","children","yGutter","shape","id","absolute","props","yDomain","useContext","LineChartContext","data","useMemo","length","contextValue","styles","style","StyleSheet","create","position"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { Dimensions, StyleSheet, View, ViewProps } from 'react-native';\nimport { LineChartContext } from './Context';\nimport { LineChartIdProvider, useLineChartData } from './Data';\n\nimport { getArea, getPath } from './utils';\n\nexport const LineChartDimensionsContext = React.createContext({\n width: 0,\n height: 0,\n path: '',\n area: '',\n gutter: 0,\n});\n\ntype LineChartProps = ViewProps & {\n children: React.ReactNode;\n yGutter?: number;\n width?: number;\n height?: number;\n shape?: string;\n /**\n * If your `LineChart.Provider` uses a dictionary with multiple IDs for multiple paths, then this field is required.\n */\n id?: string;\n absolute?: boolean;\n};\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nexport function LineChart({\n children,\n yGutter = 16,\n width = screenWidth,\n height = screenWidth,\n shape,\n id,\n absolute,\n ...props\n}: LineChartProps) {\n const { yDomain } = React.useContext(LineChartContext);\n const { data } = useLineChartData({\n id,\n });\n\n const path = React.useMemo(() => {\n if (data && data.length > 0) {\n return getPath({\n data,\n width,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, width, height, yGutter, shape, yDomain]);\n\n const area = React.useMemo(() => {\n if (data && data.length > 0) {\n return getArea({\n data,\n width,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, width, height, yGutter, shape, yDomain]);\n\n const contextValue = React.useMemo(\n () => ({\n gutter: yGutter,\n area,\n path,\n width,\n height,\n }),\n [area, height, path, width, yGutter]\n );\n\n return (\n <LineChartIdProvider id={id}>\n <LineChartDimensionsContext.Provider value={contextValue}>\n <View {...props} style={[absolute && styles.absolute, props.style]}>\n {children}\n </View>\n </LineChartDimensionsContext.Provider>\n </LineChartIdProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n absolute: {\n position: 'absolute',\n },\n});\n"]}
1
+ {"version":3,"sources":["Chart.tsx"],"names":["LineChartDimensionsContext","React","createContext","width","height","path","area","shape","d3Shape","curveBumpX","gutter","pathWidth","screenWidth","Dimensions","get","LineChart","displayName","children","yGutter","id","absolute","props","yDomain","xLength","useContext","LineChartContext","data","useMemo","allowedWidth","length","contextValue","styles","style","StyleSheet","create","position"],"mappings":"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","sourcesContent":["import * as React from 'react';\n// @ts-ignore\nimport * as d3Shape from 'd3-shape';\nimport { Dimensions, StyleSheet, View, ViewProps } from 'react-native';\nimport { LineChartContext } from './Context';\nimport { LineChartIdProvider, useLineChartData } from './Data';\n\nimport { getArea, getPath } from './utils';\n\nexport const LineChartDimensionsContext = React.createContext({\n width: 0,\n height: 0,\n path: '',\n area: '',\n shape: d3Shape.curveBumpX,\n gutter: 0,\n pathWidth: 0,\n});\n\ntype LineChartProps = ViewProps & {\n children: React.ReactNode;\n yGutter?: number;\n width?: number;\n height?: number;\n shape?: unknown;\n /**\n * If your `LineChart.Provider` uses a dictionary with multiple IDs for multiple paths, then this field is required.\n */\n id?: string;\n absolute?: boolean;\n};\n\nconst { width: screenWidth } = Dimensions.get('window');\n\nLineChart.displayName = 'LineChart';\n\nexport function LineChart({\n children,\n yGutter = 16,\n width = screenWidth,\n height = screenWidth,\n shape = d3Shape.curveBumpX,\n id,\n absolute,\n ...props\n}: LineChartProps) {\n const { yDomain, xLength } = React.useContext(LineChartContext);\n const { data } = useLineChartData({\n id,\n });\n\n const pathWidth = React.useMemo(() => {\n let allowedWidth = width;\n if (xLength > data.length) {\n allowedWidth = (width * data.length) / xLength;\n }\n return allowedWidth;\n }, [data.length, width, xLength]);\n\n const path = React.useMemo(() => {\n if (data && data.length > 0) {\n return getPath({\n data,\n width: pathWidth,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, pathWidth, height, yGutter, shape, yDomain]);\n\n const area = React.useMemo(() => {\n if (data && data.length > 0) {\n return getArea({\n data,\n width: pathWidth,\n height,\n gutter: yGutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, pathWidth, height, yGutter, shape, yDomain]);\n\n const contextValue = React.useMemo(\n () => ({\n gutter: yGutter,\n area,\n path,\n width,\n height,\n pathWidth,\n shape,\n }),\n [yGutter, area, path, width, height, pathWidth, shape]\n );\n\n return (\n <LineChartIdProvider id={id}>\n <LineChartDimensionsContext.Provider value={contextValue}>\n <View {...props} style={[absolute && styles.absolute, props.style]}>\n {children}\n </View>\n </LineChartDimensionsContext.Provider>\n </LineChartIdProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n absolute: {\n position: 'absolute',\n },\n});\n"]}
@@ -14,61 +14,117 @@ var _reactNativeSvg = require("react-native-svg");
14
14
 
15
15
  var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
16
16
 
17
+ var _reactKeyedFlattenChildren = _interopRequireDefault(require("react-keyed-flatten-children"));
18
+
17
19
  var _Chart = require("./Chart");
18
20
 
19
21
  var _Path = require("./Path");
20
22
 
21
23
  var _useLineChart = require("./useLineChart");
22
24
 
25
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
26
+
23
27
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
24
28
 
25
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
26
30
 
27
31
  function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
28
32
 
33
+ const BACKGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartHorizontalLine', 'LineChartGradient', 'LineChartDot'];
34
+ const FOREGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartDot'];
35
+
29
36
  const AnimatedSVG = _reactNativeReanimated.default.createAnimatedComponent(_reactNativeSvg.Svg);
30
37
 
31
38
  const LineChartPathContext = /*#__PURE__*/React.createContext({
32
39
  color: '',
40
+ isInactive: false,
33
41
  isTransitionEnabled: true
34
42
  });
35
43
  exports.LineChartPathContext = LineChartPathContext;
44
+ LineChartPathWrapper.displayName = 'LineChartPathWrapper';
36
45
 
37
46
  function LineChartPathWrapper({
38
47
  animationDuration = 300,
39
48
  animationProps = {},
40
49
  children,
41
50
  color = 'black',
42
- width: pathWidth = 3,
51
+ inactiveColor,
52
+ width: strokeWidth = 3,
53
+ widthOffset = 20,
43
54
  pathProps = {},
44
- showInactivePath = true
55
+ showInactivePath = true,
56
+ animateOnMount,
57
+ mountAnimationDuration = animationDuration,
58
+ mountAnimationProps = animationProps
45
59
  }) {
46
- var _pathProps$isTransiti;
60
+ var _pathProps$isTransiti, _pathProps$isTransiti2;
47
61
 
48
62
  const {
49
- width,
50
- height
63
+ height,
64
+ pathWidth,
65
+ width
51
66
  } = React.useContext(_Chart.LineChartDimensionsContext);
52
67
  const {
53
68
  currentX,
54
69
  isActive
55
- } = (0, _useLineChart.useLineChart)(); ////////////////////////////////////////////////
56
-
57
- const svgProps = (0, _reactNativeReanimated.useAnimatedProps)(() => ({
58
- width: isActive.value ? // on Web, <svg /> elements don't support negative widths
59
- // https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904
60
- Math.max(currentX.value, 0) : (0, _reactNativeReanimated.withTiming)(width, Object.assign({
61
- duration: animationDuration
62
- }, animationProps))
63
- }));
70
+ } = (0, _useLineChart.useLineChart)();
71
+ const isMounted = (0, _reactNativeReanimated.useSharedValue)(false);
72
+ const hasMountedAnimation = (0, _reactNativeReanimated.useSharedValue)(false);
73
+ React.useEffect(() => {
74
+ isMounted.value = true; // eslint-disable-next-line react-hooks/exhaustive-deps
75
+ }, []); ////////////////////////////////////////////////
76
+
77
+ const svgProps = (0, _reactNativeReanimated.useAnimatedProps)(() => {
78
+ const shouldAnimateOnMount = animateOnMount === 'foreground';
79
+ const inactiveWidth = !isMounted.value && shouldAnimateOnMount ? 0 : pathWidth;
80
+ let duration = shouldAnimateOnMount && !hasMountedAnimation.value ? mountAnimationDuration : animationDuration;
81
+ const props = shouldAnimateOnMount && !hasMountedAnimation.value ? mountAnimationProps : animationProps;
82
+
83
+ if (isActive.value) {
84
+ duration = 0;
85
+ }
86
+
87
+ return {
88
+ width: (0, _reactNativeReanimated.withTiming)(isActive.value ? // on Web, <svg /> elements don't support negative widths
89
+ // https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904
90
+ Math.max(currentX.value, 0) : inactiveWidth + widthOffset, Object.assign({
91
+ duration
92
+ }, props), () => {
93
+ hasMountedAnimation.value = true;
94
+ })
95
+ };
96
+ });
64
97
  const viewSize = React.useMemo(() => ({
65
98
  width,
66
99
  height
67
100
  }), [width, height]); ////////////////////////////////////////////////
68
101
 
69
- return /*#__PURE__*/React.createElement(LineChartPathContext.Provider, {
102
+ let backgroundChildren;
103
+ let foregroundChildren;
104
+
105
+ if (children) {
106
+ const iterableChildren = (0, _reactKeyedFlattenChildren.default)(children);
107
+ backgroundChildren = iterableChildren.filter(child => {
108
+ var _child$type;
109
+
110
+ return (// @ts-ignore
111
+ BACKGROUND_COMPONENTS.includes(child === null || child === void 0 ? void 0 : (_child$type = child.type) === null || _child$type === void 0 ? void 0 : _child$type.displayName)
112
+ );
113
+ });
114
+ foregroundChildren = iterableChildren.filter(child => {
115
+ var _child$type2;
116
+
117
+ return (// @ts-ignore
118
+ FOREGROUND_COMPONENTS.includes(child === null || child === void 0 ? void 0 : (_child$type2 = child.type) === null || _child$type2 === void 0 ? void 0 : _child$type2.displayName)
119
+ );
120
+ });
121
+ } ////////////////////////////////////////////////
122
+
123
+
124
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(LineChartPathContext.Provider, {
70
125
  value: {
71
126
  color,
127
+ isInactive: showInactivePath,
72
128
  isTransitionEnabled: (_pathProps$isTransiti = pathProps.isTransitionEnabled) !== null && _pathProps$isTransiti !== void 0 ? _pathProps$isTransiti : true
73
129
  }
74
130
  }, /*#__PURE__*/React.createElement(_reactNative.View, {
@@ -76,18 +132,24 @@ function LineChartPathWrapper({
76
132
  }, /*#__PURE__*/React.createElement(_reactNativeSvg.Svg, {
77
133
  width: width,
78
134
  height: height
79
- }, children, /*#__PURE__*/React.createElement(_Path.LineChartPath, _extends({
135
+ }, /*#__PURE__*/React.createElement(_Path.LineChartPath, _extends({
80
136
  color: color,
81
- width: pathWidth,
82
- isInactive: showInactivePath
83
- }, pathProps)))), /*#__PURE__*/React.createElement(_reactNative.View, {
137
+ inactiveColor: inactiveColor,
138
+ width: strokeWidth
139
+ }, pathProps)), backgroundChildren))), /*#__PURE__*/React.createElement(LineChartPathContext.Provider, {
140
+ value: {
141
+ color,
142
+ isInactive: false,
143
+ isTransitionEnabled: (_pathProps$isTransiti2 = pathProps.isTransitionEnabled) !== null && _pathProps$isTransiti2 !== void 0 ? _pathProps$isTransiti2 : true
144
+ }
145
+ }, /*#__PURE__*/React.createElement(_reactNative.View, {
84
146
  style: _reactNative.StyleSheet.absoluteFill
85
147
  }, /*#__PURE__*/React.createElement(AnimatedSVG, {
86
148
  animatedProps: svgProps,
87
149
  height: height
88
150
  }, /*#__PURE__*/React.createElement(_Path.LineChartPath, _extends({
89
151
  color: color,
90
- width: pathWidth
91
- }, pathProps)))));
152
+ width: strokeWidth
153
+ }, pathProps)), foregroundChildren))));
92
154
  }
93
155
  //# sourceMappingURL=ChartPath.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["ChartPath.tsx"],"names":["AnimatedSVG","Animated","createAnimatedComponent","Svg","LineChartPathContext","React","createContext","color","isTransitionEnabled","LineChartPathWrapper","animationDuration","animationProps","children","width","pathWidth","pathProps","showInactivePath","height","useContext","LineChartDimensionsContext","currentX","isActive","svgProps","value","Math","max","Object","assign","duration","viewSize","useMemo","StyleSheet","absoluteFill"],"mappings":";;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;;;;;;;AAEA,MAAMA,WAAW,GAAGC,+BAASC,uBAAT,CAAiCC,mBAAjC,CAApB;;AAEO,MAAMC,oBAAoB,gBAAGC,KAAK,CAACC,aAAN,CAAoB;AACtDC,EAAAA,KAAK,EAAE,EAD+C;AAEtDC,EAAAA,mBAAmB,EAAE;AAFiC,CAApB,CAA7B;;;AAeA,SAASC,oBAAT,CAA8B;AACnCC,EAAAA,iBAAiB,GAAG,GADe;AAEnCC,EAAAA,cAAc,GAAG,EAFkB;AAGnCC,EAAAA,QAHmC;AAInCL,EAAAA,KAAK,GAAG,OAJ2B;AAKnCM,EAAAA,KAAK,EAAEC,SAAS,GAAG,CALgB;AAMnCC,EAAAA,SAAS,GAAG,EANuB;AAOnCC,EAAAA,gBAAgB,GAAG;AAPgB,CAA9B,EAQuB;AAAA;;AAC5B,QAAM;AAAEH,IAAAA,KAAF;AAASI,IAAAA;AAAT,MAAoBZ,KAAK,CAACa,UAAN,CAAiBC,iCAAjB,CAA1B;AACA,QAAM;AAAEC,IAAAA,QAAF;AAAYC,IAAAA;AAAZ,MAAyB,iCAA/B,CAF4B,CAI5B;;AAEA,QAAMC,QAAQ,GAAG,6CAAiB,OAAO;AACvCT,IAAAA,KAAK,EAAEQ,QAAQ,CAACE,KAAT,GACH;AACA;AACAC,IAAAA,IAAI,CAACC,GAAL,CAASL,QAAQ,CAACG,KAAlB,EAAyB,CAAzB,CAHG,GAIH,uCACEV,KADF,EAEEa,MAAM,CAACC,MAAP,CAAc;AAAEC,MAAAA,QAAQ,EAAElB;AAAZ,KAAd,EAA+CC,cAA/C,CAFF;AALmC,GAAP,CAAjB,CAAjB;AAWA,QAAMkB,QAAQ,GAAGxB,KAAK,CAACyB,OAAN,CAAc,OAAO;AAAEjB,IAAAA,KAAF;AAASI,IAAAA;AAAT,GAAP,CAAd,EAAyC,CAACJ,KAAD,EAAQI,MAAR,CAAzC,CAAjB,CAjB4B,CAmB5B;;AAEA,sBACE,oBAAC,oBAAD,CAAsB,QAAtB;AACE,IAAA,KAAK,EAAE;AACLV,MAAAA,KADK;AAELC,MAAAA,mBAAmB,2BAAEO,SAAS,CAACP,mBAAZ,yEAAmC;AAFjD;AADT,kBAME,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEqB;AAAb,kBACE,oBAAC,mBAAD;AAAK,IAAA,KAAK,EAAEhB,KAAZ;AAAmB,IAAA,MAAM,EAAEI;AAA3B,KACGL,QADH,eAEE,oBAAC,mBAAD;AACE,IAAA,KAAK,EAAEL,KADT;AAEE,IAAA,KAAK,EAAEO,SAFT;AAGE,IAAA,UAAU,EAAEE;AAHd,KAIMD,SAJN,EAFF,CADF,CANF,eAiBE,oBAAC,iBAAD;AAAM,IAAA,KAAK,EAAEgB,wBAAWC;AAAxB,kBACE,oBAAC,WAAD;AAAa,IAAA,aAAa,EAAEV,QAA5B;AAAsC,IAAA,MAAM,EAAEL;AAA9C,kBACE,oBAAC,mBAAD;AAAe,IAAA,KAAK,EAAEV,KAAtB;AAA6B,IAAA,KAAK,EAAEO;AAApC,KAAmDC,SAAnD,EADF,CADF,CAjBF,CADF;AAyBD","sourcesContent":["import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Svg } from 'react-native-svg';\nimport Animated, {\n useAnimatedProps,\n withTiming,\n} from 'react-native-reanimated';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPath, LineChartPathProps } from './Path';\nimport { useLineChart } from './useLineChart';\n\nconst AnimatedSVG = Animated.createAnimatedComponent(Svg);\n\nexport const LineChartPathContext = React.createContext({\n color: '',\n isTransitionEnabled: true,\n});\n\ntype LineChartPathWrapperProps = {\n animationDuration?: number;\n animationProps?: Partial<Animated.WithTimingConfig>;\n children?: React.ReactNode;\n color?: string;\n width?: number;\n pathProps?: Partial<LineChartPathProps>;\n showInactivePath?: boolean;\n};\n\nexport function LineChartPathWrapper({\n animationDuration = 300,\n animationProps = {},\n children,\n color = 'black',\n width: pathWidth = 3,\n pathProps = {},\n showInactivePath = true,\n}: LineChartPathWrapperProps) {\n const { width, height } = React.useContext(LineChartDimensionsContext);\n const { currentX, isActive } = useLineChart();\n\n ////////////////////////////////////////////////\n\n const svgProps = useAnimatedProps(() => ({\n width: isActive.value\n ? // on Web, <svg /> elements don't support negative widths\n // https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904\n Math.max(currentX.value, 0)\n : withTiming(\n width,\n Object.assign({ duration: animationDuration }, animationProps)\n ),\n }));\n\n const viewSize = React.useMemo(() => ({ width, height }), [width, height]);\n\n ////////////////////////////////////////////////\n\n return (\n <LineChartPathContext.Provider\n value={{\n color,\n isTransitionEnabled: pathProps.isTransitionEnabled ?? true,\n }}\n >\n <View style={viewSize}>\n <Svg width={width} height={height}>\n {children}\n <LineChartPath\n color={color}\n width={pathWidth}\n isInactive={showInactivePath}\n {...pathProps}\n />\n </Svg>\n </View>\n <View style={StyleSheet.absoluteFill}>\n <AnimatedSVG animatedProps={svgProps} height={height}>\n <LineChartPath color={color} width={pathWidth} {...pathProps} />\n </AnimatedSVG>\n </View>\n </LineChartPathContext.Provider>\n );\n}\n"]}
1
+ {"version":3,"sources":["ChartPath.tsx"],"names":["BACKGROUND_COMPONENTS","FOREGROUND_COMPONENTS","AnimatedSVG","Animated","createAnimatedComponent","Svg","LineChartPathContext","React","createContext","color","isInactive","isTransitionEnabled","LineChartPathWrapper","displayName","animationDuration","animationProps","children","inactiveColor","width","strokeWidth","widthOffset","pathProps","showInactivePath","animateOnMount","mountAnimationDuration","mountAnimationProps","height","pathWidth","useContext","LineChartDimensionsContext","currentX","isActive","isMounted","hasMountedAnimation","useEffect","value","svgProps","shouldAnimateOnMount","inactiveWidth","duration","props","Math","max","Object","assign","viewSize","useMemo","backgroundChildren","foregroundChildren","iterableChildren","filter","child","includes","type","StyleSheet","absoluteFill"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { StyleSheet, View } from 'react-native';\nimport { Svg } from 'react-native-svg';\nimport Animated, {\n useAnimatedProps,\n useSharedValue,\n withTiming,\n WithTimingConfig,\n} from 'react-native-reanimated';\nimport flattenChildren from 'react-keyed-flatten-children';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPath, LineChartPathProps } from './Path';\nimport { useLineChart } from './useLineChart';\n\nconst BACKGROUND_COMPONENTS = [\n 'LineChartHighlight',\n 'LineChartHorizontalLine',\n 'LineChartGradient',\n 'LineChartDot',\n];\nconst FOREGROUND_COMPONENTS = ['LineChartHighlight', 'LineChartDot'];\n\nconst AnimatedSVG = Animated.createAnimatedComponent(Svg);\n\nexport const LineChartPathContext = React.createContext({\n color: '',\n isInactive: false,\n isTransitionEnabled: true,\n});\n\ntype LineChartPathWrapperProps = {\n animationDuration?: number;\n animationProps?: Omit<Partial<WithTimingConfig>, 'duration'>;\n children?: React.ReactNode;\n color?: string;\n inactiveColor?: string;\n width?: number;\n widthOffset?: number;\n pathProps?: Partial<LineChartPathProps>;\n showInactivePath?: boolean;\n animateOnMount?: 'foreground';\n mountAnimationDuration?: number;\n mountAnimationProps?: Partial<WithTimingConfig>;\n};\n\nLineChartPathWrapper.displayName = 'LineChartPathWrapper';\n\nexport function LineChartPathWrapper({\n animationDuration = 300,\n animationProps = {},\n children,\n color = 'black',\n inactiveColor,\n width: strokeWidth = 3,\n widthOffset = 20,\n pathProps = {},\n showInactivePath = true,\n animateOnMount,\n mountAnimationDuration = animationDuration,\n mountAnimationProps = animationProps,\n}: LineChartPathWrapperProps) {\n const { height, pathWidth, width } = React.useContext(\n LineChartDimensionsContext\n );\n const { currentX, isActive } = useLineChart();\n const isMounted = useSharedValue(false);\n const hasMountedAnimation = useSharedValue(false);\n\n React.useEffect(() => {\n isMounted.value = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n ////////////////////////////////////////////////\n\n const svgProps = useAnimatedProps(() => {\n const shouldAnimateOnMount = animateOnMount === 'foreground';\n const inactiveWidth =\n !isMounted.value && shouldAnimateOnMount ? 0 : pathWidth;\n\n let duration =\n shouldAnimateOnMount && !hasMountedAnimation.value\n ? mountAnimationDuration\n : animationDuration;\n const props =\n shouldAnimateOnMount && !hasMountedAnimation.value\n ? mountAnimationProps\n : animationProps;\n\n if (isActive.value) {\n duration = 0;\n }\n\n return {\n width: withTiming(\n isActive.value\n ? // on Web, <svg /> elements don't support negative widths\n // https://github.com/coinjar/react-native-wagmi-charts/issues/24#issuecomment-955789904\n Math.max(currentX.value, 0)\n : inactiveWidth + widthOffset,\n Object.assign({ duration }, props),\n () => {\n hasMountedAnimation.value = true;\n }\n ),\n };\n });\n\n const viewSize = React.useMemo(() => ({ width, height }), [width, height]);\n\n ////////////////////////////////////////////////\n\n let backgroundChildren;\n let foregroundChildren;\n if (children) {\n const iterableChildren = flattenChildren(children);\n backgroundChildren = iterableChildren.filter((child) =>\n // @ts-ignore\n BACKGROUND_COMPONENTS.includes(child?.type?.displayName)\n );\n foregroundChildren = iterableChildren.filter((child) =>\n // @ts-ignore\n FOREGROUND_COMPONENTS.includes(child?.type?.displayName)\n );\n }\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <LineChartPathContext.Provider\n value={{\n color,\n isInactive: showInactivePath,\n isTransitionEnabled: pathProps.isTransitionEnabled ?? true,\n }}\n >\n <View style={viewSize}>\n <Svg width={width} height={height}>\n <LineChartPath\n color={color}\n inactiveColor={inactiveColor}\n width={strokeWidth}\n {...pathProps}\n />\n {backgroundChildren}\n </Svg>\n </View>\n </LineChartPathContext.Provider>\n <LineChartPathContext.Provider\n value={{\n color,\n isInactive: false,\n isTransitionEnabled: pathProps.isTransitionEnabled ?? true,\n }}\n >\n <View style={StyleSheet.absoluteFill}>\n <AnimatedSVG animatedProps={svgProps} height={height}>\n <LineChartPath color={color} width={strokeWidth} {...pathProps} />\n {foregroundChildren}\n </AnimatedSVG>\n </View>\n </LineChartPathContext.Provider>\n </>\n );\n}\n"]}