From 541074ec8b22a2d8d13f10a8ea44b658033a39fa Mon Sep 17 00:00:00 2001 From: tony chen Date: Fri, 2 Feb 2024 17:05:34 +0800 Subject: [PATCH] feat: add image snap test Signed-off-by: tony chen --- .github/actions/setup/action.yml | 10 +- .github/workflows/ci.yml | 6 +- .github/workflows/publish.yml | 12 +- .gitignore | 3 + example/package.json | 4 +- example/yarn.lock | 314 +-- jest.config.js | 12 +- jestSetup.js | 7 +- package.json | 8 +- src/SVGRenderer.ts | 67 +- src/SVGRenderer.web.ts | 2 +- src/__tests__/RNSVG.test.tsx | 2 + src/__tests__/RNSkia.test.tsx | 2 + ...ch-events-to-z-render-correctly-1-snap.png | Bin 0 -> 4604 bytes ...ch-events-to-z-render-correctly-2-snap.png | Bin 0 -> 4518 bytes ...-tap-drag-pinch-event-correctly-1-snap.png | Bin 0 -> 5514 bytes ...-tap-drag-pinch-event-correctly-2-snap.png | Bin 0 -> 6049 bytes ...-tap-drag-pinch-event-correctly-3-snap.png | Bin 0 -> 4911 bytes ...-tap-drag-pinch-event-correctly-4-snap.png | Bin 0 -> 4598 bytes ...-tap-drag-pinch-event-correctly-1-snap.png | Bin 0 -> 5591 bytes ...-tap-drag-pinch-event-correctly-2-snap.png | Bin 0 -> 6113 bytes ...-tap-drag-pinch-event-correctly-3-snap.png | Bin 0 -> 6117 bytes ...-tap-drag-pinch-event-correctly-4-snap.png | Bin 0 -> 5949 bytes ...a-chart-chart-renders-correctly-1-snap.png | Bin 0 -> 3994 bytes ...ch-events-to-z-render-correctly-1-snap.png | Bin 0 -> 4591 bytes ...ch-events-to-z-render-correctly-2-snap.png | Bin 0 -> 4504 bytes ...-tap-drag-pinch-event-correctly-1-snap.png | Bin 0 -> 5526 bytes ...-tap-drag-pinch-event-correctly-2-snap.png | Bin 0 -> 6185 bytes ...-tap-drag-pinch-event-correctly-3-snap.png | Bin 0 -> 4966 bytes ...-tap-drag-pinch-event-correctly-4-snap.png | Bin 0 -> 4678 bytes ...-tap-drag-pinch-event-correctly-1-snap.png | Bin 0 -> 5468 bytes ...-tap-drag-pinch-event-correctly-2-snap.png | Bin 0 -> 6094 bytes ...-tap-drag-pinch-event-correctly-3-snap.png | Bin 0 -> 6099 bytes ...-tap-drag-pinch-event-correctly-4-snap.png | Bin 0 -> 5933 bytes ...g-chart-chart-renders-correctly-1-snap.png | Bin 0 -> 4102 bytes .../__snapshots__/chart.test.tsx.snap | 1788 ++++++++++++++++- src/__tests__/chart.test.tsx | 503 ++++- src/__tests__/index.test.tsx | 1 + src/__tests__/web.test.tsx | 2 + src/components/PanResponderHandler.tsx | 8 +- src/components/RNGestureHandler.tsx | 3 + src/skiaChart.tsx | 26 +- yarn.lock | 514 ++++- 43 files changed, 2935 insertions(+), 359 deletions(-) create mode 100644 src/__tests__/RNSVG.test.tsx create mode 100644 src/__tests__/RNSkia.test.tsx create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-3-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-4-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-renders-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-dispatch-events-to-z-render-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-dispatch-events-to-z-render-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-3-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-1-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-2-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-4-snap.png create mode 100644 src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-renders-correctly-1-snap.png create mode 100644 src/__tests__/web.test.tsx diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 2f92dac1e..f0c7b20d7 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -5,9 +5,9 @@ runs: using: composite steps: - name: Setup Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: - node-version: 16.x + node-version: lts/* - name: Cache dependencies id: yarn-cache @@ -15,13 +15,13 @@ runs: with: path: | **/node_modules - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + key: ${{ runner.os }}-yarn-v1-${{ hashFiles('**/yarn.lock') }} restore-keys: | - ${{ runner.os }}-yarn- + ${{ runner.os }}-yarn-v1- - name: Install dependencies if: steps.yarn-cache.outputs.cache-hit != 'true' run: | yarn install --cwd example --frozen-lockfile - yarn install --frozen-lockfile + yarn install --frozen-lockfile --ignore-engines shell: bash diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 82df70b16..435f0e87f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -4,7 +4,7 @@ on: jobs: lint: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v3 @@ -19,7 +19,7 @@ jobs: run: yarn typescript test: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v3 @@ -31,7 +31,7 @@ jobs: run: yarn test --maxWorkers=2 --coverage build: - runs-on: ubuntu-latest + runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1ac9a4fb2..7357e8a76 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -13,14 +13,15 @@ env: jobs: publish: name: publish - runs-on: ubuntu-latest + runs-on: macos-latest strategy: fail-fast: false - matrix: - node-version: [16.x] steps: - uses: actions/checkout@v2 + - uses: actions/setup-node@v4 + with: + node-version: lts/* - name : GITHUB CONTEXT env: GITHUB_CONTEXT: ${{ toJson(github) }} @@ -31,11 +32,6 @@ jobs: echo "commitmsg=${COMMIT_MESSAGE}" >> $GITHUB_ENV - name: Show commit message run : echo "$commitmsg" - - name: Setup Node ${{ matrix.node_version }} - uses: actions/setup-node@v1 - with: - node-version: 16 - registry-url: 'https://registry.npmjs.org' - name: npm install, build run: | yarn diff --git a/.gitignore b/.gitignore index 19d0fb364..e659139fc 100644 --- a/.gitignore +++ b/.gitignore @@ -77,3 +77,6 @@ lib/ # Docusaurus (when switching from docs branches to code branches) .docusaurus/ + +# jest +coverage/ \ No newline at end of file diff --git a/example/package.json b/example/package.json index 13352a389..b01f04546 100644 --- a/example/package.json +++ b/example/package.json @@ -12,10 +12,10 @@ "@expo/webpack-config": "~19.0.1", "@shopify/react-native-skia": "0.1.221", "echarts": "^5.5.0", - "expo": "^50.0.0", + "expo": "~50.0.7", "react": "18.2.0", "react-dom": "18.2.0", - "react-native": "0.73.2", + "react-native": "0.73.4", "react-native-gesture-handler": "~2.14.0", "react-native-svg": "14.1.0", "react-native-web": "~0.19.6", diff --git a/example/yarn.lock b/example/yarn.lock index 02edb3619..42bc6532a 100644 --- a/example/yarn.lock +++ b/example/yarn.lock @@ -1271,10 +1271,10 @@ mv "~2" safe-json-stringify "~1" -"@expo/cli@0.17.3": - version "0.17.3" - resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.3.tgz#0763696671522062e5592411d02952ed905d4838" - integrity sha512-lIK8igsEQxTh4WuDlcEhE0wAJcDrAyjWDF00phdmwuSCpE5SaEXNlddOXvGxEVKPhUxHZUFo9NbfoQC+JVmkfA== +"@expo/cli@0.17.5": + version "0.17.5" + resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.17.5.tgz#b409d0ea330b3c1283b9d239bb747de9284d119e" + integrity sha512-9cMquL/5bBfV73CbZcWipk3KZSo8mBqdgvkoWCtEtnnlm/879ayxzMWjVIgT5yV4w+X7+N6KkBSUIIj4t9Xqew== dependencies: "@babel/runtime" "^7.20.0" "@expo/code-signing-certificates" "0.0.5" @@ -1342,6 +1342,7 @@ send "^0.18.0" slugify "^1.3.4" source-map-support "~0.5.21" + stacktrace-parser "^0.1.10" structured-headers "^0.4.1" tar "^6.0.5" temp-dir "^2.0.0" @@ -1499,7 +1500,33 @@ json5 "^2.2.2" write-file-atomic "^2.3.0" -"@expo/metro-config@0.17.3", "@expo/metro-config@~0.17.0": +"@expo/metro-config@0.17.4": + version "0.17.4" + resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.4.tgz#3896d65f779963a8ce7069a4bae4546b6541219c" + integrity sha512-PxqDMuVjXQeboa6Aj8kNj4iTxIpwpfoYlF803qOjf1LE1ePlREnWNwqy65ESCBnCmekYIO5hhm1Nksa+xCvuyg== + dependencies: + "@babel/core" "^7.20.0" + "@babel/generator" "^7.20.5" + "@babel/parser" "^7.20.0" + "@babel/types" "^7.20.0" + "@expo/config" "~8.5.0" + "@expo/env" "~0.2.0" + "@expo/json-file" "~8.3.0" + "@expo/spawn-async" "^1.7.2" + babel-preset-fbjs "^3.4.0" + chalk "^4.1.0" + debug "^4.3.2" + find-yarn-workspace-root "~2.0.0" + fs-extra "^9.1.0" + getenv "^1.0.0" + glob "^7.2.3" + jsc-safe-url "^0.2.4" + lightningcss "~1.19.0" + postcss "~8.4.32" + resolve-from "^5.0.0" + sucrase "3.34.0" + +"@expo/metro-config@~0.17.0": version "0.17.3" resolved "https://registry.yarnpkg.com/@expo/metro-config/-/metro-config-0.17.3.tgz#f06f0929e4ac907517d24794d35021901651da49" integrity sha512-YW8ixbaz6yL7/Mg1rJJejiAAVQQKjGY1wXvT2Dh487r/r9/j1yE1YRS/oRY1yItYzbnHvO0p0jMnEGfiFYL3Tg== @@ -1820,43 +1847,43 @@ mkdirp "^1.0.4" rimraf "^3.0.2" -"@react-native-community/cli-clean@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" - integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg== +"@react-native-community/cli-clean@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz#d4f1730c3d22d816b4d513d330d5f3896a3f5921" + integrity sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" -"@react-native-community/cli-config@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e" - integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ== +"@react-native-community/cli-config@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.2.tgz#1a5de302de4d597ff2fc9932a032134b6ec4325f" + integrity sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e" - integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ== +"@react-native-community/cli-debugger-ui@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz#b2743876b03e560fbf5ef516e95387fcb6d91630" + integrity sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af" - integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA== +"@react-native-community/cli-doctor@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz#9e82b49f04ee03872b2975f26c8799cecac021ce" + integrity sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg== dependencies: - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-config" "12.3.2" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-platform-ios" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -1871,53 +1898,53 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed" - integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg== +"@react-native-community/cli-hermes@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz#5f266985fe32a37e9020e881460e9017870be2e5" + integrity sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA== dependencies: - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6" - integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw== +"@react-native-community/cli-platform-android@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz#de54d89712f8ea95046d798ec274fd6caea70c34" + integrity sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.2.4" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5" - integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg== +"@react-native-community/cli-platform-ios@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz#07e298f69761424da85909790a43ec60ebfe6097" + integrity sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834" - integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA== +"@react-native-community/cli-plugin-metro@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz#7db7dc8939b821b9aeebdd5ee3293f3a0201a2ea" + integrity sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g== -"@react-native-community/cli-server-api@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3" - integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw== +"@react-native-community/cli-server-api@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz#11df4e20ed72d59cf22adf77bd30aff3d6e70dc9" + integrity sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q== dependencies: - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-debugger-ui" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -1926,10 +1953,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6" - integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q== +"@react-native-community/cli-tools@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz#d3362b04fba3f73ec82c5a493696b575acfb420c" + integrity sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -1942,27 +1969,27 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f" - integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw== +"@react-native-community/cli-types@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.2.tgz#0551c553c87701faae580097d7786dfff8ec2ef4" + integrity sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog== dependencies: joi "^17.2.1" -"@react-native-community/cli@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1" - integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg== - dependencies: - "@react-native-community/cli-clean" "12.3.0" - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-doctor" "12.3.0" - "@react-native-community/cli-hermes" "12.3.0" - "@react-native-community/cli-plugin-metro" "12.3.0" - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native-community/cli-types" "12.3.0" +"@react-native-community/cli@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.2.tgz#002ae3683b9fe6b0a83a837f41d9db541ea7667f" + integrity sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ== + dependencies: + "@react-native-community/cli-clean" "12.3.2" + "@react-native-community/cli-config" "12.3.2" + "@react-native-community/cli-debugger-ui" "12.3.2" + "@react-native-community/cli-doctor" "12.3.2" + "@react-native-community/cli-hermes" "12.3.2" + "@react-native-community/cli-plugin-metro" "12.3.2" + "@react-native-community/cli-server-api" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-types" "12.3.2" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -1978,13 +2005,6 @@ resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.73.1.tgz#e2a6b73b16c183a270f338dc69c36039b3946e85" integrity sha512-2FgAbU7uKM5SbbW9QptPPZx8N9Ke2L7bsHb+EhAanZjFZunA9PaYtyjUQ1s7HD+zDVqOQIvjkpXSv7Kejd2tqg== -"@react-native/babel-plugin-codegen@0.73.2": - version "0.73.2" - resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.2.tgz#447656cde437b71dc3ef0af3f8a5b215653d5d07" - integrity sha512-PadyFZWVaWXIBP7Q5dgEL7eAd7tnsgsLjoHJB1hIRZZuVUg1Zqe3nULwC7RFAqOtr5Qx7KXChkFFcKQ3WnZzGw== - dependencies: - "@react-native/codegen" "0.73.2" - "@react-native/babel-plugin-codegen@0.73.3": version "0.73.3" resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.3.tgz#6bf135322b89264342c80778ee6bb697f968f773" @@ -1992,10 +2012,17 @@ dependencies: "@react-native/codegen" "0.73.2" -"@react-native/babel-preset@0.73.19": - version "0.73.19" - resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691" - integrity sha512-ujon01uMOREZecIltQxPDmJ6xlVqAUFGI/JCSpeVYdxyXBoBH5dBb0ihj7h6LKH1q1jsnO9z4MxfddtypKkIbg== +"@react-native/babel-plugin-codegen@0.73.4": + version "0.73.4" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz#8a2037d5585b41877611498ae66adbf1dddfec1b" + integrity sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ== + dependencies: + "@react-native/codegen" "0.73.3" + +"@react-native/babel-preset@0.73.21": + version "0.73.21" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.21.tgz#174c16493fa4e311b2f5f0c58d4f3c6a5a68bbea" + integrity sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA== dependencies: "@babel/core" "^7.20.0" "@babel/plugin-proposal-async-generator-functions" "^7.0.0" @@ -2036,7 +2063,7 @@ "@babel/plugin-transform-typescript" "^7.5.0" "@babel/plugin-transform-unicode-regex" "^7.0.0" "@babel/template" "^7.0.0" - "@react-native/babel-plugin-codegen" "0.73.2" + "@react-native/babel-plugin-codegen" "0.73.4" babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" @@ -2101,15 +2128,28 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.12": - version "0.73.12" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c" - integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw== +"@react-native/codegen@0.73.3": + version "0.73.3" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.3.tgz#cc984a8b17334d986cc600254a0d4b7fa7d68a94" + integrity sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg== + dependencies: + "@babel/parser" "^7.20.0" + flow-parser "^0.206.0" + glob "^7.1.1" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + +"@react-native/community-cli-plugin@0.73.16": + version "0.73.16" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz#29dca91aa3e24c8cd534dbf3db5766509da92ea3" + integrity sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ== dependencies: - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-server-api" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" "@react-native/dev-middleware" "0.73.7" - "@react-native/metro-babel-transformer" "0.73.13" + "@react-native/metro-babel-transformer" "0.73.15" chalk "^4.0.0" execa "^5.1.1" metro "^0.80.3" @@ -2149,13 +2189,13 @@ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== -"@react-native/metro-babel-transformer@0.73.13": - version "0.73.13" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7" - integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg== +"@react-native/metro-babel-transformer@0.73.15": + version "0.73.15" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz#c516584dde62d65a46668074084359c03e6a50f1" + integrity sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.73.19" + "@react-native/babel-preset" "0.73.21" hermes-parser "0.15.0" nullthrows "^1.1.1" @@ -4043,9 +4083,9 @@ dotenv@~16.0.3: integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== echarts@^5.5.0: - version "5.5.0-rc.1" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.5.0-rc.1.tgz#31ee2c4e09da24fe8149bb011c1fbd271a2bf10f" - integrity sha512-Fnfls+zDAg9HLuWK27JakdjLjpkEZsKTk+eeSA6eOqphBNA9iXCI1CvQJZ5xD8WJY40bqdh4zCaE4AxSDjJslw== + version "5.5.0" + resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.5.0.tgz#c13945a7f3acdd67c134d8a9ac67e917830113ac" + integrity sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw== dependencies: tslib "2.3.0" zrender "5.5.0" @@ -4274,15 +4314,20 @@ expo-constants@~15.4.0: dependencies: "@expo/config" "~8.5.0" -expo-file-system@~16.0.0, expo-file-system@~16.0.5: +expo-file-system@~16.0.0: version "16.0.5" resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.5.tgz#7ade3b1295d47a38a2236c5b121069d1bf27a526" integrity sha512-JpKMbKfwTaMCbwUwq7MwcSbPR7r+IqZEL3RFam3ClPHDtKLnlEoywREeaDsWjSZb7dS25hG3WqXspfTuugCDvg== -expo-font@~11.10.2: - version "11.10.2" - resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.2.tgz#233195c4fa0321763bd89bd7919bf7271a439c3f" - integrity sha512-AE0Q0LiWiVosQ/jlKUPoWoob7p3GwYM2xmLoUkuopO9RYh9NL1hZKHiMKcWBZyDG8Gww1GtBQwh7ZREST8+jjQ== +expo-file-system@~16.0.6: + version "16.0.6" + resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-16.0.6.tgz#07a140a7bcb44b42bd3f0b465e7583cc7f7d7078" + integrity sha512-ATCHL7nEg2WwKeamW/SDTR9jBEqM5wncFq594ftKS5QFmhKIrX48d9jyPFGnNq+6h8AGPg4QKh2KCA4OY49L4g== + +expo-font@~11.10.3: + version "11.10.3" + resolved "https://registry.yarnpkg.com/expo-font/-/expo-font-11.10.3.tgz#a3115ebda8e09bd7cb8052619a4bbe606f0c17f4" + integrity sha512-q1Td2zUvmLbCA9GV4OG4nLPw5gJuNY1VrPycsnemN1m8XWTzzs8nyECQQqrcBhgulCgcKZZJJ6U0kC2iuSoQHQ== dependencies: fontfaceobserver "^2.1.0" @@ -4291,10 +4336,10 @@ expo-keep-awake@~12.8.2: resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-12.8.2.tgz#6cfdf8ad02b5fa130f99d4a1eb98e459d5b4332e" integrity sha512-uiQdGbSX24Pt8nGbnmBtrKq6xL/Tm3+DuDRGBk/3ZE/HlizzNosGRIufIMJ/4B4FRw4dw8KU81h2RLuTjbay6g== -expo-modules-autolinking@1.10.2: - version "1.10.2" - resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.2.tgz#a413235941c2f7167f5e5d5b66807f7417a5a8ea" - integrity sha512-OEeoz0+zGx5EJwGtDm9pSywCr+gUCaisZV0mNkK7V3fuRl+EVPBSsI+957JwAc4ZxVps95jy28eLcRRtQ33yVg== +expo-modules-autolinking@1.10.3: + version "1.10.3" + resolved "https://registry.yarnpkg.com/expo-modules-autolinking/-/expo-modules-autolinking-1.10.3.tgz#19f349884a90f3f27ec9d64e8f2fa6be609558c5" + integrity sha512-pn4n2Dl4iRh/zUeiChjRIe1C7EqOw1qhccr85viQV7W6l5vgRpY0osE51ij5LKg/kJmGRcJfs12+PwbdTplbKw== dependencies: "@expo/config" "~8.5.0" chalk "^4.1.0" @@ -4303,10 +4348,10 @@ expo-modules-autolinking@1.10.2: find-up "^5.0.0" fs-extra "^9.1.0" -expo-modules-core@1.11.8: - version "1.11.8" - resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.8.tgz#b0bdb31e70e1e570b70a9613f4b6392306c99a80" - integrity sha512-rlctE3nCNLCGv3LosGQNaTuwGrr2SyQA+hOgci/0l+VRc0gFNtvl0gskph9C0tnN1jzBeb8rRZQYVj5ih1yxcA== +expo-modules-core@1.11.9: + version "1.11.9" + resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.11.9.tgz#4b95070390fe7e3418aa84580244bcf0540357ca" + integrity sha512-GTUb81vcPaF+5MtlBI1u9IjrZbGdF1ZUwz3u8Gc+rOLBblkZ7pYsj2mU/tu+k0khTckI9vcH4ZBksXWvE1ncjQ== dependencies: invariant "^2.2.4" @@ -4320,24 +4365,24 @@ expo-pwa@0.0.127: commander "2.20.0" update-check "1.5.3" -expo@^50.0.0: - version "50.0.4" - resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.4.tgz#3ec5349a58b8b3264bc2f218d85b673beb352a99" - integrity sha512-8QWBvYZyKFd7pHxbtri8/ZITBR19QbrW2IkezAhs3ZOHR2kluSgNfyo9ojAe7GnOnE8hCB6Xe83Dbm0R3Ealhw== +expo@~50.0.7: + version "50.0.7" + resolved "https://registry.yarnpkg.com/expo/-/expo-50.0.7.tgz#d32e6f05e03e7b97d53571f5b3a453a1c4d72fde" + integrity sha512-lTqIrKOUTKHLdTuAaJzZihi1v7F8Ix1dOXVWMpToDy9zPC/s+fet0fbyXdFUxYsCUyuEDIB9tvejrTYZk8Hm0Q== dependencies: "@babel/runtime" "^7.20.0" - "@expo/cli" "0.17.3" + "@expo/cli" "0.17.5" "@expo/config" "8.5.4" "@expo/config-plugins" "7.8.4" - "@expo/metro-config" "0.17.3" + "@expo/metro-config" "0.17.4" "@expo/vector-icons" "^14.0.0" babel-preset-expo "~10.0.1" expo-asset "~9.0.2" - expo-file-system "~16.0.5" - expo-font "~11.10.2" + expo-file-system "~16.0.6" + expo-font "~11.10.3" expo-keep-awake "~12.8.2" - expo-modules-autolinking "1.10.2" - expo-modules-core "1.11.8" + expo-modules-autolinking "1.10.3" + expo-modules-core "1.11.9" fbemitter "^3.0.0" whatwg-url-without-unicode "8.0.0-3" @@ -7201,18 +7246,18 @@ react-native-web@~0.19.6: postcss-value-parser "^4.2.0" styleq "^0.1.3" -react-native@0.73.2: - version "0.73.2" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608" - integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw== +react-native@0.73.4: + version "0.73.4" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.4.tgz#81e07d4e7b6308c4649d5fa24038c0e87b17f2e1" + integrity sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" + "@react-native-community/cli" "12.3.2" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-platform-ios" "12.3.2" "@react-native/assets-registry" "0.73.1" - "@react-native/codegen" "0.73.2" - "@react-native/community-cli-plugin" "0.73.12" + "@react-native/codegen" "0.73.3" + "@react-native/community-cli-plugin" "0.73.16" "@react-native/gradle-plugin" "0.73.4" "@react-native/js-polyfills" "0.73.1" "@react-native/normalize-colors" "0.73.2" @@ -7221,6 +7266,7 @@ react-native@0.73.2: anser "^1.4.9" ansi-regex "^5.0.0" base64-js "^1.5.1" + chalk "^4.0.0" deprecated-react-native-prop-types "^5.0.0" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" diff --git a/jest.config.js b/jest.config.js index 3572e96ef..9de630da4 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,8 +1,8 @@ module.exports = { - preset: "react-native", + preset: 'react-native', modulePathIgnorePatterns: [ - "/example/node_modules", - "/lib/" + '/example/node_modules', + '/lib/', ], transformIgnorePatterns: [ 'node_modules/(?!(react-native|react-native.*|@react-native.*|@?react-navigation.*|@shopify/react-native-skia|zrender|echarts)/)', @@ -10,7 +10,7 @@ module.exports = { setupFiles: [ '@shopify/react-native-skia/jestSetup.js', 'react-native-gesture-handler/jestSetup.js', - './jestSetup.js' + './jestSetup.js', ], - testTimeout: 30000, -}; \ No newline at end of file + testTimeout: 10000, +}; diff --git a/jestSetup.js b/jestSetup.js index 63877215b..bb618a032 100644 --- a/jestSetup.js +++ b/jestSetup.js @@ -1,6 +1,7 @@ -const { Skia } = require("@shopify/react-native-skia"); +const { Skia } = require('@shopify/react-native-skia'); Skia.SVG.MakeFromString = (svg) => svg; +// eslint-disable-next-line no-undef globalThis.navigator = { - product: "ReactNative", - userAgent: "Node.js", + product: 'ReactNative', + userAgent: 'Node.js', }; diff --git a/package.json b/package.json index b3de0885f..0e16d1fe9 100644 --- a/package.json +++ b/package.json @@ -62,6 +62,7 @@ "@testing-library/react-native": "^12.4.3", "@types/jest": "^29.5.11", "@types/react": "~18.2.14", + "@types/react-test-renderer": "^18.0.7", "commitlint": "^17.0.2", "del-cli": "^5.0.0", "echarts": "^5.5.0", @@ -69,15 +70,17 @@ "eslint-config-prettier": "^8.5.0", "eslint-plugin-prettier": "^4.0.0", "jest": "^29.7.0", + "jest-image-snapshot": "^6.4.0", "pod-install": "^0.1.0", "prettier": "^2.0.5", "react": "18.2.0", - "react-native": "0.73.2", + "react-native": "0.73.4", "react-native-builder-bob": "^0.20.0", "react-native-gesture-handler": "~2.14.0", "react-native-svg": "14.1.0", "react-test-renderer": "^18.2.0", "release-it": "^15.0.0", + "sharp": "^0.33.2", "typescript": "^5.0.4", "zrender": "^5.5.0" }, @@ -136,7 +139,8 @@ }, "eslintIgnore": [ "node_modules/", - "lib/" + "lib/", + "coverage/" ], "prettier": { "quoteProps": "consistent", diff --git a/src/SVGRenderer.ts b/src/SVGRenderer.ts index 74b2a5d71..6863fa060 100644 --- a/src/SVGRenderer.ts +++ b/src/SVGRenderer.ts @@ -5,7 +5,6 @@ import { updateAttrs } from 'zrender/lib/svg/patch'; import type Storage from 'zrender/lib/Storage'; import { DOMParser } from '@xmldom/xmldom'; -const isRn = globalThis.navigator?.product === 'ReactNative'; env.svgSupported = true; interface SVGPainterOption { @@ -29,50 +28,42 @@ class CustomSVGPainter extends SVGPainter { opts: SVGPainterOption, id: number ) { - if (isRn) { - // Prioritize taking the width and height set in the configuration; - // if not available, then take the width and height set in the styles. - const { width, height } = root.getChartSize(); - opts.width = opts.width || width; - opts.height = opts.height || height; - // @ts-ignore - super(null, storage, opts); - // @ts-ignore - this._svgDom = this._oldVNode.elm = root.elm; - // @ts-ignore - this._svgDom.setZrenderId?.(id); - // @ts-ignore - updateAttrs(null, this._oldVNode); - this.root = root; - } else { - super(root, storage, opts); - } + // Prioritize taking the width and height set in the configuration; + // if not available, then take the width and height set in the styles. + const { width, height } = root.getChartSize(); + opts.width = opts.width || width; + opts.height = opts.height || height; + // @ts-ignore + super(null, storage, opts); + // @ts-ignore + this._svgDom = this._oldVNode.elm = root.elm; + // @ts-ignore + this._svgDom.setZrenderId?.(id); + // @ts-ignore + updateAttrs(null, this._oldVNode); + this.root = root; } refresh() { - if (isRn) { - const vnode = this.renderToVNode({ - willUpdate: true, - }); - // Disable user selection. - vnode.attrs.style = 'position:absolute;left:0;top:0;user-select:none'; + const vnode = this.renderToVNode({ + willUpdate: true, + }); + // Disable user selection. + vnode.attrs.style = 'position:absolute;left:0;top:0;user-select:none'; + // @ts-ignore + if (this._svgDom.patch) { // @ts-ignore - if (this._svgDom.patch) { - // @ts-ignore - this._svgDom.patch(this._oldVNode, vnode); - // @ts-ignore - } else if (this._svgDom.patchString) { - // @ts-ignore - this._svgDom.patchString(this._oldVNode, vNodeToString(vnode)); - } + this._svgDom.patch(this._oldVNode, vnode); // @ts-ignore - this._oldVNode = vnode; - } else { - super.refresh(); + } else if (this._svgDom.patchString) { + // @ts-ignore + this._svgDom.patchString(this._oldVNode, vNodeToString(vnode)); } + // @ts-ignore + this._oldVNode = vnode; } - toDataURL(base64?: boolean):string { + toDataURL(base64?: boolean): string { // @ts-ignore - if (isRn && this._svgDom.makeImageSnapshot) { + if (this._svgDom.makeImageSnapshot) { // @ts-ignore return this._svgDom.makeImageSnapshot() || super.toDataURL(base64); } else { diff --git a/src/SVGRenderer.web.ts b/src/SVGRenderer.web.ts index fc0600a66..83f369d82 100644 --- a/src/SVGRenderer.web.ts +++ b/src/SVGRenderer.web.ts @@ -1,4 +1,4 @@ -import SVGPainter from 'zrender/lib/svg/Painter.js'; +import SVGPainter from 'zrender/lib/svg/Painter'; export function SVGRenderer(registers: any) { registers.registerPainter('svg', SVGPainter); } diff --git a/src/__tests__/RNSVG.test.tsx b/src/__tests__/RNSVG.test.tsx new file mode 100644 index 000000000..0d73e22f7 --- /dev/null +++ b/src/__tests__/RNSVG.test.tsx @@ -0,0 +1,2 @@ +// tests for RNSVG render +test.todo('should correctly rendered by react native svg'); diff --git a/src/__tests__/RNSkia.test.tsx b/src/__tests__/RNSkia.test.tsx new file mode 100644 index 000000000..2ee6d3047 --- /dev/null +++ b/src/__tests__/RNSkia.test.tsx @@ -0,0 +1,2 @@ +// tests for RNSkia render +test.todo('should correctly rendered by react native skia'); diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-1-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..2f2cc6085a86b5d3fd78f635974d93efe89714e4 GIT binary patch literal 4604 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 BPx$}< literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-2-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-dispatch-events-to-z-render-correctly-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..b3fe01f47327d29f39568045e348cbc2f3363434 GIT binary patch literal 4518 zcmds52~bnl8V+I!B_(VE8XySxKp}u)kVO(!MP3YOr4q^(;sRA8U;u$YqAVg(M5F}D z5)lkq&=9RGhD}y02mw+SL8Ku<3>JBTumnhW5q&e@yy=^H^WJo(cjn%EX3lcY`Oo)# z|95W65qDQb1&9Iw08n&0V>_zqF@%o-v)dsefmCJ!6l;o}`_g=sReL8E7*oShHc&bBlfJ+z;X293 zQZgp2l>~>MW`rMO^epF<*x+NRlYZIP?hHF&>SLO9;Q%b*%<%k{p2f66K}sQiA)zfK zg_iy%S`SuGWlQI$7V%ARf*+NK_RiS#RXf9Uz#7v^8cLhf7Jem}0WP7p!vzDaW3zgR zy6s$jeo%bdYW}T|s+2ZjLJ8}>=~+RUWAR)}ohgn_!*aD|gayr7JY zrcfp(CfvK&32g(-V{dsz9peb&p2ZuJZ-)x`PxuWP3oUXGS{oM#IHzCM^GHa;3d$#v zJ2Vfo)X>YbeTkWZ!Z4d#vuARn!n%d08%9TMD}K*pC#%Z1 zh1hz8HrPWcmkJGDa)7d`4)hk3b-2BvDw#}xZ2NgfHvvMw53V&2_&#jxhI#K1JWCao z4ovk(p=BRn2hFM{9n*}^Zs*m`=(Wa5QnM5Qpap9NVqp)~UJ zZzitCw_~E1@zDHcjK(cPD}X?J8!#%X+?mBiH}eLkyhzI?c-z)C4Afy_zR#;ushF5ugNs+}9uchVykPZu z7Pe$(UF&X@PhI%w2ZP=Zsk1cD6>{1cAccSZbTI036=tg4e@W?yME-z1DnpvB4ROw(tcUf%XG z$PosVgE+GeBgWBIeC#b*;rc-L#n+kkSAQ^mS_yT4c)+smqnX3J!ZPKSsk zi;D?TKG>XgWaqJGUD%nK1b+Z&_s3>IV09#wML?USv54Q`1n=#jaD?g2_r8AaW04P| zPLk?Jjte-ldsEl8a?iODp%pvy8<=V1Uh|rl+=8Eo+jN^<%P!*a~wc!W$^6 z7`Zo92Lxy(A?V;_LP!X3)kx;8_WvDN{~6wmmshxWk*4D|W);|Wp*eOfdYanXedlDI zs}(*jHuO?xpVC(xW0y5TbQ<gD?9T|Xj^;(d`es)`QSf(}qgWhHh~Gk8C>>EQUGj3_cA zYI|_)T^@*2s=Kx6n~y}zH7(+IIC2+SdfUURUAT3Q>>xvK2?@kgFd?-*0bsE)Hhc1NKY!h469NK8!NQhj4@{pITy7gjceX+++u zdyzT0$TQ^1>Wr$u;?NP{_-^5=4|s2or#P{cn!d5$omi&4M&rH=gxMbotj>nP3v4|9 zSYo?aRl_kG7k@qxRe?ak5KtI0i5-nw zDYw(8Y$dr4%>rxl>7*ai%3oYI`H1UBD$Q}XUL9NR%#!Nrn%M3iy2t63Am&D~+xk!G zycvirt}KS0h7x^8(u@Kgp-!GQdQ7aTs>6vtMb_H$?FS_VuMf1DwL|qJ@Jgt<{+bT| z23WuQ@v`f2^jGP~yp12ul+!5BgSzw%8_jBJaQ~*yuT-X#zZW^Lj|I~)B0R8LsPj;` zIJBL=WM__Hy8X+CT%~ykKifM7GnpnJgzPzs>Rv256B_`1X`@Xw(HPCqH4EsTO<2$2 zhy={5T@)k~HnJ1Vj1CJE;G>z7y)_9XR?A{Zf5jYwxNt9~=iL>gJhw47lJ^onRi-L4TC`u({8ushle?A1?zQ;GVz<@}x;a?{UzZ=+feakMb_H zMl`po`Oo5+QLYX5VcI1MPZ)K568TpZCRD$r1#ta^lcx->EF+)XozF9AwtbMWGIaje z$j3*UZ;OeO4UHD}J8XX`pE`(lMZB<^uV!koR)!)Kh`u^t-s|`Ha?A#G{Hvh)zh>^f z3S%qamaL*)7mP*l!r7N)hI71W|JLP)iF?Mxj2hO)~T|(71JrY6#KY z8vFxQcfBN)Nlz1`?BJF2(o8}}vlm<5 z?q4k+tKnL46h+JYRKHNM(U z@*m9SsG_)hr9emS%t_*lQF3lo-%1S$Con(2&J>NN^vA3KBxItml^iPla95Cy;t}61 zXd#cGM|BO;$rStJN4 z5Fb{(q`SjcKTH`Ow=@{ol&z_mO}?ONmLV(?vH3!Ae5-xCW~BBA_ZrZU4eWdyG#hxZ zA8D5)&Cw=ORg^?CgrZ_+J7qZO2QP)3p3qM6VzWI-NYvvJ4{)unckPGJV>t&Ii|OnI z5M_Qmll!b`?$?vH9H*(!FH*_Xl?7*(>a^*7goif1BHqoJCqos1;mGo>yNfxtG5f`6 z$rf8t=g)4{xh3MGJwjcPs>lxE>JHQK$9$iyY!;>9#dxd?L)0=0x~hibOUT~)J@0)- zuGbHns)wv1G0YS%<(%4Umkp%Jd^(GwN^xC*$J6&Ps!%I1!lh35E5EsDpJO>;dcwH ti=}?v(uWy);kL@3_yb|%ryW8n#Y(~xU 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 X<`rqU4)Kkm-y9)k*4Hqmca#4IDVExY literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..785f78568efa1351b9f264d92ea0a26574dc913d GIT binary patch literal 4598 zcmds5`8(9#7k?X(C26rHq-Hd-mn9$BqZyhc*^MP6%@`R>F}A7jp+b}GLkf*V*2y-* zAQcUTWUPaH$kJd!&0s9w=^yz1`hA}7d7isG_ndp5bI$ABbI)^=FJHPKA$CLz000R% z?EDn~5UAwOH${Z`{YL(aUj86@3+5IE0OE)LGyx#@sT=?td<8#marMsArSX_sij2t4 z6+a#A*?i*9Lv23L2nFK=pDR#(m1Zf>+xWvrJc*aR9xj37SH#JFbfS)du9{X(qYvTU zP0{ftyfbm~+6Uav?tK~i`$~~Vy3EJTi>I+!-JBVV2jT8JY*ZxdoS7^}Dy}+@1 zU7}n%lf}X_NE&%1ny+qZsCUqvL|KEI+weysKbYrDgwX@ z>6TYZNTS5D2|SzjyvmcZ>hkp^!sATj>dfSUMgV9US^ttEt^TYAV2qBsYcJq^qZcxQ z$LdXd-j-9TQAj)JC4HLZOCm^&HiUIeq5>x-#nisD>eS zXuDSXP=rz%CZbrf$a`s|F&Qn-;nCtI%nf@2>PwNeCZBetI*OKwdba((G*QpjE>&LF z2m@VP8*6b07Zu=J*fd;GQIT;bu!pIG=PXVpW_>NtdhQ)WKPYqVS=`RXN${gZwObLw z4Jj!pkJ8L`?y$tQn}4P)EiE|_F=x|j)Znu4BZ^%lDwUekCIk#4`lrU~gY!^teJ7eD zgR?A#>!LLDCpvN$*Xrx*OCZQ$+9nuzJZMuPq`9V`rNwmUpKrc?*Ey3O4VY~_+)UJB z;qUE=SQZ(4O90@&K2o9vOpRdu;A9mJFLC?+1p&X#cIe|f z9?C0dG{SQGm)2hYHFssCF_ToaY_FIoGi*eRZ4R63G0HOtjv|xESjPM0!yZ{$$lMcr zQ=$<4F_Nb1K6w!=HxGP z#P89wso9C2-l=n^8*ha2-2o0lTUl8>5z79}8q!|gcgi45{o=*gp8kHw_?Y9i+h`N1 z%8ojHPtx?xN21Z}=e&l|*vU`-oH5jLuYI*qob9z4fXDMRP(kp`t{u<4AX%W`0&_-fA)5?;FH?;kZ%<84<)IgED(~Wm z5X}9R8fEwqUpt%MbyUq;!4u6Jy5g@2zjyrj3B;Q?2Pi8!H?0>wib*KW z9`07i?I!AJM8^e=*M;zMO87VQ$x$^LAYG7xmXWq3M_H*CP z!>KHc@g?^59pmL&TZW?>U^q4*-jSdL|U0w*pXCL-<%|`Uj zuLJQd&%pE#GSRCWTM`qz(9olk2Rm2nm!_1g9S~gv)vq7$-imk0jG-k5sYh!Q-pW7L zuCccxoqPHDp~Q`bXY-o%#es~3M+%1fy{O>}qP?cPMR~sL!=m})>}_ukb!aU(_Fq~R zjAvm#BE7hn&{o-**8aOjhGh*WKCEU1R(Rmw!g$X>@uoGpM_A9ux=QSAD1JCX)b>e` zd}hGqrw6IJA<0EI9!7Y~Vkrj;yR$I1z(Po4BYK29t)VlLV@m|PxHaT+cRC%UwlxGL zzgT9w`F=v#%AtN}aPKEY*nh7-@G4|%toMCrbV$Rbp?-94`M#%N77w_wFUOS)v}E0f zUbM^2)ZomF0BF3$;LWbNwLp(+R(u3HL$?}KEDBCdOMay1zkQc#1Shg**EU$~u04d?kMgY&a-#iIY+6G+X07 zf27F$3w5=%PjAR4ImhwC>Mk^;CFu8&%56=RVKep^9d zfM?ZUb_Z|Qus4&t^YU!!$>J|jVv^@sxTZ6taF3|X;w=4PCNnzq^CR+J4at)5kq2!= zh+QfMjXno?-n$EzvYs1@5F0{yHpV)Bm3#AR!X=7*(w)`s<*y+!wv7;%nC}c39283~ znrB9v#vx$x+9Qq0LRNgp*$CoHh$XfI%GwbPOM$)7I)O6@UJcK2H97t%Tj8)f{jhB` zdt0NnuQL(NC^R6PTlx#smtdl^7(6`jmsNUWiBw3NgOt;G2R+m0y>UYm?KH0Un;Kb^ zS}36}zmAEHbtQrgF7xe^%jiT z^)ns5dwzad4&~-zjfO|`yp3_zUb5bu6PqvICss(@C3^S z#PcDvQyrSQlcMm$3~O8I2B`&<=7;gq-OiPsk$Yr?w-N6G9c2;|^r5YOcCON;2?k?i z4J*r(I*~L4k4YFH*I9~jU-flSs^mgaRq95v=8cA0(qyE%##eithm|Lc>R!m1Nax3S zOc^JVXQaC*O@4PiRyNVv!bsPXBDMV5-;Wjs2L~q=$Ml#x5Af|&s?VnM$w=4hZGx({ z%+$-%u@uCdPq_w!Xl#Qmfh}v$^R+0`kn7cKZM)XG0rr7cs#2?uw9Cb6j2YRccM7C8Adrfx=w$YcsGKICKz1{%5uRY@iBx+cN9W6Dfhk*dEs_i2?GXg~9DWO+A_CLh;9mOwztRBtbQbrI5OZQ&E~*yqUydfh4liIUpl`rbU&aC@*5O z*Io6ODy7}vN^S7IB53a5Sk0-tbp`7$8};g_&`L4D$NRPKR-o|R%ONR3V_}>#hi|!> zK5wm*JWOEMMYLstzoJ^_WIKLvtu^=Gx){_+P>&ND$iqI>jR0iH`2*2AV za0yf?*0lAk_vQ~E-Ir)w`drojm#bG~z`te}9BS24r!yU-K5yLhaSF22gTPO>b9&)C zcK{IX7#^JKV#md8j>$AyMq-sUUx$f01AUV4<=?gU5Wd|7_G6<;__v^J?oR1}^0MHx zBjV2d3td|d6tohVhPKj|Ct|plX&bZY#OR^C5U(ak>U3TGdWGiD`y6Q?LzMnm%lg>D zyc~(gHuDgdedbJTtMltz@o46rEJ3yc@t`Nn#A|yWzkK;5d?a8lXyBCtMBI}&rbc;3 z@dXOD>NVA(45m7jl}W*4`v;#I1!kPSQ$cV}g7E2GL$k zCM%l1@dV|!yok;Rs4_e?rU58m!YWS*TD+7CK#oR;15gkhnNB$7`0(^21%6eOG2_*1 zUZCc`VMfo-!qGrL%6aUY(+ALEZu6>p;<2if!&ay7b&))?aru1SMQmE&v2T2svzW&) zasV{UKov~c{cQei0Yx!gqV54Q{+_vh{n*c6#pP4i1>yzH|4A~p`Qb%VGqAah8;uYF zpt|%&izUfNZe!m7Z2&{E!8qt*Qx5>BJz<`Z7lH8{cdW4&NJwuWKEutHQs;mAKn}-g z#|qn7f^-4m(ZP7~SwVralGPN%(@RaM05F1%{QQ_%A}`{cA5b@wYTJYX0C`o4E|I76 zJ)WULai=S0;9~gS2?BHpiHdx^yMrjALOxEBzoJ4Phf;R69NIST&71T$=*J z?$)P$e=!Q-+K5~YgWOJ-NhHPW2LM-dXCBuY^G=KH(P{rmoVpL?F?tmmxvJ?HbD&-=c8YOKr3%*PA>09f_)w9EhintE#c zh>4L}9u}63Q>%+F^qvI*0GGJ`%`|{~C@%nT<*mM!hD9ipI3M=@vSm@WU0J zd@NM3tZcPmDfCxr4dJb231Kp+^NuXOWJRVdPRKF%O38zmK!VYiDep}|j8W&&-dj>94 zss4|p`J^PuWk{1&IV`DMdyR#2R%BrHFfNI*yFSzYjt=ntkuZXAOzstIaqN%9RvHyp zS(}^7xojdT#__#xhxBExji;mP>~bboLwCm%i#Z@o29Yd)m^WOI)!x4=DT#p{m~W+; ziD!{BUz|ppanb45Rrc4Vdrx+5a4LP)8boMnMTrXYz-$_v8wI}CK5KFidO-td<$wUS z*6QDKi@_&_WL}am;^?VKS-*uYuhX_c!RS}nYPxYxcD=YE-?dzeoh_;axvuT4=YZ5| zySpJGx>8-l);V|Xb^u@whnf6J?m5n7tQIQ@b*@aphzhGumMU|0oHh&!6x5|h{#{Pw z)>=#2uoM%HRPaGthzq0M4#Bk7bmOgHNi5Z$KL;E|*^;_;;W>#cS7p=t7yvUmT2d_E zU*t0;|4iYr-i%EZO)r%5fJ1rmSx|*jW=oAo6Mc9O2FR6})++ zgvB|Ps=I%~`cwYZ@pTfWDOi5_Xpaym+z8Gb+&^E-G&!qGH_E@SkL|7Zt7Fz)18{ce zB{B!Yy+=NXA99N5+@0*LtF5)S0fEj}u*K18#&OUjC<3Xgu|x}KMz8WI`eL#LP>PGM z*QIgU>ZJbxACq zgM^7yTELcGgekfJv9uPUbu1sYW$oAXXCU*)#>a;k#Mx2a9gNEvW~aWWVB--Vx2R#R z%JT^!m5{BOL+TAZ>epIp{A6B*^n4LcY(W)y<=@gYm+C&*8MWIF@Eq5V(D3O(I;a^< zaa?zv{+*DOm6bvv2hV(IZ4DWqLaufc@8>n>KlvXaum!E|)l_USYpuB#Vt2wWk&$V` zof9iHupWfdk8Zoa5s{>eo#})Ezn)=9+h&{+5qQ{bGb&~beP9>2aIhF%%n6Z@r_(jy z&$9~!(((Wtb%h&`6Il5ZJiWwN?;B*_{e*7!U!}`e(u^?ViwP=?m-6xZbQYx4&S4*EPk?kbx?z~jBtPAOBmLEKGA(Ai1X?tigh%)N!@C}M=xeGj*bd%s`QLj|7q z)G2W6taY5SIaLLQZ4HYRdxxIxp~PTzZNBA6_IHF6FWVCTv)I#$W&Zv{D*Qf;s~vk+ z*PP!6Ep-MHbZ`Spg(pBk;90$X_~|_tX(OKBvv_3R-mFJ)+Ek>YGDs%_2SOUV`FPh?`cM*2GFv|&@`Oeg(WI&fTL+>M0k zh`@FH1oi@A3JJ?l!X{Lux~J#N222!3qUGebA7BxDfLNjSNu`$sfh1`p8lu5r5wgAl zKj;iuYz6fwL zNo@53gW3Jzg=^5`IJUQkCFR{^PX3Cx57%ii_s(bS35n9tFwN|vt5%klM9zafdVuya z^w<*!oR`Mq@y3+?PsPQ8!uNv5`a){h#_>=n{O4~JO0Z(rk42YO?=t6PSmh}+aPSbc zeEtu8za$d9?5|i^_rX+y14HJ~V+n!JyViBXm0o5sT46Eq@Q%Ry6Uta)6r&9`{?)ds zG5;zRUxFmMo$M9p9Ecyc@l&ZSJ=;oPu6GlR1LMJj2wcSGtHPc(bw<_fz@5Vr?Wq0) zxE-)co%Tct*MT9A*U5VR1YK%-;}n|bAfinFDYyh>j6q4qNWm352kpS;+Wg@@_qo3; zY4C5UoIHLb5zK3VeNI&kzWx3E;B&`Ze!8RcUZ`xKJzB)tM4n{G2+=u$H#4bsl-hFa1%RU9B z5`+PTZyIcx-o#XOsifxQ@k{vi4XBDi^x+X`1p-6vs>&0^ftll2>0#_{@6-+1!Yx>R z{elE3ygwuy=Yg1*c%jFeAeP|tSB3S?(d;4N)=u9BY*^*ny{>P5VGn9mC?&6b$CVDs z^7HfQg3h$!;)_MDUh#)*`p(MC4tv+{zfX72}3>j)_4@56`&`D9&e9NAWW(!Co3{%==SMz z$4>Q+U{ly1J4#~4ctT^kzR*~;tjj=Zbn@|on3)K3+SonpsfZ$fxEdKcvc_0x z6cT`T1?lHubUibH1q!pQJ+(e3ZJ3n-ti{3%%C*z-7)=vUF0)f2(`Y8WNIQCAVCc5X z8q<_Eoh20ppa|8U*YP(SMOeZ@(;4EYGK8O*5H`pY*mP-0_yMd;M`P%sW6 zeKc{U$!-yZWhjg4jdG_z#4{uB`2; zIVfBe*-eEk=F3*}((W0oHF2CY*hrkda_FRqTKpwbPSEH;fURLp(UJuDNWTW!JVCBS zuAz@Oh!WP|0+@~aNEEksDlUl&y0^AV11t~8yk<9Z~m)n2DYU7zXZ(kep`-%UNLuJH!a4G~Q%w}Vh z0)Gqi;d-D%oI0jRAe@trPfnrmH1L*y9v3iaIcJj~2@Fd511mf&dInBBLg9fp{Igz; zibI0Kv(!N2yb-XO=z--Anwm|H6?9LftUnRVIZPTD3cST)Gd3!hHpsD2>) zabcFZzewVl5%obd;KUn0JSe<|DB%b`kxMQtwsxatF0N#=!j=Ue6g$vqG)2nLYcfHk{s2YrG$m)|fBYVwH2DVS6F3PzDTv}ze zH3|nA9OoJiqftr24g*8#TpZ1<*;fYi#+h<<&k)igs9!XBaQZuf+s1C1(ogx+BF;bM zJ3L8TRFNsq{nHk%WIgw$GSGz&6SC9xGT7CPT(JS^Mu;Ay|BXYoF1398<{BOnzubS5 z(rk+lyW%EmF~#HAd9@gclP=7oM^f~{`7d41!K&#za;D8&SkO_F;emd8f<>LMn|3oy z#3&T0l&CJACl4(5)BpDlehvC8&V^H6H4n{k&o-Hbj2__qxMgZ5K(1=4V~5wT3SQty zHxzBE8Q(9Rv+&(pTz*VD8wB>@pzk-=;7Ik|R0>zgZ+$0rWff`_vC(B1mT`8G$=D~0 zpq%?r$B$H{C~!BZu$8d2)MJ@v?1(a|H8Dpe7P|X$wXzup>f3Wr~;|r5D=TR>3 zyBa#F&ikDd83*z`&Gf=TPD@Bet4hvk=&!E7ai)oJ)=$}c^_KiC0AWMPo>sRcx_Bycqc5pFc=6Pn=NhVr|=AMqqu& zl7IB5E~icX0+};RNM1YP;8Qk%O+e6co6jku#{6Ik?WsiWYH1ApqXJ>5k32Z-J>Tas zVC`pq#7UW`*om*zVvAi`JSAGT?oA(&GLGA4Xxx?{=_56xR(iz0Ij&E9-*vUVipMN~ z11^7$CyP;%5nnlY)Jv{~&@0GW~SLVS`GIer&WRAO*G^ams zDCxN-(6ibxT86u*dfaz6?C31P=Un|PyK6>_M{AnE7a2+`Ezu#K?ASOeRp3VMRvg)^ zIyYH+J<8i5L$alRdPWflts|~eT@Ui}@V1`Hoyyy>!#J>)>-MmT@A0|!xhG=#WJQnG z8f_uk5ScY>%9zD%a80P_WUs|OeI}8J-U!LLOuaCADKi^*B?4$_fS3? zUh`gWoFCLeml+gzQ_p%f#XyU~w}UwW`341;e5y*9TsB793*5D?eQDim&zR{MIg;XN zNB#t+04D55){wfKhS_7$KBLLRN;l&%M0L15p%b`t$5h|>CoOK{BeVTxMz$+sJvE>- zu*jInVwf1ymbb{2a?-~?bt+Ghdt#xM{PiE25{nc$LlPQPI5g8zl$pygY`#F~e>F#wC_ zVL~J{T@13^aKE3PUP!#wH51b_!Z|QhNl#z;E<0^NkBfYT4q#{REvx%4*`8=ryWDbX zP2! ze$LiLl&HBBvBuEg(IYRvJg%2MG>;-G3`1MWhUJ~#e zcFAZXrg^wtGL9M|skwW1w7|?DF@4ik9SS5{+L(7w3cR&XUVCEKxiTeC`<6xek6w7y z8NT}(0w{S(yM86813AIF0eWncN zO!0$#%Wyss2`-M>)@&4i`bEHqUHmY`uwW~ho}mu4murX;iV!WwR;bo>uhg>wZf9Q_ z`>UEcv5P1|QaP(0*@K_3uMKnvpUawGsb>J(Ze`A#Rb5bmZMk0W-1=5rYY$wh*a7od zKcIbtLZU1j{?iSLFWVGw?Hwpk(8)(Vm2;lHPZFn#AuS7M&YJk4d3_wdOU|lz1)1b+ zMy=fxv{(2?#?kX0)FYMh?sy9zB$bnk(dVfOLeig~iLa0X5%dJ7^{xF<2!EfsuW_n*NkxxXCSHy%@BqbG+6;3eaW0O090C0}`-(UdVxrMO04tn*vBAW9iR0T>b3J06tiC>%N2|g8t4ya~^y=Pslg!1o7NoJ_UuXs0 zJJTHImimj6Nh4hMH^-TW|6PCap^0SfH=pK~o@)x5UBRAg=5Gp_;Dg`<$H1=6ri~7X zQ*^EVe_ef?Fv4wE7aGH8hpWICV^(@kiQtDZH->tTi&7YYG(8OR@6O_Yu{L?gAe0b@ zhpbmuSC8__**`9)x^=_}ao=|yVkh1Y!0O*r~(bl}*ckGP@v>a`X z!Ch$sMFw#S4K*hs5G0xLeb+ISA4UsGPAN^rY?NTGD7dtTp@lzx%Tsl>!MIymG<7JgaGaXtRvp5q)Mns5%N$;ODd zR^Q&NHN1u(w)5tt4KL#!c;E|ZyOy7Wd;O&Rq1Hc;`-IS5D;*m7yDS`gRNGOGiE39* zSXJ*j_|Bwx;as>?>{$jt^eu)odF!o2JfCZXe?Deod>KcR`)|@)?cV2yAUdD#g^=(a zy74;tqWpeTShG9SIo7%Ld%_@a7&~mNy47|KLluCnlNP44+yAYW{nl7g&ntnzE{S*v z^Xy6SSH7AZd;O%saKHABki+#RIE?ZwI0>JghjF>v<$Y#=D+l$fwvTJRI8_@top@0; z_T3{rn9eX^zUepg-!2%#-a9GhZ54zPr7Ksm3tUzYN6Zyz-(2#p-g{0sq58q06__^6 z${95~&;4(bR)tOi+7W*v4het${D~{KLLDc;T_c05Bs5^OPi2_r-ORvJU9W1$+9V8u zbsxxf_TW~&(a}h%$7_cdcRb9Hw4;#y25q#4kRFIGTFCCFm*+OO4E{^Pwyt0fG9)b$ z?I?AA?d%W*-~+Xa&%Hz1+_KZSA+UVnLfB6K6$EZ#YHF$svtmk+H_)+&+G^YEbgbKN zo{I(j$&Wrh7+xAK78Unr0FV|it6U{_vo?wHUXk#%#=$nX$!v3Wt*s9joYQzCh=^_LJz;C$~J$?LT>lsjKsQpudraKVy7^C+ge>z6O#8I|h*ODEV>p_ChbduB0jA zU`G-L`5y9Xa!CIVTf5>v-_nK=kY5rn8u)r&F<03o;SqOQ0v2(Nfw7d=atuEW&*e>Z z7VXq8Z#7>3Iqt*;QuBF6i?FpFZQtA58_#i#IzT#hS7D4PLG>W)*001y--B949lC8tV@V=TVxirp|W)G>xJ0BWCl7Aa>rBV}~!R%DJH4HZ31 zIDw&r4GA>2VbBv6E*O0H61rN<8PCrMsA$m|tn7saOl}gAFKRy%=5HkffNHVk-xoL~ z#)OKdZLCflrIEq_sPG6&p%p#A+u|3aIfv_^Y8@yc;4OBkQ>;~rF+sB09*ho;Q*Z}# z#mGEe9QGis>}nST3s7O(n&p~AiDF4NlmEye2Co1eCqdnu;JCEItfZex;pWl5l2r9FtAD~^!g7$}Kj^!ff7nf49^FqxFP*dI5q3}L)qpoJ zarAC$47MZ{1fFn0hvToOK%QNQyKO_vO< zH}AQ7CJgRV2kTs1a1Jyh`bf{By%JCkiQM|gs(x7XS~q#}II@y=KGyQWozw{^`KiO0 zS#eEKbz@^ABtJ0jIw_^`(lu0ORj7(eP>f|&&aYT%>p_ZW=g}LsI}XB)4Gj@;WD1l0 z$W&GWKg7&MQEB>dPWuU_Wd-FH3Z{WiC_Lcm}F zA9R?5G_#y-Ul7=}{_&a0s**L#d!Hr-9Dh>WJ5c^(rXf-y_k2Oib zWp(-hvIbf2SXW-FUyCY;Y}8@V%zi-kfiqE`VhK%x_gzmNX-u{_E#Rv)yyxD(Jck)u zkq$|o=~&+y4U>d8t;Z+D-;lue7JkQB8`l6zYZBJO60jh?`P{ zSKqd(^B%%NH3yk2`PitxdexPN{!WBX%6*G0P3bJsB<%$ZMtCBG%;Oy4r`%ub&xpS>Nw;OAFjEpyx_$Q#5XK-eZyezRYk7oragVy(a~T zNp)3KU(Qyov?D{IuIvrRsE>{ESdr`yrNF_0R>|BkbNshhe*;ki#-U3Bo@*d^mN+a- zN8`hWfBx@@5E23`|Cve=C5^Kbx&u}Jm|Q6HenTyi%74dl=(>Y3dUVe!Ed!)5hqAF(VR07{qqEmh2YJX>l{DJq%VMuc6kaE4VEz5z+&+;{dL{RV-|A?&Wq{k%1UZ$2-o>XfgD0mf= zvhJI`^tCg@59*KF+mNj3zqw$gHV0)CWV+DauIWlp+p-_1X)46rR7g3Er%iHwitNqI zdVupby`Wf#h;}?4xVw^}?bEaN2H$k}+$)->D}Y1jndwNI9kie`aiP{!1M9Dstuo6Z z#X-;2w~~cIDP=}$j&Et42hOKEbAH^^=~5)z?ecr5)3~bFQRh8@y%#M%tx78{;mQ@| za?R=+S^7_dq;SXMbm#k$yKhy59Wn#F^~_|$Q8n89%+g)(%#ldO60-Xl*{}s-U#-63 zJ~4>R6Ge|c1X{6dXWr1ztVtV!13H|bMpp73mn+LHF2dn(zMG*M%bWR!QCyd~qdd3U zjuE3G;%z@QqYSOdF~Qmkb!WIG#T#?Cbp<-|B&yJvL@Swl!JLEI=ATXzo7Iswmsb8X z%o08B>Sst}ckqE!ql(&au(^*|EUFBV8dQ6!M-;I!dxr-KKiprLnEqKGCHA#-Gu(lT zw)ZSfk z{k;LK_Gqj~n~BrqwRhtXNZf+^j2g4Fj*yI3@JgiolA;C9frY2@9)djSp3~&AY=N#5 z$qL-K%1b_ln+x64`PP_IH@E+t-^OPr6?qU_ExH<7=8wmM#4|F-~gK}pJ|KvdgL|HkE z=xJPbR1>>nSwPVVXv0D*PY`M?)VuBLFO)hpgr8jSR14O6`E^7f^;cl za!%Cz$l&~X(MwlPdO{$%n8=(ab_m)7onv3=hpc(xTphao+pnf92n@DlOC=hGQd|Dp zYtF@Lw}BUx^{BY*MaW-BF%j(+n-!>9LbltCK`MN}Sq`BBJVGtXwX^maocFXWPJNuR- zHFCsq3Vhi|Kg$;^1RYKr#LFe2D|`)1y$wv|QWkR6Mjvm?w21N-NSnQrkFZ(UOPf=) zk(vLM{G{-{jak-daIp{kyv`!AvGmPsLH8IvWym<%5ROCD?gkr=-8FtC9_}1c<+aw! z-+m2m+n%Y*4x=Pi1);t7$sC8xFMv;Yh%@g(H*IG!5WRrV!dCddMd+>u_Y)_id zR-$7MQVtxq7EHh?X3eJ<+%h4O5-AHwts2vhop_*K^epOQFw${flQcC5+49Iz;Tp)* zbbUX;E4f;8oDtNwu`puh@|jy<>L0iH=7sE)_9s@XIw?%^`7dNSbk!)e?{+%ut9%@- zXnE1?U#AMEp2~k!6fd|nNZ2=u44S*|3kvPBRKSn-^2(2!UqHR?c|5nttuXzI?ZD^( z9-EdZ{%n|q3wu~z5RA0*Op52lajXct3X;FM7h=fz7?0G+| zqMi8j*{QTriZYST#cBufj?Go4% z)0!Q?t*^v1qcI7+WY(24*R)oIZS0-<(}}P)OD)N&VOhU^`-&=l#Q5P!xyxSZw2k?z z#!EHgSHcVmo4P6G|0}nwbNc3|lG!GyMZQrJNrMp4@^c%}cD=4V%hHanIge7YQl)%c za_Mx1iCh!u|41(IlpYxg_WveLd>^hQS(t0wt6uk)__@c7=-bV1zQI+c1!&w#+tKtA z&v?nM-T0^{g!G!w3a%D`r~A5Y#cCn+=1-+1bi=B=(wbK^_+^;V5{f?EXS6cVSld<0&^F*YT;-O`V-4pyk|ryq?ofUhLlPz{!T+pa}wGp@lpY+2R+qS^zWd!v-ISS)v8-dRGVNy$d*yZ@PaQVEi74vTlWH6dRg^n;;xKE zL(za>VF3L|8eS+9ye;`u2n7D_F&>6F0;zqz_Te21ViKfr!;oytAahaIvH)zMIc)$M zB}_aX+Yqj9ER!4ZVnNJ+G&WA#y#oR^#HB^=_kU4qvDnfc4~I$<;F$qkAIkaK{SiOx zFQE@vuugymJk2_suS5kcRXU3>8bLOK7w7hL&HH12u|*X3G!Lns0}2YniudHq4%X0_ ze$pmhe%4>{KO-^p9jvvF#AA+}^uDrBKQ5;Ee6muoOgz?LOpYl2G9c!VggXzU8Q-|h z$QD`rWx2@vA|RNro&Kz+)B3*O(iGEEp&k1lE?pC&Hk}tw z_*Y5}JIMiQrqm~#krIskVzS$OoDjL7Y5-9C$~(3aC}1L3v;gHKq$V)~E6+D%&`HW^ zTKbkxHbJet0KJxWO!Tae@635-Xfq&uO|r^m;a}B#fq!FlTE{ z{NR9YfT`>sEHQ!~7>e(BfAU=yZ7Q?&@r_5E0u0c_1Zi>#E21|ag15?s!B4D&TXQY~L9n#3qd=1F}Oy)aZXG!ohH%s^?qCRg()-P*d1Z>`F zCM^9YhD?c1;T&ETqgKQpk8iU7g>$ZNZNpCxT@;-MI+{od&mL^E_A-p=|5r!(|ESH+ ah7;E9xjP|`*V*;|k(xp+4YB%npZ^b!h?L;~ literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..5c78fa4282a9d2411b79da623b0bb21f60765e74 GIT binary patch literal 6117 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 z zJ6g;!^N3W%qYfO7vl69iJ{VY{;mrtZ0td;Q+~^C`g4XLR1;SLGm4Jeu;Nwx%-uKqA;dK@hMEXPBw+GL}g|9nQ*6J3m zY*<;S;d6}%n?Lp?Z2exTsjJ7m$9@kp=^w0^@UxLIu{l0d`nvKj^h^y`{Pl7DjcC@} z{GLMB*`=E@y1kBGUd)~QjL_|0>6zY&SzTNtg`1Jb(ycuxr4vN8}^`I>A_Gu_v( zrcyc0`ZBVbFJ0`Bm#iW2XB^+PnoyRndD3&Wy;%6m!l%$F+_BCbd`JBqER&uCR!F+MWaN@si(MJnO-E7niDEvW5IM zdMdovPV%myYE#bq-hIctVH4wIz43$1)J0G`sEn(5tuUs`+%Xbm7=H>x#a{0m;9ysg&p_E#BA zN_qqa>*Cxl=Jhwa%*7+(Dwk4%xea5NF)PX~eEir}7I{a+eLo%bhE-2~PAP44=4)P= zOA!k*?^?xw_*UAAtZd8-4Zo7n)m`osQ0H?+zNUS?YO`drUKcr){@gXe=i#IuhE_#fW@cb&4ZT6msLst^>|sq>L+6Cu zDe(_G;AcKxqD0a|XiB8{3S4nyz+}c8Z11-QvWiCD#Dju|obA#oFc=#qYk;sftVkzz z)LBuF6kZn3~eV z5^4vgle%d1AMD*lK@`bx+g)+xH=U2;tR@2ZoR`z%>H1`0K_H7+k1_CP_xwg*qR7KK zg?JupjLs%bHwH(!S2hIqB`i4(I-S-|c5+O24uCSN*$`*|o%d-MT8CH^(#a z=^`3V@w+2#YjYf**X#qSt%SbNF$i%gl%7{C;p|3AV=JwK@_k_ENG5F`WNs`i&J2cY zKdkW*3?cfwUXvl4MQ+*@6fBtL9Jp z^t5vu<|khyQUC7o^zmF&NE5D`$=4}T!jakg!yKNtUIX}SN|1}7j{k7x1^ZVT_)fsV zYxpkkM1gWz=zHZ!t=}`UN+spOC8vcX-b^Q#odL##R0T zs%_28#*`wwU7|KvT^8CcEMv!7%asypkCr+$cevRAG}K^1S1uxOwByRYEjwdx6rrxA z2K~w{!t88W5^LWW2VRAq0idc-)4)Gn;sQn^5o9+!kQy8bR3`*SzU4~g#e@)|2Y}Kx zbK6L^Yrf7y?7}8GEPC3>X4GO%vy;>%H0Fb37tp}QX$CP4gwFciJ-tEZWP7%#EV=gd zl-+K#ZgQMHpx0u4oANlJHVO|ZbK?WGnxmi=j2vu}>kk4sAKvJ?sloLbo78crm z!J-$Cn}tuz%!o@2{=L<|`)*w2G(c9)$Z)+Kn8Z`>b*t|TP^ztIhsv0D2MD(k*P~GU#Ar3|G_7--Bgt05C2-ZAwwiF21%B=ZwVx<+*<#MgP12a`W;c^%kM!pln5gj!iS$>Zc=y&;mQ*ju_oz&O8*2W9+4g=+=6 zp}9ZIpDZf`L^W32VcfHtNXr_`z0_PR^yRp$#0DVqoVylgZ!pp40k)e>SVxUpUIccO z@m0nXZkD&{!Z1Brq&Gwn)s-B_#ZuZPa;c>xl2JG~wW+CD-oB(Iy_0zwh$Nh;fn1SX z3;C0$vvz(}RK$5j*jt!VPL!t3Wh`dBnrbpL!&=@}XhjSyhObPD5bc0xG{wj_Hs~H@ zR7w)f575hH=gqpUChE!xboMPhw|cqP4)47YYRLxNmWr&l`F3HU+VvOkO zDf-Lt9xgzxU`gNl(;garR^H8x1wiXzTtB?5~`UQ$< z^nJsWWZG3g?_U34_17FPA3mljB={!6iwCUPfvp6NNu))8LrdL4BpLwN6F8>!s9~U< zyM`RXt}*~H&AfehY~2Gt`>lor*wAD4>~bhoqtHHa7ba0Maa|1*CZ*+U7_nRf0HJzA z0~8ssE$Jn>SiHjk0Jz9tqfp=T2^1Bns4BRtJgVf}7oDU&LExG4I7>iD1I7zMeheB# zkb9))=Afe@xQ-$!e*by1gP|MW7g?j7`=Fy5xH^LT7f4(hRU-IhKVsGA|KQ?RKIw!b XKwvY|foz-kXL~av3qy>-gM|MAQu9E) literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-renders-correctly-1-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-skia-chart-chart-renders-correctly-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..475b65bde915bbced4d74bc4d47838bb77ada2aa GIT binary patch literal 3994 zcmc&$dpMNqyMCqUfFU7=NGoaOP%%P6%UN=moNCaBB~~ z$swVGN)5BdH2lICr6FcXGLvR7v!~YD*Kb{W|F^DdU;BHn@BQ9C-sgRu_xbMUzMnh~ zH%Hm+YTE$-vd&I+X8@2Oir0dzQsS9kT~8H%w#7P~iw9tb;`dhqV5)Wl06Fb!_lwt+ zszqkTHGf88|8i8Nmd<59Y*UF1pXMRod8e6)-*Oubck*j?yOYZIzeyFFkb1rUZ)K=?(Q(r?1oGeRcL?v~aS!>1vFXiP3fvv46p*~IejZ0%6u(V}Xr zWMX;;E(4)&sTzDKn&|23TfnagkBDh+*NN;VFHkpu-Jtb)y1TxmV(^LMwFTd<);HG5 zKvZ1p=!>uob@~`w@XMQDwX?Sb^;*JF_J#;Xbd7%5*Sz*&+?O^0q)tYEYk;NkxXBt8 z0hHI*uO|dSGw|wF2RP7M;oZ6peS4+xC*YMt;|wSL0K`BT05Uj-`ZPE+!{bfgE$YBX zwiA4cK#J--jQQFI|+@42xBy!ZuW0*KAElLBK{~W9f5mtxKqn-{e8>2XO8_PYF_fVQ9 zg>xn(ho7ny8LMNF}xYSxXM!|G%lk@ zHF);AX#`IBMFGDtJff{)NuFo1QuL(8bZAz?Gn?QQOQV zL9A1$_WBuB8-mO`qEWVQ=w^Ic$kx?z?e$JKw=&w3tdv;vagiWJ!j5jep4TtL$ce~BBNc=Fld7R^slrUP8BFRv%=C$+`B|57< zvFY9Sr8;oDmun}?05+(NDQvJoBDv6K)rEC%BBL2!nhq{!u zFi(5UWLN7!34rdJ@}e>ELYDDwj2)JK40m>v1mFe>`(&A}N+ENDvH);ngx0-k;_!YF zX@NS@brA&ozWP!m4L(MF5J>{A$rq6X5NPs6XsbGmp_;0*?q%xLoE&9_LBJF$_uJ3N zfDC%_zFwo}%LRH-&?AmwQ?6>;*JiBH1}TppdqFK)Am#EK=WW;X{hKgE~3k|bqCH9adFWtshqR4bwkEz2rP{wvBXGl54cH5tjrWa#95Kp?vE$5MUuz4@u^-D zwfVD<*+6B+>gs5oAed=#xGqwhMX4lwtmpZ;g^PvM`a`V=@m9qP?z!IzZ;m;`4a*MX zTrJR1I;JIgZ9StOowAmz7qH93QWvAC;No7;C_Q@j+)7)Q;j#4*T(1QNN#O)0x{mpb zUy;!eU#Y^oMvkIx)NQdHWl}jb5V{zGA6S;2NSnCqR-(au>>dw^X7!L$my5{k7Cq!a zmKpoaRG3#O8*9(zXbGLnj|Q=c5Bq#CqJ)l<17~e*=OV zUj#r}@p=Y8_c{oz!AaKt#!bjp-BN9tQte4t&b=A*dWLq7c+o8LZil!qOSJXxc0U4W z3EO`gA1?VHboIllOLbl1bbPbTm2R1LWYrK-nf9b#j)%DV>lZFd0x7Ss67MpIwSSrV zG0LP@Ypcw=S)=TNFWo+jm@QzM&|jK0D&R5ecxT)qT~@^!?G{!kpom$*n<=igP{!Nb zOD=Ouq%X^Se}^QA-MjJgSTW7_Lp=$MJgx;dIl58{1Wc?jt(E)hwSm?yHu(C(`TBp8i?j1IBrMoez zp6{U0w+~}IF@dC|1_Vq*eRKgQLo)Ru$6LmQPOCk{MRhD6;{B(cUde@&cHSY{gvc3Gm?0LS=Qt4dnbbDgKtZ&|54TL=f+42LRrshvZ zxP)_fWjj}Db7S$`P4A)E!Jr6MZ2UT<3#kLZo}h@*iVPhL;%C{u(1ZkTR+oR`AM3c@ zKA)C7=4pgRUSbUE6yQDFC75J#o>eb?{VMJb2a(Yk>|^hyhbf8 zkEVIrCyWXJrSh(#eTC2}1VmQW;8i^yC)DMifRAesc=Lmt{RS#7icg;o+=zs42Pfs+ z3cn)R%q;A@LMt}`nsMa$`+xa2jSIrPSbK&{9b8cj@5X2m0R4(xofR7F63o3BI{Fv8 zwD>kD{$02`r8}h$Os!g7VM+djKeROPGW@vjk9O~<0T^E3!~_dvb-P3_K0~6K!rVX zgpG~xL*5D(Jg6w9T@Y_o{41TOp-j)Q{S5MU@wxId->%xxiwm%3k=>{1^|y z=5P+3Pj>omV)pLX0nq1~A6Tg|k{nkGVf6D6-x3p)#7g=1l*|fxI35%iIRP5=ee^?| zwKN2^>yo)e1F26o^7(dK{S);2A)6?=Hq+Q(iFEluD}_xedv<)z0xNm)ogQS|pgrC9 zyR7ocilK0oe8C?4B8xyw?4QWvm#;iBpMbR}Y1L8DPpiUH>?kapAEyIy&{TBFP6L8Khz&X~utvnQEGjL~zC=6Hf{Z}Fzp zW0qQ~=T>%%e2$8f()>;1NU@~vu;}2z;RMMdC(eyQYrzBV7_(nT7U{6k^lZJ&{C9ia zS{(W{lABO5-gx6o}mss&Ijm^80;w5@L41HHbqb(!;kTO&dRj*G(EUjT1 z`d+GAG&=Z4xODVPg>OXGgx>w|G_bCxvcCbYQA;W;6B=SzCW&_pVD$1sYXD67O{)nh zVd?3I4*x2s2p>PMH4WahJfyG?x7v#R`C(Rw= zuyNh?bpQZhqvLTqPXIu!TJ|hdkeA&B1tm1u*U#sU!{Pvd_1nIG^IX*8)vv!iOvp+(3sAa z_R$E6s3ojjac)tJ(ao$JxlnYIk=-X`nUeYemqNW{>(klMI@C;UKEn-1GGGG@Iz9cY zlg4U=xpv~J5W(kcoL9H;Ai=9gQLB4it2+t9wk{^A0NRW-`8+(DHR0(5_BKQ>(6p%1 z=Y-)is?-D>KJCoNdoDfe)R%ax&NKmJfI(p60XAwf6c0oaj8pVFM4v(P98aR4b)J!VjAoIuS9v-j*l6@7pC{Xd!`EY zbIDxWyM)kWLb>2Zn55=rP(e>&p=dZPCECp)Y4@}_;FDUv8Fe<5_DG~`9OUokXH^6* zG$UbsQo&$ifMv;6s$#_^yvq~~BH6)mc~TDBJq?!G)Oz@_gCJOGB(g?QO$jZQ*dfhF z7h?Mefq}fKd7i*gd^@VC^(?b7)9uhx1wb3to$5>xabAbRFdf{lj$#RSHh745ZmMkoqJOlt!G4ma6uIp(1RWR7`6#es6PpoGH3gh;X~P>qC= zb4*u_#co6(YcH8AR8`aiJWMa&N_}rQ&3{iz;ysI1Id!0=UTL^qIzr4<+!ZpbcIR@5 zX^phHRZ(Lq-go_iS~lnF6YhxIC79*F=Ra@ls(E6NwBbT61_0WbjwnK7n5$|M_f*fs z7BvGNZcNuF!1ovePG4oNGg3`o5BTF@^Q-Rb%vF~T{6kBsk!3g|e;E=ojEoEn3f|Tw z4~}o0ZIXWa))cUZX#qk_sBAa*Z3DyONjEp4?N(btRpd0ePh(;3R6Q~rY;qqCM+j&3)5Jfyr%)l<1T*+ zC^T30{I~de-SLdoaT!YvdZZ)Dz=To;Z6ebsm;NkEpz56p)!~O{3gOgwzFGGZj%kg; zl4B}m&EBaK7g|4_1vlFW-Azz6*)UI3C^xSHd?%wW7 z*`bvjs1{#L5sh-KeBF2(ixPI_g)aR+y3|I)cjS(7io%iweALzA9^?70Z(i;G4; zn+~S2=4yxVU}->tgCg|3%0YQnl64g!0TAqCG3GbP9Hu~4)tvi>(DozpkJ!lDE}Z&p z^BwwR{y^=*(X6~pWMv{ueT~5#`i#q6Xh-PgYtcUPa>(1gjs|Gc>ZhekaD@cYH8#09 zv+3G9QXVomg~@YYqg&lOqMahdT*z;-@Tgsyn)r8?mA`qw{mEzMHhG}V*Itv+taXH> zu>$2dK+?k&LMkmAc6w2*$)dxx$!@g-^9W*z*OqksT@#@Ez^8(R_Tovx&52YNo4H^5^)34v%!4 zUAfXd7h3Z`;U138&L9YmE@MG)${}zi>D|{0O|HY=W+~;$B{G!W&#^rmSQ6*iUEF+1 zUfYK3Ia@imGhU`q8Za1uq;fJ^xuVO)bae66{L|~tI z;0eN`&g&hCx&C*hnYe~W5gF$Gt<7|QFo)XN1Zn*L{Zew0w|Gebs+f~SoG$o|{ zvR1JedlkP_`qP&QH^S2iyLVmH{2RFWF(<8*px-;I{%~NsseRy#MlOB-UNgBHpY>+{;@#JdR6`M6X=;p$PE?;6gaI|?Fiy*<+*9`5M>-X zzPg(D6pnBC_MlX9tm(tYMx;NLG5L8C`vc~)%}_2q(trVQK@Uf{o3UlK@KCHyV>Gw1 zSbz>8zW)J@KEifqyQsy=Syt?~6YKQ&;&snN!{cW$f?P7(I!88={}(X!F;pQ{-L*g8 zjF=CS`XHV5mGKkMY>vix7hdQXoe+6=IcT-ti4^;2-K?>)va)SmuoIrrf>=vfipkJS z`@gY&f}ZViv$6r8*b_Pb@N|kD2&I1yoaY%AY5B-1Iogv^*aL*%f-pqJ@0AM6o9ca+ z^-nUL0->P(q;|?*eYy8kiE{#{H{4~B^EFBEsR;H&obXXY!{=W!VCP+Etc@G;YcMh9 zb;H}$;iD;6w10&B`&Z(J*A15U;{Peq{@*s(E`1*#-rC(MUQSOm!STQxA2HvS0 z*QrH}pxu#&=$qeRt-M5JODt<2GZ?l{EkEQyOT0|Py*6ty;#ev1j)HcrHaRT+=2A2z zw1$t7s&%YJBaZ|cyIo^4FRxWwlc#$mX0~nBhE+Y=ikcIH<>ckqY3}fwShLpCl7YUy zzMnC4{9J18O(C!%BgJ5PL{54?4@C&$J@sk&AljFyUh~P0_iKnG=->`Xmk0emsu&*B zkNZVmh&djKEJb@CY0`(HP}n2HppQJ4keA z0uE}3j|sktSuNA&5^={R*K=}`A4QJb1Cj6%xNRlGT|2Fv9CMg@q&rE;1yeJ_lm0$#lhjMd2qV0YV6e(bqV*ibndLc?KN5ZB2bGL-XSU} zo6Hi5%RY4h7hKpc>Vk%q9zz9K96&qwIAFlnw5ealY_JTJU#*{{y3kkR?13VP zP{khez&0u8)|WrRBySh^PukaJL+!G*1y(5wEt{sOGYw`b3N|dev)k!)y#A z+660h9gtc@q&yde`B#@WyL-i)B_P~+#CEsUQ3Q`k-k7YuPZr;tSIh=`>SH;(NY*NC zSMFZ1-*c|(bzRr@b$!0C*Z1@NeBST(=W|`R zT%8?Mf86pT2n14v9kn|F0x3}B;{~Nv@;i`M)FXc=M;`Tx0)bRCzFZ0*B54x{wDuUx z?$D_#q>16U^1vCd<|!|~{Zs?v6Ax;hJ0}1B>wL?z-EHd&T@PlMhEN-Rez+z?uVLY*FqQOEa4TsLb@ zkzqtxR6K3ah$wUtki8K7(*v2oAEGS~ZQ`uJBCYPv!wFAg0|2KC?hhF~KY$)87t>I= zthw^klDndIOpyO}axQ}m?g+V*AFRPtzc)r8xMnrg)Wq`BlX*is^H+lWaDq7pp))`I z=EA!!s;7;9X3THz<{+F*23TWCD-&?U%{lSaKSw_{8@aF&WSUc2>TF(X#;d#q^uBrX z=0VUey<&Usty1xoC)EzRM6idpFM);17Hb8$l$Utz*aijpX?UgL0RoOkCxQ)8KbgC* z$VPCDv<@7fckx9Tr-z_3Q&&Gc*?%jDOtdOj0yWpWGNU@h!e?kNT-)?8Oj2+Wy>C;P zqo8M&1wHkwJA5rY>XLbwe~G!5olR?2?oZCyvUl(Jt3NbRb{zh%?) z1?0W(_0CAv1u99TpR~RkF!s;~-C3Koj)|v?&)|)1Vtrq$m}vR9uYk`9wXLF~uV1^= zY#KRY8hM2y&B}64D!BgPPGhZBO;ZfWuc$oQqM?xEx4A!D`{RgA2UKyG>aFeE^241t zCHNJjk|yYQLge+1>yZl0kblGrral`p(_(8AV`XDz78BYtJ%dZQNf#-0b1voFl!4!tQaNW$nuAQt8dr>47-GJ{>t~z3NJGL~IkPU|6g)Vq?9p+r3 zje_5ewUkfPH59L%0u+o$H|87QxcV8#_}B&0nAbb_l{#9(p7xj3SG~K%GdpraGi-dN zqW7;$fngHmwCT^c2DZ9k!w(=~aW1{$hEB2G`$c9-N{Y}kFJC;pu2c>%1fpN;R)s;c zqCml$xj&|>aEa~#Qh_oW$tNEra@Near0}2`-JJc1`jPqkSN{Xiv1=<$(w5e$(M76A zxLJ~TTA-Ehi_^Lya@V5q{?NpE$)0d5m|PI@$lun-@90!m_l4cu=5_VM@AeyB>Ks&0K-2VG!h`RDZ?iVZgl zMGHaA_WtQ*Z0?(O84To|^p61FmICn=1aQRl#%x7GzhobHDSNg%*HGr0*HDOGd9meM zWV_;xNVXldWz?1$oE1v@MXpnp<`tG(^RpN+dRp-hIYRP=zAZwRs_#XJ#W|-^WW%= zCMJC2tCRUw>KPXs2NufGKfPNFTp)RL9Lzl%zfYImm?(#CpB_H$lp$x^)VxeR(ZFV3 zVwv7oewDR}*&4G{L-2-9%V(q3%sL%Whn@IFptN@^4hO8X)}EMvC~}k4S942m{RLo{ zNUOAntd%|&9qn*HRxkKeUo36;G99HOVuh%+YyfX+ao1Ria42&dVWE!~+A?*ew-Naw zc4iUCES7rI4GmjVeLRUv+MsoH`98d(?|+&smbyN%-n6<_cjgRQ0M;Mn)!yVhsV9wT z^B#_fF*QwnTbJ*EjgOQ=G6m4+oHhx{zmKg&x_R>NeknHUgeYI$?*ZmAcF4wWe8S18 zET?GU0D?9@78_*D2#a=CMh??sKK=1BD|OT4&^LIt9K6r{M3cOXpsfDzSgq?^gWHgs zqDi_nW%e1)__Z$N(fYyu@JdhUf1Fa=a6_)O1#6cBLnZa+<+(olujTIizaacWY588S z+y5Imb!|KH;1ZjSAS;$9=AX7?xSKnBk9GHei`ow9iz)H-cFcpX>Ym5nzHAqiT32n~ z+slN#6I1e+u-^nqzN1NaRejQ3Konte&aqcq9V-2K^K0u(q+NIpNnXQWeTO}jszw9@ zn!||5q;VRl)cLdnK9}A%!6X&u>l!YFdoelV@5j@eqn2v`9HGMmYl^U%GcLPCifz*| zcH)wB;Vo?v(gT8ZV-PHuhn8nDyy_3I@1BbTE~y>eZ{f4z>i3Wt7R{CyLQ*|e_-8?pf!6*vbrIOlxdyEk6$#UW z=UJB@yR~xT7K=E@&HW+Tw+Aj4)fTA*Z$l#|QqRPOBd%LhJdz$=8Zzit|0hH9Zy;c9 zdrJWAR9l2&2tafeEr;Ad@b8S6WFR9DkOl%*v$3UphRZo$qZ|e!qCA-3-8&l;6GUy( zxuOJ~%J*g=hTLb;NvIp-fk@xr><# z+(4;kulUAiNx$=>Z-cO3uJ}2rl)*>4$S2PL7uf~bmHQs5y;}9<#Q5|-U7(91Y|A|v z>uTYQb=#5Uo>$FQ{NIC{cu2!pTEzMDldR77Uz)8#sbXmnDg_At}mQOWLK}$Ao&_Gy7;zdo@ik-Wu@4Kw^dcs9%SyNJC6I$NMW>-I!#M zgKffiYrB+{3fAw(9)UouHd97rN|+cI2f7=riGKWpTGE+YV<=D0=kH4SKAqExWu+E- z1%RJucZNP!ANAZi|DHwT*^73%kWJFTC=Ag+7A4dPY zxf&Zg1CB#TaTln?!h}F+V>Y%t(dYs6)Czd~pC&o7b6&m>PA&_zTb3H{`-;R}Cwe)S z^sqQKw$U0dgzg;*1$>}YVnU(x6cAJBmJV)~MWlbY7bqQ{$Mjc$ct_l1NacYkj;-aO zF#W9$pU`}30jewSkXzhoC#x};dqrJuv+v7HjFpHRjjF_N#>^2f#dWHSIXa-eL`R*u z%mpwQdVF3mGBWLw)~Y)~_qNG%erxO{ExPF6QDsfR_*pd#fTdyPjOT+6xR$%#c|Le2 zyv!;G%YF5`ykQ5w%UTf(L5jeV@pSN_?{jgy{Hye|DD8R~lA2*C8y%Bm0xNlA^HY)5 zCi%|PHQJOwKz*S0us%xXmO7>dO#}k(Ym4eDOtf}3*~g3B%-V2kEw|K)K<0- z4%HXP+>A1e`y9vG#Lwl_yB%2o;~wLy$lGZ4L^N$MpCt>La4nGcCdq9zi=ooRKpGCd zCYu-OHL1sxS=*ovstpJxXdI%UEcd?bQZME{rh0FmvL%Z7AHFJym;Hu26WuUeA(z_Uj3F!j h#$N{CEmfJH!A0 literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-1-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..745bb0bac6d224121b968ca8a651c975c596a5df GIT binary patch literal 5526 zcmds4_g52J+YNg4Du`Zzph&aOM2dslgd!wD1T0tp5eZTxG!X(q z2rVHbp(r2-hzJNFg+wWrnqX)_ns0pnf%n&MeY4ignRRB)bN1e|=RD6zyk=)9DSkv8 z002mWt*%@L0K^EQ`}IA$Mb}?>Z~H{e-Y_e-I{<)$^q*4 zhh6#{DO_$URS#WKIRGa;>o2mdxPN>HlmtDgifwEkyZJlpiQ<#jpKa{9&E$aQ zg7SE$vnGSF3p1=K?o@Q%P7$vETgUPV%>J}xIdGOW^~yl0s$%Y#;GV~T-!VIzIYR(I zPGts9=ET4k7bklPUK^tjH++44y?b-??OA;)dHJmZ1)^`~3nSwfp1;@WsgU(cq*O7$ zO9zbUc2>*g;U^LjW&b@CKL~u)aK#tOeHcXuMlbiqy)~avSh6L(kWA%8o3!Ucc=bjCle! zB1(OfqyDAdBIuAeBMx(l!RgNI=&3vjush&BYGkB8S+{wuOtq|2IsRUAv9W4XA9YqG zcCO!285WqjwJmIkzcTQ1)k1xyXq1MsPm6q8oUY3AL

@gyv=rYtD@wD;$M%K9{RY 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 literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-2-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..0b26f0b773d29d995241f109c403d66bc65544bd GIT binary patch literal 6185 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 literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-3-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..8e093c03fb4c7af8966912c9d87a8709dd576af9 GIT binary patch literal 4966 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 literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-pan-responder-tap-drag-pinch-event-correctly-4-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..afbad728bb2845586add36116897919e09892711 GIT binary patch literal 4678 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 literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-2-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..0ea6774551bc08b0f0b65470b6083f5b26264357 GIT binary patch literal 6094 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 A5C8xG literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..c1f5faf2ac66437e4f75e5db5a55038a8b839945 GIT binary patch literal 6099 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 F{{W!Zm#hE) literal 0 HcmV?d00001 diff --git a/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-4-snap.png b/src/__tests__/__image_snapshots__/chart-test-tsx-svg-chart-chart-fire-rngh-tap-drag-pinch-event-correctly-4-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..faf6d868200450cc8c66851e5ab16d91a88c4387 GIT binary patch literal 5933 zcmdT|i91y9+drrjAw?2Wmh61L%AO%h(PAI_l3zpi!PuFhtkKvdjC~(#V(g@{XUo1$ zLNi9jI+$U2r{DWOyw~-f>w3<4p7UJKxj)b6+@JeC=YDIT_n3w0CKCVvEV?>cMgTxp zP3u!GUZ9=H*@Yvt%Oy`83m5<}U;EqWfK1d40Jx6T)p}?WfZALP{xAt{@76Y9OvrBA7x{k4jzzX}75AD7791TkLtM5J?ZZ#e}3*$9h zzi6rI0HWmSXOsu@J=HSu?koIU7BaHeEqDLdcQM695pD16z%qb+WkOmgDJglx{5CT) z^L!^|vc{v))XJ*$^J%4l=t315ODr2S@$D^YF#@YqpkI{{iZ`aJvXp}l{*eD7y!wV2 zsEtGu+k;31?v>sIJ7r(OL^qGTTazs~p%!ERHA+`u(Px}`Fq0|gT2euX#t@aks)k@0 z(@DYLoBu%v9l#G46%qb`oxzt(J!v$CZHJb<8w$r5; zzl9*LrN1gCI9&HZx4=HyRHN-oC&xN$?Co_u>3}6oaIcA(nM_?+t(c}nH1u%Bfcai< zWk&}HLn^Im)dxSWv}*LojC}U|`Op{47uMs9gICZF@^22X>QMUhp#hI#;2&=jU+?2!qY@-L5l0|ujqaqdxq{jRT1n|bwVHkcoAw5+n}@3FOhy9ogJ zj3$}q2bQKQEnu)?swJATBa#zPFnlXZ0cxuUe#|+K#9)fiuh0Y}=Jkxm#v5j7r@BNT z+QLQ0Wg|PgElJd$`pe7}ehDn0`21)DBtgo$XT=(^cqbsdgX+2_hOuUmH)Jj|C&2xRHKi6i0Qs$fHJvJ1mkXm>4ZA$`Tawjhjyy! zf%R(#z7c&?yUqjnR5THC+>9U(+AV=-7|-g~+uvRj0r_lHHJ<)y#^ns63A)*vU3EV# z+X8kHHuqWPM;wIrFkTj5#{Hr}sir@vLCgjfdaH>xG^Z{ju$qS02Ul5ISyh;jfOPWwU->SvGUS7vws38*z3)y>iuM^CSWHVY z3%M;kFT3mC-v>`lb9H!sIbD32g$2-2znMSj73{v(S83U!Q{}ng1*p$5njMeLTVNoU;xwuFH8q#Ri)1|Su_%@&H;GWFN|hZ^P(2ci5A`lcxgHy_0#t22H)VP zvfc`G7XZBZQ68bmp$J@OBm#r99!k&y`@;DQF2|b={e8zod1e4#@rBX&qx)-d8@OFGYCl2Ro)faj5Yr3t@e~8{8kzXC7TIcxpYauxzL&DX zXliPHWuyf^(1*dbgF)P$W>!`fo12S^vS|7s-*41$J⁡8Vkaqcnn23;^PXOieSVF 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 UKQsihe;#3FVP{@-%Jbj<0jrII?f?J) literal 0 HcmV?d00001 diff --git a/src/__tests__/__snapshots__/chart.test.tsx.snap b/src/__tests__/__snapshots__/chart.test.tsx.snap index 257a08d4c..d0b7ae453 100644 --- a/src/__tests__/__snapshots__/chart.test.tsx.snap +++ b/src/__tests__/__snapshots__/chart.test.tsx.snap @@ -1,11 +1,11 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`SkiaChart Chart renders correctly 1`] = ` +exports[`SkiaChart Chart fire PanResponder tap & drag & pinch event correctly 5`] = ` `; -exports[`SvgChart Chart renders correctly 1`] = ` +exports[`SkiaChart Chart fire RNGH tap & drag & pinch event correctly 5`] = ` + + + + + +`; + +exports[`SkiaChart Chart fire dispatchEventsToZRender correctly 3`] = ` + + + +`; + +exports[`SkiaChart Chart renders correctly 2`] = ` + + + +`; + +exports[`SvgChart Chart fire PanResponder tap & drag & pinch event correctly 5`] = ` + + + + + + + + + + + + + + + + + + + + + + + + +`; + +exports[`SvgChart Chart fire RNGH tap & drag & pinch event correctly 5`] = ` + + + + + + + + + + + + + + + + + + + + + + + + + + +`; + +exports[`SvgChart Chart fire dispatchEventsToZRender correctly 3`] = ` + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +`; + +exports[`SvgChart Chart renders correctly 2`] = ` @@ -95,7 +1732,7 @@ exports[`SvgChart Chart renders correctly 1`] = ` } > + + + + + + + + { + toMatchImageSnapshot(): R; + } + } +} import React, { useEffect, useRef } from 'react'; -import { Dimensions } from 'react-native'; -import { render } from '@testing-library/react-native'; +import { ReactTestInstance } from 'react-test-renderer'; +import { render, fireEvent, act } from '@testing-library/react-native'; import SkiaComponent from '../skiaChart'; import SVGComponent from '../svgChart'; +import { dispatchEventsToZRender } from '../components/events'; import { SVGRenderer } from '../SVGRenderer'; import * as echarts from 'echarts/core'; -import { BarChart } from 'echarts/charts'; +import { BarChart, LineChart, GraphChart } from 'echarts/charts'; +import { + PanGesture, + Gesture, + PinchGesture, + State, + TapGesture, + gestureHandlerRootHOC, +} from 'react-native-gesture-handler'; +import { + fireGestureHandler, + getByGestureTestId, +} from 'react-native-gesture-handler/jest-utils'; +const sharp = require('sharp'); + +const { toMatchImageSnapshot } = require('jest-image-snapshot'); + +function getSVGImage(svg: string) { + const svgString = decodeURIComponent( + svg.replace('data:image/svg+xml;charset=UTF-8,', '') + ); + return sharp(Buffer.from(svgString)).png().toBuffer(); +} + +expect.extend({ toMatchImageSnapshot }); + import { TitleComponent, TooltipComponent, @@ -20,26 +54,210 @@ echarts.use([ GridComponent, SVGRenderer, BarChart, + LineChart, + GraphChart, ]); + const Components = [SkiaComponent, SVGComponent]; const E_HEIGHT = 250; -const E_WIDTH = Dimensions.get('screen').width;//750 -const option = { - xAxis: { - type: 'category', - data: ['Mon', 'Tue'], - }, - yAxis: { - type: 'value', - }, - series: [ - { - data: [120, 200], - type: 'bar', +const E_WIDTH = 430; +let i = 0; +const rainbow = [ + 'red', + 'orange', + 'yellow', + 'green', + 'blue', + 'indigo', + 'violet', +]; +function getOption(type = 'bar') { + return { + animation: false, + xAxis: { + type: 'category', + data: ['Mon', 'Tue'], }, - ], -}; -function Chart({ option, Component }: any) { + yAxis: { + type: 'value', + }, + series: [ + { + data: [120, 200], + type, + itemStyle: { + color: rainbow[i++ % rainbow.length], + }, + emphasis: { + itemStyle: { + color: 'black', + }, + }, + }, + ], + }; +} + +function sleep(ms: number) { + return new Promise((resolve) => setTimeout(resolve, ms)); +} + +function getOptionTwo() { + return { + animation: false, + tooltip: {}, + animationDurationUpdate: 1500, + animationEasingUpdate: 'quinticInOut', + series: [ + { + type: 'graph', + layout: 'none', + symbolSize: 50, + roam: true, + label: { + show: true, + }, + edgeSymbol: ['circle', 'arrow'], + edgeSymbolSize: [4, 10], + edgeLabel: { + fontSize: 20, + }, + data: [ + { + name: '1', + x: 300, + y: 300, + itemStyle: { + color: rainbow[i++ % rainbow.length], + }, + emphasis: { + scale: 2, + }, + }, + { + name: '2', + x: 800, + y: 300, + itemStyle: { + color: rainbow[i++ % rainbow.length], + }, + }, + ], + links: [ + { + source: 0, + target: 1, + symbolSize: [5, 20], + label: { + show: true, + }, + lineStyle: { + width: 5, + curveness: 0.2, + }, + }, + ], + }, + ], + }; +} + +function tapElement(pan: ReactTestInstance, x: number, y: number) { + ['startShouldSetResponder', 'responderGrant', 'responderRelease'].forEach( + (event, index) => { + fireEvent(pan, event, { + nativeEvent: { x, y }, + touchHistory: { + mostRecentTimeStamp: index, + touchBank: [], + }, + }); + } + ); +} + +function moveElement(pan: ReactTestInstance, x: number, y: number) { + const scale = 20; + [ + 'startShouldSetResponder', + 'responderGrant', + 'responderMove', + 'responderMove', + 'responderMove', + 'responderRelease', + ].forEach((event, index) => { + const nx = x + index * scale; + fireEvent(pan, event, { + nativeEvent: { + x: nx, + y, + touches: [ + { + locationX: nx, + locationY: y, + }, + ], + }, + touchHistory: { + mostRecentTimeStamp: index, + touchBank: [], + }, + }); + }); +} + +function zoomElement(pan: ReactTestInstance, x: number, y: number) { + const scale = 30; + [ + 'startShouldSetResponder', + 'responderGrant', + 'responderMove', + 'responderMove', + 'responderMove', + 'responderRelease', + ].forEach((event, index) => { + const offset = (index + 1) * scale; + const nx1 = x + offset; + const ny1 = y + offset; + const nx2 = x - offset; + const ny2 = y - offset; + fireEvent(pan, event, { + nativeEvent: { + touches: [ + { + locationX: nx1, + locationY: ny1, + }, + { + locationX: nx2, + locationY: ny2, + }, + ], + }, + touchHistory: { + mostRecentTimeStamp: index, + touchBank: [], + }, + }); + }); +} + +interface ChartCall { + call: (chart: any) => void; + snapshot?: (data: string) => any; +} + +function Chart({ + Component, + calls = [], + useRNGH = false, + gesture, +}: { + Component: React.ComponentType; + calls?: ChartCall[]; + useRNGH?: boolean; + gesture?: any; +}) { const ref = useRef(null); useEffect(() => { let chart: any; @@ -50,20 +268,257 @@ function Chart({ option, Component }: any) { width: E_WIDTH, height: E_HEIGHT, }); - chart.setOption(option); + (async () => { + for (const call of calls) { + call.call(chart); + if (call.snapshot) { + await new Promise((resolve) => + setTimeout(async () => { + const result = call.snapshot?.(chart.getDataURL()); + if (result instanceof Promise) { + await result; + } + resolve(undefined); + }, 0) + ); + } + } + })(); } return () => chart?.dispose(); - }, [option]); + }, [calls]); - return ; + return ; +} +function snapshot(data: string) { + expect(data).toBeDefined(); + return getSVGImage(data).then((d: Buffer) => { + expect(d).toMatchImageSnapshot(); + }); } Components.forEach((Component) => { describe(`${Component.displayName} Chart` || 'unknown', () => { - it('renders correctly', () => { + it('renders correctly', async () => { const { toJSON } = render( - + { + chart.setOption(getOption('line')); + }, + snapshot, + }, + ]} + /> ); + await act(async () => { + await sleep(1000); + }); expect(toJSON()).toMatchSnapshot(); }); + it('fire dispatchEventsToZRender correctly', async () => { + const { toJSON } = render( + { + act(() => chart.setOption(getOption())); + }, + snapshot, + }, + { + call: (chart: any) => { + const id = chart.getZr().id; + act(() => + dispatchEventsToZRender( + id, + ['mousedown', 'mousemove'], + { + locationX: 142, + locationY: 163, + timestamp: 1, + touches: [], + }, + { zrX: 142, zrY: 163 } + ) + ); + }, + snapshot, + }, + ]} + Component={Component} + /> + ); + await act(async () => { + await sleep(1000); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('fire PanResponder tap & drag & pinch event correctly', async () => { + const { toJSON, getByTestId } = render( + { + chart.setOption(getOptionTwo()); + }, + snapshot, + }, + { + call: () => { + const pan = getByTestId('pan-responder-handler'); + tapElement(pan, 50, 130); + }, + snapshot, + }, + { + call: () => { + const pan = getByTestId('pan-responder-handler'); + moveElement(pan, 50, 130); + }, + snapshot, + }, + { + call: () => { + const pan = getByTestId('pan-responder-handler'); + zoomElement(pan, 200, 125); + }, + snapshot, + }, + ]} + /> + ); + await act(async () => { + await sleep(1000); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('fire RNGH tap & drag & pinch event correctly', async () => { + const RNGHChart = gestureHandlerRootHOC(Chart); + const { toJSON } = render( + { + chart.setOption(getOptionTwo()); + }, + snapshot, + }, + { + call: () => { + const pan = getByGestureTestId('RNGH-tap-handler'); + const position = { x: 60, y: 140 }; + fireGestureHandler(pan, [ + { state: State.BEGAN, ...position }, + { state: State.ACTIVE, ...position }, + { state: State.END, ...position }, + ]); + }, + snapshot, + }, + { + call: () => { + const pan = getByGestureTestId('RNGH-pan-handler'); + const position = { x: 60, y: 140 }; + fireGestureHandler(pan, [ + { state: State.BEGAN, ...position }, + { state: State.ACTIVE, ...position }, + { x: 60, y: 160 }, + { x: 60, y: 180 }, + { state: State.END, ...position }, + ]); + }, + snapshot, + }, + { + call: () => { + const pinch = getByGestureTestId('RNGH-pinch-handler'); + const position = { x: 200, y: 125, focalX: 200, focalY: 125 }; + fireGestureHandler(pinch, [ + { state: State.BEGAN, ...position }, + { state: State.ACTIVE, ...position }, + { velocity: 30, ...position }, + { velocity: 60, ...position }, // throttled + { state: State.END, ...position }, + ]); + }, + snapshot, + }, + ]} + /> + ); + await act(async () => { + await sleep(1000); + }); + expect(toJSON()).toMatchSnapshot(); + }); + it('support Custom gestures correctly when use RNGH - function', async () => { + const RNGHChart = gestureHandlerRootHOC(Chart); + const gesture = jest.fn(); + render( + { + gesture(...args); + return args[0]; + }} + /> + ); + await act(async () => { + await sleep(1000); + }); + expect(gesture).toHaveBeenCalledTimes(1); + expect(gesture).toHaveBeenCalledWith( + expect.arrayContaining([ + expect.any(Object), + expect.any(Object), + expect.any(Object), + ]), + expect.any(Function) + ); + }); + it('support Custom gestures correctly when use RNGH - gesture', async () => { + const RNGHChart = gestureHandlerRootHOC(Chart); + render( + + ); + await act(async () => { + await sleep(1000); + }); + expect(() => getByGestureTestId('RNGH-pan-handler-test')).not.toThrow(); + expect(() => getByGestureTestId('RNGH-pan-handler')).toThrow(); + }); + it('support Custom gestures correctly when use RNGH - gesture array', async () => { + const RNGHChart = gestureHandlerRootHOC(Chart); + render( + + ); + await act(async () => { + await sleep(1000); + }); + expect(() => + getByGestureTestId('RNGH-pan-handler-test-one') + ).not.toThrow(); + expect(() => + getByGestureTestId('RNGH-pan-handler-test-two') + ).not.toThrow(); + expect(() => getByGestureTestId('RNGH-pan-handler')).toThrow(); + }); }); }); diff --git a/src/__tests__/index.test.tsx b/src/__tests__/index.test.tsx index 041c5ed29..c3c486daa 100644 --- a/src/__tests__/index.test.tsx +++ b/src/__tests__/index.test.tsx @@ -1,6 +1,7 @@ /** * @jest-environment @shopify/react-native-skia/jestEnv.mjs */ +// tests for basic props import React from 'react'; import { render } from '@testing-library/react-native'; import SkiaComponent from '../skiaChart'; diff --git a/src/__tests__/web.test.tsx b/src/__tests__/web.test.tsx new file mode 100644 index 000000000..ab2d71df4 --- /dev/null +++ b/src/__tests__/web.test.tsx @@ -0,0 +1,2 @@ +// tests for web support +test.todo('should correctly rendered in web'); diff --git a/src/components/PanResponderHandler.tsx b/src/components/PanResponderHandler.tsx index c01df88e8..8752759e6 100644 --- a/src/components/PanResponderHandler.tsx +++ b/src/components/PanResponderHandler.tsx @@ -33,7 +33,13 @@ export function PanResponderHandler({ dispatchEvents, }: PanResponderHandlerProps) { const [panResponder] = usePanResponder(dispatchEvents); - return ; + return ( + + ); } export function usePanResponder( diff --git a/src/components/RNGestureHandler.tsx b/src/components/RNGestureHandler.tsx index 5eb702c17..5e1d2c64c 100644 --- a/src/components/RNGestureHandler.tsx +++ b/src/components/RNGestureHandler.tsx @@ -20,6 +20,7 @@ export const getDefaultPanRNGesture = ( ) => { return Gesture.Pan() .runOnJS(true) + .withTestId('RNGH-pan-handler') .maxPointers(1) .onBegin((e) => { dispatchEvents(['mousedown', 'mousemove'], e); @@ -40,6 +41,7 @@ export const getDefaultPinchRNGesture = ( ) => { return Gesture.Pinch() .runOnJS(true) + .withTestId('RNGH-pinch-handler') .onUpdate( throttle((e) => { dispatchEvents(['mousewheel'], e, { @@ -57,6 +59,7 @@ export const getDefaultTapRNGesture = ( ) => { return Gesture.Tap() .runOnJS(true) + .withTestId('RNGH-tap-handler') .onStart((e) => { dispatchEvents(['mousedown', 'mousemove'], e); }) diff --git a/src/skiaChart.tsx b/src/skiaChart.tsx index a7607526b..84f6bc459 100644 --- a/src/skiaChart.tsx +++ b/src/skiaChart.tsx @@ -8,7 +8,13 @@ import React, { useRef, } from 'react'; -import { Canvas, ImageSVG, Skia, SkSVG, useCanvasRef } from '@shopify/react-native-skia'; +import { + Canvas, + ImageSVG, + Skia, + SkSVG, + useCanvasRef, +} from '@shopify/react-native-skia'; import { View } from 'react-native'; @@ -55,7 +61,7 @@ function SkiaComponent( const [width, setWidth] = useState(initialWidth ?? 0); const [height, setHeight] = useState(initialHeight ?? 0); const zrenderId = useRef(); - const canvasRef = useCanvasRef(); + const canvasRef = useCanvasRef?.(); const dispatchEvents = useCallback( (types, nativeEvent, eventArgs) => { @@ -88,9 +94,11 @@ function SkiaComponent( zrenderId.current = id; }, makeImageSnapshot: () => { - const image = canvasRef.current?.makeImageSnapshot(); - return image ? `data:image/png;base64,${image.encodeToBase64()}` : null; - } + const image = canvasRef?.current?.makeImageSnapshot(); + return image + ? `data:image/png;base64,${image.encodeToBase64()}` + : null; + }, }, viewprot: {}, dispatchEvents, @@ -101,12 +109,16 @@ function SkiaComponent( }; }, }), - [dispatchEvents, initialWidth, initialHeight] + [dispatchEvents, initialWidth, initialHeight, canvasRef] ); return svgString ? ( - + {handleGesture ? ( diff --git a/yarn.lock b/yarn.lock index 2573236a0..80855c802 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1366,6 +1366,13 @@ dependencies: "@types/hammerjs" "^2.0.36" +"@emnapi/runtime@^0.45.0": + version "0.45.0" + resolved "https://registry.yarnpkg.com/@emnapi/runtime/-/runtime-0.45.0.tgz#e754de04c683263f34fd0c7f32adfe718bbe4ddd" + integrity sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w== + dependencies: + tslib "^2.4.0" + "@eslint-community/eslint-utils@^4.2.0": version "4.4.0" resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" @@ -1439,6 +1446,119 @@ resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== +"@img/sharp-darwin-arm64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz#0a52a82c2169112794dac2c71bfba9e90f7c5bd1" + integrity sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w== + optionalDependencies: + "@img/sharp-libvips-darwin-arm64" "1.0.1" + +"@img/sharp-darwin-x64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz#982e26bb9d38a81f75915c4032539aed621d1c21" + integrity sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg== + optionalDependencies: + "@img/sharp-libvips-darwin-x64" "1.0.1" + +"@img/sharp-libvips-darwin-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz#81e83ffc2c497b3100e2f253766490f8fad479cd" + integrity sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw== + +"@img/sharp-libvips-darwin-x64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz#fc1fcd9d78a178819eefe2c1a1662067a83ab1d6" + integrity sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog== + +"@img/sharp-libvips-linux-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz#26eb8c556a9b0db95f343fc444abc3effb67ebcf" + integrity sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA== + +"@img/sharp-libvips-linux-arm@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz#2a377b959ff7dd6528deee486c25461296a4fa8b" + integrity sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ== + +"@img/sharp-libvips-linux-s390x@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz#af28ac9ba929204467ecdf843330d791e9421e10" + integrity sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ== + +"@img/sharp-libvips-linux-x64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz#4273d182aa51912e655e1214ea47983d7c1f7f8d" + integrity sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw== + +"@img/sharp-libvips-linuxmusl-arm64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz#d150c92151cea2e8d120ad168b9c358d09c77ce8" + integrity sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg== + +"@img/sharp-libvips-linuxmusl-x64@1.0.1": + version "1.0.1" + resolved "https://registry.yarnpkg.com/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz#e297c1a4252c670d93b0f9e51fca40a7a5b6acfd" + integrity sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw== + +"@img/sharp-linux-arm64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz#af3409f801a9bee1d11d0c7e971dcd6180f80022" + integrity sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew== + optionalDependencies: + "@img/sharp-libvips-linux-arm64" "1.0.1" + +"@img/sharp-linux-arm@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz#181f7466e6ac074042a38bfb679eb82505e17083" + integrity sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA== + optionalDependencies: + "@img/sharp-libvips-linux-arm" "1.0.1" + +"@img/sharp-linux-s390x@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz#9c171f49211f96fba84410b3e237b301286fa00f" + integrity sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA== + optionalDependencies: + "@img/sharp-libvips-linux-s390x" "1.0.1" + +"@img/sharp-linux-x64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz#b956dfc092adc58c2bf0fae2077e6f01a8b2d5d7" + integrity sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A== + optionalDependencies: + "@img/sharp-libvips-linux-x64" "1.0.1" + +"@img/sharp-linuxmusl-arm64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz#10e0ec5a79d1234c6a71df44c9f3b0bef0bc0f15" + integrity sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-arm64" "1.0.1" + +"@img/sharp-linuxmusl-x64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz#29e0030c24aa27c38201b1fc84e3d172899fcbe0" + integrity sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A== + optionalDependencies: + "@img/sharp-libvips-linuxmusl-x64" "1.0.1" + +"@img/sharp-wasm32@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz#38d7c740a22de83a60ad1e6bcfce17462b0d4230" + integrity sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ== + dependencies: + "@emnapi/runtime" "^0.45.0" + +"@img/sharp-win32-ia32@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz#09456314e223f68e5417c283b45c399635c16202" + integrity sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g== + +"@img/sharp-win32-x64@0.33.2": + version "0.33.2" + resolved "https://registry.yarnpkg.com/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz#148e96dfd6e68747da41a311b9ee4559bb1b1471" + integrity sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg== + "@isaacs/ttlcache@^1.4.1": version "1.4.1" resolved "https://registry.yarnpkg.com/@isaacs/ttlcache/-/ttlcache-1.4.1.tgz#21fb23db34e9b6220c6ba023a0118a2dd3461ea2" @@ -1878,43 +1998,43 @@ "@pnpm/network.ca-file" "^1.0.1" config-chain "^1.1.11" -"@react-native-community/cli-clean@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.0.tgz#667b32daa58b4d11d5b5ab9eb0a2e216d500c90b" - integrity sha512-iAgLCOWYRGh9ukr+eVQnhkV/OqN3V2EGd/in33Ggn/Mj4uO6+oUncXFwB+yjlyaUNz6FfjudhIz09yYGSF+9sg== +"@react-native-community/cli-clean@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-clean/-/cli-clean-12.3.2.tgz#d4f1730c3d22d816b4d513d330d5f3896a3f5921" + integrity sha512-90k2hCX0ddSFPT7EN7h5SZj0XZPXP0+y/++v262hssoey3nhurwF57NGWN0XAR0o9BSW7+mBfeInfabzDraO6A== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" -"@react-native-community/cli-config@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.0.tgz#255b4e5391878937a25888f452f50a968d053e3e" - integrity sha512-BrTn5ndFD9uOxO8kxBQ32EpbtOvAsQExGPI7SokdI4Zlve70FziLtTq91LTlTUgMq1InVZn/jJb3VIDk6BTInQ== +"@react-native-community/cli-config@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-config/-/cli-config-12.3.2.tgz#1a5de302de4d597ff2fc9932a032134b6ec4325f" + integrity sha512-UUCzDjQgvAVL/57rL7eOuFUhd+d+6qfM7V8uOegQFeFEmSmvUUDLYoXpBa5vAK9JgQtSqMBJ1Shmwao+/oElxQ== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" cosmiconfig "^5.1.0" deepmerge "^4.3.0" glob "^7.1.3" joi "^17.2.1" -"@react-native-community/cli-debugger-ui@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.0.tgz#75bbb2082a369b3559e0dffa8bfeebf2a9107e3e" - integrity sha512-w3b0iwjQlk47GhZWHaeTG8kKH09NCMUJO729xSdMBXE8rlbm4kHpKbxQY9qKb6NlfWSJN4noGY+FkNZS2rRwnQ== +"@react-native-community/cli-debugger-ui@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-debugger-ui/-/cli-debugger-ui-12.3.2.tgz#b2743876b03e560fbf5ef516e95387fcb6d91630" + integrity sha512-nSWQUL+51J682DlfcC1bjkUbQbGvHCC25jpqTwHIjmmVjYCX1uHuhPSqQKgPNdvtfOkrkACxczd7kVMmetxY2Q== dependencies: serve-static "^1.13.1" -"@react-native-community/cli-doctor@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.0.tgz#420eb4e80d482f16d431c4df33fbc203862508af" - integrity sha512-BPCwNNesoQMkKsxB08Ayy6URgGQ8Kndv6mMhIvJSNdST3J1+x3ehBHXzG9B9Vfi+DrTKRb8lmEl/b/7VkDlPkA== +"@react-native-community/cli-doctor@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-12.3.2.tgz#9e82b49f04ee03872b2975f26c8799cecac021ce" + integrity sha512-GrAabdY4qtBX49knHFvEAdLtCjkmndjTeqhYO6BhsbAeKOtspcLT/0WRgdLIaKODRa61ADNB3K5Zm4dU0QrZOg== dependencies: - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-config" "12.3.2" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-platform-ios" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" command-exists "^1.2.8" deepmerge "^4.3.0" @@ -1929,53 +2049,53 @@ wcwidth "^1.0.1" yaml "^2.2.1" -"@react-native-community/cli-hermes@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.0.tgz#c302acbfb07e1f4e73e76e3150c32f0e4f54e9ed" - integrity sha512-G6FxpeZBO4AimKZwtWR3dpXRqTvsmEqlIkkxgwthdzn3LbVjDVIXKpVYU9PkR5cnT+KuAUxO0WwthrJ6Nmrrlg== +"@react-native-community/cli-hermes@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-12.3.2.tgz#5f266985fe32a37e9020e881460e9017870be2e5" + integrity sha512-SL6F9O8ghp4ESBFH2YAPLtIN39jdnvGBKnK4FGKpDCjtB3DnUmDsGFlH46S+GGt5M6VzfG2eeKEOKf3pZ6jUzA== dependencies: - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" hermes-profile-transformer "^0.0.6" ip "^1.1.5" -"@react-native-community/cli-platform-android@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.0.tgz#eafa5fb12ebc25f716aea18cd55039c19fbedca6" - integrity sha512-VU1NZw63+GLU2TnyQ919bEMThpHQ/oMFju9MCfrd3pyPJz4Sn+vc3NfnTDUVA5Z5yfLijFOkHIHr4vo/C9bjnw== +"@react-native-community/cli-platform-android@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-12.3.2.tgz#de54d89712f8ea95046d798ec274fd6caea70c34" + integrity sha512-MZ5nO8yi/N+Fj2i9BJcJ9C/ez+9/Ir7lQt49DWRo9YDmzye66mYLr/P2l/qxsixllbbDi7BXrlLpxaEhMrDopg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.2.4" glob "^7.1.3" logkitty "^0.7.1" -"@react-native-community/cli-platform-ios@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.0.tgz#42a9185bb51f35a7eb9c5818b2f0072846945ef5" - integrity sha512-H95Sgt3wT7L8V75V0syFJDtv4YgqK5zbu69ko4yrXGv8dv2EBi6qZP0VMmkqXDamoPm9/U7tDTdbcf26ctnLfg== +"@react-native-community/cli-platform-ios@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-12.3.2.tgz#07e298f69761424da85909790a43ec60ebfe6097" + integrity sha512-OcWEAbkev1IL6SUiQnM6DQdsvfsKZhRZtoBNSj9MfdmwotVZSOEZJ+IjZ1FR9ChvMWayO9ns/o8LgoQxr1ZXeg== dependencies: - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-tools" "12.3.2" chalk "^4.1.2" execa "^5.0.0" fast-xml-parser "^4.0.12" glob "^7.1.3" ora "^5.4.1" -"@react-native-community/cli-plugin-metro@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.0.tgz#b4ea8da691d294aee98ccfcd1162bcd958cae834" - integrity sha512-tYNHIYnNmxrBcsqbE2dAnLMzlKI3Cp1p1xUgTrNaOMsGPDN1epzNfa34n6Nps3iwKElSL7Js91CzYNqgTalucA== +"@react-native-community/cli-plugin-metro@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-plugin-metro/-/cli-plugin-metro-12.3.2.tgz#7db7dc8939b821b9aeebdd5ee3293f3a0201a2ea" + integrity sha512-FpFBwu+d2E7KRhYPTkKvQsWb2/JKsJv+t1tcqgQkn+oByhp+qGyXBobFB8/R3yYvRRDCSDhS+atWTJzk9TjM8g== -"@react-native-community/cli-server-api@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.0.tgz#0460472d44c121d1db8a98ad1df811200c074fb3" - integrity sha512-Rode8NrdyByC+lBKHHn+/W8Zu0c+DajJvLmOWbe2WY/ECvnwcd9MHHbu92hlT2EQaJ9LbLhGrSbQE3cQy9EOCw== +"@react-native-community/cli-server-api@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-server-api/-/cli-server-api-12.3.2.tgz#11df4e20ed72d59cf22adf77bd30aff3d6e70dc9" + integrity sha512-iwa7EO9XFA/OjI5pPLLpI/6mFVqv8L73kNck3CNOJIUCCveGXBKK0VMyOkXaf/BYnihgQrXh+x5cxbDbggr7+Q== dependencies: - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@react-native-community/cli-debugger-ui" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" compression "^1.7.1" connect "^3.6.5" errorhandler "^1.5.1" @@ -1984,10 +2104,10 @@ serve-static "^1.13.1" ws "^7.5.1" -"@react-native-community/cli-tools@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.0.tgz#d459a116e1a95034d3c9a6385069c9e2049fb2a6" - integrity sha512-2GafnCr8D88VdClwnm9KZfkEb+lzVoFdr/7ybqhdeYM0Vnt/tr2N+fM1EQzwI1DpzXiBzTYemw8GjRq+Utcz2Q== +"@react-native-community/cli-tools@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-tools/-/cli-tools-12.3.2.tgz#d3362b04fba3f73ec82c5a493696b575acfb420c" + integrity sha512-nDH7vuEicHI2TI0jac/DjT3fr977iWXRdgVAqPZFFczlbs7A8GQvEdGnZ1G8dqRUmg+kptw0e4hwczAOG89JzQ== dependencies: appdirsjs "^1.2.4" chalk "^4.1.2" @@ -2000,27 +2120,27 @@ shell-quote "^1.7.3" sudo-prompt "^9.0.0" -"@react-native-community/cli-types@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.0.tgz#2d21a1f93aefbdb34a04311d68097aef0388704f" - integrity sha512-MgOkmrXH4zsGxhte4YqKL7d+N8ZNEd3w1wo56MZlhu5WabwCJh87wYpU5T8vyfujFLYOFuFK5jjlcbs8F4/WDw== +"@react-native-community/cli-types@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli-types/-/cli-types-12.3.2.tgz#0551c553c87701faae580097d7786dfff8ec2ef4" + integrity sha512-9D0UEFqLW8JmS16mjHJxUJWX8E+zJddrHILSH8AJHZ0NNHv4u2DXKdb0wFLMobFxGNxPT+VSOjc60fGvXzWHog== dependencies: joi "^17.2.1" -"@react-native-community/cli@12.3.0": - version "12.3.0" - resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.0.tgz#c89aacc3973943bf24002255d7d0859b511d88a1" - integrity sha512-XeQohi2E+S2+MMSz97QcEZ/bWpi8sfKiQg35XuYeJkc32Til2g0b97jRpn0/+fV0BInHoG1CQYWwHA7opMsrHg== - dependencies: - "@react-native-community/cli-clean" "12.3.0" - "@react-native-community/cli-config" "12.3.0" - "@react-native-community/cli-debugger-ui" "12.3.0" - "@react-native-community/cli-doctor" "12.3.0" - "@react-native-community/cli-hermes" "12.3.0" - "@react-native-community/cli-plugin-metro" "12.3.0" - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" - "@react-native-community/cli-types" "12.3.0" +"@react-native-community/cli@12.3.2": + version "12.3.2" + resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-12.3.2.tgz#002ae3683b9fe6b0a83a837f41d9db541ea7667f" + integrity sha512-WgoUWwLDcf/G1Su2COUUVs3RzAwnV/vUTdISSpAUGgSc57mPabaAoUctKTnfYEhCnE3j02k3VtaVPwCAFRO3TQ== + dependencies: + "@react-native-community/cli-clean" "12.3.2" + "@react-native-community/cli-config" "12.3.2" + "@react-native-community/cli-debugger-ui" "12.3.2" + "@react-native-community/cli-doctor" "12.3.2" + "@react-native-community/cli-hermes" "12.3.2" + "@react-native-community/cli-plugin-metro" "12.3.2" + "@react-native-community/cli-server-api" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" + "@react-native-community/cli-types" "12.3.2" chalk "^4.1.2" commander "^9.4.1" deepmerge "^4.3.0" @@ -2067,6 +2187,13 @@ dependencies: "@react-native/codegen" "0.73.2" +"@react-native/babel-plugin-codegen@0.73.4": + version "0.73.4" + resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.73.4.tgz#8a2037d5585b41877611498ae66adbf1dddfec1b" + integrity sha512-XzRd8MJGo4Zc5KsphDHBYJzS1ryOHg8I2gOZDAUCGcwLFhdyGu1zBNDJYH2GFyDrInn9TzAbRIf3d4O+eltXQQ== + dependencies: + "@react-native/codegen" "0.73.3" + "@react-native/babel-preset@0.73.19": version "0.73.19" resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.19.tgz#a6c0587651804f8f01d6f3b7729f1d4a2d469691" @@ -2115,6 +2242,54 @@ babel-plugin-transform-flow-enums "^0.0.2" react-refresh "^0.14.0" +"@react-native/babel-preset@0.73.21": + version "0.73.21" + resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.73.21.tgz#174c16493fa4e311b2f5f0c58d4f3c6a5a68bbea" + integrity sha512-WlFttNnySKQMeujN09fRmrdWqh46QyJluM5jdtDNrkl/2Hx6N4XeDUGhABvConeK95OidVO7sFFf7sNebVXogA== + dependencies: + "@babel/core" "^7.20.0" + "@babel/plugin-proposal-async-generator-functions" "^7.0.0" + "@babel/plugin-proposal-class-properties" "^7.18.0" + "@babel/plugin-proposal-export-default-from" "^7.0.0" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.0" + "@babel/plugin-proposal-numeric-separator" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.20.0" + "@babel/plugin-proposal-optional-catch-binding" "^7.0.0" + "@babel/plugin-proposal-optional-chaining" "^7.20.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-export-default-from" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.18.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.0.0" + "@babel/plugin-syntax-optional-chaining" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-async-to-generator" "^7.20.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.20.0" + "@babel/plugin-transform-flow-strip-types" "^7.20.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-private-methods" "^7.22.5" + "@babel/plugin-transform-private-property-in-object" "^7.22.11" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-react-jsx-self" "^7.0.0" + "@babel/plugin-transform-react-jsx-source" "^7.0.0" + "@babel/plugin-transform-runtime" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-sticky-regex" "^7.0.0" + "@babel/plugin-transform-typescript" "^7.5.0" + "@babel/plugin-transform-unicode-regex" "^7.0.0" + "@babel/template" "^7.0.0" + "@react-native/babel-plugin-codegen" "0.73.4" + babel-plugin-transform-flow-enums "^0.0.2" + react-refresh "^0.14.0" + "@react-native/codegen@0.73.2": version "0.73.2" resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.2.tgz#58af4e4c3098f0e6338e88ec64412c014dd51519" @@ -2128,15 +2303,28 @@ mkdirp "^0.5.1" nullthrows "^1.1.1" -"@react-native/community-cli-plugin@0.73.12": - version "0.73.12" - resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.12.tgz#3a72a8cbae839a0382d1a194a7067d4ffa0da04c" - integrity sha512-xWU06OkC1cX++Duh/cD/Wv+oZ0oSY3yqbtxAqQA2H3Q+MQltNNJM6MqIHt1VOZSabRf/LVlR1JL6U9TXJirkaw== +"@react-native/codegen@0.73.3": + version "0.73.3" + resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.73.3.tgz#cc984a8b17334d986cc600254a0d4b7fa7d68a94" + integrity sha512-sxslCAAb8kM06vGy9Jyh4TtvjhcP36k/rvj2QE2Jdhdm61KvfafCATSIsOfc0QvnduWFcpXUPvAVyYwuv7PYDg== dependencies: - "@react-native-community/cli-server-api" "12.3.0" - "@react-native-community/cli-tools" "12.3.0" + "@babel/parser" "^7.20.0" + flow-parser "^0.206.0" + glob "^7.1.1" + invariant "^2.2.4" + jscodeshift "^0.14.0" + mkdirp "^0.5.1" + nullthrows "^1.1.1" + +"@react-native/community-cli-plugin@0.73.16": + version "0.73.16" + resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.73.16.tgz#29dca91aa3e24c8cd534dbf3db5766509da92ea3" + integrity sha512-eNH3v3qJJF6f0n/Dck90qfC9gVOR4coAXMTdYECO33GfgjTi+73vf/SBqlXw9HICH/RNZYGPM3wca4FRF7TYeQ== + dependencies: + "@react-native-community/cli-server-api" "12.3.2" + "@react-native-community/cli-tools" "12.3.2" "@react-native/dev-middleware" "0.73.7" - "@react-native/metro-babel-transformer" "0.73.13" + "@react-native/metro-babel-transformer" "0.73.15" chalk "^4.0.0" execa "^5.1.1" metro "^0.80.3" @@ -2176,13 +2364,13 @@ resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.73.1.tgz#730b0a7aaab947ae6f8e5aa9d995e788977191ed" integrity sha512-ewMwGcumrilnF87H4jjrnvGZEaPFCAC4ebraEK+CurDDmwST/bIicI4hrOAv+0Z0F7DEK4O4H7r8q9vH7IbN4g== -"@react-native/metro-babel-transformer@0.73.13": - version "0.73.13" - resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.13.tgz#81cb6dd8d5140c57f5595183fd6857feb8b7f5d7" - integrity sha512-k9AQifogQfgUXPlqQSoMtX2KUhniw4XvJl+nZ4hphCH7qiMDAwuP8OmkJbz5E/N+Ro9OFuLE7ax4GlwxaTsAWg== +"@react-native/metro-babel-transformer@0.73.15": + version "0.73.15" + resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.73.15.tgz#c516584dde62d65a46668074084359c03e6a50f1" + integrity sha512-LlkSGaXCz+xdxc9819plmpsl4P4gZndoFtpjN3GMBIu6f7TBV0GVbyJAU4GE8fuAWPVSVL5ArOcdkWKSbI1klw== dependencies: "@babel/core" "^7.20.0" - "@react-native/babel-preset" "0.73.19" + "@react-native/babel-preset" "0.73.21" hermes-parser "0.15.0" nullthrows "^1.1.1" @@ -2408,6 +2596,22 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.11.tgz#2596fb352ee96a1379c657734d4b913a613ad563" integrity sha512-ga8y9v9uyeiLdpKddhxYQkxNDrfvuPrlFb0N1qnZZByvcElJaXthF1UhvCh9TLWJBEHeNtdnbysW7Y6Uq8CVng== +"@types/react-test-renderer@^18.0.7": + version "18.0.7" + resolved "https://registry.yarnpkg.com/@types/react-test-renderer/-/react-test-renderer-18.0.7.tgz#2cfe657adb3688cdf543995eceb2e062b5a68728" + integrity sha512-1+ANPOWc6rB3IkSnElhjv6VLlKg2dSv/OWClUyZimbLsQyBn8Js9Vtdsi3UICJ2rIQ3k2la06dkB+C92QfhKmg== + dependencies: + "@types/react" "*" + +"@types/react@*": + version "18.2.56" + resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.56.tgz#2d3e9021a0b6eb5bfc227761cc61b1c6dc6e0cd8" + integrity sha512-NpwHDMkS/EFZF2dONFQHgkPRwhvgq/OAvIaGQzxGSBmaeR++kTg6njr15Vatz0/2VcCEwJQFi6Jf4Q0qBu0rLA== + dependencies: + "@types/prop-types" "*" + "@types/scheduler" "*" + csstype "^3.0.2" + "@types/react@~18.2.14": version "18.2.50" resolved "https://registry.yarnpkg.com/@types/react/-/react-18.2.50.tgz#f5cf38ed7d6f5b37668e313fea85db51f6b36380" @@ -3389,11 +3593,27 @@ color-name@1.1.3: resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== -color-name@~1.1.4: +color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== +color-string@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== + dependencies: + color-convert "^2.0.1" + color-string "^1.9.0" + colorette@^1.0.7: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" @@ -4024,6 +4244,11 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== +detect-libc@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.2.tgz#8ccf2ba9315350e1241b88d0ac3b0e1fbd99605d" + integrity sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw== + detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -4110,9 +4335,9 @@ eastasianwidth@^0.2.0: integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== echarts@^5.5.0: - version "5.5.0-rc.1" - resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.5.0-rc.1.tgz#31ee2c4e09da24fe8149bb011c1fbd271a2bf10f" - integrity sha512-Fnfls+zDAg9HLuWK27JakdjLjpkEZsKTk+eeSA6eOqphBNA9iXCI1CvQJZ5xD8WJY40bqdh4zCaE4AxSDjJslw== + version "5.5.0" + resolved "https://registry.yarnpkg.com/echarts/-/echarts-5.5.0.tgz#c13945a7f3acdd67c134d8a9ac67e917830113ac" + integrity sha512-rNYnNCzqDAPCr4m/fqyUFv7fD9qIsd50S6GDFgO1DxZhncCsNsG7IfUlAlvZe5oSEQxtsjnHiUuppzccry93Xw== dependencies: tslib "2.3.0" zrender "5.5.0" @@ -4904,6 +5129,11 @@ get-pkg-repo@^4.0.0: through2 "^2.0.0" yargs "^16.2.0" +get-stdin@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-5.0.1.tgz#122e161591e21ff4c52530305693f20e6393a398" + integrity sha512-jZV7n6jGE3Gt7fgSTJoz91Ak5MuTLwMwkoYdjxuJ/AmjIsE1UC03y/IWkZCQGEvVNS9qoRNwy5BCqxImv0FVeA== + get-stream@^5.0.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -5087,6 +5317,11 @@ globby@^13.1.2: merge2 "^1.4.1" slash "^4.0.0" +glur@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/glur/-/glur-1.1.2.tgz#f20ea36db103bfc292343921f1f91e83c3467689" + integrity sha512-l+8esYHTKOx2G/Aao4lEQ0bnHWg4fWtJbVoZZT9Knxi01pB8C80BR85nONLFwkkQoFRCmXY+BUcGZN3yZ2QsRA== + gopd@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" @@ -5477,6 +5712,11 @@ is-arrayish@^0.2.1: resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + is-async-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/is-async-function/-/is-async-function-2.0.0.tgz#8e4418efd3e5d3a6ebb0164c05ef5afb69aa9646" @@ -6079,6 +6319,20 @@ jest-haste-map@^29.7.0: optionalDependencies: fsevents "^2.3.2" +jest-image-snapshot@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/jest-image-snapshot/-/jest-image-snapshot-6.4.0.tgz#65831d13beb1680f3bba9fb28230fa53d76939be" + integrity sha512-IWGtSOnelwaVPd09STbJuLmnAwlBC/roJtTLGLb8M3TA0vfku3MRNEXmljTa1EMXqdRbA0oIWiqHFB1ttTGazQ== + dependencies: + chalk "^4.0.0" + get-stdin "^5.0.1" + glur "^1.1.2" + lodash "^4.17.4" + pixelmatch "^5.1.0" + pngjs "^3.4.0" + rimraf "^2.6.2" + ssim.js "^3.1.1" + jest-leak-detector@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz#5b7ec0dadfdfec0ca383dc9aa016d36b5ea4c728" @@ -6633,7 +6887,7 @@ lodash.upperfirst@^4.3.1: resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== -lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.15, lodash@^4.17.21, lodash@^4.17.4: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7664,6 +7918,13 @@ pirates@^4.0.4, pirates@^4.0.6: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pixelmatch@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/pixelmatch/-/pixelmatch-5.3.0.tgz#5e5321a7abedfb7962d60dbf345deda87cb9560a" + integrity sha512-o8mkY4E/+LNUf6LzX96ht6k6CEDi65k9G2rjMtBe9Oo+VPKSvl+0GKHuH/AlG+GA5LPG/i5hrekkxUc3s2HU+Q== + dependencies: + pngjs "^6.0.0" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -7678,6 +7939,16 @@ pkg-dir@^4.2.0: dependencies: find-up "^4.0.0" +pngjs@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-3.4.0.tgz#99ca7d725965fb655814eaf65f38f12bbdbf555f" + integrity sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w== + +pngjs@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/pngjs/-/pngjs-6.0.0.tgz#ca9e5d2aa48db0228a52c419c3308e87720da821" + integrity sha512-TRzzuFRRmEoSW/p1KVAmiOgPco2Irlah+bGFCeNfJXxxYGwSw7YwAOAcd7X28K/m5bjBWKsC29KyoMfHbypayg== + pod-install@^0.1.0: version "0.1.39" resolved "https://registry.yarnpkg.com/pod-install/-/pod-install-0.1.39.tgz#853a0585bafbd332c2ca6543854fd4919958cfb3" @@ -7930,18 +8201,18 @@ react-native-svg@14.1.0: css-select "^5.1.0" css-tree "^1.1.3" -react-native@0.73.2: - version "0.73.2" - resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.2.tgz#74ee163c8189660d41d1da6560411da7ce41a608" - integrity sha512-7zj9tcUYpJUBdOdXY6cM8RcXYWkyql4kMyGZflW99E5EuFPoC7Ti+ZQSl7LP9ZPzGD0vMfslwyDW0I4tPWUCFw== +react-native@0.73.4: + version "0.73.4" + resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.73.4.tgz#81e07d4e7b6308c4649d5fa24038c0e87b17f2e1" + integrity sha512-VtS+Yr6OOTIuJGDECIYWzNU8QpJjASQYvMtfa/Hvm/2/h5GdB6W9H9TOmh13x07Lj4AOhNMx3XSsz6TdrO4jIg== dependencies: "@jest/create-cache-key-function" "^29.6.3" - "@react-native-community/cli" "12.3.0" - "@react-native-community/cli-platform-android" "12.3.0" - "@react-native-community/cli-platform-ios" "12.3.0" + "@react-native-community/cli" "12.3.2" + "@react-native-community/cli-platform-android" "12.3.2" + "@react-native-community/cli-platform-ios" "12.3.2" "@react-native/assets-registry" "0.73.1" - "@react-native/codegen" "0.73.2" - "@react-native/community-cli-plugin" "0.73.12" + "@react-native/codegen" "0.73.3" + "@react-native/community-cli-plugin" "0.73.16" "@react-native/gradle-plugin" "0.73.4" "@react-native/js-polyfills" "0.73.1" "@react-native/normalize-colors" "0.73.2" @@ -7950,6 +8221,7 @@ react-native@0.73.2: anser "^1.4.9" ansi-regex "^5.0.0" base64-js "^1.5.1" + chalk "^4.0.0" deprecated-react-native-prop-types "^5.0.0" event-target-shim "^5.0.1" flow-enums-runtime "^0.0.6" @@ -8346,6 +8618,13 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== +rimraf@^2.6.2: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + rimraf@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" @@ -8550,6 +8829,35 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" +sharp@^0.33.2: + version "0.33.2" + resolved "https://registry.yarnpkg.com/sharp/-/sharp-0.33.2.tgz#fcd52f2c70effa8a02160b1bfd989a3de55f2dfb" + integrity sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ== + dependencies: + color "^4.2.3" + detect-libc "^2.0.2" + semver "^7.5.4" + optionalDependencies: + "@img/sharp-darwin-arm64" "0.33.2" + "@img/sharp-darwin-x64" "0.33.2" + "@img/sharp-libvips-darwin-arm64" "1.0.1" + "@img/sharp-libvips-darwin-x64" "1.0.1" + "@img/sharp-libvips-linux-arm" "1.0.1" + "@img/sharp-libvips-linux-arm64" "1.0.1" + "@img/sharp-libvips-linux-s390x" "1.0.1" + "@img/sharp-libvips-linux-x64" "1.0.1" + "@img/sharp-libvips-linuxmusl-arm64" "1.0.1" + "@img/sharp-libvips-linuxmusl-x64" "1.0.1" + "@img/sharp-linux-arm" "0.33.2" + "@img/sharp-linux-arm64" "0.33.2" + "@img/sharp-linux-s390x" "0.33.2" + "@img/sharp-linux-x64" "0.33.2" + "@img/sharp-linuxmusl-arm64" "0.33.2" + "@img/sharp-linuxmusl-x64" "0.33.2" + "@img/sharp-wasm32" "0.33.2" + "@img/sharp-win32-ia32" "0.33.2" + "@img/sharp-win32-x64" "0.33.2" + shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -8590,6 +8898,13 @@ signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== + dependencies: + is-arrayish "^0.3.1" + sisteransi@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" @@ -8712,6 +9027,11 @@ sprintf-js@~1.0.2: resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== +ssim.js@^3.1.1: + version "3.5.0" + resolved "https://registry.yarnpkg.com/ssim.js/-/ssim.js-3.5.0.tgz#d7276b9ee99b57a5ff0db34035f02f35197e62df" + integrity sha512-Aj6Jl2z6oDmgYFFbQqK7fght19bXdOxY7Tj03nF+03M9gCBAjeIiO8/PlEGMfKDwYpw4q6iBqVq2YuREorGg/g== + stack-utils@^2.0.3: version "2.0.6" resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-2.0.6.tgz#aaf0748169c02fc33c8232abccf933f54a1cc34f" @@ -9087,7 +9407,7 @@ tslib@^1.8.1: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2.0.1, tslib@^2.1.0: +tslib@^2.0.1, tslib@^2.1.0, tslib@^2.4.0: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==