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.
- package/.DS_Store +0 -0
- package/README.md +365 -193
- package/example/.DS_Store +0 -0
- package/example/.expo/web/cache/development/babel-loader/0048eab7a1937596c83f7a0a8669a057.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/00e78539c92f01b2990b35cc56404077.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/01548be34380766518c44d302f0da833.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/01dc8e11259412b46f72a16b6f6f989a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/022bc27c62f111b60de1d9cf31798db5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/02341c3581c9b4661b5deec14d244183.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/029e21747cfcaf8be0db65a531a13e45.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/02cacb7980022332144135d930ecea11.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/030b07a0a05e98460988fcc5b21543fd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/03e0f78352a5cc290e9a694dfa0457b2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/03f273e96dda522f2f1ffb0c11d9cb41.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/040ef89e9083432c9c572aecfb055253.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/053109a5af2f50846dbff99c9ddaa08b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/05c8ee51599e49b8df4c2aea1c61f9bd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/061e5f7ad7d0922480d8aa5ec61bb646.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/062a149ffbda2b47d4a754da17f0ed89.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/06c9aabc7c8dc32a774403b9acd1d9e3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/06de2f6698410c68adcc5a227728a923.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/078d39387ece388cb409a9de98417dd7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/08ae8c107c10803a4fd1dcd9bb77631b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0b71299ddceefa8034f07d7bd25f7132.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0ba484ac7ba0d1abe8d566757740b901.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0bdbd4da7c535a6cfa3d301a2e03cdb3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0ca19fcabd7879d8a09389c265186c73.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0dba3b74d1f9e83e7e1be547f59f9b0d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0dda8bfcef9ddb34113838e01d884c94.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/0fed877538eec4c0fe6fc59a7fba1884.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/10c42328cedbca0b7c02e292cbf7e819.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/11e5e2a288b722ed1a72951da903668f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/124b86bda7fafdb400a04e42fb06d241.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/12ddb38f86b223c6168a22c3c441d23c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/12f8b90d6b32fd8d434f74ec0a1cc5de.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/14896ac3a706173aa66f99f5ac81de25.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/155b2897eaa205c153dc174759391596.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/159bcfbc06914dc0fa53d932ecdeb3a8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/15adfc2176211fd1b1f1e26ffac54860.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/16bf97aa1df29d051e75cdcfe30258ca.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/173757cc1e741e39f50c821a347ca6a7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/17539008e1af521bbd4be8772219d502.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/178a06574c91fc5f7d66bb5c1087d694.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/17f33cd1288f2d81431bd2cc3594a889.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/1ae598529609953300b8831809806773.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/1bf72c5e82adfae4cd9fb7d062f43c7b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/1e954e44cae79871d604d778ed2b019b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/1f3db19af6a4daad8ac653aef9a17b3e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/1fa8d4f7956d15e5d2301b5bc0ea5cda.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/20143c2ba144a977d78c7b106120350d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/201eb696584a8e8ed6ccc7f1c94bea83.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/208778a4ee646ee0555ed1e67b562757.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/219c2137c40f30853f1c0da86e6195ae.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/224ade2bbe8e0b2388eb1c55bff3f264.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/22eb55b287473e3a78908381441cfcb4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/240cb3678995c4254ed6e5c7582952ba.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2530791779144ffab597cad5be52c226.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2596af2ade89538878b6d544100f3399.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/25ba14deb6adaac77b56e2c781b4f065.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/26d2d37f205cec86abab8af6ff0ebc64.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/283e292d5ceb581a50e9755ac42601a2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/28d1872152a5070e160a78864dac71c9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/29518ab58c8aacdb2e5e164fc13d872b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/29d79f626f6ad6bfe79bbbf010acedf3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2aa749a94f4df8b760e8acfdb25028ff.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2b64d55ee11f0015681db4ce68a395d2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2cccd0ecb5914d7b91a0e2a0fbd995c9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2dbbd507ae02c5249d7088f625312a95.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2dce9894a2affe7bfe287cd3e27b4efd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2e27f8a130af009b492bc9f13a3bb578.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2f57f3c72b3b460c5d299bcf081b429b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/2f63db06dec4ae0f934cbe269ca78b7c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3146ea18d415deb6177ac03e1355688e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/319feb766afa0b6ef1fd0f61a79d8306.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/35c0fe0f3af5e5bb30c862ab2f0352fe.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/35e42e8dca6b3242a869b68dd19c9320.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3683ce1bd7ea848ec955de2738873cfb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/368688165f40c4cfc59238bacf69d131.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/36e75d47020ead36881558873b7ed051.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/38146d6afeec03b463523c4710274e9a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/394f45d48a9648d70c4b5b64076be031.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3972208eae9b5b632b17b21baa8bf208.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/39f743b81b60417ab847556a7179e22a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3b7135501e404451314cdcc9fe0600b8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3c20b6d457837e0ac87f3e648e6eca00.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3c5f38af9e2ec3a91de4f1b4fec17b0a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3e1698f99f9fc08d49f7b34982fa5ff9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3e2d35c9bbfe5423a7d98376bcd56e6b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3e7a2e7fe4f726704b568371689534ae.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/3f86d59727c3e03e54652149a8f8d3b6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/40402ff33d7840c2ef429fb4b123038d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4088615ef9d57b3f7fe4190660ba6ddc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/40c4fde14ef2e0ea53a7432cd848ff2b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/42c2f18b8307bc0d3ea5d84373a5d67f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/437dd685561b93a81742ac2ecbeb7d41.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/44dc1996d592f2e6f37bad3a90765f47.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/45873f55ae22e035954bc06cc50b2173.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/46679e2a6fceee1389fc81e63b21348f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4861470a02020675a1ee3db81cf82013.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4864be71b0d3193e0c759b91a9548cce.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/487488e8e5ae8ef9217e3c56a43ad05a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/49f4c364b909987eb06dde9e5e191155.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4b81b318c8d202092e5f11c893ba60ca.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4b929b061248038485fe18a4000f0dc7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4bb899e66458fe70451b960feb748cca.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4bf2841cd4d191e4fcd069fc2defa95d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4bfdf05b16115a8f6be82091518c35be.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4c14d7bff7de294fd991c68522f97ee4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4c723644cc0a1300f119db91b3a4e1d8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4c912e44b450dfff1f0d609c6fcf770c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4c91a10b38720099ce4af9a3b12902e3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4d466fa65871bcbc64956934ceb7b82f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4e225e240a0c5e5724f9d92ab2c2a5c7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4e741f92fbbd92b96334530f6ad10846.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/4f17a38ef723d2f2f88ab36229447848.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5126e93c01ee93124a5e74d11303b9c8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/519238552f7ca486b938192b9cbcceae.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/523038c6dc8ac0e76ef7a23d3eed51ec.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/532fa6c08d38d3c6de9df3cbc1e6a903.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/53bf8f177165c6b0e75a631aa4519d41.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/53ea8a26aeb6e2759a7f1f5f4f56b6fb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/542e618262a94895f81236112129bd3e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/546891698aff03b72ed2f6ceb6e7fa89.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5471a749a6e8af27964d87af251c688a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/547a11a6bdd8bda252dfd4614f815fbb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/549d7a1c3d15fdb39d9bffcf267e3f56.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/55add2461e97c93eb8aac04bb6999d6f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/566edd7dfdc185ef467beb97fcd9e08c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/567acdadac00f4c65b037849683131b6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/57892340c5b232df0a75f1339c9e68ce.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/586d05cc2c149bd7435298a982b57d60.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5954d33f838e7e341ebe043096ac7fe5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5a07d6d40bd575c25f45538b187acd8a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5a27a1760bd4f6407b1fea26715a87bc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5b36330631e46bbf63f870970b2122f7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5b9bc4b234aa59e34135748fd93507b6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5c0087a9595888025264a9904d1b8eef.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5d16233202c82021ddec174b9bb58863.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5d569557de3b7d5fa8afc576ac512a04.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5d646ca9aa7f759e829259ce504269e2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/5eef44eed8ccb290fe3456e2fe6bf8ed.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6024b3f768564aaeb1361263b0202a14.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/61cfc5a0e7335e0b9a219b1cbe277614.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/620f55f17382101002e5e9426ce3e366.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/62676c7e580c2e05b3597d53b1cec852.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/62f012bfa58863dc3ea69f00f9b90a77.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6320f4e69400d39312489472d7f26d50.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/63a9473d63154c31603b1ec1c728c8ab.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/63bae7aa325e3c82ba555ac19c0912fa.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/63c7331c32b247560f7318cb076a7c40.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/645eaa3c12cea785d12fed54225c1bad.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/64f7c8f31e295eee69738bfe05c5bff5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/68189da0029a30976a2484255a17ce79.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/696a6f2f23efafc28fc3c6d5b5ffaeac.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6991b1cd9f19326a94f92ef5b1b842a8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6b97a59c5465397dba921f389acaafdd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6c2f82c0db7403ccd4f19071f91173e4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6c8a2848fe0f787148c2fb6de4264155.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6d6f8b41da6a4ba792c39f671105e620.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6e1b109f621c0d54775303f058483115.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6f12c17d739331ecffc1403342ba41da.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/6fd1661af13dedb5e44522d491a1caf6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/70011f5e5361437bcf72ec2b53fad9f0.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/71c89114f87eec2560a35accc6fb21d7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/71f17bedd745f584f7abc4f4d51c7ad4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/72b944856e68e4a8a0ed8e4c2413070a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/740b2f1ab937b3d8fae7d547e9118390.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/748a994e95eb1d1311d08dae70ff213a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/74b3b0d02f286a48fe045bb68c2a4650.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/74d8aca04393d958004db6c2ef850b15.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/765c63eb89770f11615c740460d8a605.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7695443a011b53044155a45950f64551.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/77348d41c4a630ac871ec1662d753572.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/77a4283c1f4aa52a3ec7489dfcb4fd3c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/77c1d4c9c2134086a760c84c8dbb0767.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7856391ec0a27839d3fa6acbeb9aadda.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/78d3d5bbf14c6f41859897e37d770fcf.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/79c9840acdf1d5058d1dd9a3ee4c26a1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/79d14c794bf695a8710614f2650caadc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/79d484d4cd279cefd19f3ae34fbabc47.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7ac59aadbbeb87bbaa689455f49462e7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7addb7eb6bdec7308191a341bbe4f418.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7c6b46cf1a8d27fbf10098fc7b3147d4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7e073695c8dd0edfff43941d69ed768f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/7ea547e52608eb3d07287f91483f92d0.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/80b2a7b63d2968f55ad413f37a77625e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/81da8afb512f1fe3dc5283eed7693dc3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/83ce5beb699584197b95c23e16070359.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/84cbca54aad0ba7ad9155efbe50994e6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/86aa7c8020aadae1b6047e779a070006.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/873f17ead5c8a3a89f8c307d3fc3d749.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/88fd90442a3cd6528e4248e448007e21.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8947ed6ed81ae1ed2f0d1a5f7a21d4bd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8b0fa6466bfbb43efbc8a796bb0a058f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8bcdd0d74f6bf06c96dc636553f1ada8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8bfd7063b443cb17646e674300dd862b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8d06501d3b127619583bc480630ad389.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8d9e770602734e0d230feafb37171ca8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8dbfb280c88ee5948b0a3cc84074bd43.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8df99953a7fe26875c55c9bc1e71ca29.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8e7ea386f4f497f8c5e0a4a9b80b093a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8efad0218d4db05da11e8e21002ac55e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/8f6e1de5d12755c13e6c50a07e2d0778.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/91ed31500f942f97aec1be73e89a7af8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9252abf85af8c03f427a2e2117a1ad62.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/92b72e3964caccd73a132a988edcfae7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/93945109a64716fc3d15a12d81598ef8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/93ee4950a9326c046f9fa65c13dac411.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/93fe9632bb5db4ded992478e2af27d5f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/942ff966d1b2f375164a20370f75739c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/954ad5b7f72730fad3a93e8333b0da09.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/957bea32dcc83e0fc7f2fd8795a8f818.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/964cb097c867a1ded7eb7446f5548c22.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/98e4f7e158718137c26f2fe60b84369d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9ae989e87da92329c1f285a30c2be6f5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9ba4ab6ad62c186c10cc4440ed5f54a7.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9ce0ea8540198d071a57d36dae227cbc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9d2bab4aa3187dee265f1d9c8ce6f0f6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9e653ee142610f0516609ca3fb386739.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9e75ea79fea0209053c68ef4989b4a3a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9f2f6a11de269026061831c947435758.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/9f3fd9ca3231e3002df99db9d9616aa0.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a076afeae19d4e15321e5d81cf41364a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a261d7c057c570a5d74c5c84cc08e7f9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a3611e076e067e7397bd47a9ebe95cf1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a375a3eadad6ab2ce64ed38759b31415.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a3b99e0ec7f17e098c6b02a04282d805.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a3bde08c6c572203f93bcfa1170d4790.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a3bf51a1af912c42396b784cf9851941.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a48b6217b860aab3e81b366a7306ee03.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a4d591b829ddddd57e666af1737b9d34.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a5439975918b87c11694b33af83dab36.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a5813eb247e0c87dcc99934f4b49ae48.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a584b9a0fe744b07e9054b7aa6e79f77.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a689718c369fcd0f651d9089f15f507e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a78dc48e202b1f3be61ef3bc64699d14.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/a79a096843947a83012402bb34b93567.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/aa0e6e0aa152ebcb49584ecc82533c72.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/abfc16406c69f7727d3e40be1f492f11.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ac5ac27f40cd535964ff8a0f4a7ee169.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ac5c7f32acb8bbc71777904317929782.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/acc343298b9d93f37fea5d0160a6e4ba.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b0a4e8cf7a76d3009a62200ed32812d9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b1661b3c840f0f1de996ba1d52a39764.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b18b69c1c5e4f8cf7c4ded4ea78be1b5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b265f89f5ab4c2ac5fe0a4efeb01770f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b32b03cd1b812594924db2f0dadb2f56.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b36ad3720ed8bc69cd40bacd30394013.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b5d4cbb6bcdc394e0d5535f5bbf695e3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/b64b0b9559bbba155f24caa6cf08f433.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/bbfb771df3000d27f236c2f6538e6d31.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/bcd08666cb6eeb4d7141e38e753e5e5c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/beef69cc65e73363978524809c84094f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/bf018174df7cdbed5ae77cf03c266fee.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/bf53ba81ac3956a07f41a09fa6c4fa7e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c15cb7604e78e9a4f0cc5e4b79a227c2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c20807f969171763f83e5286ffb7183c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c309e4999a3ca5404709ed911ec9fdda.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c37b2427c54ed0b731d9413ea475f338.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c43017273abd7760afa188cb903bfa5d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c5134c3fb7b800b1c9b34655b8e97e4f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c62552ef04c76cdb7a94ba2f041360ac.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c69144c50f8f0d981b66c62204aaae74.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c733b561ef63b80564242d9b6f4954ec.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c78a01224ddb57513f9dc1603e721184.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c800cb1a4eccf4cc18e1408cf178b86d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/c8c61768113386918420fa8baaa34704.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ca0c207f9e3ba434db8f3775513736e6.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ca4498d52ea6fed7e01c9ed5c26fcf95.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cba71c3eea31dc8ca85b9ced8f7b1720.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cc2ae312a6441a2fedd76ee22ac87d51.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cc37b4c4f23da7c9d04d8693a5bbaaab.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cced66a0b48653e5bfa98910a88f9fba.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cd0e23910d814598adda82d05396be53.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cd55e478acd924f5c082f02840ed8bbb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cd8b6c6cd6a24fa61739c4d22dda95f8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cdf6fa5dcab6f3a13fa07e89fe985423.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ceccb76ea280ae97ededa88718ed0c3b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/cfc467109de81a77ce3d683966f4b354.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d0c3cb818782b9a81bfc30385f72b89b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d0fcdc8e889d972bbb4337e548164f40.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d168cd3939b990979e911bb032f8577b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d2fc7ecda4f6641f8d52e406be776196.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d358f00c23a45360cbb79dabdb721cd1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d45d41c244dad2c3ea03ba49a46a0423.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d4f6275737ee0b15864d1784084ec4e9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d5420905583aa27006ceaa13da6b662a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d5552d7ee552fec6e21e0b398feb3ddb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d5cec4c149045421487b8541b94a68b3.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d72ee3cf688a67b27f18b05bef74d879.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d797775538f909e9de0d644bcf0389e4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d7cfda25d1654f23b9938352b3e5f0fd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d7f22047db03832a0314db9bb7c9e4e8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/d92da9ccd71edac1d6d7f1b72554205f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/dae925659703faa3496df0985e30eb46.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/db2362a80925087fd6dfea2ecf5d1527.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/db44721b3956bd3b7617e773f566987b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/dd2e7e9f0700b6295764b0357f97fbd1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/dee3d7eeaa9d088adee455787ecfdbba.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/df177e28e870b3f9ed04286275590e05.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/df8cca84735630b31c89ab8c4525d586.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/dffc3d3b5387634869406f7b262b0334.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e00a687de4af483a065036c6b80fa9f9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e0bc2b67f28f7d20625141635fb72278.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e12513c015e82fb05ce94ecc8be7102a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e13d64c5b0cbfdf147e8b47baa112969.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e1630fcfbaff568bf2f669a3e388c026.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e1962858e3fc18c71d271c6eaa3a943d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e1a0963978b2cb66dec1b5d8a5a2c753.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e21dcee29960dda3812a8e73f9b0fcbc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e2faafd77df6c4f281c0c99a9e458e54.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e30c76c9a2d4f8d448441c1cb652eb01.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e3e477529ed5548f8e901ee83d7395ef.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e40e88a5ee7080ae8c27b8b8b14fbe3b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e4815f1b8edf5002fdece1b55fbc36bb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e656bc77be79a05f8054e227f7f79d12.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e6f55b8bb2f55bff9c7239707407e38b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e71b020cacbbe302bb14d7910742ec2d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e7472dd2c104082f95c6920e14b1ebf1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e7b42d4997a3a0970f307de97b93e04a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e958dca390e4e96d3ffd3fd3e668de5a.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/e9ee1fc9a9a662fdf210526a05895585.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ea69e12059df73da64e057bade5f4ba1.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/eae09ceb3f4483977f405539fff299a4.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/eaffd3d95bf68dd8a7419e53498b4640.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ec22a1721004d1dffd715720d5c2bda5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ee15d7496b6f14edc02d2cd58a7353f9.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ee8e3abcff9f49ec89705c0e083bc14e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ef79cc0b13fea249ac3b074f0a0de8eb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/efdf5fb16bfb6755d38d6afaec705dcc.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f114b6650124f4aa114c8641a8fb2e95.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f26a2ea3fe78d43644601e71fefe7a1e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f2df4e0da01cdba6223f5bbe6b36ff68.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f3060f14259d3179812abd59791780a5.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f3beb518b54ed38f03ac6db8f54e60ff.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f3c616fbd126299d1e806d6ecc1ec318.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f42e9bcb2c70b941d26c869beae57ebd.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f4a9921d6e837efff4d9a9df358e594f.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f4c95c91f375005a143433586f729253.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f557735276807fa1f2857d869fcf3f24.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f7747a8774208f97feee323659c8fd9c.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f78eccb875790b4d905e542a961bf15d.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f79a20eb5fe07a41699a4082250176ee.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f8161007e70676aff950dd230d92b913.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f89bed9b99073eb34bdcfe509a9eef7b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f8da7cfcc868c4561939eb69b187852b.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f9a453849a2adca3c8d16c288ee63674.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/f9c8751528f50853c93bccaef3665cb2.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fa1cac776862e25b801ccd74fe04dedb.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fa7135f62c5758217dd521fe11e4f3be.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fb1afe2167ecb0e405e51371bc59a75e.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fc02f1af2a9db4facfa4f4fc290432fe.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fc62eb1057700a3ed46569b3ca6ae7b8.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fc941b53721fd7910cde57ec192fe407.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fd143c0566e976f3b69413de3ca79ebf.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fd655c3e164d6c50e7affcee01046566.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fdada169c1988ef70eea3e2b77f7b727.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/fe0a5f0e6f28f358efb1ed12c10b3240.json +1 -0
- package/example/.expo/web/cache/development/babel-loader/ff9a6e20e331b715609602c9bca399e9.json +1 -0
- package/example/package.json +11 -13
- package/example/src/App.tsx +39 -34
- package/example/src/CandlestickChart.tsx +4 -1
- package/example/src/LineChart.tsx +20 -4
- package/example/src/data/line-data.json +20 -20
- package/example/yarn.lock +1819 -8871
- package/lib/commonjs/charts/candle/HoverTrap/index.web.js +120 -0
- package/lib/commonjs/charts/candle/HoverTrap/index.web.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getDomain.js +19 -0
- package/lib/commonjs/charts/candle/utils/getDomain.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getHeight.js +19 -0
- package/lib/commonjs/charts/candle/utils/getHeight.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getPrice.js +20 -0
- package/lib/commonjs/charts/candle/utils/getPrice.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/getY.js +19 -0
- package/lib/commonjs/charts/candle/utils/getY.js.map +1 -0
- package/lib/commonjs/charts/candle/utils/index.js +58 -0
- package/lib/commonjs/charts/candle/utils/index.js.map +1 -0
- package/lib/commonjs/charts/line/Chart.js +27 -9
- package/lib/commonjs/charts/line/Chart.js.map +1 -1
- package/lib/commonjs/charts/line/ChartPath.js +83 -21
- package/lib/commonjs/charts/line/ChartPath.js.map +1 -1
- package/lib/commonjs/charts/line/Context.js +8 -4
- package/lib/commonjs/charts/line/Context.js.map +1 -1
- package/lib/commonjs/charts/line/Cursor.js +2 -1
- package/lib/commonjs/charts/line/Cursor.js.map +1 -1
- package/lib/commonjs/charts/line/CursorCrosshair.js +12 -3
- package/lib/commonjs/charts/line/CursorCrosshair.js.map +1 -1
- package/lib/commonjs/charts/line/CursorLine.js +6 -6
- package/lib/commonjs/charts/line/CursorLine.js.map +1 -1
- package/lib/commonjs/charts/line/DatetimeText.js +2 -0
- package/lib/commonjs/charts/line/DatetimeText.js.map +1 -1
- package/lib/commonjs/charts/line/Dot.js +126 -0
- package/lib/commonjs/charts/line/Dot.js.map +1 -0
- package/lib/commonjs/charts/line/Gradient.js +8 -25
- package/lib/commonjs/charts/line/Gradient.js.map +1 -1
- package/lib/commonjs/charts/line/Group.js +5 -24
- package/lib/commonjs/charts/line/Group.js.map +1 -1
- package/lib/commonjs/charts/line/Highlight.js +92 -0
- package/lib/commonjs/charts/line/Highlight.js.map +1 -0
- package/lib/commonjs/charts/line/HorizontalLine.js +6 -6
- package/lib/commonjs/charts/line/HorizontalLine.js.map +1 -1
- package/lib/commonjs/charts/line/HoverTrap/index.js +15 -0
- package/lib/commonjs/charts/line/HoverTrap/index.js.map +1 -0
- package/lib/commonjs/charts/line/HoverTrap/index.web.js +120 -0
- package/lib/commonjs/charts/line/HoverTrap/index.web.js.map +1 -0
- package/lib/commonjs/charts/line/Path.js +19 -30
- package/lib/commonjs/charts/line/Path.js.map +1 -1
- package/lib/commonjs/charts/line/PriceText.js +2 -0
- package/lib/commonjs/charts/line/PriceText.js.map +1 -1
- package/lib/commonjs/charts/line/Tooltip.js +2 -0
- package/lib/commonjs/charts/line/Tooltip.js.map +1 -1
- package/lib/commonjs/charts/line/index.js +48 -15
- package/lib/commonjs/charts/line/index.js.map +1 -1
- package/lib/commonjs/charts/line/useAnimatedPath.js +44 -0
- package/lib/commonjs/charts/line/useAnimatedPath.js.map +1 -0
- package/lib/commonjs/charts/line/{utils.js → utils/getArea.js} +2 -49
- package/lib/commonjs/charts/line/utils/getArea.js.map +1 -0
- package/lib/commonjs/charts/line/utils/getDomain.js +16 -0
- package/lib/commonjs/charts/line/utils/getDomain.js.map +1 -0
- package/lib/commonjs/charts/line/utils/getPath.js +34 -0
- package/lib/commonjs/charts/line/utils/getPath.js.map +1 -0
- package/lib/commonjs/charts/line/utils/index.js +71 -0
- package/lib/commonjs/charts/line/utils/index.js.map +1 -0
- package/lib/commonjs/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
- package/lib/commonjs/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
- package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js +27 -0
- package/lib/commonjs/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
- package/lib/commonjs/components/AnimatedText.js +25 -13
- package/lib/commonjs/components/AnimatedText.js.map +1 -1
- package/lib/commonjs/index.js +8 -8
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/utils/formatDatetime.js +21 -0
- package/lib/commonjs/utils/formatDatetime.js.map +1 -0
- package/lib/commonjs/utils/formatPrice.js +46 -0
- package/lib/commonjs/utils/formatPrice.js.map +1 -0
- package/lib/commonjs/utils/index.js +45 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/commonjs/{utils.js → utils/usePrevious.js} +1 -57
- package/lib/commonjs/utils/usePrevious.js.map +1 -0
- package/lib/module/charts/candle/HoverTrap/index.web.js +101 -0
- package/lib/module/charts/candle/HoverTrap/index.web.js.map +1 -0
- package/lib/module/charts/candle/utils/getDomain.js +12 -0
- package/lib/module/charts/candle/utils/getDomain.js.map +1 -0
- package/lib/module/charts/candle/utils/getHeight.js +11 -0
- package/lib/module/charts/candle/utils/getHeight.js.map +1 -0
- package/lib/module/charts/candle/utils/getPrice.js +12 -0
- package/lib/module/charts/candle/utils/getPrice.js.map +1 -0
- package/lib/module/charts/candle/utils/getY.js +11 -0
- package/lib/module/charts/candle/utils/getY.js.map +1 -0
- package/lib/module/charts/candle/utils/index.js +5 -0
- package/lib/module/charts/candle/utils/index.js.map +1 -0
- package/lib/module/charts/line/Chart.js +27 -10
- package/lib/module/charts/line/Chart.js.map +1 -1
- package/lib/module/charts/line/ChartPath.js +79 -21
- package/lib/module/charts/line/ChartPath.js.map +1 -1
- package/lib/module/charts/line/Context.js +8 -4
- package/lib/module/charts/line/Context.js.map +1 -1
- package/lib/module/charts/line/Cursor.js +2 -1
- package/lib/module/charts/line/Cursor.js.map +1 -1
- package/lib/module/charts/line/CursorCrosshair.js +12 -4
- package/lib/module/charts/line/CursorCrosshair.js.map +1 -1
- package/lib/module/charts/line/CursorLine.js +4 -3
- package/lib/module/charts/line/CursorLine.js.map +1 -1
- package/lib/module/charts/line/DatetimeText.js +1 -0
- package/lib/module/charts/line/DatetimeText.js.map +1 -1
- package/lib/module/charts/line/Dot.js +105 -0
- package/lib/module/charts/line/Dot.js.map +1 -0
- package/lib/module/charts/line/Gradient.js +8 -24
- package/lib/module/charts/line/Gradient.js.map +1 -1
- package/lib/module/charts/line/Group.js +2 -23
- package/lib/module/charts/line/Group.js.map +1 -1
- package/lib/module/charts/line/Highlight.js +69 -0
- package/lib/module/charts/line/Highlight.js.map +1 -0
- package/lib/module/charts/line/HorizontalLine.js +4 -3
- package/lib/module/charts/line/HorizontalLine.js.map +1 -1
- package/lib/module/charts/line/HoverTrap/index.js +3 -0
- package/lib/module/charts/line/HoverTrap/index.js.map +1 -0
- package/lib/module/charts/line/HoverTrap/index.web.js +101 -0
- package/lib/module/charts/line/HoverTrap/index.web.js.map +1 -0
- package/lib/module/charts/line/Path.js +17 -29
- package/lib/module/charts/line/Path.js.map +1 -1
- package/lib/module/charts/line/PriceText.js +1 -0
- package/lib/module/charts/line/PriceText.js.map +1 -1
- package/lib/module/charts/line/Tooltip.js +1 -0
- package/lib/module/charts/line/Tooltip.js.map +1 -1
- package/lib/module/charts/line/index.js +13 -5
- package/lib/module/charts/line/index.js.map +1 -1
- package/lib/module/charts/line/useAnimatedPath.js +34 -0
- package/lib/module/charts/line/useAnimatedPath.js.map +1 -0
- package/lib/module/charts/line/utils/getArea.js +19 -0
- package/lib/module/charts/line/utils/getArea.js.map +1 -0
- package/lib/module/charts/line/utils/getDomain.js +9 -0
- package/lib/module/charts/line/utils/getDomain.js.map +1 -0
- package/lib/module/charts/line/utils/getPath.js +21 -0
- package/lib/module/charts/line/utils/getPath.js.map +1 -0
- package/lib/module/charts/line/utils/index.js +6 -0
- package/lib/module/charts/line/utils/index.js.map +1 -0
- package/lib/module/charts/line/{interpolatePath.js → utils/interpolatePath.js} +1 -1
- package/lib/module/charts/line/{interpolatePath.js.map → utils/interpolatePath.js.map} +1 -1
- package/lib/module/charts/line/utils/lineChartDataPropToArray.js +20 -0
- package/lib/module/charts/line/utils/lineChartDataPropToArray.js.map +1 -0
- package/lib/module/components/AnimatedText.js +24 -13
- package/lib/module/components/AnimatedText.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/utils/formatDatetime.js +14 -0
- package/lib/module/utils/formatDatetime.js.map +1 -0
- package/lib/module/{utils.js → utils/formatPrice.js} +1 -29
- package/lib/module/utils/formatPrice.js.map +1 -0
- package/lib/module/utils/index.js +4 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/module/utils/usePrevious.js +14 -0
- package/lib/module/utils/usePrevious.js.map +1 -0
- package/lib/typescript/src/charts/candle/HoverTrap/index.web.d.ts +2 -0
- package/lib/typescript/src/charts/candle/utils/getDomain.d.ts +2 -0
- package/lib/typescript/src/charts/candle/utils/getHeight.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/getPrice.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/getY.d.ts +6 -0
- package/lib/typescript/src/charts/candle/utils/index.d.ts +4 -0
- package/lib/typescript/src/charts/line/Chart.d.ts +6 -1
- package/lib/typescript/src/charts/line/ChartPath.d.ts +12 -3
- package/lib/typescript/src/charts/line/Context.d.ts +5 -1
- package/lib/typescript/src/charts/line/Cursor.d.ts +3 -0
- package/lib/typescript/src/charts/line/CursorCrosshair.d.ts +4 -1
- package/lib/typescript/src/charts/line/CursorLine.d.ts +4 -1
- package/lib/typescript/src/charts/line/DatetimeText.d.ts +3 -0
- package/lib/typescript/src/charts/line/Dot.d.ts +31 -0
- package/lib/typescript/src/charts/line/Gradient.d.ts +3 -0
- package/lib/typescript/src/charts/line/Group.d.ts +1 -2
- package/lib/typescript/src/charts/line/Highlight.d.ts +15 -0
- package/lib/typescript/src/charts/line/HorizontalLine.d.ts +4 -1
- package/lib/typescript/src/charts/line/HoverTrap/index.d.ts +2 -0
- package/lib/typescript/src/charts/line/HoverTrap/index.web.d.ts +2 -0
- package/lib/typescript/src/charts/line/Path.d.ts +5 -1
- package/lib/typescript/src/charts/line/PriceText.d.ts +3 -0
- package/lib/typescript/src/charts/line/Tooltip.d.ts +3 -0
- package/lib/typescript/src/charts/line/index.d.ts +16 -22
- package/lib/typescript/src/charts/line/types.d.ts +1 -0
- package/lib/typescript/src/charts/line/useAnimatedPath.d.ts +8 -0
- package/lib/typescript/src/charts/line/useLineChart.d.ts +1 -0
- package/lib/typescript/src/charts/line/utils/getArea.d.ts +9 -0
- package/lib/typescript/src/charts/line/utils/getDomain.d.ts +2 -0
- package/lib/typescript/src/charts/line/utils/getPath.d.ts +11 -0
- package/lib/typescript/src/charts/line/utils/index.d.ts +5 -0
- package/lib/typescript/src/charts/line/{interpolatePath.d.ts → utils/interpolatePath.d.ts} +1 -1
- package/lib/typescript/src/charts/line/utils/lineChartDataPropToArray.d.ts +2 -0
- package/lib/typescript/src/index.d.ts +1 -1
- package/lib/typescript/src/utils/formatDatetime.d.ts +8 -0
- package/lib/typescript/src/utils/formatPrice.d.ts +8 -0
- package/lib/typescript/src/utils/index.d.ts +3 -0
- package/lib/typescript/src/utils/usePrevious.d.ts +1 -0
- package/package.json +8 -6
- package/src/charts/candle/HoverTrap/index.web.tsx +110 -0
- package/src/charts/candle/utils/getDomain.ts +9 -0
- package/src/charts/candle/utils/getHeight.ts +21 -0
- package/src/charts/candle/utils/getPrice.ts +17 -0
- package/src/charts/candle/utils/getY.ts +16 -0
- package/src/charts/candle/utils/index.ts +4 -0
- package/src/charts/line/Chart.tsx +24 -8
- package/src/charts/line/ChartPath.tsx +119 -36
- package/src/charts/line/Context.tsx +8 -0
- package/src/charts/line/Cursor.tsx +5 -1
- package/src/charts/line/CursorCrosshair.tsx +22 -5
- package/src/charts/line/CursorLine.tsx +5 -3
- package/src/charts/line/DatetimeText.tsx +2 -0
- package/src/charts/line/Dot.tsx +175 -0
- package/src/charts/line/Gradient.tsx +7 -34
- package/src/charts/line/Group.tsx +4 -45
- package/src/charts/line/Highlight.tsx +78 -0
- package/src/charts/line/HorizontalLine.tsx +5 -3
- package/src/charts/line/HoverTrap/index.tsx +3 -0
- package/src/charts/line/HoverTrap/index.web.tsx +110 -0
- package/src/charts/line/Path.tsx +14 -38
- package/src/charts/line/PriceText.tsx +2 -0
- package/src/charts/line/Tooltip.tsx +2 -0
- package/src/charts/line/index.ts +13 -5
- package/src/charts/line/types.ts +1 -0
- package/src/charts/line/useAnimatedPath.ts +47 -0
- package/src/charts/line/utils/getArea.ts +38 -0
- package/src/charts/line/utils/getDomain.ts +7 -0
- package/src/charts/line/utils/getPath.ts +48 -0
- package/src/charts/line/utils/index.ts +5 -0
- package/src/charts/line/{interpolatePath.ts → utils/interpolatePath.ts} +1 -1
- package/src/charts/line/utils/lineChartDataPropToArray.ts +25 -0
- package/src/components/AnimatedText.tsx +27 -16
- package/src/index.ts +1 -1
- package/src/utils/formatDatetime.ts +16 -0
- package/src/{utils.ts → utils/formatPrice.ts} +0 -31
- package/src/utils/index.ts +3 -0
- package/src/utils/usePrevious.ts +13 -0
- package/tsconfig.json +1 -1
- package/yarn.lock +1847 -796
- package/example/patches/react-native-reanimated+2.2.2.patch +0 -28
- package/lib/commonjs/charts/line/utils.js.map +0 -1
- package/lib/commonjs/utils.js.map +0 -1
- package/lib/module/charts/line/utils.js +0 -60
- package/lib/module/charts/line/utils.js.map +0 -1
- package/lib/module/utils.js.map +0 -1
- package/lib/typescript/src/charts/line/utils.d.ts +0 -20
- package/lib/typescript/src/utils.d.ts +0 -17
- package/src/charts/line/utils.ts +0 -100
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
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); }
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import Animated
|
|
4
|
+
import Animated from 'react-native-reanimated';
|
|
5
5
|
import { Defs, LinearGradient, Stop, Path } from 'react-native-svg';
|
|
6
6
|
import { LineChartDimensionsContext } from './Chart';
|
|
7
7
|
import { LineChartPathContext } from './ChartPath';
|
|
8
|
-
import
|
|
9
|
-
import { usePrevious } from '../../utils';
|
|
8
|
+
import useAnimatedPath from './useAnimatedPath';
|
|
10
9
|
const AnimatedPath = Animated.createAnimatedComponent(Path);
|
|
11
10
|
let id = 0;
|
|
11
|
+
LineChartGradient.displayName = 'LineChartGradient';
|
|
12
12
|
export function LineChartGradient({
|
|
13
13
|
color: overrideColor = undefined,
|
|
14
14
|
children,
|
|
@@ -23,27 +23,11 @@ export function LineChartGradient({
|
|
|
23
23
|
} = React.useContext(LineChartPathContext);
|
|
24
24
|
const color = overrideColor || contextColor; ////////////////////////////////////////////////
|
|
25
25
|
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
if (previous) {
|
|
32
|
-
transition.value = 0;
|
|
33
|
-
transition.value = withTiming(1);
|
|
34
|
-
}
|
|
35
|
-
}, [area]);
|
|
36
|
-
const animatedProps = useAnimatedProps(() => {
|
|
37
|
-
let d = area || '';
|
|
38
|
-
|
|
39
|
-
if (previousPath && isTransitionEnabled) {
|
|
40
|
-
const pathInterpolator = interpolatePath(previousPath, area, null);
|
|
41
|
-
d = pathInterpolator(transition.value);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return {
|
|
45
|
-
d
|
|
46
|
-
};
|
|
26
|
+
const {
|
|
27
|
+
animatedProps
|
|
28
|
+
} = useAnimatedPath({
|
|
29
|
+
enabled: isTransitionEnabled,
|
|
30
|
+
path: area
|
|
47
31
|
}); ////////////////////////////////////////////////
|
|
48
32
|
|
|
49
33
|
const localId = React.useRef(++id); ////////////////////////////////////////////////
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Gradient.tsx"],"names":["React","Animated","
|
|
1
|
+
{"version":3,"sources":["Gradient.tsx"],"names":["React","Animated","Defs","LinearGradient","Stop","Path","LineChartDimensionsContext","LineChartPathContext","useAnimatedPath","AnimatedPath","createAnimatedComponent","id","LineChartGradient","displayName","color","overrideColor","undefined","children","props","area","useContext","contextColor","isTransitionEnabled","animatedProps","enabled","path","localId","useRef","current"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAAqB,yBAArB;AACA,SAASC,IAAT,EAAeC,cAAf,EAA+BC,IAA/B,EAAqCC,IAArC,QAA4D,kBAA5D;AAEA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,oBAAT,QAAqC,aAArC;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AAEA,MAAMC,YAAY,GAAGR,QAAQ,CAACS,uBAAT,CAAiCL,IAAjC,CAArB;AAOA,IAAIM,EAAE,GAAG,CAAT;AAEAC,iBAAiB,CAACC,WAAlB,GAAgC,mBAAhC;AAEA,OAAO,SAASD,iBAAT,CAA2B;AAChCE,EAAAA,KAAK,EAAEC,aAAa,GAAGC,SADS;AAEhCC,EAAAA,QAFgC;AAGhC,KAAGC;AAH6B,CAA3B,EAIoB;AACzB,QAAM;AAAEC,IAAAA;AAAF,MAAWnB,KAAK,CAACoB,UAAN,CAAiBd,0BAAjB,CAAjB;AACA,QAAM;AAAEQ,IAAAA,KAAK,EAAEO,YAAT;AAAuBC,IAAAA;AAAvB,MACJtB,KAAK,CAACoB,UAAN,CAAiBb,oBAAjB,CADF;AAGA,QAAMO,KAAK,GAAGC,aAAa,IAAIM,YAA/B,CALyB,CAOzB;;AAEA,QAAM;AAAEE,IAAAA;AAAF,MAAoBf,eAAe,CAAC;AACxCgB,IAAAA,OAAO,EAAEF,mBAD+B;AAExCG,IAAAA,IAAI,EAAEN;AAFkC,GAAD,CAAzC,CATyB,CAczB;;AAEA,QAAMO,OAAO,GAAG1B,KAAK,CAAC2B,MAAN,CAAa,EAAEhB,EAAf,CAAhB,CAhByB,CAkBzB;;AAEA,sBACE,0CACGM,QAAQ,gBACP,oBAAC,IAAD,qBACE,oBAAC,cAAD;AACE,IAAA,EAAE,EAAG,GAAES,OAAO,CAACE,OAAQ,EADzB;AAEE,IAAA,EAAE,EAAC,GAFL;AAGE,IAAA,EAAE,EAAC,GAHL;AAIE,IAAA,EAAE,EAAC,GAJL;AAKE,IAAA,EAAE,EAAC;AALL,KAOGX,QAPH,CADF,CADO,gBAaP,oBAAC,IAAD,qBACE,oBAAC,cAAD;AACE,IAAA,EAAE,EAAG,GAAES,OAAO,CAACE,OAAQ,EADzB;AAEE,IAAA,EAAE,EAAC,GAFL;AAGE,IAAA,EAAE,EAAC,GAHL;AAIE,IAAA,EAAE,EAAC,GAJL;AAKE,IAAA,EAAE,EAAC;AALL,kBAOE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,KAAb;AAAmB,IAAA,SAAS,EAAEd,KAA9B;AAAqC,IAAA,WAAW,EAAE;AAAlD,IAPF,eAQE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,KAAb;AAAmB,IAAA,SAAS,EAAEA,KAA9B;AAAqC,IAAA,WAAW,EAAE;AAAlD,IARF,eASE,oBAAC,IAAD;AAAM,IAAA,MAAM,EAAC,MAAb;AAAoB,IAAA,SAAS,EAAEA,KAA/B;AAAsC,IAAA,WAAW,EAAE;AAAnD,IATF,CADF,CAdJ,eA4BE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAES,aADjB;AAEE,IAAA,IAAI,EAAG,QAAOG,OAAO,CAACE,OAAQ;AAFhC,KAGMV,KAHN,EA5BF,CADF;AAoCD","sourcesContent":["import * as React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { Defs, LinearGradient, Stop, Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPathContext } from './ChartPath';\nimport useAnimatedPath from './useAnimatedPath';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartGradientProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n children?: React.ReactNode;\n};\n\nlet id = 0;\n\nLineChartGradient.displayName = 'LineChartGradient';\n\nexport function LineChartGradient({\n color: overrideColor = undefined,\n children,\n ...props\n}: LineChartGradientProps) {\n const { area } = React.useContext(LineChartDimensionsContext);\n const { color: contextColor, isTransitionEnabled } =\n React.useContext(LineChartPathContext);\n\n const color = overrideColor || contextColor;\n\n ////////////////////////////////////////////////\n\n const { animatedProps } = useAnimatedPath({\n enabled: isTransitionEnabled,\n path: area,\n });\n\n ////////////////////////////////////////////////\n\n const localId = React.useRef(++id);\n\n ////////////////////////////////////////////////\n\n return (\n <>\n {children ? (\n <Defs>\n <LinearGradient\n id={`${localId.current}`}\n x1=\"0\"\n x2=\"0\"\n y1=\"0\"\n y2=\"100%\"\n >\n {children}\n </LinearGradient>\n </Defs>\n ) : (\n <Defs>\n <LinearGradient\n id={`${localId.current}`}\n x1=\"0\"\n x2=\"0\"\n y1=\"0\"\n y2=\"100%\"\n >\n <Stop offset=\"20%\" stopColor={color} stopOpacity={0.15} />\n <Stop offset=\"40%\" stopColor={color} stopOpacity={0.05} />\n <Stop offset=\"100%\" stopColor={color} stopOpacity={0} />\n </LinearGradient>\n </Defs>\n )}\n <AnimatedPath\n animatedProps={animatedProps}\n fill={`url(#${localId.current})`}\n {...props}\n />\n </>\n );\n}\n"]}
|
|
@@ -1,29 +1,8 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
Forked from https://github.com/grrowl/react-keyed-flatten-children/blob/master/index.ts
|
|
5
|
-
*/
|
|
6
|
-
|
|
7
|
-
import { Children, isValidElement, cloneElement } from 'react';
|
|
2
|
+
import { Children, cloneElement } from 'react';
|
|
8
3
|
import { View } from 'react-native';
|
|
4
|
+
import flattenChildren from 'react-keyed-flatten-children';
|
|
9
5
|
import { LineChart } from './Chart';
|
|
10
|
-
export default function flattenChildren(children, depth = 0, keys = []) {
|
|
11
|
-
return Children.toArray(children).reduce((acc, node, nodeIndex) => {
|
|
12
|
-
if (node.type === React.Fragment) {
|
|
13
|
-
acc.push.apply(acc, flattenChildren(node.props.children, depth + 1, keys.concat(node.key || nodeIndex)));
|
|
14
|
-
} else {
|
|
15
|
-
if ( /*#__PURE__*/isValidElement(node)) {
|
|
16
|
-
acc.push( /*#__PURE__*/cloneElement(node, {
|
|
17
|
-
key: keys.concat(String(node.key)).join('.')
|
|
18
|
-
}));
|
|
19
|
-
} else if (typeof node === 'string' || typeof node === 'number') {
|
|
20
|
-
acc.push(node);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return acc;
|
|
25
|
-
}, []);
|
|
26
|
-
}
|
|
27
6
|
export function LineChartGroup({
|
|
28
7
|
children,
|
|
29
8
|
...props
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Group.tsx"],"names":["React","Children","
|
|
1
|
+
{"version":3,"sources":["Group.tsx"],"names":["React","Children","cloneElement","View","flattenChildren","LineChart","LineChartGroup","children","props","flatChildren","flatChildrenCount","count","map","child","index","isLast","type","absolute"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAAoBC,QAApB,EAA8BC,YAA9B,QAAkD,OAAlD;AACA,SAAoBC,IAApB,QAAgC,cAAhC;AACA,OAAOC,eAAP,MAA4B,8BAA5B;AAEA,SAASC,SAAT,QAA0B,SAA1B;AAMA,OAAO,SAASC,cAAT,CAAwB;AAAEC,EAAAA,QAAF;AAAY,KAAGC;AAAf,CAAxB,EAAuD;AAC5D,QAAMC,YAAY,GAAGL,eAAe,CAACG,QAAD,CAApC;AACA,QAAMG,iBAAiB,GAAGT,QAAQ,CAACU,KAAT,CAAeF,YAAf,CAA1B;AACA,sBACE,oBAAC,IAAD,EAAUD,KAAV,EAEGP,QAAQ,CAACW,GAAT,CAAaH,YAAb,EAA2B,CAACI,KAAD,EAAaC,KAAb,KAAuB;AACjD,UAAMC,MAAM,GAAGD,KAAK,KAAKJ,iBAAiB,GAAG,CAA7C;;AACA,QAAI,CAACK,MAAD,IAAWF,KAAK,CAACG,IAAN,KAAeX,SAA9B,EAAyC;AACvC,0BAAOH,YAAY,CAACW,KAAD,EAAQ;AACzBI,QAAAA,QAAQ,EAAE;AADe,OAAR,CAAnB;AAGD;;AACD,WAAOJ,KAAP;AACD,GARA,CAFH,CADF;AAcD","sourcesContent":["import React from 'react';\nimport { ReactNode, Children, cloneElement } from 'react';\nimport { ViewProps, View } from 'react-native';\nimport flattenChildren from 'react-keyed-flatten-children';\n\nimport { LineChart } from './Chart';\n\ntype Props = {\n children: ReactNode;\n} & ViewProps;\n\nexport function LineChartGroup({ children, ...props }: Props) {\n const flatChildren = flattenChildren(children);\n const flatChildrenCount = Children.count(flatChildren);\n return (\n <View {...props}>\n {/* eslint-disable-next-line @typescript-eslint/no-explicit-any */}\n {Children.map(flatChildren, (child: any, index) => {\n const isLast = index === flatChildrenCount - 1;\n if (!isLast && child.type === LineChart) {\n return cloneElement(child, {\n absolute: true,\n });\n }\n return child;\n })}\n </View>\n );\n}\n"]}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
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); }
|
|
2
|
+
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import Animated from 'react-native-reanimated';
|
|
5
|
+
import { Path } from 'react-native-svg';
|
|
6
|
+
import { LineChartDimensionsContext } from './Chart';
|
|
7
|
+
import { LineChartPathContext } from './ChartPath';
|
|
8
|
+
import useAnimatedPath from './useAnimatedPath';
|
|
9
|
+
import { useLineChart } from './useLineChart';
|
|
10
|
+
import { getPath } from './utils';
|
|
11
|
+
const AnimatedPath = Animated.createAnimatedComponent(Path);
|
|
12
|
+
LineChartHighlight.displayName = 'LineChartHighlight';
|
|
13
|
+
export function LineChartHighlight({
|
|
14
|
+
color = 'black',
|
|
15
|
+
inactiveColor,
|
|
16
|
+
showInactiveColor = true,
|
|
17
|
+
from,
|
|
18
|
+
to,
|
|
19
|
+
width: strokeWidth = 3,
|
|
20
|
+
...props
|
|
21
|
+
}) {
|
|
22
|
+
const {
|
|
23
|
+
data,
|
|
24
|
+
yDomain
|
|
25
|
+
} = useLineChart();
|
|
26
|
+
const {
|
|
27
|
+
pathWidth,
|
|
28
|
+
height,
|
|
29
|
+
gutter,
|
|
30
|
+
shape
|
|
31
|
+
} = React.useContext(LineChartDimensionsContext);
|
|
32
|
+
const {
|
|
33
|
+
isTransitionEnabled,
|
|
34
|
+
isInactive: _isInactive
|
|
35
|
+
} = React.useContext(LineChartPathContext);
|
|
36
|
+
const isInactive = showInactiveColor && _isInactive; ////////////////////////////////////////////////
|
|
37
|
+
|
|
38
|
+
const path = React.useMemo(() => {
|
|
39
|
+
if (data && data.length > 0) {
|
|
40
|
+
return getPath({
|
|
41
|
+
data,
|
|
42
|
+
from,
|
|
43
|
+
to,
|
|
44
|
+
width: pathWidth,
|
|
45
|
+
height,
|
|
46
|
+
gutter,
|
|
47
|
+
shape,
|
|
48
|
+
yDomain
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
return '';
|
|
53
|
+
}, [data, from, to, pathWidth, height, gutter, shape, yDomain]);
|
|
54
|
+
const {
|
|
55
|
+
animatedProps
|
|
56
|
+
} = useAnimatedPath({
|
|
57
|
+
enabled: isTransitionEnabled,
|
|
58
|
+
path
|
|
59
|
+
}); ////////////////////////////////////////////////
|
|
60
|
+
|
|
61
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
|
|
62
|
+
animatedProps: animatedProps,
|
|
63
|
+
fill: "transparent",
|
|
64
|
+
stroke: isInactive ? inactiveColor || color : color,
|
|
65
|
+
strokeWidth: strokeWidth,
|
|
66
|
+
strokeOpacity: isInactive && !inactiveColor ? 0.5 : 1
|
|
67
|
+
}, props)));
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=Highlight.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["Highlight.tsx"],"names":["React","Animated","Path","LineChartDimensionsContext","LineChartPathContext","useAnimatedPath","useLineChart","getPath","AnimatedPath","createAnimatedComponent","LineChartHighlight","displayName","color","inactiveColor","showInactiveColor","from","to","width","strokeWidth","props","data","yDomain","pathWidth","height","gutter","shape","useContext","isTransitionEnabled","isInactive","_isInactive","path","useMemo","length","animatedProps","enabled"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAAqB,yBAArB;AACA,SAASC,IAAT,QAAgC,kBAAhC;AAEA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,oBAAT,QAAqC,aAArC;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AACA,SAASC,YAAT,QAA6B,gBAA7B;AACA,SAASC,OAAT,QAAwB,SAAxB;AAEA,MAAMC,YAAY,GAAGP,QAAQ,CAACQ,uBAAT,CAAiCP,IAAjC,CAArB;AAWAQ,kBAAkB,CAACC,WAAnB,GAAiC,oBAAjC;AAEA,OAAO,SAASD,kBAAT,CAA4B;AACjCE,EAAAA,KAAK,GAAG,OADyB;AAEjCC,EAAAA,aAFiC;AAGjCC,EAAAA,iBAAiB,GAAG,IAHa;AAIjCC,EAAAA,IAJiC;AAKjCC,EAAAA,EALiC;AAMjCC,EAAAA,KAAK,EAAEC,WAAW,GAAG,CANY;AAOjC,KAAGC;AAP8B,CAA5B,EAQiB;AACtB,QAAM;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAoBf,YAAY,EAAtC;AACA,QAAM;AAAEgB,IAAAA,SAAF;AAAaC,IAAAA,MAAb;AAAqBC,IAAAA,MAArB;AAA6BC,IAAAA;AAA7B,MAAuCzB,KAAK,CAAC0B,UAAN,CAC3CvB,0BAD2C,CAA7C;AAGA,QAAM;AAAEwB,IAAAA,mBAAF;AAAuBC,IAAAA,UAAU,EAAEC;AAAnC,MACJ7B,KAAK,CAAC0B,UAAN,CAAiBtB,oBAAjB,CADF;AAEA,QAAMwB,UAAU,GAAGd,iBAAiB,IAAIe,WAAxC,CAPsB,CAStB;;AAEA,QAAMC,IAAI,GAAG9B,KAAK,CAAC+B,OAAN,CAAc,MAAM;AAC/B,QAAIX,IAAI,IAAIA,IAAI,CAACY,MAAL,GAAc,CAA1B,EAA6B;AAC3B,aAAOzB,OAAO,CAAC;AACba,QAAAA,IADa;AAEbL,QAAAA,IAFa;AAGbC,QAAAA,EAHa;AAIbC,QAAAA,KAAK,EAAEK,SAJM;AAKbC,QAAAA,MALa;AAMbC,QAAAA,MANa;AAObC,QAAAA,KAPa;AAQbJ,QAAAA;AARa,OAAD,CAAd;AAUD;;AACD,WAAO,EAAP;AACD,GAdY,EAcV,CAACD,IAAD,EAAOL,IAAP,EAAaC,EAAb,EAAiBM,SAAjB,EAA4BC,MAA5B,EAAoCC,MAApC,EAA4CC,KAA5C,EAAmDJ,OAAnD,CAdU,CAAb;AAgBA,QAAM;AAAEY,IAAAA;AAAF,MAAoB5B,eAAe,CAAC;AACxC6B,IAAAA,OAAO,EAAEP,mBAD+B;AAExCG,IAAAA;AAFwC,GAAD,CAAzC,CA3BsB,CAgCtB;;AAEA,sBACE,uDACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEG,aADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,IAAA,MAAM,EAAEL,UAAU,GAAGf,aAAa,IAAID,KAApB,GAA4BA,KAHhD;AAIE,IAAA,WAAW,EAAEM,WAJf;AAKE,IAAA,aAAa,EAAEU,UAAU,IAAI,CAACf,aAAf,GAA+B,GAA/B,GAAqC;AALtD,KAMMM,KANN,EADF,CADF;AAYD","sourcesContent":["import * as React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPathContext } from './ChartPath';\nimport useAnimatedPath from './useAnimatedPath';\nimport { useLineChart } from './useLineChart';\nimport { getPath } from './utils';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartColorProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n from: number;\n to: number;\n showInactiveColor?: boolean;\n inactiveColor?: string;\n width?: number;\n};\n\nLineChartHighlight.displayName = 'LineChartHighlight';\n\nexport function LineChartHighlight({\n color = 'black',\n inactiveColor,\n showInactiveColor = true,\n from,\n to,\n width: strokeWidth = 3,\n ...props\n}: LineChartColorProps) {\n const { data, yDomain } = useLineChart();\n const { pathWidth, height, gutter, shape } = React.useContext(\n LineChartDimensionsContext\n );\n const { isTransitionEnabled, isInactive: _isInactive } =\n React.useContext(LineChartPathContext);\n const isInactive = showInactiveColor && _isInactive;\n\n ////////////////////////////////////////////////\n\n const path = React.useMemo(() => {\n if (data && data.length > 0) {\n return getPath({\n data,\n from,\n to,\n width: pathWidth,\n height,\n gutter,\n shape,\n yDomain,\n });\n }\n return '';\n }, [data, from, to, pathWidth, height, gutter, shape, yDomain]);\n\n const { animatedProps } = useAnimatedPath({\n enabled: isTransitionEnabled,\n path,\n });\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <AnimatedPath\n animatedProps={animatedProps}\n fill=\"transparent\"\n stroke={isInactive ? inactiveColor || color : color}\n strokeWidth={strokeWidth}\n strokeOpacity={isInactive && !inactiveColor ? 0.5 : 1}\n {...props}\n />\n </>\n );\n}\n"]}
|
|
@@ -7,14 +7,15 @@ import { getYForX, parse } from 'react-native-redash';
|
|
|
7
7
|
import { LineChartDimensionsContext } from './Chart';
|
|
8
8
|
import { useLineChart } from './useLineChart';
|
|
9
9
|
const AnimatedLine = Animated.createAnimatedComponent(SVGLine);
|
|
10
|
-
|
|
10
|
+
LineChartHorizontalLine.displayName = 'LineChartHorizontalLine';
|
|
11
|
+
export function LineChartHorizontalLine({
|
|
11
12
|
color = 'gray',
|
|
12
13
|
lineProps = {},
|
|
13
14
|
at = {
|
|
14
15
|
index: 0
|
|
15
16
|
},
|
|
16
17
|
offsetY = 0
|
|
17
|
-
})
|
|
18
|
+
}) {
|
|
18
19
|
const {
|
|
19
20
|
width,
|
|
20
21
|
path,
|
|
@@ -62,5 +63,5 @@ export const LineChartHorizontalLine = ({
|
|
|
62
63
|
stroke: color,
|
|
63
64
|
strokeDasharray: "3 3"
|
|
64
65
|
}, lineProps));
|
|
65
|
-
}
|
|
66
|
+
}
|
|
66
67
|
//# sourceMappingURL=HorizontalLine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["HorizontalLine.tsx"],"names":["React","Animated","useAnimatedProps","useDerivedValue","withTiming","Line","SVGLine","getYForX","parse","LineChartDimensionsContext","useLineChart","AnimatedLine","createAnimatedComponent","LineChartHorizontalLine","color","lineProps","at","index","offsetY","width","path","height","gutter","useContext","data","yDomain","parsedPath","useMemo","pointWidth","length","y","yForX","offsetTop","max","value","percentageOffsetTop","min","heightBetweenGutters","offsetTopPixels","lineAnimatedProps","x1","x2","y1","y2"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,IACEC,gBADF,EAEEC,eAFF,EAGEC,UAHF,QAIO,yBAJP;AAKA,SAASC,IAAI,IAAIC,OAAjB,QAA2C,kBAA3C;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,qBAAhC;AAEA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA,MAAMC,YAAY,GAAGV,QAAQ,CAACW,uBAAT,CAAiCN,OAAjC,CAArB;
|
|
1
|
+
{"version":3,"sources":["HorizontalLine.tsx"],"names":["React","Animated","useAnimatedProps","useDerivedValue","withTiming","Line","SVGLine","getYForX","parse","LineChartDimensionsContext","useLineChart","AnimatedLine","createAnimatedComponent","LineChartHorizontalLine","displayName","color","lineProps","at","index","offsetY","width","path","height","gutter","useContext","data","yDomain","parsedPath","useMemo","pointWidth","length","y","yForX","offsetTop","max","value","percentageOffsetTop","min","heightBetweenGutters","offsetTopPixels","lineAnimatedProps","x1","x2","y1","y2"],"mappings":";;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,IACEC,gBADF,EAEEC,eAFF,EAGEC,UAHF,QAIO,yBAJP;AAKA,SAASC,IAAI,IAAIC,OAAjB,QAA2C,kBAA3C;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,qBAAhC;AAEA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,YAAT,QAA6B,gBAA7B;AAEA,MAAMC,YAAY,GAAGV,QAAQ,CAACW,uBAAT,CAAiCN,OAAjC,CAArB;AAmCAO,uBAAuB,CAACC,WAAxB,GAAsC,yBAAtC;AAEA,OAAO,SAASD,uBAAT,CAAiC;AACtCE,EAAAA,KAAK,GAAG,MAD8B;AAEtCC,EAAAA,SAAS,GAAG,EAF0B;AAGtCC,EAAAA,EAAE,GAAG;AAAEC,IAAAA,KAAK,EAAE;AAAT,GAHiC;AAItCC,EAAAA,OAAO,GAAG;AAJ4B,CAAjC,EAKiB;AACtB,QAAM;AAAEC,IAAAA,KAAF;AAASC,IAAAA,IAAT;AAAeC,IAAAA,MAAf;AAAuBC,IAAAA;AAAvB,MAAkCvB,KAAK,CAACwB,UAAN,CACtCf,0BADsC,CAAxC;AAGA,QAAM;AAAEgB,IAAAA,IAAF;AAAQC,IAAAA;AAAR,MAAoBhB,YAAY,EAAtC;AAEA,QAAMiB,UAAU,GAAG3B,KAAK,CAAC4B,OAAN,CAAc,MAAMpB,KAAK,CAACa,IAAD,CAAzB,EAAiC,CAACA,IAAD,CAAjC,CAAnB;AACA,QAAMQ,UAAU,GAAG7B,KAAK,CAAC4B,OAAN,CACjB,MAAMR,KAAK,GAAGK,IAAI,CAACK,MADF,EAEjB,CAACL,IAAI,CAACK,MAAN,EAAcV,KAAd,CAFiB,CAAnB;AAKA,QAAMW,CAAC,GAAG5B,eAAe,CAAC,MAAM;AAC9B,QAAI,OAAOc,EAAP,KAAc,QAAd,IAA0BA,EAAE,CAACC,KAAH,IAAY,IAA1C,EAAgD;AAC9C,YAAMA,KAAK,GAAG,OAAOD,EAAP,KAAc,QAAd,GAAyBA,EAAzB,GAA8BA,EAAE,CAACC,KAA/C;AACA,YAAMc,KAAK,GAAGzB,QAAQ,CAACoB,UAAD,EAAcE,UAAU,GAAGX,KAA3B,CAAR,IAA6C,CAA3D;AACA,aAAOd,UAAU,CAAC4B,KAAK,GAAGb,OAAT,CAAjB;AACD;AACD;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAEI,UAAMc,SAAS,GAAGP,OAAO,CAACQ,GAAR,GAAcjB,EAAE,CAACkB,KAAnC;AACA,UAAMC,mBAAmB,GAAGH,SAAS,IAAIP,OAAO,CAACQ,GAAR,GAAcR,OAAO,CAACW,GAA1B,CAArC;AAEA,UAAMC,oBAAoB,GAAGhB,MAAM,GAAGC,MAAM,GAAG,CAA/C;AAEA,UAAMgB,eAAe,GAAGhB,MAAM,GAAGa,mBAAmB,GAAGE,oBAAvD;AAEA,WAAOlC,UAAU,CAACmC,eAAe,GAAGpB,OAAnB,CAAjB;AACD,GAxBwB,CAAzB;AA0BA,QAAMqB,iBAAiB,GAAGtC,gBAAgB,CAAC,OAAO;AAChDuC,IAAAA,EAAE,EAAE,CAD4C;AAEhDC,IAAAA,EAAE,EAAEtB,KAF4C;AAGhDuB,IAAAA,EAAE,EAAEZ,CAAC,CAACI,KAH0C;AAIhDS,IAAAA,EAAE,EAAEb,CAAC,CAACI;AAJ0C,GAAP,CAAD,CAA1C;AAOA,sBACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEK,iBADjB;AAEE,IAAA,WAAW,EAAE,CAFf;AAGE,IAAA,MAAM,EAAEzB,KAHV;AAIE,IAAA,eAAe,EAAC;AAJlB,KAKMC,SALN,EADF;AASD","sourcesContent":["import React from 'react';\nimport Animated, {\n useAnimatedProps,\n useDerivedValue,\n withTiming,\n} from 'react-native-reanimated';\nimport { Line as SVGLine, LineProps } from 'react-native-svg';\nimport { getYForX, parse } from 'react-native-redash';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { useLineChart } from './useLineChart';\n\nconst AnimatedLine = Animated.createAnimatedComponent(SVGLine);\n\ntype HorizontalLineProps = {\n color?: string;\n lineProps?: Partial<LineProps>;\n offsetY?: number;\n /**\n * (Optional) A pixel value to nudge the line up or down.\n *\n * This may be useful to customize the line's position based on the thickness of your cursor or chart path.\n *\n * ```tsx\n * <LineChart.HorizontalLine\n * at={{ index: 3 }}\n * />\n *\n * // or\n *\n * <LineChart.HorizontalLine\n * at={{ value: 320.32}}\n * />\n * ```\n */\n at?:\n | {\n index: number;\n value?: never;\n }\n | {\n index?: never;\n value: number;\n }\n | number;\n};\n\nLineChartHorizontalLine.displayName = 'LineChartHorizontalLine';\n\nexport function LineChartHorizontalLine({\n color = 'gray',\n lineProps = {},\n at = { index: 0 },\n offsetY = 0,\n}: HorizontalLineProps) {\n const { width, path, height, gutter } = React.useContext(\n LineChartDimensionsContext\n );\n const { data, yDomain } = useLineChart();\n\n const parsedPath = React.useMemo(() => parse(path), [path]);\n const pointWidth = React.useMemo(\n () => width / data.length,\n [data.length, width]\n );\n\n const y = useDerivedValue(() => {\n if (typeof at === 'number' || at.index != null) {\n const index = typeof at === 'number' ? at : at.index;\n const yForX = getYForX(parsedPath!, pointWidth * index) || 0;\n return withTiming(yForX + offsetY);\n }\n /**\n * <gutter>\n * | ---------- | <- yDomain.max |\n * | | | offsetTop\n * | | <- value |\n * | |\n * | | <- yDomain.min\n * <gutter>\n */\n\n const offsetTop = yDomain.max - at.value;\n const percentageOffsetTop = offsetTop / (yDomain.max - yDomain.min);\n\n const heightBetweenGutters = height - gutter * 2;\n\n const offsetTopPixels = gutter + percentageOffsetTop * heightBetweenGutters;\n\n return withTiming(offsetTopPixels + offsetY);\n });\n\n const lineAnimatedProps = useAnimatedProps(() => ({\n x1: 0,\n x2: width,\n y1: y.value,\n y2: y.value,\n }));\n\n return (\n <AnimatedLine\n animatedProps={lineAnimatedProps}\n strokeWidth={2}\n stroke={color}\n strokeDasharray=\"3 3\"\n {...lineProps}\n />\n );\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["React","LineChartHoverTrap"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAEA,OAAO,MAAMC,kBAAkB,GAAG,mBAAM,yCAAjC","sourcesContent":["import React from 'react';\n\nexport const LineChartHoverTrap = () => <></>;\n"]}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { View, StyleSheet } from 'react-native';
|
|
3
|
+
import { parse } from 'react-native-redash';
|
|
4
|
+
import { LineChartDimensionsContext } from '../Chart';
|
|
5
|
+
import { useLineChart } from '../useLineChart'; // @ts-expect-error missing types
|
|
6
|
+
|
|
7
|
+
import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';
|
|
8
|
+
let isEnabled = false; // the following logic comes from the creator of react-native-web
|
|
9
|
+
// https://gist.github.com/necolas/1c494e44e23eb7f8c5864a2fac66299a
|
|
10
|
+
// it's also used by MotiPressable's hover interactions
|
|
11
|
+
// https://github.com/nandorojo/moti/blob/master/packages/interactions/src/pressable/hoverable.tsx
|
|
12
|
+
|
|
13
|
+
if (canUseDOM) {
|
|
14
|
+
/**
|
|
15
|
+
* Web browsers emulate mouse events (and hover states) after touch events.
|
|
16
|
+
* This code infers when the currently-in-use modality supports hover
|
|
17
|
+
* (including for multi-modality devices) and considers "hover" to be enabled
|
|
18
|
+
* if a mouse movement occurs more than 1 second after the last touch event.
|
|
19
|
+
* This threshold is long enough to account for longer delays between the
|
|
20
|
+
* browser firing touch and mouse events on low-powered devices.
|
|
21
|
+
*/
|
|
22
|
+
const HOVER_THRESHOLD_MS = 1000;
|
|
23
|
+
let lastTouchTimestamp = 0;
|
|
24
|
+
|
|
25
|
+
function enableHover() {
|
|
26
|
+
if (isEnabled || Date.now() - lastTouchTimestamp < HOVER_THRESHOLD_MS) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
isEnabled = true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function disableHover() {
|
|
34
|
+
lastTouchTimestamp = Date.now();
|
|
35
|
+
|
|
36
|
+
if (isEnabled) {
|
|
37
|
+
isEnabled = false;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
document.addEventListener('touchstart', disableHover, true);
|
|
42
|
+
document.addEventListener('touchmove', disableHover, true);
|
|
43
|
+
document.addEventListener('mousemove', enableHover, true);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function isHoverEnabled() {
|
|
47
|
+
return isEnabled;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export const LineChartHoverTrap = () => {
|
|
51
|
+
const {
|
|
52
|
+
width,
|
|
53
|
+
path
|
|
54
|
+
} = React.useContext(LineChartDimensionsContext);
|
|
55
|
+
const {
|
|
56
|
+
currentX,
|
|
57
|
+
currentIndex,
|
|
58
|
+
isActive,
|
|
59
|
+
data
|
|
60
|
+
} = useLineChart();
|
|
61
|
+
const parsedPath = React.useMemo(() => path ? parse(path) : undefined, [path]);
|
|
62
|
+
const onMouseMove = React.useCallback(({
|
|
63
|
+
x
|
|
64
|
+
}) => {
|
|
65
|
+
if (isHoverEnabled()) {
|
|
66
|
+
if (parsedPath) {
|
|
67
|
+
const boundedX = Math.min(x, width);
|
|
68
|
+
isActive.value = true;
|
|
69
|
+
currentX.value = boundedX; // on Web, we could drag the cursor to be negative, breaking it
|
|
70
|
+
// so we clamp the index at 0 to fix it
|
|
71
|
+
// https://github.com/coinjar/react-native-wagmi-charts/issues/24
|
|
72
|
+
|
|
73
|
+
const minIndex = 0;
|
|
74
|
+
const boundedIndex = Math.max(minIndex, Math.round(boundedX / width / (1 / (data.length - 1))));
|
|
75
|
+
currentIndex.value = boundedIndex;
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
isActive.value = false;
|
|
79
|
+
currentIndex.value = -1;
|
|
80
|
+
}
|
|
81
|
+
}, [currentIndex, currentX, data.length, isActive, parsedPath, width]);
|
|
82
|
+
const onMouseLeave = React.useCallback(() => {
|
|
83
|
+
isActive.value = false;
|
|
84
|
+
currentIndex.value = -1;
|
|
85
|
+
}, [currentIndex, isActive]);
|
|
86
|
+
return /*#__PURE__*/React.createElement(View, {
|
|
87
|
+
style: StyleSheet.absoluteFill // @ts-expect-error mouse move event
|
|
88
|
+
,
|
|
89
|
+
onMouseMove: React.useCallback( // eslint-disable-next-line no-undef
|
|
90
|
+
e => {
|
|
91
|
+
let rect = e.currentTarget.getBoundingClientRect();
|
|
92
|
+
let x = e.clientX - rect.left; // x position within the element.
|
|
93
|
+
|
|
94
|
+
onMouseMove({
|
|
95
|
+
x
|
|
96
|
+
});
|
|
97
|
+
}, [onMouseMove]),
|
|
98
|
+
onMouseLeave: onMouseLeave
|
|
99
|
+
});
|
|
100
|
+
};
|
|
101
|
+
//# sourceMappingURL=index.web.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["index.web.tsx"],"names":["React","View","StyleSheet","parse","LineChartDimensionsContext","useLineChart","canUseDOM","isEnabled","HOVER_THRESHOLD_MS","lastTouchTimestamp","enableHover","Date","now","disableHover","document","addEventListener","isHoverEnabled","LineChartHoverTrap","width","path","useContext","currentX","currentIndex","isActive","data","parsedPath","useMemo","undefined","onMouseMove","useCallback","x","boundedX","Math","min","value","minIndex","boundedIndex","max","round","length","onMouseLeave","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 '../Chart';\nimport { useLineChart } from '../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"]}
|
|
@@ -1,51 +1,39 @@
|
|
|
1
1
|
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); }
|
|
2
2
|
|
|
3
3
|
import * as React from 'react';
|
|
4
|
-
import Animated
|
|
4
|
+
import Animated from 'react-native-reanimated';
|
|
5
5
|
import { Path } from 'react-native-svg';
|
|
6
6
|
import { LineChartDimensionsContext } from './Chart';
|
|
7
|
-
import
|
|
8
|
-
import
|
|
7
|
+
import { LineChartPathContext } from './ChartPath';
|
|
8
|
+
import useAnimatedPath from './useAnimatedPath';
|
|
9
9
|
const AnimatedPath = Animated.createAnimatedComponent(Path);
|
|
10
|
+
LineChartPath.displayName = 'LineChartPath';
|
|
10
11
|
export function LineChartPath({
|
|
11
12
|
color = 'black',
|
|
13
|
+
inactiveColor,
|
|
12
14
|
width: strokeWidth = 3,
|
|
13
|
-
isInactive,
|
|
14
|
-
isTransitionEnabled = true,
|
|
15
15
|
...props
|
|
16
16
|
}) {
|
|
17
17
|
const {
|
|
18
18
|
path
|
|
19
|
-
} = React.useContext(LineChartDimensionsContext);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
return path;
|
|
25
|
-
}, (_, previous) => {
|
|
26
|
-
if (previous) {
|
|
27
|
-
transition.value = 0;
|
|
28
|
-
transition.value = withTiming(1);
|
|
29
|
-
}
|
|
30
|
-
}, [path]);
|
|
31
|
-
const animatedProps = useAnimatedProps(() => {
|
|
32
|
-
let d = path || '';
|
|
33
|
-
|
|
34
|
-
if (previousPath && isTransitionEnabled) {
|
|
35
|
-
const pathInterpolator = interpolatePath(previousPath, path, null);
|
|
36
|
-
d = pathInterpolator(transition.value);
|
|
37
|
-
}
|
|
19
|
+
} = React.useContext(LineChartDimensionsContext);
|
|
20
|
+
const {
|
|
21
|
+
isTransitionEnabled,
|
|
22
|
+
isInactive
|
|
23
|
+
} = React.useContext(LineChartPathContext); ////////////////////////////////////////////////
|
|
38
24
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
25
|
+
const {
|
|
26
|
+
animatedProps
|
|
27
|
+
} = useAnimatedPath({
|
|
28
|
+
enabled: isTransitionEnabled,
|
|
29
|
+
path
|
|
42
30
|
}); ////////////////////////////////////////////////
|
|
43
31
|
|
|
44
32
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AnimatedPath, _extends({
|
|
45
33
|
animatedProps: animatedProps,
|
|
46
34
|
fill: "transparent",
|
|
47
|
-
stroke: color,
|
|
48
|
-
strokeOpacity: isInactive ? 0.2 : 1,
|
|
35
|
+
stroke: isInactive ? inactiveColor || color : color,
|
|
36
|
+
strokeOpacity: isInactive && !inactiveColor ? 0.2 : 1,
|
|
49
37
|
strokeWidth: strokeWidth
|
|
50
38
|
}, props)));
|
|
51
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Path.tsx"],"names":["React","Animated","
|
|
1
|
+
{"version":3,"sources":["Path.tsx"],"names":["React","Animated","Path","LineChartDimensionsContext","LineChartPathContext","useAnimatedPath","AnimatedPath","createAnimatedComponent","LineChartPath","displayName","color","inactiveColor","width","strokeWidth","props","path","useContext","isTransitionEnabled","isInactive","animatedProps","enabled"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AACA,OAAOC,QAAP,MAAqB,yBAArB;AACA,SAASC,IAAT,QAAgC,kBAAhC;AAEA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,oBAAT,QAAqC,aAArC;AACA,OAAOC,eAAP,MAA4B,mBAA5B;AAEA,MAAMC,YAAY,GAAGL,QAAQ,CAACM,uBAAT,CAAiCL,IAAjC,CAArB;AAyBAM,aAAa,CAACC,WAAd,GAA4B,eAA5B;AAEA,OAAO,SAASD,aAAT,CAAuB;AAC5BE,EAAAA,KAAK,GAAG,OADoB;AAE5BC,EAAAA,aAF4B;AAG5BC,EAAAA,KAAK,EAAEC,WAAW,GAAG,CAHO;AAI5B,KAAGC;AAJyB,CAAvB,EAKgB;AACrB,QAAM;AAAEC,IAAAA;AAAF,MAAWf,KAAK,CAACgB,UAAN,CAAiBb,0BAAjB,CAAjB;AACA,QAAM;AAAEc,IAAAA,mBAAF;AAAuBC,IAAAA;AAAvB,MACJlB,KAAK,CAACgB,UAAN,CAAiBZ,oBAAjB,CADF,CAFqB,CAKrB;;AAEA,QAAM;AAAEe,IAAAA;AAAF,MAAoBd,eAAe,CAAC;AACxCe,IAAAA,OAAO,EAAEH,mBAD+B;AAExCF,IAAAA;AAFwC,GAAD,CAAzC,CAPqB,CAYrB;;AAEA,sBACE,uDACE,oBAAC,YAAD;AACE,IAAA,aAAa,EAAEI,aADjB;AAEE,IAAA,IAAI,EAAC,aAFP;AAGE,IAAA,MAAM,EAAED,UAAU,GAAGP,aAAa,IAAID,KAApB,GAA4BA,KAHhD;AAIE,IAAA,aAAa,EAAEQ,UAAU,IAAI,CAACP,aAAf,GAA+B,GAA/B,GAAqC,CAJtD;AAKE,IAAA,WAAW,EAAEE;AALf,KAMMC,KANN,EADF,CADF;AAYD","sourcesContent":["import * as React from 'react';\nimport Animated from 'react-native-reanimated';\nimport { Path, PathProps } from 'react-native-svg';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { LineChartPathContext } from './ChartPath';\nimport useAnimatedPath from './useAnimatedPath';\n\nconst AnimatedPath = Animated.createAnimatedComponent(Path);\n\nexport type LineChartPathProps = Animated.AnimateProps<PathProps> & {\n color?: string;\n inactiveColor?: string;\n width?: number;\n isInactive?: boolean;\n /**\n * Default: `true`.\n *\n * If `false`, changes in the chart's path will not animate.\n *\n * While this use case is rare, it may be useful on web, where animations might not work as well.\n *\n * **Example**\n *\n * ```tsx\n * <LineChart.Path\n * pathProps={{ isTransitionEnabled: Platform.OS !== 'web' }}\n * />\n * ```\n */\n isTransitionEnabled?: boolean;\n};\n\nLineChartPath.displayName = 'LineChartPath';\n\nexport function LineChartPath({\n color = 'black',\n inactiveColor,\n width: strokeWidth = 3,\n ...props\n}: LineChartPathProps) {\n const { path } = React.useContext(LineChartDimensionsContext);\n const { isTransitionEnabled, isInactive } =\n React.useContext(LineChartPathContext);\n\n ////////////////////////////////////////////////\n\n const { animatedProps } = useAnimatedPath({\n enabled: isTransitionEnabled,\n path,\n });\n\n ////////////////////////////////////////////////\n\n return (\n <>\n <AnimatedPath\n animatedProps={animatedProps}\n fill=\"transparent\"\n stroke={isInactive ? inactiveColor || color : color}\n strokeOpacity={isInactive && !inactiveColor ? 0.2 : 1}\n strokeWidth={strokeWidth}\n {...props}\n />\n </>\n );\n}\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { useLineChartPrice } from './usePrice';
|
|
3
3
|
import { AnimatedText } from '../../components/AnimatedText';
|
|
4
|
+
LineChartPriceText.displayName = 'LineChartPriceText';
|
|
4
5
|
export function LineChartPriceText({
|
|
5
6
|
format,
|
|
6
7
|
precision = 2,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PriceText.tsx"],"names":["React","useLineChartPrice","AnimatedText","LineChartPriceText","format","precision","variant","style","price"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAIA,SAASC,iBAAT,QAAkC,YAAlC;AAEA,SAASC,YAAT,QAA6B,+BAA7B;
|
|
1
|
+
{"version":3,"sources":["PriceText.tsx"],"names":["React","useLineChartPrice","AnimatedText","LineChartPriceText","displayName","format","precision","variant","style","price"],"mappings":"AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAIA,SAASC,iBAAT,QAAkC,YAAlC;AAEA,SAASC,YAAT,QAA6B,+BAA7B;AASAC,kBAAkB,CAACC,WAAnB,GAAiC,oBAAjC;AAEA,OAAO,SAASD,kBAAT,CAA4B;AACjCE,EAAAA,MADiC;AAEjCC,EAAAA,SAAS,GAAG,CAFqB;AAGjCC,EAAAA,OAAO,GAAG,WAHuB;AAIjCC,EAAAA;AAJiC,CAA5B,EAKqB;AAC1B,QAAMC,KAAK,GAAGR,iBAAiB,CAAC;AAAEI,IAAAA,MAAF;AAAUC,IAAAA;AAAV,GAAD,CAA/B;AACA,sBAAO,oBAAC,YAAD;AAAc,IAAA,IAAI,EAAEG,KAAK,CAACF,OAAD,CAAzB;AAAoC,IAAA,KAAK,EAAEC;AAA3C,IAAP;AACD","sourcesContent":["import * as React from 'react';\nimport type { TextProps as RNTextProps } from 'react-native';\nimport type Animated from 'react-native-reanimated';\n\nimport { useLineChartPrice } from './usePrice';\nimport type { TFormatterFn } from '../candle/types';\nimport { AnimatedText } from '../../components/AnimatedText';\n\nexport type LineChartPriceTextProps = {\n format?: TFormatterFn<string>;\n precision?: number;\n variant?: 'formatted' | 'value';\n style?: Animated.AnimateProps<RNTextProps>['style'];\n};\n\nLineChartPriceText.displayName = 'LineChartPriceText';\n\nexport function LineChartPriceText({\n format,\n precision = 2,\n variant = 'formatted',\n style,\n}: LineChartPriceTextProps) {\n const price = useLineChartPrice({ format, precision });\n return <AnimatedText text={price[variant]} style={style} />;\n}\n"]}
|
|
@@ -6,6 +6,7 @@ import { LineChartDimensionsContext } from './Chart';
|
|
|
6
6
|
import { CursorContext } from './Cursor';
|
|
7
7
|
import { LineChartPriceText } from './PriceText';
|
|
8
8
|
import { useLineChart } from './useLineChart';
|
|
9
|
+
LineChartTooltip.displayName = 'LineChartTooltip';
|
|
9
10
|
export function LineChartTooltip({
|
|
10
11
|
children,
|
|
11
12
|
xGutter = 8,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["Tooltip.tsx"],"names":["React","Animated","useAnimatedStyle","useSharedValue","LineChartDimensionsContext","CursorContext","LineChartPriceText","useLineChart","LineChartTooltip","children","xGutter","yGutter","cursorGutter","position","textProps","textStyle","props","width","height","useContext","type","currentX","currentY","isActive","x","elementWidth","elementHeight","handleLayout","useCallback","event","value","nativeEvent","layout","animatedCursorStyle","translateXOffset","xOffset","translateYOffset","transform","translateX","translateY","opacity","padding","alignSelf","style"],"mappings":";;AAAA,OAAO,KAAKA,KAAZ,MAAuB,OAAvB;AAEA,OAAOC,QAAP,IACEC,gBADF,EAEEC,cAFF,QAGO,yBAHP;AAKA,SAASC,0BAAT,QAA2C,SAA3C;AACA,SAASC,aAAT,QAA8B,UAA9B;AACA,SAASC,kBAAT,QAA4D,aAA5D;AACA,SAASC,YAAT,QAA6B,gBAA7B;
|
|
1
|
+
{"version":3,"sources":["Tooltip.tsx"],"names":["React","Animated","useAnimatedStyle","useSharedValue","LineChartDimensionsContext","CursorContext","LineChartPriceText","useLineChart","LineChartTooltip","displayName","children","xGutter","yGutter","cursorGutter","position","textProps","textStyle","props","width","height","useContext","type","currentX","currentY","isActive","x","elementWidth","elementHeight","handleLayout","useCallback","event","value","nativeEvent","layout","animatedCursorStyle","translateXOffset","xOffset","translateYOffset","transform","translateX","translateY","opacity","padding","alignSelf","style"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport type { ViewProps } from 'react-native';\nimport Animated, {\n useAnimatedStyle,\n useSharedValue,\n} from 'react-native-reanimated';\n\nimport { LineChartDimensionsContext } from './Chart';\nimport { CursorContext } from './Cursor';\nimport { LineChartPriceText, LineChartPriceTextProps } from './PriceText';\nimport { useLineChart } from './useLineChart';\n\ntype LineChartTooltipProps = Animated.AnimateProps<ViewProps> & {\n children?: React.ReactNode;\n xGutter?: number;\n yGutter?: number;\n cursorGutter?: number;\n position?: 'top' | 'bottom';\n textProps?: LineChartPriceTextProps;\n textStyle?: LineChartPriceTextProps['style'];\n};\n\nLineChartTooltip.displayName = 'LineChartTooltip';\n\nexport function LineChartTooltip({\n children,\n xGutter = 8,\n yGutter = 8,\n cursorGutter = 48,\n position = 'top',\n textProps,\n textStyle,\n ...props\n}: LineChartTooltipProps) {\n const { width, height } = React.useContext(LineChartDimensionsContext);\n const { type } = React.useContext(CursorContext);\n const { currentX, currentY, isActive } = useLineChart();\n\n const x = useSharedValue(0);\n const elementWidth = useSharedValue(0);\n const elementHeight = useSharedValue(0);\n\n const handleLayout = React.useCallback(\n (event) => {\n x.value = event.nativeEvent.layout.x;\n elementWidth.value = event.nativeEvent.layout.width;\n elementHeight.value = event.nativeEvent.layout.height;\n },\n [elementHeight, elementWidth, x]\n );\n\n const animatedCursorStyle = useAnimatedStyle(() => {\n let translateXOffset = elementWidth.value / 2;\n if (currentX.value < elementWidth.value / 2 + xGutter) {\n const xOffset = elementWidth.value / 2 + xGutter - currentX.value;\n translateXOffset = translateXOffset - xOffset;\n }\n if (currentX.value > width - elementWidth.value / 2 - xGutter) {\n const xOffset =\n currentX.value - (width - elementWidth.value / 2 - xGutter);\n translateXOffset = translateXOffset + xOffset;\n }\n\n let translateYOffset = 0;\n if (position === 'top') {\n translateYOffset = elementHeight.value / 2 + cursorGutter;\n if (currentY.value - translateYOffset < yGutter) {\n translateYOffset = currentY.value - yGutter;\n }\n } else if (position === 'bottom') {\n translateYOffset = -(elementHeight.value / 2) - cursorGutter / 2;\n if (\n currentY.value - translateYOffset + elementHeight.value >\n height - yGutter\n ) {\n translateYOffset =\n currentY.value - (height - yGutter) + elementHeight.value;\n }\n }\n\n return {\n transform: [\n { translateX: currentX.value - translateXOffset },\n {\n translateY:\n type === 'crosshair'\n ? currentY.value - translateYOffset\n : position === 'top'\n ? yGutter\n : height - elementHeight.value - yGutter,\n },\n ],\n opacity: isActive.value ? 1 : 0,\n };\n });\n\n return (\n <Animated.View\n onLayout={handleLayout}\n {...props}\n style={[\n {\n position: 'absolute',\n padding: 4,\n alignSelf: 'flex-start',\n },\n animatedCursorStyle,\n props.style,\n ]}\n >\n {children || <LineChartPriceText style={[textStyle]} {...textProps} />}\n </Animated.View>\n );\n}\n"]}
|