From 66327884b094abaaba8aaba1f86925b88c330d06 Mon Sep 17 00:00:00 2001 From: svbutko Date: Mon, 8 Jan 2024 21:13:32 +0100 Subject: [PATCH] Deploy website - based on 8214ae6070a1e8d3814e60e230024b13ed6b7d0b --- 404.html | 12 +- assets/css/styles.298dab5a.css | 1 + assets/css/styles.b9b45e52.css | 1 - assets/js/0106a0c1.1710a144.js | 1 - assets/js/0106a0c1.d1be1800.js | 1 + assets/js/041eb33b.43700011.js | 1 + assets/js/041eb33b.611dc025.js | 1 - assets/js/07727b20.37a75e5b.js | 1 + assets/js/07727b20.805eee28.js | 1 - assets/js/08fac725.a66c1f1c.js | 1 - assets/js/08fac725.b98e1a8b.js | 1 + assets/js/09318855.492a5c89.js | 1 - assets/js/09318855.7eb9853a.js | 1 + assets/js/0a3d3edc.68f85f02.js | 1 + assets/js/0a3d3edc.ca9b72d5.js | 1 - assets/js/11e380a5.67fdf632.js | 1 - assets/js/11e380a5.e3acd72e.js | 1 + .../js/{1426.a1095f54.js => 1426.9ae98cef.js} | 2 +- assets/js/14f2708c.29d255d8.js | 1 - assets/js/14f2708c.86c03e1f.js | 1 + assets/js/1772.28750d4e.js | 1 - assets/js/1772.61f6592f.js | 1 + assets/js/17896441.b8f57162.js | 1 + assets/js/17896441.c9a53a75.js | 1 - assets/js/19829c28.aeb800f3.js | 1 - assets/js/19829c28.c86124af.js | 1 + assets/js/1a4e3797.1cb6e873.js | 2 + assets/js/1a4e3797.1cb6e873.js.LICENSE.txt | 1 + assets/js/1a4e3797.c412f7db.js | 2 - assets/js/1a4e3797.c412f7db.js.LICENSE.txt | 1 - assets/js/1a8cd603.865f64f7.js | 1 - assets/js/1a8cd603.dcfc27cd.js | 1 + assets/js/1df93b7f.0c57f37a.js | 1 - assets/js/1df93b7f.658fb023.js | 1 + assets/js/1e5d5012.5e888884.js | 1 + assets/js/1e5d5012.a03dfdce.js | 1 - assets/js/1f05955d.007fdd68.js | 1 + assets/js/1f05955d.2196fa80.js | 1 - assets/js/1f391b9e.6343aa54.js | 1 - assets/js/1f391b9e.e1786e1b.js | 1 + assets/js/1fd605f7.cf33b52f.js | 1 - assets/js/1fd605f7.fcd66a2f.js | 1 + assets/js/201c1feb.4a7826b0.js | 1 - assets/js/201c1feb.9dfc12d5.js | 1 + assets/js/2040cfe4.0965aba1.js | 1 - assets/js/2040cfe4.489fd29d.js | 1 + assets/js/2190081c.637ea007.js | 1 + assets/js/2190081c.ef8b1520.js | 1 - assets/js/26509314.b6616cc3.js | 1 - assets/js/26509314.bcbca1da.js | 1 + assets/js/2adfb7b8.a0be219a.js | 1 + assets/js/2adfb7b8.f980bfc3.js | 1 - assets/js/2b755825.0a21ed1b.js | 1 - assets/js/2b755825.f3702531.js | 1 + assets/js/2f2dc1d3.4e585ec4.js | 1 - assets/js/2f2dc1d3.bc9209ae.js | 1 + assets/js/30b35490.1a112f71.js | 1 - assets/js/30b35490.ca0f709c.js | 1 + assets/js/31630cdb.6aa85ab4.js | 1 + assets/js/31630cdb.c59d12fa.js | 1 - assets/js/3169c1c1.5be1a012.js | 1 + assets/js/3169c1c1.fed069e7.js | 1 - assets/js/328e254d.091fb47a.js | 1 - assets/js/328e254d.2b14dc19.js | 1 + assets/js/39654635.2b5d32a9.js | 1 + assets/js/39654635.7a5acff8.js | 1 - assets/js/3a8d2d9f.4c2de3df.js | 1 - assets/js/3a8d2d9f.fa1b2c61.js | 1 + assets/js/3c45ece2.48cbf5e3.js | 1 + assets/js/3c45ece2.d7a2f459.js | 1 - assets/js/3efb1320.4c1056c2.js | 1 - assets/js/3efb1320.f38a847a.js | 1 + assets/js/3fdaf820.e3887165.js | 1 + assets/js/3fdaf820.e96c871d.js | 1 - assets/js/43bdb0b8.26c974a0.js | 1 - assets/js/43bdb0b8.35035e38.js | 1 + assets/js/449809ec.3e26d3c8.js | 1 + assets/js/449809ec.54ca43e3.js | 1 - assets/js/4972ee25.a01aa6ad.js | 1 - assets/js/4972ee25.d33960d7.js | 1 + assets/js/4ff29f3f.7a7c8b52.js | 1 + assets/js/4ff29f3f.e0c4c233.js | 1 - assets/js/51dcefc3.56d0cc06.js | 1 - assets/js/51dcefc3.81d45bb5.js | 1 + assets/js/527ccfd4.5ba85ef3.js | 1 - assets/js/527ccfd4.d1de7e13.js | 1 + assets/js/52fe9033.01ce713c.js | 1 + assets/js/52fe9033.3d26506c.js | 1 - assets/js/5b2ba987.404c77da.js | 1 + assets/js/5b2ba987.b5ca57fd.js | 1 - assets/js/5d01a4f0.107584d1.js | 1 + assets/js/5d01a4f0.ac8b24e7.js | 1 - assets/js/5e95c892.2b96eea3.js | 1 - assets/js/5e95c892.b00730d7.js | 1 + assets/js/5ed5e9d2.43ca17c1.js | 1 - assets/js/5ed5e9d2.ef9b58ec.js | 1 + assets/js/5f847e85.9c9bcb38.js | 1 - assets/js/5f847e85.d027db0e.js | 1 + assets/js/5f9cf606.44f2588e.js | 1 + assets/js/5f9cf606.86648ebb.js | 1 - assets/js/5fbc5cf1.bda21f93.js | 1 - assets/js/5fbc5cf1.f3daa5fe.js | 1 + assets/js/6222aa5d.0fa28a8e.js | 1 - assets/js/6222aa5d.fae77e55.js | 1 + assets/js/62c33f29.0a26d829.js | 1 + assets/js/62c33f29.90bea568.js | 1 - assets/js/644e2e9e.e7333307.js | 1 - assets/js/644e2e9e.fd30308e.js | 1 + assets/js/692.7bdb5bbe.js | 1 + assets/js/69e64926.33ff0de6.js | 1 + assets/js/69e64926.9bbdcea7.js | 1 - assets/js/6e581f4b.96f0063e.js | 1 + assets/js/6e581f4b.e7c07ac3.js | 1 - assets/js/78a19f83.15cf341a.js | 1 - assets/js/78a19f83.37d604ec.js | 1 + assets/js/7f85490b.8753bb0a.js | 1 + assets/js/7f85490b.d453525b.js | 1 - assets/js/82bbd999.67be8e88.js | 1 - assets/js/82bbd999.6d0c58b6.js | 1 + assets/js/84080ef2.6ed75d33.js | 1 - assets/js/84080ef2.cf2b77e8.js | 1 + assets/js/8450a114.026a0590.js | 1 + assets/js/8450a114.b3b5a4f9.js | 1 - assets/js/8705.f0525c2d.js | 1 - assets/js/88cbf0c6.be060995.js | 1 + assets/js/88cbf0c6.e087a403.js | 1 - assets/js/8a6ff679.97520d5b.js | 1 + assets/js/8a6ff679.ae244ac5.js | 1 - assets/js/8e392f8e.c4c03b58.js | 1 - assets/js/8e392f8e.c4e39364.js | 1 + assets/js/91cb04fa.5e48e87e.js | 1 + assets/js/91cb04fa.db1aeebf.js | 1 - assets/js/94173908.51a4d942.js | 1 + assets/js/94173908.93646198.js | 1 - assets/js/9a53555d.4fd1de70.js | 1 - assets/js/9a53555d.80b7004c.js | 1 + assets/js/9bbfbce4.8001f90e.js | 1 + assets/js/9bbfbce4.c799d2c8.js | 1 - assets/js/9cf17553.21111104.js | 1 + assets/js/9cf17553.e4334942.js | 1 - assets/js/9dcf257f.9880fde7.js | 1 - assets/js/9dcf257f.aa994b3a.js | 1 + assets/js/a09f8af8.43e005a7.js | 1 - assets/js/a09f8af8.f5e6e3d1.js | 1 + assets/js/a775fdf9.80e8c4c8.js | 1 - assets/js/a775fdf9.a062c406.js | 1 + assets/js/a88c1c0e.1a5f6aa9.js | 1 - assets/js/a88c1c0e.e18aba6f.js | 1 + assets/js/a94703ab.5018fc8a.js | 1 + assets/js/a94703ab.cdc6a653.js | 1 - assets/js/aae46502.1f20f75a.js | 1 + assets/js/aae46502.ff8caf4a.js | 1 - assets/js/ae8ecedf.433c66a5.js | 1 + assets/js/ae8ecedf.af5ff458.js | 1 - assets/js/b1ef8e0a.4a06a167.js | 1 + assets/js/b1ef8e0a.fbab38ac.js | 1 - assets/js/b4a96655.ab0ff656.js | 1 + assets/js/b4a96655.c8c98c48.js | 1 - assets/js/b5ee907e.07edc557.js | 1 + assets/js/b5ee907e.a4fde704.js | 1 - assets/js/b669beb2.86b73957.js | 1 + assets/js/b669beb2.d731353f.js | 1 - assets/js/b801cfc7.208939b7.js | 1 - assets/js/b801cfc7.eeda6d62.js | 1 + assets/js/bf3f5c43.045e65bc.js | 1 + assets/js/bf3f5c43.852105d2.js | 1 - assets/js/bf787174.76a33336.js | 1 - assets/js/bf787174.c382d408.js | 1 + assets/js/c2066304.5836462d.js | 1 + assets/js/c2066304.bc39b83f.js | 1 - assets/js/c27df6d1.4c1825d8.js | 1 - assets/js/c27df6d1.d879a41e.js | 1 + assets/js/c5ed97f1.2d70f298.js | 1 - assets/js/c5ed97f1.49105c91.js | 1 + assets/js/cf5243f0.7655a082.js | 1 - assets/js/cf5243f0.97604f6e.js | 1 + assets/js/d1e36d14.4b661c0f.js | 1 - assets/js/d1e36d14.80e44583.js | 1 + assets/js/d589d3a7.6f9b2b64.js | 1 - assets/js/d589d3a7.7490123a.js | 1 + assets/js/d95e32bd.03e80a33.js | 1 - assets/js/d95e32bd.2240e801.js | 1 + assets/js/da80d167.6725179b.js | 1 + assets/js/da80d167.8f9c40c1.js | 1 - assets/js/e1df6725.8ee2038c.js | 1 - assets/js/e1df6725.9a0719f9.js | 1 + assets/js/e2ad1f17.c74488c3.js | 1 + assets/js/e2ad1f17.ec08ace9.js | 1 - assets/js/e690c9e7.8de738ed.js | 1 - assets/js/e690c9e7.a8a7b878.js | 1 + assets/js/e7a9e65a.0490afce.js | 1 + assets/js/e7a9e65a.3701b4d9.js | 1 - assets/js/eb838824.b932796e.js | 1 - assets/js/eb838824.dd21056d.js | 1 + assets/js/ec7be5cc.0e067126.js | 1 + assets/js/ec7be5cc.c2f58dfb.js | 1 - assets/js/edb259cb.b9d7e83a.js | 1 + assets/js/edb259cb.dad21e98.js | 1 - assets/js/ede50c9e.1818c4e1.js | 1 + assets/js/ede50c9e.b2646eea.js | 1 - assets/js/f2beb3a0.3e2ae2a9.js | 1 + assets/js/f2beb3a0.8ab47bb0.js | 1 - assets/js/f2f008bc.2cbfe496.js | 1 + assets/js/f2f008bc.8430308a.js | 1 - assets/js/f49fe340.4f3a16a3.js | 1 + assets/js/f49fe340.be6915ca.js | 1 - assets/js/fa6c2e8e.17e6b11e.js | 1 - assets/js/fa6c2e8e.7184605f.js | 1 + assets/js/fab06093.86830fe6.js | 1 - assets/js/fab06093.f3769e20.js | 1 + assets/js/fcca6dac.03772928.js | 1 + assets/js/fcca6dac.121d13b6.js | 1 - assets/js/fcde09bc.4579637d.js | 1 - assets/js/fcde09bc.a9ee9d0b.js | 1 + assets/js/ff6d8346.7b8a532e.js | 1 + assets/js/ff6d8346.a76d8393.js | 1 - assets/js/main.17deb7e1.js | 2 - assets/js/main.47c9f7f0.js | 2 + ...CENSE.txt => main.47c9f7f0.js.LICENSE.txt} | 32 ++--- assets/js/runtime~main.c7918995.js | 1 + assets/js/runtime~main.d3db3302.js | 1 - docs/api/index.html | 14 +- docs/app-icon/index.html | 14 +- docs/app-release/index.html | 14 +- docs/checking-updates/index.html | 14 +- docs/common-constants/index.html | 14 +- .../components/date-picker-overlay/index.html | 56 ++------ docs/components/empty-view/index.html | 44 ++----- docs/components/flat-list-wrapper/index.html | 49 ++----- docs/components/icon-platform/index.html | 56 ++------ .../image-crop-picker-button/index.html | 91 ++----------- docs/components/loading-component/index.html | 14 +- .../components/photo-taking-button/index.html | 77 ++--------- docs/components/primary-button/index.html | 91 ++----------- docs/components/primary-text-input/index.html | 68 +--------- docs/components/radio-button/index.html | 70 ++-------- docs/components/radio-icon/index.html | 42 ++---- .../section-list-wrapper/index.html | 49 ++----- docs/components/separator/index.html | 37 ++---- docs/components/toast-overlay/index.html | 70 ++-------- docs/components/touchable-platform/index.html | 42 ++---- docs/components/try-again/index.html | 42 ++---- docs/configs/babel-config/index.html | 14 +- docs/configs/detox-config/index.html | 12 +- docs/configs/eslint-config/index.html | 14 +- docs/configs/jest-config/index.html | 14 +- docs/configs/metro-config/index.html | 12 +- docs/configs/prettier-config/index.html | 14 +- docs/configs/rn-config/index.html | 12 +- docs/configs/ts-config/index.html | 12 +- docs/dependencies/index.html | 50 +++---- docs/environments/index.html | 16 +-- docs/getting-started/index.html | 22 ++-- docs/helpers/calculate-page/index.html | 42 ++---- docs/helpers/color-helpers/index.html | 102 ++------------- .../default-key-id-extractor/index.html | 35 ++--- docs/helpers/dialogs-helpers/index.html | 123 ++---------------- docs/helpers/image-helpers/index.html | 35 ++--- docs/helpers/in-app-review-helper/index.html | 49 ++----- docs/helpers/net-info-helpers/index.html | 16 +-- docs/helpers/orientation-helpers/index.html | 37 ++---- docs/helpers/regex-helpers/index.html | 35 ++--- docs/helpers/share-helpers/index.html | 116 ++--------------- docs/helpers/strings-helpers/index.html | 81 ++---------- docs/hooks/use-back-handler/index.html | 14 +- docs/hooks/use-debounce/index.html | 14 +- docs/hooks/use-event-register/index.html | 14 +- docs/hooks/use-flat-list-actions/index.html | 16 +-- docs/hooks/use-previous/index.html | 14 +- docs/hooks/use-why-did-you-update/index.html | 14 +- docs/internals/android/index.html | 32 +++-- docs/internals/ios/index.html | 23 ++-- docs/localisation/add-language/index.html | 26 ++-- docs/localisation/change-language/index.html | 14 +- docs/localisation/date-formatter/index.html | 26 ++-- docs/localisation/intl-formatter/index.html | 22 ++-- docs/localisation/translations/index.html | 22 ++-- docs/navigation/actions/index.html | 16 +-- docs/navigation/before-starting/index.html | 14 +- docs/navigation/default-options/index.html | 18 +-- docs/navigation/hooks/index.html | 14 +- .../navigation/overlays-and-modals/index.html | 14 +- docs/navigation/pages/index.html | 24 ++-- docs/navigation/roots/index.html | 14 +- docs/pages/native-splash/index.html | 14 +- docs/pages/onboarding/index.html | 14 +- docs/pages/splash/index.html | 16 +-- docs/patches/index.html | 16 +-- docs/redux/async-thunk/index.html | 20 +-- docs/redux/before-starting/index.html | 26 ++-- docs/redux/core-idea/index.html | 16 +-- docs/redux/hooks/index.html | 18 +-- docs/redux/slice/index.html | 20 +-- docs/redux/state/index.html | 14 +- docs/redux/store/index.html | 20 +-- docs/resources/fonts/index.html | 22 ++-- docs/resources/images/index.html | 18 +-- docs/resources/sf-symbols/index.html | 20 +-- docs/resources/vector-icons/index.html | 18 +-- docs/structure/module/index.html | 14 +- docs/structure/project/index.html | 24 ++-- docs/styles/common-sizes/index.html | 16 +-- docs/styles/common-styles/index.html | 14 +- docs/styles/component-styles/index.html | 18 +-- docs/testing/detox/index.html | 18 +-- docs/testing/jest/index.html | 22 ++-- docs/testing/storybook/index.html | 20 +-- docs/themes/colors/index.html | 24 ++-- docs/themes/native-colors/index.html | 36 ++--- docs/types/index.html | 14 +- docs/utils/list-handlers/index.html | 14 +- docs/utils/new-state/index.html | 14 +- docs/utils/serialize-query-params/index.html | 12 +- docs/utils/url-openers/index.html | 22 ++-- docs/validations/index.html | 20 +-- faq/index.html | 14 +- index.html | 12 +- mission/index.html | 14 +- search/index.html | 12 +- troubleshooting/index.html | 14 +- 320 files changed, 995 insertions(+), 2109 deletions(-) create mode 100644 assets/css/styles.298dab5a.css delete mode 100644 assets/css/styles.b9b45e52.css delete mode 100644 assets/js/0106a0c1.1710a144.js create mode 100644 assets/js/0106a0c1.d1be1800.js create mode 100644 assets/js/041eb33b.43700011.js delete mode 100644 assets/js/041eb33b.611dc025.js create mode 100644 assets/js/07727b20.37a75e5b.js delete mode 100644 assets/js/07727b20.805eee28.js delete mode 100644 assets/js/08fac725.a66c1f1c.js create mode 100644 assets/js/08fac725.b98e1a8b.js delete mode 100644 assets/js/09318855.492a5c89.js create mode 100644 assets/js/09318855.7eb9853a.js create mode 100644 assets/js/0a3d3edc.68f85f02.js delete mode 100644 assets/js/0a3d3edc.ca9b72d5.js delete mode 100644 assets/js/11e380a5.67fdf632.js create mode 100644 assets/js/11e380a5.e3acd72e.js rename assets/js/{1426.a1095f54.js => 1426.9ae98cef.js} (69%) delete mode 100644 assets/js/14f2708c.29d255d8.js create mode 100644 assets/js/14f2708c.86c03e1f.js delete mode 100644 assets/js/1772.28750d4e.js create mode 100644 assets/js/1772.61f6592f.js create mode 100644 assets/js/17896441.b8f57162.js delete mode 100644 assets/js/17896441.c9a53a75.js delete mode 100644 assets/js/19829c28.aeb800f3.js create mode 100644 assets/js/19829c28.c86124af.js create mode 100644 assets/js/1a4e3797.1cb6e873.js create mode 100644 assets/js/1a4e3797.1cb6e873.js.LICENSE.txt delete mode 100644 assets/js/1a4e3797.c412f7db.js delete mode 100644 assets/js/1a4e3797.c412f7db.js.LICENSE.txt delete mode 100644 assets/js/1a8cd603.865f64f7.js create mode 100644 assets/js/1a8cd603.dcfc27cd.js delete mode 100644 assets/js/1df93b7f.0c57f37a.js create mode 100644 assets/js/1df93b7f.658fb023.js create mode 100644 assets/js/1e5d5012.5e888884.js delete mode 100644 assets/js/1e5d5012.a03dfdce.js create mode 100644 assets/js/1f05955d.007fdd68.js delete mode 100644 assets/js/1f05955d.2196fa80.js delete mode 100644 assets/js/1f391b9e.6343aa54.js create mode 100644 assets/js/1f391b9e.e1786e1b.js delete mode 100644 assets/js/1fd605f7.cf33b52f.js create mode 100644 assets/js/1fd605f7.fcd66a2f.js delete mode 100644 assets/js/201c1feb.4a7826b0.js create mode 100644 assets/js/201c1feb.9dfc12d5.js delete mode 100644 assets/js/2040cfe4.0965aba1.js create mode 100644 assets/js/2040cfe4.489fd29d.js create mode 100644 assets/js/2190081c.637ea007.js delete mode 100644 assets/js/2190081c.ef8b1520.js delete mode 100644 assets/js/26509314.b6616cc3.js create mode 100644 assets/js/26509314.bcbca1da.js create mode 100644 assets/js/2adfb7b8.a0be219a.js delete mode 100644 assets/js/2adfb7b8.f980bfc3.js delete mode 100644 assets/js/2b755825.0a21ed1b.js create mode 100644 assets/js/2b755825.f3702531.js delete mode 100644 assets/js/2f2dc1d3.4e585ec4.js create mode 100644 assets/js/2f2dc1d3.bc9209ae.js delete mode 100644 assets/js/30b35490.1a112f71.js create mode 100644 assets/js/30b35490.ca0f709c.js create mode 100644 assets/js/31630cdb.6aa85ab4.js delete mode 100644 assets/js/31630cdb.c59d12fa.js create mode 100644 assets/js/3169c1c1.5be1a012.js delete mode 100644 assets/js/3169c1c1.fed069e7.js delete mode 100644 assets/js/328e254d.091fb47a.js create mode 100644 assets/js/328e254d.2b14dc19.js create mode 100644 assets/js/39654635.2b5d32a9.js delete mode 100644 assets/js/39654635.7a5acff8.js delete mode 100644 assets/js/3a8d2d9f.4c2de3df.js create mode 100644 assets/js/3a8d2d9f.fa1b2c61.js create mode 100644 assets/js/3c45ece2.48cbf5e3.js delete mode 100644 assets/js/3c45ece2.d7a2f459.js delete mode 100644 assets/js/3efb1320.4c1056c2.js create mode 100644 assets/js/3efb1320.f38a847a.js create mode 100644 assets/js/3fdaf820.e3887165.js delete mode 100644 assets/js/3fdaf820.e96c871d.js delete mode 100644 assets/js/43bdb0b8.26c974a0.js create mode 100644 assets/js/43bdb0b8.35035e38.js create mode 100644 assets/js/449809ec.3e26d3c8.js delete mode 100644 assets/js/449809ec.54ca43e3.js delete mode 100644 assets/js/4972ee25.a01aa6ad.js create mode 100644 assets/js/4972ee25.d33960d7.js create mode 100644 assets/js/4ff29f3f.7a7c8b52.js delete mode 100644 assets/js/4ff29f3f.e0c4c233.js delete mode 100644 assets/js/51dcefc3.56d0cc06.js create mode 100644 assets/js/51dcefc3.81d45bb5.js delete mode 100644 assets/js/527ccfd4.5ba85ef3.js create mode 100644 assets/js/527ccfd4.d1de7e13.js create mode 100644 assets/js/52fe9033.01ce713c.js delete mode 100644 assets/js/52fe9033.3d26506c.js create mode 100644 assets/js/5b2ba987.404c77da.js delete mode 100644 assets/js/5b2ba987.b5ca57fd.js create mode 100644 assets/js/5d01a4f0.107584d1.js delete mode 100644 assets/js/5d01a4f0.ac8b24e7.js delete mode 100644 assets/js/5e95c892.2b96eea3.js create mode 100644 assets/js/5e95c892.b00730d7.js delete mode 100644 assets/js/5ed5e9d2.43ca17c1.js create mode 100644 assets/js/5ed5e9d2.ef9b58ec.js delete mode 100644 assets/js/5f847e85.9c9bcb38.js create mode 100644 assets/js/5f847e85.d027db0e.js create mode 100644 assets/js/5f9cf606.44f2588e.js delete mode 100644 assets/js/5f9cf606.86648ebb.js delete mode 100644 assets/js/5fbc5cf1.bda21f93.js create mode 100644 assets/js/5fbc5cf1.f3daa5fe.js delete mode 100644 assets/js/6222aa5d.0fa28a8e.js create mode 100644 assets/js/6222aa5d.fae77e55.js create mode 100644 assets/js/62c33f29.0a26d829.js delete mode 100644 assets/js/62c33f29.90bea568.js delete mode 100644 assets/js/644e2e9e.e7333307.js create mode 100644 assets/js/644e2e9e.fd30308e.js create mode 100644 assets/js/692.7bdb5bbe.js create mode 100644 assets/js/69e64926.33ff0de6.js delete mode 100644 assets/js/69e64926.9bbdcea7.js create mode 100644 assets/js/6e581f4b.96f0063e.js delete mode 100644 assets/js/6e581f4b.e7c07ac3.js delete mode 100644 assets/js/78a19f83.15cf341a.js create mode 100644 assets/js/78a19f83.37d604ec.js create mode 100644 assets/js/7f85490b.8753bb0a.js delete mode 100644 assets/js/7f85490b.d453525b.js delete mode 100644 assets/js/82bbd999.67be8e88.js create mode 100644 assets/js/82bbd999.6d0c58b6.js delete mode 100644 assets/js/84080ef2.6ed75d33.js create mode 100644 assets/js/84080ef2.cf2b77e8.js create mode 100644 assets/js/8450a114.026a0590.js delete mode 100644 assets/js/8450a114.b3b5a4f9.js delete mode 100644 assets/js/8705.f0525c2d.js create mode 100644 assets/js/88cbf0c6.be060995.js delete mode 100644 assets/js/88cbf0c6.e087a403.js create mode 100644 assets/js/8a6ff679.97520d5b.js delete mode 100644 assets/js/8a6ff679.ae244ac5.js delete mode 100644 assets/js/8e392f8e.c4c03b58.js create mode 100644 assets/js/8e392f8e.c4e39364.js create mode 100644 assets/js/91cb04fa.5e48e87e.js delete mode 100644 assets/js/91cb04fa.db1aeebf.js create mode 100644 assets/js/94173908.51a4d942.js delete mode 100644 assets/js/94173908.93646198.js delete mode 100644 assets/js/9a53555d.4fd1de70.js create mode 100644 assets/js/9a53555d.80b7004c.js create mode 100644 assets/js/9bbfbce4.8001f90e.js delete mode 100644 assets/js/9bbfbce4.c799d2c8.js create mode 100644 assets/js/9cf17553.21111104.js delete mode 100644 assets/js/9cf17553.e4334942.js delete mode 100644 assets/js/9dcf257f.9880fde7.js create mode 100644 assets/js/9dcf257f.aa994b3a.js delete mode 100644 assets/js/a09f8af8.43e005a7.js create mode 100644 assets/js/a09f8af8.f5e6e3d1.js delete mode 100644 assets/js/a775fdf9.80e8c4c8.js create mode 100644 assets/js/a775fdf9.a062c406.js delete mode 100644 assets/js/a88c1c0e.1a5f6aa9.js create mode 100644 assets/js/a88c1c0e.e18aba6f.js create mode 100644 assets/js/a94703ab.5018fc8a.js delete mode 100644 assets/js/a94703ab.cdc6a653.js create mode 100644 assets/js/aae46502.1f20f75a.js delete mode 100644 assets/js/aae46502.ff8caf4a.js create mode 100644 assets/js/ae8ecedf.433c66a5.js delete mode 100644 assets/js/ae8ecedf.af5ff458.js create mode 100644 assets/js/b1ef8e0a.4a06a167.js delete mode 100644 assets/js/b1ef8e0a.fbab38ac.js create mode 100644 assets/js/b4a96655.ab0ff656.js delete mode 100644 assets/js/b4a96655.c8c98c48.js create mode 100644 assets/js/b5ee907e.07edc557.js delete mode 100644 assets/js/b5ee907e.a4fde704.js create mode 100644 assets/js/b669beb2.86b73957.js delete mode 100644 assets/js/b669beb2.d731353f.js delete mode 100644 assets/js/b801cfc7.208939b7.js create mode 100644 assets/js/b801cfc7.eeda6d62.js create mode 100644 assets/js/bf3f5c43.045e65bc.js delete mode 100644 assets/js/bf3f5c43.852105d2.js delete mode 100644 assets/js/bf787174.76a33336.js create mode 100644 assets/js/bf787174.c382d408.js create mode 100644 assets/js/c2066304.5836462d.js delete mode 100644 assets/js/c2066304.bc39b83f.js delete mode 100644 assets/js/c27df6d1.4c1825d8.js create mode 100644 assets/js/c27df6d1.d879a41e.js delete mode 100644 assets/js/c5ed97f1.2d70f298.js create mode 100644 assets/js/c5ed97f1.49105c91.js delete mode 100644 assets/js/cf5243f0.7655a082.js create mode 100644 assets/js/cf5243f0.97604f6e.js delete mode 100644 assets/js/d1e36d14.4b661c0f.js create mode 100644 assets/js/d1e36d14.80e44583.js delete mode 100644 assets/js/d589d3a7.6f9b2b64.js create mode 100644 assets/js/d589d3a7.7490123a.js delete mode 100644 assets/js/d95e32bd.03e80a33.js create mode 100644 assets/js/d95e32bd.2240e801.js create mode 100644 assets/js/da80d167.6725179b.js delete mode 100644 assets/js/da80d167.8f9c40c1.js delete mode 100644 assets/js/e1df6725.8ee2038c.js create mode 100644 assets/js/e1df6725.9a0719f9.js create mode 100644 assets/js/e2ad1f17.c74488c3.js delete mode 100644 assets/js/e2ad1f17.ec08ace9.js delete mode 100644 assets/js/e690c9e7.8de738ed.js create mode 100644 assets/js/e690c9e7.a8a7b878.js create mode 100644 assets/js/e7a9e65a.0490afce.js delete mode 100644 assets/js/e7a9e65a.3701b4d9.js delete mode 100644 assets/js/eb838824.b932796e.js create mode 100644 assets/js/eb838824.dd21056d.js create mode 100644 assets/js/ec7be5cc.0e067126.js delete mode 100644 assets/js/ec7be5cc.c2f58dfb.js create mode 100644 assets/js/edb259cb.b9d7e83a.js delete mode 100644 assets/js/edb259cb.dad21e98.js create mode 100644 assets/js/ede50c9e.1818c4e1.js delete mode 100644 assets/js/ede50c9e.b2646eea.js create mode 100644 assets/js/f2beb3a0.3e2ae2a9.js delete mode 100644 assets/js/f2beb3a0.8ab47bb0.js create mode 100644 assets/js/f2f008bc.2cbfe496.js delete mode 100644 assets/js/f2f008bc.8430308a.js create mode 100644 assets/js/f49fe340.4f3a16a3.js delete mode 100644 assets/js/f49fe340.be6915ca.js delete mode 100644 assets/js/fa6c2e8e.17e6b11e.js create mode 100644 assets/js/fa6c2e8e.7184605f.js delete mode 100644 assets/js/fab06093.86830fe6.js create mode 100644 assets/js/fab06093.f3769e20.js create mode 100644 assets/js/fcca6dac.03772928.js delete mode 100644 assets/js/fcca6dac.121d13b6.js delete mode 100644 assets/js/fcde09bc.4579637d.js create mode 100644 assets/js/fcde09bc.a9ee9d0b.js create mode 100644 assets/js/ff6d8346.7b8a532e.js delete mode 100644 assets/js/ff6d8346.a76d8393.js delete mode 100644 assets/js/main.17deb7e1.js create mode 100644 assets/js/main.47c9f7f0.js rename assets/js/{main.17deb7e1.js.LICENSE.txt => main.47c9f7f0.js.LICENSE.txt} (74%) create mode 100644 assets/js/runtime~main.c7918995.js delete mode 100644 assets/js/runtime~main.d3db3302.js diff --git a/404.html b/404.html index 90fea17b..d1d604fe 100644 --- a/404.html +++ b/404.html @@ -1,13 +1,13 @@ - + - -Page Not Found | React Native Template Strong - - + +Page Not Found | React Native Template Strong + + -
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

+
Skip to main content

Page Not Found

We could not find what you were looking for.

Please contact the owner of the site that linked you to the original URL and let them know their link is broken.

\ No newline at end of file diff --git a/assets/css/styles.298dab5a.css b/assets/css/styles.298dab5a.css new file mode 100644 index 00000000..63676c08 --- /dev/null +++ b/assets/css/styles.298dab5a.css @@ -0,0 +1 @@ +.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.hash-link{-webkit-user-select:none}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2596be;--ifm-color-primary-dark:#2187ab;--ifm-color-primary-darker:#1f7fa2;--ifm-color-primary-darkest:#1a6985;--ifm-color-primary-light:#29a5d1;--ifm-color-primary-lighter:#2fabd6;--ifm-color-primary-lightest:#4bb6dc;--docusaurus-highlighted-code-line-bg:#0000001a;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#0000004d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE,html:not([data-theme]) .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.dropdownNavbarItemMobile_S0Fm{cursor:pointer}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}@supports selector(:has(*)){.navbarSearchContainer_Bca1:not(:has(>*)){display:none}}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.errorBoundaryFallback_VBag{color:red;padding:.55rem}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN,.mdxPageWrapper_j9I6{justify-content:center}.DocSearch-Button-Container,.buttons_AeoN,.features_xdhU{align-items:center;display:flex}.features_xdhU{padding:2rem 0;width:100%}.featureSvg__8YW{height:200px;object-fit:contain;width:200px}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.navbarSearchContainer_Bca1{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.navbarSearchContainer_Bca1{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.heroBanner_qdFl{padding:2rem}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/css/styles.b9b45e52.css b/assets/css/styles.b9b45e52.css deleted file mode 100644 index 2c8abd4a..00000000 --- a/assets/css/styles.b9b45e52.css +++ /dev/null @@ -1 +0,0 @@ -.col,.container{padding:0 var(--ifm-spacing-horizontal);width:100%}.markdown>h2,.markdown>h3,.markdown>h4,.markdown>h5,.markdown>h6{margin-bottom:calc(var(--ifm-heading-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown li,body{word-wrap:break-word}body,ol ol,ol ul,ul ol,ul ul{margin:0}pre,table{overflow:auto}blockquote,pre{margin:0 0 var(--ifm-spacing-vertical)}.breadcrumbs__link,.button{transition-timing-function:var(--ifm-transition-timing-default)}.button,.hash-link{-webkit-user-select:none}.button,code{vertical-align:middle}.button--outline.button--active,.button--outline:active,.button--outline:hover,:root{--ifm-button-color:var(--ifm-font-color-base-inverse)}.menu__link:hover,a{transition:color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.navbar--dark,:root{--ifm-navbar-link-hover-color:var(--ifm-color-primary)}.menu,.navbar-sidebar{overflow-x:hidden}:root,html[data-theme=dark]{--ifm-color-emphasis-500:var(--ifm-color-gray-500)}.toggleButton_gllP,html{-webkit-tap-highlight-color:transparent}*,.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}:root{--ifm-color-scheme:light;--ifm-dark-value:10%;--ifm-darker-value:15%;--ifm-darkest-value:30%;--ifm-light-value:15%;--ifm-lighter-value:30%;--ifm-lightest-value:50%;--ifm-contrast-background-value:90%;--ifm-contrast-foreground-value:70%;--ifm-contrast-background-dark-value:70%;--ifm-contrast-foreground-dark-value:90%;--ifm-color-primary:#3578e5;--ifm-color-secondary:#ebedf0;--ifm-color-success:#00a400;--ifm-color-info:#54c7ec;--ifm-color-warning:#ffba00;--ifm-color-danger:#fa383e;--ifm-color-primary-dark:#306cce;--ifm-color-primary-darker:#2d66c3;--ifm-color-primary-darkest:#2554a0;--ifm-color-primary-light:#538ce9;--ifm-color-primary-lighter:#72a1ed;--ifm-color-primary-lightest:#9abcf2;--ifm-color-primary-contrast-background:#ebf2fc;--ifm-color-primary-contrast-foreground:#102445;--ifm-color-secondary-dark:#d4d5d8;--ifm-color-secondary-darker:#c8c9cc;--ifm-color-secondary-darkest:#a4a6a8;--ifm-color-secondary-light:#eef0f2;--ifm-color-secondary-lighter:#f1f2f5;--ifm-color-secondary-lightest:#f5f6f8;--ifm-color-secondary-contrast-background:#fdfdfe;--ifm-color-secondary-contrast-foreground:#474748;--ifm-color-success-dark:#009400;--ifm-color-success-darker:#008b00;--ifm-color-success-darkest:#007300;--ifm-color-success-light:#26b226;--ifm-color-success-lighter:#4dbf4d;--ifm-color-success-lightest:#80d280;--ifm-color-success-contrast-background:#e6f6e6;--ifm-color-success-contrast-foreground:#003100;--ifm-color-info-dark:#4cb3d4;--ifm-color-info-darker:#47a9c9;--ifm-color-info-darkest:#3b8ba5;--ifm-color-info-light:#6ecfef;--ifm-color-info-lighter:#87d8f2;--ifm-color-info-lightest:#aae3f6;--ifm-color-info-contrast-background:#eef9fd;--ifm-color-info-contrast-foreground:#193c47;--ifm-color-warning-dark:#e6a700;--ifm-color-warning-darker:#d99e00;--ifm-color-warning-darkest:#b38200;--ifm-color-warning-light:#ffc426;--ifm-color-warning-lighter:#ffcf4d;--ifm-color-warning-lightest:#ffdd80;--ifm-color-warning-contrast-background:#fff8e6;--ifm-color-warning-contrast-foreground:#4d3800;--ifm-color-danger-dark:#e13238;--ifm-color-danger-darker:#d53035;--ifm-color-danger-darkest:#af272b;--ifm-color-danger-light:#fb565b;--ifm-color-danger-lighter:#fb7478;--ifm-color-danger-lightest:#fd9c9f;--ifm-color-danger-contrast-background:#ffebec;--ifm-color-danger-contrast-foreground:#4b1113;--ifm-color-white:#fff;--ifm-color-black:#000;--ifm-color-gray-0:var(--ifm-color-white);--ifm-color-gray-100:#f5f6f7;--ifm-color-gray-200:#ebedf0;--ifm-color-gray-300:#dadde1;--ifm-color-gray-400:#ccd0d5;--ifm-color-gray-500:#bec3c9;--ifm-color-gray-600:#8d949e;--ifm-color-gray-700:#606770;--ifm-color-gray-800:#444950;--ifm-color-gray-900:#1c1e21;--ifm-color-gray-1000:var(--ifm-color-black);--ifm-color-emphasis-0:var(--ifm-color-gray-0);--ifm-color-emphasis-100:var(--ifm-color-gray-100);--ifm-color-emphasis-200:var(--ifm-color-gray-200);--ifm-color-emphasis-300:var(--ifm-color-gray-300);--ifm-color-emphasis-400:var(--ifm-color-gray-400);--ifm-color-emphasis-600:var(--ifm-color-gray-600);--ifm-color-emphasis-700:var(--ifm-color-gray-700);--ifm-color-emphasis-800:var(--ifm-color-gray-800);--ifm-color-emphasis-900:var(--ifm-color-gray-900);--ifm-color-emphasis-1000:var(--ifm-color-gray-1000);--ifm-color-content:var(--ifm-color-emphasis-900);--ifm-color-content-inverse:var(--ifm-color-emphasis-0);--ifm-color-content-secondary:#525860;--ifm-background-color:#0000;--ifm-background-surface-color:var(--ifm-color-content-inverse);--ifm-global-border-width:1px;--ifm-global-radius:0.4rem;--ifm-hover-overlay:#0000000d;--ifm-font-color-base:var(--ifm-color-content);--ifm-font-color-base-inverse:var(--ifm-color-content-inverse);--ifm-font-color-secondary:var(--ifm-color-content-secondary);--ifm-font-family-base:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";--ifm-font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--ifm-font-size-base:100%;--ifm-font-weight-light:300;--ifm-font-weight-normal:400;--ifm-font-weight-semibold:500;--ifm-font-weight-bold:700;--ifm-font-weight-base:var(--ifm-font-weight-normal);--ifm-line-height-base:1.65;--ifm-global-spacing:1rem;--ifm-spacing-vertical:var(--ifm-global-spacing);--ifm-spacing-horizontal:var(--ifm-global-spacing);--ifm-transition-fast:200ms;--ifm-transition-slow:400ms;--ifm-transition-timing-default:cubic-bezier(0.08,0.52,0.52,1);--ifm-global-shadow-lw:0 1px 2px 0 #0000001a;--ifm-global-shadow-md:0 5px 40px #0003;--ifm-global-shadow-tl:0 12px 28px 0 #0003,0 2px 4px 0 #0000001a;--ifm-z-index-dropdown:100;--ifm-z-index-fixed:200;--ifm-z-index-overlay:400;--ifm-container-width:1140px;--ifm-container-width-xl:1320px;--ifm-code-background:#f6f7f8;--ifm-code-border-radius:var(--ifm-global-radius);--ifm-code-font-size:90%;--ifm-code-padding-horizontal:0.1rem;--ifm-code-padding-vertical:0.1rem;--ifm-pre-background:var(--ifm-code-background);--ifm-pre-border-radius:var(--ifm-code-border-radius);--ifm-pre-color:inherit;--ifm-pre-line-height:1.45;--ifm-pre-padding:1rem;--ifm-heading-color:inherit;--ifm-heading-margin-top:0;--ifm-heading-margin-bottom:var(--ifm-spacing-vertical);--ifm-heading-font-family:var(--ifm-font-family-base);--ifm-heading-font-weight:var(--ifm-font-weight-bold);--ifm-heading-line-height:1.25;--ifm-h1-font-size:2rem;--ifm-h2-font-size:1.5rem;--ifm-h3-font-size:1.25rem;--ifm-h4-font-size:1rem;--ifm-h5-font-size:0.875rem;--ifm-h6-font-size:0.85rem;--ifm-image-alignment-padding:1.25rem;--ifm-leading-desktop:1.25;--ifm-leading:calc(var(--ifm-leading-desktop)*1rem);--ifm-list-left-padding:2rem;--ifm-list-margin:1rem;--ifm-list-item-margin:0.25rem;--ifm-list-paragraph-margin:1rem;--ifm-table-cell-padding:0.75rem;--ifm-table-background:#0000;--ifm-table-stripe-background:#00000008;--ifm-table-border-width:1px;--ifm-table-border-color:var(--ifm-color-emphasis-300);--ifm-table-head-background:inherit;--ifm-table-head-color:inherit;--ifm-table-head-font-weight:var(--ifm-font-weight-bold);--ifm-table-cell-color:inherit;--ifm-link-color:var(--ifm-color-primary);--ifm-link-decoration:none;--ifm-link-hover-color:var(--ifm-link-color);--ifm-link-hover-decoration:underline;--ifm-paragraph-margin-bottom:var(--ifm-leading);--ifm-blockquote-font-size:var(--ifm-font-size-base);--ifm-blockquote-border-left-width:2px;--ifm-blockquote-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-blockquote-padding-vertical:0;--ifm-blockquote-shadow:none;--ifm-blockquote-color:var(--ifm-color-emphasis-800);--ifm-blockquote-border-color:var(--ifm-color-emphasis-300);--ifm-hr-background-color:var(--ifm-color-emphasis-500);--ifm-hr-height:1px;--ifm-hr-margin-vertical:1.5rem;--ifm-scrollbar-size:7px;--ifm-scrollbar-track-background-color:#f1f1f1;--ifm-scrollbar-thumb-background-color:silver;--ifm-scrollbar-thumb-hover-background-color:#a7a7a7;--ifm-alert-background-color:inherit;--ifm-alert-border-color:inherit;--ifm-alert-border-radius:var(--ifm-global-radius);--ifm-alert-border-width:0px;--ifm-alert-border-left-width:5px;--ifm-alert-color:var(--ifm-font-color-base);--ifm-alert-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-alert-padding-vertical:var(--ifm-spacing-vertical);--ifm-alert-shadow:var(--ifm-global-shadow-lw);--ifm-avatar-intro-margin:1rem;--ifm-avatar-intro-alignment:inherit;--ifm-avatar-photo-size:3rem;--ifm-badge-background-color:inherit;--ifm-badge-border-color:inherit;--ifm-badge-border-radius:var(--ifm-global-radius);--ifm-badge-border-width:var(--ifm-global-border-width);--ifm-badge-color:var(--ifm-color-white);--ifm-badge-padding-horizontal:calc(var(--ifm-spacing-horizontal)*0.5);--ifm-badge-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-breadcrumb-border-radius:1.5rem;--ifm-breadcrumb-spacing:0.5rem;--ifm-breadcrumb-color-active:var(--ifm-color-primary);--ifm-breadcrumb-item-background-active:var(--ifm-hover-overlay);--ifm-breadcrumb-padding-horizontal:0.8rem;--ifm-breadcrumb-padding-vertical:0.4rem;--ifm-breadcrumb-size-multiplier:1;--ifm-breadcrumb-separator:url('data:image/svg+xml;utf8,');--ifm-breadcrumb-separator-filter:none;--ifm-breadcrumb-separator-size:0.5rem;--ifm-breadcrumb-separator-size-multiplier:1.25;--ifm-button-background-color:inherit;--ifm-button-border-color:var(--ifm-button-background-color);--ifm-button-border-width:var(--ifm-global-border-width);--ifm-button-font-weight:var(--ifm-font-weight-bold);--ifm-button-padding-horizontal:1.5rem;--ifm-button-padding-vertical:0.375rem;--ifm-button-size-multiplier:1;--ifm-button-transition-duration:var(--ifm-transition-fast);--ifm-button-border-radius:calc(var(--ifm-global-radius)*var(--ifm-button-size-multiplier));--ifm-button-group-spacing:2px;--ifm-card-background-color:var(--ifm-background-surface-color);--ifm-card-border-radius:calc(var(--ifm-global-radius)*2);--ifm-card-horizontal-spacing:var(--ifm-global-spacing);--ifm-card-vertical-spacing:var(--ifm-global-spacing);--ifm-toc-border-color:var(--ifm-color-emphasis-300);--ifm-toc-link-color:var(--ifm-color-content-secondary);--ifm-toc-padding-vertical:0.5rem;--ifm-toc-padding-horizontal:0.5rem;--ifm-dropdown-background-color:var(--ifm-background-surface-color);--ifm-dropdown-font-weight:var(--ifm-font-weight-semibold);--ifm-dropdown-link-color:var(--ifm-font-color-base);--ifm-dropdown-hover-background-color:var(--ifm-hover-overlay);--ifm-footer-background-color:var(--ifm-color-emphasis-100);--ifm-footer-color:inherit;--ifm-footer-link-color:var(--ifm-color-emphasis-700);--ifm-footer-link-hover-color:var(--ifm-color-primary);--ifm-footer-link-horizontal-spacing:0.5rem;--ifm-footer-padding-horizontal:calc(var(--ifm-spacing-horizontal)*2);--ifm-footer-padding-vertical:calc(var(--ifm-spacing-vertical)*2);--ifm-footer-title-color:inherit;--ifm-footer-logo-max-width:min(30rem,90vw);--ifm-hero-background-color:var(--ifm-background-surface-color);--ifm-hero-text-color:var(--ifm-color-emphasis-800);--ifm-menu-color:var(--ifm-color-emphasis-700);--ifm-menu-color-active:var(--ifm-color-primary);--ifm-menu-color-background-active:var(--ifm-hover-overlay);--ifm-menu-color-background-hover:var(--ifm-hover-overlay);--ifm-menu-link-padding-horizontal:0.75rem;--ifm-menu-link-padding-vertical:0.375rem;--ifm-menu-link-sublist-icon:url('data:image/svg+xml;utf8,');--ifm-menu-link-sublist-icon-filter:none;--ifm-navbar-background-color:var(--ifm-background-surface-color);--ifm-navbar-height:3.75rem;--ifm-navbar-item-padding-horizontal:0.75rem;--ifm-navbar-item-padding-vertical:0.25rem;--ifm-navbar-link-color:var(--ifm-font-color-base);--ifm-navbar-link-active-color:var(--ifm-link-color);--ifm-navbar-padding-horizontal:var(--ifm-spacing-horizontal);--ifm-navbar-padding-vertical:calc(var(--ifm-spacing-vertical)*0.5);--ifm-navbar-shadow:var(--ifm-global-shadow-lw);--ifm-navbar-search-input-background-color:var(--ifm-color-emphasis-200);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-800);--ifm-navbar-search-input-placeholder-color:var(--ifm-color-emphasis-500);--ifm-navbar-search-input-icon:url('data:image/svg+xml;utf8,');--ifm-navbar-sidebar-width:83vw;--ifm-pagination-border-radius:var(--ifm-global-radius);--ifm-pagination-color-active:var(--ifm-color-primary);--ifm-pagination-font-size:1rem;--ifm-pagination-item-active-background:var(--ifm-hover-overlay);--ifm-pagination-page-spacing:0.2em;--ifm-pagination-padding-horizontal:calc(var(--ifm-spacing-horizontal)*1);--ifm-pagination-padding-vertical:calc(var(--ifm-spacing-vertical)*0.25);--ifm-pagination-nav-border-radius:var(--ifm-global-radius);--ifm-pagination-nav-color-hover:var(--ifm-color-primary);--ifm-pills-color-active:var(--ifm-color-primary);--ifm-pills-color-background-active:var(--ifm-hover-overlay);--ifm-pills-spacing:0.125rem;--ifm-tabs-color:var(--ifm-font-color-secondary);--ifm-tabs-color-active:var(--ifm-color-primary);--ifm-tabs-color-active-border:var(--ifm-tabs-color-active);--ifm-tabs-padding-horizontal:1rem;--ifm-tabs-padding-vertical:1rem;--docusaurus-progress-bar-color:var(--ifm-color-primary);--ifm-color-primary:#2596be;--ifm-color-primary-dark:#2187ab;--ifm-color-primary-darker:#1f7fa2;--ifm-color-primary-darkest:#1a6985;--ifm-color-primary-light:#29a5d1;--ifm-color-primary-lighter:#2fabd6;--ifm-color-primary-lightest:#4bb6dc;--ifm-code-font-size:95%;--docusaurus-announcement-bar-height:auto;--docusaurus-tag-list-border:var(--ifm-color-emphasis-300);--docusaurus-collapse-button-bg:#0000;--docusaurus-collapse-button-bg-hover:#0000001a;--doc-sidebar-width:300px;--doc-sidebar-hidden-width:30px;--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:#656c85cc;--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 #ffffff80,0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px #1e235a66;--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 #45629b1f;--docsearch-primary-color:var(--ifm-color-primary);--docsearch-text-color:var(--ifm-font-color-base)}.badge--danger,.badge--info,.badge--primary,.badge--secondary,.badge--success,.badge--warning{--ifm-badge-border-color:var(--ifm-badge-background-color)}.button--link,.button--outline{--ifm-button-background-color:#0000}html{-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--ifm-background-color);color:var(--ifm-font-color-base);color-scheme:var(--ifm-color-scheme);font:var(--ifm-font-size-base)/var(--ifm-line-height-base) var(--ifm-font-family-base);text-rendering:optimizelegibility}iframe{border:0;color-scheme:auto}.container{margin:0 auto;max-width:var(--ifm-container-width)}.container--fluid{max-width:inherit}.row{display:flex;flex-wrap:wrap;margin:0 calc(var(--ifm-spacing-horizontal)*-1)}.margin-bottom--none,.margin-vert--none,.markdown>:last-child{margin-bottom:0!important}.margin-top--none,.margin-vert--none{margin-top:0!important}.row--no-gutters{margin-left:0;margin-right:0}.margin-horiz--none,.margin-right--none{margin-right:0!important}.row--no-gutters>.col{padding-left:0;padding-right:0}.row--align-top{align-items:flex-start}.row--align-bottom{align-items:flex-end}.menuExternalLink_NmtK,.row--align-center{align-items:center}.row--align-stretch{align-items:stretch}.row--align-baseline{align-items:baseline}.col{--ifm-col-width:100%;flex:1 0;margin-left:0;max-width:var(--ifm-col-width)}.padding-bottom--none,.padding-vert--none{padding-bottom:0!important}.padding-top--none,.padding-vert--none{padding-top:0!important}.padding-horiz--none,.padding-left--none{padding-left:0!important}.padding-horiz--none,.padding-right--none{padding-right:0!important}.col[class*=col--]{flex:0 0 var(--ifm-col-width)}.col--1{--ifm-col-width:8.33333%}.col--offset-1{margin-left:8.33333%}.col--2{--ifm-col-width:16.66667%}.col--offset-2{margin-left:16.66667%}.col--3{--ifm-col-width:25%}.col--offset-3{margin-left:25%}.col--4{--ifm-col-width:33.33333%}.col--offset-4{margin-left:33.33333%}.col--5{--ifm-col-width:41.66667%}.col--offset-5{margin-left:41.66667%}.col--6{--ifm-col-width:50%}.col--offset-6{margin-left:50%}.col--7{--ifm-col-width:58.33333%}.col--offset-7{margin-left:58.33333%}.col--8{--ifm-col-width:66.66667%}.col--offset-8{margin-left:66.66667%}.col--9{--ifm-col-width:75%}.col--offset-9{margin-left:75%}.col--10{--ifm-col-width:83.33333%}.col--offset-10{margin-left:83.33333%}.col--11{--ifm-col-width:91.66667%}.col--offset-11{margin-left:91.66667%}.col--12{--ifm-col-width:100%}.col--offset-12{margin-left:100%}.margin-horiz--none,.margin-left--none{margin-left:0!important}.margin--none{margin:0!important}.margin-bottom--xs,.margin-vert--xs{margin-bottom:.25rem!important}.margin-top--xs,.margin-vert--xs{margin-top:.25rem!important}.margin-horiz--xs,.margin-left--xs{margin-left:.25rem!important}.margin-horiz--xs,.margin-right--xs{margin-right:.25rem!important}.margin--xs{margin:.25rem!important}.margin-bottom--sm,.margin-vert--sm{margin-bottom:.5rem!important}.margin-top--sm,.margin-vert--sm{margin-top:.5rem!important}.margin-horiz--sm,.margin-left--sm{margin-left:.5rem!important}.margin-horiz--sm,.margin-right--sm{margin-right:.5rem!important}.margin--sm{margin:.5rem!important}.margin-bottom--md,.margin-vert--md{margin-bottom:1rem!important}.margin-top--md,.margin-vert--md{margin-top:1rem!important}.margin-horiz--md,.margin-left--md{margin-left:1rem!important}.margin-horiz--md,.margin-right--md{margin-right:1rem!important}.margin--md{margin:1rem!important}.margin-bottom--lg,.margin-vert--lg{margin-bottom:2rem!important}.margin-top--lg,.margin-vert--lg{margin-top:2rem!important}.margin-horiz--lg,.margin-left--lg{margin-left:2rem!important}.margin-horiz--lg,.margin-right--lg{margin-right:2rem!important}.margin--lg{margin:2rem!important}.margin-bottom--xl,.margin-vert--xl{margin-bottom:5rem!important}.margin-top--xl,.margin-vert--xl{margin-top:5rem!important}.margin-horiz--xl,.margin-left--xl{margin-left:5rem!important}.margin-horiz--xl,.margin-right--xl{margin-right:5rem!important}.margin--xl{margin:5rem!important}.padding--none{padding:0!important}.padding-bottom--xs,.padding-vert--xs{padding-bottom:.25rem!important}.padding-top--xs,.padding-vert--xs{padding-top:.25rem!important}.padding-horiz--xs,.padding-left--xs{padding-left:.25rem!important}.padding-horiz--xs,.padding-right--xs{padding-right:.25rem!important}.padding--xs{padding:.25rem!important}.padding-bottom--sm,.padding-vert--sm{padding-bottom:.5rem!important}.padding-top--sm,.padding-vert--sm{padding-top:.5rem!important}.padding-horiz--sm,.padding-left--sm{padding-left:.5rem!important}.padding-horiz--sm,.padding-right--sm{padding-right:.5rem!important}.padding--sm{padding:.5rem!important}.padding-bottom--md,.padding-vert--md{padding-bottom:1rem!important}.padding-top--md,.padding-vert--md{padding-top:1rem!important}.padding-horiz--md,.padding-left--md{padding-left:1rem!important}.padding-horiz--md,.padding-right--md{padding-right:1rem!important}.padding--md{padding:1rem!important}.padding-bottom--lg,.padding-vert--lg{padding-bottom:2rem!important}.padding-top--lg,.padding-vert--lg{padding-top:2rem!important}.padding-horiz--lg,.padding-left--lg{padding-left:2rem!important}.padding-horiz--lg,.padding-right--lg{padding-right:2rem!important}.padding--lg{padding:2rem!important}.padding-bottom--xl,.padding-vert--xl{padding-bottom:5rem!important}.padding-top--xl,.padding-vert--xl{padding-top:5rem!important}.padding-horiz--xl,.padding-left--xl{padding-left:5rem!important}.padding-horiz--xl,.padding-right--xl{padding-right:5rem!important}.padding--xl{padding:5rem!important}code{background-color:var(--ifm-code-background);border:.1rem solid #0000001a;border-radius:var(--ifm-code-border-radius);font-family:var(--ifm-font-family-monospace);font-size:var(--ifm-code-font-size);padding:var(--ifm-code-padding-vertical) var(--ifm-code-padding-horizontal)}a code{color:inherit}pre{background-color:var(--ifm-pre-background);border-radius:var(--ifm-pre-border-radius);color:var(--ifm-pre-color);font:var(--ifm-code-font-size)/var(--ifm-pre-line-height) var(--ifm-font-family-monospace);padding:var(--ifm-pre-padding)}pre code{background-color:initial;border:none;font-size:100%;line-height:inherit;padding:0}kbd{background-color:var(--ifm-color-emphasis-0);border:1px solid var(--ifm-color-emphasis-400);border-radius:.2rem;box-shadow:inset 0 -1px 0 var(--ifm-color-emphasis-400);color:var(--ifm-color-emphasis-800);font:80% var(--ifm-font-family-monospace);padding:.15rem .3rem}h1,h2,h3,h4,h5,h6{color:var(--ifm-heading-color);font-family:var(--ifm-heading-font-family);font-weight:var(--ifm-heading-font-weight);line-height:var(--ifm-heading-line-height);margin:var(--ifm-heading-margin-top) 0 var(--ifm-heading-margin-bottom) 0}h1{font-size:var(--ifm-h1-font-size)}h2{font-size:var(--ifm-h2-font-size)}h3{font-size:var(--ifm-h3-font-size)}h4{font-size:var(--ifm-h4-font-size)}h5{font-size:var(--ifm-h5-font-size)}h6{font-size:var(--ifm-h6-font-size)}img{max-width:100%}img[align=right]{padding-left:var(--image-alignment-padding)}img[align=left]{padding-right:var(--image-alignment-padding)}.markdown{--ifm-h1-vertical-rhythm-top:3;--ifm-h2-vertical-rhythm-top:2;--ifm-h3-vertical-rhythm-top:1.5;--ifm-heading-vertical-rhythm-top:1.25;--ifm-h1-vertical-rhythm-bottom:1.25;--ifm-heading-vertical-rhythm-bottom:1}.markdown:after,.markdown:before{content:"";display:table}.markdown:after{clear:both}.markdown h1:first-child{--ifm-h1-font-size:3rem;margin-bottom:calc(var(--ifm-h1-vertical-rhythm-bottom)*var(--ifm-leading))}.markdown>h2{--ifm-h2-font-size:2rem;margin-top:calc(var(--ifm-h2-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h3{--ifm-h3-font-size:1.5rem;margin-top:calc(var(--ifm-h3-vertical-rhythm-top)*var(--ifm-leading))}.markdown>h4,.markdown>h5,.markdown>h6{margin-top:calc(var(--ifm-heading-vertical-rhythm-top)*var(--ifm-leading))}.markdown>p,.markdown>pre,.markdown>ul{margin-bottom:var(--ifm-leading)}.markdown li>p{margin-top:var(--ifm-list-paragraph-margin)}.markdown li+li{margin-top:var(--ifm-list-item-margin)}ol,ul{margin:0 0 var(--ifm-list-margin);padding-left:var(--ifm-list-left-padding)}ol ol,ul ol{list-style-type:lower-roman}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}table{border-collapse:collapse;display:block;margin-bottom:var(--ifm-spacing-vertical)}table thead tr{border-bottom:2px solid var(--ifm-table-border-color)}table thead,table tr:nth-child(2n){background-color:var(--ifm-table-stripe-background)}table tr{background-color:var(--ifm-table-background);border-top:var(--ifm-table-border-width) solid var(--ifm-table-border-color)}table td,table th{border:var(--ifm-table-border-width) solid var(--ifm-table-border-color);padding:var(--ifm-table-cell-padding)}table th{background-color:var(--ifm-table-head-background);color:var(--ifm-table-head-color);font-weight:var(--ifm-table-head-font-weight)}table td{color:var(--ifm-table-cell-color)}strong{font-weight:var(--ifm-font-weight-bold)}a{color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}a:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button:hover,.text--no-decoration,.text--no-decoration:hover,a:not([href]){text-decoration:none}p{margin:0 0 var(--ifm-paragraph-margin-bottom)}blockquote{border-left:var(--ifm-blockquote-border-left-width) solid var(--ifm-blockquote-border-color);box-shadow:var(--ifm-blockquote-shadow);color:var(--ifm-blockquote-color);font-size:var(--ifm-blockquote-font-size);padding:var(--ifm-blockquote-padding-vertical) var(--ifm-blockquote-padding-horizontal)}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{background-color:var(--ifm-hr-background-color);border:0;height:var(--ifm-hr-height);margin:var(--ifm-hr-margin-vertical) 0}.shadow--lw{box-shadow:var(--ifm-global-shadow-lw)!important}.shadow--md{box-shadow:var(--ifm-global-shadow-md)!important}.shadow--tl{box-shadow:var(--ifm-global-shadow-tl)!important}.text--primary,.wordWrapButtonEnabled_EoeP .wordWrapButtonIcon_Bwma{color:var(--ifm-color-primary)}.text--secondary{color:var(--ifm-color-secondary)}.text--success{color:var(--ifm-color-success)}.text--info{color:var(--ifm-color-info)}.text--warning{color:var(--ifm-color-warning)}.text--danger{color:var(--ifm-color-danger)}.text--center{text-align:center}.text--left{text-align:left}.text--justify{text-align:justify}.text--right{text-align:right}.text--capitalize{text-transform:capitalize}.text--lowercase{text-transform:lowercase}.admonitionHeading_Gvgb,.alert__heading,.text--uppercase{text-transform:uppercase}.text--light{font-weight:var(--ifm-font-weight-light)}.text--normal{font-weight:var(--ifm-font-weight-normal)}.text--semibold{font-weight:var(--ifm-font-weight-semibold)}.text--bold{font-weight:var(--ifm-font-weight-bold)}.text--italic{font-style:italic}.text--truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text--break{word-wrap:break-word!important;word-break:break-word!important}.clean-btn{background:none;border:none;color:inherit;cursor:pointer;font-family:inherit;padding:0}.alert,.alert .close{color:var(--ifm-alert-foreground-color)}.clean-list{list-style:none;padding-left:0}.alert--primary{--ifm-alert-background-color:var(--ifm-color-primary-contrast-background);--ifm-alert-background-color-highlight:#3578e526;--ifm-alert-foreground-color:var(--ifm-color-primary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-primary-dark)}.alert--secondary{--ifm-alert-background-color:var(--ifm-color-secondary-contrast-background);--ifm-alert-background-color-highlight:#ebedf026;--ifm-alert-foreground-color:var(--ifm-color-secondary-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-secondary-dark)}.alert--success{--ifm-alert-background-color:var(--ifm-color-success-contrast-background);--ifm-alert-background-color-highlight:#00a40026;--ifm-alert-foreground-color:var(--ifm-color-success-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-success-dark)}.alert--info{--ifm-alert-background-color:var(--ifm-color-info-contrast-background);--ifm-alert-background-color-highlight:#54c7ec26;--ifm-alert-foreground-color:var(--ifm-color-info-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-info-dark)}.alert--warning{--ifm-alert-background-color:var(--ifm-color-warning-contrast-background);--ifm-alert-background-color-highlight:#ffba0026;--ifm-alert-foreground-color:var(--ifm-color-warning-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-warning-dark)}.alert--danger{--ifm-alert-background-color:var(--ifm-color-danger-contrast-background);--ifm-alert-background-color-highlight:#fa383e26;--ifm-alert-foreground-color:var(--ifm-color-danger-contrast-foreground);--ifm-alert-border-color:var(--ifm-color-danger-dark)}.alert{--ifm-code-background:var(--ifm-alert-background-color-highlight);--ifm-link-color:var(--ifm-alert-foreground-color);--ifm-link-hover-color:var(--ifm-alert-foreground-color);--ifm-link-decoration:underline;--ifm-tabs-color:var(--ifm-alert-foreground-color);--ifm-tabs-color-active:var(--ifm-alert-foreground-color);--ifm-tabs-color-active-border:var(--ifm-alert-border-color);background-color:var(--ifm-alert-background-color);border:var(--ifm-alert-border-width) solid var(--ifm-alert-border-color);border-left-width:var(--ifm-alert-border-left-width);border-radius:var(--ifm-alert-border-radius);box-shadow:var(--ifm-alert-shadow);padding:var(--ifm-alert-padding-vertical) var(--ifm-alert-padding-horizontal)}.alert__heading{align-items:center;display:flex;font:700 var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family);margin-bottom:.5rem}.alert__icon{display:inline-flex;margin-right:.4em}.alert__icon svg{fill:var(--ifm-alert-foreground-color);stroke:var(--ifm-alert-foreground-color);stroke-width:0}.alert .close{margin:calc(var(--ifm-alert-padding-vertical)*-1) calc(var(--ifm-alert-padding-horizontal)*-1) 0 0;opacity:.75}.alert .close:focus,.alert .close:hover{opacity:1}.alert a{text-decoration-color:var(--ifm-alert-border-color)}.alert a:hover{text-decoration-thickness:2px}.avatar{column-gap:var(--ifm-avatar-intro-margin);display:flex}.avatar__photo{border-radius:50%;display:block;height:var(--ifm-avatar-photo-size);overflow:hidden;width:var(--ifm-avatar-photo-size)}.card--full-height,.navbar__logo img,body,html{height:100%}.avatar__photo--sm{--ifm-avatar-photo-size:2rem}.avatar__photo--lg{--ifm-avatar-photo-size:4rem}.avatar__photo--xl{--ifm-avatar-photo-size:6rem}.avatar__intro{display:flex;flex:1 1;flex-direction:column;justify-content:center;text-align:var(--ifm-avatar-intro-alignment)}.badge,.breadcrumbs__item,.breadcrumbs__link,.button,.dropdown>.navbar__link:after{display:inline-block}.avatar__name{font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base)}.avatar__subtitle{margin-top:.25rem}.avatar--vertical{--ifm-avatar-intro-alignment:center;--ifm-avatar-intro-margin:0.5rem;align-items:center;flex-direction:column}.badge{background-color:var(--ifm-badge-background-color);border:var(--ifm-badge-border-width) solid var(--ifm-badge-border-color);border-radius:var(--ifm-badge-border-radius);color:var(--ifm-badge-color);font-size:75%;font-weight:var(--ifm-font-weight-bold);line-height:1;padding:var(--ifm-badge-padding-vertical) var(--ifm-badge-padding-horizontal)}.badge--primary{--ifm-badge-background-color:var(--ifm-color-primary)}.badge--secondary{--ifm-badge-background-color:var(--ifm-color-secondary);color:var(--ifm-color-black)}.breadcrumbs__link,.button.button--secondary.button--outline:not(.button--active):not(:hover){color:var(--ifm-font-color-base)}.badge--success{--ifm-badge-background-color:var(--ifm-color-success)}.badge--info{--ifm-badge-background-color:var(--ifm-color-info)}.badge--warning{--ifm-badge-background-color:var(--ifm-color-warning)}.badge--danger{--ifm-badge-background-color:var(--ifm-color-danger)}.breadcrumbs{margin-bottom:0;padding-left:0}.breadcrumbs__item:not(:last-child):after{background:var(--ifm-breadcrumb-separator) center;content:" ";display:inline-block;filter:var(--ifm-breadcrumb-separator-filter);height:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier));margin:0 var(--ifm-breadcrumb-spacing);opacity:.5;width:calc(var(--ifm-breadcrumb-separator-size)*var(--ifm-breadcrumb-size-multiplier)*var(--ifm-breadcrumb-separator-size-multiplier))}.breadcrumbs__item--active .breadcrumbs__link{background:var(--ifm-breadcrumb-item-background-active);color:var(--ifm-breadcrumb-color-active)}.breadcrumbs__link{border-radius:var(--ifm-breadcrumb-border-radius);font-size:calc(1rem*var(--ifm-breadcrumb-size-multiplier));padding:calc(var(--ifm-breadcrumb-padding-vertical)*var(--ifm-breadcrumb-size-multiplier)) calc(var(--ifm-breadcrumb-padding-horizontal)*var(--ifm-breadcrumb-size-multiplier));transition-duration:var(--ifm-transition-fast);transition-property:background,color}.breadcrumbs__link:any-link:hover,.breadcrumbs__link:link:hover,.breadcrumbs__link:visited:hover,area[href].breadcrumbs__link:hover{background:var(--ifm-breadcrumb-item-background-active);text-decoration:none}.breadcrumbs--sm{--ifm-breadcrumb-size-multiplier:0.8}.breadcrumbs--lg{--ifm-breadcrumb-size-multiplier:1.2}.button{background-color:var(--ifm-button-background-color);border:var(--ifm-button-border-width) solid var(--ifm-button-border-color);border-radius:var(--ifm-button-border-radius);cursor:pointer;font-size:calc(.875rem*var(--ifm-button-size-multiplier));font-weight:var(--ifm-button-font-weight);line-height:1.5;padding:calc(var(--ifm-button-padding-vertical)*var(--ifm-button-size-multiplier)) calc(var(--ifm-button-padding-horizontal)*var(--ifm-button-size-multiplier));text-align:center;transition-duration:var(--ifm-button-transition-duration);transition-property:color,background,border-color;user-select:none;white-space:nowrap}.button,.button:hover{color:var(--ifm-button-color)}.button--outline{--ifm-button-color:var(--ifm-button-border-color)}.button--outline:hover{--ifm-button-background-color:var(--ifm-button-border-color)}.button--link{--ifm-button-border-color:#0000;color:var(--ifm-link-color);text-decoration:var(--ifm-link-decoration)}.button--link.button--active,.button--link:active,.button--link:hover{color:var(--ifm-link-hover-color);text-decoration:var(--ifm-link-hover-decoration)}.button.disabled,.button:disabled,.button[disabled]{opacity:.65;pointer-events:none}.button--sm{--ifm-button-size-multiplier:0.8}.button--lg{--ifm-button-size-multiplier:1.35}.button--block{display:block;width:100%}.button.button--secondary{color:var(--ifm-color-gray-900)}:where(.button--primary){--ifm-button-background-color:var(--ifm-color-primary);--ifm-button-border-color:var(--ifm-color-primary)}:where(.button--primary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-primary-dark);--ifm-button-border-color:var(--ifm-color-primary-dark)}.button--primary.button--active,.button--primary:active{--ifm-button-background-color:var(--ifm-color-primary-darker);--ifm-button-border-color:var(--ifm-color-primary-darker)}:where(.button--secondary){--ifm-button-background-color:var(--ifm-color-secondary);--ifm-button-border-color:var(--ifm-color-secondary)}:where(.button--secondary):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-secondary-dark);--ifm-button-border-color:var(--ifm-color-secondary-dark)}.button--secondary.button--active,.button--secondary:active{--ifm-button-background-color:var(--ifm-color-secondary-darker);--ifm-button-border-color:var(--ifm-color-secondary-darker)}:where(.button--success){--ifm-button-background-color:var(--ifm-color-success);--ifm-button-border-color:var(--ifm-color-success)}:where(.button--success):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-success-dark);--ifm-button-border-color:var(--ifm-color-success-dark)}.button--success.button--active,.button--success:active{--ifm-button-background-color:var(--ifm-color-success-darker);--ifm-button-border-color:var(--ifm-color-success-darker)}:where(.button--info){--ifm-button-background-color:var(--ifm-color-info);--ifm-button-border-color:var(--ifm-color-info)}:where(.button--info):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-info-dark);--ifm-button-border-color:var(--ifm-color-info-dark)}.button--info.button--active,.button--info:active{--ifm-button-background-color:var(--ifm-color-info-darker);--ifm-button-border-color:var(--ifm-color-info-darker)}:where(.button--warning){--ifm-button-background-color:var(--ifm-color-warning);--ifm-button-border-color:var(--ifm-color-warning)}:where(.button--warning):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-warning-dark);--ifm-button-border-color:var(--ifm-color-warning-dark)}.button--warning.button--active,.button--warning:active{--ifm-button-background-color:var(--ifm-color-warning-darker);--ifm-button-border-color:var(--ifm-color-warning-darker)}:where(.button--danger){--ifm-button-background-color:var(--ifm-color-danger);--ifm-button-border-color:var(--ifm-color-danger)}:where(.button--danger):not(.button--outline):hover{--ifm-button-background-color:var(--ifm-color-danger-dark);--ifm-button-border-color:var(--ifm-color-danger-dark)}.button--danger.button--active,.button--danger:active{--ifm-button-background-color:var(--ifm-color-danger-darker);--ifm-button-border-color:var(--ifm-color-danger-darker)}.button-group{display:inline-flex;gap:var(--ifm-button-group-spacing)}.button-group>.button:not(:first-child){border-bottom-left-radius:0;border-top-left-radius:0}.button-group>.button:not(:last-child){border-bottom-right-radius:0;border-top-right-radius:0}.button-group--block{display:flex;justify-content:stretch}.button-group--block>.button{flex-grow:1}.card{background-color:var(--ifm-card-background-color);border-radius:var(--ifm-card-border-radius);box-shadow:var(--ifm-global-shadow-lw);display:flex;flex-direction:column;overflow:hidden}.card__image{padding-top:var(--ifm-card-vertical-spacing)}.card__image:first-child{padding-top:0}.card__body,.card__footer,.card__header{padding:var(--ifm-card-vertical-spacing) var(--ifm-card-horizontal-spacing)}.card__body:not(:last-child),.card__footer:not(:last-child),.card__header:not(:last-child){padding-bottom:0}.card__body>:last-child,.card__footer>:last-child,.card__header>:last-child{margin-bottom:0}.card__footer{margin-top:auto}.table-of-contents{font-size:.8rem;margin-bottom:0;padding:var(--ifm-toc-padding-vertical) 0}.table-of-contents,.table-of-contents ul{list-style:none;padding-left:var(--ifm-toc-padding-horizontal)}.table-of-contents li{margin:var(--ifm-toc-padding-vertical) var(--ifm-toc-padding-horizontal)}.table-of-contents__left-border{border-left:1px solid var(--ifm-toc-border-color)}.table-of-contents__link{color:var(--ifm-toc-link-color);display:block}.table-of-contents__link--active,.table-of-contents__link--active code,.table-of-contents__link:hover,.table-of-contents__link:hover code{color:var(--ifm-color-primary);text-decoration:none}.close{color:var(--ifm-color-black);float:right;font-size:1.5rem;font-weight:var(--ifm-font-weight-bold);line-height:1;opacity:.5;padding:1rem;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.close:hover{opacity:.7}.close:focus,.theme-code-block-highlighted-line .codeLineNumber_Tfdd:before{opacity:.8}.dropdown{display:inline-flex;font-weight:var(--ifm-dropdown-font-weight);position:relative;vertical-align:top}.dropdown--hoverable:hover .dropdown__menu,.dropdown--show .dropdown__menu{opacity:1;pointer-events:all;transform:translateY(-1px);visibility:visible}#nprogress,.dropdown__menu,.navbar__item.dropdown .navbar__link:not([href]){pointer-events:none}.dropdown--right .dropdown__menu{left:inherit;right:0}.dropdown--nocaret .navbar__link:after{content:none!important}.dropdown__menu{background-color:var(--ifm-dropdown-background-color);border-radius:var(--ifm-global-radius);box-shadow:var(--ifm-global-shadow-md);left:0;list-style:none;max-height:80vh;min-width:10rem;opacity:0;overflow-y:auto;padding:.5rem;position:absolute;top:calc(100% - var(--ifm-navbar-item-padding-vertical) + .3rem);transform:translateY(-.625rem);transition-duration:var(--ifm-transition-fast);transition-property:opacity,transform,visibility;transition-timing-function:var(--ifm-transition-timing-default);visibility:hidden;z-index:var(--ifm-z-index-dropdown)}.menu__caret,.menu__link,.menu__list-item-collapsible{border-radius:.25rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.dropdown__link{border-radius:.25rem;color:var(--ifm-dropdown-link-color);display:block;font-size:.875rem;margin-top:.2rem;padding:.25rem .5rem;white-space:nowrap}.dropdown__link--active,.dropdown__link:hover{background-color:var(--ifm-dropdown-hover-background-color);color:var(--ifm-dropdown-link-color);text-decoration:none}.dropdown__link--active,.dropdown__link--active:hover{--ifm-dropdown-link-color:var(--ifm-link-color)}.dropdown>.navbar__link:after{border-color:currentcolor #0000;border-style:solid;border-width:.4em .4em 0;content:"";margin-left:.3em;position:relative;top:2px;transform:translateY(-50%)}.footer{background-color:var(--ifm-footer-background-color);color:var(--ifm-footer-color);padding:var(--ifm-footer-padding-vertical) var(--ifm-footer-padding-horizontal)}.footer--dark{--ifm-footer-background-color:#303846;--ifm-footer-color:var(--ifm-footer-link-color);--ifm-footer-link-color:var(--ifm-color-secondary);--ifm-footer-title-color:var(--ifm-color-white)}.footer__links{margin-bottom:1rem}.footer__link-item{color:var(--ifm-footer-link-color);line-height:2}.footer__link-item:hover{color:var(--ifm-footer-link-hover-color)}.footer__link-separator{margin:0 var(--ifm-footer-link-horizontal-spacing)}.footer__logo{margin-top:1rem;max-width:var(--ifm-footer-logo-max-width)}.footer__title{color:var(--ifm-footer-title-color);font:700 var(--ifm-h4-font-size)/var(--ifm-heading-line-height) var(--ifm-font-family-base);margin-bottom:var(--ifm-heading-margin-bottom)}.menu,.navbar__link{font-weight:var(--ifm-font-weight-semibold)}.docItemContainer_Djhp article>:first-child,.docItemContainer_Djhp header+*,.footer__item{margin-top:0}.admonitionContent_BuS1>:last-child,.collapsibleContent_i85q p:last-child,.details_lb9f>summary>p:last-child,.footer__items{margin-bottom:0}.codeBlockStandalone_MEMb,[type=checkbox]{padding:0}.hero{align-items:center;background-color:var(--ifm-hero-background-color);color:var(--ifm-hero-text-color);display:flex;padding:4rem 2rem}.hero--primary{--ifm-hero-background-color:var(--ifm-color-primary);--ifm-hero-text-color:var(--ifm-font-color-base-inverse)}.hero--dark{--ifm-hero-background-color:#303846;--ifm-hero-text-color:var(--ifm-color-white)}.hero__title{font-size:3rem}.hero__subtitle{font-size:1.5rem}.menu__list{list-style:none;margin:0;padding-left:0}.menu__caret,.menu__link{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu__list .menu__list{flex:0 0 100%;margin-top:.25rem;padding-left:var(--ifm-menu-link-padding-horizontal)}.menu__list-item:not(:first-child){margin-top:.25rem}.menu__list-item--collapsed .menu__list{height:0;overflow:hidden}.details_lb9f[data-collapsed=false].isBrowser_bmU9>summary:before,.details_lb9f[open]:not(.isBrowser_bmU9)>summary:before,.menu__list-item--collapsed .menu__caret:before,.menu__list-item--collapsed .menu__link--sublist:after{transform:rotate(90deg)}.menu__list-item-collapsible{display:flex;flex-wrap:wrap;position:relative}.menu__caret:hover,.menu__link:hover,.menu__list-item-collapsible--active,.menu__list-item-collapsible:hover{background:var(--ifm-menu-color-background-hover)}.menu__list-item-collapsible .menu__link--active,.menu__list-item-collapsible .menu__link:hover{background:none!important}.menu__caret,.menu__link{align-items:center;display:flex}.menu__link{color:var(--ifm-menu-color);flex:1;line-height:1.25}.menu__link:hover{color:var(--ifm-menu-color);text-decoration:none}.menu__caret:before,.menu__link--sublist-caret:after{content:"";height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast) linear;width:1.25rem;filter:var(--ifm-menu-link-sublist-icon-filter)}.menu__link--sublist-caret:after{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem;margin-left:auto;min-width:1.25rem}.menu__link--active,.menu__link--active:hover{color:var(--ifm-menu-color-active)}.navbar__brand,.navbar__link{color:var(--ifm-navbar-link-color)}.menu__link--active:not(.menu__link--sublist){background-color:var(--ifm-menu-color-background-active)}.menu__caret:before{background:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem}.navbar--dark,html[data-theme=dark]{--ifm-menu-link-sublist-icon-filter:invert(100%) sepia(94%) saturate(17%) hue-rotate(223deg) brightness(104%) contrast(98%)}.navbar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-navbar-shadow);height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar,.navbar>.container,.navbar>.container-fluid{display:flex}.navbar--fixed-top{position:sticky;top:0;z-index:var(--ifm-z-index-fixed)}.navbar-sidebar,.navbar-sidebar__backdrop{bottom:0;opacity:0;position:fixed;transition-duration:var(--ifm-transition-fast);transition-timing-function:ease-in-out;left:0;top:0;visibility:hidden}.navbar__inner{display:flex;flex-wrap:wrap;justify-content:space-between;width:100%}.navbar__brand{align-items:center;display:flex;margin-right:1rem;min-width:0}.navbar__brand:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.announcementBarContent_xLdY,.navbar__title{flex:1 1 auto}.navbar__toggle{display:none;margin-right:.5rem}.navbar__logo{flex:0 0 auto;height:2rem;margin-right:.5rem}.navbar__items{align-items:center;display:flex;flex:1;min-width:0}.navbar__items--center{flex:0 0 auto}.navbar__items--center .navbar__brand{margin:0}.navbar__items--center+.navbar__items--right{flex:1}.navbar__items--right{flex:0 0 auto;justify-content:flex-end}.navbar__items--right>:last-child{padding-right:0}.navbar__item{display:inline-block;padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.navbar__link--active,.navbar__link:hover{color:var(--ifm-navbar-link-hover-color);text-decoration:none}.navbar--dark,.navbar--primary{--ifm-menu-color:var(--ifm-color-gray-300);--ifm-navbar-link-color:var(--ifm-color-gray-100);--ifm-navbar-search-input-background-color:#ffffff1a;--ifm-navbar-search-input-placeholder-color:#ffffff80;color:var(--ifm-color-white)}.navbar--dark{--ifm-navbar-background-color:#242526;--ifm-menu-color-background-active:#ffffff0d;--ifm-navbar-search-input-color:var(--ifm-color-white)}.navbar--primary{--ifm-navbar-background-color:var(--ifm-color-primary);--ifm-navbar-link-hover-color:var(--ifm-color-white);--ifm-menu-color-active:var(--ifm-color-white);--ifm-navbar-search-input-color:var(--ifm-color-emphasis-500)}.navbar__search-input{-webkit-appearance:none;appearance:none;background:var(--ifm-navbar-search-input-background-color) var(--ifm-navbar-search-input-icon) no-repeat .75rem center/1rem 1rem;border:none;border-radius:2rem;color:var(--ifm-navbar-search-input-color);cursor:text;display:inline-block;font-size:.9rem;height:2rem;padding:0 .5rem 0 2.25rem;width:12.5rem}.navbar__search-input::placeholder{color:var(--ifm-navbar-search-input-placeholder-color)}.navbar-sidebar{background-color:var(--ifm-navbar-background-color);box-shadow:var(--ifm-global-shadow-md);transform:translate3d(-100%,0,0);transition-property:opacity,visibility,transform;width:var(--ifm-navbar-sidebar-width)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar__items{transform:translateZ(0)}.navbar-sidebar--show .navbar-sidebar,.navbar-sidebar--show .navbar-sidebar__backdrop{opacity:1;visibility:visible}.navbar-sidebar__backdrop{background-color:#0009;right:0;transition-property:opacity,visibility}.navbar-sidebar__brand{align-items:center;box-shadow:var(--ifm-navbar-shadow);display:flex;flex:1;height:var(--ifm-navbar-height);padding:var(--ifm-navbar-padding-vertical) var(--ifm-navbar-padding-horizontal)}.navbar-sidebar__items{display:flex;height:calc(100% - var(--ifm-navbar-height));transition:transform var(--ifm-transition-fast) ease-in-out}.navbar-sidebar__items--show-secondary{transform:translate3d(calc((var(--ifm-navbar-sidebar-width))*-1),0,0)}.navbar-sidebar__item{flex-shrink:0;padding:.5rem;width:calc(var(--ifm-navbar-sidebar-width))}.navbar-sidebar__back{background:var(--ifm-menu-color-background-active);font-size:15px;font-weight:var(--ifm-button-font-weight);margin:0 0 .2rem -.5rem;padding:.6rem 1.5rem;position:relative;text-align:left;top:-.5rem;width:calc(100% + 1rem)}.navbar-sidebar__close{display:flex;margin-left:auto}.pagination{column-gap:var(--ifm-pagination-page-spacing);display:flex;font-size:var(--ifm-pagination-font-size);padding-left:0}.pagination--sm{--ifm-pagination-font-size:0.8rem;--ifm-pagination-padding-horizontal:0.8rem;--ifm-pagination-padding-vertical:0.2rem}.pagination--lg{--ifm-pagination-font-size:1.2rem;--ifm-pagination-padding-horizontal:1.2rem;--ifm-pagination-padding-vertical:0.3rem}.pagination__item{display:inline-flex}.pagination__item>span{padding:var(--ifm-pagination-padding-vertical)}.pagination__item--active .pagination__link{color:var(--ifm-pagination-color-active)}.pagination__item--active .pagination__link,.pagination__item:not(.pagination__item--active):hover .pagination__link{background:var(--ifm-pagination-item-active-background)}.pagination__item--disabled,.pagination__item[disabled]{opacity:.25;pointer-events:none}.pagination__link{border-radius:var(--ifm-pagination-border-radius);color:var(--ifm-font-color-base);display:inline-block;padding:var(--ifm-pagination-padding-vertical) var(--ifm-pagination-padding-horizontal);transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination__link:hover{text-decoration:none}.pagination-nav{grid-gap:var(--ifm-spacing-horizontal);display:grid;gap:var(--ifm-spacing-horizontal);grid-template-columns:repeat(2,1fr)}.pagination-nav__link{border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-pagination-nav-border-radius);display:block;height:100%;line-height:var(--ifm-heading-line-height);padding:var(--ifm-global-spacing);transition:border-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.pagination-nav__link:hover{border-color:var(--ifm-pagination-nav-color-hover);text-decoration:none}.pagination-nav__link--next{grid-column:2/3;text-align:right}.pagination-nav__label{font-size:var(--ifm-h4-font-size);font-weight:var(--ifm-heading-font-weight);word-break:break-word}.pagination-nav__link--prev .pagination-nav__label:before{content:"« "}.pagination-nav__link--next .pagination-nav__label:after{content:" »"}.pagination-nav__sublabel{color:var(--ifm-color-content-secondary);font-size:var(--ifm-h5-font-size);font-weight:var(--ifm-font-weight-semibold);margin-bottom:.25rem}.pills__item,.tabs{font-weight:var(--ifm-font-weight-bold)}.pills{display:flex;gap:var(--ifm-pills-spacing);padding-left:0}.pills__item{border-radius:.5rem;cursor:pointer;display:inline-block;padding:.25rem 1rem;transition:background var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs,:not(.containsTaskList_mC6p>li)>.containsTaskList_mC6p{padding-left:0}.pills__item--active{color:var(--ifm-pills-color-active)}.pills__item--active,.pills__item:not(.pills__item--active):hover{background:var(--ifm-pills-color-background-active)}.pills--block{justify-content:stretch}.pills--block .pills__item{flex-grow:1;text-align:center}.tabs{color:var(--ifm-tabs-color);display:flex;margin-bottom:0;overflow-x:auto}.tabs__item{border-bottom:3px solid #0000;border-radius:var(--ifm-global-radius);cursor:pointer;display:inline-flex;padding:var(--ifm-tabs-padding-vertical) var(--ifm-tabs-padding-horizontal);transition:background-color var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.tabs__item--active{border-bottom-color:var(--ifm-tabs-color-active-border);border-bottom-left-radius:0;border-bottom-right-radius:0;color:var(--ifm-tabs-color-active)}.tabs__item:hover{background-color:var(--ifm-hover-overlay)}.tabs--block{justify-content:stretch}.tabs--block .tabs__item{flex-grow:1;justify-content:center}html[data-theme=dark]{--ifm-color-scheme:dark;--ifm-color-emphasis-0:var(--ifm-color-gray-1000);--ifm-color-emphasis-100:var(--ifm-color-gray-900);--ifm-color-emphasis-200:var(--ifm-color-gray-800);--ifm-color-emphasis-300:var(--ifm-color-gray-700);--ifm-color-emphasis-400:var(--ifm-color-gray-600);--ifm-color-emphasis-600:var(--ifm-color-gray-400);--ifm-color-emphasis-700:var(--ifm-color-gray-300);--ifm-color-emphasis-800:var(--ifm-color-gray-200);--ifm-color-emphasis-900:var(--ifm-color-gray-100);--ifm-color-emphasis-1000:var(--ifm-color-gray-0);--ifm-background-color:#1b1b1d;--ifm-background-surface-color:#242526;--ifm-hover-overlay:#ffffff0d;--ifm-color-content:#e3e3e3;--ifm-color-content-secondary:#fff;--ifm-breadcrumb-separator-filter:invert(64%) sepia(11%) saturate(0%) hue-rotate(149deg) brightness(99%) contrast(95%);--ifm-code-background:#ffffff1a;--ifm-scrollbar-track-background-color:#444;--ifm-scrollbar-thumb-background-color:#686868;--ifm-scrollbar-thumb-hover-background-color:#7a7a7a;--ifm-table-stripe-background:#ffffff12;--ifm-toc-border-color:var(--ifm-color-emphasis-200);--ifm-color-primary-contrast-background:#102445;--ifm-color-primary-contrast-foreground:#ebf2fc;--ifm-color-secondary-contrast-background:#474748;--ifm-color-secondary-contrast-foreground:#fdfdfe;--ifm-color-success-contrast-background:#003100;--ifm-color-success-contrast-foreground:#e6f6e6;--ifm-color-info-contrast-background:#193c47;--ifm-color-info-contrast-foreground:#eef9fd;--ifm-color-warning-contrast-background:#4d3800;--ifm-color-warning-contrast-foreground:#fff8e6;--ifm-color-danger-contrast-background:#4b1113;--ifm-color-danger-contrast-foreground:#ffebec;--docsearch-text-color:#f5f6f7;--docsearch-container-background:#090a11cc;--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 #0304094d;--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 #494c6a80,0 -4px 8px 0 #0003;--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}#nprogress .bar{background:var(--docusaurus-progress-bar-color);height:2px;left:0;position:fixed;top:0;width:100%;z-index:1031}#nprogress .peg{box-shadow:0 0 10px var(--docusaurus-progress-bar-color),0 0 5px var(--docusaurus-progress-bar-color);height:100%;opacity:1;position:absolute;right:0;transform:rotate(3deg) translateY(-4px);width:100px}.docusaurus-highlight-code-line{background-color:#0000001a;display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}html[data-theme=dark] .docusaurus-highlight-code-line{background-color:#0000004d}body:not(.navigation-with-keyboard) :not(input):focus{outline:0}#__docusaurus-base-url-issue-banner-container,.docSidebarContainer_YfHR,.sidebarLogo_isFc,.themedComponent_mlkZ,[data-theme=dark] .lightToggleIcon_pyhR,[data-theme=light] .darkToggleIcon_wfgR,html[data-announcement-bar-initially-dismissed=true] .announcementBar_mb4j{display:none}.skipToContent_fXgn{background-color:var(--ifm-background-surface-color);color:var(--ifm-color-emphasis-900);left:100%;padding:calc(var(--ifm-global-spacing)/2) var(--ifm-global-spacing);position:fixed;top:1rem;z-index:calc(var(--ifm-z-index-fixed) + 1)}.skipToContent_fXgn:focus{box-shadow:var(--ifm-global-shadow-md);left:1rem}.closeButton_CVFx{line-height:0;padding:0}.content_knG7{font-size:85%;padding:5px 0;text-align:center}.content_knG7 a{color:inherit;text-decoration:underline}.DocSearch-Container a,.tag_zVej:hover{text-decoration:none}.announcementBar_mb4j{align-items:center;background-color:var(--ifm-color-white);border-bottom:1px solid var(--ifm-color-emphasis-100);color:var(--ifm-color-black);display:flex;height:var(--docusaurus-announcement-bar-height)}.announcementBarPlaceholder_vyr4{flex:0 0 10px}.announcementBarClose_gvF7{align-self:stretch;flex:0 0 30px}.toggle_vylO{height:2rem;width:2rem}.toggleButton_gllP{align-items:center;border-radius:50%;display:flex;height:100%;justify-content:center;transition:background var(--ifm-transition-fast);width:100%}.toggleButton_gllP:hover{background:var(--ifm-color-emphasis-200)}.toggleButtonDisabled_aARS{cursor:not-allowed}.darkNavbarColorModeToggle_X3D1:hover{background:var(--ifm-color-gray-800)}[data-theme=dark] .themedComponent--dark_xIcU,[data-theme=light] .themedComponent--light_NVdE{display:initial}.iconExternalLink_nPIU{margin-left:.3rem}.iconLanguage_nlXk{margin-right:5px;vertical-align:text-bottom}.navbarHideable_m1mJ{transition:transform var(--ifm-transition-fast) ease}.navbarHidden_jGov{transform:translate3d(0,calc(-100% - 2px),0)}.errorBoundaryError_a6uf{color:red;white-space:pre-wrap}.footerLogoLink_BH7S{opacity:.5;transition:opacity var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.footerLogoLink_BH7S:hover,.hash-link:focus,:hover>.hash-link{opacity:1}.anchorWithStickyNavbar_LWe7{scroll-margin-top:calc(var(--ifm-navbar-height) + .5rem)}.anchorWithHideOnScrollNavbar_WYt5{scroll-margin-top:.5rem}.hash-link{opacity:0;padding-left:.5rem;transition:opacity var(--ifm-transition-fast);user-select:none}.hash-link:before{content:"#"}.mainWrapper_z2l0{display:flex;flex:1 0 auto;flex-direction:column}.docusaurus-mt-lg{margin-top:3rem}#__docusaurus{display:flex;flex-direction:column;min-height:100%}.iconEdit_Z9Sw{margin-right:.3em;vertical-align:sub}.tag_zVej{border:1px solid var(--docusaurus-tag-list-border);transition:border var(--ifm-transition-fast)}.tag_zVej:hover{--docusaurus-tag-list-border:var(--ifm-link-color)}.tagRegular_sFm0{border-radius:var(--ifm-global-radius);font-size:90%;padding:.2rem .5rem .3rem}.tagWithCount_h2kH{align-items:center;border-left:0;display:flex;padding:0 .5rem 0 1rem;position:relative}.tagWithCount_h2kH:after,.tagWithCount_h2kH:before{border:1px solid var(--docusaurus-tag-list-border);content:"";position:absolute;top:50%;transition:inherit}.tagWithCount_h2kH:before{border-bottom:0;border-right:0;height:1.18rem;right:100%;transform:translate(50%,-50%) rotate(-45deg);width:1.18rem}.tagWithCount_h2kH:after{border-radius:50%;height:.5rem;left:0;transform:translateY(-50%);width:.5rem}.tagWithCount_h2kH span{background:var(--ifm-color-secondary);border-radius:var(--ifm-global-radius);color:var(--ifm-color-black);font-size:.7rem;line-height:1.2;margin-left:.3rem;padding:.1rem .4rem}.tags_jXut{display:inline}.tag_QGVx{display:inline-block;margin:0 .4rem .5rem 0}.lastUpdated_vwxv{font-size:smaller;font-style:italic;margin-top:.2rem}.tocCollapsibleButton_TO0P{align-items:center;display:flex;font-size:inherit;justify-content:space-between;padding:.4rem .8rem;width:100%}.tocCollapsibleButton_TO0P:after{background:var(--ifm-menu-link-sublist-icon) 50% 50%/2rem 2rem no-repeat;content:"";filter:var(--ifm-menu-link-sublist-icon-filter);height:1.25rem;transform:rotate(180deg);transition:transform var(--ifm-transition-fast);width:1.25rem}.tocCollapsibleButtonExpanded_MG3E:after,.tocCollapsibleExpanded_sAul{transform:none}.tocCollapsible_ETCw{background-color:var(--ifm-menu-color-background-active);border-radius:var(--ifm-global-radius);margin:1rem 0}.tocCollapsibleContent_vkbj>ul{border-left:none;border-top:1px solid var(--ifm-color-emphasis-300);font-size:15px;padding:.2rem 0}.tocCollapsibleContent_vkbj ul li{margin:.4rem .8rem}.tocCollapsibleContent_vkbj a{display:block}.searchQueryInput_u2C7,.searchVersionInput_m0Ui{background:var(--docsearch-searchbox-focus-background);border:2px solid var(--ifm-toc-border-color);border-radius:var(--ifm-global-radius);color:var(--docsearch-text-color);font:var(--ifm-font-size-base) var(--ifm-font-family-base);margin-bottom:.5rem;padding:.8rem;transition:border var(--ifm-transition-fast) ease;width:100%}.searchQueryInput_u2C7:focus,.searchVersionInput_m0Ui:focus{border-color:var(--docsearch-primary-color);outline:0}.searchQueryInput_u2C7::placeholder{color:var(--docsearch-muted-color)}.searchResultsColumn_JPFH{font-size:.9rem;font-weight:700}.algoliaLogo_rT1R{max-width:150px}.algoliaLogoPathFill_WdUC{fill:var(--ifm-font-color-base)}.searchResultItem_Tv2o{border-bottom:1px solid var(--ifm-toc-border-color);padding:1rem 0}.searchResultItemHeading_KbCB{font-weight:400;margin-bottom:0}.searchResultItemPath_lhe1{--ifm-breadcrumb-separator-size-multiplier:1;color:var(--ifm-color-content-secondary);font-size:.8rem}.searchResultItemSummary_AEaO{font-style:italic;margin:.5rem 0 0}.loadingSpinner_XVxU{animation:1s linear infinite a;border:.4em solid #eee;border-radius:50%;border-top:.4em solid var(--ifm-color-primary);height:3rem;margin:0 auto;width:3rem}@keyframes a{to{transform:rotate(1turn)}}.loader_vvXV{margin-top:2rem}.search-result-match{background:#ffd78e40;color:var(--docsearch-hit-color);padding:.09em 0}.heroBanner_qdFl{overflow:hidden;padding:4rem 0;position:relative;text-align:center}.buttons_AeoN,.mdxPageWrapper_j9I6{justify-content:center}.DocSearch-Button-Container,.buttons_AeoN,.features_xdhU{align-items:center;display:flex}.features_xdhU{padding:2rem 0;width:100%}.featureSvg__8YW{height:200px;object-fit:contain;width:200px}.backToTopButton_sjWU{background-color:var(--ifm-color-emphasis-200);border-radius:50%;bottom:1.3rem;box-shadow:var(--ifm-global-shadow-lw);height:3rem;opacity:0;position:fixed;right:1.3rem;transform:scale(0);transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default);visibility:hidden;width:3rem;z-index:calc(var(--ifm-z-index-fixed) - 1)}.backToTopButton_sjWU:after{background-color:var(--ifm-color-emphasis-1000);content:" ";display:inline-block;height:100%;-webkit-mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;mask:var(--ifm-menu-link-sublist-icon) 50%/2rem 2rem no-repeat;width:100%}.backToTopButtonShow_xfvO{opacity:1;transform:scale(1);visibility:visible}[data-theme=dark]:root{--docusaurus-collapse-button-bg:#ffffff0d;--docusaurus-collapse-button-bg-hover:#ffffff1a}.collapseSidebarButton_PEFL{display:none;margin:0}.docMainContainer_TBSr,.docRoot_UBD9{display:flex;width:100%}.docsWrapper_hBAB{display:flex;flex:1 0 auto}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:0}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Hit-Tree,.DocSearch-Hit-action,.DocSearch-Hit-icon,.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Input,.DocSearch-Link{-webkit-appearance:none;font:inherit}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border:0;border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 2px;position:relative;top:-1px;width:20px}.DocSearch--active{overflow:hidden!important}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Link{appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{appearance:none;background:#0000;border:0;color:var(--docsearch-text-color);flex:1;font-size:1.2em;height:100%;outline:0;padding:0 0 0 8px;width:80%}.DocSearch-Hit-action-button,.DocSearch-Reset{-webkit-appearance:none;border:0;cursor:pointer}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Cancel,.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator,.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset{animation:.1s ease-in forwards b;appearance:none;background:none;border-radius:50%;color:var(--docsearch-icon-color);padding:2px;right:0}.DocSearch-Help,.DocSearch-HitsFooter,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:#0000}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}.DocSearch-Hit--deleting{opacity:0;transition:.25s linear}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:.25s linear .25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{appearance:none;background:none;border-radius:50%;color:inherit;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:background-color .1s ease-in}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:0;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands li,.DocSearch-Commands-Key{align-items:center;display:flex}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{background:var(--docsearch-key-gradient);border:0;border-radius:2px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;width:20px}.buttonGroup__atx button,.codeBlockContainer_Ckt0{background:var(--prism-background-color);color:var(--prism-color)}@keyframes b{0%{opacity:0}to{opacity:1}}.DocSearch-Button{margin:0;transition:all var(--ifm-transition-fast) var(--ifm-transition-timing-default)}.DocSearch-Container{z-index:calc(var(--ifm-z-index-fixed) + 1)}.codeBlockContainer_Ckt0{border-radius:var(--ifm-code-border-radius);box-shadow:var(--ifm-global-shadow-lw);margin-bottom:var(--ifm-leading)}.codeBlockContent_biex{border-radius:inherit;direction:ltr;position:relative}.codeBlockTitle_Ktv7{border-bottom:1px solid var(--ifm-color-emphasis-300);border-top-left-radius:inherit;border-top-right-radius:inherit;font-size:var(--ifm-code-font-size);font-weight:500;padding:.75rem var(--ifm-pre-padding)}.codeBlock_bY9V{--ifm-pre-background:var(--prism-background-color);margin:0;padding:0}.codeBlockTitle_Ktv7+.codeBlockContent_biex .codeBlock_bY9V{border-top-left-radius:0;border-top-right-radius:0}.codeBlockLines_e6Vv{float:left;font:inherit;min-width:100%;padding:var(--ifm-pre-padding)}.codeBlockLinesWithNumbering_o6Pm{display:table;padding:var(--ifm-pre-padding) 0}.buttonGroup__atx{column-gap:.2rem;display:flex;position:absolute;right:calc(var(--ifm-pre-padding)/2);top:calc(var(--ifm-pre-padding)/2)}.buttonGroup__atx button{align-items:center;border:1px solid var(--ifm-color-emphasis-300);border-radius:var(--ifm-global-radius);display:flex;line-height:0;opacity:0;padding:.4rem;transition:opacity var(--ifm-transition-fast) ease-in-out}.buttonGroup__atx button:focus-visible,.buttonGroup__atx button:hover{opacity:1!important}.theme-code-block:hover .buttonGroup__atx button{opacity:.4}:where(:root){--docusaurus-highlighted-code-line-bg:#484d5b}:where([data-theme=dark]){--docusaurus-highlighted-code-line-bg:#646464}.theme-code-block-highlighted-line{background-color:var(--docusaurus-highlighted-code-line-bg);display:block;margin:0 calc(var(--ifm-pre-padding)*-1);padding:0 var(--ifm-pre-padding)}.codeLine_lJS_{counter-increment:a;display:table-row}.codeLineNumber_Tfdd{background:var(--ifm-pre-background);display:table-cell;left:0;overflow-wrap:normal;padding:0 var(--ifm-pre-padding);position:sticky;text-align:right;width:1%}.codeLineNumber_Tfdd:before{content:counter(a);opacity:.4}.codeLineContent_feaV{padding-right:var(--ifm-pre-padding)}.theme-code-block:hover .copyButtonCopied_obH4{opacity:1!important}.copyButtonIcons_eSgA{height:1.125rem;position:relative;width:1.125rem}.copyButtonIcon_y97N,.copyButtonSuccessIcon_LjdS{fill:currentColor;height:inherit;left:0;opacity:inherit;position:absolute;top:0;transition:all var(--ifm-transition-fast) ease;width:inherit}.copyButtonSuccessIcon_LjdS{color:#00d600;left:50%;opacity:0;top:50%;transform:translate(-50%,-50%) scale(.33)}.copyButtonCopied_obH4 .copyButtonIcon_y97N{opacity:0;transform:scale(.33)}.copyButtonCopied_obH4 .copyButtonSuccessIcon_LjdS{opacity:1;transform:translate(-50%,-50%) scale(1);transition-delay:75ms}.wordWrapButtonIcon_Bwma{height:1.2rem;width:1.2rem}.details_lb9f{--docusaurus-details-summary-arrow-size:0.38rem;--docusaurus-details-transition:transform 200ms ease;--docusaurus-details-decoration-color:grey}.details_lb9f>summary{cursor:pointer;list-style:none;padding-left:1rem;position:relative}.details_lb9f>summary::-webkit-details-marker{display:none}.details_lb9f>summary:before{border-color:#0000 #0000 #0000 var(--docusaurus-details-decoration-color);border-style:solid;border-width:var(--docusaurus-details-summary-arrow-size);content:"";left:0;position:absolute;top:.45rem;transform:rotate(0);transform-origin:calc(var(--docusaurus-details-summary-arrow-size)/2) 50%;transition:var(--docusaurus-details-transition)}.collapsibleContent_i85q{border-top:1px solid var(--docusaurus-details-decoration-color);margin-top:1rem;padding-top:1rem}.details_b_Ee{--docusaurus-details-decoration-color:var(--ifm-alert-border-color);--docusaurus-details-transition:transform var(--ifm-transition-fast) ease;border:1px solid var(--ifm-alert-border-color);margin:0 0 var(--ifm-spacing-vertical)}.containsTaskList_mC6p{list-style:none}.img_ev3q{height:auto}.tableOfContents_bqdL{max-height:calc(100vh - var(--ifm-navbar-height) - 2rem);overflow-y:auto;position:sticky;top:calc(var(--ifm-navbar-height) + 1rem)}.admonition_xJq3{margin-bottom:1em}.admonitionHeading_Gvgb{font:var(--ifm-heading-font-weight) var(--ifm-h5-font-size)/var(--ifm-heading-line-height) var(--ifm-heading-font-family)}.admonitionHeading_Gvgb:not(:last-child){margin-bottom:.3rem}.admonitionHeading_Gvgb code{text-transform:none}.admonitionIcon_Rf37{display:inline-block;margin-right:.4em;vertical-align:middle}.admonitionIcon_Rf37 svg{fill:var(--ifm-alert-foreground-color);display:inline-block;height:1.6em;width:1.6em}.breadcrumbHomeIcon_YNFT{height:1.1rem;position:relative;top:1px;vertical-align:top;width:1.1rem}.breadcrumbsContainer_Z_bl{--ifm-breadcrumb-size-multiplier:0.8;margin-bottom:.8rem}@media (min-width:997px){.collapseSidebarButton_PEFL,.expandButton_TmdG{background-color:var(--docusaurus-collapse-button-bg)}:root{--docusaurus-announcement-bar-height:30px}.announcementBarClose_gvF7,.announcementBarPlaceholder_vyr4{flex-basis:50px}.searchBox_ZlJk{padding:var(--ifm-navbar-item-padding-vertical) var(--ifm-navbar-item-padding-horizontal)}.lastUpdated_vwxv{text-align:right}.tocMobile_ITEo{display:none}.collapseSidebarButton_PEFL{border:1px solid var(--ifm-toc-border-color);border-radius:0;bottom:0;display:block!important;height:40px;position:sticky}.collapseSidebarButtonIcon_kv0_{margin-top:4px;transform:rotate(180deg)}.expandButtonIcon_i1dp,[dir=rtl] .collapseSidebarButtonIcon_kv0_{transform:rotate(0)}.collapseSidebarButton_PEFL:focus,.collapseSidebarButton_PEFL:hover,.expandButton_TmdG:focus,.expandButton_TmdG:hover{background-color:var(--docusaurus-collapse-button-bg-hover)}.menuHtmlItem_M9Kj{padding:var(--ifm-menu-link-padding-vertical) var(--ifm-menu-link-padding-horizontal)}.menu_SIkG{flex-grow:1;padding:.5rem}@supports (scrollbar-gutter:stable){.menu_SIkG{padding:.5rem 0 .5rem .5rem;scrollbar-gutter:stable}}.menuWithAnnouncementBar_GW3s{margin-bottom:var(--docusaurus-announcement-bar-height)}.sidebar_njMd{display:flex;flex-direction:column;height:100%;padding-top:var(--ifm-navbar-height);width:var(--doc-sidebar-width)}.sidebarWithHideableNavbar_wUlq{padding-top:0}.sidebarHidden_VK0M{opacity:0;visibility:hidden}.sidebarLogo_isFc{align-items:center;color:inherit!important;display:flex!important;margin:0 var(--ifm-navbar-padding-horizontal);max-height:var(--ifm-navbar-height);min-height:var(--ifm-navbar-height);text-decoration:none!important}.sidebarLogo_isFc img{height:2rem;margin-right:.5rem}.expandButton_TmdG{align-items:center;display:flex;height:100%;justify-content:center;position:absolute;right:0;top:0;transition:background-color var(--ifm-transition-fast) ease;width:100%}[dir=rtl] .expandButtonIcon_i1dp{transform:rotate(180deg)}.docSidebarContainer_YfHR{border-right:1px solid var(--ifm-toc-border-color);-webkit-clip-path:inset(0);clip-path:inset(0);display:block;margin-top:calc(var(--ifm-navbar-height)*-1);transition:width var(--ifm-transition-fast) ease;width:var(--doc-sidebar-width);will-change:width}.docSidebarContainerHidden_DPk8{cursor:pointer;width:var(--doc-sidebar-hidden-width)}.sidebarViewport_aRkj{height:100%;max-height:100vh;position:sticky;top:0}.docMainContainer_TBSr{flex-grow:1;max-width:calc(100% - var(--doc-sidebar-width))}.docMainContainerEnhanced_lQrH{max-width:calc(100% - var(--doc-sidebar-hidden-width))}.docItemWrapperEnhanced_JWYK{max-width:calc(var(--ifm-container-width) + var(--doc-sidebar-width))!important}.docItemCol_VOVn{max-width:75%!important}}@media (min-width:1440px){.container{max-width:var(--ifm-container-width-xl)}}@media (max-width:996px){.col{--ifm-col-width:100%;flex-basis:var(--ifm-col-width);margin-left:0}.footer{--ifm-footer-padding-horizontal:0}.colorModeToggle_DEke,.footer__link-separator,.navbar__item,.tableOfContents_bqdL{display:none}.footer__col{margin-bottom:calc(var(--ifm-spacing-vertical)*3)}.footer__link-item{display:block}.hero{padding-left:0;padding-right:0}.navbar>.container,.navbar>.container-fluid{padding:0}.navbar__toggle{display:inherit}.navbar__search-input{width:9rem}.pills--block,.tabs--block{flex-direction:column}.searchBox_ZlJk{position:absolute;right:var(--ifm-navbar-padding-horizontal)}.docItemContainer_F8PC{padding:0 .3rem}}@media only screen and (max-width:996px){.searchQueryColumn_RTkw,.searchResultsColumn_JPFH{max-width:60%!important}.searchLogoColumn_rJIA,.searchVersionColumn_ypXd{max-width:40%!important}.searchLogoColumn_rJIA{padding-left:0!important}}@media screen and (max-width:966px){.heroBanner_qdFl{padding:2rem}}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder,.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%;max-height:calc(var(--docsearch-vh,1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh,1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Cancel{-webkit-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:0;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}}@media (max-width:576px){.markdown h1:first-child{--ifm-h1-font-size:2rem}.markdown>h2{--ifm-h2-font-size:1.5rem}.markdown>h3{--ifm-h3-font-size:1.25rem}}@media screen and (max-width:576px){.searchQueryColumn_RTkw{max-width:100%!important}.searchVersionColumn_ypXd{max-width:100%!important;padding-left:var(--ifm-spacing-horizontal)!important}}@media (hover:hover){.backToTopButton_sjWU:hover{background-color:var(--ifm-color-emphasis-300)}}@media (pointer:fine){.thin-scrollbar{scrollbar-width:thin}.thin-scrollbar::-webkit-scrollbar{height:var(--ifm-scrollbar-size);width:var(--ifm-scrollbar-size)}.thin-scrollbar::-webkit-scrollbar-track{background:var(--ifm-scrollbar-track-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb{background:var(--ifm-scrollbar-thumb-background-color);border-radius:10px}.thin-scrollbar::-webkit-scrollbar-thumb:hover{background:var(--ifm-scrollbar-thumb-hover-background-color)}}@media (prefers-reduced-motion:reduce){:root{--ifm-transition-fast:0ms;--ifm-transition-slow:0ms}}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{stroke-width:var(--docsearch-icon-stroke-width);animation:none;-webkit-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0}.DocSearch-Hit--deleting,.DocSearch-Hit--favoriting{transition:none}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:#0003;transition:none}}@media print{.announcementBar_mb4j,.footer,.menu,.navbar,.pagination-nav,.table-of-contents,.tocMobile_ITEo{display:none}.tabs{page-break-inside:avoid}.codeBlockLines_e6Vv{white-space:pre-wrap}} \ No newline at end of file diff --git a/assets/js/0106a0c1.1710a144.js b/assets/js/0106a0c1.1710a144.js deleted file mode 100644 index 466744f7..00000000 --- a/assets/js/0106a0c1.1710a144.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5165],{7478:(e,n,l)=>{l.r(n),l.d(n,{assets:()=>d,contentTitle:()=>r,default:()=>o,frontMatter:()=>a,metadata:()=>i,toc:()=>h});var s=l(5893),t=l(1151);const a={sidebar_position:12,title:"shareHelpers"},r=void 0,i={unversionedId:"helpers/share-helpers",id:"helpers/share-helpers",title:"shareHelpers",description:"Content",source:"@site/docs/helpers/share-helpers.md",sourceDirName:"helpers",slug:"/helpers/share-helpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/share-helpers.md",tags:[],version:"current",lastUpdatedAt:1634109907,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"shareHelpers"},sidebar:"tutorialSidebar",previous:{title:"netInfoHelpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers"},next:{title:"Validations",permalink:"/react-native-template-strong/docs/validations"}},d={},h=[{value:"Content",id:"content",level:2},{value:"showShareDialog",id:"showsharedialog",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"showShareSocialDialog",id:"showsharesocialdialog",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"isPackageInstalled",id:"ispackageinstalled",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function c(e){const n=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",pre:"pre"},(0,t.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["Set of share functions, made possible by ",(0,s.jsx)(n.a,{href:"https://github.com/react-native-share/react-native-share",children:"react-native-share"}),".\nCheck the docs to learn more."]}),"\n",(0,s.jsx)(n.h3,{id:"showsharedialog",children:"showShareDialog"}),"\n",(0,s.jsx)(n.p,{children:"Shows share dialog with provided options and optional callbacks."}),"\n",(0,s.jsx)(n.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{align:"left",children:"Name"}),(0,s.jsx)(n.th,{align:"left",children:"Type"}),(0,s.jsx)(n.th,{align:"left",children:"Required"}),(0,s.jsx)(n.th,{align:"left",children:"Default value"}),(0,s.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"options"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"ShareOptions"})}),(0,s.jsx)(n.td,{align:"left",children:"True"}),(0,s.jsx)(n.td,{align:"left",children:"-"}),(0,s.jsx)(n.td,{align:"left",children:"Share options"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"completedCallback"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"(result: ShareOpenResult) => void"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"Callback when user completed share action with result parameters"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"errorCallback"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"(error: Error or unknown) => void"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"Error callback when something went wrong or user didn't share anything"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' const onShowShareDialogPress = useCallback(async () => {\n await showShareDialog(\n {\n showAppsToView: true,\n message: "Test message to share",\n },\n (result) => {\n console.warn("Share result: ", result);\n },\n (error) => {\n console.error("Share error: ", error);\n },\n );\n}, []);\n'})}),"\n",(0,s.jsx)(n.h3,{id:"showsharesocialdialog",children:"showShareSocialDialog"}),"\n",(0,s.jsx)(n.p,{children:"Shows share to social network dialog with provided options and optional callbacks. If the app is not installed then tries to open the web page of social network."}),"\n",(0,s.jsx)(n.h4,{id:"params-1",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{align:"left",children:"Name"}),(0,s.jsx)(n.th,{align:"left",children:"Type"}),(0,s.jsx)(n.th,{align:"left",children:"Required"}),(0,s.jsx)(n.th,{align:"left",children:"Default value"}),(0,s.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"options"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"ShareSingleOptions"})}),(0,s.jsx)(n.td,{align:"left",children:"True"}),(0,s.jsx)(n.td,{align:"left",children:"-"}),(0,s.jsx)(n.td,{align:"left",children:"Share options"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"completedCallback"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"(result: ShareSingleResult) => void"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"Callback when user completed share action with result parameters"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"errorCallback"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"(error: Error or unknown) => void"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"Error callback when something went wrong or user didn't share anything"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' const onShowShareSocialDialogPress = useCallback(async () => {\n await showShareSocialDialog(\n {\n social: Share.Social.TWITTER,\n title: "Share via",\n message: "Twitter test message from template",\n url: "",\n },\n (result) => {\n console.warn("Share result: ", result);\n },\n (error) => {\n console.error("Share error: ", error);\n },\n );\n}, []);\n'})}),"\n",(0,s.jsx)(n.h3,{id:"ispackageinstalled",children:"isPackageInstalled"}),"\n",(0,s.jsxs)(n.p,{children:["Checks whether the package installed, on Android uses the share check, on iOS checks using ",(0,s.jsx)(n.code,{children:"Linking.canOpenURL"}),"."]}),"\n",(0,s.jsx)(n.h4,{id:"params-2",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{align:"left",children:"Name"}),(0,s.jsx)(n.th,{align:"left",children:"Type"}),(0,s.jsx)(n.th,{align:"left",children:"Required"}),(0,s.jsx)(n.th,{align:"left",children:"Default value"}),(0,s.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"androidPackageName"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"Android package name"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{align:"left",children:"iosUrl"}),(0,s.jsx)(n.td,{align:"left",children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{align:"left",children:"False"}),(0,s.jsx)(n.td,{align:"left",children:"Undefined"}),(0,s.jsx)(n.td,{align:"left",children:"iOS package URI"})]})]})]}),"\n",(0,s.jsx)(n.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await isPackageInstalled("com.instagram.android", "instagram://");\n'})})]})}const o=function(e={}){const{wrapper:n}=Object.assign({},(0,t.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(c,e)})):c(e)}},1151:(e,n,l)=>{l.d(n,{Zo:()=>i,ah:()=>a});var s=l(7294);const t=s.createContext({});function a(e){const n=s.useContext(t);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function i({components:e,children:n,disableParentContext:l}){let i;return i=l?"function"==typeof e?e({}):e||r:a(e),s.createElement(t.Provider,{value:i},n)}}}]); \ No newline at end of file diff --git a/assets/js/0106a0c1.d1be1800.js b/assets/js/0106a0c1.d1be1800.js new file mode 100644 index 00000000..94b58ee7 --- /dev/null +++ b/assets/js/0106a0c1.d1be1800.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5165],{7478:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>o,frontMatter:()=>r,metadata:()=>a,toc:()=>h});var s=l(5893),n=l(1151);const r={sidebar_position:12,title:"shareHelpers"},i=void 0,a={id:"helpers/share-helpers",title:"shareHelpers",description:"Content",source:"@site/docs/helpers/share-helpers.md",sourceDirName:"helpers",slug:"/helpers/share-helpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/share-helpers.md",tags:[],version:"current",lastUpdatedAt:1634109907,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"shareHelpers"},sidebar:"tutorialSidebar",previous:{title:"netInfoHelpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers"},next:{title:"Validations",permalink:"/react-native-template-strong/docs/validations"}},d={},h=[{value:"Content",id:"content",level:2},{value:"showShareDialog",id:"showsharedialog",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"showShareSocialDialog",id:"showsharesocialdialog",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"isPackageInstalled",id:"ispackageinstalled",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Set of share functions, made possible by ",(0,s.jsx)(t.a,{href:"https://github.com/react-native-share/react-native-share",children:"react-native-share"}),".\nCheck the docs to learn more."]}),"\n",(0,s.jsx)(t.h3,{id:"showsharedialog",children:"showShareDialog"}),"\n",(0,s.jsx)(t.p,{children:"Shows share dialog with provided options and optional callbacks."}),"\n",(0,s.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"options"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"ShareOptions"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Share options"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"completedCallback"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"(result: ShareOpenResult) => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Callback when user completed share action with result parameters"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"errorCallback"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"(error: Error or unknown) => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Error callback when something went wrong or user didn't share anything"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' const onShowShareDialogPress = useCallback(async () => {\n await showShareDialog(\n {\n showAppsToView: true,\n message: "Test message to share",\n },\n (result) => {\n console.warn("Share result: ", result);\n },\n (error) => {\n console.error("Share error: ", error);\n },\n );\n}, []);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"showsharesocialdialog",children:"showShareSocialDialog"}),"\n",(0,s.jsx)(t.p,{children:"Shows share to social network dialog with provided options and optional callbacks. If the app is not installed then tries to open the web page of social network."}),"\n",(0,s.jsx)(t.h4,{id:"params-1",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"options"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"ShareSingleOptions"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Share options"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"completedCallback"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"(result: ShareSingleResult) => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Callback when user completed share action with result parameters"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"errorCallback"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"(error: Error or unknown) => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Error callback when something went wrong or user didn't share anything"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' const onShowShareSocialDialogPress = useCallback(async () => {\n await showShareSocialDialog(\n {\n social: Share.Social.TWITTER,\n title: "Share via",\n message: "Twitter test message from template",\n url: "",\n },\n (result) => {\n console.warn("Share result: ", result);\n },\n (error) => {\n console.error("Share error: ", error);\n },\n );\n}, []);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"ispackageinstalled",children:"isPackageInstalled"}),"\n",(0,s.jsxs)(t.p,{children:["Checks whether the package installed, on Android uses the share check, on iOS checks using ",(0,s.jsx)(t.code,{children:"Linking.canOpenURL"}),"."]}),"\n",(0,s.jsx)(t.h4,{id:"params-2",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"androidPackageName"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Android package name"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"iosUrl"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"iOS package URI"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'await isPackageInstalled("com.instagram.android", "instagram://");\n'})})]})}function o(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,l)=>{l.d(t,{Z:()=>a,a:()=>i});var s=l(7294);const n={},r=s.createContext(n);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/041eb33b.43700011.js b/assets/js/041eb33b.43700011.js new file mode 100644 index 00000000..27616763 --- /dev/null +++ b/assets/js/041eb33b.43700011.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4715],{1239:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>l,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:1,title:"React Native config"},r=void 0,c={id:"configs/rn-config",title:"React Native config",description:'React Native config only defines the assets folder "./resources/fonts" to properly link newly added fonts',source:"@site/docs/configs/rn-config.md",sourceDirName:"configs",slug:"/configs/rn-config",permalink:"/react-native-template-strong/docs/configs/rn-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/rn-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"React Native config"},sidebar:"tutorialSidebar",previous:{title:"App release",permalink:"/react-native-template-strong/docs/app-release"},next:{title:"TypeScript config",permalink:"/react-native-template-strong/docs/configs/ts-config"}},a={},d=[];function f(e){const t={code:"code",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(t.p,{children:["React Native config only defines the assets folder ",(0,o.jsx)(t.code,{children:'"./resources/fonts"'})," to properly link newly added fonts"]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(f,{...e})}):f(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var o=n(7294);const s={},i=o.createContext(s);function r(e){const t=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/041eb33b.611dc025.js b/assets/js/041eb33b.611dc025.js deleted file mode 100644 index 7a984ec1..00000000 --- a/assets/js/041eb33b.611dc025.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4715],{1239:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>l,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:1,title:"React Native config"},c=void 0,r={unversionedId:"configs/rn-config",id:"configs/rn-config",title:"React Native config",description:'React Native config only defines the assets folder "./resources/fonts" to properly link newly added fonts',source:"@site/docs/configs/rn-config.md",sourceDirName:"configs",slug:"/configs/rn-config",permalink:"/react-native-template-strong/docs/configs/rn-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/rn-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"React Native config"},sidebar:"tutorialSidebar",previous:{title:"App release",permalink:"/react-native-template-strong/docs/app-release"},next:{title:"TypeScript config",permalink:"/react-native-template-strong/docs/configs/ts-config"}},a={},d=[];function f(e){const t=Object.assign({p:"p",code:"code"},(0,s.ah)(),e.components);return(0,o.jsxs)(t.p,{children:["React Native config only defines the assets folder ",(0,o.jsx)(t.code,{children:'"./resources/fonts"'})," to properly link newly added fonts"]})}const l=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(f,e)})):f(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>i});var o=n(7294);const s=o.createContext({});function i(e){const t=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const c={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||c:i(e),o.createElement(s.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/07727b20.37a75e5b.js b/assets/js/07727b20.37a75e5b.js new file mode 100644 index 00000000..c233b5e1 --- /dev/null +++ b/assets/js/07727b20.37a75e5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[817],{7984:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var l=s(5893),n=s(1151);const r={sidebar_position:8,title:"regexHelpers"},i=void 0,a={id:"helpers/regex-helpers",title:"regexHelpers",description:"Content",source:"@site/docs/helpers/regex-helpers.md",sourceDirName:"helpers",slug:"/helpers/regex-helpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/regex-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"regexHelpers"},sidebar:"tutorialSidebar",previous:{title:"stringHelpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers"},next:{title:"inAppReviewHelper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper"}},d={},o=[{value:"Content",id:"content",level:2},{value:"isEmail",id:"isemail",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function c(e){const t={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(t.p,{children:"Set of regex functions."}),"\n",(0,l.jsx)(t.h3,{id:"isemail",children:"isEmail"}),"\n",(0,l.jsx)(t.p,{children:"Checks whether supplied string follows email format or not."}),"\n",(0,l.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsx)(t.tbody,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"email"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"string"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Email string"})]})})]}),"\n",(0,l.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'isEmail("test@domain.com");\n'})})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var l=s(7294);const n={},r=l.createContext(n);function i(e){const t=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),l.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/07727b20.805eee28.js b/assets/js/07727b20.805eee28.js deleted file mode 100644 index 65ae9952..00000000 --- a/assets/js/07727b20.805eee28.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[817],{7984:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var s=n(5893),r=n(1151);const l={sidebar_position:8,title:"regexHelpers"},i=void 0,a={unversionedId:"helpers/regex-helpers",id:"helpers/regex-helpers",title:"regexHelpers",description:"Content",source:"@site/docs/helpers/regex-helpers.md",sourceDirName:"helpers",slug:"/helpers/regex-helpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/regex-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"regexHelpers"},sidebar:"tutorialSidebar",previous:{title:"stringHelpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers"},next:{title:"inAppReviewHelper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper"}},d={},c=[{value:"Content",id:"content",level:2},{value:"isEmail",id:"isemail",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function o(e){const t=Object.assign({h2:"h2",p:"p",h3:"h3",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",pre:"pre"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Set of regex functions."}),"\n",(0,s.jsx)(t.h3,{id:"isemail",children:"isEmail"}),"\n",(0,s.jsx)(t.p,{children:"Checks whether supplied string follows email format or not."}),"\n",(0,s.jsx)(t.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{align:"left",children:"Name"}),(0,s.jsx)(t.th,{align:"left",children:"Type"}),(0,s.jsx)(t.th,{align:"left",children:"Required"}),(0,s.jsx)(t.th,{align:"left",children:"Default value"}),(0,s.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{align:"left",children:"email"}),(0,s.jsx)(t.td,{align:"left",children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{align:"left",children:"True"}),(0,s.jsx)(t.td,{align:"left",children:"-"}),(0,s.jsx)(t.td,{align:"left",children:"Email string"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'isEmail("test@domain.com");\n'})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(o,e)})):o(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>l});var s=n(7294);const r=s.createContext({});function l(e){const t=s.useContext(r);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||i:l(e),s.createElement(r.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/08fac725.a66c1f1c.js b/assets/js/08fac725.a66c1f1c.js deleted file mode 100644 index a12d415b..00000000 --- a/assets/js/08fac725.a66c1f1c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4027],{1369:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var i=n(5893),s=n(1151);const o={sidebar_position:3,title:"ESLint config"},r=void 0,c={unversionedId:"configs/eslint-config",id:"configs/eslint-config",title:"ESLint config",description:"ESLint utilizes eslint-config-react-strong with its plugins and rules.",source:"@site/docs/configs/eslint-config.md",sourceDirName:"configs",slug:"/configs/eslint-config",permalink:"/react-native-template-strong/docs/configs/eslint-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/eslint-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"ESLint config"},sidebar:"tutorialSidebar",previous:{title:"TypeScript config",permalink:"/react-native-template-strong/docs/configs/ts-config"},next:{title:"Prettier config",permalink:"/react-native-template-strong/docs/configs/prettier-config"}},a={},l=[];function g(t){const e=Object.assign({p:"p",a:"a"},(0,s.ah)(),t.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.p,{children:["ESLint utilizes ",(0,i.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"eslint-config-react-strong"})," with its plugins and rules."]}),"\n",(0,i.jsxs)(e.p,{children:["As a parser it uses ",(0,i.jsx)(e.a,{href:"https://github.com/typescript-eslint/typescript-eslint",children:"@typescript-eslint/parser"}),"."]})]})}const p=function(t={}){const{wrapper:e}=Object.assign({},(0,s.ah)(),t.components);return e?(0,i.jsx)(e,Object.assign({},t,{children:(0,i.jsx)(g,t)})):g(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>c,ah:()=>o});var i=n(7294);const s=i.createContext({});function o(t){const e=i.useContext(s);return i.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const r={};function c({components:t,children:e,disableParentContext:n}){let c;return c=n?"function"==typeof t?t({}):t||r:o(t),i.createElement(s.Provider,{value:c},e)}}}]); \ No newline at end of file diff --git a/assets/js/08fac725.b98e1a8b.js b/assets/js/08fac725.b98e1a8b.js new file mode 100644 index 00000000..67ee6b10 --- /dev/null +++ b/assets/js/08fac725.b98e1a8b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4027],{1369:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>f,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var i=n(5893),s=n(1151);const o={sidebar_position:3,title:"ESLint config"},r=void 0,c={id:"configs/eslint-config",title:"ESLint config",description:"ESLint utilizes eslint-config-react-strong with its plugins and rules.",source:"@site/docs/configs/eslint-config.md",sourceDirName:"configs",slug:"/configs/eslint-config",permalink:"/react-native-template-strong/docs/configs/eslint-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/eslint-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"ESLint config"},sidebar:"tutorialSidebar",previous:{title:"TypeScript config",permalink:"/react-native-template-strong/docs/configs/ts-config"},next:{title:"Prettier config",permalink:"/react-native-template-strong/docs/configs/prettier-config"}},a={},l=[];function p(t){const e={a:"a",p:"p",...(0,s.a)(),...t.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(e.p,{children:["ESLint utilizes ",(0,i.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"eslint-config-react-strong"})," with its plugins and rules."]}),"\n",(0,i.jsxs)(e.p,{children:["As a parser it uses ",(0,i.jsx)(e.a,{href:"https://github.com/typescript-eslint/typescript-eslint",children:"@typescript-eslint/parser"}),"."]})]})}function f(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>r});var i=n(7294);const s={},o=i.createContext(s);function r(t){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:r(t.components),i.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/09318855.492a5c89.js b/assets/js/09318855.492a5c89.js deleted file mode 100644 index 0020f102..00000000 --- a/assets/js/09318855.492a5c89.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8906],{1605:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var i=t(5893),r=t(1151);const l={sidebar_position:9,title:"inAppReviewHelper"},s=void 0,a={unversionedId:"helpers/in-app-review-helper",id:"helpers/in-app-review-helper",title:"inAppReviewHelper",description:"Content",source:"@site/docs/helpers/in-app-review-helper.md",sourceDirName:"helpers",slug:"/helpers/in-app-review-helper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/in-app-review-helper.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"inAppReviewHelper"},sidebar:"tutorialSidebar",previous:{title:"regexHelpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers"},next:{title:"netInfoHelpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers"}},d={},c=[{value:"Content",id:"content",level:2},{value:"showInAppReview",id:"showinappreview",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function o(e){const n=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",pre:"pre"},(0,r.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(n.p,{children:["Shows in-app review provided by ",(0,i.jsx)(n.a,{href:"https://github.com/MinaSamir11/react-native-in-app-review",children:"react-native-in-app-review"}),"."]}),"\n",(0,i.jsx)(n.h3,{id:"showinappreview",children:"showInAppReview"}),"\n",(0,i.jsx)(n.p,{children:"The Google Play In-App Review API, App store rating API lets you prompt users to submit Play Store or App store ratings and reviews without the inconvenience of leaving your app or game."}),"\n",(0,i.jsx)(n.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{align:"left",children:"Name"}),(0,i.jsx)(n.th,{align:"left",children:"Type"}),(0,i.jsx)(n.th,{align:"left",children:"Required"}),(0,i.jsx)(n.th,{align:"left",children:"Default value"}),(0,i.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"successAction"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"() => void"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Success action callback"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"failAction"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"(error: Error) => void"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Error callback with error"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"onReviewNotAvailable"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"() => void"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Callback when review is not available on this device"})]})]})]}),"\n",(0,i.jsx)(n.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'import {useEffect} from "react";\n\nuseEffect(() => {\n showInAppReview();\n}, []);\n'})})]})}const p=function(e={}){const{wrapper:n}=Object.assign({},(0,r.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(o,e)})):o(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>l});var i=t(7294);const r=i.createContext({});function l(e){const n=i.useContext(r);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const s={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||s:l(e),i.createElement(r.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/09318855.7eb9853a.js b/assets/js/09318855.7eb9853a.js new file mode 100644 index 00000000..1072265c --- /dev/null +++ b/assets/js/09318855.7eb9853a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8906],{1605:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>o});var l=n(5893),i=n(1151);const r={sidebar_position:9,title:"inAppReviewHelper"},s=void 0,a={id:"helpers/in-app-review-helper",title:"inAppReviewHelper",description:"Content",source:"@site/docs/helpers/in-app-review-helper.md",sourceDirName:"helpers",slug:"/helpers/in-app-review-helper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/in-app-review-helper.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"inAppReviewHelper"},sidebar:"tutorialSidebar",previous:{title:"regexHelpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers"},next:{title:"netInfoHelpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers"}},d={},o=[{value:"Content",id:"content",level:2},{value:"showInAppReview",id:"showinappreview",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(t.p,{children:["Shows in-app review provided by ",(0,l.jsx)(t.a,{href:"https://github.com/MinaSamir11/react-native-in-app-review",children:"react-native-in-app-review"}),"."]}),"\n",(0,l.jsx)(t.h3,{id:"showinappreview",children:"showInAppReview"}),"\n",(0,l.jsx)(t.p,{children:"The Google Play In-App Review API, App store rating API lets you prompt users to submit Play Store or App store ratings and reviews without the inconvenience of leaving your app or game."}),"\n",(0,l.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"successAction"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"() => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Success action callback"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"failAction"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"(error: Error) => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Error callback with error"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onReviewNotAvailable"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"() => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Callback when review is not available on this device"})]})]})]}),"\n",(0,l.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'import {useEffect} from "react";\n\nuseEffect(() => {\n showInAppReview();\n}, []);\n'})})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>s});var l=n(7294);const i={},r=l.createContext(i);function s(e){const t=l.useContext(r);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),l.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0a3d3edc.68f85f02.js b/assets/js/0a3d3edc.68f85f02.js new file mode 100644 index 00000000..96b52e8d --- /dev/null +++ b/assets/js/0a3d3edc.68f85f02.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7102],{6561:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var n=l(5893),a=l(1151);const s={sidebar_position:1,title:"calculatePage"},r=void 0,i={id:"helpers/calculate-page",title:"calculatePage",description:"Content",source:"@site/docs/helpers/calculate-page.md",sourceDirName:"helpers",slug:"/helpers/calculate-page",permalink:"/react-native-template-strong/docs/helpers/calculate-page",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/calculate-page.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"calculatePage"},sidebar:"tutorialSidebar",previous:{title:"Onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding"},next:{title:"colorHelpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers"}},c={},d=[{value:"Content",id:"content",level:2},{value:"calculatePage",id:"calculatepage",level:3},{value:"Params",id:"params",level:3},{value:"Usage example",id:"usage-example",level:3}];function o(e){const t={code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsx)(t.p,{children:"Used for next page calculation."}),"\n",(0,n.jsx)(t.h3,{id:"calculatepage",children:"calculatePage"}),"\n",(0,n.jsx)(t.p,{children:"Used to calculate next page which will be requested from remote server by using calculation based on current page size and current page."}),"\n",(0,n.jsx)(t.h3,{id:"params",children:"Params"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,n.jsxs)(t.tbody,{children:[(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"count"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Number"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Current total count of items"})]}),(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"pageSize"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Number"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"20"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"Size of items in a page"})]})]})]}),"\n",(0,n.jsx)(t.h3,{id:"usage-example",children:"Usage example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export async function getOrders(listLength: number, loadState: LoadState) {\n const page = loadState == LoadState.pullToRefresh || loadState == LoadState.refreshing ? 1 : calculatePage(listLength);\n\n return await ordersApi.getOrders({\n page: page,\n sorting: defaultOrdersSorting,\n });\n}\n"})})]})}function p(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(o,{...e})}):o(e)}},1151:(e,t,l)=>{l.d(t,{Z:()=>i,a:()=>r});var n=l(7294);const a={},s=n.createContext(a);function r(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/0a3d3edc.ca9b72d5.js b/assets/js/0a3d3edc.ca9b72d5.js deleted file mode 100644 index d8a587fe..00000000 --- a/assets/js/0a3d3edc.ca9b72d5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7102],{6561:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var a=n(5893),l=n(1151);const r={sidebar_position:1,title:"calculatePage"},s=void 0,i={unversionedId:"helpers/calculate-page",id:"helpers/calculate-page",title:"calculatePage",description:"Content",source:"@site/docs/helpers/calculate-page.md",sourceDirName:"helpers",slug:"/helpers/calculate-page",permalink:"/react-native-template-strong/docs/helpers/calculate-page",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/calculate-page.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"calculatePage"},sidebar:"tutorialSidebar",previous:{title:"Onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding"},next:{title:"colorHelpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers"}},c={},d=[{value:"Content",id:"content",level:2},{value:"calculatePage",id:"calculatepage",level:3},{value:"Params",id:"params",level:3},{value:"Usage example",id:"usage-example",level:3}];function o(e){const t=Object.assign({h2:"h2",p:"p",h3:"h3",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre",code:"code"},(0,l.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(t.p,{children:"Used for next page calculation."}),"\n",(0,a.jsx)(t.h3,{id:"calculatepage",children:"calculatePage"}),"\n",(0,a.jsx)(t.p,{children:"Used to calculate next page which will be requested from remote server by using calculation based on current page size and current page."}),"\n",(0,a.jsx)(t.h3,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,a.jsxs)(t.table,{children:[(0,a.jsx)(t.thead,{children:(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.th,{align:"left",children:"Name"}),(0,a.jsx)(t.th,{align:"left",children:"Type"}),(0,a.jsx)(t.th,{align:"left",children:"Required"}),(0,a.jsx)(t.th,{align:"left",children:"Default value"}),(0,a.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,a.jsxs)(t.tbody,{children:[(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"count"}),(0,a.jsx)(t.td,{align:"left",children:"Number"}),(0,a.jsx)(t.td,{align:"left",children:"True"}),(0,a.jsx)(t.td,{align:"left",children:"-"}),(0,a.jsx)(t.td,{align:"left",children:"Current total count of items"})]}),(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"pageSize"}),(0,a.jsx)(t.td,{align:"left",children:"Number"}),(0,a.jsx)(t.td,{align:"left",children:"False"}),(0,a.jsx)(t.td,{align:"left",children:"20"}),(0,a.jsx)(t.td,{align:"left",children:"Size of items in a page"})]})]})]}),"\n",(0,a.jsx)(t.h3,{id:"usage-example",children:"Usage example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"export async function getOrders(listLength: number, loadState: LoadState) {\n const page = loadState == LoadState.pullToRefresh || loadState == LoadState.refreshing ? 1 : calculatePage(listLength);\n\n return await ordersApi.getOrders({\n page: page,\n sorting: defaultOrdersSorting,\n });\n}\n"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,l.ah)(),e.components);return t?(0,a.jsx)(t,Object.assign({},e,{children:(0,a.jsx)(o,e)})):o(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>i,ah:()=>r});var a=n(7294);const l=a.createContext({});function r(e){const t=a.useContext(l);return a.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const s={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||s:r(e),a.createElement(l.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/11e380a5.67fdf632.js b/assets/js/11e380a5.67fdf632.js deleted file mode 100644 index 9ddce724..00000000 --- a/assets/js/11e380a5.67fdf632.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2370],{1778:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=s(5893),n=s(1151);const r={sidebar_position:5,title:"usePrevious"},i=void 0,a={unversionedId:"hooks/use-previous",id:"hooks/use-previous",title:"usePrevious",description:"Content",source:"@site/docs/hooks/use-previous.md",sourceDirName:"hooks",slug:"/hooks/use-previous",permalink:"/react-native-template-strong/docs/hooks/use-previous",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-previous.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"usePrevious"},sidebar:"tutorialSidebar",previous:{title:"useBackHandler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler"},next:{title:"useWhyDidYouUpdate",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update"}},u={},c=[{value:"Content",id:"content",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",a:"a"},(0,n.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["Description and usage are provided ",(0,o.jsx)(t.a,{href:"https://usehooks.com/usePrevious/",children:"here"}),"."]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,n.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>a,ah:()=>r});var o=s(7294);const n=o.createContext({});function r(e){const t=o.useContext(n);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function a({components:e,children:t,disableParentContext:s}){let a;return a=s?"function"==typeof e?e({}):e||i:r(e),o.createElement(n.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/11e380a5.e3acd72e.js b/assets/js/11e380a5.e3acd72e.js new file mode 100644 index 00000000..c86ce452 --- /dev/null +++ b/assets/js/11e380a5.e3acd72e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2370],{1778:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var o=s(5893),n=s(1151);const r={sidebar_position:5,title:"usePrevious"},i=void 0,a={id:"hooks/use-previous",title:"usePrevious",description:"Content",source:"@site/docs/hooks/use-previous.md",sourceDirName:"hooks",slug:"/hooks/use-previous",permalink:"/react-native-template-strong/docs/hooks/use-previous",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-previous.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"usePrevious"},sidebar:"tutorialSidebar",previous:{title:"useBackHandler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler"},next:{title:"useWhyDidYouUpdate",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update"}},u={},c=[{value:"Content",id:"content",level:2}];function d(e){const t={a:"a",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["Description and usage are provided ",(0,o.jsx)(t.a,{href:"https://usehooks.com/usePrevious/",children:"here"}),"."]})]})}function p(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>a,a:()=>i});var o=s(7294);const n={},r=o.createContext(n);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1426.a1095f54.js b/assets/js/1426.9ae98cef.js similarity index 69% rename from assets/js/1426.a1095f54.js rename to assets/js/1426.9ae98cef.js index 85641520..1c17fc15 100644 --- a/assets/js/1426.a1095f54.js +++ b/assets/js/1426.9ae98cef.js @@ -1 +1 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1426],{1426:(e,t,r)=>{function n(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ipn});var a=function(){};function c(e){var t=e.item,r=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(s){u=!0,o=s}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(p(r),[{headers:a}]))}else e.apply(void 0,[t].concat(p(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDsAfterSearch",g(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDs",g(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDsAfterSearch",g(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDs",g(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=d(t,f);return[].concat(p(e),p(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function S(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function E(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return P(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&C({onItemsChange:o,items:r,insights:f,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;s("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:f}}),r((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&l({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Selected"},c({item:t,items:m.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&u({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Active"},c({item:t,items:m.current}))]})}))},onStateChange:function(e){var t=e.state;p({state:t})},__autocomplete_pluginOptions:e}}function _(e){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==_(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t,r){var n,o=t.initialState;return{getState:function(){return o},dispatch:function(n,i){var a=function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(V++),plugins:o,initialState:X({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Q(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:a,onResolve:a};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=$($({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return X(X({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:X({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ne(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie,De,Ae,ke=null,xe=(Ie=-1,De=-1,Ae=void 0,function(e){var t=++Ie;return Promise.resolve(e).then((function(e){return Ae&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}var Fe=["props","refresh","store"],Ue=["inputElement","formElement","panelElement"],Be=["inputElement"],Ve=["inputElement","maxLength"],Ke=["sourceIndex"],$e=["sourceIndex"],Je=["item","source","sourceIndex"];function ze(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function We(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e){var t=e.props,r=e.refresh,n=e.store,o=Ze(e,Fe),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return We({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},Ze(e,Ue))},getRootProps:function(e){return We({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return We({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Ze(e,Be))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,Ke);return We({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Ce(We({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var l=e||{},u=(l.inputElement,l.maxLength),s=void 0===u?512:u,f=Ze(l,Ve),m=ge(n.getState()),p=function(e){return Boolean(e&&e.match(Me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),v=null!=m&&m.itemUrl&&!p?"go":"search";return We({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Ce(We({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=Le(e,_e);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ge(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(qe({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Ce(qe({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ge(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});Ce(qe({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(We({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:a,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},f)},getPanelProps:function(e){return We({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,$e);return We({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=Ze(e,Je);return We({id:"".concat(i(t.id,l),"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=ge(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(We({event:e,item:i,itemInputValue:c,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():Ce(We({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(We({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}var Xe=[{segment:"autocomplete-core",version:"1.9.3"}];function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function tt(e){for(var t=1;t=r?null===n?null:0:o}function at(e){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(e)}function ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function lt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){var t=e.translations,r=void 0===t?{}:t,n=At(e,Pt),o=r.noResultsText,i=void 0===o?"No results for":o,a=r.suggestedQueryText,c=void 0===a?"Try searching for":a,l=r.reportMissingResultsText,u=void 0===l?"Believe this query should return results?":l,s=r.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,m=n.state.context.searchSuggestions;return yt.createElement("div",{className:"DocSearch-NoResults"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(Et,null)),yt.createElement("p",{className:"DocSearch-Title"},i,' "',yt.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&yt.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},yt.createElement("p",{className:"DocSearch-Help"},c,":"),yt.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(It(e),[yt.createElement("li",{key:t},yt.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&yt.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),yt.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var xt=function(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ct(e){switch(e.type){case"lvl1":return yt.createElement(xt,null);case"content":return yt.createElement(_t,null);default:return yt.createElement(Nt,null)}}function Nt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function _t(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Tt(){return yt.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),yt.createElement("path",{d:"M8 17l-6-6 6-6"})))}var qt=["hit","attribute","tagName"];function Rt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Lt(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ft(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ut(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,i=Ht(e,qt);return(0,yt.createElement)(o,Lt(Lt({},i),{},{dangerouslySetInnerHTML:{__html:Ft(t,"_snippetResult.".concat(r,".value"))||Ft(t,r)}}))}function Bt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r|<\/mark>)/g,Wt=RegExp(zt.source);function Qt(e){var t,r,n,o,i,a=e;if(!a.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var c=((a.__docsearch_parent?null===(t=a.__docsearch_parent)||void 0===t||null===(r=t._highlightResult)||void 0===r||null===(n=r.hierarchy)||void 0===n?void 0:n.lvl0:null===(o=e._highlightResult)||void 0===o||null===(i=o.hierarchy)||void 0===i?void 0:i.lvl0)||{}).value;return c&&Wt.test(c)?c.replace(zt,""):c}function Zt(){return Zt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function or(e){var t=e.translations,r=void 0===t?{}:t,n=nr(e,tr),o=r.recentSearchesTitle,i=void 0===o?"Recent":o,a=r.noRecentSearchesText,c=void 0===a?"No recent searches":a,l=r.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,s=r.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,v=r.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:yt.createElement("div",{className:"DocSearch-StartScreen"},yt.createElement("p",{className:"DocSearch-Help"},c)):!1===n.hasCollections?null:yt.createElement("div",{className:"DocSearch-Dropdown-Container"},yt.createElement($t,rr({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Xt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(Yt,null))),yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(er,null))))}})),yt.createElement($t,rr({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Yt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},yt.createElement(er,null)))}})))}var ir=["translations"];function ar(){return ar=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lr=yt.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=cr(e,ir);if("error"===n.state.status)return yt.createElement(wt,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?yt.createElement(kt,ar({},n,{translations:null==r?void 0:r.noResultsScreen})):yt.createElement(Gt,n):yt.createElement(or,ar({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function ur(){return yt.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},yt.createElement("g",{fill:"none",fillRule:"evenodd"},yt.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},yt.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),yt.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},yt.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var sr=r(830),fr=["translations"];function mr(){return mr=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vr(e){var t=e.translations,r=void 0===t?{}:t,n=pr(e,fr),o=r.resetButtonTitle,i=void 0===o?"Clear the query":o,a=r.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,l=r.cancelButtonText,u=void 0===l?"Cancel":l,s=r.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return yt.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),yt.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),yt.createElement(yt.Fragment,null,yt.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},yt.createElement("label",mr({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),yt.createElement(sr.W,null)),yt.createElement("div",{className:"DocSearch-LoadingIndicator"},yt.createElement(ur,null)),yt.createElement("input",mr({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:ht}))),yt.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},yt.createElement(er,null))),yt.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var dr=["_highlightResult","_snippetResult"];function yr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function hr(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function br(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=hr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,yr(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function gr(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+tPromise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Or(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Or({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Or({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Or({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Or({caches:t}).clear()))}}function Sr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function jr(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function wr(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Pr="4.18.0",Ir={WithinQueryParameters:0,WithinHeaders:1};function Dr(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ar={Read:1,Write:2,Any:3},kr={Up:1,Down:2,Timeouted:3},xr=12e4;function Cr(e,t=kr.Up){return{...e,status:t,lastUpdate:Date.now()}}function Nr(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ar.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ar.Any}}const _r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function Tr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Cr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===kr.Up||Date.now()-e.lastUpdate>xr}(e))),n=e.filter((e=>function(e){return e.status===kr.Timeouted&&Date.now()-e.lastUpdate<=xr}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>Nr(e))):t}}))}const qr=(e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e);function Rr(e,t,r,n){const o=[],i=function(e,t){if(e.method===_r.Get||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),a=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),c=r.method,l=r.method!==_r.Get?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Fr(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},v=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},d={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=v(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Ur(n)),e.hostsCache.set(m,Cr(m,r.isTimedOut?kr.Timeouted:kr.Down))]).then((()=>f(t,l)))},onFail(e){throw v(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,Fr(o))}};return e.requester.send(p).then((e=>qr(e,d)))};return Tr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function Fr(e){return e.map((e=>Ur(e)))}function Ur(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const Br=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Ir.WithinHeaders?n:{},queryParameters:()=>e===Ir.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Ir.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>Nr(e))),read(e,t){const r=Dr(t,f.timeouts.read),n=()=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Write))),e,Dr(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ar.Read},{url:`${t}.algolia.net`,accept:Ar.Write}].concat(jr([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return wr(o,e.methods)},Vr=e=>(t,r)=>t.method===_r.Get?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>wr({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),$r=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:_r.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Jr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Qr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Wr=e=>(t,r)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Qr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr={Debug:1,Info:2,Error:3};function Gr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Zr.Error,{debug:(e,t)=>(Zr.Debug>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Zr.Info>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Sr(),requestsCache:Sr({serializable:!1}),hostsCache:Or({caches:[gr({key:`${Pr}-${e}`}),Sr()]}),userAgent:Lr(Pr).add({segment:"Browser",version:"lite"}),authMode:Ir.WithinQueryParameters};var o;return Br({...n,...r,methods:{search:$r,searchForFacetValues:Jr,multipleQueries:$r,multipleSearchForFacetValues:Jr,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Wr,searchForFacetValues:Qr,findAnswers:zr}})}})}Gr.version=Pr;const Xr=Gr;var Yr="3.5.1";function en(){}function tn(e){return e}function rn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nn(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}var on=["footer","searchBox"];function an(){return an=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pn(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?en:l,s=e.transformItems,f=void 0===s?tn:s,m=e.hitComponent,p=void 0===m?St:m,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,y=e.navigator,h=e.initialScrollY,b=void 0===h?0:h,g=e.transformSearchClient,O=void 0===g?tn:g,S=e.disableUserPersonalization,j=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,P=e.translations,I=void 0===P?{}:P,D=e.getMissingResultsUrl,A=e.insights,k=void 0!==A&&A,x=I.footer,C=I.searchBox,N=mn(I,on),_=sn(yt.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=_[0],q=_[1],R=yt.useRef(null),L=yt.useRef(null),M=yt.useRef(null),H=yt.useRef(null),F=yt.useRef(null),U=yt.useRef(10),B=yt.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,ht):"").current,V=yt.useRef(E||B).current,K=function(e,t,r){return yt.useMemo((function(){var n=Xr(e,t);return n.addAlgoliaAgent("docsearch",Yr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",Yr),r(n)}),[e,t,r])}(t,r,O),$=yt.useRef(br({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,J=yt.useRef(br({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===$.getAll().length?7:4})).current,z=yt.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===$.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&J.add(t)}}),[$,J,j]),W=yt.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[T.context.algoliaInsightsPlugin]),Q=yt.useMemo((function(){return dt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:y,onStateChange:function(e){q(e.state)},getSources:function(e){var o=e.query,i=e.state,l=e.setContext,s=e.setStatus;if(!o)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return J.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return $.getAll()}}];var m=Boolean(k);return K.search([{query:o,indexName:n,params:ln({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(U.current),"hierarchy.lvl2:".concat(U.current),"hierarchy.lvl3:".concat(U.current),"hierarchy.lvl4:".concat(U.current),"hierarchy.lvl5:".concat(U.current),"hierarchy.lvl6:".concat(U.current),"content:".concat(U.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:m},a)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results,a=o[0],s=a.hits,p=a.nbHits,v=nn(s,(function(e){return Qt(e)}),c);i.context.searchSuggestions.length0&&(X(),F.current&&F.current.focus())}),[V,X]),yt.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),yt.createElement("div",an({ref:R},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),yt.createElement("div",{className:"DocSearch-Modal",ref:L},yt.createElement("header",{className:"DocSearch-SearchBar",ref:M},yt.createElement(vr,an({},Q,{state:T,autoFocus:0===V.length,inputRef:F,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:u}))),yt.createElement("div",{className:"DocSearch-Dropdown",ref:H},yt.createElement(lr,an({},Q,{indexName:n,state:T,hitComponent:p,resultsFooterComponent:d,disableUserPersonalization:j,recentSearches:J,favoriteSearches:$,inputRef:F,translations:N,getMissingResultsUrl:D,onItemClick:function(e,t){W(e),z(e),rn(t)||u()}}))),yt.createElement("footer",{className:"DocSearch-Footer"},yt.createElement(Ot,{translations:x}))))}}}]); \ No newline at end of file +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1426],{1426:(e,t,r)=>{function n(e,t){var r=void 0;return function(){for(var n=arguments.length,o=new Array(n),i=0;ipn});var a=function(){};function c(e){var t=e.item,r=e.items;return{index:t.__autocomplete_indexName,items:[t],positions:[1+r.findIndex((function(e){return e.objectID===t.objectID}))],queryID:t.__autocomplete_queryID,algoliaSource:["autocomplete"]}}function l(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=r){var n,o,i,a,c=[],l=!0,u=!1;try{if(i=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=i.call(r)).done)&&(c.push(n.value),c.length!==t);l=!0);}catch(s){u=!0,o=s}finally{try{if(!l&&null!=r.return&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw o}}return c}}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return u(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return u(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function u(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);re.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function y(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function h(e){for(var t=1;t=3||2===r&&n>=4||1===r&&n>=10);function i(t,r,n){if(o&&void 0!==n){var i=n[0].__autocomplete_algoliaCredentials,a={"X-Algolia-Application-Id":i.appId,"X-Algolia-API-Key":i.apiKey};e.apply(void 0,[t].concat(p(r),[{headers:a}]))}else e.apply(void 0,[t].concat(p(r)))}return{init:function(t,r){e("init",{appId:t,apiKey:r})},setUserToken:function(t){e("setUserToken",t)},clickedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDsAfterSearch",g(t),t[0].items)},clickedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("clickedObjectIDs",g(t),t[0].items)},clickedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["clickedFilters"].concat(r))},convertedObjectIDsAfterSearch:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDsAfterSearch",g(t),t[0].items)},convertedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&i("convertedObjectIDs",g(t),t[0].items)},convertedFilters:function(){for(var t=arguments.length,r=new Array(t),n=0;n0&&e.apply(void 0,["convertedFilters"].concat(r))},viewedObjectIDs:function(){for(var e=arguments.length,t=new Array(e),r=0;r0&&t.reduce((function(e,t){var r=t.items,n=d(t,f);return[].concat(p(e),p(function(e){for(var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:20,r=[],n=0;n0&&e.apply(void 0,["viewedFilters"].concat(r))}}}function S(e){var t=e.items.reduce((function(e,t){var r;return e[t.__autocomplete_indexName]=(null!==(r=e[t.__autocomplete_indexName])&&void 0!==r?r:[]).concat(t),e}),{});return Object.keys(t).map((function(e){return{index:e,items:t[e],algoliaSource:["autocomplete"]}}))}function j(e){return e.objectID&&e.__autocomplete_indexName&&e.__autocomplete_queryID}function w(e){return w="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},w(e)}function E(e){return function(e){if(Array.isArray(e))return P(e)}(e)||function(e){if("undefined"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e["@@iterator"])return Array.from(e)}(e)||function(e,t){if(!e)return;if("string"==typeof e)return P(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return P(e,t)}(e)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function P(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r0&&C({onItemsChange:o,items:r,insights:f,state:t}))}}),0);return{name:"aa.algoliaInsightsPlugin",subscribe:function(e){var t=e.setContext,r=e.onSelect,n=e.onActive;s("addAlgoliaAgent","insights-plugin"),t({algoliaInsightsPlugin:{__algoliaSearchParameters:{clickAnalytics:!0},insights:f}}),r((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&l({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Selected"},c({item:t,items:m.current}))]})})),n((function(e){var t=e.item,r=e.state,n=e.event;j(t)&&u({state:r,event:n,insights:f,item:t,insightsEvents:[D({eventName:"Item Active"},c({item:t,items:m.current}))]})}))},onStateChange:function(e){var t=e.state;p({state:t})},__autocomplete_pluginOptions:e}}function _(e){return _="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},_(e)}function T(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function q(e,t,r){return(t=function(e){var t=function(e,t){if("object"!==_(e)||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||"default");if("object"!==_(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string");return"symbol"===_(t)?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function R(e,t,r){var n,o=t.initialState;return{getState:function(){return o},dispatch:function(n,i){var a=function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r0},reshape:function(e){return e.sources}},e),{},{id:null!==(r=e.id)&&void 0!==r?r:"autocomplete-".concat(V++),plugins:o,initialState:X({activeItemId:null,query:"",completion:null,collections:[],isOpen:!1,status:"idle",context:{}},e.initialState),onStateChange:function(t){var r;null===(r=e.onStateChange)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onStateChange)||void 0===r?void 0:r.call(e,t)}))},onSubmit:function(t){var r;null===(r=e.onSubmit)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onSubmit)||void 0===r?void 0:r.call(e,t)}))},onReset:function(t){var r;null===(r=e.onReset)||void 0===r||r.call(e,t),o.forEach((function(e){var r;return null===(r=e.onReset)||void 0===r?void 0:r.call(e,t)}))},getSources:function(r){return Promise.all([].concat(Q(o.map((function(e){return e.getSources}))),[e.getSources]).filter(Boolean).map((function(e){return function(e,t){var r=[];return Promise.resolve(e(t)).then((function(e){return Array.isArray(e),Promise.all(e.filter((function(e){return Boolean(e)})).map((function(e){if(e.sourceId,r.includes(e.sourceId))throw new Error("[Autocomplete] The `sourceId` ".concat(JSON.stringify(e.sourceId)," is not unique."));r.push(e.sourceId);var t={getItemInputValue:function(e){return e.state.query},getItemUrl:function(){},onSelect:function(e){(0,e.setIsOpen)(!1)},onActive:a,onResolve:a};Object.keys(t).forEach((function(e){t[e].__default=!0}));var n=$($({},t),e);return Promise.resolve(n)})))}))}(e,r)}))).then((function(e){return L(e)})).then((function(e){return e.map((function(e){return X(X({},e),{},{onSelect:function(r){e.onSelect(r),t.forEach((function(e){var t;return null===(t=e.onSelect)||void 0===t?void 0:t.call(e,r)}))},onActive:function(r){e.onActive(r),t.forEach((function(e){var t;return null===(t=e.onActive)||void 0===t?void 0:t.call(e,r)}))},onResolve:function(r){e.onResolve(r),t.forEach((function(e){var t;return null===(t=e.onResolve)||void 0===t?void 0:t.call(e,r)}))}})}))}))},navigator:X({navigate:function(e){var t=e.itemUrl;n.location.assign(t)},navigateNewTab:function(e){var t=e.itemUrl,r=n.open(t,"_blank","noopener");null==r||r.focus()},navigateNewWindow:function(e){var t=e.itemUrl;n.open(t,"_blank","noopener")}},e.navigator)})}function te(e){return te="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},te(e)}function re(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function ne(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Ie,De,Ae,ke=null,xe=(Ie=-1,De=-1,Ae=void 0,function(e){var t=++Ie;return Promise.resolve(e).then((function(e){return Ae&&t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var Me=/((gt|sm)-|galaxy nexus)|samsung[- ]|samsungbrowser/i;function He(e){return He="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},He(e)}var Fe=["props","refresh","store"],Ue=["inputElement","formElement","panelElement"],Be=["inputElement"],Ve=["inputElement","maxLength"],Ke=["sourceIndex"],$e=["sourceIndex"],Je=["item","source","sourceIndex"];function ze(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function We(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ge(e){var t=e.props,r=e.refresh,n=e.store,o=Ze(e,Fe),i=function(e,t){return void 0!==t?"".concat(e,"-").concat(t):e};return{getEnvironmentProps:function(e){var r=e.inputElement,o=e.formElement,i=e.panelElement;function a(e){!n.getState().isOpen&&n.pendingRequests.isEmpty()||e.target===r||!1===[o,i].some((function(t){return r=t,n=e.target,r===n||r.contains(n);var r,n}))&&(n.dispatch("blur",null),t.debug||n.pendingRequests.cancelAll())}return We({onTouchStart:a,onMouseDown:a,onTouchMove:function(e){!1!==n.getState().isOpen&&r===t.environment.document.activeElement&&e.target!==r&&r.blur()}},Ze(e,Ue))},getRootProps:function(e){return We({role:"combobox","aria-expanded":n.getState().isOpen,"aria-haspopup":"listbox","aria-owns":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label")},e)},getFormProps:function(e){e.inputElement;return We({action:"",noValidate:!0,role:"search",onSubmit:function(i){var a;i.preventDefault(),t.onSubmit(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("submit",null),null===(a=e.inputElement)||void 0===a||a.blur()},onReset:function(i){var a;i.preventDefault(),t.onReset(We({event:i,refresh:r,state:n.getState()},o)),n.dispatch("reset",null),null===(a=e.inputElement)||void 0===a||a.focus()}},Ze(e,Be))},getLabelProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,Ke);return We({htmlFor:"".concat(i(t.id,n),"-input"),id:"".concat(i(t.id,n),"-label")},o)},getInputProps:function(e){var i;function c(e){(t.openOnFocus||Boolean(n.getState().query))&&Ce(We({event:e,props:t,query:n.getState().completion||n.getState().query,refresh:r,store:n},o)),n.dispatch("focus",null)}var l=e||{},u=(l.inputElement,l.maxLength),s=void 0===u?512:u,f=Ze(l,Ve),m=ge(n.getState()),p=function(e){return Boolean(e&&e.match(Me))}((null===(i=t.environment.navigator)||void 0===i?void 0:i.userAgent)||""),v=null!=m&&m.itemUrl&&!p?"go":"search";return We({"aria-autocomplete":"both","aria-activedescendant":n.getState().isOpen&&null!==n.getState().activeItemId?"".concat(t.id,"-item-").concat(n.getState().activeItemId):void 0,"aria-controls":n.getState().isOpen?"".concat(t.id,"-list"):void 0,"aria-labelledby":"".concat(t.id,"-label"),value:n.getState().completion||n.getState().query,id:"".concat(t.id,"-input"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",enterKeyHint:v,spellCheck:"false",autoFocus:t.autoFocus,placeholder:t.placeholder,maxLength:s,type:"search",onChange:function(e){Ce(We({event:e,props:t,query:e.currentTarget.value.slice(0,s),refresh:r,store:n},o))},onKeyDown:function(e){!function(e){var t=e.event,r=e.props,n=e.refresh,o=e.store,i=Le(e,_e);if("ArrowUp"===t.key||"ArrowDown"===t.key){var a=function(){var e=r.environment.document.getElementById("".concat(r.id,"-item-").concat(o.getState().activeItemId));e&&(e.scrollIntoViewIfNeeded?e.scrollIntoViewIfNeeded(!1):e.scrollIntoView(!1))},c=function(){var e=ge(o.getState());if(null!==o.getState().activeItemId&&e){var r=e.item,a=e.itemInputValue,c=e.itemUrl,l=e.source;l.onActive(qe({event:t,item:r,itemInputValue:a,itemUrl:c,refresh:n,source:l,state:o.getState()},i))}};t.preventDefault(),!1===o.getState().isOpen&&(r.openOnFocus||Boolean(o.getState().query))?Ce(qe({event:t,props:r,query:o.getState().query,refresh:n,store:o},i)).then((function(){o.dispatch(t.key,{nextActiveItemId:r.defaultActiveItemId}),c(),setTimeout(a,0)})):(o.dispatch(t.key,{}),c(),a())}else if("Escape"===t.key)t.preventDefault(),o.dispatch(t.key,null),o.pendingRequests.cancelAll();else if("Tab"===t.key)o.dispatch("blur",null),o.pendingRequests.cancelAll();else if("Enter"===t.key){if(null===o.getState().activeItemId||o.getState().collections.every((function(e){return 0===e.items.length})))return void(r.debug||o.pendingRequests.cancelAll());t.preventDefault();var l=ge(o.getState()),u=l.item,s=l.itemInputValue,f=l.itemUrl,m=l.source;if(t.metaKey||t.ctrlKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewTab({itemUrl:f,item:u,state:o.getState()}));else if(t.shiftKey)void 0!==f&&(m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),r.navigator.navigateNewWindow({itemUrl:f,item:u,state:o.getState()}));else if(t.altKey);else{if(void 0!==f)return m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i)),void r.navigator.navigate({itemUrl:f,item:u,state:o.getState()});Ce(qe({event:t,nextState:{isOpen:!1},props:r,query:s,refresh:n,store:o},i)).then((function(){m.onSelect(qe({event:t,item:u,itemInputValue:s,itemUrl:f,refresh:n,source:m,state:o.getState()},i))}))}}}(We({event:e,props:t,refresh:r,store:n},o))},onFocus:c,onBlur:a,onClick:function(r){e.inputElement!==t.environment.document.activeElement||n.getState().isOpen||c(r)}},f)},getPanelProps:function(e){return We({onMouseDown:function(e){e.preventDefault()},onMouseLeave:function(){n.dispatch("mouseleave",null)}},e)},getListProps:function(e){var r=e||{},n=r.sourceIndex,o=Ze(r,$e);return We({role:"listbox","aria-labelledby":"".concat(i(t.id,n),"-label"),id:"".concat(i(t.id,n),"-list")},o)},getItemProps:function(e){var a=e.item,c=e.source,l=e.sourceIndex,u=Ze(e,Je);return We({id:"".concat(i(t.id,l),"-item-").concat(a.__autocomplete_id),role:"option","aria-selected":n.getState().activeItemId===a.__autocomplete_id,onMouseMove:function(e){if(a.__autocomplete_id!==n.getState().activeItemId){n.dispatch("mousemove",a.__autocomplete_id);var t=ge(n.getState());if(null!==n.getState().activeItemId&&t){var i=t.item,c=t.itemInputValue,l=t.itemUrl,u=t.source;u.onActive(We({event:e,item:i,itemInputValue:c,itemUrl:l,refresh:r,source:u,state:n.getState()},o))}}},onMouseDown:function(e){e.preventDefault()},onClick:function(e){var i=c.getItemInputValue({item:a,state:n.getState()}),l=c.getItemUrl({item:a,state:n.getState()});(l?Promise.resolve():Ce(We({event:e,nextState:{isOpen:!1},props:t,query:i,refresh:r,store:n},o))).then((function(){c.onSelect(We({event:e,item:a,itemInputValue:i,itemUrl:l,refresh:r,source:c,state:n.getState()},o))}))}},u)}}}var Xe=[{segment:"autocomplete-core",version:"1.9.3"}];function Ye(e){return Ye="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},Ye(e)}function et(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function tt(e){for(var t=1;t=r?null===n?null:0:o}function at(e){return at="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},at(e)}function ct(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function lt(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function kt(e){var t=e.translations,r=void 0===t?{}:t,n=At(e,Pt),o=r.noResultsText,i=void 0===o?"No results for":o,a=r.suggestedQueryText,c=void 0===a?"Try searching for":a,l=r.reportMissingResultsText,u=void 0===l?"Believe this query should return results?":l,s=r.reportMissingResultsLinkText,f=void 0===s?"Let us know.":s,m=n.state.context.searchSuggestions;return yt.createElement("div",{className:"DocSearch-NoResults"},yt.createElement("div",{className:"DocSearch-Screen-Icon"},yt.createElement(Et,null)),yt.createElement("p",{className:"DocSearch-Title"},i,' "',yt.createElement("strong",null,n.state.query),'"'),m&&m.length>0&&yt.createElement("div",{className:"DocSearch-NoResults-Prefill-List"},yt.createElement("p",{className:"DocSearch-Help"},c,":"),yt.createElement("ul",null,m.slice(0,3).reduce((function(e,t){return[].concat(It(e),[yt.createElement("li",{key:t},yt.createElement("button",{className:"DocSearch-Prefill",key:t,type:"button",onClick:function(){n.setQuery(t.toLowerCase()+" "),n.refresh(),n.inputRef.current.focus()}},t))])}),[]))),n.getMissingResultsUrl&&yt.createElement("p",{className:"DocSearch-Help"},"".concat(u," "),yt.createElement("a",{href:n.getMissingResultsUrl({query:n.state.query}),target:"_blank",rel:"noopener noreferrer"},f)))}var xt=function(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 6v12c0 .52-.2 1-1 1H4c-.7 0-1-.33-1-1V2c0-.55.42-1 1-1h8l5 5zM14 8h-3.13c-.51 0-.87-.34-.87-.87V4",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))};function Ct(e){switch(e.type){case"lvl1":return yt.createElement(xt,null);case"content":return yt.createElement(_t,null);default:return yt.createElement(Nt,null)}}function Nt(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M13 13h4-4V8H7v5h6v4-4H7V8H3h4V3v5h6V3v5h4-4v5zm-6 0v4-4H3h4z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}function _t(){return yt.createElement("svg",{width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("path",{d:"M17 5H3h14zm0 5H3h14zm0 5H3h14z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinejoin:"round"}))}function Tt(){return yt.createElement("svg",{className:"DocSearch-Hit-Select-Icon",width:"20",height:"20",viewBox:"0 0 20 20"},yt.createElement("g",{stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"},yt.createElement("path",{d:"M18 3v4c0 2-2 4-4 4H2"}),yt.createElement("path",{d:"M8 17l-6-6 6-6"})))}var qt=["hit","attribute","tagName"];function Rt(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function Lt(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function Ft(e,t){return t.split(".").reduce((function(e,t){return null!=e&&e[t]?e[t]:null}),e)}function Ut(e){var t=e.hit,r=e.attribute,n=e.tagName,o=void 0===n?"span":n,i=Ht(e,qt);return(0,yt.createElement)(o,Lt(Lt({},i),{},{dangerouslySetInnerHTML:{__html:Ft(t,"_snippetResult.".concat(r,".value"))||Ft(t,r)}}))}function Bt(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==r)return;var n,o,i=[],a=!0,c=!1;try{for(r=r.call(e);!(a=(n=r.next()).done)&&(i.push(n.value),!t||i.length!==t);a=!0);}catch(l){c=!0,o=l}finally{try{a||null==r.return||r.return()}finally{if(c)throw o}}return i}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Vt(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);"Object"===r&&e.constructor&&(r=e.constructor.name);if("Map"===r||"Set"===r)return Array.from(e);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Vt(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Vt(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r|<\/mark>)/g,Wt=RegExp(zt.source);function Qt(e){var t,r,n=e;if(!n.__docsearch_parent&&!e._highlightResult)return e.hierarchy.lvl0;var o=((n.__docsearch_parent?null===(t=n.__docsearch_parent)||void 0===t||null===(t=t._highlightResult)||void 0===t||null===(t=t.hierarchy)||void 0===t?void 0:t.lvl0:null===(r=e._highlightResult)||void 0===r||null===(r=r.hierarchy)||void 0===r?void 0:r.lvl0)||{}).value;return o&&Wt.test(o)?o.replace(zt,""):o}function Zt(){return Zt=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function or(e){var t=e.translations,r=void 0===t?{}:t,n=nr(e,tr),o=r.recentSearchesTitle,i=void 0===o?"Recent":o,a=r.noRecentSearchesText,c=void 0===a?"No recent searches":a,l=r.saveRecentSearchButtonTitle,u=void 0===l?"Save this search":l,s=r.removeRecentSearchButtonTitle,f=void 0===s?"Remove this search from history":s,m=r.favoriteSearchesTitle,p=void 0===m?"Favorite":m,v=r.removeFavoriteSearchButtonTitle,d=void 0===v?"Remove this search from favorites":v;return"idle"===n.state.status&&!1===n.hasCollections?n.disableUserPersonalization?null:yt.createElement("div",{className:"DocSearch-StartScreen"},yt.createElement("p",{className:"DocSearch-Help"},c)):!1===n.hasCollections?null:yt.createElement("div",{className:"DocSearch-Dropdown-Container"},yt.createElement($t,rr({},n,{title:i,collection:n.state.collections[0],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Xt,null))},renderAction:function(e){var t=e.item,r=e.runFavoriteTransition,o=e.runDeleteTransition;return yt.createElement(yt.Fragment,null,yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:u,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.add(t),n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(Yt,null))),yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:f,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),o((function(){n.recentSearches.remove(t),n.refresh()}))}},yt.createElement(er,null))))}})),yt.createElement($t,rr({},n,{title:p,collection:n.state.collections[1],renderIcon:function(){return yt.createElement("div",{className:"DocSearch-Hit-icon"},yt.createElement(Yt,null))},renderAction:function(e){var t=e.item,r=e.runDeleteTransition;return yt.createElement("div",{className:"DocSearch-Hit-action"},yt.createElement("button",{className:"DocSearch-Hit-action-button",title:d,type:"submit",onClick:function(e){e.preventDefault(),e.stopPropagation(),r((function(){n.favoriteSearches.remove(t),n.refresh()}))}},yt.createElement(er,null)))}})))}var ir=["translations"];function ar(){return ar=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}var lr=yt.memo((function(e){var t=e.translations,r=void 0===t?{}:t,n=cr(e,ir);if("error"===n.state.status)return yt.createElement(wt,{translations:null==r?void 0:r.errorScreen});var o=n.state.collections.some((function(e){return e.items.length>0}));return n.state.query?!1===o?yt.createElement(kt,ar({},n,{translations:null==r?void 0:r.noResultsScreen})):yt.createElement(Gt,n):yt.createElement(or,ar({},n,{hasCollections:o,translations:null==r?void 0:r.startScreen}))}),(function(e,t){return"loading"===t.state.status||"stalled"===t.state.status}));function ur(){return yt.createElement("svg",{viewBox:"0 0 38 38",stroke:"currentColor",strokeOpacity:".5"},yt.createElement("g",{fill:"none",fillRule:"evenodd"},yt.createElement("g",{transform:"translate(1 1)",strokeWidth:"2"},yt.createElement("circle",{strokeOpacity:".3",cx:"18",cy:"18",r:"18"}),yt.createElement("path",{d:"M36 18c0-9.94-8.06-18-18-18"},yt.createElement("animateTransform",{attributeName:"transform",type:"rotate",from:"0 18 18",to:"360 18 18",dur:"1s",repeatCount:"indefinite"})))))}var sr=r(830),fr=["translations"];function mr(){return mr=Object.assign||function(e){for(var t=1;t=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function vr(e){var t=e.translations,r=void 0===t?{}:t,n=pr(e,fr),o=r.resetButtonTitle,i=void 0===o?"Clear the query":o,a=r.resetButtonAriaLabel,c=void 0===a?"Clear the query":a,l=r.cancelButtonText,u=void 0===l?"Cancel":l,s=r.cancelButtonAriaLabel,f=void 0===s?"Cancel":s,m=n.getFormProps({inputElement:n.inputRef.current}).onReset;return yt.useEffect((function(){n.autoFocus&&n.inputRef.current&&n.inputRef.current.focus()}),[n.autoFocus,n.inputRef]),yt.useEffect((function(){n.isFromSelection&&n.inputRef.current&&n.inputRef.current.select()}),[n.isFromSelection,n.inputRef]),yt.createElement(yt.Fragment,null,yt.createElement("form",{className:"DocSearch-Form",onSubmit:function(e){e.preventDefault()},onReset:m},yt.createElement("label",mr({className:"DocSearch-MagnifierLabel"},n.getLabelProps()),yt.createElement(sr.W,null)),yt.createElement("div",{className:"DocSearch-LoadingIndicator"},yt.createElement(ur,null)),yt.createElement("input",mr({className:"DocSearch-Input",ref:n.inputRef},n.getInputProps({inputElement:n.inputRef.current,autoFocus:n.autoFocus,maxLength:ht}))),yt.createElement("button",{type:"reset",title:i,className:"DocSearch-Reset","aria-label":c,hidden:!n.state.query},yt.createElement(er,null))),yt.createElement("button",{className:"DocSearch-Cancel",type:"reset","aria-label":f,onClick:n.onClose},u))}var dr=["_highlightResult","_snippetResult"];function yr(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r,n,o={},i=Object.keys(e);for(n=0;n=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function hr(e){return!1===function(){var e="__TEST_KEY__";try{return localStorage.setItem(e,""),localStorage.removeItem(e),!0}catch(t){return!1}}()?{setItem:function(){},getItem:function(){return[]}}:{setItem:function(t){return window.localStorage.setItem(e,JSON.stringify(t))},getItem:function(){var t=window.localStorage.getItem(e);return t?JSON.parse(t):[]}}}function br(e){var t=e.key,r=e.limit,n=void 0===r?5:r,o=hr(t),i=o.getItem().slice(0,n);return{add:function(e){var t=e,r=(t._highlightResult,t._snippetResult,yr(t,dr)),a=i.findIndex((function(e){return e.objectID===r.objectID}));a>-1&&i.splice(a,1),i.unshift(r),i=i.slice(0,n),o.setItem(i)},remove:function(e){i=i.filter((function(t){return t.objectID!==e.objectID})),o.setItem(i)},getAll:function(){return i}}}function gr(e){const t=`algoliasearch-client-js-${e.key}`;let r;const n=()=>(void 0===r&&(r=e.localStorage||window.localStorage),r),o=()=>JSON.parse(n().getItem(t)||"{}"),i=e=>{n().setItem(t,JSON.stringify(e))};return{get:(t,r,n={miss:()=>Promise.resolve()})=>Promise.resolve().then((()=>{(()=>{const t=e.timeToLive?1e3*e.timeToLive:null,r=o(),n=Object.fromEntries(Object.entries(r).filter((([,e])=>void 0!==e.timestamp)));if(i(n),!t)return;const a=Object.fromEntries(Object.entries(n).filter((([,e])=>{const r=(new Date).getTime();return!(e.timestamp+tPromise.all([e?e.value:r(),void 0!==e]))).then((([e,t])=>Promise.all([e,t||n.miss(e)]))).then((([e])=>e)),set:(e,r)=>Promise.resolve().then((()=>{const i=o();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:r},n().setItem(t,JSON.stringify(i)),r})),delete:e=>Promise.resolve().then((()=>{const r=o();delete r[JSON.stringify(e)],n().setItem(t,JSON.stringify(r))})),clear:()=>Promise.resolve().then((()=>{n().removeItem(t)}))}}function Or(e){const t=[...e.caches],r=t.shift();return void 0===r?{get:(e,t,r={miss:()=>Promise.resolve()})=>t().then((e=>Promise.all([e,r.miss(e)]))).then((([e])=>e)),set:(e,t)=>Promise.resolve(t),delete:e=>Promise.resolve(),clear:()=>Promise.resolve()}:{get:(e,n,o={miss:()=>Promise.resolve()})=>r.get(e,n,o).catch((()=>Or({caches:t}).get(e,n,o))),set:(e,n)=>r.set(e,n).catch((()=>Or({caches:t}).set(e,n))),delete:e=>r.delete(e).catch((()=>Or({caches:t}).delete(e))),clear:()=>r.clear().catch((()=>Or({caches:t}).clear()))}}function Sr(e={serializable:!0}){let t={};return{get(r,n,o={miss:()=>Promise.resolve()}){const i=JSON.stringify(r);if(i in t)return Promise.resolve(e.serializable?JSON.parse(t[i]):t[i]);const a=n(),c=o&&o.miss||(()=>Promise.resolve());return a.then((e=>c(e))).then((()=>a))},set:(r,n)=>(t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)),delete:e=>(delete t[JSON.stringify(e)],Promise.resolve()),clear:()=>(t={},Promise.resolve())}}function jr(e){let t=e.length-1;for(;t>0;t--){const r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function wr(e,t){return t?(Object.keys(t).forEach((r=>{e[r]=t[r](e)})),e):e}function Er(e,...t){let r=0;return e.replace(/%s/g,(()=>encodeURIComponent(t[r++])))}const Pr="4.22.0",Ir={WithinQueryParameters:0,WithinHeaders:1};function Dr(e,t){const r=e||{},n=r.data||{};return Object.keys(r).forEach((e=>{-1===["timeout","headers","queryParameters","data","cacheable"].indexOf(e)&&(n[e]=r[e])})),{data:Object.entries(n).length>0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}const Ar={Read:1,Write:2,Any:3},kr={Up:1,Down:2,Timeouted:3},xr=12e4;function Cr(e,t=kr.Up){return{...e,status:t,lastUpdate:Date.now()}}function Nr(e){return"string"==typeof e?{protocol:"https",url:e,accept:Ar.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||Ar.Any}}const _r={Delete:"DELETE",Get:"GET",Post:"POST",Put:"PUT"};function Tr(e,t){return Promise.all(t.map((t=>e.get(t,(()=>Promise.resolve(Cr(t))))))).then((e=>{const r=e.filter((e=>function(e){return e.status===kr.Up||Date.now()-e.lastUpdate>xr}(e))),n=e.filter((e=>function(e){return e.status===kr.Timeouted&&Date.now()-e.lastUpdate<=xr}(e))),o=[...r,...n];return{getTimeout:(e,t)=>(0===n.length&&0===e?1:n.length+3+e)*t,statelessHosts:o.length>0?o.map((e=>Nr(e))):t}}))}const qr=(e,t)=>(e=>{const t=e.status;return e.isTimedOut||(({isTimedOut:e,status:t})=>!e&&0==~~t)(e)||2!=~~(t/100)&&4!=~~(t/100)})(e)?t.onRetry(e):(({status:e})=>2==~~(e/100))(e)?t.onSuccess(e):t.onFail(e);function Rr(e,t,r,n){const o=[],i=function(e,t){if(e.method===_r.Get||void 0===e.data&&void 0===t.data)return;const r=Array.isArray(e.data)?e.data:{...e.data,...t.data};return JSON.stringify(r)}(r,n),a=function(e,t){const r={...e.headers,...t.headers},n={};return Object.keys(r).forEach((e=>{const t=r[e];n[e.toLowerCase()]=t})),n}(e,n),c=r.method,l=r.method!==_r.Get?{}:{...r.data,...n.data},u={"x-algolia-agent":e.userAgent.value,...e.queryParameters,...l,...n.queryParameters};let s=0;const f=(t,l)=>{const m=t.pop();if(void 0===m)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:Fr(o)};const p={data:i,headers:a,method:c,url:Mr(m,r.path,u),connectTimeout:l(s,e.timeouts.connect),responseTimeout:l(s,n.timeout)},v=e=>{const r={request:p,response:e,host:m,triesLeft:t.length};return o.push(r),r},d={onSuccess:e=>function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e),onRetry(r){const n=v(r);return r.isTimedOut&&s++,Promise.all([e.logger.info("Retryable failure",Ur(n)),e.hostsCache.set(m,Cr(m,r.isTimedOut?kr.Timeouted:kr.Down))]).then((()=>f(t,l)))},onFail(e){throw v(e),function({content:e,status:t},r){let n=e;try{n=JSON.parse(e).message}catch(o){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(n,t,r)}(e,Fr(o))}};return e.requester.send(p).then((e=>qr(e,d)))};return Tr(e.hostsCache,t).then((e=>f([...e.statelessHosts].reverse(),e.getTimeout)))}function Lr(e){const t={value:`Algolia for JavaScript (${e})`,add(e){const r=`; ${e.segment}${void 0!==e.version?` (${e.version})`:""}`;return-1===t.value.indexOf(r)&&(t.value=`${t.value}${r}`),t}};return t}function Mr(e,t,r){const n=Hr(r);let o=`${e.protocol}://${e.url}/${"/"===t.charAt(0)?t.substr(1):t}`;return n.length&&(o+=`?${n}`),o}function Hr(e){return Object.keys(e).map((t=>{return Er("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function Fr(e){return e.map((e=>Ur(e)))}function Ur(e){const t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return{...e,request:{...e.request,headers:{...e.request.headers,...t}}}}const Br=e=>{const t=e.appId,r=function(e,t,r){const n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:()=>e===Ir.WithinHeaders?n:{},queryParameters:()=>e===Ir.WithinQueryParameters?n:{}}}(void 0!==e.authMode?e.authMode:Ir.WithinHeaders,t,e.apiKey),n=function(e){const{hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,hosts:l,queryParameters:u,headers:s}=e,f={hostsCache:t,logger:r,requester:n,requestsCache:o,responsesCache:i,timeouts:a,userAgent:c,headers:s,queryParameters:u,hosts:l.map((e=>Nr(e))),read(e,t){const r=Dr(t,f.timeouts.read),n=()=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Read))),e,r);if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();const o={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(o,(()=>f.requestsCache.get(o,(()=>f.requestsCache.set(o,n()).then((e=>Promise.all([f.requestsCache.delete(o),e])),(e=>Promise.all([f.requestsCache.delete(o),Promise.reject(e)]))).then((([e,t])=>t))))),{miss:e=>f.responsesCache.set(o,e)})},write:(e,t)=>Rr(f,f.hosts.filter((e=>0!=(e.accept&Ar.Write))),e,Dr(t,f.timeouts.write))};return f}({hosts:[{url:`${t}-dsn.algolia.net`,accept:Ar.Read},{url:`${t}.algolia.net`,accept:Ar.Write}].concat(jr([{url:`${t}-1.algolianet.com`},{url:`${t}-2.algolianet.com`},{url:`${t}-3.algolianet.com`}])),...e,headers:{...r.headers(),"content-type":"application/x-www-form-urlencoded",...e.headers},queryParameters:{...r.queryParameters(),...e.queryParameters}}),o={transporter:n,appId:t,addAlgoliaAgent(e,t){n.userAgent.add({segment:e,version:t})},clearCache:()=>Promise.all([n.requestsCache.clear(),n.responsesCache.clear()]).then((()=>{}))};return wr(o,e.methods)},Vr=e=>(t,r)=>t.method===_r.Get?e.transporter.read(t,r):e.transporter.write(t,r),Kr=e=>(t,r={})=>wr({transporter:e.transporter,appId:e.appId,indexName:t},r.methods),$r=e=>(t,r)=>{const n=t.map((e=>({...e,params:Hr(e.params||{})})));return e.transporter.read({method:_r.Post,path:"1/indexes/*/queries",data:{requests:n},cacheable:!0},r)},Jr=e=>(t,r)=>Promise.all(t.map((t=>{const{facetName:n,facetQuery:o,...i}=t.params;return Kr(e)(t.indexName,{methods:{searchForFacetValues:Qr}}).searchForFacetValues(n,o,{...r,...i})}))),zr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n),Wr=e=>(t,r)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r),Qr=e=>(t,r,n)=>e.transporter.read({method:_r.Post,path:Er("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n),Zr={Debug:1,Info:2,Error:3};function Gr(e,t,r){const n={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:e=>new Promise((t=>{const r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((t=>r.setRequestHeader(t,e.headers[t])));const n=(e,n)=>setTimeout((()=>{r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e),o=n(e.connectTimeout,"Connection timeout");let i;r.onreadystatechange=()=>{r.readyState>r.OPENED&&void 0===i&&(clearTimeout(o),i=n(e.responseTimeout,"Socket timeout"))},r.onerror=()=>{0===r.status&&(clearTimeout(o),clearTimeout(i),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=()=>{clearTimeout(o),clearTimeout(i),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))},logger:(o=Zr.Error,{debug:(e,t)=>(Zr.Debug>=o&&console.debug(e,t),Promise.resolve()),info:(e,t)=>(Zr.Info>=o&&console.info(e,t),Promise.resolve()),error:(e,t)=>(console.error(e,t),Promise.resolve())}),responsesCache:Sr(),requestsCache:Sr({serializable:!1}),hostsCache:Or({caches:[gr({key:`${Pr}-${e}`}),Sr()]}),userAgent:Lr(Pr).add({segment:"Browser",version:"lite"}),authMode:Ir.WithinQueryParameters};var o;return Br({...n,...r,methods:{search:$r,searchForFacetValues:Jr,multipleQueries:$r,multipleSearchForFacetValues:Jr,customRequest:Vr,initIndex:e=>t=>Kr(e)(t,{methods:{search:Wr,searchForFacetValues:Qr,findAnswers:zr}})}})}Gr.version=Pr;const Xr=Gr;var Yr="3.5.2";function en(){}function tn(e){return e}function rn(e){return 1===e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey}function nn(e,t,r){return e.reduce((function(e,n){var o=t(n);return e.hasOwnProperty(o)||(e[o]=[]),e[o].length<(r||5)&&e[o].push(n),e}),{})}var on=["footer","searchBox"];function an(){return an=Object.assign||function(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r=0||(o[r]=e[r]);return o}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r])}return o}function pn(e){var t=e.appId,r=e.apiKey,n=e.indexName,o=e.placeholder,i=void 0===o?"Search docs":o,a=e.searchParameters,c=e.maxResultsPerGroup,l=e.onClose,u=void 0===l?en:l,s=e.transformItems,f=void 0===s?tn:s,m=e.hitComponent,p=void 0===m?St:m,v=e.resultsFooterComponent,d=void 0===v?function(){return null}:v,y=e.navigator,h=e.initialScrollY,b=void 0===h?0:h,g=e.transformSearchClient,O=void 0===g?tn:g,S=e.disableUserPersonalization,j=void 0!==S&&S,w=e.initialQuery,E=void 0===w?"":w,P=e.translations,I=void 0===P?{}:P,D=e.getMissingResultsUrl,A=e.insights,k=void 0!==A&&A,x=I.footer,C=I.searchBox,N=mn(I,on),_=sn(yt.useState({query:"",collections:[],completion:null,context:{},isOpen:!1,activeItemId:null,status:"idle"}),2),T=_[0],q=_[1],R=yt.useRef(null),L=yt.useRef(null),M=yt.useRef(null),H=yt.useRef(null),F=yt.useRef(null),U=yt.useRef(10),B=yt.useRef("undefined"!=typeof window?window.getSelection().toString().slice(0,ht):"").current,V=yt.useRef(E||B).current,K=function(e,t,r){return yt.useMemo((function(){var n=Xr(e,t);return n.addAlgoliaAgent("docsearch",Yr),!1===/docsearch.js \(.*\)/.test(n.transporter.userAgent.value)&&n.addAlgoliaAgent("docsearch-react",Yr),r(n)}),[e,t,r])}(t,r,O),$=yt.useRef(br({key:"__DOCSEARCH_FAVORITE_SEARCHES__".concat(n),limit:10})).current,J=yt.useRef(br({key:"__DOCSEARCH_RECENT_SEARCHES__".concat(n),limit:0===$.getAll().length?7:4})).current,z=yt.useCallback((function(e){if(!j){var t="content"===e.type?e.__docsearch_parent:e;t&&-1===$.getAll().findIndex((function(e){return e.objectID===t.objectID}))&&J.add(t)}}),[$,J,j]),W=yt.useCallback((function(e){if(T.context.algoliaInsightsPlugin&&e.__autocomplete_id){var t=e,r={eventName:"Item Selected",index:t.__autocomplete_indexName,items:[t],positions:[e.__autocomplete_id],queryID:t.__autocomplete_queryID};T.context.algoliaInsightsPlugin.insights.clickedObjectIDsAfterSearch(r)}}),[T.context.algoliaInsightsPlugin]),Q=yt.useMemo((function(){return dt({id:"docsearch",defaultActiveItemId:0,placeholder:i,openOnFocus:!0,initialState:{query:V,context:{searchSuggestions:[]}},insights:k,navigator:y,onStateChange:function(e){q(e.state)},getSources:function(e){var o=e.query,i=e.state,l=e.setContext,s=e.setStatus;if(!o)return j?[]:[{sourceId:"recentSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return J.getAll()}},{sourceId:"favoriteSearches",onSelect:function(e){var t=e.item,r=e.event;z(t),rn(r)||u()},getItemUrl:function(e){return e.item.url},getItems:function(){return $.getAll()}}];var m=Boolean(k);return K.search([{query:o,indexName:n,params:ln({attributesToRetrieve:["hierarchy.lvl0","hierarchy.lvl1","hierarchy.lvl2","hierarchy.lvl3","hierarchy.lvl4","hierarchy.lvl5","hierarchy.lvl6","content","type","url"],attributesToSnippet:["hierarchy.lvl1:".concat(U.current),"hierarchy.lvl2:".concat(U.current),"hierarchy.lvl3:".concat(U.current),"hierarchy.lvl4:".concat(U.current),"hierarchy.lvl5:".concat(U.current),"hierarchy.lvl6:".concat(U.current),"content:".concat(U.current)],snippetEllipsisText:"\u2026",highlightPreTag:"",highlightPostTag:"",hitsPerPage:20,clickAnalytics:m},a)}]).catch((function(e){throw"RetryError"===e.name&&s("error"),e})).then((function(e){var o=e.results[0],a=o.hits,s=o.nbHits,p=nn(a,(function(e){return Qt(e)}),c);i.context.searchSuggestions.length0&&(X(),F.current&&F.current.focus())}),[V,X]),yt.useEffect((function(){function e(){if(L.current){var e=.01*window.innerHeight;L.current.style.setProperty("--docsearch-vh","".concat(e,"px"))}}return e(),window.addEventListener("resize",e),function(){window.removeEventListener("resize",e)}}),[]),yt.createElement("div",an({ref:R},G({"aria-expanded":!0}),{className:["DocSearch","DocSearch-Container","stalled"===T.status&&"DocSearch-Container--Stalled","error"===T.status&&"DocSearch-Container--Errored"].filter(Boolean).join(" "),role:"button",tabIndex:0,onMouseDown:function(e){e.target===e.currentTarget&&u()}}),yt.createElement("div",{className:"DocSearch-Modal",ref:L},yt.createElement("header",{className:"DocSearch-SearchBar",ref:M},yt.createElement(vr,an({},Q,{state:T,autoFocus:0===V.length,inputRef:F,isFromSelection:Boolean(V)&&V===B,translations:C,onClose:u}))),yt.createElement("div",{className:"DocSearch-Dropdown",ref:H},yt.createElement(lr,an({},Q,{indexName:n,state:T,hitComponent:p,resultsFooterComponent:d,disableUserPersonalization:j,recentSearches:J,favoriteSearches:$,inputRef:F,translations:N,getMissingResultsUrl:D,onItemClick:function(e,t){W(e),z(e),rn(t)||u()}}))),yt.createElement("footer",{className:"DocSearch-Footer"},yt.createElement(Ot,{translations:x}))))}}}]); \ No newline at end of file diff --git a/assets/js/14f2708c.29d255d8.js b/assets/js/14f2708c.29d255d8.js deleted file mode 100644 index 4fee70f3..00000000 --- a/assets/js/14f2708c.29d255d8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9908],{548:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var i=a(5893),t=a(1151);const s={sidebar_position:2,title:"Add language"},o=void 0,d={unversionedId:"localisation/add-language",id:"localisation/add-language",title:"Add language",description:"Description",source:"@site/docs/localisation/add-language.md",sourceDirName:"localisation",slug:"/localisation/add-language",permalink:"/react-native-template-strong/docs/localisation/add-language",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/add-language.md",tags:[],version:"current",lastUpdatedAt:1634101010,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Add language"},sidebar:"tutorialSidebar",previous:{title:"Translations",permalink:"/react-native-template-strong/docs/localisation/translations"},next:{title:"Change language",permalink:"/react-native-template-strong/docs/localisation/change-language"}},l={},r=[{value:"Description",id:"description",level:2},{value:"Add language in localization",id:"add-language-in-localization",level:2},{value:"Add imports for dayjs",id:"add-imports-for-dayjs",level:2},{value:"Add imports for intl",id:"add-imports-for-intl",level:2},{value:"Add language in iOS",id:"add-language-in-ios",level:2},{value:"Add language in Android",id:"add-language-in-android",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",a:"a"},(0,t.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"description",children:"Description"}),"\n",(0,i.jsx)(n.p,{children:"To add a new language you have to do some changes in native iOS and Android code in order to show available languages in stores and in application's settings."}),"\n",(0,i.jsxs)(n.p,{children:["And it goes without saying you have to add language in ",(0,i.jsx)(n.code,{children:"localization"})," itself and add translation for each string already defined in other languages."]}),"\n",(0,i.jsxs)(n.p,{children:["There also should be added imports of translations for ",(0,i.jsx)(n.code,{children:"intl"})," and ",(0,i.jsx)(n.code,{children:"dayjs"})," to show correct strings and formats."]}),"\n",(0,i.jsx)(n.p,{children:"As an example, I will add Russian language."}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-localization",children:"Add language in localization"}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.code,{children:"localization.ts"})," you can see ",(0,i.jsx)(n.code,{children:"Languages"})," enum."]}),"\n",(0,i.jsxs)(n.p,{children:["Add your language (in our example ",(0,i.jsx)(n.code,{children:"ru"}),") there based on its locale identifier."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export enum Languages {\n en = "en",\n ru = "ru",\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Then you have to open every single translation file you have stored in ",(0,i.jsx)(n.code,{children:"translations"})," folder and add ",(0,i.jsx)(n.code,{children:"ru"})," with every single translation string."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, here's how ",(0,i.jsx)(n.code,{children:"emptyLocalization"})," will look like:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export const emptyLocalization = {\n en: {\n noData: "No data",\n checkThisPageLater: "Check this page later",\n },\n ru: {\n noData: "\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445",\n checkThisPageLater: "\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u0437\u0436\u0435",\n },\n};\n'})}),"\n",(0,i.jsx)(n.p,{children:"If you miss a string in some langauge, it will be seen as error in place where you are using this string."}),"\n",(0,i.jsx)(n.h2,{id:"add-imports-for-dayjs",children:"Add imports for dayjs"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"/src/common/localization/dateFormatter.ts"})," and the top of this file you will see already an import of English language:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/en";\n'})}),"\n",(0,i.jsx)(n.p,{children:"It has ESLint disable rule because unassigned imports aren't welcome."}),"\n",(0,i.jsx)(n.p,{children:"Add your language import here and add the disable rule comment too:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/en";\n// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/ru";\n'})}),"\n",(0,i.jsx)(n.h2,{id:"add-imports-for-intl",children:"Add imports for intl"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"/src/common/localization/intlFormatter.ts"})," and the top of this file you will see already an import of English language:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/en";\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Add your language the same way you did with ",(0,i.jsx)(n.code,{children:"dayjs"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/en";\n// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/ru";\n'})}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-ios",children:"Add language in iOS"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:".xcworkspace"})," file in XCode."]}),"\n",(0,i.jsx)(n.p,{children:"We will be adding stub files without actual translations so that App Store and the application settings would see that the app has support for languages."}),"\n",(0,i.jsxs)(n.p,{children:["To add a language follow this ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/xcode/adding-support-for-languages-and-regions",children:"guide"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"When you added a language just add a comment there to mention that actual localization is stored within your TypeScript files."}),"\n",(0,i.jsxs)(n.p,{children:["More about localization for App Store and other things you can find ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/localization/",children:"here"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-android",children:"Add language in Android"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"Android"})," folder in Android Studio."]}),"\n",(0,i.jsxs)(n.p,{children:["And follow this ",(0,i.jsx)(n.a,{href:"https://developer.android.com/training/basics/supporting-devices/languages",children:"guide"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Just add ",(0,i.jsx)(n.code,{children:".xml"})," strings."]})]})}const p=function(e={}){const{wrapper:n}=Object.assign({},(0,t.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(c,e)})):c(e)}},1151:(e,n,a)=>{a.d(n,{Zo:()=>d,ah:()=>s});var i=a(7294);const t=i.createContext({});function s(e){const n=i.useContext(t);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const o={};function d({components:e,children:n,disableParentContext:a}){let d;return d=a?"function"==typeof e?e({}):e||o:s(e),i.createElement(t.Provider,{value:d},n)}}}]); \ No newline at end of file diff --git a/assets/js/14f2708c.86c03e1f.js b/assets/js/14f2708c.86c03e1f.js new file mode 100644 index 00000000..068e0b1b --- /dev/null +++ b/assets/js/14f2708c.86c03e1f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9908],{548:(e,n,a)=>{a.r(n),a.d(n,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>r});var i=a(5893),t=a(1151);const s={sidebar_position:2,title:"Add language"},o=void 0,d={id:"localisation/add-language",title:"Add language",description:"Description",source:"@site/docs/localisation/add-language.md",sourceDirName:"localisation",slug:"/localisation/add-language",permalink:"/react-native-template-strong/docs/localisation/add-language",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/add-language.md",tags:[],version:"current",lastUpdatedAt:1634101010,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Add language"},sidebar:"tutorialSidebar",previous:{title:"Translations",permalink:"/react-native-template-strong/docs/localisation/translations"},next:{title:"Change language",permalink:"/react-native-template-strong/docs/localisation/change-language"}},l={},r=[{value:"Description",id:"description",level:2},{value:"Add language in localization",id:"add-language-in-localization",level:2},{value:"Add imports for dayjs",id:"add-imports-for-dayjs",level:2},{value:"Add imports for intl",id:"add-imports-for-intl",level:2},{value:"Add language in iOS",id:"add-language-in-ios",level:2},{value:"Add language in Android",id:"add-language-in-android",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"description",children:"Description"}),"\n",(0,i.jsx)(n.p,{children:"To add a new language you have to do some changes in native iOS and Android code in order to show available languages in stores and in application's settings."}),"\n",(0,i.jsxs)(n.p,{children:["And it goes without saying you have to add language in ",(0,i.jsx)(n.code,{children:"localization"})," itself and add translation for each string already defined in other languages."]}),"\n",(0,i.jsxs)(n.p,{children:["There also should be added imports of translations for ",(0,i.jsx)(n.code,{children:"intl"})," and ",(0,i.jsx)(n.code,{children:"dayjs"})," to show correct strings and formats."]}),"\n",(0,i.jsx)(n.p,{children:"As an example, I will add Russian language."}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-localization",children:"Add language in localization"}),"\n",(0,i.jsxs)(n.p,{children:["In ",(0,i.jsx)(n.code,{children:"localization.ts"})," you can see ",(0,i.jsx)(n.code,{children:"Languages"})," enum."]}),"\n",(0,i.jsxs)(n.p,{children:["Add your language (in our example ",(0,i.jsx)(n.code,{children:"ru"}),") there based on its locale identifier."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export enum Languages {\n en = "en",\n ru = "ru",\n}\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Then you have to open every single translation file you have stored in ",(0,i.jsx)(n.code,{children:"translations"})," folder and add ",(0,i.jsx)(n.code,{children:"ru"})," with every single translation string."]}),"\n",(0,i.jsxs)(n.p,{children:["For example, here's how ",(0,i.jsx)(n.code,{children:"emptyLocalization"})," will look like:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export const emptyLocalization = {\n en: {\n noData: "No data",\n checkThisPageLater: "Check this page later",\n },\n ru: {\n noData: "\u041d\u0435\u0442 \u0434\u0430\u043d\u043d\u044b\u0445",\n checkThisPageLater: "\u041f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435 \u044d\u0442\u0443 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043f\u043e\u0437\u0436\u0435",\n },\n};\n'})}),"\n",(0,i.jsx)(n.p,{children:"If you miss a string in some langauge, it will be seen as error in place where you are using this string."}),"\n",(0,i.jsx)(n.h2,{id:"add-imports-for-dayjs",children:"Add imports for dayjs"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"/src/common/localization/dateFormatter.ts"})," and the top of this file you will see already an import of English language:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/en";\n'})}),"\n",(0,i.jsx)(n.p,{children:"It has ESLint disable rule because unassigned imports aren't welcome."}),"\n",(0,i.jsx)(n.p,{children:"Add your language import here and add the disable rule comment too:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/en";\n// eslint-disable-next-line import/no-unassigned-import\nimport "dayjs/locale/ru";\n'})}),"\n",(0,i.jsx)(n.h2,{id:"add-imports-for-intl",children:"Add imports for intl"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"/src/common/localization/intlFormatter.ts"})," and the top of this file you will see already an import of English language:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/en";\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Add your language the same way you did with ",(0,i.jsx)(n.code,{children:"dayjs"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/en";\n// eslint-disable-next-line import/no-unassigned-import\nimport "intl/locale-data/jsonp/ru";\n'})}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-ios",children:"Add language in iOS"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:".xcworkspace"})," file in XCode."]}),"\n",(0,i.jsx)(n.p,{children:"We will be adding stub files without actual translations so that App Store and the application settings would see that the app has support for languages."}),"\n",(0,i.jsxs)(n.p,{children:["To add a language follow this ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/documentation/xcode/adding-support-for-languages-and-regions",children:"guide"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"When you added a language just add a comment there to mention that actual localization is stored within your TypeScript files."}),"\n",(0,i.jsxs)(n.p,{children:["More about localization for App Store and other things you can find ",(0,i.jsx)(n.a,{href:"https://developer.apple.com/localization/",children:"here"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"add-language-in-android",children:"Add language in Android"}),"\n",(0,i.jsxs)(n.p,{children:["Open ",(0,i.jsx)(n.code,{children:"Android"})," folder in Android Studio."]}),"\n",(0,i.jsxs)(n.p,{children:["And follow this ",(0,i.jsx)(n.a,{href:"https://developer.android.com/training/basics/supporting-devices/languages",children:"guide"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Just add ",(0,i.jsx)(n.code,{children:".xml"})," strings."]})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,n,a)=>{a.d(n,{Z:()=>d,a:()=>o});var i=a(7294);const t={},s=i.createContext(t);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1772.28750d4e.js b/assets/js/1772.28750d4e.js deleted file mode 100644 index 29e0bc9c..00000000 --- a/assets/js/1772.28750d4e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(7294);var n=i(6010),s=i(5999),o=i(2503),r=i(5893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(o.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(s.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(s.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(s.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(7294);var n=i(5999),s=i(833),o=i(7452),r=i(5658),a=i(5893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.d,{title:e}),(0,a.jsx)(o.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/1772.61f6592f.js b/assets/js/1772.61f6592f.js new file mode 100644 index 00000000..5a728994 --- /dev/null +++ b/assets/js/1772.61f6592f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1772],{5658:(e,t,i)=>{i.d(t,{Z:()=>a});i(7294);var n=i(512),s=i(5999),o=i(2503),r=i(5893);function a(e){let{className:t}=e;return(0,r.jsx)("main",{className:(0,n.Z)("container margin-vert--xl",t),children:(0,r.jsx)("div",{className:"row",children:(0,r.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,r.jsx)(o.Z,{as:"h1",className:"hero__title",children:(0,r.jsx)(s.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,r.jsx)("p",{children:(0,r.jsx)(s.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,r.jsx)("p",{children:(0,r.jsx)(s.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}},1772:(e,t,i)=>{i.r(t),i.d(t,{default:()=>l});i(7294);var n=i(5999),s=i(833),o=i(7372),r=i(5658),a=i(5893);function l(){const e=(0,n.I)({id:"theme.NotFound.title",message:"Page Not Found"});return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(s.d,{title:e}),(0,a.jsx)(o.Z,{children:(0,a.jsx)(r.Z,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.b8f57162.js b/assets/js/17896441.b8f57162.js new file mode 100644 index 00000000..8d33d95e --- /dev/null +++ b/assets/js/17896441.b8f57162.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7918],{903:(e,t,s)=>{s.r(t),s.d(t,{default:()=>pe});var a=s(7294),n=s(833),i=s(902),l=s(5893);const o=a.createContext(null);function r(e){let{children:t,content:s}=e;const n=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(s);return(0,l.jsx)(o.Provider,{value:n,children:t})}function d(){const e=(0,a.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function c(){const{metadata:e,frontMatter:t,assets:s}=d();return(0,l.jsx)(n.d,{title:e.title,description:e.description,keywords:t.keywords,image:s.image??t.image})}var u=s(512),h=s(7524),m=s(5999),b=s(3692);function p(e){const{permalink:t,title:s,subLabel:a,isNext:n}=e;return(0,l.jsxs)(b.Z,{className:(0,u.Z)("pagination-nav__link",n?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,l.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,l.jsx)("div",{className:"pagination-nav__label",children:s})]})}function x(e){const{previous:t,next:s}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,m.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(p,{...t,subLabel:(0,l.jsx)(m.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,l.jsx)(p,{...s,subLabel:(0,l.jsx)(m.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function v(){const{metadata:e}=d();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var j=s(2263),g=s(143),f=s(5281),_=s(373),N=s(4477);const L={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function k(e){const t=L[e.versionMetadata.banner];return(0,l.jsx)(t,{...e})}function C(e){let{versionLabel:t,to:s,onClick:a}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(b.Z,{to:s,onClick:a,children:(0,l.jsx)(m.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function Z(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,j.Z)(),{pluginId:n}=(0,g.gA)({failfast:!0}),{savePreferredVersionName:i}=(0,_.J)(n),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,g.Jo)(n),d=o??(c=r).docs.find((e=>e.id===c.mainDocId));var c;return(0,l.jsxs)("div",{className:(0,u.Z)(t,f.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(k,{siteTitle:a,versionMetadata:s})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(C,{versionLabel:r.label,to:d.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:t}=e;const s=(0,N.E)();return s.banner?(0,l.jsx)(Z,{className:t,versionMetadata:s}):null}function U(e){let{className:t}=e;const s=(0,N.E)();return s.badge?(0,l.jsx)("span",{className:(0,u.Z)(t,f.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(m.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s}=e;return(0,l.jsx)(m.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:s})})},children:" on {date}"})}function y(e){let{lastUpdatedBy:t}=e;return(0,l.jsx)(m.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:t})},children:" by {user}"})}function A(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,l.jsxs)("span",{className:f.k.common.lastUpdated,children:[(0,l.jsx)(m.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&s?(0,l.jsx)(w,{lastUpdatedAt:t,formattedLastUpdatedAt:s}):"",byUser:a?(0,l.jsx)(y,{lastUpdatedBy:a}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const M={iconEdit:"iconEdit_Z9Sw"};function B(e){let{className:t,...s}=e;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(M.iconEdit,t),"aria-hidden":"true",...s,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function I(e){let{editUrl:t}=e;return(0,l.jsxs)(b.Z,{to:t,className:f.k.common.editThisPage,children:[(0,l.jsx)(B,{}),(0,l.jsx)(m.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const E={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function V(e){let{permalink:t,label:s,count:a}=e;return(0,l.jsxs)(b.Z,{href:t,className:(0,u.Z)(E.tag,a?E.tagWithCount:E.tagRegular),children:[s,a&&(0,l.jsx)("span",{children:a})]})}const H={tags:"tags_jXut",tag:"tag_QGVx"};function P(e){let{tags:t}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(m.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,u.Z)(H.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:s}=e;return(0,l.jsx)("li",{className:H.tag,children:(0,l.jsx)(V,{label:t,permalink:s})},s)}))})]})}const D={lastUpdated:"lastUpdated_vwxv"};function S(e){return(0,l.jsx)("div",{className:(0,u.Z)(f.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(P,{...e})})})}function F(e){let{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:a,formattedLastUpdatedAt:n}=e;return(0,l.jsxs)("div",{className:(0,u.Z)(f.k.docs.docFooterEditMetaRow,"row"),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(I,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.Z)("col",D.lastUpdated),children:(s||a)&&(0,l.jsx)(A,{lastUpdatedAt:s,formattedLastUpdatedAt:n,lastUpdatedBy:a})})]})}function R(){const{metadata:e}=d(),{editUrl:t,lastUpdatedAt:s,formattedLastUpdatedAt:a,lastUpdatedBy:n,tags:i}=e,o=i.length>0,r=!!(t||s||n);return o||r?(0,l.jsxs)("footer",{className:(0,u.Z)(f.k.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,l.jsx)(S,{tags:i}),r&&(0,l.jsx)(F,{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:n,formattedLastUpdatedAt:a})]}):null}var z=s(6043),O=s(3743);const G={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function W(e){let{collapsed:t,...s}=e;return(0,l.jsx)("button",{type:"button",...s,className:(0,u.Z)("clean-btn",G.tocCollapsibleButton,!t&&G.tocCollapsibleButtonExpanded,s.className),children:(0,l.jsx)(m.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function J(e){let{toc:t,className:s,minHeadingLevel:a,maxHeadingLevel:n}=e;const{collapsed:i,toggleCollapsed:o}=(0,z.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(q.tocCollapsible,!i&&q.tocCollapsibleExpanded,s),children:[(0,l.jsx)(W,{collapsed:i,onClick:o}),(0,l.jsx)(z.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(O.Z,{toc:t,minHeadingLevel:a,maxHeadingLevel:n})})]})}const Q={tocMobile:"tocMobile_ITEo"};function X(){const{toc:e,frontMatter:t}=d();return(0,l.jsx)(J,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(f.k.docs.docTocMobile,Q.tocMobile)})}var Y=s(9407);function $(){const{toc:e,frontMatter:t}=d();return(0,l.jsx)(Y.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.k.docs.docTocDesktop})}var K=s(2503),ee=s(9206);function te(e){let{children:t}=e;const s=function(){const{metadata:e,frontMatter:t,contentTitle:s}=d();return t.hide_title||void 0!==s?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(f.k.docs.docMarkdown,"markdown"),children:[s&&(0,l.jsx)("header",{children:(0,l.jsx)(K.Z,{as:"h1",children:s})}),(0,l.jsx)(ee.Z,{children:t})]})}var se=s(2802),ae=s(8596),ne=s(4996);function ie(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const le={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function oe(){const e=(0,ne.Z)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(b.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(ie,{className:le.breadcrumbHomeIcon})})})}const re={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function de(e){let{children:t,href:s,isLast:a}=e;const n="breadcrumbs__link";return a?(0,l.jsx)("span",{className:n,itemProp:"name",children:t}):s?(0,l.jsx)(b.Z,{className:n,href:s,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:t})}):(0,l.jsx)("span",{className:n,children:t})}function ce(e){let{children:t,active:s,index:a,addMicrodata:n}=e;return(0,l.jsxs)("li",{...n&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,l.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function ue(){const e=(0,se.s1)(),t=(0,ae.Ns)();return e?(0,l.jsx)("nav",{className:(0,u.Z)(f.k.docs.docBreadcrumbs,re.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,l.jsx)(oe,{}),e.map(((t,s)=>{const a=s===e.length-1,n="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,l.jsx)(ce,{active:a,index:s,addMicrodata:!!n,children:(0,l.jsx)(de,{href:n,isLast:a,children:t.label})},s)}))]})}):null}var he=s(2212);const me={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function be(e){let{children:t}=e;const s=function(){const{frontMatter:e,toc:t}=d(),s=(0,h.i)(),a=e.hide_table_of_contents,n=!a&&t.length>0;return{hidden:a,mobile:n?(0,l.jsx)(X,{}):void 0,desktop:!n||"desktop"!==s&&"ssr"!==s?void 0:(0,l.jsx)($,{})}}(),{metadata:{unlisted:a}}=d();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!s.hidden&&me.docItemCol),children:[a&&(0,l.jsx)(he.Z,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:me.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ue,{}),(0,l.jsx)(U,{}),s.mobile,(0,l.jsx)(te,{children:t}),(0,l.jsx)(R,{})]}),(0,l.jsx)(v,{})]})]}),s.desktop&&(0,l.jsx)("div",{className:"col col--3",children:s.desktop})]})}function pe(e){const t=`docs-doc-id-${e.content.metadata.id}`,s=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(n.FG,{className:t,children:[(0,l.jsx)(c,{}),(0,l.jsx)(be,{children:(0,l.jsx)(s,{})})]})})}}}]); \ No newline at end of file diff --git a/assets/js/17896441.c9a53a75.js b/assets/js/17896441.c9a53a75.js deleted file mode 100644 index 72ebb508..00000000 --- a/assets/js/17896441.c9a53a75.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7918],{903:(e,t,s)=>{s.r(t),s.d(t,{default:()=>pe});var a=s(7294),n=s(833),i=s(902),l=s(5893);const o=a.createContext(null);function r(e){let{children:t,content:s}=e;const n=function(e){return(0,a.useMemo)((()=>({metadata:e.metadata,frontMatter:e.frontMatter,assets:e.assets,contentTitle:e.contentTitle,toc:e.toc})),[e])}(s);return(0,l.jsx)(o.Provider,{value:n,children:t})}function d(){const e=(0,a.useContext)(o);if(null===e)throw new i.i6("DocProvider");return e}function c(){const{metadata:e,frontMatter:t,assets:s}=d();return(0,l.jsx)(n.d,{title:e.title,description:e.description,keywords:t.keywords,image:s.image??t.image})}var u=s(6010),h=s(7524),m=s(5999),b=s(9960);function p(e){const{permalink:t,title:s,subLabel:a,isNext:n}=e;return(0,l.jsxs)(b.Z,{className:(0,u.Z)("pagination-nav__link",n?"pagination-nav__link--next":"pagination-nav__link--prev"),to:t,children:[a&&(0,l.jsx)("div",{className:"pagination-nav__sublabel",children:a}),(0,l.jsx)("div",{className:"pagination-nav__label",children:s})]})}function x(e){const{previous:t,next:s}=e;return(0,l.jsxs)("nav",{className:"pagination-nav docusaurus-mt-lg","aria-label":(0,m.I)({id:"theme.docs.paginator.navAriaLabel",message:"Docs pages",description:"The ARIA label for the docs pagination"}),children:[t&&(0,l.jsx)(p,{...t,subLabel:(0,l.jsx)(m.Z,{id:"theme.docs.paginator.previous",description:"The label used to navigate to the previous doc",children:"Previous"})}),s&&(0,l.jsx)(p,{...s,subLabel:(0,l.jsx)(m.Z,{id:"theme.docs.paginator.next",description:"The label used to navigate to the next doc",children:"Next"}),isNext:!0})]})}function v(){const{metadata:e}=d();return(0,l.jsx)(x,{previous:e.previous,next:e.next})}var j=s(2263),g=s(143),f=s(5281),_=s(373),N=s(4477);const L={unreleased:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.unreleasedVersionLabel",description:"The label used to tell the user that he's browsing an unreleased doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:s.label})},children:"This is unreleased documentation for {siteTitle} {versionLabel} version."})},unmaintained:function(e){let{siteTitle:t,versionMetadata:s}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.unmaintainedVersionLabel",description:"The label used to tell the user that he's browsing an unmaintained doc version",values:{siteTitle:t,versionLabel:(0,l.jsx)("b",{children:s.label})},children:"This is documentation for {siteTitle} {versionLabel}, which is no longer actively maintained."})}};function k(e){const t=L[e.versionMetadata.banner];return(0,l.jsx)(t,{...e})}function C(e){let{versionLabel:t,to:s,onClick:a}=e;return(0,l.jsx)(m.Z,{id:"theme.docs.versions.latestVersionSuggestionLabel",description:"The label used to tell the user to check the latest version",values:{versionLabel:t,latestVersionLink:(0,l.jsx)("b",{children:(0,l.jsx)(b.Z,{to:s,onClick:a,children:(0,l.jsx)(m.Z,{id:"theme.docs.versions.latestVersionLinkLabel",description:"The label used for the latest version suggestion link label",children:"latest version"})})})},children:"For up-to-date documentation, see the {latestVersionLink} ({versionLabel})."})}function Z(e){let{className:t,versionMetadata:s}=e;const{siteConfig:{title:a}}=(0,j.Z)(),{pluginId:n}=(0,g.gA)({failfast:!0}),{savePreferredVersionName:i}=(0,_.J)(n),{latestDocSuggestion:o,latestVersionSuggestion:r}=(0,g.Jo)(n),d=o??(c=r).docs.find((e=>e.id===c.mainDocId));var c;return(0,l.jsxs)("div",{className:(0,u.Z)(t,f.k.docs.docVersionBanner,"alert alert--warning margin-bottom--md"),role:"alert",children:[(0,l.jsx)("div",{children:(0,l.jsx)(k,{siteTitle:a,versionMetadata:s})}),(0,l.jsx)("div",{className:"margin-top--md",children:(0,l.jsx)(C,{versionLabel:r.label,to:d.path,onClick:()=>i(r.name)})})]})}function T(e){let{className:t}=e;const s=(0,N.E)();return s.banner?(0,l.jsx)(Z,{className:t,versionMetadata:s}):null}function U(e){let{className:t}=e;const s=(0,N.E)();return s.badge?(0,l.jsx)("span",{className:(0,u.Z)(t,f.k.docs.docVersionBadge,"badge badge--secondary"),children:(0,l.jsx)(m.Z,{id:"theme.docs.versionBadge.label",values:{versionLabel:s.label},children:"Version: {versionLabel}"})}):null}function w(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s}=e;return(0,l.jsx)(m.Z,{id:"theme.lastUpdated.atDate",description:"The words used to describe on which date a page has been last updated",values:{date:(0,l.jsx)("b",{children:(0,l.jsx)("time",{dateTime:new Date(1e3*t).toISOString(),children:s})})},children:" on {date}"})}function y(e){let{lastUpdatedBy:t}=e;return(0,l.jsx)(m.Z,{id:"theme.lastUpdated.byUser",description:"The words used to describe by who the page has been last updated",values:{user:(0,l.jsx)("b",{children:t})},children:" by {user}"})}function A(e){let{lastUpdatedAt:t,formattedLastUpdatedAt:s,lastUpdatedBy:a}=e;return(0,l.jsxs)("span",{className:f.k.common.lastUpdated,children:[(0,l.jsx)(m.Z,{id:"theme.lastUpdated.lastUpdatedAtBy",description:"The sentence used to display when a page has been last updated, and by who",values:{atDate:t&&s?(0,l.jsx)(w,{lastUpdatedAt:t,formattedLastUpdatedAt:s}):"",byUser:a?(0,l.jsx)(y,{lastUpdatedBy:a}):""},children:"Last updated{atDate}{byUser}"}),!1]})}const M={iconEdit:"iconEdit_Z9Sw"};function B(e){let{className:t,...s}=e;return(0,l.jsx)("svg",{fill:"currentColor",height:"20",width:"20",viewBox:"0 0 40 40",className:(0,u.Z)(M.iconEdit,t),"aria-hidden":"true",...s,children:(0,l.jsx)("g",{children:(0,l.jsx)("path",{d:"m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"})})})}function I(e){let{editUrl:t}=e;return(0,l.jsxs)(b.Z,{to:t,className:f.k.common.editThisPage,children:[(0,l.jsx)(B,{}),(0,l.jsx)(m.Z,{id:"theme.common.editThisPage",description:"The link label to edit the current page",children:"Edit this page"})]})}const E={tag:"tag_zVej",tagRegular:"tagRegular_sFm0",tagWithCount:"tagWithCount_h2kH"};function V(e){let{permalink:t,label:s,count:a}=e;return(0,l.jsxs)(b.Z,{href:t,className:(0,u.Z)(E.tag,a?E.tagWithCount:E.tagRegular),children:[s,a&&(0,l.jsx)("span",{children:a})]})}const H={tags:"tags_jXut",tag:"tag_QGVx"};function P(e){let{tags:t}=e;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("b",{children:(0,l.jsx)(m.Z,{id:"theme.tags.tagsListLabel",description:"The label alongside a tag list",children:"Tags:"})}),(0,l.jsx)("ul",{className:(0,u.Z)(H.tags,"padding--none","margin-left--sm"),children:t.map((e=>{let{label:t,permalink:s}=e;return(0,l.jsx)("li",{className:H.tag,children:(0,l.jsx)(V,{label:t,permalink:s})},s)}))})]})}const D={lastUpdated:"lastUpdated_vwxv"};function S(e){return(0,l.jsx)("div",{className:(0,u.Z)(f.k.docs.docFooterTagsRow,"row margin-bottom--sm"),children:(0,l.jsx)("div",{className:"col",children:(0,l.jsx)(P,{...e})})})}function F(e){let{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:a,formattedLastUpdatedAt:n}=e;return(0,l.jsxs)("div",{className:(0,u.Z)(f.k.docs.docFooterEditMetaRow,"row"),children:[(0,l.jsx)("div",{className:"col",children:t&&(0,l.jsx)(I,{editUrl:t})}),(0,l.jsx)("div",{className:(0,u.Z)("col",D.lastUpdated),children:(s||a)&&(0,l.jsx)(A,{lastUpdatedAt:s,formattedLastUpdatedAt:n,lastUpdatedBy:a})})]})}function R(){const{metadata:e}=d(),{editUrl:t,lastUpdatedAt:s,formattedLastUpdatedAt:a,lastUpdatedBy:n,tags:i}=e,o=i.length>0,r=!!(t||s||n);return o||r?(0,l.jsxs)("footer",{className:(0,u.Z)(f.k.docs.docFooter,"docusaurus-mt-lg"),children:[o&&(0,l.jsx)(S,{tags:i}),r&&(0,l.jsx)(F,{editUrl:t,lastUpdatedAt:s,lastUpdatedBy:n,formattedLastUpdatedAt:a})]}):null}var z=s(6043),O=s(3743);const G={tocCollapsibleButton:"tocCollapsibleButton_TO0P",tocCollapsibleButtonExpanded:"tocCollapsibleButtonExpanded_MG3E"};function W(e){let{collapsed:t,...s}=e;return(0,l.jsx)("button",{type:"button",...s,className:(0,u.Z)("clean-btn",G.tocCollapsibleButton,!t&&G.tocCollapsibleButtonExpanded,s.className),children:(0,l.jsx)(m.Z,{id:"theme.TOCCollapsible.toggleButtonLabel",description:"The label used by the button on the collapsible TOC component",children:"On this page"})})}const q={tocCollapsible:"tocCollapsible_ETCw",tocCollapsibleContent:"tocCollapsibleContent_vkbj",tocCollapsibleExpanded:"tocCollapsibleExpanded_sAul"};function J(e){let{toc:t,className:s,minHeadingLevel:a,maxHeadingLevel:n}=e;const{collapsed:i,toggleCollapsed:o}=(0,z.u)({initialState:!0});return(0,l.jsxs)("div",{className:(0,u.Z)(q.tocCollapsible,!i&&q.tocCollapsibleExpanded,s),children:[(0,l.jsx)(W,{collapsed:i,onClick:o}),(0,l.jsx)(z.z,{lazy:!0,className:q.tocCollapsibleContent,collapsed:i,children:(0,l.jsx)(O.Z,{toc:t,minHeadingLevel:a,maxHeadingLevel:n})})]})}const Q={tocMobile:"tocMobile_ITEo"};function X(){const{toc:e,frontMatter:t}=d();return(0,l.jsx)(J,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:(0,u.Z)(f.k.docs.docTocMobile,Q.tocMobile)})}var Y=s(9407);function $(){const{toc:e,frontMatter:t}=d();return(0,l.jsx)(Y.Z,{toc:e,minHeadingLevel:t.toc_min_heading_level,maxHeadingLevel:t.toc_max_heading_level,className:f.k.docs.docTocDesktop})}var K=s(2503),ee=s(5814);function te(e){let{children:t}=e;const s=function(){const{metadata:e,frontMatter:t,contentTitle:s}=d();return t.hide_title||void 0!==s?null:e.title}();return(0,l.jsxs)("div",{className:(0,u.Z)(f.k.docs.docMarkdown,"markdown"),children:[s&&(0,l.jsx)("header",{children:(0,l.jsx)(K.Z,{as:"h1",children:s})}),(0,l.jsx)(ee.Z,{children:t})]})}var se=s(2802),ae=s(8596),ne=s(4996);function ie(e){return(0,l.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,l.jsx)("path",{d:"M10 19v-5h4v5c0 .55.45 1 1 1h3c.55 0 1-.45 1-1v-7h1.7c.46 0 .68-.57.33-.87L12.67 3.6c-.38-.34-.96-.34-1.34 0l-8.36 7.53c-.34.3-.13.87.33.87H5v7c0 .55.45 1 1 1h3c.55 0 1-.45 1-1z",fill:"currentColor"})})}const le={breadcrumbHomeIcon:"breadcrumbHomeIcon_YNFT"};function oe(){const e=(0,ne.Z)("/");return(0,l.jsx)("li",{className:"breadcrumbs__item",children:(0,l.jsx)(b.Z,{"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.home",message:"Home page",description:"The ARIA label for the home page in the breadcrumbs"}),className:"breadcrumbs__link",href:e,children:(0,l.jsx)(ie,{className:le.breadcrumbHomeIcon})})})}const re={breadcrumbsContainer:"breadcrumbsContainer_Z_bl"};function de(e){let{children:t,href:s,isLast:a}=e;const n="breadcrumbs__link";return a?(0,l.jsx)("span",{className:n,itemProp:"name",children:t}):s?(0,l.jsx)(b.Z,{className:n,href:s,itemProp:"item",children:(0,l.jsx)("span",{itemProp:"name",children:t})}):(0,l.jsx)("span",{className:n,children:t})}function ce(e){let{children:t,active:s,index:a,addMicrodata:n}=e;return(0,l.jsxs)("li",{...n&&{itemScope:!0,itemProp:"itemListElement",itemType:"https://schema.org/ListItem"},className:(0,u.Z)("breadcrumbs__item",{"breadcrumbs__item--active":s}),children:[t,(0,l.jsx)("meta",{itemProp:"position",content:String(a+1)})]})}function ue(){const e=(0,se.s1)(),t=(0,ae.Ns)();return e?(0,l.jsx)("nav",{className:(0,u.Z)(f.k.docs.docBreadcrumbs,re.breadcrumbsContainer),"aria-label":(0,m.I)({id:"theme.docs.breadcrumbs.navAriaLabel",message:"Breadcrumbs",description:"The ARIA label for the breadcrumbs"}),children:(0,l.jsxs)("ul",{className:"breadcrumbs",itemScope:!0,itemType:"https://schema.org/BreadcrumbList",children:[t&&(0,l.jsx)(oe,{}),e.map(((t,s)=>{const a=s===e.length-1,n="category"===t.type&&t.linkUnlisted?void 0:t.href;return(0,l.jsx)(ce,{active:a,index:s,addMicrodata:!!n,children:(0,l.jsx)(de,{href:n,isLast:a,children:t.label})},s)}))]})}):null}var he=s(2212);const me={docItemContainer:"docItemContainer_Djhp",docItemCol:"docItemCol_VOVn"};function be(e){let{children:t}=e;const s=function(){const{frontMatter:e,toc:t}=d(),s=(0,h.i)(),a=e.hide_table_of_contents,n=!a&&t.length>0;return{hidden:a,mobile:n?(0,l.jsx)(X,{}):void 0,desktop:!n||"desktop"!==s&&"ssr"!==s?void 0:(0,l.jsx)($,{})}}(),{metadata:{unlisted:a}}=d();return(0,l.jsxs)("div",{className:"row",children:[(0,l.jsxs)("div",{className:(0,u.Z)("col",!s.hidden&&me.docItemCol),children:[a&&(0,l.jsx)(he.Z,{}),(0,l.jsx)(T,{}),(0,l.jsxs)("div",{className:me.docItemContainer,children:[(0,l.jsxs)("article",{children:[(0,l.jsx)(ue,{}),(0,l.jsx)(U,{}),s.mobile,(0,l.jsx)(te,{children:t}),(0,l.jsx)(R,{})]}),(0,l.jsx)(v,{})]})]}),s.desktop&&(0,l.jsx)("div",{className:"col col--3",children:s.desktop})]})}function pe(e){const t=`docs-doc-id-${e.content.metadata.unversionedId}`,s=e.content;return(0,l.jsx)(r,{content:e.content,children:(0,l.jsxs)(n.FG,{className:t,children:[(0,l.jsx)(c,{}),(0,l.jsx)(be,{children:(0,l.jsx)(s,{})})]})})}}}]); \ No newline at end of file diff --git a/assets/js/19829c28.aeb800f3.js b/assets/js/19829c28.aeb800f3.js deleted file mode 100644 index 834cc372..00000000 --- a/assets/js/19829c28.aeb800f3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8608],{8129:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=n(5893),i=n(1151);const s={sidebar_position:5,title:"SectionListWrapper"},a=void 0,l={unversionedId:"components/section-list-wrapper",id:"components/section-list-wrapper",title:"SectionListWrapper",description:"Content",source:"@site/docs/components/section-list-wrapper.md",sourceDirName:"components",slug:"/components/section-list-wrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/section-list-wrapper.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"SectionListWrapper"},sidebar:"tutorialSidebar",previous:{title:"FlatListWrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper"},next:{title:"IconPlatform",permalink:"/react-native-template-strong/docs/components/icon-platform"}},o={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,i.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Wrapper around ",(0,r.jsx)(t.code,{children:"SectionList"})," which operates based on provided ",(0,r.jsx)(t.code,{children:"LoadState"})," and shows appropriate data."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.p,{children:["Extends ",(0,r.jsx)(t.code,{children:"SectionListProps"})," and additionally adds next properties"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{align:"left",children:"Name"}),(0,r.jsx)(t.th,{align:"left",children:"Type"}),(0,r.jsx)(t.th,{align:"left",children:"Required"}),(0,r.jsx)(t.th,{align:"left",children:"Default value"}),(0,r.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"loadState"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"LoadState"})}),(0,r.jsx)(t.td,{align:"left",children:"True"}),(0,r.jsx)(t.td,{align:"left",children:"-"}),(0,r.jsx)(t.td,{align:"left",children:"Load state"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"tryAgain"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:"Undefined"}),(0,r.jsx)(t.td,{align:"left",children:"Action callback which occurs when pressing on Try Again"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"error"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"string or null"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"localization.errors.listErrorTitle"})}),(0,r.jsxs)(t.td,{align:"left",children:["Error text which will be shown to user in case if ",(0,r.jsx)(t.code,{children:"loadState == LoadState.error"})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return (\n }\n loadState={loadState}\n renderItem={renderItem}\n renderSectionHeader={renderSectionHeader}\n error={error}\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n ListEmptyComponent={}\n />\n);\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>s});var r=n(7294);const i=r.createContext({});function s(e){const t=r.useContext(i);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||a:s(e),r.createElement(i.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/19829c28.c86124af.js b/assets/js/19829c28.c86124af.js new file mode 100644 index 00000000..0417aa08 --- /dev/null +++ b/assets/js/19829c28.c86124af.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8608],{8129:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>l,default:()=>p,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var r=n(5893),s=n(1151);const i={sidebar_position:5,title:"SectionListWrapper"},l=void 0,o={id:"components/section-list-wrapper",title:"SectionListWrapper",description:"Content",source:"@site/docs/components/section-list-wrapper.md",sourceDirName:"components",slug:"/components/section-list-wrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/section-list-wrapper.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"SectionListWrapper"},sidebar:"tutorialSidebar",previous:{title:"FlatListWrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper"},next:{title:"IconPlatform",permalink:"/react-native-template-strong/docs/components/icon-platform"}},a={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Wrapper around ",(0,r.jsx)(t.code,{children:"SectionList"})," which operates based on provided ",(0,r.jsx)(t.code,{children:"LoadState"})," and shows appropriate data."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.p,{children:["Extends ",(0,r.jsx)(t.code,{children:"SectionListProps"})," and additionally adds next properties"]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"loadState"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"LoadState"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Load state"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"tryAgain"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Action callback which occurs when pressing on Try Again"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"error"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"string or null"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"localization.errors.listErrorTitle"})}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["Error text which will be shown to user in case if ",(0,r.jsx)(t.code,{children:"loadState == LoadState.error"})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return (\n }\n loadState={loadState}\n renderItem={renderItem}\n renderSectionHeader={renderSectionHeader}\n error={error}\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n ListEmptyComponent={}\n />\n);\n"})})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>l});var r=n(7294);const s={},i=r.createContext(s);function l(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.1cb6e873.js b/assets/js/1a4e3797.1cb6e873.js new file mode 100644 index 00000000..a689c693 --- /dev/null +++ b/assets/js/1a4e3797.1cb6e873.js @@ -0,0 +1,2 @@ +/*! For license information please see 1a4e3797.1cb6e873.js.LICENSE.txt */ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7920],{7331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,s,a,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(o=s.slice()).length,u=0;u0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},8131:(e,t,r)=>{"use strict";var n=r(9374),i=r(7775),s=r(3076);function a(e,t,r,i){return new n(e,t,r,i)}a.version=r(4336),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=s,e.exports=a},8078:(e,t,r)=>{"use strict";var n=r(7331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(4853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},2437:(e,t,r)=>{"use strict";var n=r(2344),i=r(116),s=r(9803),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return i(e)?{}:e;if("string"==typeof t)return s(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},7775:(e,t,r)=>{"use strict";var n=r(2344),i=r(7888),s=r(2686),a=r(185),c=r(116),u=r(9803),o=r(8023),h=r(6801),f=r(2437);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return a({},e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&c(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):c(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var n=o(r);if(this.isNumericRefined(e,t,n))return this;var i=a({},this.numericRefinements);return i[e]=a({},i[e]),i[e][t]?(i[e][t]=i[e][t].slice(),i[e][t].push(n)):i[e][t]=[n],this.setQueryParameters({numericRefinements:i})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,o(n))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return c(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),i={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?i[e]=[]:i[e]=[t.slice(0,t.lastIndexOf(r))]:i[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},i,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:n({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:n({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var s,a,c=o(r),u=void 0!==(s=this.numericRefinements[e][t],a=c,i(s,(function(e){return l(e,a)})));return n&&u},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets()).sort()},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0}))).sort()},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),s=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(s)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return i(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var n=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[n.name]&&e.hierarchicalFacetsRefinements[n.name][0]||"",h=e._getHierarchicalFacetSeparator(n),f=e._getHierarchicalRootPath(n),l=e._getHierarchicalShowParentLevel(n),m=s(e._getHierarchicalFacetSortBy(n)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,n,s){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m{"use strict";var n=r(4587),i=r(2344),s=r(4039),a=r(7888),c=r(9725),u=r(2293),o=r(185),h=r(2148),f=s.escapeFacetValue,l=s.unescapeFacetValue,m=r(210);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var s=t[0];this._rawResults=t;var u=this;Object.keys(s).forEach((function(e){u[e]=s[e]}));var h=o({persistHierarchicalRootCount:!1},r);Object.keys(h).forEach((function(e){u[e]=h[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var f=e.getRefinedDisjunctiveFacets(),v=d(e.facets),g=d(e.disjunctiveFacets),y=1,R=s.facets||{};Object.keys(R).forEach((function(t){var r,n,i=R[t],o=(r=e.hierarchicalFacets,n=t,a(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(o){var h=o.attributes.indexOf(t),f=c(e.hierarchicalFacets,(function(e){return e.name===o.name}));u.hierarchicalFacets[f][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var l,m=-1!==e.disjunctiveFacets.indexOf(t),d=-1!==e.facets.indexOf(t);m&&(l=g[t],u.disjunctiveFacets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.disjunctiveFacets[l],s.facets_stats,t)),d&&(l=v[t],u.facets[l]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(u.facets[l],s.facets_stats,t))}})),this.hierarchicalFacets=n(this.hierarchicalFacets),f.forEach((function(r){var n=t[y],a=n&&n.facets?n.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(a).forEach((function(t){var r,f=a[t];if(h){r=c(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=c(u.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;u.hierarchicalFacets[r][m].data=o({},u.hierarchicalFacets[r][m].data,f)}else{r=g[t];var d=s.facets&&s.facets[t]||{};u.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:n.exhaustiveFacetsCount},p(u.disjunctiveFacets[r],n.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!u.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(u.disjunctiveFacets[r].data[n]=0)}))}})),y++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(y).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var o=r[t],h=c(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=c(u.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0&&!u.persistHierarchicalRootCount){var m=a[0].split(s)[0];l[m]=u.hierarchicalFacets[h][f].data[m]}u.hierarchicalFacets[h][f].data=i(l,o,u.hierarchicalFacets[h][f].data)}})),y++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=v[t];u.facets[n]={name:t,data:R[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){u.facets[n]=u.facets[n]||{name:t},u.facets[n].data=u.facets[n].data||{},u.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=n(this.facets),this.disjunctiveFacets=n(this.disjunctiveFacets),this._state=e}function g(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=a(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=a(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t)){var s=a(e.hierarchicalFacets,r);if(!s)return s;var c=e._state.getHierarchicalFacetByName(t),u=e._state._getHierarchicalFacetSeparator(c),o=l(e._state.getHierarchicalRefinement(t)[0]||"");0===o.indexOf(c.rootPath)&&(o=o.replace(c.rootPath+u,""));var h=o.split(u);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=a(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=a(i,(function(e){return e.name===r})),c=s&&s.data&&s.data[n]?s.data[n]:0,u=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:c,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return a(this.facets,t)||a(this.disjunctiveFacets,t)||a(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=g(this,e);if(r){var n,s=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),a=this;if(Array.isArray(r))n=[e];else n=a._state.getHierarchicalFacetByName(r.name).attributes;return R((function(e,t){if(s.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(a,t);if(r)return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var s,a=t.sortRemainingBy;return"hidden"===a?r:(s="alpha"===a?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(h(n,s[0],s[1])))}(e,r)}if(Array.isArray(s.sortBy)){var n=u(s.sortBy,v.DEFAULT_SORT);return h(e,n[0],n[1])}if("function"==typeof s.sortBy)return function(e,t){return t.sort(e)}(s.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),s=e._getHierarchicalFacetSeparator(i),c=r.split(s),u=a(n,(function(e){return e.name===t})),o=c.reduce((function(e,t){var r=e&&a(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},9374:(e,t,r)=>{"use strict";var n=r(7331),i=r(8078),s=r(4039).escapeFacetValue,a=r(4853),c=r(185),u=r(116),o=r(9803),h=r(6394),f=r(7775),l=r(3076),m=r(4336);function d(e,t,r,n){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.setClient(e);var i=r||{};i.index=t,this.state=f.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0,this._searchResultsOptions=n}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}a(d,n),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return h._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=h._getQueries(r.index,r),i=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),{content:new l(r,e.results),state:r,_originalResponse:e}}),(function(e){throw i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(null,new l(r,e.results),r)})).catch((function(e){i._currentNbQueries--,0===i._currentNbQueries&&i.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=c({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:o(h._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(s);var a=this.client.initIndex(n.index);if("function"!=typeof a.findAnswers)throw new Error(s);return a.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,a="function"==typeof this.client.initIndex;if(!i&&!a&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=h.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var f,l=this;return i?f=this.client.searchForFacetValues([{indexName:c.index,params:o}]):a?f=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,f=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),f.then((function(t){return l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=s(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw l._currentNbQueries--,0===l._currentNbQueries&&l.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:f.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new f(e),this},d.prototype.hasRefinements=function(e){return!!u(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=h._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=n.index?h._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),a=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,a));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,a)).catch(this._dispatchAlgoliaError.bind(this,a))}catch(c){this.emit("error",{error:c})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){var n=this;if(!(t0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+m+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new i(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},4587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},2344:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},4039:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},7888:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r{"use strict";var n=r(7888);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},4853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},2686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},185:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},9803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}},2148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e=n.length?s:"desc"===n[i]?-s:s}return e.index-r.index})),i.map((function(e){return e.value}))}},8023:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},6394:(e,t,r)=>{"use strict";var n=r(185);function i(e){return Object.keys(e).sort().reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var u=a[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[a-1];c.facetFilters=a>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)).sort(),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),a.length>0&&(u.numericFilters=a),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),u=s._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),a.length>0&&(o.facetFilters=a),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var s=i[e]||[];t!==n&&s.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).sort().forEach((function(e){(i[e]||[]).sort().forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).sort().forEach((function(e){(s[e]||[]).sort().forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).sort().forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.sort().forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).sort().forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(u=f.split(h).length-1,s=f):(u=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=o.attributes[u]}else u=s.split(h).length-1,a=o.attributes[u];a&&n.push([a+":"+s])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),u))}};e.exports=s},6801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},4336:e=>{"use strict";e.exports="3.16.1"},290:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=s(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function j(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(s(r),s(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function P(e,t,n,i){var a=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,s){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:O(a)};var m={data:c,headers:u,method:o,url:_(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",w(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,s)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,O(a))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function x(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function _(e,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function O(e){return e.map((function(e){return w(e)}))}function w(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then((function(){}))}},e.methods)},A=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var s=t.params,a=s.facetName,c=s.facetQuery,u=n(s,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:I}}).searchForFacetValues(a,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},I=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,k=2,q=3;function V(e,t,n){var i,s={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return k>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[a({key:"".concat("4.22.0","-").concat(e)}),u()]}),userAgent:x("4.22.0").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},s),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:A,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:I,findAnswers:Q}})}}}}))}return V.version="4.22.0",V}()},6675:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>S});var n=r(7294),i=r(512),s=r(8131),a=r.n(s),c=r(290),u=r.n(c),o=r(412),h=r(5742),f=r(3692),l=r(143),m=r(2263);const d=["zero","one","two","few","many","other"];function p(e){return d.filter((t=>e.includes(t)))}const v={locale:"en",pluralForms:p(["one","other"]),select:e=>1===e?"one":"other"};function g(){const{i18n:{currentLocale:e}}=(0,m.Z)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:p(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),v}}),[e])}function y(){const e=g();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const i=r.select(t),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}var R=r(6177),F=r(902),b=r(833),j=r(2128),P=r(5999),x=r(6278),_=r(239),E=r(7372),O=r(2503);const w={searchQueryInput:"searchQueryInput_u2C7",searchVersionInput:"searchVersionInput_m0Ui",searchResultsColumn:"searchResultsColumn_JPFH",algoliaLogo:"algoliaLogo_rT1R",algoliaLogoPathFill:"algoliaLogoPathFill_WdUC",searchResultItem:"searchResultItem_Tv2o",searchResultItemHeading:"searchResultItemHeading_KbCB",searchResultItemPath:"searchResultItemPath_lhe1",searchResultItemSummary:"searchResultItemSummary_AEaO",searchQueryColumn:"searchQueryColumn_RTkw",searchVersionColumn:"searchVersionColumn_ypXd",searchLogoColumn:"searchLogoColumn_rJIA",loadingSpinner:"loadingSpinner_XVxU","loading-spin":"loading-spin_vzvp",loader:"loader_vvXV"};var N=r(5893);function A(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,N.jsx)("div",{className:(0,i.Z)("col","col--3","padding-left--none",w.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,N.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:w.searchVersionInput,children:i.versions.map(((e,t)=>(0,N.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function H(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,x.L)(),c=(0,_.l)(),d=function(){const{selectMessage:e}=y();return t=>e(t,(0,P.I)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),p=function(){const e=(0,l._r)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[v,g]=(0,R.K)(),b={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[H,S]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return b;case"loading":return{...e,loading:!0};case"update":return v!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),b),T=u()(t,r),Q=a()(T,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});Q.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void S({type:"reset"});const a=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),u=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));S({type:"update",value:{items:u,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,I]=(0,n.useState)(null),D=(0,n.useRef)(0),k=(0,n.useRef)(o.Z.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&D.current>r&&S({type:"advance"}),D.current=r}),{threshold:1})),q=()=>v?(0,P.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:v}):(0,P.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),V=(0,F.zX)((function(t){void 0===t&&(t=0),Q.addDisjunctiveFacetRefinement("docusaurus_tag","default"),Q.addDisjunctiveFacetRefinement("language",e),Object.entries(p.searchVersions).forEach((e=>{let[t,r]=e;Q.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),Q.setQuery(v).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{S({type:"reset"}),v&&(S({type:"loading"}),setTimeout((()=>{V()}),300))}),[v,p.searchVersions,V]),(0,n.useEffect)((()=>{H.lastPage&&0!==H.lastPage&&V(H.lastPage)}),[V,H.lastPage]),(0,N.jsxs)(E.Z,{children:[(0,N.jsxs)(h.Z,{children:[(0,N.jsx)("title",{children:(0,j.p)(q())}),(0,N.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,N.jsxs)("div",{className:"container margin-vert--lg",children:[(0,N.jsx)(O.Z,{as:"h1",children:q()}),(0,N.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,N.jsx)("div",{className:(0,i.Z)("col",w.searchQueryColumn,{"col--9":p.versioningEnabled,"col--12":!p.versioningEnabled}),children:(0,N.jsx)("input",{type:"search",name:"q",className:w.searchQueryInput,placeholder:(0,P.I)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,P.I)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>g(e.target.value),value:v,autoComplete:"off",autoFocus:!0})}),p.versioningEnabled&&(0,N.jsx)(A,{docsSearchVersionsHelpers:p})]}),(0,N.jsxs)("div",{className:"row",children:[(0,N.jsx)("div",{className:(0,i.Z)("col","col--8",w.searchResultsColumn),children:!!H.totalResults&&d(H.totalResults)}),(0,N.jsx)("div",{className:(0,i.Z)("col","col--4","text--right",w.searchLogoColumn),children:(0,N.jsx)(f.Z,{to:"https://www.algolia.com/","aria-label":(0,P.I)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,N.jsx)("svg",{viewBox:"0 0 168 24",className:w.algoliaLogo,children:(0,N.jsxs)("g",{fill:"none",children:[(0,N.jsx)("path",{className:w.algoliaLogoPathFill,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),(0,N.jsx)("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),(0,N.jsx)("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})]})})})})]}),H.items.length>0?(0,N.jsx)("main",{children:H.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,N.jsxs)("article",{className:w.searchResultItem,children:[(0,N.jsx)(O.Z,{as:"h2",className:w.searchResultItemHeading,children:(0,N.jsx)(f.Z,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,N.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,N.jsx)("ul",{className:(0,i.Z)("breadcrumbs",w.searchResultItemPath),children:a.map(((e,t)=>(0,N.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,N.jsx)("p",{className:w.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[v&&!H.loading&&(0,N.jsx)("p",{children:(0,N.jsx)(P.Z,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!H.loading&&(0,N.jsx)("div",{className:w.loadingSpinner},"spinner")],H.hasMore&&(0,N.jsx)("div",{className:w.loader,ref:I,children:(0,N.jsx)(P.Z,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function S(){return(0,N.jsx)(b.FG,{className:"search-page-wrapper",children:(0,N.jsx)(H,{})})}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.1cb6e873.js.LICENSE.txt b/assets/js/1a4e3797.1cb6e873.js.LICENSE.txt new file mode 100644 index 00000000..aeed7c01 --- /dev/null +++ b/assets/js/1a4e3797.1cb6e873.js.LICENSE.txt @@ -0,0 +1 @@ +/*! algoliasearch-lite.umd.js | 4.22.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/assets/js/1a4e3797.c412f7db.js b/assets/js/1a4e3797.c412f7db.js deleted file mode 100644 index dd92b124..00000000 --- a/assets/js/1a4e3797.c412f7db.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see 1a4e3797.c412f7db.js.LICENSE.txt */ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7920],{7331:e=>{function t(){this._events=this._events||{},this._maxListeners=this._maxListeners||void 0}function r(e){return"function"==typeof e}function n(e){return"object"==typeof e&&null!==e}function i(e){return void 0===e}e.exports=t,t.prototype._events=void 0,t.prototype._maxListeners=void 0,t.defaultMaxListeners=10,t.prototype.setMaxListeners=function(e){if("number"!=typeof e||e<0||isNaN(e))throw TypeError("n must be a positive number");return this._maxListeners=e,this},t.prototype.emit=function(e){var t,s,a,c,u,o;if(this._events||(this._events={}),"error"===e&&(!this._events.error||n(this._events.error)&&!this._events.error.length)){if((t=arguments[1])instanceof Error)throw t;var h=new Error('Uncaught, unspecified "error" event. ('+t+")");throw h.context=t,h}if(i(s=this._events[e]))return!1;if(r(s))switch(arguments.length){case 1:s.call(this);break;case 2:s.call(this,arguments[1]);break;case 3:s.call(this,arguments[1],arguments[2]);break;default:c=Array.prototype.slice.call(arguments,1),s.apply(this,c)}else if(n(s))for(c=Array.prototype.slice.call(arguments,1),a=(o=s.slice()).length,u=0;u0&&this._events[e].length>a&&(this._events[e].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[e].length),"function"==typeof console.trace&&console.trace()),this},t.prototype.on=t.prototype.addListener,t.prototype.once=function(e,t){if(!r(t))throw TypeError("listener must be a function");var n=!1;function i(){this.removeListener(e,i),n||(n=!0,t.apply(this,arguments))}return i.listener=t,this.on(e,i),this},t.prototype.removeListener=function(e,t){var i,s,a,c;if(!r(t))throw TypeError("listener must be a function");if(!this._events||!this._events[e])return this;if(a=(i=this._events[e]).length,s=-1,i===t||r(i.listener)&&i.listener===t)delete this._events[e],this._events.removeListener&&this.emit("removeListener",e,t);else if(n(i)){for(c=a;c-- >0;)if(i[c]===t||i[c].listener&&i[c].listener===t){s=c;break}if(s<0)return this;1===i.length?(i.length=0,delete this._events[e]):i.splice(s,1),this._events.removeListener&&this.emit("removeListener",e,t)}return this},t.prototype.removeAllListeners=function(e){var t,n;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[e]&&delete this._events[e],this;if(0===arguments.length){for(t in this._events)"removeListener"!==t&&this.removeAllListeners(t);return this.removeAllListeners("removeListener"),this._events={},this}if(r(n=this._events[e]))this.removeListener(e,n);else if(n)for(;n.length;)this.removeListener(e,n[n.length-1]);return delete this._events[e],this},t.prototype.listeners=function(e){return this._events&&this._events[e]?r(this._events[e])?[this._events[e]]:this._events[e].slice():[]},t.prototype.listenerCount=function(e){if(this._events){var t=this._events[e];if(r(t))return 1;if(t)return t.length}return 0},t.listenerCount=function(e,t){return e.listenerCount(t)}},8131:(e,t,r)=>{"use strict";var n=r(9374),i=r(7775),s=r(3076);function a(e,t,r){return new n(e,t,r)}a.version=r(4336),a.AlgoliaSearchHelper=n,a.SearchParameters=i,a.SearchResults=s,e.exports=a},8078:(e,t,r)=>{"use strict";var n=r(7331);function i(e,t){this.main=e,this.fn=t,this.lastResults=null}r(4853)(i,n),i.prototype.detach=function(){this.removeAllListeners(),this.main.detachDerivedHelper(this)},i.prototype.getModifiedState=function(e){return this.fn(e)},e.exports=i},2437:(e,t,r)=>{"use strict";var n=r(2344),i=r(9803),s=r(116),a={addRefinement:function(e,t,r){if(a.isRefined(e,t,r))return e;var i=""+r,s=e[t]?e[t].concat(i):[i],c={};return c[t]=s,n({},c,e)},removeRefinement:function(e,t,r){if(void 0===r)return a.clearRefinement(e,(function(e,r){return t===r}));var n=""+r;return a.clearRefinement(e,(function(e,r){return t===r&&n===e}))},toggleRefinement:function(e,t,r){if(void 0===r)throw new Error("toggleRefinement should be used with a value");return a.isRefined(e,t,r)?a.removeRefinement(e,t,r):a.addRefinement(e,t,r)},clearRefinement:function(e,t,r){if(void 0===t)return s(e)?{}:e;if("string"==typeof t)return i(e,[t]);if("function"==typeof t){var n=!1,a=Object.keys(e).reduce((function(i,s){var a=e[s]||[],c=a.filter((function(e){return!t(e,s,r)}));return c.length!==a.length&&(n=!0),i[s]=c,i}),{});return n?a:e}},isRefined:function(e,t,r){var n=Boolean(e[t])&&e[t].length>0;if(void 0===r||!n)return n;var i=""+r;return-1!==e[t].indexOf(i)}};e.exports=a},7775:(e,t,r)=>{"use strict";var n=r(185),i=r(2344),s=r(2686),a=r(7888),c=r(8023),u=r(9803),o=r(116),h=r(6801),f=r(2437);function l(e,t){return Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((function(e,r){return l(t[r],e)})):e===t}function m(e){var t=e?m._parseNumbers(e):{};void 0===t.userToken||h(t.userToken)||console.warn("[algoliasearch-helper] The `userToken` parameter is invalid. This can lead to wrong analytics.\n - Format: [a-zA-Z0-9_-]{1,64}"),this.facets=t.facets||[],this.disjunctiveFacets=t.disjunctiveFacets||[],this.hierarchicalFacets=t.hierarchicalFacets||[],this.facetsRefinements=t.facetsRefinements||{},this.facetsExcludes=t.facetsExcludes||{},this.disjunctiveFacetsRefinements=t.disjunctiveFacetsRefinements||{},this.numericRefinements=t.numericRefinements||{},this.tagRefinements=t.tagRefinements||[],this.hierarchicalFacetsRefinements=t.hierarchicalFacetsRefinements||{};var r=this;Object.keys(t).forEach((function(e){var n=-1!==m.PARAMETERS.indexOf(e),i=void 0!==t[e];!n&&i&&(r[e]=t[e])}))}m.PARAMETERS=Object.keys(new m),m._parseNumbers=function(e){if(e instanceof m)return e;var t={};if(["aroundPrecision","aroundRadius","getRankingInfo","minWordSizefor2Typos","minWordSizefor1Typo","page","maxValuesPerFacet","distinct","minimumAroundRadius","hitsPerPage","minProximity"].forEach((function(r){var n=e[r];if("string"==typeof n){var i=parseFloat(n);t[r]=isNaN(i)?n:i}})),Array.isArray(e.insideBoundingBox)&&(t.insideBoundingBox=e.insideBoundingBox.map((function(e){return Array.isArray(e)?e.map((function(e){return parseFloat(e)})):e}))),e.numericRefinements){var r={};Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t]||{};r[t]={},Object.keys(n).forEach((function(e){var i=n[e].map((function(e){return Array.isArray(e)?e.map((function(e){return"string"==typeof e?parseFloat(e):e})):"string"==typeof e?parseFloat(e):e}));r[t][e]=i}))})),t.numericRefinements=r}return n({},e,t)},m.make=function(e){var t=new m(e);return(e.hierarchicalFacets||[]).forEach((function(e){if(e.rootPath){var r=t.getHierarchicalRefinement(e.name);r.length>0&&0!==r[0].indexOf(e.rootPath)&&(t=t.clearRefinements(e.name)),0===(r=t.getHierarchicalRefinement(e.name)).length&&(t=t.toggleHierarchicalFacetRefinement(e.name,e.rootPath))}})),t},m.validate=function(e,t){var r=t||{};return e.tagFilters&&r.tagRefinements&&r.tagRefinements.length>0?new Error("[Tags] Cannot switch from the managed tag API to the advanced API. It is probably an error, if it is really what you want, you should first clear the tags with clearTags method."):e.tagRefinements.length>0&&r.tagFilters?new Error("[Tags] Cannot switch from the advanced tag API to the managed API. It is probably an error, if it is not, you should first clear the tags with clearTags method."):e.numericFilters&&r.numericRefinements&&o(r.numericRefinements)?new Error("[Numeric filters] Can't switch from the advanced to the managed API. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):o(e.numericRefinements)&&r.numericFilters?new Error("[Numeric filters] Can't switch from the managed API to the advanced. It is probably an error, if this is really what you want, you have to first clear the numeric filters."):null},m.prototype={constructor:m,clearRefinements:function(e){var t={numericRefinements:this._clearNumericRefinements(e),facetsRefinements:f.clearRefinement(this.facetsRefinements,e,"conjunctiveFacet"),facetsExcludes:f.clearRefinement(this.facetsExcludes,e,"exclude"),disjunctiveFacetsRefinements:f.clearRefinement(this.disjunctiveFacetsRefinements,e,"disjunctiveFacet"),hierarchicalFacetsRefinements:f.clearRefinement(this.hierarchicalFacetsRefinements,e,"hierarchicalFacet")};return t.numericRefinements===this.numericRefinements&&t.facetsRefinements===this.facetsRefinements&&t.facetsExcludes===this.facetsExcludes&&t.disjunctiveFacetsRefinements===this.disjunctiveFacetsRefinements&&t.hierarchicalFacetsRefinements===this.hierarchicalFacetsRefinements?this:this.setQueryParameters(t)},clearTags:function(){return void 0===this.tagFilters&&0===this.tagRefinements.length?this:this.setQueryParameters({tagFilters:void 0,tagRefinements:[]})},setIndex:function(e){return e===this.index?this:this.setQueryParameters({index:e})},setQuery:function(e){return e===this.query?this:this.setQueryParameters({query:e})},setPage:function(e){return e===this.page?this:this.setQueryParameters({page:e})},setFacets:function(e){return this.setQueryParameters({facets:e})},setDisjunctiveFacets:function(e){return this.setQueryParameters({disjunctiveFacets:e})},setHitsPerPage:function(e){return this.hitsPerPage===e?this:this.setQueryParameters({hitsPerPage:e})},setTypoTolerance:function(e){return this.typoTolerance===e?this:this.setQueryParameters({typoTolerance:e})},addNumericRefinement:function(e,t,r){var i=c(r);if(this.isNumericRefined(e,t,i))return this;var s=n({},this.numericRefinements);return s[e]=n({},s[e]),s[e][t]?(s[e][t]=s[e][t].slice(),s[e][t].push(i)):s[e][t]=[i],this.setQueryParameters({numericRefinements:s})},getConjunctiveRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsRefinements[e]||[]},getDisjunctiveRefinements:function(e){return this.isDisjunctiveFacet(e)&&this.disjunctiveFacetsRefinements[e]||[]},getHierarchicalRefinement:function(e){return this.hierarchicalFacetsRefinements[e]||[]},getExcludeRefinements:function(e){return this.isConjunctiveFacet(e)&&this.facetsExcludes[e]||[]},removeNumericRefinement:function(e,t,r){var n=r;return void 0!==n?this.isNumericRefined(e,t,n)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,i){return i===e&&r.op===t&&l(r.val,c(n))}))}):this:void 0!==t?this.isNumericRefined(e,t)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(r,n){return n===e&&r.op===t}))}):this:this.isNumericRefined(e)?this.setQueryParameters({numericRefinements:this._clearNumericRefinements((function(t,r){return r===e}))}):this},getNumericRefinements:function(e){return this.numericRefinements[e]||{}},getNumericRefinement:function(e,t){return this.numericRefinements[e]&&this.numericRefinements[e][t]},_clearNumericRefinements:function(e){if(void 0===e)return o(this.numericRefinements)?{}:this.numericRefinements;if("string"==typeof e)return u(this.numericRefinements,[e]);if("function"==typeof e){var t=!1,r=this.numericRefinements,n=Object.keys(r).reduce((function(n,i){var s=r[i],a={};return s=s||{},Object.keys(s).forEach((function(r){var n=s[r]||[],c=[];n.forEach((function(t){e({val:t,op:r},i,"numeric")||c.push(t)})),c.length!==n.length&&(t=!0),a[r]=c})),n[i]=a,n}),{});return t?n:this.numericRefinements}},addFacet:function(e){return this.isConjunctiveFacet(e)?this:this.setQueryParameters({facets:this.facets.concat([e])})},addDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this:this.setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.concat([e])})},addHierarchicalFacet:function(e){if(this.isHierarchicalFacet(e.name))throw new Error("Cannot declare two hierarchical facets with the same name: `"+e.name+"`");return this.setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.concat([e])})},addFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this:this.setQueryParameters({facetsRefinements:f.addRefinement(this.facetsRefinements,e,t)})},addExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this:this.setQueryParameters({facetsExcludes:f.addRefinement(this.facetsExcludes,e,t)})},addDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this:this.setQueryParameters({disjunctiveFacetsRefinements:f.addRefinement(this.disjunctiveFacetsRefinements,e,t)})},addTagRefinement:function(e){if(this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.concat(e)};return this.setQueryParameters(t)},removeFacet:function(e){return this.isConjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({facets:this.facets.filter((function(t){return t!==e}))}):this},removeDisjunctiveFacet:function(e){return this.isDisjunctiveFacet(e)?this.clearRefinements(e).setQueryParameters({disjunctiveFacets:this.disjunctiveFacets.filter((function(t){return t!==e}))}):this},removeHierarchicalFacet:function(e){return this.isHierarchicalFacet(e)?this.clearRefinements(e).setQueryParameters({hierarchicalFacets:this.hierarchicalFacets.filter((function(t){return t.name!==e}))}):this},removeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsRefinements,e,t)?this.setQueryParameters({facetsRefinements:f.removeRefinement(this.facetsRefinements,e,t)}):this},removeExcludeRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return f.isRefined(this.facetsExcludes,e,t)?this.setQueryParameters({facetsExcludes:f.removeRefinement(this.facetsExcludes,e,t)}):this},removeDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return f.isRefined(this.disjunctiveFacetsRefinements,e,t)?this.setQueryParameters({disjunctiveFacetsRefinements:f.removeRefinement(this.disjunctiveFacetsRefinements,e,t)}):this},removeTagRefinement:function(e){if(!this.isTagRefined(e))return this;var t={tagRefinements:this.tagRefinements.filter((function(t){return t!==e}))};return this.setQueryParameters(t)},toggleRefinement:function(e,t){return this.toggleFacetRefinement(e,t)},toggleFacetRefinement:function(e,t){if(this.isHierarchicalFacet(e))return this.toggleHierarchicalFacetRefinement(e,t);if(this.isConjunctiveFacet(e))return this.toggleConjunctiveFacetRefinement(e,t);if(this.isDisjunctiveFacet(e))return this.toggleDisjunctiveFacetRefinement(e,t);throw new Error("Cannot refine the undeclared facet "+e+"; it should be added to the helper options facets, disjunctiveFacets or hierarchicalFacets")},toggleConjunctiveFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsRefinements:f.toggleRefinement(this.facetsRefinements,e,t)})},toggleExcludeFacetRefinement:function(e,t){if(!this.isConjunctiveFacet(e))throw new Error(e+" is not defined in the facets attribute of the helper configuration");return this.setQueryParameters({facetsExcludes:f.toggleRefinement(this.facetsExcludes,e,t)})},toggleDisjunctiveFacetRefinement:function(e,t){if(!this.isDisjunctiveFacet(e))throw new Error(e+" is not defined in the disjunctiveFacets attribute of the helper configuration");return this.setQueryParameters({disjunctiveFacetsRefinements:f.toggleRefinement(this.disjunctiveFacetsRefinements,e,t)})},toggleHierarchicalFacetRefinement:function(e,t){if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration");var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e)),n={};return void 0!==this.hierarchicalFacetsRefinements[e]&&this.hierarchicalFacetsRefinements[e].length>0&&(this.hierarchicalFacetsRefinements[e][0]===t||0===this.hierarchicalFacetsRefinements[e][0].indexOf(t+r))?-1===t.indexOf(r)?n[e]=[]:n[e]=[t.slice(0,t.lastIndexOf(r))]:n[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},n,this.hierarchicalFacetsRefinements)})},addHierarchicalFacetRefinement:function(e,t){if(this.isHierarchicalFacetRefined(e))throw new Error(e+" is already refined.");if(!this.isHierarchicalFacet(e))throw new Error(e+" is not defined in the hierarchicalFacets attribute of the helper configuration.");var r={};return r[e]=[t],this.setQueryParameters({hierarchicalFacetsRefinements:i({},r,this.hierarchicalFacetsRefinements)})},removeHierarchicalFacetRefinement:function(e){if(!this.isHierarchicalFacetRefined(e))return this;var t={};return t[e]=[],this.setQueryParameters({hierarchicalFacetsRefinements:i({},t,this.hierarchicalFacetsRefinements)})},toggleTagRefinement:function(e){return this.isTagRefined(e)?this.removeTagRefinement(e):this.addTagRefinement(e)},isDisjunctiveFacet:function(e){return this.disjunctiveFacets.indexOf(e)>-1},isHierarchicalFacet:function(e){return void 0!==this.getHierarchicalFacetByName(e)},isConjunctiveFacet:function(e){return this.facets.indexOf(e)>-1},isFacetRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsRefinements,e,t)},isExcludeRefined:function(e,t){return!!this.isConjunctiveFacet(e)&&f.isRefined(this.facetsExcludes,e,t)},isDisjunctiveFacetRefined:function(e,t){return!!this.isDisjunctiveFacet(e)&&f.isRefined(this.disjunctiveFacetsRefinements,e,t)},isHierarchicalFacetRefined:function(e,t){if(!this.isHierarchicalFacet(e))return!1;var r=this.getHierarchicalRefinement(e);return t?-1!==r.indexOf(t):r.length>0},isNumericRefined:function(e,t,r){if(void 0===r&&void 0===t)return Boolean(this.numericRefinements[e]);var n=this.numericRefinements[e]&&void 0!==this.numericRefinements[e][t];if(void 0===r||!n)return n;var i,s,u=c(r),o=void 0!==(i=this.numericRefinements[e][t],s=u,a(i,(function(e){return l(e,s)})));return n&&o},isTagRefined:function(e){return-1!==this.tagRefinements.indexOf(e)},getRefinedDisjunctiveFacets:function(){var e=this,t=s(Object.keys(this.numericRefinements).filter((function(t){return Object.keys(e.numericRefinements[t]).length>0})),this.disjunctiveFacets);return Object.keys(this.disjunctiveFacetsRefinements).filter((function(t){return e.disjunctiveFacetsRefinements[t].length>0})).concat(t).concat(this.getRefinedHierarchicalFacets())},getRefinedHierarchicalFacets:function(){var e=this;return s(this.hierarchicalFacets.map((function(e){return e.name})),Object.keys(this.hierarchicalFacetsRefinements).filter((function(t){return e.hierarchicalFacetsRefinements[t].length>0})))},getUnrefinedDisjunctiveFacets:function(){var e=this.getRefinedDisjunctiveFacets();return this.disjunctiveFacets.filter((function(t){return-1===e.indexOf(t)}))},managedParameters:["index","facets","disjunctiveFacets","facetsRefinements","hierarchicalFacets","facetsExcludes","disjunctiveFacetsRefinements","numericRefinements","tagRefinements","hierarchicalFacetsRefinements"],getQueryParams:function(){var e=this.managedParameters,t={},r=this;return Object.keys(this).forEach((function(n){var i=r[n];-1===e.indexOf(n)&&void 0!==i&&(t[n]=i)})),t},setQueryParameter:function(e,t){if(this[e]===t)return this;var r={};return r[e]=t,this.setQueryParameters(r)},setQueryParameters:function(e){if(!e)return this;var t=m.validate(this,e);if(t)throw t;var r=this,n=m._parseNumbers(e),i=Object.keys(this).reduce((function(e,t){return e[t]=r[t],e}),{}),s=Object.keys(n).reduce((function(e,t){var r=void 0!==e[t],i=void 0!==n[t];return r&&!i?u(e,[t]):(i&&(e[t]=n[t]),e)}),i);return new this.constructor(s)},resetPage:function(){return void 0===this.page?this:this.setPage(0)},_getHierarchicalFacetSortBy:function(e){return e.sortBy||["isRefined:desc","name:asc"]},_getHierarchicalFacetSeparator:function(e){return e.separator||" > "},_getHierarchicalRootPath:function(e){return e.rootPath||null},_getHierarchicalShowParentLevel:function(e){return"boolean"!=typeof e.showParentLevel||e.showParentLevel},getHierarchicalFacetByName:function(e){return a(this.hierarchicalFacets,(function(t){return t.name===e}))},getHierarchicalFacetBreadcrumb:function(e){if(!this.isHierarchicalFacet(e))return[];var t=this.getHierarchicalRefinement(e)[0];if(!t)return[];var r=this._getHierarchicalFacetSeparator(this.getHierarchicalFacetByName(e));return t.split(r).map((function(e){return e.trim()}))},toString:function(){return JSON.stringify(this,null,2)}},e.exports=m},210:(e,t,r)=>{"use strict";e.exports=function(e){return function(t,r){var a=e.hierarchicalFacets[r],o=e.hierarchicalFacetsRefinements[a.name]&&e.hierarchicalFacetsRefinements[a.name][0]||"",h=e._getHierarchicalFacetSeparator(a),f=e._getHierarchicalRootPath(a),l=e._getHierarchicalShowParentLevel(a),m=s(e._getHierarchicalFacetSortBy(a)),d=t.every((function(e){return e.exhaustive})),p=function(e,t,r,s,a){return function(o,h,f){var l=o;if(f>0){var m=0;for(l=o;m{"use strict";var n=r(185),i=r(2344),s=r(2148),a=r(4587),c=r(7888),u=r(9725),o=r(2293),h=r(4039),f=h.escapeFacetValue,l=h.unescapeFacetValue,m=r(210);function d(e){var t={};return e.forEach((function(e,r){t[e]=r})),t}function p(e,t,r){t&&t[r]&&(e.stats=t[r])}function v(e,t,r){var s=t[0];this._rawResults=t;var o=this;Object.keys(s).forEach((function(e){o[e]=s[e]})),Object.keys(r||{}).forEach((function(e){o[e]=r[e]})),this.processingTimeMS=t.reduce((function(e,t){return void 0===t.processingTimeMS?e:e+t.processingTimeMS}),0),this.disjunctiveFacets=[],this.hierarchicalFacets=e.hierarchicalFacets.map((function(){return[]})),this.facets=[];var h=e.getRefinedDisjunctiveFacets(),f=d(e.facets),v=d(e.disjunctiveFacets),g=1,y=s.facets||{};Object.keys(y).forEach((function(t){var r,n,i=y[t],a=(r=e.hierarchicalFacets,n=t,c(r,(function(e){return(e.attributes||[]).indexOf(n)>-1})));if(a){var h=a.attributes.indexOf(t),l=u(e.hierarchicalFacets,(function(e){return e.name===a.name}));o.hierarchicalFacets[l][h]={attribute:t,data:i,exhaustive:s.exhaustiveFacetsCount}}else{var m,d=-1!==e.disjunctiveFacets.indexOf(t),g=-1!==e.facets.indexOf(t);d&&(m=v[t],o.disjunctiveFacets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(o.disjunctiveFacets[m],s.facets_stats,t)),g&&(m=f[t],o.facets[m]={name:t,data:i,exhaustive:s.exhaustiveFacetsCount},p(o.facets[m],s.facets_stats,t))}})),this.hierarchicalFacets=a(this.hierarchicalFacets),h.forEach((function(r){var a=t[g],c=a&&a.facets?a.facets:{},h=e.getHierarchicalFacetByName(r);Object.keys(c).forEach((function(t){var r,f=c[t];if(h){r=u(e.hierarchicalFacets,(function(e){return e.name===h.name}));var m=u(o.hierarchicalFacets[r],(function(e){return e.attribute===t}));if(-1===m)return;o.hierarchicalFacets[r][m].data=n({},o.hierarchicalFacets[r][m].data,f)}else{r=v[t];var d=s.facets&&s.facets[t]||{};o.disjunctiveFacets[r]={name:t,data:i({},f,d),exhaustive:a.exhaustiveFacetsCount},p(o.disjunctiveFacets[r],a.facets_stats,t),e.disjunctiveFacetsRefinements[t]&&e.disjunctiveFacetsRefinements[t].forEach((function(n){!o.disjunctiveFacets[r].data[n]&&e.disjunctiveFacetsRefinements[t].indexOf(l(n))>-1&&(o.disjunctiveFacets[r].data[n]=0)}))}})),g++})),e.getRefinedHierarchicalFacets().forEach((function(r){var n=e.getHierarchicalFacetByName(r),s=e._getHierarchicalFacetSeparator(n),a=e.getHierarchicalRefinement(r);0===a.length||a[0].split(s).length<2||t.slice(g).forEach((function(t){var r=t&&t.facets?t.facets:{};Object.keys(r).forEach((function(t){var c=r[t],h=u(e.hierarchicalFacets,(function(e){return e.name===n.name})),f=u(o.hierarchicalFacets[h],(function(e){return e.attribute===t}));if(-1!==f){var l={};if(a.length>0){var m=a[0].split(s)[0];l[m]=o.hierarchicalFacets[h][f].data[m]}o.hierarchicalFacets[h][f].data=i(l,c,o.hierarchicalFacets[h][f].data)}})),g++}))})),Object.keys(e.facetsExcludes).forEach((function(t){var r=e.facetsExcludes[t],n=f[t];o.facets[n]={name:t,data:y[t],exhaustive:s.exhaustiveFacetsCount},r.forEach((function(e){o.facets[n]=o.facets[n]||{name:t},o.facets[n].data=o.facets[n].data||{},o.facets[n].data[e]=0}))})),this.hierarchicalFacets=this.hierarchicalFacets.map(m(e)),this.facets=a(this.facets),this.disjunctiveFacets=a(this.disjunctiveFacets),this._state=e}function g(e,t){function r(e){return e.name===t}if(e._state.isConjunctiveFacet(t)){var n=c(e.facets,r);return n?Object.keys(n.data).map((function(r){var i=f(r);return{name:r,escapedValue:i,count:n.data[r],isRefined:e._state.isFacetRefined(t,i),isExcluded:e._state.isExcludeRefined(t,r)}})):[]}if(e._state.isDisjunctiveFacet(t)){var i=c(e.disjunctiveFacets,r);return i?Object.keys(i.data).map((function(r){var n=f(r);return{name:r,escapedValue:n,count:i.data[r],isRefined:e._state.isDisjunctiveFacetRefined(t,n)}})):[]}if(e._state.isHierarchicalFacet(t)){var s=c(e.hierarchicalFacets,r);if(!s)return s;var a=e._state.getHierarchicalFacetByName(t),u=e._state._getHierarchicalFacetSeparator(a),o=l(e._state.getHierarchicalRefinement(t)[0]||"");0===o.indexOf(a.rootPath)&&(o=o.replace(a.rootPath+u,""));var h=o.split(u);return h.unshift(t),y(s,h,0),s}}function y(e,t,r){e.isRefined=e.name===t[r],e.data&&e.data.forEach((function(e){y(e,t,r+1)}))}function R(e,t,r,n){if(n=n||0,Array.isArray(t))return e(t,r[n]);if(!t.data||0===t.data.length)return t;var s=t.data.map((function(t){return R(e,t,r,n+1)})),a=e(s,r[n]);return i({data:a},t)}function F(e,t){var r=c(e,(function(e){return e.name===t}));return r&&r.stats}function b(e,t,r,n,i){var s=c(i,(function(e){return e.name===r})),a=s&&s.data&&s.data[n]?s.data[n]:0,u=s&&s.exhaustive||!1;return{type:t,attributeName:r,name:n,count:a,exhaustive:u}}v.prototype.getFacetByName=function(e){function t(t){return t.name===e}return c(this.facets,t)||c(this.disjunctiveFacets,t)||c(this.hierarchicalFacets,t)},v.DEFAULT_SORT=["isRefined:desc","count:desc","name:asc"],v.prototype.getFacetValues=function(e,t){var r=g(this,e);if(r){var n,a=i({},t,{sortBy:v.DEFAULT_SORT,facetOrdering:!(t&&t.sortBy)}),c=this;if(Array.isArray(r))n=[e];else n=c._state.getHierarchicalFacetByName(r.name).attributes;return R((function(e,t){if(a.facetOrdering){var r=function(e,t){return e.renderingContent&&e.renderingContent.facetOrdering&&e.renderingContent.facetOrdering.values&&e.renderingContent.facetOrdering.values[t]}(c,t);if(r)return function(e,t){var r=[],n=[],i=(t.order||[]).reduce((function(e,t,r){return e[t]=r,e}),{});e.forEach((function(e){var t=e.path||e.name;void 0!==i[t]?r[i[t]]=e:n.push(e)})),r=r.filter((function(e){return e}));var a,c=t.sortRemainingBy;return"hidden"===c?r:(a="alpha"===c?[["path","name"],["asc","asc"]]:[["count"],["desc"]],r.concat(s(n,a[0],a[1])))}(e,r)}if(Array.isArray(a.sortBy)){var n=o(a.sortBy,v.DEFAULT_SORT);return s(e,n[0],n[1])}if("function"==typeof a.sortBy)return function(e,t){return t.sort(e)}(a.sortBy,e);throw new Error("options.sortBy is optional but if defined it must be either an array of string (predicates) or a sorting function")}),r,n)}},v.prototype.getFacetStats=function(e){return this._state.isConjunctiveFacet(e)?F(this.facets,e):this._state.isDisjunctiveFacet(e)?F(this.disjunctiveFacets,e):void 0},v.prototype.getRefinements=function(){var e=this._state,t=this,r=[];return Object.keys(e.facetsRefinements).forEach((function(n){e.facetsRefinements[n].forEach((function(i){r.push(b(e,"facet",n,i,t.facets))}))})),Object.keys(e.facetsExcludes).forEach((function(n){e.facetsExcludes[n].forEach((function(i){r.push(b(e,"exclude",n,i,t.facets))}))})),Object.keys(e.disjunctiveFacetsRefinements).forEach((function(n){e.disjunctiveFacetsRefinements[n].forEach((function(i){r.push(b(e,"disjunctive",n,i,t.disjunctiveFacets))}))})),Object.keys(e.hierarchicalFacetsRefinements).forEach((function(n){e.hierarchicalFacetsRefinements[n].forEach((function(i){r.push(function(e,t,r,n){var i=e.getHierarchicalFacetByName(t),s=e._getHierarchicalFacetSeparator(i),a=r.split(s),u=c(n,(function(e){return e.name===t})),o=a.reduce((function(e,t){var r=e&&c(e.data,(function(e){return e.name===t}));return void 0!==r?r:e}),u),h=o&&o.count||0,f=o&&o.exhaustive||!1,l=o&&o.path||"";return{type:"hierarchical",attributeName:t,name:l,count:h,exhaustive:f}}(e,n,i,t.hierarchicalFacets))}))})),Object.keys(e.numericRefinements).forEach((function(t){var n=e.numericRefinements[t];Object.keys(n).forEach((function(e){n[e].forEach((function(n){r.push({type:"numeric",attributeName:t,name:n,numericValue:n,operator:e})}))}))})),e.tagRefinements.forEach((function(e){r.push({type:"tag",attributeName:"_tags",name:e})})),r},e.exports=v},9374:(e,t,r)=>{"use strict";var n=r(7775),i=r(3076),s=r(8078),a=r(6394),c=r(7331),u=r(4853),o=r(116),h=r(9803),f=r(185),l=r(4336),m=r(4039).escapeFacetValue;function d(e,t,r){"function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.setClient(e);var i=r||{};i.index=t,this.state=n.make(i),this.lastResults=null,this._queryId=0,this._lastQueryIdReceived=-1,this.derivedHelpers=[],this._currentNbQueries=0}function p(e){if(e<0)throw new Error("Page requested below 0.");return this._change({state:this.state.setPage(e),isPageReset:!1}),this}function v(){return this.state.page}u(d,c),d.prototype.search=function(){return this._search({onlyWithDerivedHelpers:!1}),this},d.prototype.searchOnlyWithDerivedHelpers=function(){return this._search({onlyWithDerivedHelpers:!0}),this},d.prototype.getQuery=function(){var e=this.state;return a._getHitsSearchParams(e)},d.prototype.searchOnce=function(e,t){var r=e?this.state.setQueryParameters(e):this.state,n=a._getQueries(r.index,r),s=this;if(this._currentNbQueries++,this.emit("searchOnce",{state:r}),!t)return this.client.search(n).then((function(e){return s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),{content:new i(r,e.results),state:r,_originalResponse:e}}),(function(e){throw s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),e}));this.client.search(n).then((function(e){s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),t(null,new i(r,e.results),r)})).catch((function(e){s._currentNbQueries--,0===s._currentNbQueries&&s.emit("searchQueueEmpty"),t(e,null,r)}))},d.prototype.findAnswers=function(e){console.warn("[algoliasearch-helper] answers is no longer supported");var t=this.state,r=this.derivedHelpers[0];if(!r)return Promise.resolve([]);var n=r.getModifiedState(t),i=f({attributesForPrediction:e.attributesForPrediction,nbHits:e.nbHits},{params:h(a._getHitsSearchParams(n),["attributesToSnippet","hitsPerPage","restrictSearchableAttributes","snippetEllipsisText"])}),s="search for answers was called, but this client does not have a function client.initIndex(index).findAnswers";if("function"!=typeof this.client.initIndex)throw new Error(s);var c=this.client.initIndex(n.index);if("function"!=typeof c.findAnswers)throw new Error(s);return c.findAnswers(n.query,e.queryLanguages,i)},d.prototype.searchForFacetValues=function(e,t,r,n){var i="function"==typeof this.client.searchForFacetValues,s="function"==typeof this.client.initIndex;if(!i&&!s&&"function"!=typeof this.client.search)throw new Error("search for facet values (searchable) was called, but this client does not have a function client.searchForFacetValues or client.initIndex(index).searchForFacetValues");var c=this.state.setQueryParameters(n||{}),u=c.isDisjunctiveFacet(e),o=a.getSearchForFacetQuery(e,t,r,c);this._currentNbQueries++;var h,f=this;return i?h=this.client.searchForFacetValues([{indexName:c.index,params:o}]):s?h=this.client.initIndex(c.index).searchForFacetValues(o):(delete o.facetName,h=this.client.search([{type:"facet",facet:e,indexName:c.index,params:o}]).then((function(e){return e.results[0]}))),this.emit("searchForFacetValues",{state:c,facet:e,query:t}),h.then((function(t){return f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),(t=Array.isArray(t)?t[0]:t).facetHits.forEach((function(t){t.escapedValue=m(t.value),t.isRefined=u?c.isDisjunctiveFacetRefined(e,t.escapedValue):c.isFacetRefined(e,t.escapedValue)})),t}),(function(e){throw f._currentNbQueries--,0===f._currentNbQueries&&f.emit("searchQueueEmpty"),e}))},d.prototype.setQuery=function(e){return this._change({state:this.state.resetPage().setQuery(e),isPageReset:!0}),this},d.prototype.clearRefinements=function(e){return this._change({state:this.state.resetPage().clearRefinements(e),isPageReset:!0}),this},d.prototype.clearTags=function(){return this._change({state:this.state.resetPage().clearTags(),isPageReset:!0}),this},d.prototype.addDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addDisjunctiveRefine=function(){return this.addDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.addHierarchicalFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addHierarchicalFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().addNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.addFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().addFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.addRefine=function(){return this.addFacetRefinement.apply(this,arguments)},d.prototype.addFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().addExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.addExclude=function(){return this.addFacetExclusion.apply(this,arguments)},d.prototype.addTag=function(e){return this._change({state:this.state.resetPage().addTagRefinement(e),isPageReset:!0}),this},d.prototype.removeNumericRefinement=function(e,t,r){return this._change({state:this.state.resetPage().removeNumericRefinement(e,t,r),isPageReset:!0}),this},d.prototype.removeDisjunctiveFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeDisjunctiveFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeDisjunctiveRefine=function(){return this.removeDisjunctiveFacetRefinement.apply(this,arguments)},d.prototype.removeHierarchicalFacetRefinement=function(e){return this._change({state:this.state.resetPage().removeHierarchicalFacetRefinement(e),isPageReset:!0}),this},d.prototype.removeFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().removeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.removeRefine=function(){return this.removeFacetRefinement.apply(this,arguments)},d.prototype.removeFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().removeExcludeRefinement(e,t),isPageReset:!0}),this},d.prototype.removeExclude=function(){return this.removeFacetExclusion.apply(this,arguments)},d.prototype.removeTag=function(e){return this._change({state:this.state.resetPage().removeTagRefinement(e),isPageReset:!0}),this},d.prototype.toggleFacetExclusion=function(e,t){return this._change({state:this.state.resetPage().toggleExcludeFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleExclude=function(){return this.toggleFacetExclusion.apply(this,arguments)},d.prototype.toggleRefinement=function(e,t){return this.toggleFacetRefinement(e,t)},d.prototype.toggleFacetRefinement=function(e,t){return this._change({state:this.state.resetPage().toggleFacetRefinement(e,t),isPageReset:!0}),this},d.prototype.toggleRefine=function(){return this.toggleFacetRefinement.apply(this,arguments)},d.prototype.toggleTag=function(e){return this._change({state:this.state.resetPage().toggleTagRefinement(e),isPageReset:!0}),this},d.prototype.nextPage=function(){var e=this.state.page||0;return this.setPage(e+1)},d.prototype.previousPage=function(){var e=this.state.page||0;return this.setPage(e-1)},d.prototype.setCurrentPage=p,d.prototype.setPage=p,d.prototype.setIndex=function(e){return this._change({state:this.state.resetPage().setIndex(e),isPageReset:!0}),this},d.prototype.setQueryParameter=function(e,t){return this._change({state:this.state.resetPage().setQueryParameter(e,t),isPageReset:!0}),this},d.prototype.setState=function(e){return this._change({state:n.make(e),isPageReset:!1}),this},d.prototype.overrideStateWithoutTriggeringChangeEvent=function(e){return this.state=new n(e),this},d.prototype.hasRefinements=function(e){return!!o(this.state.getNumericRefinements(e))||(this.state.isConjunctiveFacet(e)?this.state.isFacetRefined(e):this.state.isDisjunctiveFacet(e)?this.state.isDisjunctiveFacetRefined(e):!!this.state.isHierarchicalFacet(e)&&this.state.isHierarchicalFacetRefined(e))},d.prototype.isExcluded=function(e,t){return this.state.isExcludeRefined(e,t)},d.prototype.isDisjunctiveRefined=function(e,t){return this.state.isDisjunctiveFacetRefined(e,t)},d.prototype.hasTag=function(e){return this.state.isTagRefined(e)},d.prototype.isTagRefined=function(){return this.hasTagRefinements.apply(this,arguments)},d.prototype.getIndex=function(){return this.state.index},d.prototype.getCurrentPage=v,d.prototype.getPage=v,d.prototype.getTags=function(){return this.state.tagRefinements},d.prototype.getRefinements=function(e){var t=[];if(this.state.isConjunctiveFacet(e))this.state.getConjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"conjunctive"})})),this.state.getExcludeRefinements(e).forEach((function(e){t.push({value:e,type:"exclude"})}));else if(this.state.isDisjunctiveFacet(e)){this.state.getDisjunctiveRefinements(e).forEach((function(e){t.push({value:e,type:"disjunctive"})}))}var r=this.state.getNumericRefinements(e);return Object.keys(r).forEach((function(e){var n=r[e];t.push({value:n,operator:e,type:"numeric"})})),t},d.prototype.getNumericRefinement=function(e,t){return this.state.getNumericRefinement(e,t)},d.prototype.getHierarchicalFacetBreadcrumb=function(e){return this.state.getHierarchicalFacetBreadcrumb(e)},d.prototype._search=function(e){var t=this.state,r=[],n=[];e.onlyWithDerivedHelpers||(n=a._getQueries(t.index,t),r.push({state:t,queriesCount:n.length,helper:this}),this.emit("search",{state:t,results:this.lastResults}));var i=this.derivedHelpers.map((function(e){var n=e.getModifiedState(t),i=n.index?a._getQueries(n.index,n):[];return r.push({state:n,queriesCount:i.length,helper:e}),e.emit("search",{state:n,results:e.lastResults}),i})),s=Array.prototype.concat.apply(n,i),c=this._queryId++;if(this._currentNbQueries++,!s.length)return Promise.resolve({results:[]}).then(this._dispatchAlgoliaResponse.bind(this,r,c));try{this.client.search(s).then(this._dispatchAlgoliaResponse.bind(this,r,c)).catch(this._dispatchAlgoliaError.bind(this,c))}catch(u){this.emit("error",{error:u})}},d.prototype._dispatchAlgoliaResponse=function(e,t,r){if(!(t0},d.prototype._change=function(e){var t=e.state,r=e.isPageReset;t!==this.state&&(this.state=t,this.emit("change",{state:this.state,results:this.lastResults,isPageReset:r}))},d.prototype.clearCache=function(){return this.client.clearCache&&this.client.clearCache(),this},d.prototype.setClient=function(e){return this.client===e||("function"==typeof e.addAlgoliaAgent&&e.addAlgoliaAgent("JS Helper ("+l+")"),this.client=e),this},d.prototype.getClient=function(){return this.client},d.prototype.derive=function(e){var t=new s(this,e);return this.derivedHelpers.push(t),t},d.prototype.detachDerivedHelper=function(e){var t=this.derivedHelpers.indexOf(e);if(-1===t)throw new Error("Derived helper already detached");this.derivedHelpers.splice(t,1)},d.prototype.hasPendingRequests=function(){return this._currentNbQueries>0},e.exports=d},4587:e=>{"use strict";e.exports=function(e){return Array.isArray(e)?e.filter(Boolean):[]}},2344:e=>{"use strict";e.exports=function(){return Array.prototype.slice.call(arguments).reduceRight((function(e,t){return Object.keys(Object(t)).forEach((function(r){void 0!==t[r]&&(void 0!==e[r]&&delete e[r],e[r]=t[r])})),e}),{})}},4039:e=>{"use strict";e.exports={escapeFacetValue:function(e){return"string"!=typeof e?e:String(e).replace(/^-/,"\\-")},unescapeFacetValue:function(e){return"string"!=typeof e?e:e.replace(/^\\-/,"-")}}},7888:e=>{"use strict";e.exports=function(e,t){if(Array.isArray(e))for(var r=0;r{"use strict";e.exports=function(e,t){if(!Array.isArray(e))return-1;for(var r=0;r{"use strict";var n=r(7888);e.exports=function(e,t){var r=(t||[]).map((function(e){return e.split(":")}));return e.reduce((function(e,t){var i=t.split(":"),s=n(r,(function(e){return e[0]===i[0]}));return i.length>1||!s?(e[0].push(i[0]),e[1].push(i[1]),e):(e[0].push(s[0]),e[1].push(s[1]),e)}),[[],[]])}},4853:e=>{"use strict";e.exports=function(e,t){e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}},2686:e=>{"use strict";e.exports=function(e,t){return e.filter((function(r,n){return t.indexOf(r)>-1&&e.indexOf(r)===n}))}},185:e=>{"use strict";function t(e){return"function"==typeof e||Array.isArray(e)||"[object Object]"===Object.prototype.toString.call(e)}function r(e,n){if(e===n)return e;for(var i in n)if(Object.prototype.hasOwnProperty.call(n,i)&&"__proto__"!==i&&"constructor"!==i){var s=n[i],a=e[i];void 0!==a&&void 0===s||(t(a)&&t(s)?e[i]=r(a,s):e[i]="object"==typeof(c=s)&&null!==c?r(Array.isArray(c)?[]:{},c):c)}var c;return e}e.exports=function(e){t(e)||(e={});for(var n=1,i=arguments.length;n{"use strict";e.exports=function(e){return e&&Object.keys(e).length>0}},9803:e=>{"use strict";e.exports=function(e,t){if(null===e)return{};var r,n,i={},s=Object.keys(e);for(n=0;n=0||(i[r]=e[r]);return i}},2148:e=>{"use strict";function t(e,t){if(e!==t){var r=void 0!==e,n=null===e,i=void 0!==t,s=null===t;if(!s&&e>t||n&&i||!r)return 1;if(!n&&e=n.length?s:"desc"===n[i]?-s:s}return e.index-r.index})),i.map((function(e){return e.value}))}},8023:e=>{"use strict";e.exports=function e(t){if("number"==typeof t)return t;if("string"==typeof t)return parseFloat(t);if(Array.isArray(t))return t.map(e);throw new Error("The value should be a number, a parsable string or an array of those.")}},6394:(e,t,r)=>{"use strict";var n=r(185);function i(e){return Object.keys(e).sort((function(e,t){return e.localeCompare(t)})).reduce((function(t,r){return t[r]=e[r],t}),{})}var s={_getQueries:function(e,t){var r=[];return r.push({indexName:e,params:s._getHitsSearchParams(t)}),t.getRefinedDisjunctiveFacets().forEach((function(n){r.push({indexName:e,params:s._getDisjunctiveFacetSearchParams(t,n)})})),t.getRefinedHierarchicalFacets().forEach((function(n){var i=t.getHierarchicalFacetByName(n),a=t.getHierarchicalRefinement(n),c=t._getHierarchicalFacetSeparator(i);if(a.length>0&&a[0].split(c).length>1){var u=a[0].split(c).slice(0,-1).reduce((function(e,t,r){return e.concat({attribute:i.attributes[r],value:0===r?t:[e[e.length-1].value,t].join(c)})}),[]);u.forEach((function(n,a){var c=s._getDisjunctiveFacetSearchParams(t,n.attribute,0===a);function o(e){return i.attributes.some((function(t){return t===e.split(":")[0]}))}var h=(c.facetFilters||[]).reduce((function(e,t){if(Array.isArray(t)){var r=t.filter((function(e){return!o(e)}));r.length>0&&e.push(r)}return"string"!=typeof t||o(t)||e.push(t),e}),[]),f=u[a-1];c.facetFilters=a>0?h.concat(f.attribute+":"+f.value):h.length>0?h:void 0,r.push({indexName:e,params:c})}))}})),r},_getHitsSearchParams:function(e){var t=e.facets.concat(e.disjunctiveFacets).concat(s._getHitsHierarchicalFacetsAttributes(e)),r=s._getFacetFilters(e),a=s._getNumericFilters(e),c=s._getTagFilters(e),u={facets:t.indexOf("*")>-1?["*"]:t,tagFilters:c};return r.length>0&&(u.facetFilters=r),a.length>0&&(u.numericFilters=a),i(n({},e.getQueryParams(),u))},_getDisjunctiveFacetSearchParams:function(e,t,r){var a=s._getFacetFilters(e,t,r),c=s._getNumericFilters(e,t),u=s._getTagFilters(e),o={hitsPerPage:0,page:0,analytics:!1,clickAnalytics:!1};u.length>0&&(o.tagFilters=u);var h=e.getHierarchicalFacetByName(t);return o.facets=h?s._getDisjunctiveHierarchicalFacetAttribute(e,h,r):t,c.length>0&&(o.numericFilters=c),a.length>0&&(o.facetFilters=a),i(n({},e.getQueryParams(),o))},_getNumericFilters:function(e,t){if(e.numericFilters)return e.numericFilters;var r=[];return Object.keys(e.numericRefinements).forEach((function(n){var i=e.numericRefinements[n]||{};Object.keys(i).forEach((function(e){var s=i[e]||[];t!==n&&s.forEach((function(t){if(Array.isArray(t)){var i=t.map((function(t){return n+e+t}));r.push(i)}else r.push(n+e+t)}))}))})),r},_getTagFilters:function(e){return e.tagFilters?e.tagFilters:e.tagRefinements.join(",")},_getFacetFilters:function(e,t,r){var n=[],i=e.facetsRefinements||{};Object.keys(i).forEach((function(e){(i[e]||[]).forEach((function(t){n.push(e+":"+t)}))}));var s=e.facetsExcludes||{};Object.keys(s).forEach((function(e){(s[e]||[]).forEach((function(t){n.push(e+":-"+t)}))}));var a=e.disjunctiveFacetsRefinements||{};Object.keys(a).forEach((function(e){var r=a[e]||[];if(e!==t&&r&&0!==r.length){var i=[];r.forEach((function(t){i.push(e+":"+t)})),n.push(i)}}));var c=e.hierarchicalFacetsRefinements||{};return Object.keys(c).forEach((function(i){var s=(c[i]||[])[0];if(void 0!==s){var a,u,o=e.getHierarchicalFacetByName(i),h=e._getHierarchicalFacetSeparator(o),f=e._getHierarchicalRootPath(o);if(t===i){if(-1===s.indexOf(h)||!f&&!0===r||f&&f.split(h).length===s.split(h).length)return;f?(u=f.split(h).length-1,s=f):(u=s.split(h).length-2,s=s.slice(0,s.lastIndexOf(h))),a=o.attributes[u]}else u=s.split(h).length-1,a=o.attributes[u];a&&n.push([a+":"+s])}})),n},_getHitsHierarchicalFacetsAttributes:function(e){return e.hierarchicalFacets.reduce((function(t,r){var n=e.getHierarchicalRefinement(r.name)[0];if(!n)return t.push(r.attributes[0]),t;var i=e._getHierarchicalFacetSeparator(r),s=n.split(i).length,a=r.attributes.slice(0,s+1);return t.concat(a)}),[])},_getDisjunctiveHierarchicalFacetAttribute:function(e,t,r){var n=e._getHierarchicalFacetSeparator(t);if(!0===r){var i=e._getHierarchicalRootPath(t),s=0;return i&&(s=i.split(n).length),[t.attributes[s]]}var a=(e.getHierarchicalRefinement(t.name)[0]||"").split(n).length-1;return t.attributes.slice(0,a+1)},getSearchForFacetQuery:function(e,t,r,a){var c=a.isDisjunctiveFacet(e)?a.clearRefinements(e):a,u={facetQuery:t,facetName:e};return"number"==typeof r&&(u.maxFacetHits=r),i(n({},s._getHitsSearchParams(c),u))}};e.exports=s},6801:e=>{"use strict";e.exports=function(e){return null!==e&&/^[a-zA-Z0-9_-]{1,64}$/.test(e)}},4336:e=>{"use strict";e.exports="3.13.3"},290:function(e){e.exports=function(){"use strict";function e(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function t(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function r(r){for(var n=1;n=0||(i[r]=e[r]);return i}(e,t);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);for(n=0;n=0||Object.prototype.propertyIsEnumerable.call(e,r)&&(i[r]=e[r])}return i}function i(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){if(Symbol.iterator in Object(e)||"[object Arguments]"===Object.prototype.toString.call(e)){var r=[],n=!0,i=!1,s=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(r.push(a.value),!t||r.length!==t);n=!0);}catch(e){i=!0,s=e}finally{try{n||null==c.return||c.return()}finally{if(i)throw s}}return r}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function s(e){return function(e){if(Array.isArray(e)){for(var t=0,r=new Array(e.length);t2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return Promise.resolve().then((function(){c();var t=JSON.stringify(e);return s()[t]})).then((function(e){return Promise.all([e?e.value:t(),void 0!==e])})).then((function(e){var t=i(e,2),n=t[0],s=t[1];return Promise.all([n,s||r.miss(n)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve().then((function(){var i=s();return i[JSON.stringify(e)]={timestamp:(new Date).getTime(),value:t},n().setItem(r,JSON.stringify(i)),t}))},delete:function(e){return Promise.resolve().then((function(){var t=s();delete t[JSON.stringify(e)],n().setItem(r,JSON.stringify(t))}))},clear:function(){return Promise.resolve().then((function(){n().removeItem(r)}))}}}function c(e){var t=s(e.caches),r=t.shift();return void 0===r?{get:function(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return t().then((function(e){return Promise.all([e,r.miss(e)])})).then((function(e){return i(e,1)[0]}))},set:function(e,t){return Promise.resolve(t)},delete:function(e){return Promise.resolve()},clear:function(){return Promise.resolve()}}:{get:function(e,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}};return r.get(e,n,i).catch((function(){return c({caches:t}).get(e,n,i)}))},set:function(e,n){return r.set(e,n).catch((function(){return c({caches:t}).set(e,n)}))},delete:function(e){return r.delete(e).catch((function(){return c({caches:t}).delete(e)}))},clear:function(){return r.clear().catch((function(){return c({caches:t}).clear()}))}}}function u(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{serializable:!0},t={};return{get:function(r,n){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{miss:function(){return Promise.resolve()}},s=JSON.stringify(r);if(s in t)return Promise.resolve(e.serializable?JSON.parse(t[s]):t[s]);var a=n(),c=i&&i.miss||function(){return Promise.resolve()};return a.then((function(e){return c(e)})).then((function(){return a}))},set:function(r,n){return t[JSON.stringify(r)]=e.serializable?JSON.stringify(n):n,Promise.resolve(n)},delete:function(e){return delete t[JSON.stringify(e)],Promise.resolve()},clear:function(){return t={},Promise.resolve()}}}function o(e){for(var t=e.length-1;t>0;t--){var r=Math.floor(Math.random()*(t+1)),n=e[t];e[t]=e[r],e[r]=n}return e}function h(e,t){return t?(Object.keys(t).forEach((function(r){e[r]=t[r](e)})),e):e}function f(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0?n:void 0,timeout:r.timeout||t,headers:r.headers||{},queryParameters:r.queryParameters||{},cacheable:r.cacheable}}var d={Read:1,Write:2,Any:3},p=1,v=2,g=3;function y(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:p;return r(r({},e),{},{status:t,lastUpdate:Date.now()})}function R(e){return"string"==typeof e?{protocol:"https",url:e,accept:d.Any}:{protocol:e.protocol||"https",url:e.url,accept:e.accept||d.Any}}var F="GET",b="POST";function j(e,t){return Promise.all(t.map((function(t){return e.get(t,(function(){return Promise.resolve(y(t))}))}))).then((function(e){var r=e.filter((function(e){return function(e){return e.status===p||Date.now()-e.lastUpdate>12e4}(e)})),n=e.filter((function(e){return function(e){return e.status===g&&Date.now()-e.lastUpdate<=12e4}(e)})),i=[].concat(s(r),s(n));return{getTimeout:function(e,t){return(0===n.length&&0===e?1:n.length+3+e)*t},statelessHosts:i.length>0?i.map((function(e){return R(e)})):t}}))}function P(e,t,n,i){var a=[],c=function(e,t){if(e.method!==F&&(void 0!==e.data||void 0!==t.data)){var n=Array.isArray(e.data)?e.data:r(r({},e.data),t.data);return JSON.stringify(n)}}(n,i),u=function(e,t){var n=r(r({},e.headers),t.headers),i={};return Object.keys(n).forEach((function(e){var t=n[e];i[e.toLowerCase()]=t})),i}(e,i),o=n.method,h=n.method!==F?{}:r(r({},n.data),i.data),f=r(r(r({"x-algolia-agent":e.userAgent.value},e.queryParameters),h),i.queryParameters),l=0,m=function t(r,s){var h=r.pop();if(void 0===h)throw{name:"RetryError",message:"Unreachable hosts - your application id may be incorrect. If the error persists, contact support@algolia.com.",transporterStackTrace:w(a)};var m={data:c,headers:u,method:o,url:_(h,n.path,f),connectTimeout:s(l,e.timeouts.connect),responseTimeout:s(l,i.timeout)},d=function(e){var t={request:m,response:e,host:h,triesLeft:r.length};return a.push(t),t},p={onSuccess:function(e){return function(e){try{return JSON.parse(e.content)}catch(t){throw function(e,t){return{name:"DeserializationError",message:e,response:t}}(t.message,e)}}(e)},onRetry:function(n){var i=d(n);return n.isTimedOut&&l++,Promise.all([e.logger.info("Retryable failure",O(i)),e.hostsCache.set(h,y(h,n.isTimedOut?g:v))]).then((function(){return t(r,s)}))},onFail:function(e){throw d(e),function(e,t){var r=e.content,n=e.status,i=r;try{i=JSON.parse(r).message}catch(e){}return function(e,t,r){return{name:"ApiError",message:e,status:t,transporterStackTrace:r}}(i,n,t)}(e,w(a))}};return e.requester.send(m).then((function(e){return function(e,t){return function(e){var t=e.status;return e.isTimedOut||function(e){var t=e.isTimedOut,r=e.status;return!t&&0==~~r}(e)||2!=~~(t/100)&&4!=~~(t/100)}(e)?t.onRetry(e):2==~~(e.status/100)?t.onSuccess(e):t.onFail(e)}(e,p)}))};return j(e.hostsCache,t).then((function(e){return m(s(e.statelessHosts).reverse(),e.getTimeout)}))}function x(e){var t={value:"Algolia for JavaScript (".concat(e,")"),add:function(e){var r="; ".concat(e.segment).concat(void 0!==e.version?" (".concat(e.version,")"):"");return-1===t.value.indexOf(r)&&(t.value="".concat(t.value).concat(r)),t}};return t}function _(e,t,r){var n=E(r),i="".concat(e.protocol,"://").concat(e.url,"/").concat("/"===t.charAt(0)?t.substr(1):t);return n.length&&(i+="?".concat(n)),i}function E(e){return Object.keys(e).map((function(t){return f("%s=%s",t,(r=e[t],"[object Object]"===Object.prototype.toString.call(r)||"[object Array]"===Object.prototype.toString.call(r)?JSON.stringify(e[t]):e[t]));var r})).join("&")}function w(e){return e.map((function(e){return O(e)}))}function O(e){var t=e.request.headers["x-algolia-api-key"]?{"x-algolia-api-key":"*****"}:{};return r(r({},e),{},{request:r(r({},e.request),{},{headers:r(r({},e.request.headers),t)})})}var N=function(e){var t=e.appId,n=function(e,t,r){var n={"x-algolia-api-key":r,"x-algolia-application-id":t};return{headers:function(){return e===l.WithinHeaders?n:{}},queryParameters:function(){return e===l.WithinQueryParameters?n:{}}}}(void 0!==e.authMode?e.authMode:l.WithinHeaders,t,e.apiKey),s=function(e){var t=e.hostsCache,r=e.logger,n=e.requester,s=e.requestsCache,a=e.responsesCache,c=e.timeouts,u=e.userAgent,o=e.hosts,h=e.queryParameters,f={hostsCache:t,logger:r,requester:n,requestsCache:s,responsesCache:a,timeouts:c,userAgent:u,headers:e.headers,queryParameters:h,hosts:o.map((function(e){return R(e)})),read:function(e,t){var r=m(t,f.timeouts.read),n=function(){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Read)})),e,r)};if(!0!==(void 0!==r.cacheable?r.cacheable:e.cacheable))return n();var s={request:e,mappedRequestOptions:r,transporter:{queryParameters:f.queryParameters,headers:f.headers}};return f.responsesCache.get(s,(function(){return f.requestsCache.get(s,(function(){return f.requestsCache.set(s,n()).then((function(e){return Promise.all([f.requestsCache.delete(s),e])}),(function(e){return Promise.all([f.requestsCache.delete(s),Promise.reject(e)])})).then((function(e){var t=i(e,2);return t[0],t[1]}))}))}),{miss:function(e){return f.responsesCache.set(s,e)}})},write:function(e,t){return P(f,f.hosts.filter((function(e){return 0!=(e.accept&d.Write)})),e,m(t,f.timeouts.write))}};return f}(r(r({hosts:[{url:"".concat(t,"-dsn.algolia.net"),accept:d.Read},{url:"".concat(t,".algolia.net"),accept:d.Write}].concat(o([{url:"".concat(t,"-1.algolianet.com")},{url:"".concat(t,"-2.algolianet.com")},{url:"".concat(t,"-3.algolianet.com")}]))},e),{},{headers:r(r(r({},n.headers()),{"content-type":"application/x-www-form-urlencoded"}),e.headers),queryParameters:r(r({},n.queryParameters()),e.queryParameters)}));return h({transporter:s,appId:t,addAlgoliaAgent:function(e,t){s.userAgent.add({segment:e,version:t})},clearCache:function(){return Promise.all([s.requestsCache.clear(),s.responsesCache.clear()]).then((function(){}))}},e.methods)},A=function(e){return function(t,r){return t.method===F?e.transporter.read(t,r):e.transporter.write(t,r)}},H=function(e){return function(t){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};return h({transporter:e.transporter,appId:e.appId,indexName:t},r.methods)}},S=function(e){return function(t,n){var i=t.map((function(e){return r(r({},e),{},{params:E(e.params||{})})}));return e.transporter.read({method:b,path:"1/indexes/*/queries",data:{requests:i},cacheable:!0},n)}},T=function(e){return function(t,i){return Promise.all(t.map((function(t){var s=t.params,a=s.facetName,c=s.facetQuery,u=n(s,["facetName","facetQuery"]);return H(e)(t.indexName,{methods:{searchForFacetValues:I}}).searchForFacetValues(a,c,r(r({},i),u))})))}},Q=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/answers/%s/prediction",e.indexName),data:{query:t,queryLanguages:r},cacheable:!0},n)}},C=function(e){return function(t,r){return e.transporter.read({method:b,path:f("1/indexes/%s/query",e.indexName),data:{query:t},cacheable:!0},r)}},I=function(e){return function(t,r,n){return e.transporter.read({method:b,path:f("1/indexes/%s/facets/%s/query",e.indexName,t),data:{facetQuery:r},cacheable:!0},n)}},D=1,k=2,q=3;function V(e,t,n){var i,s={appId:e,apiKey:t,timeouts:{connect:1,read:2,write:30},requester:{send:function(e){return new Promise((function(t){var r=new XMLHttpRequest;r.open(e.method,e.url,!0),Object.keys(e.headers).forEach((function(t){return r.setRequestHeader(t,e.headers[t])}));var n,i=function(e,n){return setTimeout((function(){r.abort(),t({status:0,content:n,isTimedOut:!0})}),1e3*e)},s=i(e.connectTimeout,"Connection timeout");r.onreadystatechange=function(){r.readyState>r.OPENED&&void 0===n&&(clearTimeout(s),n=i(e.responseTimeout,"Socket timeout"))},r.onerror=function(){0===r.status&&(clearTimeout(s),clearTimeout(n),t({content:r.responseText||"Network request failed",status:r.status,isTimedOut:!1}))},r.onload=function(){clearTimeout(s),clearTimeout(n),t({content:r.responseText,status:r.status,isTimedOut:!1})},r.send(e.data)}))}},logger:(i=q,{debug:function(e,t){return D>=i&&console.debug(e,t),Promise.resolve()},info:function(e,t){return k>=i&&console.info(e,t),Promise.resolve()},error:function(e,t){return console.error(e,t),Promise.resolve()}}),responsesCache:u(),requestsCache:u({serializable:!1}),hostsCache:c({caches:[a({key:"".concat("4.18.0","-").concat(e)}),u()]}),userAgent:x("4.18.0").add({segment:"Browser",version:"lite"}),authMode:l.WithinQueryParameters};return N(r(r(r({},s),n),{},{methods:{search:S,searchForFacetValues:T,multipleQueries:S,multipleSearchForFacetValues:T,customRequest:A,initIndex:function(e){return function(t){return H(e)(t,{methods:{search:C,searchForFacetValues:I,findAnswers:Q}})}}}}))}return V.version="4.18.0",V}()},6675:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>S});var n=r(7294),i=r(6010),s=r(8131),a=r.n(s),c=r(290),u=r.n(c),o=r(412),h=r(5742),f=r(9960),l=r(143),m=r(2263);const d=["zero","one","two","few","many","other"];function p(e){return d.filter((t=>e.includes(t)))}const v={locale:"en",pluralForms:p(["one","other"]),select:e=>1===e?"one":"other"};function g(){const{i18n:{currentLocale:e}}=(0,m.Z)();return(0,n.useMemo)((()=>{try{return function(e){const t=new Intl.PluralRules(e);return{locale:e,pluralForms:p(t.resolvedOptions().pluralCategories),select:e=>t.select(e)}}(e)}catch(t){return console.error(`Failed to use Intl.PluralRules for locale "${e}".\nDocusaurus will fallback to the default (English) implementation.\nError: ${t.message}\n`),v}}),[e])}function y(){const e=g();return{selectMessage:(t,r)=>function(e,t,r){const n=e.split("|");if(1===n.length)return n[0];n.length>r.pluralForms.length&&console.error(`For locale=${r.locale}, a maximum of ${r.pluralForms.length} plural forms are expected (${r.pluralForms.join(",")}), but the message contains ${n.length}: ${e}`);const i=r.select(t),s=r.pluralForms.indexOf(i);return n[Math.min(s,n.length-1)]}(r,t,e)}}var R=r(6177),F=r(902),b=r(833),j=r(2128),P=r(5999),x=r(6278),_=r(239),E=r(7452),w=r(2503);const O={searchQueryInput:"searchQueryInput_u2C7",searchVersionInput:"searchVersionInput_m0Ui",searchResultsColumn:"searchResultsColumn_JPFH",algoliaLogo:"algoliaLogo_rT1R",algoliaLogoPathFill:"algoliaLogoPathFill_WdUC",searchResultItem:"searchResultItem_Tv2o",searchResultItemHeading:"searchResultItemHeading_KbCB",searchResultItemPath:"searchResultItemPath_lhe1",searchResultItemSummary:"searchResultItemSummary_AEaO",searchQueryColumn:"searchQueryColumn_RTkw",searchVersionColumn:"searchVersionColumn_ypXd",searchLogoColumn:"searchLogoColumn_rJIA",loadingSpinner:"loadingSpinner_XVxU","loading-spin":"loading-spin_vzvp",loader:"loader_vvXV"};var N=r(5893);function A(e){let{docsSearchVersionsHelpers:t}=e;const r=Object.entries(t.allDocsData).filter((e=>{let[,t]=e;return t.versions.length>1}));return(0,N.jsx)("div",{className:(0,i.Z)("col","col--3","padding-left--none",O.searchVersionColumn),children:r.map((e=>{let[n,i]=e;const s=r.length>1?`${n}: `:"";return(0,N.jsx)("select",{onChange:e=>t.setSearchVersion(n,e.target.value),defaultValue:t.searchVersions[n],className:O.searchVersionInput,children:i.versions.map(((e,t)=>(0,N.jsx)("option",{label:`${s}${e.label}`,value:e.name},t)))},n)}))})}function H(){const{i18n:{currentLocale:e}}=(0,m.Z)(),{algolia:{appId:t,apiKey:r,indexName:s}}=(0,x.L)(),c=(0,_.l)(),d=function(){const{selectMessage:e}=y();return t=>e(t,(0,P.I)({id:"theme.SearchPage.documentsFound.plurals",description:'Pluralized label for "{count} documents found". Use as much plural forms (separated by "|") as your language support (see https://www.unicode.org/cldr/cldr-aux/charts/34/supplemental/language_plural_rules.html)',message:"One document found|{count} documents found"},{count:t}))}(),p=function(){const e=(0,l._r)(),[t,r]=(0,n.useState)((()=>Object.entries(e).reduce(((e,t)=>{let[r,n]=t;return{...e,[r]:n.versions[0].name}}),{}))),i=Object.values(e).some((e=>e.versions.length>1));return{allDocsData:e,versioningEnabled:i,searchVersions:t,setSearchVersion:(e,t)=>r((r=>({...r,[e]:t})))}}(),[v,g]=(0,R.K)(),b={items:[],query:null,totalResults:null,totalPages:null,lastPage:null,hasMore:null,loading:null},[H,S]=(0,n.useReducer)(((e,t)=>{switch(t.type){case"reset":return b;case"loading":return{...e,loading:!0};case"update":return v!==t.value.query?e:{...t.value,items:0===t.value.lastPage?t.value.items:e.items.concat(t.value.items)};case"advance":{const t=e.totalPages>e.lastPage+1;return{...e,lastPage:t?e.lastPage+1:e.lastPage,hasMore:t}}default:return e}}),b),T=u()(t,r),Q=a()(T,s,{hitsPerPage:15,advancedSyntax:!0,disjunctiveFacets:["language","docusaurus_tag"]});Q.on("result",(e=>{let{results:{query:t,hits:r,page:n,nbHits:i,nbPages:s}}=e;if(""===t||!Array.isArray(r))return void S({type:"reset"});const a=e=>e.replace(/algolia-docsearch-suggestion--highlight/g,"search-result-match"),u=r.map((e=>{let{url:t,_highlightResult:{hierarchy:r},_snippetResult:n={}}=e;const i=Object.keys(r).map((e=>a(r[e].value)));return{title:i.pop(),url:c(t),summary:n.content?`${a(n.content.value)}...`:"",breadcrumbs:i}}));S({type:"update",value:{items:u,query:t,totalResults:i,totalPages:s,lastPage:n,hasMore:s>n+1,loading:!1}})}));const[C,I]=(0,n.useState)(null),D=(0,n.useRef)(0),k=(0,n.useRef)(o.Z.canUseIntersectionObserver&&new IntersectionObserver((e=>{const{isIntersecting:t,boundingClientRect:{y:r}}=e[0];t&&D.current>r&&S({type:"advance"}),D.current=r}),{threshold:1})),q=()=>v?(0,P.I)({id:"theme.SearchPage.existingResultsTitle",message:'Search results for "{query}"',description:"The search page title for non-empty query"},{query:v}):(0,P.I)({id:"theme.SearchPage.emptyResultsTitle",message:"Search the documentation",description:"The search page title for empty query"}),V=(0,F.zX)((function(t){void 0===t&&(t=0),Q.addDisjunctiveFacetRefinement("docusaurus_tag","default"),Q.addDisjunctiveFacetRefinement("language",e),Object.entries(p.searchVersions).forEach((e=>{let[t,r]=e;Q.addDisjunctiveFacetRefinement("docusaurus_tag",`docs-${t}-${r}`)})),Q.setQuery(v).setPage(t).search()}));return(0,n.useEffect)((()=>{if(!C)return;const e=k.current;return e?(e.observe(C),()=>e.unobserve(C)):()=>!0}),[C]),(0,n.useEffect)((()=>{S({type:"reset"}),v&&(S({type:"loading"}),setTimeout((()=>{V()}),300))}),[v,p.searchVersions,V]),(0,n.useEffect)((()=>{H.lastPage&&0!==H.lastPage&&V(H.lastPage)}),[V,H.lastPage]),(0,N.jsxs)(E.Z,{children:[(0,N.jsxs)(h.Z,{children:[(0,N.jsx)("title",{children:(0,j.p)(q())}),(0,N.jsx)("meta",{property:"robots",content:"noindex, follow"})]}),(0,N.jsxs)("div",{className:"container margin-vert--lg",children:[(0,N.jsx)(w.Z,{as:"h1",children:q()}),(0,N.jsxs)("form",{className:"row",onSubmit:e=>e.preventDefault(),children:[(0,N.jsx)("div",{className:(0,i.Z)("col",O.searchQueryColumn,{"col--9":p.versioningEnabled,"col--12":!p.versioningEnabled}),children:(0,N.jsx)("input",{type:"search",name:"q",className:O.searchQueryInput,placeholder:(0,P.I)({id:"theme.SearchPage.inputPlaceholder",message:"Type your search here",description:"The placeholder for search page input"}),"aria-label":(0,P.I)({id:"theme.SearchPage.inputLabel",message:"Search",description:"The ARIA label for search page input"}),onChange:e=>g(e.target.value),value:v,autoComplete:"off",autoFocus:!0})}),p.versioningEnabled&&(0,N.jsx)(A,{docsSearchVersionsHelpers:p})]}),(0,N.jsxs)("div",{className:"row",children:[(0,N.jsx)("div",{className:(0,i.Z)("col","col--8",O.searchResultsColumn),children:!!H.totalResults&&d(H.totalResults)}),(0,N.jsx)("div",{className:(0,i.Z)("col","col--4","text--right",O.searchLogoColumn),children:(0,N.jsx)(f.Z,{to:"https://www.algolia.com/","aria-label":(0,P.I)({id:"theme.SearchPage.algoliaLabel",message:"Search by Algolia",description:"The ARIA label for Algolia mention"}),children:(0,N.jsx)("svg",{viewBox:"0 0 168 24",className:O.algoliaLogo,children:(0,N.jsxs)("g",{fill:"none",children:[(0,N.jsx)("path",{className:O.algoliaLogoPathFill,d:"M120.925 18.804c-4.386.02-4.386-3.54-4.386-4.106l-.007-13.336 2.675-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-10.846-2.18c.821 0 1.43-.047 1.855-.129v-2.719a6.334 6.334 0 0 0-1.574-.199 5.7 5.7 0 0 0-.897.069 2.699 2.699 0 0 0-.814.24c-.24.116-.439.28-.582.491-.15.212-.219.335-.219.656 0 .628.219.991.616 1.23s.938.362 1.615.362zm-.233-9.7c.883 0 1.629.109 2.231.328.602.218 1.088.525 1.444.915.363.396.609.922.76 1.483.157.56.232 1.175.232 1.85v6.874a32.5 32.5 0 0 1-1.868.314c-.834.123-1.772.185-2.813.185-.69 0-1.327-.069-1.895-.198a4.001 4.001 0 0 1-1.471-.636 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.803 0-.656.13-1.073.384-1.525a3.24 3.24 0 0 1 1.047-1.106c.445-.287.95-.492 1.532-.615a8.8 8.8 0 0 1 1.82-.185 8.404 8.404 0 0 1 1.972.24v-.438c0-.307-.035-.6-.11-.874a1.88 1.88 0 0 0-.384-.73 1.784 1.784 0 0 0-.724-.493 3.164 3.164 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.735 7.735 0 0 0-1.26.307l-.321-2.192c.335-.117.834-.233 1.478-.349a10.98 10.98 0 0 1 2.073-.178zm52.842 9.626c.822 0 1.43-.048 1.854-.13V13.7a6.347 6.347 0 0 0-1.574-.199c-.294 0-.595.021-.896.069a2.7 2.7 0 0 0-.814.24 1.46 1.46 0 0 0-.582.491c-.15.212-.218.335-.218.656 0 .628.218.991.615 1.23.404.245.938.362 1.615.362zm-.226-9.694c.883 0 1.629.108 2.231.327.602.219 1.088.526 1.444.915.355.39.609.923.759 1.483a6.8 6.8 0 0 1 .233 1.852v6.873c-.41.088-1.034.19-1.868.314-.834.123-1.772.184-2.813.184-.69 0-1.327-.068-1.895-.198a4.001 4.001 0 0 1-1.471-.635 3.085 3.085 0 0 1-.951-1.134c-.226-.465-.343-1.12-.343-1.804 0-.656.13-1.073.384-1.524.26-.45.608-.82 1.047-1.107.445-.286.95-.491 1.532-.614a8.803 8.803 0 0 1 2.751-.13c.329.034.671.096 1.04.185v-.437a3.3 3.3 0 0 0-.109-.875 1.873 1.873 0 0 0-.384-.731 1.784 1.784 0 0 0-.724-.492 3.165 3.165 0 0 0-1.143-.205c-.616 0-1.177.075-1.69.164a7.75 7.75 0 0 0-1.26.307l-.321-2.193c.335-.116.834-.232 1.478-.348a11.633 11.633 0 0 1 2.073-.177zm-8.034-1.271a1.626 1.626 0 0 1-1.628-1.62c0-.895.725-1.62 1.628-1.62.904 0 1.63.725 1.63 1.62 0 .895-.733 1.62-1.63 1.62zm1.348 13.22h-2.689V7.27l2.69-.423v11.956zm-4.714 0c-4.386.02-4.386-3.54-4.386-4.107l-.008-13.336 2.676-.424v13.254c0 .322 0 2.358 1.718 2.364v2.248zm-8.698-5.903c0-1.156-.253-2.119-.746-2.788-.493-.677-1.183-1.01-2.067-1.01-.882 0-1.574.333-2.065 1.01-.493.676-.733 1.632-.733 2.788 0 1.168.246 1.953.74 2.63.492.683 1.183 1.018 2.066 1.018.882 0 1.574-.342 2.067-1.019.492-.683.738-1.46.738-2.63zm2.737-.007c0 .902-.13 1.584-.397 2.33a5.52 5.52 0 0 1-1.128 1.906 4.986 4.986 0 0 1-1.752 1.223c-.685.286-1.739.45-2.265.45-.528-.006-1.574-.157-2.252-.45a5.096 5.096 0 0 1-1.744-1.223c-.487-.527-.863-1.162-1.137-1.906a6.345 6.345 0 0 1-.41-2.33c0-.902.123-1.77.397-2.508a5.554 5.554 0 0 1 1.15-1.892 5.133 5.133 0 0 1 1.75-1.216c.679-.287 1.425-.423 2.232-.423.808 0 1.553.142 2.237.423a4.88 4.88 0 0 1 1.753 1.216 5.644 5.644 0 0 1 1.135 1.892c.287.738.431 1.606.431 2.508zm-20.138 0c0 1.12.246 2.363.738 2.882.493.52 1.13.78 1.91.78.424 0 .828-.062 1.204-.178.377-.116.677-.253.917-.417V9.33a10.476 10.476 0 0 0-1.766-.226c-.971-.028-1.71.37-2.23 1.004-.513.636-.773 1.75-.773 2.788zm7.438 5.274c0 1.824-.466 3.156-1.404 4.004-.936.846-2.367 1.27-4.296 1.27-.705 0-2.17-.137-3.34-.396l.431-2.118c.98.205 2.272.26 2.95.26 1.074 0 1.84-.219 2.299-.656.459-.437.684-1.086.684-1.948v-.437a8.07 8.07 0 0 1-1.047.397c-.43.13-.93.198-1.492.198-.739 0-1.41-.116-2.018-.349a4.206 4.206 0 0 1-1.567-1.025c-.431-.45-.774-1.017-1.013-1.694-.24-.677-.363-1.885-.363-2.773 0-.834.13-1.88.384-2.577.26-.696.629-1.298 1.129-1.796.493-.498 1.095-.881 1.8-1.162a6.605 6.605 0 0 1 2.428-.457c.87 0 1.67.109 2.45.24.78.129 1.444.265 1.985.415V18.17zM6.972 6.677v1.627c-.712-.446-1.52-.67-2.425-.67-.585 0-1.045.13-1.38.391a1.24 1.24 0 0 0-.502 1.03c0 .425.164.765.494 1.02.33.256.835.532 1.516.83.447.192.795.356 1.045.495.25.138.537.332.862.582.324.25.563.548.718.894.154.345.23.741.23 1.188 0 .947-.334 1.691-1.004 2.234-.67.542-1.537.814-2.601.814-1.18 0-2.16-.229-2.936-.686v-1.708c.84.628 1.814.942 2.92.942.585 0 1.048-.136 1.388-.407.34-.271.51-.646.51-1.125 0-.287-.1-.55-.302-.79-.203-.24-.42-.42-.655-.542-.234-.123-.585-.29-1.053-.503a61.27 61.27 0 0 1-.582-.271 13.67 13.67 0 0 1-.55-.287 4.275 4.275 0 0 1-.567-.351 6.92 6.92 0 0 1-.455-.4c-.18-.17-.31-.34-.39-.51-.08-.17-.155-.37-.224-.598a2.553 2.553 0 0 1-.104-.742c0-.915.333-1.638.998-2.17.664-.532 1.523-.798 2.576-.798.968 0 1.793.17 2.473.51zm7.468 5.696v-.287c-.022-.607-.187-1.088-.495-1.444-.309-.357-.75-.535-1.324-.535-.532 0-.99.194-1.373.583-.382.388-.622.949-.717 1.683h3.909zm1.005 2.792v1.404c-.596.34-1.383.51-2.362.51-1.255 0-2.255-.377-3-1.132-.744-.755-1.116-1.744-1.116-2.968 0-1.297.34-2.316 1.021-3.055.68-.74 1.548-1.11 2.6-1.11 1.033 0 1.852.323 2.458.966.606.644.91 1.572.91 2.784 0 .33-.033.676-.096 1.038h-5.314c.107.702.405 1.239.894 1.611.49.372 1.106.558 1.85.558.862 0 1.58-.202 2.155-.606zm6.605-1.77h-1.212c-.596 0-1.045.116-1.349.35-.303.234-.454.532-.454.894 0 .372.117.664.35.877.235.213.575.32 1.022.32.51 0 .912-.142 1.204-.424.293-.281.44-.651.44-1.108v-.91zm-4.068-2.554V9.325c.627-.361 1.457-.542 2.489-.542 2.116 0 3.175 1.026 3.175 3.08V17h-1.548v-.957c-.415.68-1.143 1.02-2.186 1.02-.766 0-1.38-.22-1.843-.661-.462-.442-.694-1.003-.694-1.684 0-.776.293-1.38.878-1.81.585-.431 1.404-.647 2.457-.647h1.34V11.8c0-.554-.133-.971-.399-1.253-.266-.282-.707-.423-1.324-.423a4.07 4.07 0 0 0-2.345.718zm9.333-1.93v1.42c.394-1 1.101-1.5 2.123-1.5.148 0 .313.016.494.048v1.531a1.885 1.885 0 0 0-.75-.143c-.542 0-.989.24-1.34.718-.351.479-.527 1.048-.527 1.707V17h-1.563V8.91h1.563zm5.01 4.084c.022.82.272 1.492.75 2.019.479.526 1.15.79 2.01.79.639 0 1.235-.176 1.788-.527v1.404c-.521.319-1.186.479-1.995.479-1.265 0-2.276-.4-3.031-1.197-.755-.798-1.133-1.792-1.133-2.984 0-1.16.38-2.151 1.14-2.975.761-.825 1.79-1.237 3.088-1.237.702 0 1.346.149 1.93.447v1.436a3.242 3.242 0 0 0-1.77-.495c-.84 0-1.513.266-2.019.798-.505.532-.758 1.213-.758 2.042zM40.24 5.72v4.579c.458-1 1.293-1.5 2.505-1.5.787 0 1.42.245 1.899.734.479.49.718 1.17.718 2.042V17h-1.564v-5.106c0-.553-.14-.98-.422-1.284-.282-.303-.652-.455-1.11-.455-.531 0-1.002.202-1.411.606-.41.405-.615 1.022-.615 1.851V17h-1.563V5.72h1.563zm14.966 10.02c.596 0 1.096-.253 1.5-.758.404-.506.606-1.157.606-1.955 0-.915-.202-1.62-.606-2.114-.404-.495-.92-.742-1.548-.742-.553 0-1.05.224-1.491.67-.442.447-.662 1.133-.662 2.058 0 .958.212 1.67.638 2.138.425.469.946.703 1.563.703zM53.004 5.72v4.42c.574-.894 1.388-1.341 2.44-1.341 1.022 0 1.857.383 2.506 1.149.649.766.973 1.781.973 3.047 0 1.138-.309 2.109-.925 2.912-.617.803-1.463 1.205-2.537 1.205-1.075 0-1.894-.447-2.457-1.34V17h-1.58V5.72h1.58zm9.908 11.104l-3.223-7.913h1.739l1.005 2.632 1.26 3.415c.096-.32.48-1.458 1.15-3.415l.909-2.632h1.66l-2.92 7.866c-.777 2.074-1.963 3.11-3.559 3.11a2.92 2.92 0 0 1-.734-.079v-1.34c.17.042.351.064.543.064 1.032 0 1.755-.57 2.17-1.708z"}),(0,N.jsx)("path",{fill:"#5468FF",d:"M78.988.938h16.594a2.968 2.968 0 0 1 2.966 2.966V20.5a2.967 2.967 0 0 1-2.966 2.964H78.988a2.967 2.967 0 0 1-2.966-2.964V3.897A2.961 2.961 0 0 1 78.988.938z"}),(0,N.jsx)("path",{fill:"white",d:"M89.632 5.967v-.772a.978.978 0 0 0-.978-.977h-2.28a.978.978 0 0 0-.978.977v.793c0 .088.082.15.171.13a7.127 7.127 0 0 1 1.984-.28c.65 0 1.295.088 1.917.259.082.02.164-.04.164-.13m-6.248 1.01l-.39-.389a.977.977 0 0 0-1.382 0l-.465.465a.973.973 0 0 0 0 1.38l.383.383c.062.061.15.047.205-.014.226-.307.472-.601.746-.874.281-.28.568-.526.883-.751.068-.042.075-.137.02-.2m4.16 2.453v3.341c0 .096.104.165.192.117l2.97-1.537c.068-.034.089-.117.055-.184a3.695 3.695 0 0 0-3.08-1.866c-.068 0-.136.054-.136.13m0 8.048a4.489 4.489 0 0 1-4.49-4.482 4.488 4.488 0 0 1 4.49-4.482 4.488 4.488 0 0 1 4.489 4.482 4.484 4.484 0 0 1-4.49 4.482m0-10.85a6.363 6.363 0 1 0 0 12.729 6.37 6.37 0 0 0 6.372-6.368 6.358 6.358 0 0 0-6.371-6.36"})]})})})})]}),H.items.length>0?(0,N.jsx)("main",{children:H.items.map(((e,t)=>{let{title:r,url:n,summary:s,breadcrumbs:a}=e;return(0,N.jsxs)("article",{className:O.searchResultItem,children:[(0,N.jsx)(w.Z,{as:"h2",className:O.searchResultItemHeading,children:(0,N.jsx)(f.Z,{to:n,dangerouslySetInnerHTML:{__html:r}})}),a.length>0&&(0,N.jsx)("nav",{"aria-label":"breadcrumbs",children:(0,N.jsx)("ul",{className:(0,i.Z)("breadcrumbs",O.searchResultItemPath),children:a.map(((e,t)=>(0,N.jsx)("li",{className:"breadcrumbs__item",dangerouslySetInnerHTML:{__html:e}},t)))})}),s&&(0,N.jsx)("p",{className:O.searchResultItemSummary,dangerouslySetInnerHTML:{__html:s}})]},t)}))}):[v&&!H.loading&&(0,N.jsx)("p",{children:(0,N.jsx)(P.Z,{id:"theme.SearchPage.noResultsText",description:"The paragraph for empty search result",children:"No results were found"})},"no-results"),!!H.loading&&(0,N.jsx)("div",{className:O.loadingSpinner},"spinner")],H.hasMore&&(0,N.jsx)("div",{className:O.loader,ref:I,children:(0,N.jsx)(P.Z,{id:"theme.SearchPage.fetchingNewResults",description:"The paragraph for fetching new search results",children:"Fetching new results..."})})]})]})}function S(){return(0,N.jsx)(b.FG,{className:"search-page-wrapper",children:(0,N.jsx)(H,{})})}}}]); \ No newline at end of file diff --git a/assets/js/1a4e3797.c412f7db.js.LICENSE.txt b/assets/js/1a4e3797.c412f7db.js.LICENSE.txt deleted file mode 100644 index 7c6390ff..00000000 --- a/assets/js/1a4e3797.c412f7db.js.LICENSE.txt +++ /dev/null @@ -1 +0,0 @@ -/*! algoliasearch-lite.umd.js | 4.18.0 | © Algolia, inc. | https://github.com/algolia/algoliasearch-client-javascript */ diff --git a/assets/js/1a8cd603.865f64f7.js b/assets/js/1a8cd603.865f64f7.js deleted file mode 100644 index 3dbf103e..00000000 --- a/assets/js/1a8cd603.865f64f7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4522],{5876:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>p,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var o=n(5893),i=n(1151);const a={sidebar_position:6,title:"Hooks"},s=void 0,r={unversionedId:"navigation/hooks",id:"navigation/hooks",title:"Hooks",description:"Content",source:"@site/docs/navigation/hooks.md",sourceDirName:"navigation",slug:"/navigation/hooks",permalink:"/react-native-template-strong/docs/navigation/hooks",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/hooks.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Hooks"},sidebar:"tutorialSidebar",previous:{title:"Overlays and modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals"},next:{title:"Actions",permalink:"/react-native-template-strong/docs/navigation/actions"}},c={},d=[{value:"Content",id:"content",level:2}];function l(t){const e=Object.assign({h2:"h2",p:"p",a:"a",admonition:"admonition",code:"code",pre:"pre"},(0,i.ah)(),t.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(e.p,{children:["React Native Navigation offers its own event handling using but for convenience it's advisable to use ",(0,o.jsx)(e.a,{href:"https://underscopeio.github.io/react-native-navigation-hooks/docs/before-you-start",children:"React Native Navigation Hooks"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It's already installed in this template."}),"\n",(0,o.jsx)(e.p,{children:"Check it out how it works and what it offers."}),"\n",(0,o.jsxs)(e.admonition,{title:"Tip",type:"tip",children:[(0,o.jsxs)(e.p,{children:["When using navigation hooks don't use ",(0,o.jsx)(e.code,{children:"NavigationProvider"})," and ",(0,o.jsx)(e.code,{children:"withNavigationProvider"}),", better supply it with ",(0,o.jsx)(e.code,{children:"componentId"}),":"]}),(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"import { useNavigationComponentDidAppear } from 'react-native-navigation-hooks'\n\nconst ExampleScreen = ({ componentId }) => {\n useNavigationComponentDidAppear(\n (e) => {\n console.warn(`${e.componentName} appeared`)\n },\n { componentId }\n )\n\n return Example Screen\n}\n"})})]})]})}const p=function(t={}){const{wrapper:e}=Object.assign({},(0,i.ah)(),t.components);return e?(0,o.jsx)(e,Object.assign({},t,{children:(0,o.jsx)(l,t)})):l(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>r,ah:()=>a});var o=n(7294);const i=o.createContext({});function a(t){const e=o.useContext(i);return o.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const s={};function r({components:t,children:e,disableParentContext:n}){let r;return r=n?"function"==typeof t?t({}):t||s:a(t),o.createElement(i.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/1a8cd603.dcfc27cd.js b/assets/js/1a8cd603.dcfc27cd.js new file mode 100644 index 00000000..de238cb0 --- /dev/null +++ b/assets/js/1a8cd603.dcfc27cd.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4522],{5876:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>l,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var o=n(5893),i=n(1151);const a={sidebar_position:6,title:"Hooks"},s=void 0,r={id:"navigation/hooks",title:"Hooks",description:"Content",source:"@site/docs/navigation/hooks.md",sourceDirName:"navigation",slug:"/navigation/hooks",permalink:"/react-native-template-strong/docs/navigation/hooks",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/hooks.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Hooks"},sidebar:"tutorialSidebar",previous:{title:"Overlays and modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals"},next:{title:"Actions",permalink:"/react-native-template-strong/docs/navigation/actions"}},c={},d=[{value:"Content",id:"content",level:2}];function p(t){const e={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(e.p,{children:["React Native Navigation offers its own event handling using but for convenience it's advisable to use ",(0,o.jsx)(e.a,{href:"https://underscopeio.github.io/react-native-navigation-hooks/docs/before-you-start",children:"React Native Navigation Hooks"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"It's already installed in this template."}),"\n",(0,o.jsx)(e.p,{children:"Check it out how it works and what it offers."}),"\n",(0,o.jsxs)(e.admonition,{title:"Tip",type:"tip",children:[(0,o.jsxs)(e.p,{children:["When using navigation hooks don't use ",(0,o.jsx)(e.code,{children:"NavigationProvider"})," and ",(0,o.jsx)(e.code,{children:"withNavigationProvider"}),", better supply it with ",(0,o.jsx)(e.code,{children:"componentId"}),":"]}),(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"import { useNavigationComponentDidAppear } from 'react-native-navigation-hooks'\n\nconst ExampleScreen = ({ componentId }) => {\n useNavigationComponentDidAppear(\n (e) => {\n console.warn(`${e.componentName} appeared`)\n },\n { componentId }\n )\n\n return Example Screen\n}\n"})})]})]})}function l(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>r,a:()=>s});var o=n(7294);const i={},a=o.createContext(i);function s(t){const e=o.useContext(a);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:s(t.components),o.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.0c57f37a.js b/assets/js/1df93b7f.0c57f37a.js deleted file mode 100644 index 1a56364c..00000000 --- a/assets/js/1df93b7f.0c57f37a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3237],{8368:(e,t,s)=>{s.r(t),s.d(t,{default:()=>m});s(7294);var i=s(6010),n=s(7452),r=s(9960),a=s(2263);const o={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"},c={features:"features_xdhU",featureSvg:"featureSvg__8YW"};var d=s(5893);function l(e){let{title:t,image:s,description:n}=e;return(0,d.jsxs)("div",{className:(0,i.Z)("col col--4"),children:[(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("img",{className:c.featureSvg,alt:t,src:s})}),(0,d.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,d.jsx)("h3",{children:t}),(0,d.jsx)("p",{children:n})]})]})}function h(){return(0,d.jsx)("section",{className:c.features,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(l,{title:"Strong set of dependencies",image:"img/home_feature_one.png",description:(0,d.jsxs)(d.Fragment,{children:["Build primarily with ",(0,d.jsx)("b",{children:"React Native Navigation, Redux Toolkit and TypeScript"}),". And other day-to-day useful dependencies."]})}),(0,d.jsx)(l,{title:"More than just a template",image:"img/home_feature_two.svg",description:(0,d.jsx)(d.Fragment,{children:"Keep it simple stupid, test and component driven development, documentation and guides make it easy to use."})}),(0,d.jsx)(l,{title:"Together we are stronger",image:"img/home_feature_three.svg",description:(0,d.jsx)(d.Fragment,{children:"New feature, bug or issue? Participate in the development to make this template better for you and others."})})]})})})}function u(){const{siteConfig:e}=(0,a.Z)();return(0,d.jsx)("header",{className:(0,i.Z)("hero hero--primary",o.heroBanner),children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("img",{alt:e.title,src:"img/logo.svg"}),(0,d.jsx)("h1",{className:"hero__title",children:e.title}),(0,d.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,d.jsx)("div",{className:o.buttons,children:(0,d.jsx)(r.Z,{className:"button button--secondary button--lg",to:"/docs/getting-started",children:"Get started"})})]})})}function m(){return(0,d.jsxs)(n.Z,{title:"Welcome",description:"Quick, opinionated, documented and strong beginning for your next project",children:[(0,d.jsx)(u,{}),(0,d.jsx)("main",{children:(0,d.jsx)(h,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/1df93b7f.658fb023.js b/assets/js/1df93b7f.658fb023.js new file mode 100644 index 00000000..0b8c7911 --- /dev/null +++ b/assets/js/1df93b7f.658fb023.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3237],{8368:(e,t,s)=>{s.r(t),s.d(t,{default:()=>m});var i=s(512),n=s(7372),r=s(3692),a=s(2263);const o={heroBanner:"heroBanner_qdFl",buttons:"buttons_AeoN"};s(7294);const c={features:"features_xdhU",featureSvg:"featureSvg__8YW"};var d=s(5893);function l(e){let{title:t,image:s,description:n}=e;return(0,d.jsxs)("div",{className:(0,i.Z)("col col--4"),children:[(0,d.jsx)("div",{className:"text--center",children:(0,d.jsx)("img",{className:c.featureSvg,alt:t,src:s})}),(0,d.jsxs)("div",{className:"text--center padding-horiz--md",children:[(0,d.jsx)("h3",{children:t}),(0,d.jsx)("p",{children:n})]})]})}function h(){return(0,d.jsx)("section",{className:c.features,children:(0,d.jsx)("div",{className:"container",children:(0,d.jsxs)("div",{className:"row",children:[(0,d.jsx)(l,{title:"Strong set of dependencies",image:"img/home_feature_one.png",description:(0,d.jsxs)(d.Fragment,{children:["Build primarily with ",(0,d.jsx)("b",{children:"React Native Navigation, Redux Toolkit and TypeScript"}),". And other day-to-day useful dependencies."]})}),(0,d.jsx)(l,{title:"More than just a template",image:"img/home_feature_two.svg",description:(0,d.jsx)(d.Fragment,{children:"Keep it simple stupid, test and component driven development, documentation and guides make it easy to use."})}),(0,d.jsx)(l,{title:"Together we are stronger",image:"img/home_feature_three.svg",description:(0,d.jsx)(d.Fragment,{children:"New feature, bug or issue? Participate in the development to make this template better for you and others."})})]})})})}function u(){const{siteConfig:e}=(0,a.Z)();return(0,d.jsx)("header",{className:(0,i.Z)("hero hero--primary",o.heroBanner),children:(0,d.jsxs)("div",{className:"container",children:[(0,d.jsx)("img",{alt:e.title,src:"img/logo.svg"}),(0,d.jsx)("h1",{className:"hero__title",children:e.title}),(0,d.jsx)("p",{className:"hero__subtitle",children:e.tagline}),(0,d.jsx)("div",{className:o.buttons,children:(0,d.jsx)(r.Z,{className:"button button--secondary button--lg",to:"/docs/getting-started",children:"Get started"})})]})})}function m(){return(0,d.jsxs)(n.Z,{title:"Welcome",description:"Quick, opinionated, documented and strong beginning for your next project",children:[(0,d.jsx)(u,{}),(0,d.jsx)("main",{children:(0,d.jsx)(h,{})})]})}}}]); \ No newline at end of file diff --git a/assets/js/1e5d5012.5e888884.js b/assets/js/1e5d5012.5e888884.js new file mode 100644 index 00000000..b53678fe --- /dev/null +++ b/assets/js/1e5d5012.5e888884.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4942],{0:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>d});var r=n(5893),s=n(1151);const l={sidebar_position:4,title:"FlatListWrapper"},i=void 0,a={id:"components/flat-list-wrapper",title:"FlatListWrapper",description:"Content",source:"@site/docs/components/flat-list-wrapper.md",sourceDirName:"components",slug:"/components/flat-list-wrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/flat-list-wrapper.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"FlatListWrapper"},sidebar:"tutorialSidebar",previous:{title:"Separator",permalink:"/react-native-template-strong/docs/components/separator"},next:{title:"SectionListWrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper"}},o={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Wrapper around ",(0,r.jsx)(t.code,{children:"FlatList"})," which operates based on provided ",(0,r.jsx)(t.code,{children:"LoadState"})," and shows appropriate data."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.p,{children:["Extends ",(0,r.jsx)(t.code,{children:"FlatListProps"})," and additionally adds next properties"]}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"loadState"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"LoadState"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Load state"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"tryAgain"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Action callback which occurs when pressing on Try Again"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"error"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"string or null"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"localization.errors.listErrorTitle"})}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["Error text which will be shown to user in case if ",(0,r.jsx)(t.code,{children:"loadState == LoadState.error"})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return (\n }\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n keyExtractor={orderKeyExtractor}\n />\n);\n"})})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var r=n(7294);const s={},l=r.createContext(s);function i(e){const t=r.useContext(l);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),r.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1e5d5012.a03dfdce.js b/assets/js/1e5d5012.a03dfdce.js deleted file mode 100644 index f6559391..00000000 --- a/assets/js/1e5d5012.a03dfdce.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4942],{0:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>o});var r=n(5893),a=n(1151);const s={sidebar_position:4,title:"FlatListWrapper"},i=void 0,l={unversionedId:"components/flat-list-wrapper",id:"components/flat-list-wrapper",title:"FlatListWrapper",description:"Content",source:"@site/docs/components/flat-list-wrapper.md",sourceDirName:"components",slug:"/components/flat-list-wrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/flat-list-wrapper.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"FlatListWrapper"},sidebar:"tutorialSidebar",previous:{title:"Separator",permalink:"/react-native-template-strong/docs/components/separator"},next:{title:"SectionListWrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper"}},d={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,a.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Wrapper around ",(0,r.jsx)(t.code,{children:"FlatList"})," which operates based on provided ",(0,r.jsx)(t.code,{children:"LoadState"})," and shows appropriate data."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.p,{children:["Extends ",(0,r.jsx)(t.code,{children:"FlatListProps"})," and additionally adds next properties"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{align:"left",children:"Name"}),(0,r.jsx)(t.th,{align:"left",children:"Type"}),(0,r.jsx)(t.th,{align:"left",children:"Required"}),(0,r.jsx)(t.th,{align:"left",children:"Default value"}),(0,r.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"loadState"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"LoadState"})}),(0,r.jsx)(t.td,{align:"left",children:"True"}),(0,r.jsx)(t.td,{align:"left",children:"-"}),(0,r.jsx)(t.td,{align:"left",children:"Load state"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"tryAgain"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:"Undefined"}),(0,r.jsx)(t.td,{align:"left",children:"Action callback which occurs when pressing on Try Again"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"error"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"string or null"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"localization.errors.listErrorTitle"})}),(0,r.jsxs)(t.td,{align:"left",children:["Error text which will be shown to user in case if ",(0,r.jsx)(t.code,{children:"loadState == LoadState.error"})]})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return (\n }\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n keyExtractor={orderKeyExtractor}\n />\n);\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>s});var r=n(7294);const a=r.createContext({});function s(e){const t=r.useContext(a);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||i:s(e),r.createElement(a.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/1f05955d.007fdd68.js b/assets/js/1f05955d.007fdd68.js new file mode 100644 index 00000000..9b3c853d --- /dev/null +++ b/assets/js/1f05955d.007fdd68.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9301],{5413:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>i});var o=s(5893),n=s(1151);const r={sidebar_position:2,title:"Common styles"},c=void 0,l={id:"styles/common-styles",title:"Common styles",description:"Content",source:"@site/docs/styles/common-styles.md",sourceDirName:"styles",slug:"/styles/common-styles",permalink:"/react-native-template-strong/docs/styles/common-styles",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/common-styles.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Common styles"},sidebar:"tutorialSidebar",previous:{title:"Component styles",permalink:"/react-native-template-strong/docs/styles/component-styles"},next:{title:"Common sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes"}},a={},i=[{value:"Content",id:"content",level:2}];function d(e){const t={code:"code",h2:"h2",p:"p",...(0,n.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["There are some styles that you have to create, but they look the same, to save some time and decrease the amount of unwanted code,\n",(0,o.jsx)(t.code,{children:"CommonStyles"})," were created to solve this problem."]}),"\n",(0,o.jsxs)(t.p,{children:["They are located at ",(0,o.jsx)(t.code,{children:"/src/core/theme/commonStyles.ts"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["They hold mostly used styles like ",(0,o.jsx)(t.code,{children:"flex: 1"}),", use them like you use any other style."]}),"\n",(0,o.jsx)(t.p,{children:"And add your own styles which are reused around your project a lot."})]})}function m(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>l,a:()=>c});var o=s(7294);const n={},r=o.createContext(n);function c(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:c(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/1f05955d.2196fa80.js b/assets/js/1f05955d.2196fa80.js deleted file mode 100644 index acc6edd2..00000000 --- a/assets/js/1f05955d.2196fa80.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9301],{5413:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>c,default:()=>m,frontMatter:()=>r,metadata:()=>l,toc:()=>i});var o=s(5893),n=s(1151);const r={sidebar_position:2,title:"Common styles"},c=void 0,l={unversionedId:"styles/common-styles",id:"styles/common-styles",title:"Common styles",description:"Content",source:"@site/docs/styles/common-styles.md",sourceDirName:"styles",slug:"/styles/common-styles",permalink:"/react-native-template-strong/docs/styles/common-styles",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/common-styles.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Common styles"},sidebar:"tutorialSidebar",previous:{title:"Component styles",permalink:"/react-native-template-strong/docs/styles/component-styles"},next:{title:"Common sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes"}},a={},i=[{value:"Content",id:"content",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",code:"code"},(0,n.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["There are some styles that you have to create, but they look the same, to save some time and decrease the amount of unwanted code,\n",(0,o.jsx)(t.code,{children:"CommonStyles"})," were created to solve this problem."]}),"\n",(0,o.jsxs)(t.p,{children:["They are located at ",(0,o.jsx)(t.code,{children:"/src/core/theme/commonStyles.ts"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["They hold mostly used styles like ",(0,o.jsx)(t.code,{children:"flex: 1"}),", use them like you use any other style."]}),"\n",(0,o.jsx)(t.p,{children:"And add your own styles which are reused around your project a lot."})]})}const m=function(e={}){const{wrapper:t}=Object.assign({},(0,n.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>l,ah:()=>r});var o=s(7294);const n=o.createContext({});function r(e){const t=o.useContext(n);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const c={};function l({components:e,children:t,disableParentContext:s}){let l;return l=s?"function"==typeof e?e({}):e||c:r(e),o.createElement(n.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.6343aa54.js b/assets/js/1f391b9e.6343aa54.js deleted file mode 100644 index 8ba05621..00000000 --- a/assets/js/1f391b9e.6343aa54.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3085],{4247:(e,a,s)=>{s.r(a),s.d(a,{default:()=>x});s(7294);var i=s(6010),t=s(833),n=s(5281),r=s(7452),c=s(5814),l=s(9407),d=s(2212);const o={mdxPageWrapper:"mdxPageWrapper_j9I6"};var m=s(5893);function x(e){const{content:a}=e,{metadata:{title:s,description:x,frontMatter:g,unlisted:p},assets:h}=a,{keywords:j,wrapperClassName:v,hide_table_of_contents:_}=g,u=h.image??g.image;return(0,m.jsx)(t.FG,{className:(0,i.Z)(v??n.k.wrapper.mdxPages,n.k.page.mdxPage),children:(0,m.jsxs)(r.Z,{children:[(0,m.jsx)(t.d,{title:s,description:x,keywords:j,image:u}),(0,m.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,m.jsxs)("div",{className:(0,i.Z)("row",o.mdxPageWrapper),children:[(0,m.jsxs)("div",{className:(0,i.Z)("col",!_&&"col--8"),children:[p&&(0,m.jsx)(d.Z,{}),(0,m.jsx)("article",{children:(0,m.jsx)(c.Z,{children:(0,m.jsx)(a,{})})})]}),!_&&a.toc.length>0&&(0,m.jsx)("div",{className:"col col--2",children:(0,m.jsx)(l.Z,{toc:a.toc,minHeadingLevel:g.toc_min_heading_level,maxHeadingLevel:g.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/assets/js/1f391b9e.e1786e1b.js b/assets/js/1f391b9e.e1786e1b.js new file mode 100644 index 00000000..5e7a6488 --- /dev/null +++ b/assets/js/1f391b9e.e1786e1b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3085],{4247:(e,a,s)=>{s.r(a),s.d(a,{default:()=>x});s(7294);var i=s(512),t=s(833),n=s(5281),r=s(7372),c=s(9206),l=s(9407),d=s(2212);const o={mdxPageWrapper:"mdxPageWrapper_j9I6"};var m=s(5893);function x(e){const{content:a}=e,{metadata:{title:s,description:x,frontMatter:g,unlisted:p},assets:h}=a,{keywords:j,wrapperClassName:v,hide_table_of_contents:_}=g,u=h.image??g.image;return(0,m.jsx)(t.FG,{className:(0,i.Z)(v??n.k.wrapper.mdxPages,n.k.page.mdxPage),children:(0,m.jsxs)(r.Z,{children:[(0,m.jsx)(t.d,{title:s,description:x,keywords:j,image:u}),(0,m.jsx)("main",{className:"container container--fluid margin-vert--lg",children:(0,m.jsxs)("div",{className:(0,i.Z)("row",o.mdxPageWrapper),children:[(0,m.jsxs)("div",{className:(0,i.Z)("col",!_&&"col--8"),children:[p&&(0,m.jsx)(d.Z,{}),(0,m.jsx)("article",{children:(0,m.jsx)(c.Z,{children:(0,m.jsx)(a,{})})})]}),!_&&a.toc.length>0&&(0,m.jsx)("div",{className:"col col--2",children:(0,m.jsx)(l.Z,{toc:a.toc,minHeadingLevel:g.toc_min_heading_level,maxHeadingLevel:g.toc_max_heading_level})})]})})]})})}}}]); \ No newline at end of file diff --git a/assets/js/1fd605f7.cf33b52f.js b/assets/js/1fd605f7.cf33b52f.js deleted file mode 100644 index 2ca245e3..00000000 --- a/assets/js/1fd605f7.cf33b52f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5803],{244:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=t(5893),a=t(1151);const o={title:"FAQ"},s="FAQ",r={type:"mdx",permalink:"/react-native-template-strong/faq",source:"@site/src/pages/faq.md",title:"FAQ",description:"Why react-native-navigation and not react-navigation?",frontMatter:{title:"FAQ"},unlisted:!1},l={},d=[{value:"Why react-native-navigation and not react-navigation?",id:"why-react-native-navigation-and-not-react-navigation",level:2},{value:"Why react-native-localization and not i18n?",id:"why-react-native-localization-and-not-i18n",level:2},{value:"Why Redux and not MobX/Context/Apollo?",id:"why-redux-and-not-mobxcontextapollo",level:2},{value:"Why TypeScript?",id:"why-typescript",level:2},{value:"Why not Expo?",id:"why-not-expo",level:2},{value:"Why not use Tailwind for styles?",id:"why-not-use-tailwind-for-styles",level:2},{value:"Why minimum iOS 13 is minimum version?",id:"why-minimum-ios-13-is-minimum-version",level:2},{value:"Does it support macOS/Windows/Web/tvOS?",id:"does-it-support-macoswindowswebtvos",level:2},{value:"Why NPM and not Yarn?",id:"why-npm-and-not-yarn",level:2},{value:"Why there's no UI library?",id:"why-theres-no-ui-library",level:2},{value:"Why every dependency in package.json has stable version?",id:"why-every-dependency-in-packagejson-has-stable-version",level:2}];function h(e){const n=Object.assign({h1:"h1",h2:"h2",p:"p",ul:"ul",li:"li",a:"a"},(0,a.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"faq",children:"FAQ"}),"\n",(0,i.jsx)(n.h2,{id:"why-react-native-navigation-and-not-react-navigation",children:"Why react-native-navigation and not react-navigation?"}),"\n",(0,i.jsx)(n.p,{children:"There are several reasons:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Actually native"}),"\n",(0,i.jsx)(n.li,{children:"More native presets/components out of the box"}),"\n",(0,i.jsx)(n.li,{children:"Performance is better"}),"\n",(0,i.jsx)(n.li,{children:"RAM consumption is less significant (especially on old devices)"}),"\n",(0,i.jsx)(n.li,{children:"No need to include lots of additional dependencies to achieve the platform-like screens"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"why-react-native-localization-and-not-i18n",children:"Why react-native-localization and not i18n?"}),"\n",(0,i.jsx)(n.p,{children:"My primary reason is how i18n handles translation strings in combination with TypeScript.\nI can set a string in one language and abandon other languages, or I can use non-existent translation string,\nand I won't receive any errors."}),"\n",(0,i.jsx)(n.p,{children:"Additionally, it offers way too many features which aren't needed while developing mobile apps."}),"\n",(0,i.jsx)(n.p,{children:"While react-native-localization brings all what's needed and handles the before mentioned issue."}),"\n",(0,i.jsx)(n.h2,{id:"why-redux-and-not-mobxcontextapollo",children:"Why Redux and not MobX/Context/Apollo?"}),"\n",(0,i.jsx)(n.p,{children:"I believe that redux is the best choice as state management for every application size,\nit's the most mature one, has straightforward set of rules, gives almost full control of what's happening.\nWith RTK it became even easier to work with it."}),"\n",(0,i.jsx)(n.h2,{id:"why-typescript",children:"Why TypeScript?"}),"\n",(0,i.jsx)(n.p,{children:"TypeScript gives better reliability, easy to refactor, read, debug, fixes many errors before seeing them in runtime."}),"\n",(0,i.jsx)(n.h2,{id:"why-not-expo",children:"Why not Expo?"}),"\n",(0,i.jsx)(n.p,{children:"Not every dependency works with Expo, often times there's a need to change something in native code and that will be painful."}),"\n",(0,i.jsx)(n.h2,{id:"why-not-use-tailwind-for-styles",children:"Why not use Tailwind for styles?"}),"\n",(0,i.jsx)(n.p,{children:"I believe creating styles with StyleSheet is more than enough, and if used properly there won't be any need to use any other frameworks."}),"\n",(0,i.jsx)(n.h2,{id:"why-minimum-ios-13-is-minimum-version",children:"Why minimum iOS 13 is minimum version?"}),"\n",(0,i.jsxs)(n.p,{children:["I follow the 3 latest major versions approach when working with iOS, since most of the users update quickly.\nStatistics to provide detailed numbers: ",(0,i.jsx)(n.a,{href:"https://gs.statcounter.com/os-version-market-share/ios/mobile-tablet/worldwide",children:"statcounter"})]}),"\n",(0,i.jsx)(n.h2,{id:"does-it-support-macoswindowswebtvos",children:"Does it support macOS/Windows/Web/tvOS?"}),"\n",(0,i.jsx)(n.p,{children:"No, it doesn't, but I have plans to work with macOS, Windows and tvOS.\nAt this moment it works with iOS, iPadOS, Android and can work with Android TV (not tested)."}),"\n",(0,i.jsx)(n.h2,{id:"why-npm-and-not-yarn",children:"Why NPM and not Yarn?"}),"\n",(0,i.jsx)(n.p,{children:"NPM updates regularly and improves in terms of speed and quality, while Yarn has different versions with major differences."}),"\n",(0,i.jsx)(n.h2,{id:"why-theres-no-ui-library",children:"Why there's no UI library?"}),"\n",(0,i.jsx)(n.p,{children:"There are lots of UI libraries out there and there are different opinions/likings, so you can install the one you like.\nI, personally don't like the idea of using UI libraries since it's harder to update them,\nand sometimes they are hard to modify to one's likings, as for me, it makes more sense to create UI components from the ground."}),"\n",(0,i.jsx)(n.h2,{id:"why-every-dependency-in-packagejson-has-stable-version",children:"Why every dependency in package.json has stable version?"}),"\n",(0,i.jsx)(n.p,{children:"To preserve the current state and neglect issues with new versions,\nI keep all dependencies stable and when there are updates I update manually (even patch fixes) to see what has been changed."})]})}const c=function(e={}){const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(h,e)})):h(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>r,ah:()=>o});var i=t(7294);const a=i.createContext({});function o(e){const n=i.useContext(a);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const s={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||s:o(e),i.createElement(a.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/1fd605f7.fcd66a2f.js b/assets/js/1fd605f7.fcd66a2f.js new file mode 100644 index 00000000..6edf0b98 --- /dev/null +++ b/assets/js/1fd605f7.fcd66a2f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5803],{244:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>s,default:()=>c,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var i=t(5893),a=t(1151);const o={title:"FAQ"},s="FAQ",r={type:"mdx",permalink:"/react-native-template-strong/faq",source:"@site/src/pages/faq.md",title:"FAQ",description:"Why react-native-navigation and not react-navigation?",frontMatter:{title:"FAQ"},unlisted:!1},l={},d=[{value:"Why react-native-navigation and not react-navigation?",id:"why-react-native-navigation-and-not-react-navigation",level:2},{value:"Why react-native-localization and not i18n?",id:"why-react-native-localization-and-not-i18n",level:2},{value:"Why Redux and not MobX/Context/Apollo?",id:"why-redux-and-not-mobxcontextapollo",level:2},{value:"Why TypeScript?",id:"why-typescript",level:2},{value:"Why not Expo?",id:"why-not-expo",level:2},{value:"Why not use Tailwind for styles?",id:"why-not-use-tailwind-for-styles",level:2},{value:"Why minimum iOS 13 is minimum version?",id:"why-minimum-ios-13-is-minimum-version",level:2},{value:"Does it support macOS/Windows/Web/tvOS?",id:"does-it-support-macoswindowswebtvos",level:2},{value:"Why NPM and not Yarn?",id:"why-npm-and-not-yarn",level:2},{value:"Why there's no UI library?",id:"why-theres-no-ui-library",level:2},{value:"Why every dependency in package.json has stable version?",id:"why-every-dependency-in-packagejson-has-stable-version",level:2}];function h(e){const n={a:"a",h1:"h1",h2:"h2",li:"li",p:"p",ul:"ul",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"faq",children:"FAQ"}),"\n",(0,i.jsx)(n.h2,{id:"why-react-native-navigation-and-not-react-navigation",children:"Why react-native-navigation and not react-navigation?"}),"\n",(0,i.jsx)(n.p,{children:"There are several reasons:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Actually native"}),"\n",(0,i.jsx)(n.li,{children:"More native presets/components out of the box"}),"\n",(0,i.jsx)(n.li,{children:"Performance is better"}),"\n",(0,i.jsx)(n.li,{children:"RAM consumption is less significant (especially on old devices)"}),"\n",(0,i.jsx)(n.li,{children:"No need to include lots of additional dependencies to achieve the platform-like screens"}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"why-react-native-localization-and-not-i18n",children:"Why react-native-localization and not i18n?"}),"\n",(0,i.jsx)(n.p,{children:"My primary reason is how i18n handles translation strings in combination with TypeScript.\nI can set a string in one language and abandon other languages, or I can use non-existent translation string,\nand I won't receive any errors."}),"\n",(0,i.jsx)(n.p,{children:"Additionally, it offers way too many features which aren't needed while developing mobile apps."}),"\n",(0,i.jsx)(n.p,{children:"While react-native-localization brings all what's needed and handles the before mentioned issue."}),"\n",(0,i.jsx)(n.h2,{id:"why-redux-and-not-mobxcontextapollo",children:"Why Redux and not MobX/Context/Apollo?"}),"\n",(0,i.jsx)(n.p,{children:"I believe that redux is the best choice as state management for every application size,\nit's the most mature one, has straightforward set of rules, gives almost full control of what's happening.\nWith RTK it became even easier to work with it."}),"\n",(0,i.jsx)(n.h2,{id:"why-typescript",children:"Why TypeScript?"}),"\n",(0,i.jsx)(n.p,{children:"TypeScript gives better reliability, easy to refactor, read, debug, fixes many errors before seeing them in runtime."}),"\n",(0,i.jsx)(n.h2,{id:"why-not-expo",children:"Why not Expo?"}),"\n",(0,i.jsx)(n.p,{children:"Not every dependency works with Expo, often times there's a need to change something in native code and that will be painful."}),"\n",(0,i.jsx)(n.h2,{id:"why-not-use-tailwind-for-styles",children:"Why not use Tailwind for styles?"}),"\n",(0,i.jsx)(n.p,{children:"I believe creating styles with StyleSheet is more than enough, and if used properly there won't be any need to use any other frameworks."}),"\n",(0,i.jsx)(n.h2,{id:"why-minimum-ios-13-is-minimum-version",children:"Why minimum iOS 13 is minimum version?"}),"\n",(0,i.jsxs)(n.p,{children:["I follow the 3 latest major versions approach when working with iOS, since most of the users update quickly.\nStatistics to provide detailed numbers: ",(0,i.jsx)(n.a,{href:"https://gs.statcounter.com/os-version-market-share/ios/mobile-tablet/worldwide",children:"statcounter"})]}),"\n",(0,i.jsx)(n.h2,{id:"does-it-support-macoswindowswebtvos",children:"Does it support macOS/Windows/Web/tvOS?"}),"\n",(0,i.jsx)(n.p,{children:"No, it doesn't, but I have plans to work with macOS, Windows and tvOS.\nAt this moment it works with iOS, iPadOS, Android and can work with Android TV (not tested)."}),"\n",(0,i.jsx)(n.h2,{id:"why-npm-and-not-yarn",children:"Why NPM and not Yarn?"}),"\n",(0,i.jsx)(n.p,{children:"NPM updates regularly and improves in terms of speed and quality, while Yarn has different versions with major differences."}),"\n",(0,i.jsx)(n.h2,{id:"why-theres-no-ui-library",children:"Why there's no UI library?"}),"\n",(0,i.jsx)(n.p,{children:"There are lots of UI libraries out there and there are different opinions/likings, so you can install the one you like.\nI, personally don't like the idea of using UI libraries since it's harder to update them,\nand sometimes they are hard to modify to one's likings, as for me, it makes more sense to create UI components from the ground."}),"\n",(0,i.jsx)(n.h2,{id:"why-every-dependency-in-packagejson-has-stable-version",children:"Why every dependency in package.json has stable version?"}),"\n",(0,i.jsx)(n.p,{children:"To preserve the current state and neglect issues with new versions,\nI keep all dependencies stable and when there are updates I update manually (even patch fixes) to see what has been changed."})]})}function c(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(h,{...e})}):h(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>s});var i=t(7294);const a={},o=i.createContext(a);function s(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:s(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/201c1feb.4a7826b0.js b/assets/js/201c1feb.4a7826b0.js deleted file mode 100644 index 57128e45..00000000 --- a/assets/js/201c1feb.4a7826b0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1186],{7210:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var r=n(5893),o=n(1151);const s={sidebar_position:2,title:"Core idea"},i=void 0,d={unversionedId:"redux/core-idea",id:"redux/core-idea",title:"Core idea",description:"Content",source:"@site/docs/redux/core-idea.md",sourceDirName:"redux",slug:"/redux/core-idea",permalink:"/react-native-template-strong/docs/redux/core-idea",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/core-idea.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Core idea"},sidebar:"tutorialSidebar",previous:{title:"Before starting",permalink:"/react-native-template-strong/docs/redux/before-starting"},next:{title:"Store",permalink:"/react-native-template-strong/docs/redux/store"}},a={},c=[{value:"Content",id:"content",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,o.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:['The core idea is to keep components as "stupid" as possible and connecting only pages to ',(0,r.jsx)(t.code,{children:"redux"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"This approach makes components easier to test and reuse and not bounding them to redux logic."}),"\n",(0,r.jsxs)(t.p,{children:["Only in some rare cases it might be needed to connect to ",(0,r.jsx)(t.code,{children:"redux"})," directly from components but other times it's better to provide props."]}),"\n",(0,r.jsxs)(t.p,{children:["So we're basically connecting pages where we would like to use ",(0,r.jsx)(t.code,{children:"redux"}),", like so:"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.splash, Splash, true);\n"})}),"\n",(0,r.jsxs)(t.p,{children:["And on the page we will be executing our logic with ",(0,r.jsx)(t.code,{children:"redux"})," what we need and getting data from it using ",(0,r.jsx)(t.code,{children:"useAppSelector"}),"."]}),"\n",(0,r.jsx)(t.p,{children:"And passing props down the tree if needed."})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>d,ah:()=>s});var r=n(7294);const o=r.createContext({});function s(e){const t=r.useContext(o);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function d({components:e,children:t,disableParentContext:n}){let d;return d=n?"function"==typeof e?e({}):e||i:s(e),r.createElement(o.Provider,{value:d},t)}}}]); \ No newline at end of file diff --git a/assets/js/201c1feb.9dfc12d5.js b/assets/js/201c1feb.9dfc12d5.js new file mode 100644 index 00000000..0c1d3d17 --- /dev/null +++ b/assets/js/201c1feb.9dfc12d5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1186],{7210:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var o=n(5893),r=n(1151);const s={sidebar_position:2,title:"Core idea"},i=void 0,d={id:"redux/core-idea",title:"Core idea",description:"Content",source:"@site/docs/redux/core-idea.md",sourceDirName:"redux",slug:"/redux/core-idea",permalink:"/react-native-template-strong/docs/redux/core-idea",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/core-idea.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Core idea"},sidebar:"tutorialSidebar",previous:{title:"Before starting",permalink:"/react-native-template-strong/docs/redux/before-starting"},next:{title:"Store",permalink:"/react-native-template-strong/docs/redux/store"}},a={},c=[{value:"Content",id:"content",level:2}];function l(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:['The core idea is to keep components as "stupid" as possible and connecting only pages to ',(0,o.jsx)(t.code,{children:"redux"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"This approach makes components easier to test and reuse and not bounding them to redux logic."}),"\n",(0,o.jsxs)(t.p,{children:["Only in some rare cases it might be needed to connect to ",(0,o.jsx)(t.code,{children:"redux"})," directly from components but other times it's better to provide props."]}),"\n",(0,o.jsxs)(t.p,{children:["So we're basically connecting pages where we would like to use ",(0,o.jsx)(t.code,{children:"redux"}),", like so:"]}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.splash, Splash, true);\n"})}),"\n",(0,o.jsxs)(t.p,{children:["And on the page we will be executing our logic with ",(0,o.jsx)(t.code,{children:"redux"})," what we need and getting data from it using ",(0,o.jsx)(t.code,{children:"useAppSelector"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"And passing props down the tree if needed."})]})}function p(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>i});var o=n(7294);const r={},s=o.createContext(r);function i(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2040cfe4.0965aba1.js b/assets/js/2040cfe4.0965aba1.js deleted file mode 100644 index 3dd97382..00000000 --- a/assets/js/2040cfe4.0965aba1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4012],{7111:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>l});var o=t(5893),s=t(1151);const a={sidebar_position:5,title:"Overlays and modals"},i=void 0,d={unversionedId:"navigation/overlays-and-modals",id:"navigation/overlays-and-modals",title:"Overlays and modals",description:"Content",source:"@site/docs/navigation/overlays-and-modals.md",sourceDirName:"navigation",slug:"/navigation/overlays-and-modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/overlays-and-modals.md",tags:[],version:"current",lastUpdatedAt:1695732655,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Overlays and modals"},sidebar:"tutorialSidebar",previous:{title:"Roots",permalink:"/react-native-template-strong/docs/navigation/roots"},next:{title:"Hooks",permalink:"/react-native-template-strong/docs/navigation/hooks"}},r={},l=[{value:"Content",id:"content",level:2},{value:"Pre-made components",id:"pre-made-components",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li"},(0,s.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(n.p,{children:"Overlays and modals are being added the same way as pages."}),"\n",(0,o.jsx)(n.h2,{id:"pre-made-components",children:"Pre-made components"}),"\n",(0,o.jsxs)(n.p,{children:["There are a couple of pre-made modals and overlays, they are located in ",(0,o.jsx)(n.code,{children:"src/navigation/helpers"}),"."]}),"\n",(0,o.jsxs)(n.ul,{children:["\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"showToast"})," - shows custom-made toast with supplied parameters."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"showStorybook"})," - shows ",(0,o.jsx)(n.code,{children:"StoryBook"})," while in debug (you can access it from dev menu by shaking your device)."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"showModal"})," - shows ",(0,o.jsx)(n.code,{children:"modal"})," on iOS and ",(0,o.jsx)(n.code,{children:"overlay"})," on Android with supplied options."]}),"\n",(0,o.jsxs)(n.li,{children:[(0,o.jsx)(n.code,{children:"showOnboarding"})," - iOS only way to show onboarding when user first time launches application to show him what's available in app as ",(0,o.jsx)(n.code,{children:"overlay"}),"."]}),"\n"]})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>d,ah:()=>a});var o=t(7294);const s=o.createContext({});function a(e){const n=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const i={};function d({components:e,children:n,disableParentContext:t}){let d;return d=t?"function"==typeof e?e({}):e||i:a(e),o.createElement(s.Provider,{value:d},n)}}}]); \ No newline at end of file diff --git a/assets/js/2040cfe4.489fd29d.js b/assets/js/2040cfe4.489fd29d.js new file mode 100644 index 00000000..aefacee1 --- /dev/null +++ b/assets/js/2040cfe4.489fd29d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4012],{7111:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>d,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var t=o(5893),s=o(1151);const a={sidebar_position:5,title:"Overlays and modals"},i=void 0,r={id:"navigation/overlays-and-modals",title:"Overlays and modals",description:"Content",source:"@site/docs/navigation/overlays-and-modals.md",sourceDirName:"navigation",slug:"/navigation/overlays-and-modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/overlays-and-modals.md",tags:[],version:"current",lastUpdatedAt:1695732655,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Overlays and modals"},sidebar:"tutorialSidebar",previous:{title:"Roots",permalink:"/react-native-template-strong/docs/navigation/roots"},next:{title:"Hooks",permalink:"/react-native-template-strong/docs/navigation/hooks"}},d={},l=[{value:"Content",id:"content",level:2},{value:"Pre-made components",id:"pre-made-components",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,t.jsx)(n.p,{children:"Overlays and modals are being added the same way as pages."}),"\n",(0,t.jsx)(n.h2,{id:"pre-made-components",children:"Pre-made components"}),"\n",(0,t.jsxs)(n.p,{children:["There are a couple of pre-made modals and overlays, they are located in ",(0,t.jsx)(n.code,{children:"src/navigation/helpers"}),"."]}),"\n",(0,t.jsxs)(n.ul,{children:["\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"showToast"})," - shows custom-made toast with supplied parameters."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"showStorybook"})," - shows ",(0,t.jsx)(n.code,{children:"StoryBook"})," while in debug (you can access it from dev menu by shaking your device)."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"showModal"})," - shows ",(0,t.jsx)(n.code,{children:"modal"})," on iOS and ",(0,t.jsx)(n.code,{children:"overlay"})," on Android with supplied options."]}),"\n",(0,t.jsxs)(n.li,{children:[(0,t.jsx)(n.code,{children:"showOnboarding"})," - iOS only way to show onboarding when user first time launches application to show him what's available in app as ",(0,t.jsx)(n.code,{children:"overlay"}),"."]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(c,{...e})}):c(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>r,a:()=>i});var t=o(7294);const s={},a=t.createContext(s);function i(e){const n=t.useContext(a);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),t.createElement(a.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2190081c.637ea007.js b/assets/js/2190081c.637ea007.js new file mode 100644 index 00000000..dc499216 --- /dev/null +++ b/assets/js/2190081c.637ea007.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8842],{4077:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var s=n(5893),o=n(1151);const r={sidebar_position:3,title:"useEventRegister"},i=void 0,a={id:"hooks/use-event-register",title:"useEventRegister",description:"Content",source:"@site/docs/hooks/use-event-register.md",sourceDirName:"hooks",slug:"/hooks/use-event-register",permalink:"/react-native-template-strong/docs/hooks/use-event-register",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-event-register.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"useEventRegister"},sidebar:"tutorialSidebar",previous:{title:"useDebounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce"},next:{title:"useBackHandler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler"}},c={},u=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t={h2:"h2",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"})]})}function l(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var s=n(7294);const o={},r=s.createContext(o);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2190081c.ef8b1520.js b/assets/js/2190081c.ef8b1520.js deleted file mode 100644 index 4d4cde22..00000000 --- a/assets/js/2190081c.ef8b1520.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8842],{4077:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var n=s(5893),o=s(1151);const r={sidebar_position:3,title:"useEventRegister"},i=void 0,a={unversionedId:"hooks/use-event-register",id:"hooks/use-event-register",title:"useEventRegister",description:"Content",source:"@site/docs/hooks/use-event-register.md",sourceDirName:"hooks",slug:"/hooks/use-event-register",permalink:"/react-native-template-strong/docs/hooks/use-event-register",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-event-register.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"useEventRegister"},sidebar:"tutorialSidebar",previous:{title:"useDebounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce"},next:{title:"useBackHandler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler"}},c={},u=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t=Object.assign({h2:"h2"},(0,o.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"})]})}const l=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(d,e)})):d(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>a,ah:()=>r});var n=s(7294);const o=n.createContext({});function r(e){const t=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function a({components:e,children:t,disableParentContext:s}){let a;return a=s?"function"==typeof e?e({}):e||i:r(e),n.createElement(o.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/26509314.b6616cc3.js b/assets/js/26509314.b6616cc3.js deleted file mode 100644 index 097e1793..00000000 --- a/assets/js/26509314.b6616cc3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6235],{188:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var o=r(5893),i=r(1151);const t={title:"Troubleshooting"},s="Troubleshooting",l={type:"mdx",permalink:"/react-native-template-strong/troubleshooting",source:"@site/src/pages/troubleshooting.md",title:"Troubleshooting",description:"npm ERR! Could not resolve dependency",frontMatter:{title:"Troubleshooting"},unlisted:!1},a={},d=[{value:"npm ERR! Could not resolve dependency",id:"npm-err-could-not-resolve-dependency",level:2},{value:"Error: Command failed: yarn install",id:"error-command-failed-yarn-install",level:2},{value:"ESLint: Error: Cannot read config file: .../.eslintrc.js",id:"eslint-error-cannot-read-config-file-eslintrcjs",level:2},{value:"npm ERR! command failed npm ERR! command sh -c husky install",id:"npm-err-command-failed-npm-err-command-sh--c-husky-install",level:2},{value:"nvm is not compatible with the "PREFIX" variable: currently set to "/usr/local"",id:"nvm-is-not-compatible-with-the-prefix-variable-currently-set-to-usrlocal",level:2},{value:"Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8",id:"android-gradle-plugin-requires-java-11-to-run-you-are-currently-using-java-18",level:2},{value:"Can't find your issue?",id:"cant-find-your-issue",level:2}];function c(e){const n=Object.assign({h1:"h1",h2:"h2",p:"p",code:"code",a:"a"},(0,i.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,o.jsx)(n.h2,{id:"npm-err-could-not-resolve-dependency",children:"npm ERR! Could not resolve dependency"}),"\n",(0,o.jsxs)(n.p,{children:["Some dependencies might have incorrect peer versions of other dependencies and NPM throws the error, in order to ignore it run\n",(0,o.jsx)(n.code,{children:"npm install --force"})]}),"\n",(0,o.jsx)(n.h2,{id:"error-command-failed-yarn-install",children:"Error: Command failed: yarn install"}),"\n",(0,o.jsxs)(n.p,{children:["The project uses ",(0,o.jsx)(n.code,{children:"npm"})," as package manager, and you're trying to use ",(0,o.jsx)(n.code,{children:"Yarn"}),",\nIt is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files.\nSimply run ",(0,o.jsx)(n.code,{children:"npm install"})," and use ",(0,o.jsx)(n.code,{children:"npm"})," version >= 6.14.13."]}),"\n",(0,o.jsx)(n.h2,{id:"eslint-error-cannot-read-config-file-eslintrcjs",children:"ESLint: Error: Cannot read config file: .../.eslintrc.js"}),"\n",(0,o.jsxs)(n.p,{children:["Try to update ",(0,o.jsx)(n.code,{children:"ESLint"})," and ",(0,o.jsx)(n.code,{children:"npm"})," versions"]}),"\n",(0,o.jsx)(n.h2,{id:"npm-err-command-failed-npm-err-command-sh--c-husky-install",children:"npm ERR! command failed npm ERR! command sh -c husky install"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://github.com/typicode/husky",children:"Husky"})," tries to initialize itself using ",(0,o.jsx)(n.code,{children:"prepare"})," script from ",(0,o.jsx)(n.code,{children:"package.json"}),"\nand to do so it needs to have a git repository, check how to work with Husky or remove ",(0,o.jsx)(n.code,{children:"prepare"})," script if you're not going to use it\n(not recommended)"]}),"\n",(0,o.jsx)(n.h2,{id:"nvm-is-not-compatible-with-the-prefix-variable-currently-set-to-usrlocal",children:'nvm is not compatible with the "PREFIX" variable: currently set to "/usr/local"'}),"\n",(0,o.jsxs)(n.p,{children:["If you have ",(0,o.jsx)(n.code,{children:"NVM"})," installed then there's a minor conflict which can be solved next way:\n",(0,o.jsx)(n.code,{children:"nvm unalias default"})]}),"\n",(0,o.jsx)(n.h2,{id:"android-gradle-plugin-requires-java-11-to-run-you-are-currently-using-java-18",children:"Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8"}),"\n",(0,o.jsx)(n.p,{children:"Update your JDK version, run following command in terminal"}),"\n",(0,o.jsxs)(n.p,{children:["On macOS:\n",(0,o.jsx)(n.code,{children:"brew install --cask adoptopenjdk/openjdk/adoptopenjdk11"})]}),"\n",(0,o.jsxs)(n.p,{children:["On Windows:\n",(0,o.jsx)(n.code,{children:"choco install -y nodejs.install openjdk11"})]}),"\n",(0,o.jsx)(n.h2,{id:"cant-find-your-issue",children:"Can't find your issue?"}),"\n",(0,o.jsxs)(n.p,{children:["Can't find an answer to your issue? Feel free to ",(0,o.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/issues/new/choose",children:"create an issue"})]})]})}const u=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(c,e)})):c(e)}},1151:(e,n,r)=>{r.d(n,{Zo:()=>l,ah:()=>t});var o=r(7294);const i=o.createContext({});function t(e){const n=o.useContext(i);return o.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const s={};function l({components:e,children:n,disableParentContext:r}){let l;return l=r?"function"==typeof e?e({}):e||s:t(e),o.createElement(i.Provider,{value:l},n)}}}]); \ No newline at end of file diff --git a/assets/js/26509314.bcbca1da.js b/assets/js/26509314.bcbca1da.js new file mode 100644 index 00000000..e7f9fff2 --- /dev/null +++ b/assets/js/26509314.bcbca1da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6235],{188:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>t,metadata:()=>l,toc:()=>d});var o=r(5893),i=r(1151);const t={title:"Troubleshooting"},s="Troubleshooting",l={type:"mdx",permalink:"/react-native-template-strong/troubleshooting",source:"@site/src/pages/troubleshooting.md",title:"Troubleshooting",description:"npm ERR! Could not resolve dependency",frontMatter:{title:"Troubleshooting"},unlisted:!1},a={},d=[{value:"npm ERR! Could not resolve dependency",id:"npm-err-could-not-resolve-dependency",level:2},{value:"Error: Command failed: yarn install",id:"error-command-failed-yarn-install",level:2},{value:"ESLint: Error: Cannot read config file: .../.eslintrc.js",id:"eslint-error-cannot-read-config-file-eslintrcjs",level:2},{value:"npm ERR! command failed npm ERR! command sh -c husky install",id:"npm-err-command-failed-npm-err-command-sh--c-husky-install",level:2},{value:"nvm is not compatible with the "PREFIX" variable: currently set to "/usr/local"",id:"nvm-is-not-compatible-with-the-prefix-variable-currently-set-to-usrlocal",level:2},{value:"Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8",id:"android-gradle-plugin-requires-java-11-to-run-you-are-currently-using-java-18",level:2},{value:"Can't find your issue?",id:"cant-find-your-issue",level:2}];function c(e){const n={a:"a",code:"code",h1:"h1",h2:"h2",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h1,{id:"troubleshooting",children:"Troubleshooting"}),"\n",(0,o.jsx)(n.h2,{id:"npm-err-could-not-resolve-dependency",children:"npm ERR! Could not resolve dependency"}),"\n",(0,o.jsxs)(n.p,{children:["Some dependencies might have incorrect peer versions of other dependencies and NPM throws the error, in order to ignore it run\n",(0,o.jsx)(n.code,{children:"npm install --force"})]}),"\n",(0,o.jsx)(n.h2,{id:"error-command-failed-yarn-install",children:"Error: Command failed: yarn install"}),"\n",(0,o.jsxs)(n.p,{children:["The project uses ",(0,o.jsx)(n.code,{children:"npm"})," as package manager, and you're trying to use ",(0,o.jsx)(n.code,{children:"Yarn"}),",\nIt is advised not to mix package managers in order to avoid resolution inconsistencies caused by unsynchronized lock files.\nSimply run ",(0,o.jsx)(n.code,{children:"npm install"})," and use ",(0,o.jsx)(n.code,{children:"npm"})," version >= 6.14.13."]}),"\n",(0,o.jsx)(n.h2,{id:"eslint-error-cannot-read-config-file-eslintrcjs",children:"ESLint: Error: Cannot read config file: .../.eslintrc.js"}),"\n",(0,o.jsxs)(n.p,{children:["Try to update ",(0,o.jsx)(n.code,{children:"ESLint"})," and ",(0,o.jsx)(n.code,{children:"npm"})," versions"]}),"\n",(0,o.jsx)(n.h2,{id:"npm-err-command-failed-npm-err-command-sh--c-husky-install",children:"npm ERR! command failed npm ERR! command sh -c husky install"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://github.com/typicode/husky",children:"Husky"})," tries to initialize itself using ",(0,o.jsx)(n.code,{children:"prepare"})," script from ",(0,o.jsx)(n.code,{children:"package.json"}),"\nand to do so it needs to have a git repository, check how to work with Husky or remove ",(0,o.jsx)(n.code,{children:"prepare"})," script if you're not going to use it\n(not recommended)"]}),"\n",(0,o.jsx)(n.h2,{id:"nvm-is-not-compatible-with-the-prefix-variable-currently-set-to-usrlocal",children:'nvm is not compatible with the "PREFIX" variable: currently set to "/usr/local"'}),"\n",(0,o.jsxs)(n.p,{children:["If you have ",(0,o.jsx)(n.code,{children:"NVM"})," installed then there's a minor conflict which can be solved next way:\n",(0,o.jsx)(n.code,{children:"nvm unalias default"})]}),"\n",(0,o.jsx)(n.h2,{id:"android-gradle-plugin-requires-java-11-to-run-you-are-currently-using-java-18",children:"Android Gradle plugin requires Java 11 to run. You are currently using Java 1.8"}),"\n",(0,o.jsx)(n.p,{children:"Update your JDK version, run following command in terminal"}),"\n",(0,o.jsxs)(n.p,{children:["On macOS:\n",(0,o.jsx)(n.code,{children:"brew install --cask adoptopenjdk/openjdk/adoptopenjdk11"})]}),"\n",(0,o.jsxs)(n.p,{children:["On Windows:\n",(0,o.jsx)(n.code,{children:"choco install -y nodejs.install openjdk11"})]}),"\n",(0,o.jsx)(n.h2,{id:"cant-find-your-issue",children:"Can't find your issue?"}),"\n",(0,o.jsxs)(n.p,{children:["Can't find an answer to your issue? Feel free to ",(0,o.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/issues/new/choose",children:"create an issue"})]})]})}function u(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(c,{...e})}):c(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>l,a:()=>s});var o=r(7294);const i={},t=o.createContext(i);function s(e){const n=o.useContext(t);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:s(e.components),o.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2adfb7b8.a0be219a.js b/assets/js/2adfb7b8.a0be219a.js new file mode 100644 index 00000000..fb0e67e9 --- /dev/null +++ b/assets/js/2adfb7b8.a0be219a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[915],{3219:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(5893),o=n(1151);const s={sidebar_position:4,title:"Intl formatter"},a=void 0,i={id:"localisation/intl-formatter",title:"Intl formatter",description:"Content",source:"@site/docs/localisation/intl-formatter.md",sourceDirName:"localisation",slug:"/localisation/intl-formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/intl-formatter.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Intl formatter"},sidebar:"tutorialSidebar",previous:{title:"Date formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter"},next:{title:"Environments",permalink:"/react-native-template-strong/docs/environments"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Check how it looks",id:"check-how-it-looks",level:2}];function d(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"intlFormatter"})," offers formatting options for numbers, prices, percentage and currencies depending on current language."]}),"\n",(0,r.jsx)(t.p,{children:"Next functions are available, and they format numbers based on current language\n(percentage sign or currency sign placement, dot or comma between decimals, how many fraction digits to show)"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatPercent"})," - formats percentage"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatCurrency"})," - formats prices (by default it uses ",(0,r.jsx)(t.code,{children:"USD"})," as currency)"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatDecimal"})," - formats decimals"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,r.jsx)(t.p,{children:"The following results are based on English locale"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatPercent"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:"formatPercent(25);\n//25%\n"})}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatCurrency"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:'formatCurrency(10000);\n//$10,000\n\nformatCurrency(10000, "EUR");\n//\u20ac10,000\n'})}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatDecimal"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:"formatDecimal(10000);\n//10,000\n"})}),"\n",(0,r.jsx)(t.h2,{id:"check-how-it-looks",children:"Check how it looks"}),"\n",(0,r.jsxs)(t.p,{children:["You can open StoryBook and open ",(0,r.jsx)(t.code,{children:"Format"})," -> ",(0,r.jsx)(t.code,{children:"Intl Formats"})," stories and see how they are being applied."]})]})}function m(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>a});var r=n(7294);const o={},s=r.createContext(o);function a(e){const t=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),r.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2adfb7b8.f980bfc3.js b/assets/js/2adfb7b8.f980bfc3.js deleted file mode 100644 index 74c31f17..00000000 --- a/assets/js/2adfb7b8.f980bfc3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[915],{3219:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>m,frontMatter:()=>s,metadata:()=>i,toc:()=>l});var r=n(5893),o=n(1151);const s={sidebar_position:4,title:"Intl formatter"},a=void 0,i={unversionedId:"localisation/intl-formatter",id:"localisation/intl-formatter",title:"Intl formatter",description:"Content",source:"@site/docs/localisation/intl-formatter.md",sourceDirName:"localisation",slug:"/localisation/intl-formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/intl-formatter.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Intl formatter"},sidebar:"tutorialSidebar",previous:{title:"Date formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter"},next:{title:"Environments",permalink:"/react-native-template-strong/docs/environments"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Check how it looks",id:"check-how-it-looks",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li",pre:"pre"},(0,o.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"intlFormatter"})," offers formatting options for numbers, prices, percentage and currencies depending on current language."]}),"\n",(0,r.jsx)(t.p,{children:"Next functions are available, and they format numbers based on current language\n(percentage sign or currency sign placement, dot or comma between decimals, how many fraction digits to show)"}),"\n",(0,r.jsxs)(t.ul,{children:["\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatPercent"})," - formats percentage"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatCurrency"})," - formats prices (by default it uses ",(0,r.jsx)(t.code,{children:"USD"})," as currency)"]}),"\n",(0,r.jsxs)(t.li,{children:[(0,r.jsx)(t.code,{children:"formatDecimal"})," - formats decimals"]}),"\n"]}),"\n",(0,r.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,r.jsx)(t.p,{children:"The following results are based on English locale"}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatPercent"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:"formatPercent(25);\n//25%\n"})}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatCurrency"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:'formatCurrency(10000);\n//$10,000\n\nformatCurrency(10000, "EUR");\n//\u20ac10,000\n'})}),"\n",(0,r.jsxs)(t.p,{children:[(0,r.jsx)(t.code,{children:"formatDecimal"}),":"]}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",children:"formatDecimal(10000);\n//10,000\n"})}),"\n",(0,r.jsx)(t.h2,{id:"check-how-it-looks",children:"Check how it looks"}),"\n",(0,r.jsxs)(t.p,{children:["You can open StoryBook and open ",(0,r.jsx)(t.code,{children:"Format"})," -> ",(0,r.jsx)(t.code,{children:"Intl Formats"})," stories and see how they are being applied."]})]})}const m=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>i,ah:()=>s});var r=n(7294);const o=r.createContext({});function s(e){const t=r.useContext(o);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||a:s(e),r.createElement(o.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/2b755825.0a21ed1b.js b/assets/js/2b755825.0a21ed1b.js deleted file mode 100644 index 8eeb6186..00000000 --- a/assets/js/2b755825.0a21ed1b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[962],{9376:(e,a,t)=>{t.r(a),t.d(a,{assets:()=>l,contentTitle:()=>i,default:()=>g,frontMatter:()=>o,metadata:()=>c,toc:()=>r});var n=t(5893),s=t(1151);const o={sidebar_position:3,title:"Change language"},i=void 0,c={unversionedId:"localisation/change-language",id:"localisation/change-language",title:"Change language",description:"There are two ways you can change language of your app.",source:"@site/docs/localisation/change-language.md",sourceDirName:"localisation",slug:"/localisation/change-language",permalink:"/react-native-template-strong/docs/localisation/change-language",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/change-language.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Change language"},sidebar:"tutorialSidebar",previous:{title:"Add language",permalink:"/react-native-template-strong/docs/localisation/add-language"},next:{title:"Date formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter"}},l={},r=[{value:"Recommended way",id:"recommended-way",level:2},{value:"Not recommended way",id:"not-recommended-way",level:2}];function d(e){const a=Object.assign({p:"p",h2:"h2",code:"code",a:"a"},(0,s.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(a.p,{children:"There are two ways you can change language of your app."}),"\n",(0,n.jsx)(a.h2,{id:"recommended-way",children:"Recommended way"}),"\n",(0,n.jsx)(a.p,{children:"If you correctly added languages for both Android and iOS, there will be an option in app's system settings to switch the language."}),"\n",(0,n.jsx)(a.p,{children:"Describe the process of changing language to user and create a button which will lead him to app's settings."}),"\n",(0,n.jsxs)(a.p,{children:["Use ",(0,n.jsx)(a.code,{children:"openSettings"})," method of ",(0,n.jsx)(a.a,{href:"https://reactnative.dev/docs/linking#opensettings",children:"Linking"})," to open settings."]}),"\n",(0,n.jsxs)(a.p,{children:["There will be ",(0,n.jsx)(a.code,{children:"PREFERRED LANGUAGE"}),", user can tap on it and switch to another available language."]}),"\n",(0,n.jsx)(a.h2,{id:"not-recommended-way",children:"Not recommended way"}),"\n",(0,n.jsxs)(a.p,{children:["You can change the language in app, using ",(0,n.jsx)(a.code,{children:"setLanguage"})," function from ",(0,n.jsx)(a.code,{children:"localization.ts"}),"."]}),"\n",(0,n.jsxs)(a.p,{children:["You can list available languages for and user to select and when selected, call ",(0,n.jsx)(a.code,{children:"setLanguage"})," with selected language."]}),"\n",(0,n.jsxs)(a.p,{children:["But with this way you also have to store the saved value in ",(0,n.jsx)(a.code,{children:"redux"})," store because for system your app still uses the previously selected language,\nand also apply it on app start every time."]})]})}const g=function(e={}){const{wrapper:a}=Object.assign({},(0,s.ah)(),e.components);return a?(0,n.jsx)(a,Object.assign({},e,{children:(0,n.jsx)(d,e)})):d(e)}},1151:(e,a,t)=>{t.d(a,{Zo:()=>c,ah:()=>o});var n=t(7294);const s=n.createContext({});function o(e){const a=n.useContext(s);return n.useMemo((()=>"function"==typeof e?e(a):{...a,...e}),[a,e])}const i={};function c({components:e,children:a,disableParentContext:t}){let c;return c=t?"function"==typeof e?e({}):e||i:o(e),n.createElement(s.Provider,{value:c},a)}}}]); \ No newline at end of file diff --git a/assets/js/2b755825.f3702531.js b/assets/js/2b755825.f3702531.js new file mode 100644 index 00000000..c42c5504 --- /dev/null +++ b/assets/js/2b755825.f3702531.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[962],{9376:(e,t,a)=>{a.r(t),a.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>u,frontMatter:()=>s,metadata:()=>c,toc:()=>r});var n=a(5893),o=a(1151);const s={sidebar_position:3,title:"Change language"},i=void 0,c={id:"localisation/change-language",title:"Change language",description:"There are two ways you can change language of your app.",source:"@site/docs/localisation/change-language.md",sourceDirName:"localisation",slug:"/localisation/change-language",permalink:"/react-native-template-strong/docs/localisation/change-language",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/change-language.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Change language"},sidebar:"tutorialSidebar",previous:{title:"Add language",permalink:"/react-native-template-strong/docs/localisation/add-language"},next:{title:"Date formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter"}},l={},r=[{value:"Recommended way",id:"recommended-way",level:2},{value:"Not recommended way",id:"not-recommended-way",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.p,{children:"There are two ways you can change language of your app."}),"\n",(0,n.jsx)(t.h2,{id:"recommended-way",children:"Recommended way"}),"\n",(0,n.jsx)(t.p,{children:"If you correctly added languages for both Android and iOS, there will be an option in app's system settings to switch the language."}),"\n",(0,n.jsx)(t.p,{children:"Describe the process of changing language to user and create a button which will lead him to app's settings."}),"\n",(0,n.jsxs)(t.p,{children:["Use ",(0,n.jsx)(t.code,{children:"openSettings"})," method of ",(0,n.jsx)(t.a,{href:"https://reactnative.dev/docs/linking#opensettings",children:"Linking"})," to open settings."]}),"\n",(0,n.jsxs)(t.p,{children:["There will be ",(0,n.jsx)(t.code,{children:"PREFERRED LANGUAGE"}),", user can tap on it and switch to another available language."]}),"\n",(0,n.jsx)(t.h2,{id:"not-recommended-way",children:"Not recommended way"}),"\n",(0,n.jsxs)(t.p,{children:["You can change the language in app, using ",(0,n.jsx)(t.code,{children:"setLanguage"})," function from ",(0,n.jsx)(t.code,{children:"localization.ts"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["You can list available languages for and user to select and when selected, call ",(0,n.jsx)(t.code,{children:"setLanguage"})," with selected language."]}),"\n",(0,n.jsxs)(t.p,{children:["But with this way you also have to store the saved value in ",(0,n.jsx)(t.code,{children:"redux"})," store because for system your app still uses the previously selected language,\nand also apply it on app start every time."]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,a)=>{a.d(t,{Z:()=>c,a:()=>i});var n=a(7294);const o={},s=n.createContext(o);function i(e){const t=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),n.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/2f2dc1d3.4e585ec4.js b/assets/js/2f2dc1d3.4e585ec4.js deleted file mode 100644 index e6b89bdd..00000000 --- a/assets/js/2f2dc1d3.4e585ec4.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[350],{7323:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var o=n(5893),i=n(1151);const s={sidebar_position:21,title:"App icon"},a=void 0,c={unversionedId:"app-icon",id:"app-icon",title:"App icon",description:"Content",source:"@site/docs/app-icon.md",sourceDirName:".",slug:"/app-icon",permalink:"/react-native-template-strong/docs/app-icon",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/app-icon.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:21,frontMatter:{sidebar_position:21,title:"App icon"},sidebar:"tutorialSidebar",previous:{title:"Patches",permalink:"/react-native-template-strong/docs/patches"},next:{title:"App release",permalink:"/react-native-template-strong/docs/app-release"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Create icon assets",id:"create-icon-assets",level:2},{value:"iOS icons location",id:"ios-icons-location",level:3},{value:"Android icons location",id:"android-icons-location",level:3}];function l(e){const t=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",code:"code"},(0,i.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(t.p,{children:"There are already created icons for both Android and iOS you just need to replace them with your own assets."}),"\n",(0,o.jsx)(t.h2,{id:"create-icon-assets",children:"Create icon assets"}),"\n",(0,o.jsxs)(t.p,{children:["To create your own assets you can use this ",(0,o.jsx)(t.a,{href:"https://www.figma.com/community/file/824894885635013369/App-Icon-Toolkit---iOS%2FmacOS%2FAndroid",children:"Figma icon template"})," made by ",(0,o.jsx)(t.a,{href:"https://www.figma.com/@ryanqyao",children:"Ryan Yao"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"And export icons and replace them in their own folders."}),"\n",(0,o.jsx)(t.h3,{id:"ios-icons-location",children:"iOS icons location"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.code,{children:"/ios/*NameOfYourProject*/Images.assets/AppIcon.appiconset/"})}),"\n",(0,o.jsx)(t.h3,{id:"android-icons-location",children:"Android icons location"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"/android/app/src/main/res/"})," - ",(0,o.jsx)(t.code,{children:"mipmap"})," folders"]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>c,ah:()=>s});var o=n(7294);const i=o.createContext({});function s(e){const t=o.useContext(i);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function c({components:e,children:t,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||a:s(e),o.createElement(i.Provider,{value:c},t)}}}]); \ No newline at end of file diff --git a/assets/js/2f2dc1d3.bc9209ae.js b/assets/js/2f2dc1d3.bc9209ae.js new file mode 100644 index 00000000..5d4175bd --- /dev/null +++ b/assets/js/2f2dc1d3.bc9209ae.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[350],{7323:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var o=n(5893),i=n(1151);const s={sidebar_position:21,title:"App icon"},a=void 0,c={id:"app-icon",title:"App icon",description:"Content",source:"@site/docs/app-icon.md",sourceDirName:".",slug:"/app-icon",permalink:"/react-native-template-strong/docs/app-icon",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/app-icon.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:21,frontMatter:{sidebar_position:21,title:"App icon"},sidebar:"tutorialSidebar",previous:{title:"Patches",permalink:"/react-native-template-strong/docs/patches"},next:{title:"App release",permalink:"/react-native-template-strong/docs/app-release"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Create icon assets",id:"create-icon-assets",level:2},{value:"iOS icons location",id:"ios-icons-location",level:3},{value:"Android icons location",id:"android-icons-location",level:3}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(t.p,{children:"There are already created icons for both Android and iOS you just need to replace them with your own assets."}),"\n",(0,o.jsx)(t.h2,{id:"create-icon-assets",children:"Create icon assets"}),"\n",(0,o.jsxs)(t.p,{children:["To create your own assets you can use this ",(0,o.jsx)(t.a,{href:"https://www.figma.com/community/file/824894885635013369/App-Icon-Toolkit---iOS%2FmacOS%2FAndroid",children:"Figma icon template"})," made by ",(0,o.jsx)(t.a,{href:"https://www.figma.com/@ryanqyao",children:"Ryan Yao"}),"."]}),"\n",(0,o.jsx)(t.p,{children:"And export icons and replace them in their own folders."}),"\n",(0,o.jsx)(t.h3,{id:"ios-icons-location",children:"iOS icons location"}),"\n",(0,o.jsx)(t.p,{children:(0,o.jsx)(t.code,{children:"/ios/*NameOfYourProject*/Images.assets/AppIcon.appiconset/"})}),"\n",(0,o.jsx)(t.h3,{id:"android-icons-location",children:"Android icons location"}),"\n",(0,o.jsxs)(t.p,{children:[(0,o.jsx)(t.code,{children:"/android/app/src/main/res/"})," - ",(0,o.jsx)(t.code,{children:"mipmap"})," folders"]})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/30b35490.1a112f71.js b/assets/js/30b35490.1a112f71.js deleted file mode 100644 index 1a6893aa..00000000 --- a/assets/js/30b35490.1a112f71.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7952],{3573:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var i=t(5893),o=t(1151);const s={sidebar_position:7,title:"Actions"},a=void 0,c={unversionedId:"navigation/actions",id:"navigation/actions",title:"Actions",description:"Content",source:"@site/docs/navigation/actions.md",sourceDirName:"navigation",slug:"/navigation/actions",permalink:"/react-native-template-strong/docs/navigation/actions",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/actions.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Actions"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/react-native-template-strong/docs/navigation/hooks"},next:{title:"Before starting",permalink:"/react-native-template-strong/docs/redux/before-starting"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function l(n){const e=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li",pre:"pre"},(0,o.ah)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(e.p,{children:"There are a couple basic actions which were added in addition to what React Native Navigation offers."}),"\n",(0,i.jsxs)(e.p,{children:["These actions are located in ",(0,i.jsx)(e.code,{children:"/src/navigation/helpers/navigationActions/ts"}),"."]}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"navigateToPage"})," - simple navigation to page using ",(0,i.jsx)(e.code,{children:"Pages"})]}),"\n",(0,i.jsxs)(e.li,{children:[(0,i.jsx)(e.code,{children:"navigateWithoutTabs"})," - if you want to navigate to page without showing tabs."]}),"\n"]}),"\n",(0,i.jsxs)(e.p,{children:["Both of these actions require ",(0,i.jsx)(e.code,{children:"page"}),", ",(0,i.jsx)(e.code,{children:"componentId"}),"."]}),"\n",(0,i.jsxs)(e.p,{children:["Optionally you can provide your own ",(0,i.jsx)(e.code,{children:"passProps"})," and ",(0,i.jsx)(e.code,{children:"options"}),"."]}),"\n",(0,i.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsx)(e.p,{children:"Simple case:"}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:" const onFaqPress = useCallback(() => {\n navigateWithoutTabs(Pages.faq, componentId);\n }, [componentId]);\n"})}),"\n",(0,i.jsxs)(e.p,{children:["With ",(0,i.jsx)(e.code,{children:"passProps"})," and ",(0,i.jsx)(e.code,{children:"options"}),":"]}),"\n",(0,i.jsx)(e.pre,{children:(0,i.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:" const onSuccess = useCallback(\n (confirmation: FirebaseAuthTypes.ConfirmationResult) => {\n navigateWithoutTabs(\n Pages.confirmation,\n componentId,\n {\n phone: phone,\n formattedPhone: formattedPhone,\n confirmation: confirmation,\n },\n {\n topBar: {\n title: {\n text: localization.pages.signIn,\n },\n },\n },\n );\n },\n [phone, formattedPhone, componentId],\n );\n"})})]})}const p=function(n={}){const{wrapper:e}=Object.assign({},(0,o.ah)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(l,n)})):l(n)}},1151:(n,e,t)=>{t.d(e,{Zo:()=>c,ah:()=>s});var i=t(7294);const o=i.createContext({});function s(n){const e=i.useContext(o);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const a={};function c({components:n,children:e,disableParentContext:t}){let c;return c=t?"function"==typeof n?n({}):n||a:s(n),i.createElement(o.Provider,{value:c},e)}}}]); \ No newline at end of file diff --git a/assets/js/30b35490.ca0f709c.js b/assets/js/30b35490.ca0f709c.js new file mode 100644 index 00000000..f5805191 --- /dev/null +++ b/assets/js/30b35490.ca0f709c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7952],{3573:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var o=t(5893),i=t(1151);const s={sidebar_position:7,title:"Actions"},a=void 0,c={id:"navigation/actions",title:"Actions",description:"Content",source:"@site/docs/navigation/actions.md",sourceDirName:"navigation",slug:"/navigation/actions",permalink:"/react-native-template-strong/docs/navigation/actions",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/actions.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Actions"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/react-native-template-strong/docs/navigation/hooks"},next:{title:"Before starting",permalink:"/react-native-template-strong/docs/redux/before-starting"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function l(n){const e={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(e.p,{children:"There are a couple basic actions which were added in addition to what React Native Navigation offers."}),"\n",(0,o.jsxs)(e.p,{children:["These actions are located in ",(0,o.jsx)(e.code,{children:"/src/navigation/helpers/navigationActions/ts"}),"."]}),"\n",(0,o.jsxs)(e.ul,{children:["\n",(0,o.jsxs)(e.li,{children:[(0,o.jsx)(e.code,{children:"navigateToPage"})," - simple navigation to page using ",(0,o.jsx)(e.code,{children:"Pages"})]}),"\n",(0,o.jsxs)(e.li,{children:[(0,o.jsx)(e.code,{children:"navigateWithoutTabs"})," - if you want to navigate to page without showing tabs."]}),"\n"]}),"\n",(0,o.jsxs)(e.p,{children:["Both of these actions require ",(0,o.jsx)(e.code,{children:"page"}),", ",(0,o.jsx)(e.code,{children:"componentId"}),"."]}),"\n",(0,o.jsxs)(e.p,{children:["Optionally you can provide your own ",(0,o.jsx)(e.code,{children:"passProps"})," and ",(0,o.jsx)(e.code,{children:"options"}),"."]}),"\n",(0,o.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,o.jsx)(e.p,{children:"Simple case:"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:" const onFaqPress = useCallback(() => {\n navigateWithoutTabs(Pages.faq, componentId);\n }, [componentId]);\n"})}),"\n",(0,o.jsxs)(e.p,{children:["With ",(0,o.jsx)(e.code,{children:"passProps"})," and ",(0,o.jsx)(e.code,{children:"options"}),":"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:" const onSuccess = useCallback(\n (confirmation: FirebaseAuthTypes.ConfirmationResult) => {\n navigateWithoutTabs(\n Pages.confirmation,\n componentId,\n {\n phone: phone,\n formattedPhone: formattedPhone,\n confirmation: confirmation,\n },\n {\n topBar: {\n title: {\n text: localization.pages.signIn,\n },\n },\n },\n );\n },\n [phone, formattedPhone, componentId],\n );\n"})})]})}function p(n={}){const{wrapper:e}={...(0,i.a)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(l,{...n})}):l(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>c,a:()=>a});var o=t(7294);const i={},s=o.createContext(i);function a(n){const e=o.useContext(s);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function c(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(i):n.components||i:a(n.components),o.createElement(s.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/31630cdb.6aa85ab4.js b/assets/js/31630cdb.6aa85ab4.js new file mode 100644 index 00000000..1575d455 --- /dev/null +++ b/assets/js/31630cdb.6aa85ab4.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3793],{3833:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>a,frontMatter:()=>s,metadata:()=>d,toc:()=>o});var l=n(5893),i=n(1151);const s={sidebar_position:2,title:"PrimaryTextInput"},r=void 0,d={id:"components/primary-text-input",title:"PrimaryTextInput",description:"Content",source:"@site/docs/components/primary-text-input.md",sourceDirName:"components",slug:"/components/primary-text-input",permalink:"/react-native-template-strong/docs/components/primary-text-input",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/primary-text-input.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"PrimaryTextInput"},sidebar:"tutorialSidebar",previous:{title:"PrimaryButton",permalink:"/react-native-template-strong/docs/components/primary-button"},next:{title:"Separator",permalink:"/react-native-template-strong/docs/components/separator"}},c={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2}];function x(t){const e={code:"code",h2:"h2",p:"p",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...t.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(e.p,{children:"Primary text input component which should be used in project."}),"\n",(0,l.jsx)(e.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(e.p,{children:["Extends ",(0,l.jsx)(e.code,{children:"TextInputProps"})," and additionally adds next properties"]}),"\n",(0,l.jsxs)(e.table,{children:[(0,l.jsx)(e.thead,{children:(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(e.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(e.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(e.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(e.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(e.tbody,{children:[(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"nextInputFocusRef"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"MutableRefObject"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsxs)(e.td,{style:{textAlign:"left"},children:["If provided then when ",(0,l.jsx)(e.code,{children:"onSubmitEditing"})," fires focuses on next input"]})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"inputRef"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"Ref"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsxs)(e.td,{style:{textAlign:"left"},children:["Reference of ",(0,l.jsx)(e.code,{children:"TextInput"})]})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"containerStyle"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"ViewStyle"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Style of container"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"label"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"string"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Style of container"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"error"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"string or null"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Error which will be shown under the input"})]}),(0,l.jsxs)(e.tr,{children:[(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"hint"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:(0,l.jsx)(e.code,{children:"string"})}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(e.td,{style:{textAlign:"left"},children:"Hint which will be shown under the input"})]})]})]})]})}function a(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,l.jsx)(e,{...t,children:(0,l.jsx)(x,{...t})}):x(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>d,a:()=>r});var l=n(7294);const i={},s=l.createContext(i);function r(t){const e=l.useContext(s);return l.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function d(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:r(t.components),l.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/31630cdb.c59d12fa.js b/assets/js/31630cdb.c59d12fa.js deleted file mode 100644 index 77476d26..00000000 --- a/assets/js/31630cdb.c59d12fa.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3793],{3833:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>r,metadata:()=>s,toc:()=>c});var i=t(5893),l=t(1151);const r={sidebar_position:2,title:"PrimaryTextInput"},d=void 0,s={unversionedId:"components/primary-text-input",id:"components/primary-text-input",title:"PrimaryTextInput",description:"Content",source:"@site/docs/components/primary-text-input.md",sourceDirName:"components",slug:"/components/primary-text-input",permalink:"/react-native-template-strong/docs/components/primary-text-input",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/primary-text-input.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"PrimaryTextInput"},sidebar:"tutorialSidebar",previous:{title:"PrimaryButton",permalink:"/react-native-template-strong/docs/components/primary-button"},next:{title:"Separator",permalink:"/react-native-template-strong/docs/components/separator"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2}];function o(n){const e=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td"},(0,l.ah)(),n.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(e.p,{children:"Primary text input component which should be used in project."}),"\n",(0,i.jsx)(e.h2,{id:"params",children:"Params"}),"\n",(0,i.jsxs)(e.p,{children:["Extends ",(0,i.jsx)(e.code,{children:"TextInputProps"})," and additionally adds next properties"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(e.table,{children:[(0,i.jsx)(e.thead,{children:(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.th,{align:"left",children:"Name"}),(0,i.jsx)(e.th,{align:"left",children:"Type"}),(0,i.jsx)(e.th,{align:"left",children:"Required"}),(0,i.jsx)(e.th,{align:"left",children:"Default value"}),(0,i.jsx)(e.th,{align:"left",children:"Description"})]})}),(0,i.jsxs)(e.tbody,{children:[(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"nextInputFocusRef"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"MutableRefObject"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsxs)(e.td,{align:"left",children:["If provided then when ",(0,i.jsx)(e.code,{children:"onSubmitEditing"})," fires focuses on next input"]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"inputRef"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"Ref"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsxs)(e.td,{align:"left",children:["Reference of ",(0,i.jsx)(e.code,{children:"TextInput"})]})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"containerStyle"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"ViewStyle"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsx)(e.td,{align:"left",children:"Style of container"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"label"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"string"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsx)(e.td,{align:"left",children:"Style of container"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"error"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"string or null"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsx)(e.td,{align:"left",children:"Error which will be shown under the input"})]}),(0,i.jsxs)(e.tr,{children:[(0,i.jsx)(e.td,{align:"left",children:"hint"}),(0,i.jsx)(e.td,{align:"left",children:(0,i.jsx)(e.code,{children:"string"})}),(0,i.jsx)(e.td,{align:"left",children:"False"}),(0,i.jsx)(e.td,{align:"left",children:"Undefined"}),(0,i.jsx)(e.td,{align:"left",children:"Hint which will be shown under the input"})]})]})]})]})}const h=function(n={}){const{wrapper:e}=Object.assign({},(0,l.ah)(),n.components);return e?(0,i.jsx)(e,Object.assign({},n,{children:(0,i.jsx)(o,n)})):o(n)}},1151:(n,e,t)=>{t.d(e,{Zo:()=>s,ah:()=>r});var i=t(7294);const l=i.createContext({});function r(n){const e=i.useContext(l);return i.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const d={};function s({components:n,children:e,disableParentContext:t}){let s;return s=t?"function"==typeof n?n({}):n||d:r(n),i.createElement(l.Provider,{value:s},e)}}}]); \ No newline at end of file diff --git a/assets/js/3169c1c1.5be1a012.js b/assets/js/3169c1c1.5be1a012.js new file mode 100644 index 00000000..13c5d74c --- /dev/null +++ b/assets/js/3169c1c1.5be1a012.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7831],{2973:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var r=o(5893),t=o(1151);const s={sidebar_position:2,title:"Native colors"},i=void 0,a={id:"themes/native-colors",title:"Native colors",description:"Content",source:"@site/docs/themes/native-colors.md",sourceDirName:"themes",slug:"/themes/native-colors",permalink:"/react-native-template-strong/docs/themes/native-colors",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/themes/native-colors.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Native colors"},sidebar:"tutorialSidebar",previous:{title:"Colors",permalink:"/react-native-template-strong/docs/themes/colors"},next:{title:"Component styles",permalink:"/react-native-template-strong/docs/styles/component-styles"}},l={},c=[{value:"Content",id:"content",level:2},{value:"Android",id:"android",level:2},{value:"Content",id:"content-1",level:3},{value:"Usage",id:"usage",level:3},{value:"Add colors",id:"add-colors",level:3},{value:"Native theme constants",id:"native-theme-constants",level:3},{value:"iOS",id:"ios",level:2},{value:"Content",id:"content-2",level:3},{value:"Usage",id:"usage-1",level:3},{value:"Add colors",id:"add-colors-1",level:3},{value:"Native theme constants",id:"native-theme-constants-1",level:3}];function d(e){const n={a:"a",admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(n.p,{children:["Native colors are used to work with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," themes of your application."]}),"\n",(0,r.jsxs)(n.p,{children:["There are some predefined (Android) and built-in (iOS) color names which are listed as enums in ",(0,r.jsx)(n.code,{children:"src/core/theme/colors.ts"})]}),"\n",(0,r.jsxs)(n.p,{children:["It's highly recommended to use native colors opposed to JS defined ones to present better user experience with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," themes"]}),"\n",(0,r.jsx)(n.h2,{id:"android",children:"Android"}),"\n",(0,r.jsx)(n.h3,{id:"content-1",children:"Content"}),"\n",(0,r.jsx)(n.p,{children:"There are two sets of colors defined in native resources:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/colors.xml"})," - for light theme"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/colors.xml"})," - for dark theme"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"They look like this (light theme colors e.g.):"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:'\n\n #61DAFB\n #2596BE\n #B3E5FC\n #FFFFFF\n #212121\n #CC212121\n #757575\n #FFFFFF\n #CCFFFFFF\n #BDBDBD\n #61DAFB\n #0288D1\n\n\n'})}),"\n",(0,r.jsx)(n.p,{children:"For both themes this colors share the same set of items (names) but can have different color values."}),"\n",(0,r.jsxs)(n.p,{children:["In React Native they are represented as ",(0,r.jsx)(n.code,{children:"PlatformColorsAndroid"})," enum in ",(0,r.jsx)(n.code,{children:"src/core/theme/colors.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:'export enum PlatformColorsAndroid {\n primary = "@color/primary",\n primaryDark = "@color/primaryDark",\n primaryLight = "@color/primaryLight",\n background = "@color/background",\n primaryText = "@color/primaryText",\n primaryTextOpacity = "@color/primaryTextOpacity",\n secondaryText = "@color/secondaryText",\n onPrimaryText = "@color/onPrimaryText",\n onPrimaryTextOpacity = "@color/onPrimaryTextOpacity",\n divider = "@color/divider",\n navigation = "@color/navigation",\n statusbar = "@color/statusbar",\n}\n'})}),"\n",(0,r.jsx)(n.h3,{id:"usage",children:"Usage"}),"\n",(0,r.jsxs)(n.p,{children:["It's not enough to directly use this colors sam way as ones from ",(0,r.jsx)(n.code,{children:"Colors"})," enum."]}),"\n",(0,r.jsx)(n.p,{children:"You can use them in styles in multiple ways:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.code,{children:"PlatformColor"})," in mix with ",(0,r.jsx)(n.code,{children:"Platform.select"})]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n ...Platform.select({\n android: {\n backgroundColor: PlatformColor(PlatformColorsAndroid.background),\n } as ViewStyle,\n }),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformNativeColor"})," or ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformMixedColor"}),":"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsx)(n.li,{children:"To assign native colors in navigation, assign them directly, not separately:"}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"Incorrect",type:"danger",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: PlatformColor(PlatformColorsAndroid.navigation),\n darK: PlatformColor(PlatformColorsAndroid.navigation),\n },\n },\n }\n"})})}),"\n",(0,r.jsx)(n.admonition,{title:"Correct",type:"tip",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),\n },\n }\n"})})}),"\n",(0,r.jsx)(n.h3,{id:"add-colors",children:"Add colors"}),"\n",(0,r.jsx)(n.p,{children:"To add more native colors:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Create ",(0,r.jsx)(n.code,{children:"item"})," in both ",(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/colors.xml"})," and ",(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/colors.xml"}),"\nwith the same name"]}),"\n",(0,r.jsxs)(n.li,{children:["Add your new color name in ",(0,r.jsx)(n.code,{children:"PlatformColorsAndroid"})]}),"\n",(0,r.jsx)(n.li,{children:"Rebuild your application"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"native-theme-constants",children:"Native theme constants"}),"\n",(0,r.jsxs)(n.p,{children:["There are some native theme constants which you can change.\nThese constants change things like ",(0,r.jsx)(n.code,{children:"tint"}),", ",(0,r.jsx)(n.code,{children:"status bar"})," colors on native side."]}),"\n",(0,r.jsx)(n.p,{children:"They are located in:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/styles.xml"})," - for light theme"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/styles.xml"})," - for dark theme"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"And look like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:'\n\n\n \n\n \n\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Our app's theme is defined within style ",(0,r.jsx)(n.code,{children:"AppTheme"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["You can see that there's a ",(0,r.jsx)(n.code,{children:"colorAccent"})," assigned to our ",(0,r.jsx)(n.code,{children:"@color/primary"}),", this change can be seen in dialogs, alerts and other components."]}),"\n",(0,r.jsxs)(n.p,{children:["Same goes with ",(0,r.jsx)(n.code,{children:"android:statusBarColor"})," which sets the color of ",(0,r.jsx)(n.code,{children:"status bar"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To check other constant names you can adjust, check Android related resources regarding your components which you'd like to modify."}),"\n",(0,r.jsx)(n.h2,{id:"ios",children:"iOS"}),"\n",(0,r.jsx)(n.h3,{id:"content-2",children:"Content"}),"\n",(0,r.jsxs)(n.p,{children:["iOS already has some predefined colors for us, you can check how they look and change with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," theme in Storybook's colors page."]}),"\n",(0,r.jsx)(n.h3,{id:"usage-1",children:"Usage"}),"\n",(0,r.jsxs)(n.p,{children:["It's not enough to directly use this colors sam way as ones from ",(0,r.jsx)(n.code,{children:"Colors"})," enum."]}),"\n",(0,r.jsx)(n.p,{children:"You can use them in styles in multiple ways:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.code,{children:"PlatformColor"})," in mix with ",(0,r.jsx)(n.code,{children:"Platform.select"})]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n ...Platform.select({\n iOS: {\n backgroundColor: PlatformColor(PlatformColorsIOS.systemBackground),\n } as ViewStyle,\n }),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformNativeColor"})," or ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformMixedColor"}),":"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsx)(n.li,{children:"To assign native colors in navigation, assign them directly, not separately:"}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"Incorrect",type:"danger",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: PlatformColor(PlatformColorsIOS.systemBackground),\n darK: PlatformColor(PlatformColorsIOS.systemBackground),\n },\n },\n }\n"})})}),"\n",(0,r.jsx)(n.admonition,{title:"Correct",type:"tip",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),\n },\n }\n"})})}),"\n",(0,r.jsx)(n.h3,{id:"add-colors-1",children:"Add colors"}),"\n",(0,r.jsxs)(n.p,{children:["At this moment you can't add your colors natively, but you can define your own colors in a separate enum and use ",(0,r.jsx)(n.a,{href:"https://reactnative.dev/docs/dynamiccolorios",children:"DynamicColorIOS"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"But it would be better to stick to built-in colors to provide better user experience for users."}),"\n",(0,r.jsx)(n.h3,{id:"native-theme-constants-1",children:"Native theme constants"}),"\n",(0,r.jsxs)(n.p,{children:["You can define ",(0,r.jsx)(n.code,{children:"AccentColor"})," of your application for both ",(0,r.jsx)(n.code,{children:"light"})," and ",(0,r.jsx)(n.code,{children:"dark"})," themes in XCode:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Open .xcworkspace file"}),"\n",(0,r.jsxs)(n.li,{children:["Navigate to Images.xcassets where you'll see your app and splash icons and ",(0,r.jsx)(n.code,{children:"AccentColor"})," which you can change"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>a,a:()=>i});var r=o(7294);const t={},s=r.createContext(t);function i(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:i(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3169c1c1.fed069e7.js b/assets/js/3169c1c1.fed069e7.js deleted file mode 100644 index b3516b0f..00000000 --- a/assets/js/3169c1c1.fed069e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7831],{2973:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>c});var r=o(5893),t=o(1151);const s={sidebar_position:2,title:"Native colors"},i=void 0,a={unversionedId:"themes/native-colors",id:"themes/native-colors",title:"Native colors",description:"Content",source:"@site/docs/themes/native-colors.md",sourceDirName:"themes",slug:"/themes/native-colors",permalink:"/react-native-template-strong/docs/themes/native-colors",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/themes/native-colors.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Native colors"},sidebar:"tutorialSidebar",previous:{title:"Colors",permalink:"/react-native-template-strong/docs/themes/colors"},next:{title:"Component styles",permalink:"/react-native-template-strong/docs/styles/component-styles"}},l={},c=[{value:"Content",id:"content",level:2},{value:"Android",id:"android",level:2},{value:"Content",id:"content-1",level:3},{value:"Usage",id:"usage",level:3},{value:"Add colors",id:"add-colors",level:3},{value:"Native theme constants",id:"native-theme-constants",level:3},{value:"iOS",id:"ios",level:2},{value:"Content",id:"content-2",level:3},{value:"Usage",id:"usage-1",level:3},{value:"Add colors",id:"add-colors-1",level:3},{value:"Native theme constants",id:"native-theme-constants-1",level:3}];function d(e){const n=Object.assign({h2:"h2",p:"p",code:"code",h3:"h3",ul:"ul",li:"li",pre:"pre",ol:"ol",a:"a",admonition:"admonition"},(0,t.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(n.p,{children:["Native colors are used to work with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," themes of your application."]}),"\n",(0,r.jsxs)(n.p,{children:["There are some predefined (Android) and built-in (iOS) color names which are listed as enums in ",(0,r.jsx)(n.code,{children:"src/core/theme/colors.ts"})]}),"\n",(0,r.jsxs)(n.p,{children:["It's highly recommended to use native colors opposed to JS defined ones to present better user experience with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," themes"]}),"\n",(0,r.jsx)(n.h2,{id:"android",children:"Android"}),"\n",(0,r.jsx)(n.h3,{id:"content-1",children:"Content"}),"\n",(0,r.jsx)(n.p,{children:"There are two sets of colors defined in native resources:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/colors.xml"})," - for light theme"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/colors.xml"})," - for dark theme"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"They look like this (light theme colors e.g.):"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:'\n\n #61DAFB\n #2596BE\n #B3E5FC\n #FFFFFF\n #212121\n #CC212121\n #757575\n #FFFFFF\n #CCFFFFFF\n #BDBDBD\n #61DAFB\n #0288D1\n\n\n'})}),"\n",(0,r.jsx)(n.p,{children:"For both themes this colors share the same set of items (names) but can have different color values."}),"\n",(0,r.jsxs)(n.p,{children:["In React Native they are represented as ",(0,r.jsx)(n.code,{children:"PlatformColorsAndroid"})," enum in ",(0,r.jsx)(n.code,{children:"src/core/theme/colors.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:'export enum PlatformColorsAndroid {\n primary = "@color/primary",\n primaryDark = "@color/primaryDark",\n primaryLight = "@color/primaryLight",\n background = "@color/background",\n primaryText = "@color/primaryText",\n primaryTextOpacity = "@color/primaryTextOpacity",\n secondaryText = "@color/secondaryText",\n onPrimaryText = "@color/onPrimaryText",\n onPrimaryTextOpacity = "@color/onPrimaryTextOpacity",\n divider = "@color/divider",\n navigation = "@color/navigation",\n statusbar = "@color/statusbar",\n}\n'})}),"\n",(0,r.jsx)(n.h3,{id:"usage",children:"Usage"}),"\n",(0,r.jsxs)(n.p,{children:["It's not enough to directly use this colors sam way as ones from ",(0,r.jsx)(n.code,{children:"Colors"})," enum."]}),"\n",(0,r.jsx)(n.p,{children:"You can use them in styles in multiple ways:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.code,{children:"PlatformColor"})," in mix with ",(0,r.jsx)(n.code,{children:"Platform.select"})]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n ...Platform.select({\n android: {\n backgroundColor: PlatformColor(PlatformColorsAndroid.background),\n } as ViewStyle,\n }),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformNativeColor"})," or ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformMixedColor"}),":"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsx)(n.li,{children:"To assign native colors in navigation, assign them directly, not separately:"}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"Incorrect",type:"danger",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: PlatformColor(PlatformColorsAndroid.navigation),\n darK: PlatformColor(PlatformColorsAndroid.navigation),\n },\n },\n }\n"})})}),"\n",(0,r.jsx)(n.admonition,{title:"Correct",type:"tip",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),\n },\n }\n"})})}),"\n",(0,r.jsx)(n.h3,{id:"add-colors",children:"Add colors"}),"\n",(0,r.jsx)(n.p,{children:"To add more native colors:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Create ",(0,r.jsx)(n.code,{children:"item"})," in both ",(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/colors.xml"})," and ",(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/colors.xml"}),"\nwith the same name"]}),"\n",(0,r.jsxs)(n.li,{children:["Add your new color name in ",(0,r.jsx)(n.code,{children:"PlatformColorsAndroid"})]}),"\n",(0,r.jsx)(n.li,{children:"Rebuild your application"}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:"native-theme-constants",children:"Native theme constants"}),"\n",(0,r.jsxs)(n.p,{children:["There are some native theme constants which you can change.\nThese constants change things like ",(0,r.jsx)(n.code,{children:"tint"}),", ",(0,r.jsx)(n.code,{children:"status bar"})," colors on native side."]}),"\n",(0,r.jsx)(n.p,{children:"They are located in:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values/styles.xml"})," - for light theme"]}),"\n",(0,r.jsxs)(n.li,{children:[(0,r.jsx)(n.code,{children:"/android/app/src/main/res/values-night/styles.xml"})," - for dark theme"]}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"And look like this:"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-xml",children:'\n\n\n \n\n \n\n'})}),"\n",(0,r.jsxs)(n.p,{children:["Our app's theme is defined within style ",(0,r.jsx)(n.code,{children:"AppTheme"}),"."]}),"\n",(0,r.jsxs)(n.p,{children:["You can see that there's a ",(0,r.jsx)(n.code,{children:"colorAccent"})," assigned to our ",(0,r.jsx)(n.code,{children:"@color/primary"}),", this change can be seen in dialogs, alerts and other components."]}),"\n",(0,r.jsxs)(n.p,{children:["Same goes with ",(0,r.jsx)(n.code,{children:"android:statusBarColor"})," which sets the color of ",(0,r.jsx)(n.code,{children:"status bar"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"To check other constant names you can adjust, check Android related resources regarding your components which you'd like to modify."}),"\n",(0,r.jsx)(n.h2,{id:"ios",children:"iOS"}),"\n",(0,r.jsx)(n.h3,{id:"content-2",children:"Content"}),"\n",(0,r.jsxs)(n.p,{children:["iOS already has some predefined colors for us, you can check how they look and change with ",(0,r.jsx)(n.code,{children:"dark"})," and ",(0,r.jsx)(n.code,{children:"light"})," theme in Storybook's colors page."]}),"\n",(0,r.jsx)(n.h3,{id:"usage-1",children:"Usage"}),"\n",(0,r.jsxs)(n.p,{children:["It's not enough to directly use this colors sam way as ones from ",(0,r.jsx)(n.code,{children:"Colors"})," enum."]}),"\n",(0,r.jsx)(n.p,{children:"You can use them in styles in multiple ways:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.code,{children:"PlatformColor"})," in mix with ",(0,r.jsx)(n.code,{children:"Platform.select"})]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n ...Platform.select({\n iOS: {\n backgroundColor: PlatformColor(PlatformColorsIOS.systemBackground),\n } as ViewStyle,\n }),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"2",children:["\n",(0,r.jsxs)(n.li,{children:["Using ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformNativeColor"})," or ",(0,r.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformMixedColor"}),":"]}),"\n"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n } as ViewStyle,\n});\n"})}),"\n",(0,r.jsxs)(n.ol,{start:"3",children:["\n",(0,r.jsx)(n.li,{children:"To assign native colors in navigation, assign them directly, not separately:"}),"\n"]}),"\n",(0,r.jsx)(n.admonition,{title:"Incorrect",type:"danger",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: PlatformColor(PlatformColorsIOS.systemBackground),\n darK: PlatformColor(PlatformColorsIOS.systemBackground),\n },\n },\n }\n"})})}),"\n",(0,r.jsx)(n.admonition,{title:"Correct",type:"tip",children:(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),\n },\n }\n"})})}),"\n",(0,r.jsx)(n.h3,{id:"add-colors-1",children:"Add colors"}),"\n",(0,r.jsxs)(n.p,{children:["At this moment you can't add your colors natively, but you can define your own colors in a separate enum and use ",(0,r.jsx)(n.a,{href:"https://reactnative.dev/docs/dynamiccolorios",children:"DynamicColorIOS"}),"."]}),"\n",(0,r.jsx)(n.p,{children:"But it would be better to stick to built-in colors to provide better user experience for users."}),"\n",(0,r.jsx)(n.h3,{id:"native-theme-constants-1",children:"Native theme constants"}),"\n",(0,r.jsxs)(n.p,{children:["You can define ",(0,r.jsx)(n.code,{children:"AccentColor"})," of your application for both ",(0,r.jsx)(n.code,{children:"light"})," and ",(0,r.jsx)(n.code,{children:"dark"})," themes in XCode:"]}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Open .xcworkspace file"}),"\n",(0,r.jsxs)(n.li,{children:["Navigate to Images.xcassets where you'll see your app and splash icons and ",(0,r.jsx)(n.code,{children:"AccentColor"})," which you can change"]}),"\n"]})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,t.ah)(),e.components);return n?(0,r.jsx)(n,Object.assign({},e,{children:(0,r.jsx)(d,e)})):d(e)}},1151:(e,n,o)=>{o.d(n,{Zo:()=>a,ah:()=>s});var r=o(7294);const t=r.createContext({});function s(e){const n=r.useContext(t);return r.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const i={};function a({components:e,children:n,disableParentContext:o}){let a;return a=o?"function"==typeof e?e({}):e||i:s(e),r.createElement(t.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/328e254d.091fb47a.js b/assets/js/328e254d.091fb47a.js deleted file mode 100644 index e78ca856..00000000 --- a/assets/js/328e254d.091fb47a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2918],{6139:(e,l,n)=>{n.r(l),n.d(l,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var r=n(5893),t=n(1151);const o={sidebar_position:2,title:"colorHelpers"},s=void 0,i={unversionedId:"helpers/color-helpers",id:"helpers/color-helpers",title:"colorHelpers",description:"Content",source:"@site/docs/helpers/color-helpers.md",sourceDirName:"helpers",slug:"/helpers/color-helpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/color-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"colorHelpers"},sidebar:"tutorialSidebar",previous:{title:"calculatePage",permalink:"/react-native-template-strong/docs/helpers/calculate-page"},next:{title:"defaultKeyIdExtractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor"}},d={},a=[{value:"Content",id:"content",level:2},{value:"platformNativeColor",id:"platformnativecolor",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"platformLocalColor",id:"platformlocalcolor",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"platformMixedColor",id:"platformmixedcolor",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function c(e){const l=Object.assign({h2:"h2",p:"p",h3:"h3",code:"code",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,t.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.h2,{id:"content",children:"Content"}),"\n",(0,r.jsx)(l.p,{children:"Used to select color based on platform."}),"\n",(0,r.jsx)(l.h3,{id:"platformnativecolor",children:"platformNativeColor"}),"\n",(0,r.jsxs)(l.p,{children:["Selects color based on platform and if at least one is provided goes it through ",(0,r.jsx)(l.code,{children:"PlatformColor"})," otherwise returns ",(0,r.jsx)(l.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(l.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(l.table,{children:[(0,r.jsx)(l.thead,{children:(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.th,{align:"left",children:"Name"}),(0,r.jsx)(l.th,{align:"left",children:"Type"}),(0,r.jsx)(l.th,{align:"left",children:"Required"}),(0,r.jsx)(l.th,{align:"left",children:"Default value"}),(0,r.jsx)(l.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(l.tbody,{children:[(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"iosColor"}),(0,r.jsx)(l.td,{align:"left",children:(0,r.jsx)(l.code,{children:"PlatformColorsIOS"})}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["iOS color from ",(0,r.jsx)(l.code,{children:"PlatformColorsIOS"})]})]}),(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"androidColor"}),(0,r.jsx)(l.td,{align:"left",children:(0,r.jsx)(l.code,{children:"PlatformColorsAndroid"})}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["Android color from ",(0,r.jsx)(l.code,{children:"PlatformColorsAndroid"})]})]})]})]}),"\n",(0,r.jsx)(l.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})}),"\n",(0,r.jsx)(l.h3,{id:"platformlocalcolor",children:"platformLocalColor"}),"\n",(0,r.jsxs)(l.p,{children:["Selects color based on platform and if at least one is provided returns it otherwise returns ",(0,r.jsx)(l.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(l.h4,{id:"params-1",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(l.table,{children:[(0,r.jsx)(l.thead,{children:(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.th,{align:"left",children:"Name"}),(0,r.jsx)(l.th,{align:"left",children:"Type"}),(0,r.jsx)(l.th,{align:"left",children:"Required"}),(0,r.jsx)(l.th,{align:"left",children:"Default value"}),(0,r.jsx)(l.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(l.tbody,{children:[(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"iosColor"}),(0,r.jsx)(l.td,{align:"left",children:(0,r.jsx)(l.code,{children:"Colors"})}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["iOS color from ",(0,r.jsx)(l.code,{children:"Colors"})]})]}),(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"androidColor"}),(0,r.jsx)(l.td,{align:"left",children:(0,r.jsx)(l.code,{children:"Colors"})}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["Android color from ",(0,r.jsx)(l.code,{children:"Colors"})]})]})]})]}),"\n",(0,r.jsx)(l.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})}),"\n",(0,r.jsx)(l.h3,{id:"platformmixedcolor",children:"platformMixedColor"}),"\n",(0,r.jsxs)(l.p,{children:["Selects color based on platform and if at least one is provided returns it or goes it through ",(0,r.jsx)(l.code,{children:"PlatformColor"})," if it's type of ",(0,r.jsx)(l.code,{children:"PlatformColorsIOS"})," or ",(0,r.jsx)(l.code,{children:"PlatformColorsAndroid"})," otherwise returns ",(0,r.jsx)(l.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(l.h4,{id:"params-2",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(l.table,{children:[(0,r.jsx)(l.thead,{children:(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.th,{align:"left",children:"Name"}),(0,r.jsx)(l.th,{align:"left",children:"Type"}),(0,r.jsx)(l.th,{align:"left",children:"Required"}),(0,r.jsx)(l.th,{align:"left",children:"Default value"}),(0,r.jsx)(l.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(l.tbody,{children:[(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"iosColor"}),(0,r.jsxs)(l.td,{align:"left",children:[(0,r.jsx)(l.code,{children:"Colors"}),", ",(0,r.jsx)(l.code,{children:"PlatformColorsIOS"})]}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["iOS color from ",(0,r.jsx)(l.code,{children:"Colors"})," or ",(0,r.jsx)(l.code,{children:"PlatformColorsIOS"})]})]}),(0,r.jsxs)(l.tr,{children:[(0,r.jsx)(l.td,{align:"left",children:"androidColor"}),(0,r.jsxs)(l.td,{align:"left",children:[(0,r.jsx)(l.code,{children:"Colors"}),", ",(0,r.jsx)(l.code,{children:"PlatformColorsAndroid"})]}),(0,r.jsx)(l.td,{align:"left",children:"False"}),(0,r.jsx)(l.td,{align:"left",children:"Undefined"}),(0,r.jsxs)(l.td,{align:"left",children:["Android color from ",(0,r.jsx)(l.code,{children:"Colors"})," or ",(0,r.jsx)(l.code,{children:"PlatformColorsAndroid"})]})]})]})]}),"\n",(0,r.jsx)(l.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,r.jsx)(l.pre,{children:(0,r.jsx)(l.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})})]})}const h=function(e={}){const{wrapper:l}=Object.assign({},(0,t.ah)(),e.components);return l?(0,r.jsx)(l,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c(e)}},1151:(e,l,n)=>{n.d(l,{Zo:()=>i,ah:()=>o});var r=n(7294);const t=r.createContext({});function o(e){const l=r.useContext(t);return r.useMemo((()=>"function"==typeof e?e(l):{...l,...e}),[l,e])}const s={};function i({components:e,children:l,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||s:o(e),r.createElement(t.Provider,{value:i},l)}}}]); \ No newline at end of file diff --git a/assets/js/328e254d.2b14dc19.js b/assets/js/328e254d.2b14dc19.js new file mode 100644 index 00000000..1bdb8a51 --- /dev/null +++ b/assets/js/328e254d.2b14dc19.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2918],{6139:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>s,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var r=l(5893),n=l(1151);const o={sidebar_position:2,title:"colorHelpers"},s=void 0,i={id:"helpers/color-helpers",title:"colorHelpers",description:"Content",source:"@site/docs/helpers/color-helpers.md",sourceDirName:"helpers",slug:"/helpers/color-helpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/color-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"colorHelpers"},sidebar:"tutorialSidebar",previous:{title:"calculatePage",permalink:"/react-native-template-strong/docs/helpers/calculate-page"},next:{title:"defaultKeyIdExtractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor"}},d={},c=[{value:"Content",id:"content",level:2},{value:"platformNativeColor",id:"platformnativecolor",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"platformLocalColor",id:"platformlocalcolor",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"platformMixedColor",id:"platformmixedcolor",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function a(e){const t={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsx)(t.p,{children:"Used to select color based on platform."}),"\n",(0,r.jsx)(t.h3,{id:"platformnativecolor",children:"platformNativeColor"}),"\n",(0,r.jsxs)(t.p,{children:["Selects color based on platform and if at least one is provided goes it through ",(0,r.jsx)(t.code,{children:"PlatformColor"})," otherwise returns ",(0,r.jsx)(t.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"iosColor"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"PlatformColorsIOS"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["iOS color from ",(0,r.jsx)(t.code,{children:"PlatformColorsIOS"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"androidColor"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"PlatformColorsAndroid"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["Android color from ",(0,r.jsx)(t.code,{children:"PlatformColorsAndroid"})]})]})]})]}),"\n",(0,r.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})}),"\n",(0,r.jsx)(t.h3,{id:"platformlocalcolor",children:"platformLocalColor"}),"\n",(0,r.jsxs)(t.p,{children:["Selects color based on platform and if at least one is provided returns it otherwise returns ",(0,r.jsx)(t.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(t.h4,{id:"params-1",children:"Params"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"iosColor"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"Colors"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["iOS color from ",(0,r.jsx)(t.code,{children:"Colors"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"androidColor"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"Colors"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["Android color from ",(0,r.jsx)(t.code,{children:"Colors"})]})]})]})]}),"\n",(0,r.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})}),"\n",(0,r.jsx)(t.h3,{id:"platformmixedcolor",children:"platformMixedColor"}),"\n",(0,r.jsxs)(t.p,{children:["Selects color based on platform and if at least one is provided returns it or goes it through ",(0,r.jsx)(t.code,{children:"PlatformColor"})," if it's type of ",(0,r.jsx)(t.code,{children:"PlatformColorsIOS"})," or ",(0,r.jsx)(t.code,{children:"PlatformColorsAndroid"})," otherwise returns ",(0,r.jsx)(t.code,{children:"undefined"}),"."]}),"\n",(0,r.jsx)(t.h4,{id:"params-2",children:"Params"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"iosColor"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,r.jsx)(t.code,{children:"Colors"}),", ",(0,r.jsx)(t.code,{children:"PlatformColorsIOS"})]}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["iOS color from ",(0,r.jsx)(t.code,{children:"Colors"})," or ",(0,r.jsx)(t.code,{children:"PlatformColorsIOS"})]})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"androidColor"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,r.jsx)(t.code,{children:"Colors"}),", ",(0,r.jsx)(t.code,{children:"PlatformColorsAndroid"})]}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsxs)(t.td,{style:{textAlign:"left"},children:["Android color from ",(0,r.jsx)(t.code,{children:"Colors"})," or ",(0,r.jsx)(t.code,{children:"PlatformColorsAndroid"})]})]})]})]}),"\n",(0,r.jsx)(t.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const LoadingComponent = () => {\n return (\n \n \n \n {localization.common.loading}\n \n \n );\n};\n"})})]})}function x(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(a,{...e})}):a(e)}},1151:(e,t,l)=>{l.d(t,{Z:()=>i,a:()=>s});var r=l(7294);const n={},o=r.createContext(n);function s(e){const t=r.useContext(o);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:s(e.components),r.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/39654635.2b5d32a9.js b/assets/js/39654635.2b5d32a9.js new file mode 100644 index 00000000..2f4747be --- /dev/null +++ b/assets/js/39654635.2b5d32a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7705],{970:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>f,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var o=n(5893),i=n(1151);const s={sidebar_position:8,title:"Babel config"},r=void 0,a={id:"configs/babel-config",title:"Babel config",description:"Babel config utilizes metro-react-native-babel-preset",source:"@site/docs/configs/babel-config.md",sourceDirName:"configs",slug:"/configs/babel-config",permalink:"/react-native-template-strong/docs/configs/babel-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/babel-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"Babel config"},sidebar:"tutorialSidebar",previous:{title:"Detox config",permalink:"/react-native-template-strong/docs/configs/detox-config"},next:{title:"iOS internals",permalink:"/react-native-template-strong/docs/internals/ios"}},c={},l=[];function d(e){const t={a:"a",code:"code",p:"p",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Babel config utilizes ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/metro-react-native-babel-preset",children:"metro-react-native-babel-preset"}),"\nby default."]}),"\n",(0,o.jsxs)(t.p,{children:["In production, it also removes ",(0,o.jsx)(t.code,{children:"console"})," by using ",(0,o.jsx)(t.a,{href:"https://github.com/babel/minify/tree/master/packages/babel-plugin-transform-remove-console",children:"transform-remove-console"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["There's also a transform of ",(0,o.jsx)(t.code,{children:"react-native-config"})," in test environment to ",(0,o.jsx)(t.a,{href:"https://github.com/luggit/react-native-config#testing",children:"mock it"}),"."]})]})}function f(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var o=n(7294);const i={},s=o.createContext(i);function r(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/39654635.7a5acff8.js b/assets/js/39654635.7a5acff8.js deleted file mode 100644 index c825e42b..00000000 --- a/assets/js/39654635.7a5acff8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7705],{970:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>b,frontMatter:()=>s,metadata:()=>r,toc:()=>l});var o=n(5893),i=n(1151);const s={sidebar_position:8,title:"Babel config"},a=void 0,r={unversionedId:"configs/babel-config",id:"configs/babel-config",title:"Babel config",description:"Babel config utilizes metro-react-native-babel-preset",source:"@site/docs/configs/babel-config.md",sourceDirName:"configs",slug:"/configs/babel-config",permalink:"/react-native-template-strong/docs/configs/babel-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/babel-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"Babel config"},sidebar:"tutorialSidebar",previous:{title:"Detox config",permalink:"/react-native-template-strong/docs/configs/detox-config"},next:{title:"iOS internals",permalink:"/react-native-template-strong/docs/internals/ios"}},c={},l=[];function d(e){const t=Object.assign({p:"p",a:"a",code:"code"},(0,i.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(t.p,{children:["Babel config utilizes ",(0,o.jsx)(t.a,{href:"https://www.npmjs.com/package/metro-react-native-babel-preset",children:"metro-react-native-babel-preset"}),"\nby default."]}),"\n",(0,o.jsxs)(t.p,{children:["In production, it also removes ",(0,o.jsx)(t.code,{children:"console"})," by using ",(0,o.jsx)(t.a,{href:"https://github.com/babel/minify/tree/master/packages/babel-plugin-transform-remove-console",children:"transform-remove-console"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["There's also a transform of ",(0,o.jsx)(t.code,{children:"react-native-config"})," in test environment to ",(0,o.jsx)(t.a,{href:"https://github.com/luggit/react-native-config#testing",children:"mock it"}),"."]})]})}const b=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>s});var o=n(7294);const i=o.createContext({});function s(e){const t=o.useContext(i);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||a:s(e),o.createElement(i.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/3a8d2d9f.4c2de3df.js b/assets/js/3a8d2d9f.4c2de3df.js deleted file mode 100644 index 6f571d1a..00000000 --- a/assets/js/3a8d2d9f.4c2de3df.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[945],{9503:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var s=t(5893),i=t(1151);const r={sidebar_position:3,title:"Detox"},o=void 0,d={unversionedId:"testing/detox",id:"testing/detox",title:"Detox",description:"Content",source:"@site/docs/testing/detox.md",sourceDirName:"testing",slug:"/testing/detox",permalink:"/react-native-template-strong/docs/testing/detox",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/detox.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Detox"},sidebar:"tutorialSidebar",previous:{title:"Storybook",permalink:"/react-native-template-strong/docs/testing/storybook"},next:{title:"Types",permalink:"/react-native-template-strong/docs/types"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Adding tests",id:"adding-tests",level:2},{value:"Running tests",id:"running-tests",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3},{value:"Changing devices",id:"changing-devices",level:2}];function l(e){const n=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre",h3:"h3"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(n.p,{children:"Detox tests are e2e (end-to-end) tests which are testing your mobile app while running in a real device/simulator, interacting with it just like a real user."}),"\n",(0,s.jsxs)(n.p,{children:["To learn more about Detox, check ",(0,s.jsx)(n.a,{href:"https://github.com/wix/Detox",children:"this page"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["All the tests are located in ",(0,s.jsx)(n.code,{children:"e2e"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Each created test file should follow the next template: ",(0,s.jsx)(n.code,{children:"testName.e2e.ts"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"adding-tests",children:"Adding tests"}),"\n",(0,s.jsxs)(n.p,{children:["See how you can add tests ",(0,s.jsx)(n.a,{href:"https://github.com/wix/Detox/blob/master/docs/Introduction.WritingFirstTest.md#step-3-add-testids-to-your-app-to-assist-in-matching-elements",children:"here"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"There's already a simple test to check how well the initial running process works:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'import {expect} from "detox";\n\ndescribe("Startup", () => {\n beforeAll(async () => {\n await device.launchApp();\n });\n\n it("Is first run", async () => {\n await expect(element(by.id("OnboardingButtonID"))).toBeVisible();\n await element(by.id("OnboardingButtonID")).tap();\n });\n\n it("Should show tabs", async () => {\n await expect(element(by.id("MainPageID"))).toExist();\n });\n});\n\n'})}),"\n",(0,s.jsx)(n.h2,{id:"running-tests",children:"Running tests"}),"\n",(0,s.jsxs)(n.p,{children:["You can run your tests in ",(0,s.jsx)(n.code,{children:"debug"})," and ",(0,s.jsx)(n.code,{children:"release"})," environments."]}),"\n",(0,s.jsx)(n.p,{children:"Before running them you have to build them."}),"\n",(0,s.jsx)(n.p,{children:"To do so do run the following scripts:"}),"\n",(0,s.jsx)(n.h3,{id:"ios",children:"iOS"}),"\n",(0,s.jsxs)(n.p,{children:["For debug:\n",(0,s.jsx)(n.code,{children:"npm run e2e:ios-debug"})]}),"\n",(0,s.jsxs)(n.p,{children:["For release:\n",(0,s.jsx)(n.code,{children:"npm run e2e:build-ios-release"})]}),"\n",(0,s.jsx)(n.p,{children:"To run the tests:"}),"\n",(0,s.jsxs)(n.p,{children:["For debug:\n",(0,s.jsx)(n.code,{children:"npm run e2e:ios-debug"})]}),"\n",(0,s.jsxs)(n.p,{children:["For release:\n",(0,s.jsx)(n.code,{children:"npm run e2e:ios-release"})]}),"\n",(0,s.jsx)(n.h3,{id:"android",children:"Android"}),"\n",(0,s.jsxs)(n.p,{children:["For debug:\n",(0,s.jsx)(n.code,{children:"npm run e2e:build-android-debug"})]}),"\n",(0,s.jsxs)(n.p,{children:["For release:\n",(0,s.jsx)(n.code,{children:"npm run e2e:build-android-release"})]}),"\n",(0,s.jsx)(n.p,{children:"To run the tests:"}),"\n",(0,s.jsxs)(n.p,{children:["For debug:\n",(0,s.jsx)(n.code,{children:"npm run e2e:android-debug"})]}),"\n",(0,s.jsxs)(n.p,{children:["For release:\n",(0,s.jsx)(n.code,{children:"npm run e2e:android-release"})]}),"\n",(0,s.jsx)(n.h2,{id:"changing-devices",children:"Changing devices"}),"\n",(0,s.jsx)(n.p,{children:"Initially the config is using emulators to run the tests on both iOS and Android:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'{\n "devices": {\n "simulator": {\n "type": "ios.simulator",\n "device": {\n "type": "iPhone 12 Pro"\n }\n },\n "emulator": {\n "type": "android.emulator",\n "device": {\n "avdName": "Pixel_5_API_30"\n }\n }\n },\n "configurations": {\n "ios.emu.debug": {\n "device": "simulator",\n "app": "ios.debug"\n },\n "ios.emu.release": {\n "device": "simulator",\n "app": "ios.release"\n },\n "android.emu.debug": {\n "device": "emulator",\n "app": "android.debug"\n },\n "android.emu.release": {\n "device": "emulator",\n "app": "android.release"\n }\n }\n}\n'})}),"\n",(0,s.jsx)(n.p,{children:"You can change it by adding your own emulators or real devices."}),"\n",(0,s.jsxs)(n.p,{children:["Check ",(0,s.jsx)(n.a,{href:"https://github.com/wix/Detox/blob/master/docs/APIRef.Configuration.md#device-configurations",children:"this page"})," to see how it can be done."]})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>d,ah:()=>r});var s=t(7294);const i=s.createContext({});function r(e){const n=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const o={};function d({components:e,children:n,disableParentContext:t}){let d;return d=t?"function"==typeof e?e({}):e||o:r(e),s.createElement(i.Provider,{value:d},n)}}}]); \ No newline at end of file diff --git a/assets/js/3a8d2d9f.fa1b2c61.js b/assets/js/3a8d2d9f.fa1b2c61.js new file mode 100644 index 00000000..be72a959 --- /dev/null +++ b/assets/js/3a8d2d9f.fa1b2c61.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[945],{9503:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>d,toc:()=>c});var i=t(5893),s=t(1151);const r={sidebar_position:3,title:"Detox"},o=void 0,d={id:"testing/detox",title:"Detox",description:"Content",source:"@site/docs/testing/detox.md",sourceDirName:"testing",slug:"/testing/detox",permalink:"/react-native-template-strong/docs/testing/detox",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/detox.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Detox"},sidebar:"tutorialSidebar",previous:{title:"Storybook",permalink:"/react-native-template-strong/docs/testing/storybook"},next:{title:"Types",permalink:"/react-native-template-strong/docs/types"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Adding tests",id:"adding-tests",level:2},{value:"Running tests",id:"running-tests",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3},{value:"Changing devices",id:"changing-devices",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(n.p,{children:"Detox tests are e2e (end-to-end) tests which are testing your mobile app while running in a real device/simulator, interacting with it just like a real user."}),"\n",(0,i.jsxs)(n.p,{children:["To learn more about Detox, check ",(0,i.jsx)(n.a,{href:"https://github.com/wix/Detox",children:"this page"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["All the tests are located in ",(0,i.jsx)(n.code,{children:"e2e"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Each created test file should follow the next template: ",(0,i.jsx)(n.code,{children:"testName.e2e.ts"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"adding-tests",children:"Adding tests"}),"\n",(0,i.jsxs)(n.p,{children:["See how you can add tests ",(0,i.jsx)(n.a,{href:"https://github.com/wix/Detox/blob/master/docs/Introduction.WritingFirstTest.md#step-3-add-testids-to-your-app-to-assist-in-matching-elements",children:"here"}),"."]}),"\n",(0,i.jsx)(n.p,{children:"There's already a simple test to check how well the initial running process works:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'import {expect} from "detox";\n\ndescribe("Startup", () => {\n beforeAll(async () => {\n await device.launchApp();\n });\n\n it("Is first run", async () => {\n await expect(element(by.id("OnboardingButtonID"))).toBeVisible();\n await element(by.id("OnboardingButtonID")).tap();\n });\n\n it("Should show tabs", async () => {\n await expect(element(by.id("MainPageID"))).toExist();\n });\n});\n\n'})}),"\n",(0,i.jsx)(n.h2,{id:"running-tests",children:"Running tests"}),"\n",(0,i.jsxs)(n.p,{children:["You can run your tests in ",(0,i.jsx)(n.code,{children:"debug"})," and ",(0,i.jsx)(n.code,{children:"release"})," environments."]}),"\n",(0,i.jsx)(n.p,{children:"Before running them you have to build them."}),"\n",(0,i.jsx)(n.p,{children:"To do so do run the following scripts:"}),"\n",(0,i.jsx)(n.h3,{id:"ios",children:"iOS"}),"\n",(0,i.jsxs)(n.p,{children:["For debug:\n",(0,i.jsx)(n.code,{children:"npm run e2e:ios-debug"})]}),"\n",(0,i.jsxs)(n.p,{children:["For release:\n",(0,i.jsx)(n.code,{children:"npm run e2e:build-ios-release"})]}),"\n",(0,i.jsx)(n.p,{children:"To run the tests:"}),"\n",(0,i.jsxs)(n.p,{children:["For debug:\n",(0,i.jsx)(n.code,{children:"npm run e2e:ios-debug"})]}),"\n",(0,i.jsxs)(n.p,{children:["For release:\n",(0,i.jsx)(n.code,{children:"npm run e2e:ios-release"})]}),"\n",(0,i.jsx)(n.h3,{id:"android",children:"Android"}),"\n",(0,i.jsxs)(n.p,{children:["For debug:\n",(0,i.jsx)(n.code,{children:"npm run e2e:build-android-debug"})]}),"\n",(0,i.jsxs)(n.p,{children:["For release:\n",(0,i.jsx)(n.code,{children:"npm run e2e:build-android-release"})]}),"\n",(0,i.jsx)(n.p,{children:"To run the tests:"}),"\n",(0,i.jsxs)(n.p,{children:["For debug:\n",(0,i.jsx)(n.code,{children:"npm run e2e:android-debug"})]}),"\n",(0,i.jsxs)(n.p,{children:["For release:\n",(0,i.jsx)(n.code,{children:"npm run e2e:android-release"})]}),"\n",(0,i.jsx)(n.h2,{id:"changing-devices",children:"Changing devices"}),"\n",(0,i.jsx)(n.p,{children:"Initially the config is using emulators to run the tests on both iOS and Android:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-json",children:'{\n "devices": {\n "simulator": {\n "type": "ios.simulator",\n "device": {\n "type": "iPhone 12 Pro"\n }\n },\n "emulator": {\n "type": "android.emulator",\n "device": {\n "avdName": "Pixel_5_API_30"\n }\n }\n },\n "configurations": {\n "ios.emu.debug": {\n "device": "simulator",\n "app": "ios.debug"\n },\n "ios.emu.release": {\n "device": "simulator",\n "app": "ios.release"\n },\n "android.emu.debug": {\n "device": "emulator",\n "app": "android.debug"\n },\n "android.emu.release": {\n "device": "emulator",\n "app": "android.release"\n }\n }\n}\n'})}),"\n",(0,i.jsx)(n.p,{children:"You can change it by adding your own emulators or real devices."}),"\n",(0,i.jsxs)(n.p,{children:["Check ",(0,i.jsx)(n.a,{href:"https://github.com/wix/Detox/blob/master/docs/APIRef.Configuration.md#device-configurations",children:"this page"})," to see how it can be done."]})]})}function u(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>o});var i=t(7294);const s={},r=i.createContext(s);function o(e){const n=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3c45ece2.48cbf5e3.js b/assets/js/3c45ece2.48cbf5e3.js new file mode 100644 index 00000000..ba7303a0 --- /dev/null +++ b/assets/js/3c45ece2.48cbf5e3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[447],{2925:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>l});var n=o(5893),s=o(1151);const r={sidebar_position:2,title:"Storybook"},i=void 0,a={id:"testing/storybook",title:"Storybook",description:"Content",source:"@site/docs/testing/storybook.md",sourceDirName:"testing",slug:"/testing/storybook",permalink:"/react-native-template-strong/docs/testing/storybook",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/storybook.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Storybook"},sidebar:"tutorialSidebar",previous:{title:"Jest",permalink:"/react-native-template-strong/docs/testing/jest"},next:{title:"Detox",permalink:"/react-native-template-strong/docs/testing/detox"}},d={},l=[{value:"Content",id:"content",level:2},{value:"Opening Storybook",id:"opening-storybook",level:2},{value:"Adding stories",id:"adding-stories",level:2},{value:"Plugins",id:"plugins",level:2}];function c(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsx)(t.p,{children:"Storybook is a powerful frontend workshop environment tool that allows teams to design, build, and organize UI components (and even full screens!) without getting tripped up over business logic and plumbing."}),"\n",(0,n.jsxs)(t.p,{children:["To learn more about Storybook, check ",(0,n.jsx)(t.a,{href:"https://storybook.js.org/tutorials/intro-to-storybook/react-native/en/get-started/",children:"this page"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["All the stories are located in ",(0,n.jsx)(t.code,{children:"storybook"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Each created story file should follow the next template: ",(0,n.jsx)(t.code,{children:"testName.stories.tsx"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"opening-storybook",children:"Opening Storybook"}),"\n",(0,n.jsx)(t.p,{children:"To open Storybook in debug mode, shake your device to open dev. menu and at the very bottom you can see Storybook."}),"\n",(0,n.jsx)(t.p,{children:"The overlay will open where you can see individual stories."}),"\n",(0,n.jsx)(t.h2,{id:"adding-stories",children:"Adding stories"}),"\n",(0,n.jsxs)(t.p,{children:["If it's a component then you can add it to ",(0,n.jsx)(t.code,{children:"Components.stories.tsx"})," by following the same structure defined there."]}),"\n",(0,n.jsxs)(t.p,{children:["If you'd like to create a separate stories, then create a file in the ",(0,n.jsx)(t.code,{children:"storybook/stories"})," folder with proper naming."]}),"\n",(0,n.jsxs)(t.p,{children:["Create a stories' module (as example I will use ",(0,n.jsx)(t.code,{children:"Components"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'const ComponentsStories = storiesOf("Components", module);\n'})}),"\n",(0,n.jsx)(t.p,{children:"Add your stories into it:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'ComponentsStories.add("PrimaryButton", () => );\n\nComponentsStories.add("PrimaryTextInput", () => );\n\nComponentsStories.add("RadioButton", () => );\n'})}),"\n",(0,n.jsxs)(t.p,{children:["And don't forget to require it in ",(0,n.jsx)(t.code,{children:"storybook/stories.ts"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'if (__DEV__) {\n require("./stories/Theme.stories");\n require("./stories/Formatter.stories");\n require("./stories/Resources.stories");\n require("./stories/Components.stories");\n require("./stories/ModalsOverlays.stories");\n require("./stories/Alerts.stories");\n}\n\nexport {};\n'})}),"\n",(0,n.jsx)(t.h2,{id:"plugins",children:"Plugins"}),"\n",(0,n.jsx)(t.p,{children:"There two plugins installed at this moment in this template:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"@storybook/addon-ondevice-actions"})," - mock ",(0,n.jsx)(t.code,{children:"onPress"})," calls with actions that will log information in the actions tab"]}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"@storybook/addon-ondevice-knobs"})," - adjust your components props in realtime"]}),"\n"]}),"\n",(0,n.jsxs)(t.p,{children:["You can check ",(0,n.jsx)(t.a,{href:"https://storybook.js.org/addons/@storybook/addon-ondevice-actions",children:"this page"})," about plugins usage."]})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},1151:(e,t,o)=>{o.d(t,{Z:()=>a,a:()=>i});var n=o(7294);const s={},r=n.createContext(s);function i(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3c45ece2.d7a2f459.js b/assets/js/3c45ece2.d7a2f459.js deleted file mode 100644 index f86348da..00000000 --- a/assets/js/3c45ece2.d7a2f459.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[447],{2925:(e,t,o)=>{o.r(t),o.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>l});var s=o(5893),n=o(1151);const i={sidebar_position:2,title:"Storybook"},r=void 0,a={unversionedId:"testing/storybook",id:"testing/storybook",title:"Storybook",description:"Content",source:"@site/docs/testing/storybook.md",sourceDirName:"testing",slug:"/testing/storybook",permalink:"/react-native-template-strong/docs/testing/storybook",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/storybook.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Storybook"},sidebar:"tutorialSidebar",previous:{title:"Jest",permalink:"/react-native-template-strong/docs/testing/jest"},next:{title:"Detox",permalink:"/react-native-template-strong/docs/testing/detox"}},d={},l=[{value:"Content",id:"content",level:2},{value:"Opening Storybook",id:"opening-storybook",level:2},{value:"Adding stories",id:"adding-stories",level:2},{value:"Plugins",id:"plugins",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre",ul:"ul",li:"li"},(0,n.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Storybook is a powerful frontend workshop environment tool that allows teams to design, build, and organize UI components (and even full screens!) without getting tripped up over business logic and plumbing."}),"\n",(0,s.jsxs)(t.p,{children:["To learn more about Storybook, check ",(0,s.jsx)(t.a,{href:"https://storybook.js.org/tutorials/intro-to-storybook/react-native/en/get-started/",children:"this page"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["All the stories are located in ",(0,s.jsx)(t.code,{children:"storybook"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Each created story file should follow the next template: ",(0,s.jsx)(t.code,{children:"testName.stories.tsx"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"opening-storybook",children:"Opening Storybook"}),"\n",(0,s.jsx)(t.p,{children:"To open Storybook in debug mode, shake your device to open dev. menu and at the very bottom you can see Storybook."}),"\n",(0,s.jsx)(t.p,{children:"The overlay will open where you can see individual stories."}),"\n",(0,s.jsx)(t.h2,{id:"adding-stories",children:"Adding stories"}),"\n",(0,s.jsxs)(t.p,{children:["If it's a component then you can add it to ",(0,s.jsx)(t.code,{children:"Components.stories.tsx"})," by following the same structure defined there."]}),"\n",(0,s.jsxs)(t.p,{children:["If you'd like to create a separate stories, then create a file in the ",(0,s.jsx)(t.code,{children:"storybook/stories"})," folder with proper naming."]}),"\n",(0,s.jsxs)(t.p,{children:["Create a stories' module (as example I will use ",(0,s.jsx)(t.code,{children:"Components"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'const ComponentsStories = storiesOf("Components", module);\n'})}),"\n",(0,s.jsx)(t.p,{children:"Add your stories into it:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'ComponentsStories.add("PrimaryButton", () => );\n\nComponentsStories.add("PrimaryTextInput", () => );\n\nComponentsStories.add("RadioButton", () => );\n'})}),"\n",(0,s.jsxs)(t.p,{children:["And don't forget to require it in ",(0,s.jsx)(t.code,{children:"storybook/stories.ts"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'if (__DEV__) {\n require("./stories/Theme.stories");\n require("./stories/Formatter.stories");\n require("./stories/Resources.stories");\n require("./stories/Components.stories");\n require("./stories/ModalsOverlays.stories");\n require("./stories/Alerts.stories");\n}\n\nexport {};\n'})}),"\n",(0,s.jsx)(t.h2,{id:"plugins",children:"Plugins"}),"\n",(0,s.jsx)(t.p,{children:"There two plugins installed at this moment in this template:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"@storybook/addon-ondevice-actions"})," - mock ",(0,s.jsx)(t.code,{children:"onPress"})," calls with actions that will log information in the actions tab"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"@storybook/addon-ondevice-knobs"})," - adjust your components props in realtime"]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["You can check ",(0,s.jsx)(t.a,{href:"https://storybook.js.org/addons/@storybook/addon-ondevice-actions",children:"this page"})," about plugins usage."]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,n.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(c,e)})):c(e)}},1151:(e,t,o)=>{o.d(t,{Zo:()=>a,ah:()=>i});var s=o(7294);const n=s.createContext({});function i(e){const t=s.useContext(n);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function a({components:e,children:t,disableParentContext:o}){let a;return a=o?"function"==typeof e?e({}):e||r:i(e),s.createElement(n.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/3efb1320.4c1056c2.js b/assets/js/3efb1320.4c1056c2.js deleted file mode 100644 index 0b75d6d9..00000000 --- a/assets/js/3efb1320.4c1056c2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4258],{7628:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>r,metadata:()=>l,toc:()=>d});var i=n(5893),s=n(1151);const r={sidebar_position:12,title:"EmptyView"},a=void 0,l={unversionedId:"components/empty-view",id:"components/empty-view",title:"EmptyView",description:"Content",source:"@site/docs/components/empty-view.md",sourceDirName:"components",slug:"/components/empty-view",permalink:"/react-native-template-strong/docs/components/empty-view",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/empty-view.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"EmptyView"},sidebar:"tutorialSidebar",previous:{title:"RadioIcon",permalink:"/react-native-template-strong/docs/components/radio-icon"},next:{title:"PhotoTakingButton",permalink:"/react-native-template-strong/docs/components/photo-taking-button"}},o={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,s.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(t.p,{children:["Empty view with title and description. Used mostly in conjunction with ",(0,i.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,i.jsx)(t.code,{children:"SectionListWrapper"})," as ",(0,i.jsx)(t.code,{children:"ListEmptyComponent"})," (used as default property in both of them)."]}),"\n",(0,i.jsx)(t.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{align:"left",children:"Name"}),(0,i.jsx)(t.th,{align:"left",children:"Type"}),(0,i.jsx)(t.th,{align:"left",children:"Required"}),(0,i.jsx)(t.th,{align:"left",children:"Default value"}),(0,i.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,i.jsxs)(t.tbody,{children:[(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{align:"left",children:"title"}),(0,i.jsx)(t.td,{align:"left",children:(0,i.jsx)(t.code,{children:"string"})}),(0,i.jsx)(t.td,{align:"left",children:"True"}),(0,i.jsx)(t.td,{align:"left",children:"-"}),(0,i.jsx)(t.td,{align:"left",children:"Title message"})]}),(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{align:"left",children:"description"}),(0,i.jsx)(t.td,{align:"left",children:(0,i.jsx)(t.code,{children:"string"})}),(0,i.jsx)(t.td,{align:"left",children:"True"}),(0,i.jsx)(t.td,{align:"left",children:"-"}),(0,i.jsx)(t.td,{align:"left",children:"Description message"})]})]})]}),"\n",(0,i.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'return (\n \n);\n'})}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n ListEmptyComponent: ,\n onEndReachedThreshold: 1,\n};\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,i.jsx)(t,Object.assign({},e,{children:(0,i.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>r});var i=n(7294);const s=i.createContext({});function r(e){const t=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||a:r(e),i.createElement(s.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/3efb1320.f38a847a.js b/assets/js/3efb1320.f38a847a.js new file mode 100644 index 00000000..261e895d --- /dev/null +++ b/assets/js/3efb1320.f38a847a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4258],{7628:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>l,metadata:()=>o,toc:()=>d});var s=n(5893),i=n(1151);const l={sidebar_position:12,title:"EmptyView"},r=void 0,o={id:"components/empty-view",title:"EmptyView",description:"Content",source:"@site/docs/components/empty-view.md",sourceDirName:"components",slug:"/components/empty-view",permalink:"/react-native-template-strong/docs/components/empty-view",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/empty-view.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:12,frontMatter:{sidebar_position:12,title:"EmptyView"},sidebar:"tutorialSidebar",previous:{title:"RadioIcon",permalink:"/react-native-template-strong/docs/components/radio-icon"},next:{title:"PhotoTakingButton",permalink:"/react-native-template-strong/docs/components/photo-taking-button"}},a={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Empty view with title and description. Used mostly in conjunction with ",(0,s.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,s.jsx)(t.code,{children:"SectionListWrapper"})," as ",(0,s.jsx)(t.code,{children:"ListEmptyComponent"})," (used as default property in both of them)."]}),"\n",(0,s.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"title"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Title message"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"description"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Description message"})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'return (\n \n);\n'})}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n ListEmptyComponent: ,\n onEndReachedThreshold: 1,\n};\n"})})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>r});var s=n(7294);const i={},l=s.createContext(i);function r(e){const t=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/3fdaf820.e3887165.js b/assets/js/3fdaf820.e3887165.js new file mode 100644 index 00000000..2dd67c9f --- /dev/null +++ b/assets/js/3fdaf820.e3887165.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[759],{3570:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>i,default:()=>h,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var a=t(5893),s=t(1151);const o={sidebar_position:1,title:"Translations"},i=void 0,l={id:"localisation/translations",title:"Translations",description:"Localisation is made possible by react-native-localization.",source:"@site/docs/localisation/translations.md",sourceDirName:"localisation",slug:"/localisation/translations",permalink:"/react-native-template-strong/docs/localisation/translations",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/translations.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Translations"},sidebar:"tutorialSidebar",previous:{title:"useWhyDidYouUpdate",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update"},next:{title:"Add language",permalink:"/react-native-template-strong/docs/localisation/add-language"}},r={},c=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Translations structure",id:"translations-structure",level:2},{value:"Add translation",id:"add-translation",level:2},{value:"Default language",id:"default-language",level:2}];function d(n){const e={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,s.a)(),...n.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(e.p,{children:["Localisation is made possible by ",(0,a.jsx)(e.a,{href:"https://github.com/stefalda/ReactNativeLocalization",children:"react-native-localization"}),"."]}),"\n",(0,a.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,a.jsxs)(e.p,{children:["Localization file are located at ",(0,a.jsx)(e.code,{children:"/src/common/localization/localization.ts"}),"."]}),"\n",(0,a.jsx)(e.p,{children:"It has translation methods and the constant object which holds all the translations:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:"export const localization = {\n common: new LocalizedStrings(commonLocalization),\n errors: new LocalizedStrings(errorsLocalization),\n empty: new LocalizedStrings(emptyLocalization),\n pages: new LocalizedStrings(pagesLocalization),\n onboarding: new LocalizedStrings(onboardingLocalization),\n};\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Translations itself are located in ",(0,a.jsx)(e.code,{children:"/src/common/localization/translations"}),"."]}),"\n",(0,a.jsx)(e.p,{children:"Each translation file is represented by simple constant object which holds languages as properties which hold translations strings."}),"\n",(0,a.jsx)(e.p,{children:"Common localization:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:'export const commonLocalization = {\n en: {\n search: "Search",\n selectPhoto: "Select a photo",\n takePhoto: "Take a photo",\n chooseFromLibrary: "Choose from library",\n cancel: "Cancel",\n reject: "Reject",\n delete: "Delete",\n back: "Back",\n next: "Next",\n done: "Done",\n ok: "Ok",\n continue: "Continue",\n save: "Save",\n loading: "Loading",\n photo: "Photo",\n yes: "Yes",\n no: "No",\n areYouSure: "Are you sure?",\n warning: "Warning",\n success: "Success",\n select: "Select",\n dataSuccessfullyUpdated: "Data has been successfully updated",\n settings: "Settings",\n },\n};\n'})}),"\n",(0,a.jsx)(e.p,{children:"It can be string or function."}),"\n",(0,a.jsx)(e.p,{children:"Function example:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:' stops: (stopsCount: number) => {\n return stopsCount + (stopsCount > 1 ? " stops" : " stop");\n },\n km: (distance: string | number) => {\n return distance + " km";\n },\n'})}),"\n",(0,a.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsx)(e.p,{children:"Import the localization constant and use needed translation string:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"\n {localization.common.loading}\n\n"})}),"\n",(0,a.jsx)(e.h2,{id:"translations-structure",children:"Translations structure"}),"\n",(0,a.jsx)(e.p,{children:"The structure is pretty simple:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"commonLocalization.ts"})," - contains common strings like yes, no, loading etc."]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"emptyLocalization.ts"})," - contains strings for empty cases like No data, nothing was found etc."]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"errorsLocalization.ts"})," - contains error related strings"]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"pagesLocalization.ts"})," - contains pages, tabs, modals, overlays titles"]}),"\n"]}),"\n",(0,a.jsx)(e.p,{children:"Then there are pages specific localization strings:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"onboardingLocalization.ts"})," - contains strings needed for Onboarding"]}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"add-translation",children:"Add translation"}),"\n",(0,a.jsx)(e.p,{children:"Based on what your specific need is (page, common, error etc.) selected the translation file or create one if it's for a page."}),"\n",(0,a.jsxs)(e.p,{children:["If you created a file, don't forget to add it into ",(0,a.jsx)(e.code,{children:"localization"})," constant."]}),"\n",(0,a.jsx)(e.p,{children:"Then add a translation string to every language that you have."}),"\n",(0,a.jsx)(e.h2,{id:"default-language",children:"Default language"}),"\n",(0,a.jsx)(e.p,{children:"By default, there's only English language present in the template."}),"\n",(0,a.jsx)(e.p,{children:"The first language which goes in translation files is going to be the default one."})]})}function h(n={}){const{wrapper:e}={...(0,s.a)(),...n.components};return e?(0,a.jsx)(e,{...n,children:(0,a.jsx)(d,{...n})}):d(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>l,a:()=>i});var a=t(7294);const s={},o=a.createContext(s);function i(n){const e=a.useContext(o);return a.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function l(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(s):n.components||s:i(n.components),a.createElement(o.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/3fdaf820.e96c871d.js b/assets/js/3fdaf820.e96c871d.js deleted file mode 100644 index e21b3723..00000000 --- a/assets/js/3fdaf820.e96c871d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[759],{3570:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var a=t(5893),s=t(1151);const i={sidebar_position:1,title:"Translations"},o=void 0,l={unversionedId:"localisation/translations",id:"localisation/translations",title:"Translations",description:"Localisation is made possible by react-native-localization.",source:"@site/docs/localisation/translations.md",sourceDirName:"localisation",slug:"/localisation/translations",permalink:"/react-native-template-strong/docs/localisation/translations",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/translations.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Translations"},sidebar:"tutorialSidebar",previous:{title:"useWhyDidYouUpdate",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update"},next:{title:"Add language",permalink:"/react-native-template-strong/docs/localisation/add-language"}},r={},c=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Translations structure",id:"translations-structure",level:2},{value:"Add translation",id:"add-translation",level:2},{value:"Default language",id:"default-language",level:2}];function d(n){const e=Object.assign({p:"p",a:"a",h2:"h2",code:"code",pre:"pre",ul:"ul",li:"li"},(0,s.ah)(),n.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)(e.p,{children:["Localisation is made possible by ",(0,a.jsx)(e.a,{href:"https://github.com/stefalda/ReactNativeLocalization",children:"react-native-localization"}),"."]}),"\n",(0,a.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,a.jsxs)(e.p,{children:["Localization file are located at ",(0,a.jsx)(e.code,{children:"/src/common/localization/localization.ts"}),"."]}),"\n",(0,a.jsx)(e.p,{children:"It has translation methods and the constant object which holds all the translations:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:"export const localization = {\n common: new LocalizedStrings(commonLocalization),\n errors: new LocalizedStrings(errorsLocalization),\n empty: new LocalizedStrings(emptyLocalization),\n pages: new LocalizedStrings(pagesLocalization),\n onboarding: new LocalizedStrings(onboardingLocalization),\n};\n"})}),"\n",(0,a.jsxs)(e.p,{children:["Translations itself are located in ",(0,a.jsx)(e.code,{children:"/src/common/localization/translations"}),"."]}),"\n",(0,a.jsx)(e.p,{children:"Each translation file is represented by simple constant object which holds languages as properties which hold translations strings."}),"\n",(0,a.jsx)(e.p,{children:"Common localization:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:'export const commonLocalization = {\n en: {\n search: "Search",\n selectPhoto: "Select a photo",\n takePhoto: "Take a photo",\n chooseFromLibrary: "Choose from library",\n cancel: "Cancel",\n reject: "Reject",\n delete: "Delete",\n back: "Back",\n next: "Next",\n done: "Done",\n ok: "Ok",\n continue: "Continue",\n save: "Save",\n loading: "Loading",\n photo: "Photo",\n yes: "Yes",\n no: "No",\n areYouSure: "Are you sure?",\n warning: "Warning",\n success: "Success",\n select: "Select",\n dataSuccessfullyUpdated: "Data has been successfully updated",\n settings: "Settings",\n },\n};\n'})}),"\n",(0,a.jsx)(e.p,{children:"It can be string or function."}),"\n",(0,a.jsx)(e.p,{children:"Function example:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",children:' stops: (stopsCount: number) => {\n return stopsCount + (stopsCount > 1 ? " stops" : " stop");\n },\n km: (distance: string | number) => {\n return distance + " km";\n },\n'})}),"\n",(0,a.jsx)(e.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsx)(e.p,{children:"Import the localization constant and use needed translation string:"}),"\n",(0,a.jsx)(e.pre,{children:(0,a.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"\n {localization.common.loading}\n\n"})}),"\n",(0,a.jsx)(e.h2,{id:"translations-structure",children:"Translations structure"}),"\n",(0,a.jsx)(e.p,{children:"The structure is pretty simple:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"commonLocalization.ts"})," - contains common strings like yes, no, loading etc."]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"emptyLocalization.ts"})," - contains strings for empty cases like No data, nothing was found etc."]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"errorsLocalization.ts"})," - contains error related strings"]}),"\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"pagesLocalization.ts"})," - contains pages, tabs, modals, overlays titles"]}),"\n"]}),"\n",(0,a.jsx)(e.p,{children:"Then there are pages specific localization strings:"}),"\n",(0,a.jsxs)(e.ul,{children:["\n",(0,a.jsxs)(e.li,{children:[(0,a.jsx)(e.code,{children:"onboardingLocalization.ts"})," - contains strings needed for Onboarding"]}),"\n"]}),"\n",(0,a.jsx)(e.h2,{id:"add-translation",children:"Add translation"}),"\n",(0,a.jsx)(e.p,{children:"Based on what your specific need is (page, common, error etc.) selected the translation file or create one if it's for a page."}),"\n",(0,a.jsxs)(e.p,{children:["If you created a file, don't forget to add it into ",(0,a.jsx)(e.code,{children:"localization"})," constant."]}),"\n",(0,a.jsx)(e.p,{children:"Then add a translation string to every language that you have."}),"\n",(0,a.jsx)(e.h2,{id:"default-language",children:"Default language"}),"\n",(0,a.jsx)(e.p,{children:"By default, there's only English language present in the template."}),"\n",(0,a.jsx)(e.p,{children:"The first language which goes in translation files is going to be the default one."})]})}const h=function(n={}){const{wrapper:e}=Object.assign({},(0,s.ah)(),n.components);return e?(0,a.jsx)(e,Object.assign({},n,{children:(0,a.jsx)(d,n)})):d(n)}},1151:(n,e,t)=>{t.d(e,{Zo:()=>l,ah:()=>i});var a=t(7294);const s=a.createContext({});function i(n){const e=a.useContext(s);return a.useMemo((()=>"function"==typeof n?n(e):{...e,...n}),[e,n])}const o={};function l({components:n,children:e,disableParentContext:t}){let l;return l=t?"function"==typeof n?n({}):n||o:i(n),a.createElement(s.Provider,{value:l},e)}}}]); \ No newline at end of file diff --git a/assets/js/43bdb0b8.26c974a0.js b/assets/js/43bdb0b8.26c974a0.js deleted file mode 100644 index 37f1ccc3..00000000 --- a/assets/js/43bdb0b8.26c974a0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6394],{5377:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>a,toc:()=>c});var l=t(5893),s=t(1151);const i={sidebar_position:4,title:"dialogsHelpers"},d=void 0,a={unversionedId:"helpers/dialogs-helpers",id:"helpers/dialogs-helpers",title:"dialogsHelpers",description:"Content",source:"@site/docs/helpers/dialogs-helpers.md",sourceDirName:"helpers",slug:"/helpers/dialogs-helpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/dialogs-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"dialogsHelpers"},sidebar:"tutorialSidebar",previous:{title:"defaultKeyIdExtractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor"},next:{title:"imageHelpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers"}},r={},c=[{value:"Content",id:"content",level:2},{value:"showActionSheet",id:"showactionsheet",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"showAlert",id:"showalert",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"showCommonDialog",id:"showcommondialog",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function o(e){const n=Object.assign({h2:"h2",p:"p",h3:"h3",code:"code",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,s.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(n.p,{children:"Used to show dialogs, alerts and action sheets"}),"\n",(0,l.jsx)(n.h3,{id:"showactionsheet",children:"showActionSheet"}),"\n",(0,l.jsxs)(n.p,{children:["Shows action sheet on iOS with defined options, on Android it shows React Native's ",(0,l.jsx)(n.code,{children:"Alert"})," with title, message and buttons."]}),"\n",(0,l.jsx)(n.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"options"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ActionSheetIOSOptions"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsxs)(n.td,{align:"left",children:["Options which will be used to show ",(0,l.jsx)(n.code,{children:"ActionSheetIOS"})," or ",(0,l.jsx)(n.code,{children:"Alert.alert"})]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"onOptionSelected"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"(optionIndex: number) => void"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"Handler which receives selected index of button"})]})]})]}),"\n",(0,l.jsx)(n.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' const onShowActionSheetPress = useCallback(() => {\n showActionSheet(\n {\n title: "Action Sheet Title",\n options: ["Cancel", "Action 1", "Action 2"],\n cancelButtonIndex: 0,\n destructiveButtonIndex: 3,\n message: "Action Sheet Message",\n },\n (optionIndex) => {\n console.warn(`Option ${optionIndex} was pressed`);\n },\n );\n}, []);\n'})}),"\n",(0,l.jsx)(n.h3,{id:"showalert",children:"showAlert"}),"\n",(0,l.jsxs)(n.p,{children:["Shows React Native's ",(0,l.jsx)(n.code,{children:"Alert"})," with provided parameters."]}),"\n",(0,l.jsx)(n.h4,{id:"params-1",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"title"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"The dialog's title. Passing empty string will hide the title"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"message"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"An optional message that appears below the dialog's title"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"buttons"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"AlertButton[]"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"An optional array containing buttons configuration"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"options"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"AlertOptions"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"{cancelable: true}"})}),(0,l.jsx)(n.td,{align:"left",children:"An optional Alert configuration for the Android"})]})]})]}),"\n",(0,l.jsx)(n.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' const onShowAlertPress = useCallback(() => {\n showAlert("Title", "Message", [\n {\n text: "Action 1",\n onPress: () => {\n console.warn("Action 1 was pressed");\n },\n style: "default",\n },\n {\n text: "Action 2",\n onPress: () => {\n console.warn("Action 2 was pressed");\n },\n style: "destructive",\n },\n ]);\n}, []);\n'})}),"\n",(0,l.jsx)(n.h3,{id:"showcommondialog",children:"showCommonDialog"}),"\n",(0,l.jsx)(n.p,{children:"Shows common yes-no dialog with title and message and on yes press callback."}),"\n",(0,l.jsx)(n.h4,{id:"params-2",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"title"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"The dialog's title. Passing empty string will hide the title"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"message"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"The message that appears below the dialog's title"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"onAcceptPress"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"() => void"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsxs)(n.td,{align:"left",children:["The callback from ",(0,l.jsx)(n.code,{children:"Yes"})," pressed button"]})]})]})]}),"\n",(0,l.jsx)(n.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' const onShowCommonDialogPress = useCallback(() => {\n showCommonDialog("Title", "Message", () => {\n console.warn("You pressed Yes");\n });\n}, []);\n'})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,l.jsx)(n,Object.assign({},e,{children:(0,l.jsx)(o,e)})):o(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>i});var l=t(7294);const s=l.createContext({});function i(e){const n=l.useContext(s);return l.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const d={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||d:i(e),l.createElement(s.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/43bdb0b8.35035e38.js b/assets/js/43bdb0b8.35035e38.js new file mode 100644 index 00000000..607bdf5a --- /dev/null +++ b/assets/js/43bdb0b8.35035e38.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6394],{5377:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>c,contentTitle:()=>d,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>o});var s=l(5893),n=l(1151);const i={sidebar_position:4,title:"dialogsHelpers"},d=void 0,r={id:"helpers/dialogs-helpers",title:"dialogsHelpers",description:"Content",source:"@site/docs/helpers/dialogs-helpers.md",sourceDirName:"helpers",slug:"/helpers/dialogs-helpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/dialogs-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"dialogsHelpers"},sidebar:"tutorialSidebar",previous:{title:"defaultKeyIdExtractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor"},next:{title:"imageHelpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers"}},c={},o=[{value:"Content",id:"content",level:2},{value:"showActionSheet",id:"showactionsheet",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"showAlert",id:"showalert",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"showCommonDialog",id:"showcommondialog",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function a(e){const t={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Used to show dialogs, alerts and action sheets"}),"\n",(0,s.jsx)(t.h3,{id:"showactionsheet",children:"showActionSheet"}),"\n",(0,s.jsxs)(t.p,{children:["Shows action sheet on iOS with defined options, on Android it shows React Native's ",(0,s.jsx)(t.code,{children:"Alert"})," with title, message and buttons."]}),"\n",(0,s.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"options"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"ActionSheetIOSOptions"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsxs)(t.td,{style:{textAlign:"left"},children:["Options which will be used to show ",(0,s.jsx)(t.code,{children:"ActionSheetIOS"})," or ",(0,s.jsx)(t.code,{children:"Alert.alert"})]})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"onOptionSelected"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"(optionIndex: number) => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Handler which receives selected index of button"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' const onShowActionSheetPress = useCallback(() => {\n showActionSheet(\n {\n title: "Action Sheet Title",\n options: ["Cancel", "Action 1", "Action 2"],\n cancelButtonIndex: 0,\n destructiveButtonIndex: 3,\n message: "Action Sheet Message",\n },\n (optionIndex) => {\n console.warn(`Option ${optionIndex} was pressed`);\n },\n );\n}, []);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"showalert",children:"showAlert"}),"\n",(0,s.jsxs)(t.p,{children:["Shows React Native's ",(0,s.jsx)(t.code,{children:"Alert"})," with provided parameters."]}),"\n",(0,s.jsx)(t.h4,{id:"params-1",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"title"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"The dialog's title. Passing empty string will hide the title"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"message"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"An optional message that appears below the dialog's title"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"buttons"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"AlertButton[]"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"An optional array containing buttons configuration"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"options"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"AlertOptions"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"{cancelable: true}"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"An optional Alert configuration for the Android"})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' const onShowAlertPress = useCallback(() => {\n showAlert("Title", "Message", [\n {\n text: "Action 1",\n onPress: () => {\n console.warn("Action 1 was pressed");\n },\n style: "default",\n },\n {\n text: "Action 2",\n onPress: () => {\n console.warn("Action 2 was pressed");\n },\n style: "destructive",\n },\n ]);\n}, []);\n'})}),"\n",(0,s.jsx)(t.h3,{id:"showcommondialog",children:"showCommonDialog"}),"\n",(0,s.jsx)(t.p,{children:"Shows common yes-no dialog with title and message and on yes press callback."}),"\n",(0,s.jsx)(t.h4,{id:"params-2",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"title"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"The dialog's title. Passing empty string will hide the title"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"message"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"The message that appears below the dialog's title"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"onAcceptPress"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"() => void"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsxs)(t.td,{style:{textAlign:"left"},children:["The callback from ",(0,s.jsx)(t.code,{children:"Yes"})," pressed button"]})]})]})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' const onShowCommonDialogPress = useCallback(() => {\n showCommonDialog("Title", "Message", () => {\n console.warn("You pressed Yes");\n });\n}, []);\n'})})]})}function h(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,t,l)=>{l.d(t,{Z:()=>r,a:()=>d});var s=l(7294);const n={},i=s.createContext(n);function d(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:d(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/449809ec.3e26d3c8.js b/assets/js/449809ec.3e26d3c8.js new file mode 100644 index 00000000..8fd87834 --- /dev/null +++ b/assets/js/449809ec.3e26d3c8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2544],{8949:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>d});var a=r(5893),n=r(1151);const s={sidebar_position:2,title:"listHandlers"},l=void 0,i={id:"utils/list-handlers",title:"listHandlers",description:"commonListFulfilledHandler",source:"@site/docs/utils/list-handlers.md",sourceDirName:"utils",slug:"/utils/list-handlers",permalink:"/react-native-template-strong/docs/utils/list-handlers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/list-handlers.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"listHandlers"},sidebar:"tutorialSidebar",previous:{title:"newState",permalink:"/react-native-template-strong/docs/utils/new-state"},next:{title:"URL openers",permalink:"/react-native-template-strong/docs/utils/url-openers"}},o={},d=[{value:"commonListFulfilledHandler",id:"commonlistfulfilledhandler",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"commonlistfulfilledhandler",children:"commonListFulfilledHandler"}),"\n",(0,a.jsxs)(t.p,{children:["Used primarily in redux slices' fulfilled functions to merge or replace the current list with new data based on ",(0,a.jsx)(t.code,{children:"LoadState"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["First parameter is ",(0,a.jsx)(t.code,{children:"LoadState"})," which comes as meta argument."]}),"\n",(0,a.jsx)(t.p,{children:"Second parameter is array of new items which comes as payload of API call or your changes."}),"\n",(0,a.jsx)(t.p,{children:"Third parameter is your current state data array."}),"\n",(0,a.jsxs)(t.p,{children:["As a result, it will produce merged or new array of data, will set ",(0,a.jsx)(t.code,{children:"error"})," to ",(0,a.jsx)(t.code,{children:"null"})," and will update ",(0,a.jsx)(t.code,{children:"LoadState"})," based on the payload array size."]}),"\n",(0,a.jsx)(t.p,{children:"Example of usage:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"function ordersFulfilledHandler(state: OrdersState, payloadAction: OrdersGetPayloadAction) {\n const {data, error, loadState} = commonListFulfilledHandler(payloadAction.meta.arg, payloadAction.payload.orders, state.data);\n\n return newState(state, {loadState, error, data});\n}\n"})})]})}function u(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(c,{...e})}):c(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>i,a:()=>l});var a=r(7294);const n={},s=a.createContext(n);function l(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:l(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/449809ec.54ca43e3.js b/assets/js/449809ec.54ca43e3.js deleted file mode 100644 index 73d826fa..00000000 --- a/assets/js/449809ec.54ca43e3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2544],{8949:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>u,frontMatter:()=>n,metadata:()=>i,toc:()=>d});var a=s(5893),r=s(1151);const n={sidebar_position:2,title:"listHandlers"},l=void 0,i={unversionedId:"utils/list-handlers",id:"utils/list-handlers",title:"listHandlers",description:"commonListFulfilledHandler",source:"@site/docs/utils/list-handlers.md",sourceDirName:"utils",slug:"/utils/list-handlers",permalink:"/react-native-template-strong/docs/utils/list-handlers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/list-handlers.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"listHandlers"},sidebar:"tutorialSidebar",previous:{title:"newState",permalink:"/react-native-template-strong/docs/utils/new-state"},next:{title:"URL openers",permalink:"/react-native-template-strong/docs/utils/url-openers"}},o={},d=[{value:"commonListFulfilledHandler",id:"commonlistfulfilledhandler",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,r.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"commonlistfulfilledhandler",children:"commonListFulfilledHandler"}),"\n",(0,a.jsxs)(t.p,{children:["Used primarily in redux slices' fulfilled functions to merge or replace the current list with new data based on ",(0,a.jsx)(t.code,{children:"LoadState"}),"."]}),"\n",(0,a.jsxs)(t.p,{children:["First parameter is ",(0,a.jsx)(t.code,{children:"LoadState"})," which comes as meta argument."]}),"\n",(0,a.jsx)(t.p,{children:"Second parameter is array of new items which comes as payload of API call or your changes."}),"\n",(0,a.jsx)(t.p,{children:"Third parameter is your current state data array."}),"\n",(0,a.jsxs)(t.p,{children:["As a result, it will produce merged or new array of data, will set ",(0,a.jsx)(t.code,{children:"error"})," to ",(0,a.jsx)(t.code,{children:"null"})," and will update ",(0,a.jsx)(t.code,{children:"LoadState"})," based on the payload array size."]}),"\n",(0,a.jsx)(t.p,{children:"Example of usage:"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"function ordersFulfilledHandler(state: OrdersState, payloadAction: OrdersGetPayloadAction) {\n const {data, error, loadState} = commonListFulfilledHandler(payloadAction.meta.arg, payloadAction.payload.orders, state.data);\n\n return newState(state, {loadState, error, data});\n}\n"})})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,a.jsx)(t,Object.assign({},e,{children:(0,a.jsx)(c,e)})):c(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>i,ah:()=>n});var a=s(7294);const r=a.createContext({});function n(e){const t=a.useContext(r);return a.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const l={};function i({components:e,children:t,disableParentContext:s}){let i;return i=s?"function"==typeof e?e({}):e||l:n(e),a.createElement(r.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/4972ee25.a01aa6ad.js b/assets/js/4972ee25.a01aa6ad.js deleted file mode 100644 index d4414326..00000000 --- a/assets/js/4972ee25.a01aa6ad.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6638],{5202:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>u,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var s=r(5893),n=r(1151);const i={sidebar_position:3,title:"Store"},o=void 0,d={unversionedId:"redux/store",id:"redux/store",title:"Store",description:"Content",source:"@site/docs/redux/store.md",sourceDirName:"redux",slug:"/redux/store",permalink:"/react-native-template-strong/docs/redux/store",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/store.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Store"},sidebar:"tutorialSidebar",previous:{title:"Core idea",permalink:"/react-native-template-strong/docs/redux/core-idea"},next:{title:"State",permalink:"/react-native-template-strong/docs/redux/state"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Middlewares",id:"middlewares",level:2},{value:"Redux-persist",id:"redux-persist",level:3}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",h3:"h3",a:"a"},(0,n.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["The store is defined together with ",(0,s.jsx)(t.code,{children:"redux-persist"})," (read next about it) as ",(0,s.jsx)(t.code,{children:"reducer"})," and disables ",(0,s.jsx)(t.code,{children:"serializableCheck"})," of middlewares:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const store = configureStore({\n reducer: persistedReducer,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: false,\n }),\n});\n"})}),"\n",(0,s.jsx)(t.h2,{id:"middlewares",children:"Middlewares"}),"\n",(0,s.jsxs)(t.p,{children:["This template utilizes middlewares what come together with the toolkit with addition of ",(0,s.jsx)(t.code,{children:"redux-persist"})," to have data stored for offline usage."]}),"\n",(0,s.jsx)(t.h3,{id:"redux-persist",children:"Redux-persist"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://github.com/rt2zz/redux-persist",children:"Check it out"})," how it works."]}),"\n",(0,s.jsxs)(t.p,{children:["It's defined in ",(0,s.jsx)(t.code,{children:"src/core/store.ts"})," near the store:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const persistConfig: PersistConfig = {\n key: 'root',\n storage: AsyncStorage,\n version: 1,\n timeout: 1000,\n};\n"})}),"\n",(0,s.jsxs)(t.p,{children:["It uses ",(0,s.jsx)(t.code,{children:"AsyncStorage"})," as storage, if you don't like it you can change it to your own likings."]}),"\n",(0,s.jsxs)(t.p,{children:["It creates ",(0,s.jsx)(t.code,{children:"persistor"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const persistor = persistStore(store);\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Which is being used in ",(0,s.jsx)(t.code,{children:"PersistGate"})," of ",(0,s.jsx)(t.code,{children:"reduxProvider"})," wrapper:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const reduxProvider = (Component: any) => (props: any) => {\n return (\n \n \n \n \n \n );\n};\n"})})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,n.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,t,r)=>{r.d(t,{Zo:()=>d,ah:()=>i});var s=r(7294);const n=s.createContext({});function i(e){const t=s.useContext(n);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function d({components:e,children:t,disableParentContext:r}){let d;return d=r?"function"==typeof e?e({}):e||o:i(e),s.createElement(n.Provider,{value:d},t)}}}]); \ No newline at end of file diff --git a/assets/js/4972ee25.d33960d7.js b/assets/js/4972ee25.d33960d7.js new file mode 100644 index 00000000..eac9a1ee --- /dev/null +++ b/assets/js/4972ee25.d33960d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6638],{5202:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>i,metadata:()=>d,toc:()=>c});var s=r(5893),n=r(1151);const i={sidebar_position:3,title:"Store"},o=void 0,d={id:"redux/store",title:"Store",description:"Content",source:"@site/docs/redux/store.md",sourceDirName:"redux",slug:"/redux/store",permalink:"/react-native-template-strong/docs/redux/store",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/store.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Store"},sidebar:"tutorialSidebar",previous:{title:"Core idea",permalink:"/react-native-template-strong/docs/redux/core-idea"},next:{title:"State",permalink:"/react-native-template-strong/docs/redux/state"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Middlewares",id:"middlewares",level:2},{value:"Redux-persist",id:"redux-persist",level:3}];function l(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["The store is defined together with ",(0,s.jsx)(t.code,{children:"redux-persist"})," (read next about it) as ",(0,s.jsx)(t.code,{children:"reducer"})," and disables ",(0,s.jsx)(t.code,{children:"serializableCheck"})," of middlewares:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const store = configureStore({\n reducer: persistedReducer,\n middleware: (getDefaultMiddleware) =>\n getDefaultMiddleware({\n serializableCheck: false,\n }),\n});\n"})}),"\n",(0,s.jsx)(t.h2,{id:"middlewares",children:"Middlewares"}),"\n",(0,s.jsxs)(t.p,{children:["This template utilizes middlewares what come together with the toolkit with addition of ",(0,s.jsx)(t.code,{children:"redux-persist"})," to have data stored for offline usage."]}),"\n",(0,s.jsx)(t.h3,{id:"redux-persist",children:"Redux-persist"}),"\n",(0,s.jsxs)(t.p,{children:[(0,s.jsx)(t.a,{href:"https://github.com/rt2zz/redux-persist",children:"Check it out"})," how it works."]}),"\n",(0,s.jsxs)(t.p,{children:["It's defined in ",(0,s.jsx)(t.code,{children:"src/core/store.ts"})," near the store:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const persistConfig: PersistConfig = {\n key: 'root',\n storage: AsyncStorage,\n version: 1,\n timeout: 1000,\n};\n"})}),"\n",(0,s.jsxs)(t.p,{children:["It uses ",(0,s.jsx)(t.code,{children:"AsyncStorage"})," as storage, if you don't like it you can change it to your own likings."]}),"\n",(0,s.jsxs)(t.p,{children:["It creates ",(0,s.jsx)(t.code,{children:"persistor"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"const persistor = persistStore(store);\n"})}),"\n",(0,s.jsxs)(t.p,{children:["Which is being used in ",(0,s.jsx)(t.code,{children:"PersistGate"})," of ",(0,s.jsx)(t.code,{children:"reduxProvider"})," wrapper:"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const reduxProvider = (Component: any) => (props: any) => {\n return (\n \n \n \n \n \n );\n};\n"})})]})}function p(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>d,a:()=>o});var s=r(7294);const n={},i=s.createContext(n);function o(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:o(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ff29f3f.7a7c8b52.js b/assets/js/4ff29f3f.7a7c8b52.js new file mode 100644 index 00000000..4f14b227 --- /dev/null +++ b/assets/js/4ff29f3f.7a7c8b52.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3286],{1067:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>x,frontMatter:()=>i,metadata:()=>a,toc:()=>o});var l=n(5893),s=n(1151);const i={sidebar_position:15,title:"DatePickerOverlay"},r=void 0,a={id:"components/date-picker-overlay",title:"DatePickerOverlay",description:"Content",source:"@site/docs/components/date-picker-overlay.md",sourceDirName:"components",slug:"/components/date-picker-overlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/date-picker-overlay.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:15,frontMatter:{sidebar_position:15,title:"DatePickerOverlay"},sidebar:"tutorialSidebar",previous:{title:"ImageCropPickerButton",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button"},next:{title:"ToastOverlay",permalink:"/react-native-template-strong/docs/components/toast-overlay"}},d={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={a:"a",admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(t.admonition,{title:"Do not use this component directly!",type:"danger",children:(0,l.jsxs)(t.p,{children:["Use ",(0,l.jsx)(t.code,{children:"showDatePicker"})," to present this component because it's linked to navigation."]})}),"\n",(0,l.jsxs)(t.p,{children:["Represents a date picker provided by ",(0,l.jsx)(t.a,{href:"https://github.com/react-native-datetimepicker/datetimepicker",children:"@react-native-community/datetimepicker"})," as modal on iOS and as overlay on Android."]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"value"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"Date"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Current selected date value"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"minDate"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"Date"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Minimum border of available dates for selection"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"maxDate"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"Date"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Maximum border of available dates for selection"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onDateChange"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"(date: Date) => void "})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Callback with selected date"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'const [selectedDate, setSelectedDate] = useState(new Date());\n\nconst onPress = useCallback(() => {\n return showDatePicker({\n value: selectedDate,\n onDateChange: setSelectedDate,\n });\n}, [selectedDate, setSelectedDate]);\n\nreturn (\n \n \n {dateFromFormat(selectedDate, DateFormat.yearDateTime)}\n \n);\n'})})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var l=n(7294);const s={},i=l.createContext(s);function r(e){const t=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),l.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/4ff29f3f.e0c4c233.js b/assets/js/4ff29f3f.e0c4c233.js deleted file mode 100644 index d67d6852..00000000 --- a/assets/js/4ff29f3f.e0c4c233.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3286],{1067:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>h,frontMatter:()=>l,metadata:()=>s,toc:()=>o});var a=n(5893),i=n(1151);const l={sidebar_position:15,title:"DatePickerOverlay"},r=void 0,s={unversionedId:"components/date-picker-overlay",id:"components/date-picker-overlay",title:"DatePickerOverlay",description:"Content",source:"@site/docs/components/date-picker-overlay.md",sourceDirName:"components",slug:"/components/date-picker-overlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/date-picker-overlay.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:15,frontMatter:{sidebar_position:15,title:"DatePickerOverlay"},sidebar:"tutorialSidebar",previous:{title:"ImageCropPickerButton",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button"},next:{title:"ToastOverlay",permalink:"/react-native-template-strong/docs/components/toast-overlay"}},d={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",admonition:"admonition",p:"p",code:"code",a:"a",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,i.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(t.admonition,{title:"Do not use this component directly!",type:"danger",children:(0,a.jsxs)(t.p,{children:["Use ",(0,a.jsx)(t.code,{children:"showDatePicker"})," to present this component because it's linked to navigation."]})}),"\n",(0,a.jsxs)(t.p,{children:["Represents a date picker provided by ",(0,a.jsx)(t.a,{href:"https://github.com/react-native-datetimepicker/datetimepicker",children:"@react-native-community/datetimepicker"})," as modal on iOS and as overlay on Android."]}),"\n",(0,a.jsx)(t.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,a.jsxs)(t.table,{children:[(0,a.jsx)(t.thead,{children:(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.th,{align:"left",children:"Name"}),(0,a.jsx)(t.th,{align:"left",children:"Type"}),(0,a.jsx)(t.th,{align:"left",children:"Required"}),(0,a.jsx)(t.th,{align:"left",children:"Default value"}),(0,a.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,a.jsxs)(t.tbody,{children:[(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"value"}),(0,a.jsx)(t.td,{align:"left",children:(0,a.jsx)(t.code,{children:"Date"})}),(0,a.jsx)(t.td,{align:"left",children:"True"}),(0,a.jsx)(t.td,{align:"left",children:"-"}),(0,a.jsx)(t.td,{align:"left",children:"Current selected date value"})]}),(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"minDate"}),(0,a.jsx)(t.td,{align:"left",children:(0,a.jsx)(t.code,{children:"Date"})}),(0,a.jsx)(t.td,{align:"left",children:"False"}),(0,a.jsx)(t.td,{align:"left",children:"Undefined"}),(0,a.jsx)(t.td,{align:"left",children:"Minimum border of available dates for selection"})]}),(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"maxDate"}),(0,a.jsx)(t.td,{align:"left",children:(0,a.jsx)(t.code,{children:"Date"})}),(0,a.jsx)(t.td,{align:"left",children:"False"}),(0,a.jsx)(t.td,{align:"left",children:"Undefined"}),(0,a.jsx)(t.td,{align:"left",children:"Maximum border of available dates for selection"})]}),(0,a.jsxs)(t.tr,{children:[(0,a.jsx)(t.td,{align:"left",children:"onDateChange"}),(0,a.jsx)(t.td,{align:"left",children:(0,a.jsx)(t.code,{children:"(date: Date) => void "})}),(0,a.jsx)(t.td,{align:"left",children:"False"}),(0,a.jsx)(t.td,{align:"left",children:"Undefined"}),(0,a.jsx)(t.td,{align:"left",children:"Callback with selected date"})]})]})]}),"\n",(0,a.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'const [selectedDate, setSelectedDate] = useState(new Date());\n\nconst onPress = useCallback(() => {\n return showDatePicker({\n value: selectedDate,\n onDateChange: setSelectedDate,\n });\n}, [selectedDate, setSelectedDate]);\n\nreturn (\n \n \n {dateFromFormat(selectedDate, DateFormat.yearDateTime)}\n \n);\n'})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,a.jsx)(t,Object.assign({},e,{children:(0,a.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>s,ah:()=>l});var a=n(7294);const i=a.createContext({});function l(e){const t=a.useContext(i);return a.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function s({components:e,children:t,disableParentContext:n}){let s;return s=n?"function"==typeof e?e({}):e||r:l(e),a.createElement(i.Provider,{value:s},t)}}}]); \ No newline at end of file diff --git a/assets/js/51dcefc3.56d0cc06.js b/assets/js/51dcefc3.56d0cc06.js deleted file mode 100644 index 977c5229..00000000 --- a/assets/js/51dcefc3.56d0cc06.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9969],{3452:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>o,frontMatter:()=>i,metadata:()=>a,toc:()=>h});var s=n(5893),l=n(1151);const i={sidebar_position:7,title:"stringHelpers"},r=void 0,a={unversionedId:"helpers/strings-helpers",id:"helpers/strings-helpers",title:"stringHelpers",description:"Content",source:"@site/docs/helpers/strings-helpers.md",sourceDirName:"helpers",slug:"/helpers/strings-helpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/strings-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"stringHelpers"},sidebar:"tutorialSidebar",previous:{title:"orientationHelpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers"},next:{title:"regexHelpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers"}},d={},h=[{value:"Content",id:"content",level:2},{value:"capitalizeFirstLetter",id:"capitalizefirstletter",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"removeHtmlTags",id:"removehtmltags",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"removeEmojis",id:"removeemojis",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function c(e){const t=Object.assign({h2:"h2",p:"p",h3:"h3",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",pre:"pre"},(0,l.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Set of string helpers"}),"\n",(0,s.jsx)(t.h3,{id:"capitalizefirstletter",children:"capitalizeFirstLetter"}),"\n",(0,s.jsx)(t.p,{children:"Capitalizes first letter of provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{align:"left",children:"Name"}),(0,s.jsx)(t.th,{align:"left",children:"Type"}),(0,s.jsx)(t.th,{align:"left",children:"Required"}),(0,s.jsx)(t.th,{align:"left",children:"Default value"}),(0,s.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{align:"left",children:"word"}),(0,s.jsx)(t.td,{align:"left",children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{align:"left",children:"True"}),(0,s.jsx)(t.td,{align:"left",children:"-"}),(0,s.jsx)(t.td,{align:"left",children:"String which first letter will be capitalized"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'capitalizeFirstLetter("test");\n'})}),"\n",(0,s.jsx)(t.h3,{id:"removehtmltags",children:"removeHtmlTags"}),"\n",(0,s.jsx)(t.p,{children:"Removes HTML tags from provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params-1",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{align:"left",children:"Name"}),(0,s.jsx)(t.th,{align:"left",children:"Type"}),(0,s.jsx)(t.th,{align:"left",children:"Required"}),(0,s.jsx)(t.th,{align:"left",children:"Default value"}),(0,s.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{align:"left",children:"text"}),(0,s.jsx)(t.td,{align:"left",children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{align:"left",children:"True"}),(0,s.jsx)(t.td,{align:"left",children:"-"}),(0,s.jsx)(t.td,{align:"left",children:"String which contains HTML tags"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'removeHtmlTags("some text");\n'})}),"\n",(0,s.jsx)(t.h3,{id:"removeemojis",children:"removeEmojis"}),"\n",(0,s.jsx)(t.p,{children:"Removes emojis from provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params-2",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{align:"left",children:"Name"}),(0,s.jsx)(t.th,{align:"left",children:"Type"}),(0,s.jsx)(t.th,{align:"left",children:"Required"}),(0,s.jsx)(t.th,{align:"left",children:"Default value"}),(0,s.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{align:"left",children:"text"}),(0,s.jsx)(t.td,{align:"left",children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{align:"left",children:"True"}),(0,s.jsx)(t.td,{align:"left",children:"-"}),(0,s.jsx)(t.td,{align:"left",children:"String which contains emojis"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'removeEmojis("Test\ud83d\ude04");\n'})})]})}const o=function(e={}){const{wrapper:t}=Object.assign({},(0,l.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>i});var s=n(7294);const l=s.createContext({});function i(e){const t=s.useContext(l);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||r:i(e),s.createElement(l.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/51dcefc3.81d45bb5.js b/assets/js/51dcefc3.81d45bb5.js new file mode 100644 index 00000000..b9c81617 --- /dev/null +++ b/assets/js/51dcefc3.81d45bb5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9969],{3452:(e,t,l)=>{l.r(t),l.d(t,{assets:()=>d,contentTitle:()=>n,default:()=>x,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var s=l(5893),i=l(1151);const r={sidebar_position:7,title:"stringHelpers"},n=void 0,a={id:"helpers/strings-helpers",title:"stringHelpers",description:"Content",source:"@site/docs/helpers/strings-helpers.md",sourceDirName:"helpers",slug:"/helpers/strings-helpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/strings-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"stringHelpers"},sidebar:"tutorialSidebar",previous:{title:"orientationHelpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers"},next:{title:"regexHelpers",permalink:"/react-native-template-strong/docs/helpers/regex-helpers"}},d={},c=[{value:"Content",id:"content",level:2},{value:"capitalizeFirstLetter",id:"capitalizefirstletter",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"removeHtmlTags",id:"removehtmltags",level:3},{value:"Params",id:"params-1",level:4},{value:"Usage example",id:"usage-example-1",level:4},{value:"removeEmojis",id:"removeemojis",level:3},{value:"Params",id:"params-2",level:4},{value:"Usage example",id:"usage-example-2",level:4}];function h(e){const t={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Set of string helpers"}),"\n",(0,s.jsx)(t.h3,{id:"capitalizefirstletter",children:"capitalizeFirstLetter"}),"\n",(0,s.jsx)(t.p,{children:"Capitalizes first letter of provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"word"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"String which first letter will be capitalized"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'capitalizeFirstLetter("test");\n'})}),"\n",(0,s.jsx)(t.h3,{id:"removehtmltags",children:"removeHtmlTags"}),"\n",(0,s.jsx)(t.p,{children:"Removes HTML tags from provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params-1",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"text"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"String which contains HTML tags"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'removeHtmlTags("some text");\n'})}),"\n",(0,s.jsx)(t.h3,{id:"removeemojis",children:"removeEmojis"}),"\n",(0,s.jsx)(t.p,{children:"Removes emojis from provided string. Returns a new string."}),"\n",(0,s.jsx)(t.h4,{id:"params-2",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"text"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"string"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"String which contains emojis"})]})})]}),"\n",(0,s.jsx)(t.h4,{id:"usage-example-2",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'removeEmojis("Test\ud83d\ude04");\n'})})]})}function x(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(h,{...e})}):h(e)}},1151:(e,t,l)=>{l.d(t,{Z:()=>a,a:()=>n});var s=l(7294);const i={},r=s.createContext(i);function n(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/527ccfd4.5ba85ef3.js b/assets/js/527ccfd4.5ba85ef3.js deleted file mode 100644 index 71b8721a..00000000 --- a/assets/js/527ccfd4.5ba85ef3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4469],{29:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>r,toc:()=>l});var s=n(5893),i=n(1151);const a={sidebar_position:1,title:"Jest"},o=void 0,r={unversionedId:"testing/jest",id:"testing/jest",title:"Jest",description:"Content",source:"@site/docs/testing/jest.md",sourceDirName:"testing",slug:"/testing/jest",permalink:"/react-native-template-strong/docs/testing/jest",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/jest.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Jest"},sidebar:"tutorialSidebar",previous:{title:"API",permalink:"/react-native-template-strong/docs/api"},next:{title:"Storybook",permalink:"/react-native-template-strong/docs/testing/storybook"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Adding tests",id:"adding-tests",level:2},{value:"Running tests",id:"running-tests",level:2},{value:"Mocks",id:"mocks",level:2},{value:"Coverage",id:"coverage",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Jest tests are simple and target mostly API communication and methods and functions stability and correctness of execution."}),"\n",(0,s.jsxs)(t.p,{children:["To learn more about Jest, check ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"this page"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["All the tests are located in ",(0,s.jsx)(t.code,{children:"__tests__"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Each created test file should follow the next template: ",(0,s.jsx)(t.code,{children:"testName.test.ts"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"adding-tests",children:"Adding tests"}),"\n",(0,s.jsx)(t.p,{children:"To add a test, create a file by following previously mentioned template."}),"\n",(0,s.jsx)(t.p,{children:"Describe your tests like so (I'll use localization as example):"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'describe("Localization", () => {\n\n});\n'})}),"\n",(0,s.jsx)(t.p,{children:"And add tests itself:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:' test("Current language: EN", () => {\n expect(getLanguage()).toBe("en");\n });\n\n test("Current interface language: EN", () => {\n expect(getInterfaceLanguage()).toBe("en");\n });\n\n test("Set empty language", () => {\n setLanguage();\n expect(getLanguage()).toBe("en");\n });\n\n test("Set language: EN", () => {\n setLanguage(Languages.en);\n expect(getLanguage()).toBe("en");\n });\n'})}),"\n",(0,s.jsx)(t.h2,{id:"running-tests",children:"Running tests"}),"\n",(0,s.jsxs)(t.p,{children:["You can run individual tests while debugging them in your IDE or if you want to run every single described test you can simply run:\n",(0,s.jsx)(t.code,{children:"npm run tests"}),". Which will show you ",(0,s.jsx)(t.code,{children:"PASSSED"})," and ",(0,s.jsx)(t.code,{children:"FAILED"})," tests."]}),"\n",(0,s.jsx)(t.h2,{id:"mocks",children:"Mocks"}),"\n",(0,s.jsx)(t.p,{children:"Some dependencies or environments require you to be mocked since tests are not running in React Native environment but NodeJS."}),"\n",(0,s.jsxs)(t.p,{children:["For these cases there is a folder called ",(0,s.jsx)(t.code,{children:"__mocks__"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["There's already a simple mock of ",(0,s.jsx)(t.code,{children:"Localization"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:'import LocalizedStringsCore from "react-localization";\n\nfunction getInterfaceLanguage() {\n return "en";\n}\n\nexport default class LocalizedStrings extends LocalizedStringsCore {\n constructor(props) {\n super(props, getInterfaceLanguage);\n }\n}\n'})}),"\n",(0,s.jsx)(t.p,{children:"It defines that default and used language will be English without trying to get it from the system."}),"\n",(0,s.jsxs)(t.p,{children:['Then this mock is "imported" or better to say "mocked" in ',(0,s.jsx)(t.code,{children:"__tests__/localization.test.ts"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'jest.mock("react-native-localization");\n'})}),"\n",(0,s.jsx)(t.h2,{id:"coverage",children:"Coverage"}),"\n",(0,s.jsx)(t.p,{children:"To check how well you covered files with test you can see it using coverage."}),"\n",(0,s.jsxs)(t.p,{children:["Run ",(0,s.jsx)(t.code,{children:"npm run tests:coverage"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"coverege"})," folder will appear which will give you HTML pages with detailed information, also there will be a print into terminal after the command will be executed."]})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>a});var s=n(7294);const i=s.createContext({});function a(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||o:a(e),s.createElement(i.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/527ccfd4.d1de7e13.js b/assets/js/527ccfd4.d1de7e13.js new file mode 100644 index 00000000..d991fc2b --- /dev/null +++ b/assets/js/527ccfd4.d1de7e13.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4469],{29:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var s=n(5893),i=n(1151);const o={sidebar_position:1,title:"Jest"},r=void 0,a={id:"testing/jest",title:"Jest",description:"Content",source:"@site/docs/testing/jest.md",sourceDirName:"testing",slug:"/testing/jest",permalink:"/react-native-template-strong/docs/testing/jest",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/testing/jest.md",tags:[],version:"current",lastUpdatedAt:1633684154,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Jest"},sidebar:"tutorialSidebar",previous:{title:"API",permalink:"/react-native-template-strong/docs/api"},next:{title:"Storybook",permalink:"/react-native-template-strong/docs/testing/storybook"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Adding tests",id:"adding-tests",level:2},{value:"Running tests",id:"running-tests",level:2},{value:"Mocks",id:"mocks",level:2},{value:"Coverage",id:"coverage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Jest tests are simple and target mostly API communication and methods and functions stability and correctness of execution."}),"\n",(0,s.jsxs)(t.p,{children:["To learn more about Jest, check ",(0,s.jsx)(t.a,{href:"https://jestjs.io",children:"this page"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["All the tests are located in ",(0,s.jsx)(t.code,{children:"__tests__"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Each created test file should follow the next template: ",(0,s.jsx)(t.code,{children:"testName.test.ts"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"adding-tests",children:"Adding tests"}),"\n",(0,s.jsx)(t.p,{children:"To add a test, create a file by following previously mentioned template."}),"\n",(0,s.jsx)(t.p,{children:"Describe your tests like so (I'll use localization as example):"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'describe("Localization", () => {\n\n});\n'})}),"\n",(0,s.jsx)(t.p,{children:"And add tests itself:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:' test("Current language: EN", () => {\n expect(getLanguage()).toBe("en");\n });\n\n test("Current interface language: EN", () => {\n expect(getInterfaceLanguage()).toBe("en");\n });\n\n test("Set empty language", () => {\n setLanguage();\n expect(getLanguage()).toBe("en");\n });\n\n test("Set language: EN", () => {\n setLanguage(Languages.en);\n expect(getLanguage()).toBe("en");\n });\n'})}),"\n",(0,s.jsx)(t.h2,{id:"running-tests",children:"Running tests"}),"\n",(0,s.jsxs)(t.p,{children:["You can run individual tests while debugging them in your IDE or if you want to run every single described test you can simply run:\n",(0,s.jsx)(t.code,{children:"npm run tests"}),". Which will show you ",(0,s.jsx)(t.code,{children:"PASSSED"})," and ",(0,s.jsx)(t.code,{children:"FAILED"})," tests."]}),"\n",(0,s.jsx)(t.h2,{id:"mocks",children:"Mocks"}),"\n",(0,s.jsx)(t.p,{children:"Some dependencies or environments require you to be mocked since tests are not running in React Native environment but NodeJS."}),"\n",(0,s.jsxs)(t.p,{children:["For these cases there is a folder called ",(0,s.jsx)(t.code,{children:"__mocks__"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["There's already a simple mock of ",(0,s.jsx)(t.code,{children:"Localization"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-js",children:'import LocalizedStringsCore from "react-localization";\n\nfunction getInterfaceLanguage() {\n return "en";\n}\n\nexport default class LocalizedStrings extends LocalizedStringsCore {\n constructor(props) {\n super(props, getInterfaceLanguage);\n }\n}\n'})}),"\n",(0,s.jsx)(t.p,{children:"It defines that default and used language will be English without trying to get it from the system."}),"\n",(0,s.jsxs)(t.p,{children:['Then this mock is "imported" or better to say "mocked" in ',(0,s.jsx)(t.code,{children:"__tests__/localization.test.ts"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'jest.mock("react-native-localization");\n'})}),"\n",(0,s.jsx)(t.h2,{id:"coverage",children:"Coverage"}),"\n",(0,s.jsx)(t.p,{children:"To check how well you covered files with test you can see it using coverage."}),"\n",(0,s.jsxs)(t.p,{children:["Run ",(0,s.jsx)(t.code,{children:"npm run tests:coverage"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["The ",(0,s.jsx)(t.code,{children:"coverege"})," folder will appear which will give you HTML pages with detailed information, also there will be a print into terminal after the command will be executed."]})]})}function u(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>r});var s=n(7294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/52fe9033.01ce713c.js b/assets/js/52fe9033.01ce713c.js new file mode 100644 index 00000000..3db4da34 --- /dev/null +++ b/assets/js/52fe9033.01ce713c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5967],{8183:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>s,metadata:()=>c,toc:()=>i});var o=t(5893),r=t(1151);const s={sidebar_position:1,title:"Colors"},l=void 0,c={id:"themes/colors",title:"Colors",description:"Content",source:"@site/docs/themes/colors.md",sourceDirName:"themes",slug:"/themes/colors",permalink:"/react-native-template-strong/docs/themes/colors",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/themes/colors.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Colors"},sidebar:"tutorialSidebar",previous:{title:"Vector icons",permalink:"/react-native-template-strong/docs/resources/vector-icons"},next:{title:"Native colors",permalink:"/react-native-template-strong/docs/themes/native-colors"}},a={},i=[{value:"Content",id:"content",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(n.p,{children:["All your colors are stored in ",(0,o.jsx)(n.code,{children:"/src/core/theme/colors.ts"})," as a simple enum:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export enum Colors {\n black = "#000000",\n white = "#FFFFFF",\n gray = "#F1F1F1",\n darkGray = "#262626",\n blue = "#0A60FF",\n green = "#4DAD4A",\n red = "#CE3C3E",\n transparent = "transparent",\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["You can add here simple colors shared by both platforms and which will look the same in ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes of your application."]}),"\n",(0,o.jsx)(n.p,{children:"You can use this colors next way:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"In styles:"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: Colors.transparent,\n } as ViewStyle,\n});\n"})}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"In navigation:"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: Colors.black,\n },\n title: {\n color: Colors.white,\n },\n }\n"})}),"\n",(0,o.jsxs)(n.p,{children:["You can also assign different colors depending on platform using ",(0,o.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformLocalColor"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformLocalColor(Colors.black, Colors.red),\n } as ViewStyle,\n});\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In navigation, you can also set this colors to ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: Colors.white,\n dark: Colors.black,\n },\n },\n title: {\n color: {\n light: Colors.black,\n dark: Colors.white,\n },\n },\n }\n"})}),"\n",(0,o.jsx)(n.p,{children:"But it's not preferred, continue reading next to understand why"}),"\n",(0,o.jsxs)(n.p,{children:["You probably noticed that there are two more enums in ",(0,o.jsx)(n.code,{children:"colors.ts"}),", these are native colors, they work with ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes."]}),"\n",(0,o.jsx)(n.p,{children:"Follow to the next page to see how to use and add them."})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,o.jsx)(n,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>l});var o=t(7294);const r={},s=o.createContext(r);function l(e){const n=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:l(e.components),o.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/52fe9033.3d26506c.js b/assets/js/52fe9033.3d26506c.js deleted file mode 100644 index 233827a7..00000000 --- a/assets/js/52fe9033.3d26506c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5967],{8183:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>l,default:()=>h,frontMatter:()=>r,metadata:()=>c,toc:()=>i});var o=t(5893),s=t(1151);const r={sidebar_position:1,title:"Colors"},l=void 0,c={unversionedId:"themes/colors",id:"themes/colors",title:"Colors",description:"Content",source:"@site/docs/themes/colors.md",sourceDirName:"themes",slug:"/themes/colors",permalink:"/react-native-template-strong/docs/themes/colors",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/themes/colors.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Colors"},sidebar:"tutorialSidebar",previous:{title:"Vector icons",permalink:"/react-native-template-strong/docs/resources/vector-icons"},next:{title:"Native colors",permalink:"/react-native-template-strong/docs/themes/native-colors"}},a={},i=[{value:"Content",id:"content",level:2}];function d(e){const n=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",ol:"ol",li:"li",a:"a"},(0,s.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(n.p,{children:["All your colors are stored in ",(0,o.jsx)(n.code,{children:"/src/core/theme/colors.ts"})," as a simple enum:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export enum Colors {\n black = "#000000",\n white = "#FFFFFF",\n gray = "#F1F1F1",\n darkGray = "#262626",\n blue = "#0A60FF",\n green = "#4DAD4A",\n red = "#CE3C3E",\n transparent = "transparent",\n}\n'})}),"\n",(0,o.jsxs)(n.p,{children:["You can add here simple colors shared by both platforms and which will look the same in ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes of your application."]}),"\n",(0,o.jsx)(n.p,{children:"You can use this colors next way:"}),"\n",(0,o.jsxs)(n.ol,{children:["\n",(0,o.jsx)(n.li,{children:"In styles:"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: Colors.transparent,\n } as ViewStyle,\n});\n"})}),"\n",(0,o.jsxs)(n.ol,{start:"2",children:["\n",(0,o.jsx)(n.li,{children:"In navigation:"}),"\n"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: Colors.black,\n },\n title: {\n color: Colors.white,\n },\n }\n"})}),"\n",(0,o.jsxs)(n.p,{children:["You can also assign different colors depending on platform using ",(0,o.jsx)(n.a,{href:"/react-native-template-strong/docs/helpers/color-helpers",children:"platformLocalColor"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:"const styles = StyleSheet.create({\n container: {\n backgroundColor: platformLocalColor(Colors.black, Colors.red),\n } as ViewStyle,\n});\n"})}),"\n",(0,o.jsxs)(n.p,{children:["In navigation, you can also set this colors to ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes:"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:" topBar: {\n background: {\n color: {\n light: Colors.white,\n dark: Colors.black,\n },\n },\n title: {\n color: {\n light: Colors.black,\n dark: Colors.white,\n },\n },\n }\n"})}),"\n",(0,o.jsx)(n.p,{children:"But it's not preferred, continue reading next to understand why"}),"\n",(0,o.jsxs)(n.p,{children:["You probably noticed that there are two more enums in ",(0,o.jsx)(n.code,{children:"colors.ts"}),", these are native colors, they work with ",(0,o.jsx)(n.code,{children:"dark"})," and ",(0,o.jsx)(n.code,{children:"light"})," themes."]}),"\n",(0,o.jsx)(n.p,{children:"Follow to the next page to see how to use and add them."})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>c,ah:()=>r});var o=t(7294);const s=o.createContext({});function r(e){const n=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const l={};function c({components:e,children:n,disableParentContext:t}){let c;return c=t?"function"==typeof e?e({}):e||l:r(e),o.createElement(s.Provider,{value:c},n)}}}]); \ No newline at end of file diff --git a/assets/js/5b2ba987.404c77da.js b/assets/js/5b2ba987.404c77da.js new file mode 100644 index 00000000..1df794e3 --- /dev/null +++ b/assets/js/5b2ba987.404c77da.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4991],{8719:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var s=o(5893),n=o(1151);const i={sidebar_position:6,title:"useWhyDidYouUpdate"},a=void 0,r={id:"hooks/use-why-did-you-update",title:"useWhyDidYouUpdate",description:"Content",source:"@site/docs/hooks/use-why-did-you-update.md",sourceDirName:"hooks",slug:"/hooks/use-why-did-you-update",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-why-did-you-update.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"useWhyDidYouUpdate"},sidebar:"tutorialSidebar",previous:{title:"usePrevious",permalink:"/react-native-template-strong/docs/hooks/use-previous"},next:{title:"Translations",permalink:"/react-native-template-strong/docs/localisation/translations"}},d={},u=[{value:"Content",id:"content",level:2}];function c(t){const e={a:"a",h2:"h2",p:"p",...(0,n.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(e.p,{children:["Description and usage are provided ",(0,s.jsx)(e.a,{href:"https://usehooks.com/useWhyDidYouUpdate/",children:"here"}),"."]})]})}function p(t={}){const{wrapper:e}={...(0,n.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(c,{...t})}):c(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>r,a:()=>a});var s=o(7294);const n={},i=s.createContext(n);function a(t){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(n):t.components||n:a(t.components),s.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/5b2ba987.b5ca57fd.js b/assets/js/5b2ba987.b5ca57fd.js deleted file mode 100644 index 27c1c42f..00000000 --- a/assets/js/5b2ba987.b5ca57fd.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4991],{8719:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>r,toc:()=>u});var o=s(5893),n=s(1151);const i={sidebar_position:6,title:"useWhyDidYouUpdate"},a=void 0,r={unversionedId:"hooks/use-why-did-you-update",id:"hooks/use-why-did-you-update",title:"useWhyDidYouUpdate",description:"Content",source:"@site/docs/hooks/use-why-did-you-update.md",sourceDirName:"hooks",slug:"/hooks/use-why-did-you-update",permalink:"/react-native-template-strong/docs/hooks/use-why-did-you-update",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-why-did-you-update.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"useWhyDidYouUpdate"},sidebar:"tutorialSidebar",previous:{title:"usePrevious",permalink:"/react-native-template-strong/docs/hooks/use-previous"},next:{title:"Translations",permalink:"/react-native-template-strong/docs/localisation/translations"}},d={},u=[{value:"Content",id:"content",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",a:"a"},(0,n.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["Description and usage are provided ",(0,o.jsx)(t.a,{href:"https://usehooks.com/useWhyDidYouUpdate/",children:"here"}),"."]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,n.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(c,e)})):c(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>r,ah:()=>i});var o=s(7294);const n=o.createContext({});function i(e){const t=o.useContext(n);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function r({components:e,children:t,disableParentContext:s}){let r;return r=s?"function"==typeof e?e({}):e||a:i(e),o.createElement(n.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/5d01a4f0.107584d1.js b/assets/js/5d01a4f0.107584d1.js new file mode 100644 index 00000000..44160921 --- /dev/null +++ b/assets/js/5d01a4f0.107584d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5638],{8407:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>l,frontMatter:()=>r,metadata:()=>a,toc:()=>u});var o=n(5893),s=n(1151);const r={sidebar_position:2,title:"useDebounce"},i=void 0,a={id:"hooks/use-debounce",title:"useDebounce",description:"Content",source:"@site/docs/hooks/use-debounce.md",sourceDirName:"hooks",slug:"/hooks/use-debounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-debounce.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"useDebounce"},sidebar:"tutorialSidebar",previous:{title:"useFlatListActions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions"},next:{title:"useEventRegister",permalink:"/react-native-template-strong/docs/hooks/use-event-register"}},c={},u=[{value:"Content",id:"content",level:2}];function d(e){const t={a:"a",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(t.p,{children:["Description and usage are provided ",(0,o.jsx)(t.a,{href:"https://usehooks.com/useDebounce/",children:"here"}),"."]})]})}function l(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var o=n(7294);const s={},r=o.createContext(s);function i(e){const t=o.useContext(r);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),o.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5d01a4f0.ac8b24e7.js b/assets/js/5d01a4f0.ac8b24e7.js deleted file mode 100644 index ffcd00ae..00000000 --- a/assets/js/5d01a4f0.ac8b24e7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5638],{8407:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>r,default:()=>l,frontMatter:()=>i,metadata:()=>a,toc:()=>u});var n=s(5893),o=s(1151);const i={sidebar_position:2,title:"useDebounce"},r=void 0,a={unversionedId:"hooks/use-debounce",id:"hooks/use-debounce",title:"useDebounce",description:"Content",source:"@site/docs/hooks/use-debounce.md",sourceDirName:"hooks",slug:"/hooks/use-debounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-debounce.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"useDebounce"},sidebar:"tutorialSidebar",previous:{title:"useFlatListActions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions"},next:{title:"useEventRegister",permalink:"/react-native-template-strong/docs/hooks/use-event-register"}},c={},u=[{value:"Content",id:"content",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",a:"a"},(0,o.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Description and usage are provided ",(0,n.jsx)(t.a,{href:"https://usehooks.com/useDebounce/",children:"here"}),"."]})]})}const l=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(d,e)})):d(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>a,ah:()=>i});var n=s(7294);const o=n.createContext({});function i(e){const t=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function a({components:e,children:t,disableParentContext:s}){let a;return a=s?"function"==typeof e?e({}):e||r:i(e),n.createElement(o.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.2b96eea3.js b/assets/js/5e95c892.2b96eea3.js deleted file mode 100644 index a01a9ab3..00000000 --- a/assets/js/5e95c892.2b96eea3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9661],{1892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(7294);var t=r(6010),u=r(833),a=r(5281),c=r(8790),n=r(7452),i=r(5893);function l(e){return(0,i.jsx)(u.FG,{className:(0,t.Z)(a.k.wrapper.docsPages),children:(0,i.jsx)(n.Z,{children:(0,c.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5e95c892.b00730d7.js b/assets/js/5e95c892.b00730d7.js new file mode 100644 index 00000000..763248f8 --- /dev/null +++ b/assets/js/5e95c892.b00730d7.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9661],{1892:(e,s,r)=>{r.r(s),r.d(s,{default:()=>l});r(7294);var t=r(512),u=r(833),a=r(5281),c=r(8790),n=r(7372),i=r(5893);function l(e){return(0,i.jsx)(u.FG,{className:(0,t.Z)(a.k.wrapper.docsPages),children:(0,i.jsx)(n.Z,{children:(0,c.H)(e.route.routes)})})}}}]); \ No newline at end of file diff --git a/assets/js/5ed5e9d2.43ca17c1.js b/assets/js/5ed5e9d2.43ca17c1.js deleted file mode 100644 index 6737779f..00000000 --- a/assets/js/5ed5e9d2.43ca17c1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1984],{2805:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>s,default:()=>h,frontMatter:()=>a,metadata:()=>l,toc:()=>d});var i=n(5893),r=n(1151);const a={sidebar_position:6,title:"orientationHelpers"},s=void 0,l={unversionedId:"helpers/orientation-helpers",id:"helpers/orientation-helpers",title:"orientationHelpers",description:"Content",source:"@site/docs/helpers/orientation-helpers.md",sourceDirName:"helpers",slug:"/helpers/orientation-helpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/orientation-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"orientationHelpers"},sidebar:"tutorialSidebar",previous:{title:"imageHelpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers"},next:{title:"stringHelpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers"}},o={},d=[{value:"Content",id:"content",level:2},{value:"getCurrentOrientation",id:"getcurrentorientation",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"setDefaultOrientation",id:"setdefaultorientation",level:3},{value:"Usage example",id:"usage-example-1",level:4}];function c(e){const t=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",code:"code",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,r.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(t.p,{children:["Sets and gets orientation of device. Made possible by ",(0,i.jsx)(t.a,{href:"https://github.com/wonday/react-native-orientation-locker",children:"react-native-orientation-locker"}),"\nand ",(0,i.jsx)(t.a,{href:"https://github.com/m0ngr31/react-native-device-detection",children:"react-native-device-detection"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"getcurrentorientation",children:"getCurrentOrientation"}),"\n",(0,i.jsxs)(t.p,{children:["Gets initial orientation of device. For smartphones (with ",(0,i.jsx)(t.code,{children:"forceOnPhone"})," equals ",(0,i.jsx)(t.code,{children:"true"}),") it will always return ",(0,i.jsx)(t.code,{children:"PORTRAIT"})]}),"\n",(0,i.jsx)(t.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{align:"left",children:"Name"}),(0,i.jsx)(t.th,{align:"left",children:"Type"}),(0,i.jsx)(t.th,{align:"left",children:"Required"}),(0,i.jsx)(t.th,{align:"left",children:"Default value"}),(0,i.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{align:"left",children:"forceOnPhone"}),(0,i.jsx)(t.td,{align:"left",children:(0,i.jsx)(t.code,{children:"Boolean"})}),(0,i.jsx)(t.td,{align:"left",children:"False"}),(0,i.jsx)(t.td,{align:"left",children:"Undefined"}),(0,i.jsx)(t.td,{align:"left",children:"Returns initial device orientation for smartphones too"})]})})]}),"\n",(0,i.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"const [orientation, setOrientation] = useState(() => getCurrentOrientation());\n\nuseOrientationChange((changedOrientation) => {\n if (isTablet) {\n setOrientation(changedOrientation);\n }\n});\n"})}),"\n",(0,i.jsx)(t.h3,{id:"setdefaultorientation",children:"setDefaultOrientation"}),"\n",(0,i.jsxs)(t.p,{children:["Locks orientation on smartphones to ",(0,i.jsx)(t.code,{children:"PORTRAIT"})," and unlocks it for other devices."]}),"\n",(0,i.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export function initializeApp() {\n setDefaultOrientation();\n}\n"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,i.jsx)(t,Object.assign({},e,{children:(0,i.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>a});var i=n(7294);const r=i.createContext({});function a(e){const t=i.useContext(r);return i.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const s={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||s:a(e),i.createElement(r.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/5ed5e9d2.ef9b58ec.js b/assets/js/5ed5e9d2.ef9b58ec.js new file mode 100644 index 00000000..a0c096fa --- /dev/null +++ b/assets/js/5ed5e9d2.ef9b58ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1984],{2805:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var i=n(5893),r=n(1151);const s={sidebar_position:6,title:"orientationHelpers"},a=void 0,l={id:"helpers/orientation-helpers",title:"orientationHelpers",description:"Content",source:"@site/docs/helpers/orientation-helpers.md",sourceDirName:"helpers",slug:"/helpers/orientation-helpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/orientation-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"orientationHelpers"},sidebar:"tutorialSidebar",previous:{title:"imageHelpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers"},next:{title:"stringHelpers",permalink:"/react-native-template-strong/docs/helpers/strings-helpers"}},o={},d=[{value:"Content",id:"content",level:2},{value:"getCurrentOrientation",id:"getcurrentorientation",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4},{value:"setDefaultOrientation",id:"setdefaultorientation",level:3},{value:"Usage example",id:"usage-example-1",level:4}];function c(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(t.p,{children:["Sets and gets orientation of device. Made possible by ",(0,i.jsx)(t.a,{href:"https://github.com/wonday/react-native-orientation-locker",children:"react-native-orientation-locker"}),"\nand ",(0,i.jsx)(t.a,{href:"https://github.com/m0ngr31/react-native-device-detection",children:"react-native-device-detection"}),"."]}),"\n",(0,i.jsx)(t.h3,{id:"getcurrentorientation",children:"getCurrentOrientation"}),"\n",(0,i.jsxs)(t.p,{children:["Gets initial orientation of device. For smartphones (with ",(0,i.jsx)(t.code,{children:"forceOnPhone"})," equals ",(0,i.jsx)(t.code,{children:"true"}),") it will always return ",(0,i.jsx)(t.code,{children:"PORTRAIT"})]}),"\n",(0,i.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,i.jsxs)(t.table,{children:[(0,i.jsx)(t.thead,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,i.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,i.jsx)(t.tbody,{children:(0,i.jsxs)(t.tr,{children:[(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"forceOnPhone"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:(0,i.jsx)(t.code,{children:"Boolean"})}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,i.jsx)(t.td,{style:{textAlign:"left"},children:"Returns initial device orientation for smartphones too"})]})})]}),"\n",(0,i.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"const [orientation, setOrientation] = useState(() => getCurrentOrientation());\n\nuseOrientationChange((changedOrientation) => {\n if (isTablet) {\n setOrientation(changedOrientation);\n }\n});\n"})}),"\n",(0,i.jsx)(t.h3,{id:"setdefaultorientation",children:"setDefaultOrientation"}),"\n",(0,i.jsxs)(t.p,{children:["Locks orientation on smartphones to ",(0,i.jsx)(t.code,{children:"PORTRAIT"})," and unlocks it for other devices."]}),"\n",(0,i.jsx)(t.h4,{id:"usage-example-1",children:"Usage example"}),"\n",(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export function initializeApp() {\n setDefaultOrientation();\n}\n"})})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>a});var i=n(7294);const r={},s=i.createContext(r);function a(e){const t=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),i.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5f847e85.9c9bcb38.js b/assets/js/5f847e85.9c9bcb38.js deleted file mode 100644 index 3ce3c3e1..00000000 --- a/assets/js/5f847e85.9c9bcb38.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5601],{2250:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var r=t(5893),n=t(1151);const a={sidebar_position:2,title:"Images"},i=void 0,o={unversionedId:"resources/images",id:"resources/images",title:"Images",description:"Before adding images",source:"@site/docs/resources/images.md",sourceDirName:"resources",slug:"/resources/images",permalink:"/react-native-template-strong/docs/resources/images",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/images.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Images"},sidebar:"tutorialSidebar",previous:{title:"Fonts",permalink:"/react-native-template-strong/docs/resources/fonts"},next:{title:"SF Symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols"}},c={},d=[{value:"Before adding images",id:"before-adding-images",level:2},{value:"Adding images",id:"adding-images",level:2},{value:"Accessing images",id:"accessing-images",level:2}];function l(e){const s=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre"},(0,n.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"before-adding-images",children:"Before adding images"}),"\n",(0,r.jsxs)(s.p,{children:["There are ",(0,r.jsx)(s.a,{href:"/react-native-template-strong/docs/resources/sf-symbols",children:"SF Symbols"})," and ",(0,r.jsx)(s.a,{href:"/react-native-template-strong/docs/resources/vector-icons",children:"Material Vector Icons"})," included in this project,\nmaybe will suit your needs better rather than adding more resources."]}),"\n",(0,r.jsx)(s.h2,{id:"adding-images",children:"Adding images"}),"\n",(0,r.jsxs)(s.p,{children:["To add images, simply put your images into ",(0,r.jsx)(s.code,{children:"/resources/images"})," folder (you can add sub-folders inside there)"]}),"\n",(0,r.jsxs)(s.p,{children:["And thanks to ",(0,r.jsx)(s.a,{href:"https://github.com/svbutko/react-native-image-resource-generator",children:"react-native-image-resource-generator"}),",\nrun the following script from your ",(0,r.jsx)(s.code,{children:"package.json"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",children:"npm run generate-image-resources\n"})}),"\n",(0,r.jsxs)(s.p,{children:["It will generate ",(0,r.jsx)(s.code,{children:"src/common/ImageResources.g.ts"}),", and also will fix some of your unacceptable names."]}),"\n",(0,r.jsx)(s.p,{children:"File content will look similar to this:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-typescript",children:'/* eslint-disable */\n/* tslint:disable */\nimport {ImageURISource} from "react-native";\n\n/**\n * This file is auto-generated by react-native-image-resource-generator\n * !!! DO NOT EDIT !!!\n * For more information check the documentation:\n * https://github.com/svbutko/react-native-image-resource-generator\n*/\n\nexport class ImageResources {\n static readonly camera: ImageURISource = require("../../resources/images/camera.png");\n}\n'})}),"\n",(0,r.jsx)(s.h2,{id:"accessing-images",children:"Accessing images"}),"\n",(0,r.jsx)(s.p,{children:"To access the images which you added, simply call them the next way:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:"\n"})})]})}const m=function(e={}){const{wrapper:s}=Object.assign({},(0,n.ah)(),e.components);return s?(0,r.jsx)(s,Object.assign({},e,{children:(0,r.jsx)(l,e)})):l(e)}},1151:(e,s,t)=>{t.d(s,{Zo:()=>o,ah:()=>a});var r=t(7294);const n=r.createContext({});function a(e){const s=r.useContext(n);return r.useMemo((()=>"function"==typeof e?e(s):{...s,...e}),[s,e])}const i={};function o({components:e,children:s,disableParentContext:t}){let o;return o=t?"function"==typeof e?e({}):e||i:a(e),r.createElement(n.Provider,{value:o},s)}}}]); \ No newline at end of file diff --git a/assets/js/5f847e85.d027db0e.js b/assets/js/5f847e85.d027db0e.js new file mode 100644 index 00000000..a5b8814e --- /dev/null +++ b/assets/js/5f847e85.d027db0e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5601],{2250:(e,s,t)=>{t.r(s),t.d(s,{assets:()=>c,contentTitle:()=>i,default:()=>m,frontMatter:()=>a,metadata:()=>o,toc:()=>d});var r=t(5893),n=t(1151);const a={sidebar_position:2,title:"Images"},i=void 0,o={id:"resources/images",title:"Images",description:"Before adding images",source:"@site/docs/resources/images.md",sourceDirName:"resources",slug:"/resources/images",permalink:"/react-native-template-strong/docs/resources/images",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/images.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Images"},sidebar:"tutorialSidebar",previous:{title:"Fonts",permalink:"/react-native-template-strong/docs/resources/fonts"},next:{title:"SF Symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols"}},c={},d=[{value:"Before adding images",id:"before-adding-images",level:2},{value:"Adding images",id:"adding-images",level:2},{value:"Accessing images",id:"accessing-images",level:2}];function l(e){const s={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,n.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.h2,{id:"before-adding-images",children:"Before adding images"}),"\n",(0,r.jsxs)(s.p,{children:["There are ",(0,r.jsx)(s.a,{href:"/react-native-template-strong/docs/resources/sf-symbols",children:"SF Symbols"})," and ",(0,r.jsx)(s.a,{href:"/react-native-template-strong/docs/resources/vector-icons",children:"Material Vector Icons"})," included in this project,\nmaybe will suit your needs better rather than adding more resources."]}),"\n",(0,r.jsx)(s.h2,{id:"adding-images",children:"Adding images"}),"\n",(0,r.jsxs)(s.p,{children:["To add images, simply put your images into ",(0,r.jsx)(s.code,{children:"/resources/images"})," folder (you can add sub-folders inside there)"]}),"\n",(0,r.jsxs)(s.p,{children:["And thanks to ",(0,r.jsx)(s.a,{href:"https://github.com/svbutko/react-native-image-resource-generator",children:"react-native-image-resource-generator"}),",\nrun the following script from your ",(0,r.jsx)(s.code,{children:"package.json"}),":"]}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-shell",children:"npm run generate-image-resources\n"})}),"\n",(0,r.jsxs)(s.p,{children:["It will generate ",(0,r.jsx)(s.code,{children:"src/common/ImageResources.g.ts"}),", and also will fix some of your unacceptable names."]}),"\n",(0,r.jsx)(s.p,{children:"File content will look similar to this:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-typescript",children:'/* eslint-disable */\n/* tslint:disable */\nimport {ImageURISource} from "react-native";\n\n/**\n * This file is auto-generated by react-native-image-resource-generator\n * !!! DO NOT EDIT !!!\n * For more information check the documentation:\n * https://github.com/svbutko/react-native-image-resource-generator\n*/\n\nexport class ImageResources {\n static readonly camera: ImageURISource = require("../../resources/images/camera.png");\n}\n'})}),"\n",(0,r.jsx)(s.h2,{id:"accessing-images",children:"Accessing images"}),"\n",(0,r.jsx)(s.p,{children:"To access the images which you added, simply call them the next way:"}),"\n",(0,r.jsx)(s.pre,{children:(0,r.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:"\n"})})]})}function m(e={}){const{wrapper:s}={...(0,n.a)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(l,{...e})}):l(e)}},1151:(e,s,t)=>{t.d(s,{Z:()=>o,a:()=>i});var r=t(7294);const n={},a=r.createContext(n);function i(e){const s=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function o(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),r.createElement(a.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/5f9cf606.44f2588e.js b/assets/js/5f9cf606.44f2588e.js new file mode 100644 index 00000000..9cabd35f --- /dev/null +++ b/assets/js/5f9cf606.44f2588e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7062],{4545:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>d,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var s=n(5893),o=n(1151);const i={sidebar_position:6,title:"Jest config"},c=void 0,r={id:"configs/jest-config",title:"Jest config",description:"Jest utilizes eslint-config-react-strong",source:"@site/docs/configs/jest-config.md",sourceDirName:"configs",slug:"/configs/jest-config",permalink:"/react-native-template-strong/docs/configs/jest-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/jest-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Jest config"},sidebar:"tutorialSidebar",previous:{title:"Metro config",permalink:"/react-native-template-strong/docs/configs/metro-config"},next:{title:"Detox config",permalink:"/react-native-template-strong/docs/configs/detox-config"}},a={},l=[];function f(t){const e={a:"a",p:"p",...(0,o.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsxs)(e.p,{children:["Jest utilizes ",(0,s.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"eslint-config-react-strong"}),"\nset of rules provided by ",(0,s.jsx)(e.a,{href:"https://github.com/jest-community/eslint-plugin-jest",children:"eslint-plugin-jest"}),"."]}),"\n",(0,s.jsxs)(e.p,{children:["It also includes ",(0,s.jsx)(e.a,{href:"https://github.com/kulshekhar/ts-jest",children:"ts-jest"})," to work with Detox."]})]})}function d(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(f,{...t})}):f(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>r,a:()=>c});var s=n(7294);const o={},i=s.createContext(o);function c(t){const e=s.useContext(i);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),s.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/5f9cf606.86648ebb.js b/assets/js/5f9cf606.86648ebb.js deleted file mode 100644 index 3a2fab1c..00000000 --- a/assets/js/5f9cf606.86648ebb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7062],{4545:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>g,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var n=s(5893),i=s(1151);const o={sidebar_position:6,title:"Jest config"},c=void 0,r={unversionedId:"configs/jest-config",id:"configs/jest-config",title:"Jest config",description:"Jest utilizes eslint-config-react-strong",source:"@site/docs/configs/jest-config.md",sourceDirName:"configs",slug:"/configs/jest-config",permalink:"/react-native-template-strong/docs/configs/jest-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/jest-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"Jest config"},sidebar:"tutorialSidebar",previous:{title:"Metro config",permalink:"/react-native-template-strong/docs/configs/metro-config"},next:{title:"Detox config",permalink:"/react-native-template-strong/docs/configs/detox-config"}},a={},l=[];function f(t){const e=Object.assign({p:"p",a:"a"},(0,i.ah)(),t.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(e.p,{children:["Jest utilizes ",(0,n.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"eslint-config-react-strong"}),"\nset of rules provided by ",(0,n.jsx)(e.a,{href:"https://github.com/jest-community/eslint-plugin-jest",children:"eslint-plugin-jest"}),"."]}),"\n",(0,n.jsxs)(e.p,{children:["It also includes ",(0,n.jsx)(e.a,{href:"https://github.com/kulshekhar/ts-jest",children:"ts-jest"})," to work with Detox."]})]})}const g=function(t={}){const{wrapper:e}=Object.assign({},(0,i.ah)(),t.components);return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(f,t)})):f(t)}},1151:(t,e,s)=>{s.d(e,{Zo:()=>r,ah:()=>o});var n=s(7294);const i=n.createContext({});function o(t){const e=n.useContext(i);return n.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const c={};function r({components:t,children:e,disableParentContext:s}){let r;return r=s?"function"==typeof t?t({}):t||c:o(t),n.createElement(i.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/5fbc5cf1.bda21f93.js b/assets/js/5fbc5cf1.bda21f93.js deleted file mode 100644 index 6a79ee17..00000000 --- a/assets/js/5fbc5cf1.bda21f93.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1207],{8594:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var s=n(5893),i=n(1151);const r={sidebar_position:17,title:"API"},o=void 0,a={unversionedId:"api",id:"api",title:"API",description:"Content",source:"@site/docs/api.md",sourceDirName:".",slug:"/api",permalink:"/react-native-template-strong/docs/api",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/api.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:17,frontMatter:{sidebar_position:17,title:"API"},sidebar:"tutorialSidebar",previous:{title:"Environments",permalink:"/react-native-template-strong/docs/environments"},next:{title:"Jest",permalink:"/react-native-template-strong/docs/testing/jest"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Example",id:"example",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li",pre:"pre"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["This template was primarily made and tested with usage of ",(0,s.jsx)(t.code,{children:"fetch"})," to communicate with API."]}),"\n",(0,s.jsx)(t.p,{children:"But it's up to you to choose what to use."}),"\n",(0,s.jsxs)(t.p,{children:["The API folder is located in ",(0,s.jsx)(t.code,{children:"src/core/api"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["It contains ",(0,s.jsx)(t.code,{children:"dto"})," folder for your API interfaces."]}),"\n",(0,s.jsxs)(t.p,{children:["And ",(0,s.jsx)(t.code,{children:"requests"})," where your requests will be stored."]}),"\n",(0,s.jsx)(t.p,{children:"There is also a set of predefined server headers which can be used to fetch data:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"defaultHeaders"})," - connection ",(0,s.jsx)(t.code,{children:"keep-alive"})," and content type ",(0,s.jsx)(t.code,{children:"application/json"})]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Additionally, there is ",(0,s.jsx)(t.code,{children:"handleFetchJsonResponse"})," a fetch result handler to properly handle errors."]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const ItemApi = {\n async getData(): Promise {\n return await fetch(\n `${Config.API_URL}/api/getData`,\n {\n method: 'GET',\n headers: defaultHeaders,\n },\n ).then(handleFetchJsonResponse);\n },\n};\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>r});var s=n(7294);const i=s.createContext({});function r(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||o:r(e),s.createElement(i.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/5fbc5cf1.f3daa5fe.js b/assets/js/5fbc5cf1.f3daa5fe.js new file mode 100644 index 00000000..b9c22893 --- /dev/null +++ b/assets/js/5fbc5cf1.f3daa5fe.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1207],{8594:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var s=n(5893),o=n(1151);const r={sidebar_position:17,title:"API"},i=void 0,a={id:"api",title:"API",description:"Content",source:"@site/docs/api.md",sourceDirName:".",slug:"/api",permalink:"/react-native-template-strong/docs/api",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/api.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:17,frontMatter:{sidebar_position:17,title:"API"},sidebar:"tutorialSidebar",previous:{title:"Environments",permalink:"/react-native-template-strong/docs/environments"},next:{title:"Jest",permalink:"/react-native-template-strong/docs/testing/jest"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Example",id:"example",level:2}];function l(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["This template was primarily made and tested with usage of ",(0,s.jsx)(t.code,{children:"fetch"})," to communicate with API."]}),"\n",(0,s.jsx)(t.p,{children:"But it's up to you to choose what to use."}),"\n",(0,s.jsxs)(t.p,{children:["The API folder is located in ",(0,s.jsx)(t.code,{children:"src/core/api"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["It contains ",(0,s.jsx)(t.code,{children:"dto"})," folder for your API interfaces."]}),"\n",(0,s.jsxs)(t.p,{children:["And ",(0,s.jsx)(t.code,{children:"requests"})," where your requests will be stored."]}),"\n",(0,s.jsx)(t.p,{children:"There is also a set of predefined server headers which can be used to fetch data:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"defaultHeaders"})," - connection ",(0,s.jsx)(t.code,{children:"keep-alive"})," and content type ",(0,s.jsx)(t.code,{children:"application/json"})]}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["Additionally, there is ",(0,s.jsx)(t.code,{children:"handleFetchJsonResponse"})," a fetch result handler to properly handle errors."]}),"\n",(0,s.jsx)(t.h2,{id:"example",children:"Example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const ItemApi = {\n async getData(): Promise {\n return await fetch(\n `${Config.API_URL}/api/getData`,\n {\n method: 'GET',\n headers: defaultHeaders,\n },\n ).then(handleFetchJsonResponse);\n },\n};\n"})})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>i});var s=n(7294);const o={},r=s.createContext(o);function i(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:i(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6222aa5d.0fa28a8e.js b/assets/js/6222aa5d.0fa28a8e.js deleted file mode 100644 index 8d09a431..00000000 --- a/assets/js/6222aa5d.0fa28a8e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3772],{8321:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>a});var s=i(5893),r=i(1151);const t={sidebar_position:2,title:"Android internals"},d=void 0,l={unversionedId:"internals/android",id:"internals/android",title:"Android internals",description:"Hermes",source:"@site/docs/internals/android.md",sourceDirName:"internals",slug:"/internals/android",permalink:"/react-native-template-strong/docs/internals/android",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/internals/android.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Android internals"},sidebar:"tutorialSidebar",previous:{title:"iOS internals",permalink:"/react-native-template-strong/docs/internals/ios"},next:{title:"Checking on updates",permalink:"/react-native-template-strong/docs/checking-updates"}},o={},a=[{value:"Hermes",id:"hermes",level:2},{value:"Proguard",id:"proguard",level:2},{value:"Versions",id:"versions",level:2},{value:"Gradle",id:"gradle",level:2},{value:"Network security config",id:"network-security-config",level:2},{value:"Large heap",id:"large-heap",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li",div:"div"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"hermes",children:"Hermes"}),"\n",(0,s.jsx)(n.p,{children:"Enabled"}),"\n",(0,s.jsx)(n.h2,{id:"proguard",children:"Proguard"}),"\n",(0,s.jsxs)(n.p,{children:["By default ",(0,s.jsx)(n.code,{children:"proguard"})," is enabled, so be careful when installing new native dependencies."]}),"\n",(0,s.jsx)(n.h2,{id:"versions",children:"Versions"}),"\n",(0,s.jsx)(n.p,{children:"Next versions are being used:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["kotlinVersion - ",(0,s.jsx)(n.code,{children:"1.5.31"})]}),"\n",(0,s.jsxs)(n.li,{children:["buildToolsVersion - ",(0,s.jsx)(n.code,{children:"30.0.2"})]}),"\n",(0,s.jsxs)(n.li,{children:["minSdkVersion - ",(0,s.jsx)(n.code,{children:"21"})]}),"\n",(0,s.jsxs)(n.li,{children:["compileSdkVersion - ",(0,s.jsx)(n.code,{children:"30"})]}),"\n",(0,s.jsxs)(n.li,{children:["targetSdkVersion - ",(0,s.jsx)(n.code,{children:"30"})]}),"\n",(0,s.jsxs)(n.li,{children:["androidXCore - ",(0,s.jsx)(n.code,{children:"1.6.0"})]}),"\n",(0,s.jsxs)(n.li,{children:["ndkVersion - ",(0,s.jsx)(n.code,{children:"23.0.7599858"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"gradle",children:"Gradle"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Gradle version is set to ",(0,s.jsx)(n.code,{children:"7.2"})]}),"\n",(0,s.jsxs)(n.li,{children:["com.android.tools.build",(0,s.jsx)(n.div,{})," - ",(0,s.jsx)(n.code,{children:"4.2.2"})]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"network-security-config",children:"Network security config"}),"\n",(0,s.jsx)(n.p,{children:"There's a network security config which defines next addresses to be allowed:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"localhost"}),"\n",(0,s.jsx)(n.li,{children:"10.0.2.2 - Android Emulator"}),"\n",(0,s.jsx)(n.li,{children:"10.0.3.2 - Genymotion Emulator"}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["If you have troubles connecting while in debug from physical device, try to add your IP address in ",(0,s.jsx)(n.code,{children:"network_security_config.xml"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"large-heap",children:"Large heap"}),"\n",(0,s.jsx)(n.p,{children:"Large heap is enabled by default, you can disable it but practice shows that in most of the cases you need to enable it."})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,r.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(c,e)})):c(e)}},1151:(e,n,i)=>{i.d(n,{Zo:()=>l,ah:()=>t});var s=i(7294);const r=s.createContext({});function t(e){const n=s.useContext(r);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const d={};function l({components:e,children:n,disableParentContext:i}){let l;return l=i?"function"==typeof e?e({}):e||d:t(e),s.createElement(r.Provider,{value:l},n)}}}]); \ No newline at end of file diff --git a/assets/js/6222aa5d.fae77e55.js b/assets/js/6222aa5d.fae77e55.js new file mode 100644 index 00000000..40898071 --- /dev/null +++ b/assets/js/6222aa5d.fae77e55.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3772],{8321:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>o,contentTitle:()=>d,default:()=>h,frontMatter:()=>t,metadata:()=>l,toc:()=>a});var r=i(5893),s=i(1151);const t={sidebar_position:2,title:"Android internals"},d=void 0,l={id:"internals/android",title:"Android internals",description:"Hermes",source:"@site/docs/internals/android.md",sourceDirName:"internals",slug:"/internals/android",permalink:"/react-native-template-strong/docs/internals/android",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/internals/android.md",tags:[],version:"current",lastUpdatedAt:1704743195,formattedLastUpdatedAt:"Jan 8, 2024",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Android internals"},sidebar:"tutorialSidebar",previous:{title:"iOS internals",permalink:"/react-native-template-strong/docs/internals/ios"},next:{title:"Checking on updates",permalink:"/react-native-template-strong/docs/checking-updates"}},o={},a=[{value:"Hermes",id:"hermes",level:2},{value:"Proguard",id:"proguard",level:2},{value:"Versions",id:"versions",level:2},{value:"Gradle",id:"gradle",level:2},{value:"Network security config",id:"network-security-config",level:2},{value:"Large heap",id:"large-heap",level:2}];function c(e){const n={code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"hermes",children:"Hermes"}),"\n",(0,r.jsx)(n.p,{children:"Enabled"}),"\n",(0,r.jsx)(n.h2,{id:"proguard",children:"Proguard"}),"\n",(0,r.jsxs)(n.p,{children:["By default ",(0,r.jsx)(n.code,{children:"proguard"})," is disabled"]}),"\n",(0,r.jsx)(n.h2,{id:"versions",children:"Versions"}),"\n",(0,r.jsx)(n.p,{children:"Next versions are being used:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["kotlinVersion - ",(0,r.jsx)(n.code,{children:"1.8.0"})]}),"\n",(0,r.jsxs)(n.li,{children:["buildToolsVersion - ",(0,r.jsx)(n.code,{children:"34.0.0"})]}),"\n",(0,r.jsxs)(n.li,{children:["minSdkVersion - ",(0,r.jsx)(n.code,{children:"24"})]}),"\n",(0,r.jsxs)(n.li,{children:["compileSdkVersion - ",(0,r.jsx)(n.code,{children:"34"})]}),"\n",(0,r.jsxs)(n.li,{children:["targetSdkVersion - ",(0,r.jsx)(n.code,{children:"34"})]}),"\n",(0,r.jsxs)(n.li,{children:["ndkVersion - ",(0,r.jsx)(n.code,{children:"25.1.8937393"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"gradle",children:"Gradle"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Gradle version is set to ",(0,r.jsx)(n.code,{children:"8.3"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"network-security-config",children:"Network security config"}),"\n",(0,r.jsx)(n.p,{children:"There's a network security config which defines next addresses to be allowed:"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"localhost"}),"\n",(0,r.jsx)(n.li,{children:"10.0.2.2 - Android Emulator"}),"\n",(0,r.jsx)(n.li,{children:"10.0.3.2 - Genymotion Emulator"}),"\n"]}),"\n",(0,r.jsxs)(n.p,{children:["If you have troubles connecting while in debug from physical device, try to add your IP address in ",(0,r.jsx)(n.code,{children:"network_security_config.xml"}),"."]}),"\n",(0,r.jsx)(n.h2,{id:"large-heap",children:"Large heap"}),"\n",(0,r.jsx)(n.p,{children:"Large heap is enabled by default, you can disable it but practice shows that in most of the cases you need to enable it."})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>d});var r=i(7294);const s={},t=r.createContext(s);function d(e){const n=r.useContext(t);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),r.createElement(t.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/62c33f29.0a26d829.js b/assets/js/62c33f29.0a26d829.js new file mode 100644 index 00000000..3a12d1ae --- /dev/null +++ b/assets/js/62c33f29.0a26d829.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9102],{3976:(t,e,l)=>{l.r(e),l.d(e,{assets:()=>c,contentTitle:()=>d,default:()=>a,frontMatter:()=>i,metadata:()=>r,toc:()=>o});var n=l(5893),s=l(1151);const i={sidebar_position:1,title:"PrimaryButton"},d=void 0,r={id:"components/primary-button",title:"PrimaryButton",description:"Content",source:"@site/docs/components/primary-button.md",sourceDirName:"components",slug:"/components/primary-button",permalink:"/react-native-template-strong/docs/components/primary-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/primary-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"PrimaryButton"},sidebar:"tutorialSidebar",previous:{title:"Common constants",permalink:"/react-native-template-strong/docs/common-constants"},next:{title:"PrimaryTextInput",permalink:"/react-native-template-strong/docs/components/primary-text-input"}},c={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function x(t){const e={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...t.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,n.jsx)(e.p,{children:"Primary button of project which should be used as a button component. Provides several built-in type scenarios."}),"\n",(0,n.jsx)(e.h2,{id:"params",children:"Params"}),"\n",(0,n.jsxs)(e.p,{children:["Extends ",(0,n.jsx)(e.code,{children:"PressableProps"})," and additionally adds next properties"]}),"\n",(0,n.jsxs)(e.table,{children:[(0,n.jsx)(e.thead,{children:(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.th,{style:{textAlign:"left"},children:"Name"}),(0,n.jsx)(e.th,{style:{textAlign:"left"},children:"Type"}),(0,n.jsx)(e.th,{style:{textAlign:"left"},children:"Required"}),(0,n.jsx)(e.th,{style:{textAlign:"left"},children:"Default value"}),(0,n.jsx)(e.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,n.jsxs)(e.tbody,{children:[(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"label"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"string"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"True"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"-"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Label of button"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"type"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"ButtonType"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"True"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"-"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Button type based on which different styles will be shown"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"rounded"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"boolean"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Should the corners be rounded"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"label"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"string"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Style of container"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"icon"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"ImageURISource"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Custom icon"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"iconStyle"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"StyleProp"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Custom icon's style"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"platformIconProps"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"IIconPlatformProps"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsxs)(e.td,{style:{textAlign:"left"},children:["Platform icon props which will be used if ",(0,n.jsx)(e.code,{children:"icon"})," is not provided"]})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"labelStyle"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"TextStyle"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Label's style"})]}),(0,n.jsxs)(e.tr,{children:[(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"isLoading"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:(0,n.jsx)(e.code,{children:"boolean"})}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,n.jsx)(e.td,{style:{textAlign:"left"},children:"Shows activity indicator"})]})]})]}),"\n",(0,n.jsx)(e.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:' \n'})})]})}function a(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(x,{...t})}):x(t)}},1151:(t,e,l)=>{l.d(e,{Z:()=>r,a:()=>d});var n=l(7294);const s={},i=n.createContext(s);function d(t){const e=n.useContext(i);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:d(t.components),n.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/62c33f29.90bea568.js b/assets/js/62c33f29.90bea568.js deleted file mode 100644 index f87a72ec..00000000 --- a/assets/js/62c33f29.90bea568.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9102],{3976:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>c});var l=t(5893),i=t(1151);const s={sidebar_position:1,title:"PrimaryButton"},d=void 0,r={unversionedId:"components/primary-button",id:"components/primary-button",title:"PrimaryButton",description:"Content",source:"@site/docs/components/primary-button.md",sourceDirName:"components",slug:"/components/primary-button",permalink:"/react-native-template-strong/docs/components/primary-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/primary-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"PrimaryButton"},sidebar:"tutorialSidebar",previous:{title:"Common constants",permalink:"/react-native-template-strong/docs/common-constants"},next:{title:"PrimaryTextInput",permalink:"/react-native-template-strong/docs/components/primary-text-input"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function o(e){const n=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,i.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(n.p,{children:"Primary button of project which should be used as a button component. Provides several built-in type scenarios."}),"\n",(0,l.jsx)(n.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(n.p,{children:["Extends ",(0,l.jsx)(n.code,{children:"PressableProps"})," and additionally adds next properties"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"label"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"Label of button"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"type"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ButtonType"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"Button type based on which different styles will be shown"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"rounded"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"boolean"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Should the corners be rounded"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"label"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Style of container"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"icon"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageURISource"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Custom icon"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"iconStyle"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"StyleProp"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Custom icon's style"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"platformIconProps"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"IIconPlatformProps"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsxs)(n.td,{align:"left",children:["Platform icon props which will be used if ",(0,l.jsx)(n.code,{children:"icon"})," is not provided"]})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"labelStyle"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"TextStyle"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Label's style"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"isLoading"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"boolean"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Shows activity indicator"})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' \n'})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,l.jsx)(n,Object.assign({},e,{children:(0,l.jsx)(o,e)})):o(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>r,ah:()=>s});var l=t(7294);const i=l.createContext({});function s(e){const n=l.useContext(i);return l.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const d={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||d:s(e),l.createElement(i.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/644e2e9e.e7333307.js b/assets/js/644e2e9e.e7333307.js deleted file mode 100644 index 825fd643..00000000 --- a/assets/js/644e2e9e.e7333307.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6759],{9816:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var a=t(5893),s=t(1151);const i={sidebar_position:13,title:"Validations"},r=void 0,o={unversionedId:"validations",id:"validations",title:"Validations",description:"Content",source:"@site/docs/validations.md",sourceDirName:".",slug:"/validations",permalink:"/react-native-template-strong/docs/validations",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/validations.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"Validations"},sidebar:"tutorialSidebar",previous:{title:"shareHelpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers"},next:{title:"newState",permalink:"/react-native-template-strong/docs/utils/new-state"}},l={},c=[{value:"Content",id:"content",level:2},{value:"Validations",id:"validations",level:2},{value:"emptyValidation",id:"emptyvalidation",level:3},{value:"datesValidation",id:"datesvalidation",level:3},{value:"phoneValidations",id:"phonevalidations",level:3},{value:"emailValidations",id:"emailvalidations",level:3},{value:"fullNameValidations",id:"fullnamevalidations",level:3},{value:"Validation constants",id:"validation-constants",level:2},{value:"Hooks",id:"hooks",level:2},{value:"useInputError",id:"useinputerror",level:3},{value:"Async thunk error handling",id:"async-thunk-error-handling",level:2},{value:"handlePromiseResult",id:"handlepromiseresult",level:3}];function d(e){const n=Object.assign({h2:"h2",p:"p",code:"code",h3:"h3",ul:"ul",li:"li",pre:"pre"},(0,s.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(n.p,{children:"Primarily has validations for different use cases (e.g. min. password length, max. name characters etc.)."}),"\n",(0,a.jsxs)(n.p,{children:["Many of those validations can be used with ",(0,a.jsx)(n.code,{children:"PrimaryTextInput"})," to show errors while user types, when user finished typing (left input) or when user taps on a certain button."]}),"\n",(0,a.jsxs)(n.p,{children:["These validations are located in the ",(0,a.jsx)(n.code,{children:"src/common/validations"})," folder."]}),"\n",(0,a.jsx)(n.h2,{id:"validations",children:"Validations"}),"\n",(0,a.jsxs)(n.p,{children:["These validations operate with ",(0,a.jsx)(n.code,{children:"null | string"})," return type rather than throwing an error. So when a method returns ",(0,a.jsx)(n.code,{children:"null"})," then a value passed, otherwise it returns localized ",(0,a.jsx)(n.code,{children:"string"})," which can be shown to user as error."]}),"\n",(0,a.jsx)(n.h3,{id:"emptyvalidation",children:"emptyValidation"}),"\n",(0,a.jsxs)(n.p,{children:["Checks whether a string is empty (returns localization string) or not (returns ",(0,a.jsx)(n.code,{children:"null"}),")."]}),"\n",(0,a.jsx)(n.h3,{id:"datesvalidation",children:"datesValidation"}),"\n",(0,a.jsx)(n.p,{children:"Compares two dates between each other.\nIf dates are equal then returns localization string (dates can't be equal).\nThen based on which field is currently being filled checks the difference:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"from"})," can't be later than ",(0,a.jsx)(n.code,{children:"to"})]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"to"})," can't be earlier than ",(0,a.jsx)(n.code,{children:"from"})]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"phonevalidations",children:"phoneValidations"}),"\n",(0,a.jsx)(n.p,{children:"Checks whether a string is empty or not and checks minimal length of phone number."}),"\n",(0,a.jsx)(n.h3,{id:"emailvalidations",children:"emailValidations"}),"\n",(0,a.jsxs)(n.p,{children:["Checks whether a string is empty or not and checks the format of email by using ",(0,a.jsx)(n.code,{children:"isEmail"}),"."]}),"\n",(0,a.jsx)(n.h3,{id:"fullnamevalidations",children:"fullNameValidations"}),"\n",(0,a.jsx)(n.p,{children:"Checks whether a string is empty or not and checks minimal length of full name."}),"\n",(0,a.jsx)(n.h2,{id:"validation-constants",children:"Validation constants"}),"\n",(0,a.jsxs)(n.p,{children:["These constants can be used as min/max length props in text inputs or when checking certain values.\nThey are located in ",(0,a.jsx)(n.code,{children:"validationConstants.ts"})," and have some common values:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",children:"export const validationConstants = {\n phone: {\n minLength: 8,\n maxLength: 18,\n },\n fullName: {\n minLength: 3,\n maxLength: 64,\n },\n comment: {\n maxLength: 280,\n },\n email: {\n maxLength: 254,\n },\n licensePlate: {\n minLength: 4,\n maxLength: 10,\n },\n};\n"})}),"\n",(0,a.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,a.jsx)(n.p,{children:"There are a couple of hooks to use for error checking when user does certain actions. So rather than using 3rd party form dependency\n(forms are rare use case and for most of the time can be checked manually in React Native) it's more convenient to use this custom hooks"}),"\n",(0,a.jsx)(n.h3,{id:"useinputerror",children:"useInputError"}),"\n",(0,a.jsxs)(n.p,{children:["Checks string value which user inputs based on supplied validation and returns ",(0,a.jsx)(n.code,{children:"error"}),", ",(0,a.jsx)(n.code,{children:"setError"}),", ",(0,a.jsx)(n.code,{children:"recheck"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["Used in conjunction with ",(0,a.jsx)(n.code,{children:"recheckAllValidations"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["To better demonstrate how it works, it's better to show a basic example with ",(0,a.jsx)(n.code,{children:"email"})," and ",(0,a.jsx)(n.code,{children:"name"})," text inputs:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export const AuthPersonalData: NavigationFunctionComponent = () => {\n const dispatch = useAppDispatch();\n\n const [fullName, setFullName] = useState("");\n const [email, setEmail] = useState("");\n\n const {error: emailError, recheckValue: recheckEmail} = useInputError(email, emailValidations);\n const {error: nameError, recheckValue: recheckName} = useInputError(fullName, fullNameValidations);\n \n const submitData = useCallback(() => {\n if (recheckAllValidations([recheckName, recheckEmail])) {\n dispatch(createProfile({email, name: fullName.trim()}));\n }\n }, [recheckName, recheckEmail, dispatch, email, fullName]);\n\n return (\n \n \n \n \n \n );\n};\n'})}),"\n",(0,a.jsx)(n.p,{children:"You can see two simple inputs and a button. While user enters certain value he will be seeing an error if it won't fit to validation."}),"\n",(0,a.jsx)(n.p,{children:"And before dispatching profile creation, we might recheck all validations which we had if at least one of them fails the dispatch won't happen and errors will be set."}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"setError"})," parameter which is returned from ",(0,a.jsx)(n.code,{children:"useInputError"})," can be used in cases when we need to manually set error, for example when API returned error regarding this value (e.g. email is already taken)."]}),"\n",(0,a.jsx)(n.h2,{id:"async-thunk-error-handling",children:"Async thunk error handling"}),"\n",(0,a.jsx)(n.p,{children:"To check on async thunk errors and show a success message or show error as alert, toast or input's error prop there's a mechanism for it."}),"\n",(0,a.jsx)(n.h3,{id:"handlepromiseresult",children:"handlePromiseResult"}),"\n",(0,a.jsx)(n.p,{children:"Unwraps the result of promise and then if everything went without errors based on provided params shows success toast and executes success message."}),"\n",(0,a.jsxs)(n.p,{children:["If things went the wrong way it tries to process the error using ",(0,a.jsx)(n.code,{children:"handleErrorPostProcessing"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["To better demonstrate how it works we come back to our example with ",(0,a.jsx)(n.code,{children:"email"})," and ",(0,a.jsx)(n.code,{children:"name"})," but this time we will modify it show error and success message if everything went right."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" const processError = useCallback((newError: Error) => {\n return {message: newError.message, visualRepresentation: ErrorRepresentationType.toast}\n }, []);\n\n const submitData = useCallback(() => {\n if (recheckAllValidations([recheckName, recheckEmail])) {\n handlePromiseResult(\n dispatch(createProfile({email, name: fullName.trim()}))\n localization.auth.profileHasBeenSuccessfullyCreated,\n setAuthorizedRoot,\n processError\n );\n }\n }, [recheckName, recheckEmail, dispatch, email, fullName]);\n"})}),"\n",(0,a.jsxs)(n.p,{children:["So now if everything goes right user will see a toast with ",(0,a.jsx)(n.code,{children:"localization.auth.profileHasBeenSuccessfullyCreated"})," and will be redirected to new root (",(0,a.jsx)(n.code,{children:"setAuthorizedRoot"}),").\nIf things go wrong way there will be shown a toast with error message from server."]}),"\n",(0,a.jsxs)(n.p,{children:["To better understand logic take a brief look at insides of ",(0,a.jsx)(n.code,{children:"handlePromiseResult"})," and ",(0,a.jsx)(n.code,{children:"handleErrorPostProcessing"})," they are simple but just need to be used once or twice to grasp how and why they do this."]})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,a.jsx)(n,Object.assign({},e,{children:(0,a.jsx)(d,e)})):d(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>o,ah:()=>i});var a=t(7294);const s=a.createContext({});function i(e){const n=a.useContext(s);return a.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function o({components:e,children:n,disableParentContext:t}){let o;return o=t?"function"==typeof e?e({}):e||r:i(e),a.createElement(s.Provider,{value:o},n)}}}]); \ No newline at end of file diff --git a/assets/js/644e2e9e.fd30308e.js b/assets/js/644e2e9e.fd30308e.js new file mode 100644 index 00000000..88ae9e01 --- /dev/null +++ b/assets/js/644e2e9e.fd30308e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6759],{9816:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var a=t(5893),i=t(1151);const s={sidebar_position:13,title:"Validations"},r=void 0,o={id:"validations",title:"Validations",description:"Content",source:"@site/docs/validations.md",sourceDirName:".",slug:"/validations",permalink:"/react-native-template-strong/docs/validations",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/validations.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"Validations"},sidebar:"tutorialSidebar",previous:{title:"shareHelpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers"},next:{title:"newState",permalink:"/react-native-template-strong/docs/utils/new-state"}},l={},c=[{value:"Content",id:"content",level:2},{value:"Validations",id:"validations",level:2},{value:"emptyValidation",id:"emptyvalidation",level:3},{value:"datesValidation",id:"datesvalidation",level:3},{value:"phoneValidations",id:"phonevalidations",level:3},{value:"emailValidations",id:"emailvalidations",level:3},{value:"fullNameValidations",id:"fullnamevalidations",level:3},{value:"Validation constants",id:"validation-constants",level:2},{value:"Hooks",id:"hooks",level:2},{value:"useInputError",id:"useinputerror",level:3},{value:"Async thunk error handling",id:"async-thunk-error-handling",level:2},{value:"handlePromiseResult",id:"handlepromiseresult",level:3}];function d(e){const n={code:"code",h2:"h2",h3:"h3",li:"li",p:"p",pre:"pre",ul:"ul",...(0,i.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(n.p,{children:"Primarily has validations for different use cases (e.g. min. password length, max. name characters etc.)."}),"\n",(0,a.jsxs)(n.p,{children:["Many of those validations can be used with ",(0,a.jsx)(n.code,{children:"PrimaryTextInput"})," to show errors while user types, when user finished typing (left input) or when user taps on a certain button."]}),"\n",(0,a.jsxs)(n.p,{children:["These validations are located in the ",(0,a.jsx)(n.code,{children:"src/common/validations"})," folder."]}),"\n",(0,a.jsx)(n.h2,{id:"validations",children:"Validations"}),"\n",(0,a.jsxs)(n.p,{children:["These validations operate with ",(0,a.jsx)(n.code,{children:"null | string"})," return type rather than throwing an error. So when a method returns ",(0,a.jsx)(n.code,{children:"null"})," then a value passed, otherwise it returns localized ",(0,a.jsx)(n.code,{children:"string"})," which can be shown to user as error."]}),"\n",(0,a.jsx)(n.h3,{id:"emptyvalidation",children:"emptyValidation"}),"\n",(0,a.jsxs)(n.p,{children:["Checks whether a string is empty (returns localization string) or not (returns ",(0,a.jsx)(n.code,{children:"null"}),")."]}),"\n",(0,a.jsx)(n.h3,{id:"datesvalidation",children:"datesValidation"}),"\n",(0,a.jsx)(n.p,{children:"Compares two dates between each other.\nIf dates are equal then returns localization string (dates can't be equal).\nThen based on which field is currently being filled checks the difference:"}),"\n",(0,a.jsxs)(n.ul,{children:["\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"from"})," can't be later than ",(0,a.jsx)(n.code,{children:"to"})]}),"\n",(0,a.jsxs)(n.li,{children:[(0,a.jsx)(n.code,{children:"to"})," can't be earlier than ",(0,a.jsx)(n.code,{children:"from"})]}),"\n"]}),"\n",(0,a.jsx)(n.h3,{id:"phonevalidations",children:"phoneValidations"}),"\n",(0,a.jsx)(n.p,{children:"Checks whether a string is empty or not and checks minimal length of phone number."}),"\n",(0,a.jsx)(n.h3,{id:"emailvalidations",children:"emailValidations"}),"\n",(0,a.jsxs)(n.p,{children:["Checks whether a string is empty or not and checks the format of email by using ",(0,a.jsx)(n.code,{children:"isEmail"}),"."]}),"\n",(0,a.jsx)(n.h3,{id:"fullnamevalidations",children:"fullNameValidations"}),"\n",(0,a.jsx)(n.p,{children:"Checks whether a string is empty or not and checks minimal length of full name."}),"\n",(0,a.jsx)(n.h2,{id:"validation-constants",children:"Validation constants"}),"\n",(0,a.jsxs)(n.p,{children:["These constants can be used as min/max length props in text inputs or when checking certain values.\nThey are located in ",(0,a.jsx)(n.code,{children:"validationConstants.ts"})," and have some common values:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",children:"export const validationConstants = {\n phone: {\n minLength: 8,\n maxLength: 18,\n },\n fullName: {\n minLength: 3,\n maxLength: 64,\n },\n comment: {\n maxLength: 280,\n },\n email: {\n maxLength: 254,\n },\n licensePlate: {\n minLength: 4,\n maxLength: 10,\n },\n};\n"})}),"\n",(0,a.jsx)(n.h2,{id:"hooks",children:"Hooks"}),"\n",(0,a.jsx)(n.p,{children:"There are a couple of hooks to use for error checking when user does certain actions. So rather than using 3rd party form dependency\n(forms are rare use case and for most of the time can be checked manually in React Native) it's more convenient to use this custom hooks"}),"\n",(0,a.jsx)(n.h3,{id:"useinputerror",children:"useInputError"}),"\n",(0,a.jsxs)(n.p,{children:["Checks string value which user inputs based on supplied validation and returns ",(0,a.jsx)(n.code,{children:"error"}),", ",(0,a.jsx)(n.code,{children:"setError"}),", ",(0,a.jsx)(n.code,{children:"recheck"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["Used in conjunction with ",(0,a.jsx)(n.code,{children:"recheckAllValidations"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["To better demonstrate how it works, it's better to show a basic example with ",(0,a.jsx)(n.code,{children:"email"})," and ",(0,a.jsx)(n.code,{children:"name"})," text inputs:"]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export const AuthPersonalData: NavigationFunctionComponent = () => {\n const dispatch = useAppDispatch();\n\n const [fullName, setFullName] = useState("");\n const [email, setEmail] = useState("");\n\n const {error: emailError, recheckValue: recheckEmail} = useInputError(email, emailValidations);\n const {error: nameError, recheckValue: recheckName} = useInputError(fullName, fullNameValidations);\n \n const submitData = useCallback(() => {\n if (recheckAllValidations([recheckName, recheckEmail])) {\n dispatch(createProfile({email, name: fullName.trim()}));\n }\n }, [recheckName, recheckEmail, dispatch, email, fullName]);\n\n return (\n \n \n \n \n \n );\n};\n'})}),"\n",(0,a.jsx)(n.p,{children:"You can see two simple inputs and a button. While user enters certain value he will be seeing an error if it won't fit to validation."}),"\n",(0,a.jsx)(n.p,{children:"And before dispatching profile creation, we might recheck all validations which we had if at least one of them fails the dispatch won't happen and errors will be set."}),"\n",(0,a.jsxs)(n.p,{children:[(0,a.jsx)(n.code,{children:"setError"})," parameter which is returned from ",(0,a.jsx)(n.code,{children:"useInputError"})," can be used in cases when we need to manually set error, for example when API returned error regarding this value (e.g. email is already taken)."]}),"\n",(0,a.jsx)(n.h2,{id:"async-thunk-error-handling",children:"Async thunk error handling"}),"\n",(0,a.jsx)(n.p,{children:"To check on async thunk errors and show a success message or show error as alert, toast or input's error prop there's a mechanism for it."}),"\n",(0,a.jsx)(n.h3,{id:"handlepromiseresult",children:"handlePromiseResult"}),"\n",(0,a.jsx)(n.p,{children:"Unwraps the result of promise and then if everything went without errors based on provided params shows success toast and executes success message."}),"\n",(0,a.jsxs)(n.p,{children:["If things went the wrong way it tries to process the error using ",(0,a.jsx)(n.code,{children:"handleErrorPostProcessing"}),"."]}),"\n",(0,a.jsxs)(n.p,{children:["To better demonstrate how it works we come back to our example with ",(0,a.jsx)(n.code,{children:"email"})," and ",(0,a.jsx)(n.code,{children:"name"})," but this time we will modify it show error and success message if everything went right."]}),"\n",(0,a.jsx)(n.pre,{children:(0,a.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" const processError = useCallback((newError: Error) => {\n return {message: newError.message, visualRepresentation: ErrorRepresentationType.toast}\n }, []);\n\n const submitData = useCallback(() => {\n if (recheckAllValidations([recheckName, recheckEmail])) {\n handlePromiseResult(\n dispatch(createProfile({email, name: fullName.trim()}))\n localization.auth.profileHasBeenSuccessfullyCreated,\n setAuthorizedRoot,\n processError\n );\n }\n }, [recheckName, recheckEmail, dispatch, email, fullName]);\n"})}),"\n",(0,a.jsxs)(n.p,{children:["So now if everything goes right user will see a toast with ",(0,a.jsx)(n.code,{children:"localization.auth.profileHasBeenSuccessfullyCreated"})," and will be redirected to new root (",(0,a.jsx)(n.code,{children:"setAuthorizedRoot"}),").\nIf things go wrong way there will be shown a toast with error message from server."]}),"\n",(0,a.jsxs)(n.p,{children:["To better understand logic take a brief look at insides of ",(0,a.jsx)(n.code,{children:"handlePromiseResult"})," and ",(0,a.jsx)(n.code,{children:"handleErrorPostProcessing"})," they are simple but just need to be used once or twice to grasp how and why they do this."]})]})}function h(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,a.jsx)(n,{...e,children:(0,a.jsx)(d,{...e})}):d(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var a=t(7294);const i={},s=a.createContext(i);function r(e){const n=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),a.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/692.7bdb5bbe.js b/assets/js/692.7bdb5bbe.js new file mode 100644 index 00000000..0f5bd0cc --- /dev/null +++ b/assets/js/692.7bdb5bbe.js @@ -0,0 +1 @@ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[692],{9047:(e,n,t)=>{"use strict";t.d(n,{Z:()=>H});var s=t(7294),o=t(5893);function c(e){const{mdxAdmonitionTitle:n,rest:t}=function(e){const n=s.Children.toArray(e),t=n.find((e=>s.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),c=n.filter((e=>e!==t)),a=t?.props.children;return{mdxAdmonitionTitle:a,rest:c.length>0?(0,o.jsx)(o.Fragment,{children:c}):null}}(e.children),c=e.title??n;return{...e,...c&&{title:c},children:t}}var a=t(512),i=t(5999),r=t(5281);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:n,className:t,children:s}=e;return(0,o.jsx)("div",{className:(0,a.Z)(r.k.common.admonition,r.k.common.admonitionType(n),l.admonition,t),children:s})}function u(e){let{icon:n,title:t}=e;return(0,o.jsxs)("div",{className:l.admonitionHeading,children:[(0,o.jsx)("span",{className:l.admonitionIcon,children:n}),t]})}function m(e){let{children:n}=e;return n?(0,o.jsx)("div",{className:l.admonitionContent,children:n}):null}function h(e){const{type:n,icon:t,title:s,children:c,className:a}=e;return(0,o.jsxs)(d,{type:n,className:a,children:[(0,o.jsx)(u,{title:s,icon:t}),(0,o.jsx)(m,{children:c})]})}function f(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const p={icon:(0,o.jsx)(f,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,o.jsx)(h,{...p,...e,className:(0,a.Z)("alert alert--secondary",e.className),children:e.children})}function x(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const b={icon:(0,o.jsx)(x,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function v(e){return(0,o.jsx)(h,{...b,...e,className:(0,a.Z)("alert alert--success",e.className),children:e.children})}function j(e){return(0,o.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const N={icon:(0,o.jsx)(j,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function C(e){return(0,o.jsx)(h,{...N,...e,className:(0,a.Z)("alert alert--info",e.className),children:e.children})}function k(e){return(0,o.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const y={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.warning",description:"The default label used for the Warning admonition (:::warning)",children:"warning"})};function L(e){return(0,o.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,o.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,o.jsx)(L,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};const w={icon:(0,o.jsx)(k,{}),title:(0,o.jsx)(i.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};const E={...{note:g,tip:v,info:C,warning:function(e){return(0,o.jsx)(h,{...y,...e,className:(0,a.Z)("alert alert--warning",e.className),children:e.children})},danger:function(e){return(0,o.jsx)(h,{...B,...e,className:(0,a.Z)("alert alert--danger",e.className),children:e.children})}},...{secondary:e=>(0,o.jsx)(g,{title:"secondary",...e}),important:e=>(0,o.jsx)(C,{title:"important",...e}),success:e=>(0,o.jsx)(v,{title:"success",...e}),caution:function(e){return(0,o.jsx)(h,{...w,...e,className:(0,a.Z)("alert alert--warning",e.className),children:e.children})}}};function H(e){const n=c(e),t=(s=n.type,E[s]||(console.warn(`No admonition component found for admonition type "${s}". Using Info as fallback.`),E.info));var s;return(0,o.jsx)(t,{...n})}},9206:(e,n,t)=>{"use strict";t.d(n,{Z:()=>ae});var s=t(7294),o=t(1151),c=t(5742),a=t(2389),i=t(512),r=t(2949),l=t(6668);function d(){const{prism:e}=(0,l.L)(),{colorMode:n}=(0,r.I)(),t=e.theme,s=e.darkTheme||t;return"dark"===n?s:t}var u=t(5281),m=t(7594),h=t.n(m);const f=/title=(?["'])(?.*?)\1/,p=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"}},x={...g,lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""},vb:{start:"['\u2018\u2019]",end:""},rem:{start:"[Rr][Ee][Mm]\\b",end:""},f90:{start:"!",end:""},ml:{start:"\\(\\*",end:"\\*\\)"},cobol:{start:"\\*>",end:""}},b=Object.keys(g);function v(e,n){const t=e.map((e=>{const{start:t,end:s}=x[e];return`(?:${t}\\s*(${n.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${s})`})).join("|");return new RegExp(`^\\s*(?:${t})\\s*$`)}function j(e,n){let t=e.replace(/\n$/,"");const{language:s,magicComments:o,metastring:c}=n;if(c&&p.test(c)){const e=c.match(p).groups.range;if(0===o.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${c}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const n=o[0].className,s=h()(e).filter((e=>e>0)).map((e=>[e-1,[n]]));return{lineClassNames:Object.fromEntries(s),code:t}}if(void 0===s)return{lineClassNames:{},code:t};const a=function(e,n){switch(e){case"js":case"javascript":case"ts":case"typescript":return v(["js","jsBlock"],n);case"jsx":case"tsx":return v(["js","jsBlock","jsx"],n);case"html":return v(["js","jsBlock","html"],n);case"python":case"py":case"bash":return v(["bash"],n);case"markdown":case"md":return v(["html","jsx","bash"],n);case"tex":case"latex":case"matlab":return v(["tex"],n);case"lua":case"haskell":case"sql":return v(["lua"],n);case"wasm":return v(["wasm"],n);case"vb":case"vbnet":case"vba":case"visual-basic":return v(["vb","rem"],n);case"batch":return v(["rem"],n);case"basic":return v(["rem","f90"],n);case"fsharp":return v(["js","ml"],n);case"ocaml":case"sml":return v(["ml"],n);case"fortran":return v(["f90"],n);case"cobol":return v(["cobol"],n);default:return v(b,n)}}(s,o),i=t.split("\n"),r=Object.fromEntries(o.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(o.filter((e=>e.line)).map((e=>{let{className:n,line:t}=e;return[t,n]}))),d=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:n,block:t}=e;return[t.start,n]}))),u=Object.fromEntries(o.filter((e=>e.block)).map((e=>{let{className:n,block:t}=e;return[t.end,n]})));for(let h=0;h<i.length;){const e=i[h].match(a);if(!e){h+=1;continue}const n=e.slice(1).find((e=>void 0!==e));l[n]?r[l[n]].range+=`${h},`:d[n]?r[d[n]].start=h:u[n]&&(r[u[n]].range+=`${r[u[n]].start}-${h-1},`),i.splice(h,1)}t=i.join("\n");const m={};return Object.entries(r).forEach((e=>{let[n,{range:t}]=e;h()(t).forEach((e=>{m[e]??=[],m[e].push(n)}))})),{lineClassNames:m,code:t}}const N={codeBlockContainer:"codeBlockContainer_Ckt0"};var C=t(5893);function k(e){let{as:n,...t}=e;const s=function(e){const n={color:"--prism-color",backgroundColor:"--prism-background-color"},t={};return Object.entries(e.plain).forEach((e=>{let[s,o]=e;const c=n[s];c&&"string"==typeof o&&(t[c]=o)})),t}(d());return(0,C.jsx)(n,{...t,style:s,className:(0,i.Z)(t.className,N.codeBlockContainer,u.k.common.codeBlock)})}const y={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function L(e){let{children:n,className:t}=e;return(0,C.jsx)(k,{as:"pre",tabIndex:0,className:(0,i.Z)(y.codeBlockStandalone,"thin-scrollbar",t),children:(0,C.jsx)("code",{className:y.codeBlockLines,children:n})})}var B=t(902);const w={attributes:!0,characterData:!0,childList:!0,subtree:!0};function E(e,n){const[t,o]=(0,s.useState)(),c=(0,s.useCallback)((()=>{o(e.current?.closest("[role=tabpanel][hidden]"))}),[e,o]);(0,s.useEffect)((()=>{c()}),[c]),function(e,n,t){void 0===t&&(t=w);const o=(0,B.zX)(n),c=(0,B.Ql)(t);(0,s.useEffect)((()=>{const n=new MutationObserver(o);return e&&n.observe(e,c),()=>n.disconnect()}),[e,o,c])}(t,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(n(),c())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}var H=t(2573);const Z={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function _(e){let{line:n,classNames:t,showLineNumbers:s,getLineProps:o,getTokenProps:c}=e;1===n.length&&"\n"===n[0].content&&(n[0].content="");const a=o({line:n,className:(0,i.Z)(t,s&&Z.codeLine)}),r=n.map(((e,n)=>(0,C.jsx)("span",{...c({token:e,key:n})},n)));return(0,C.jsxs)("span",{...a,children:[s?(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("span",{className:Z.codeLineNumber}),(0,C.jsx)("span",{className:Z.codeLineContent,children:r})]}):r,(0,C.jsx)("br",{})]})}var T=t(5999);function I(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function A(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const S={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function M(e){let{code:n,className:t}=e;const[o,c]=(0,s.useState)(!1),a=(0,s.useRef)(void 0),r=(0,s.useCallback)((()=>{!function(e,n){let{target:t=document.body}=void 0===n?{}:n;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const s=document.createElement("textarea"),o=document.activeElement;s.value=e,s.setAttribute("readonly",""),s.style.contain="strict",s.style.position="absolute",s.style.left="-9999px",s.style.fontSize="12pt";const c=document.getSelection(),a=c.rangeCount>0&&c.getRangeAt(0);t.append(s),s.select(),s.selectionStart=0,s.selectionEnd=e.length;let i=!1;try{i=document.execCommand("copy")}catch{}s.remove(),a&&(c.removeAllRanges(),c.addRange(a)),o&&o.focus()}(n),c(!0),a.current=window.setTimeout((()=>{c(!1)}),1e3)}),[n]);return(0,s.useEffect)((()=>()=>window.clearTimeout(a.current)),[]),(0,C.jsx)("button",{type:"button","aria-label":o?(0,T.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,T.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,T.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,i.Z)("clean-btn",t,S.copyButton,o&&S.copyButtonCopied),onClick:r,children:(0,C.jsxs)("span",{className:S.copyButtonIcons,"aria-hidden":"true",children:[(0,C.jsx)(I,{className:S.copyButtonIcon}),(0,C.jsx)(A,{className:S.copyButtonSuccessIcon})]})})}function z(e){return(0,C.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,C.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const R={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function O(e){let{className:n,onClick:t,isEnabled:s}=e;const o=(0,T.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,C.jsx)("button",{type:"button",onClick:t,className:(0,i.Z)("clean-btn",n,s&&R.wordWrapButtonEnabled),"aria-label":o,title:o,children:(0,C.jsx)(z,{className:R.wordWrapButtonIcon,"aria-hidden":"true"})})}function $(e){let{children:n,className:t="",metastring:o,title:c,showLineNumbers:a,language:r}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.L)(),h=function(e){return e?.toLowerCase()}(r??function(e){const n=e.split(" ").find((e=>e.startsWith("language-")));return n?.replace(/language-/,"")}(t)??u),p=d(),g=function(){const[e,n]=(0,s.useState)(!1),[t,o]=(0,s.useState)(!1),c=(0,s.useRef)(null),a=(0,s.useCallback)((()=>{const t=c.current.querySelector("code");e?t.removeAttribute("style"):(t.style.whiteSpace="pre-wrap",t.style.overflowWrap="anywhere"),n((e=>!e))}),[c,e]),i=(0,s.useCallback)((()=>{const{scrollWidth:e,clientWidth:n}=c.current,t=e>n||c.current.querySelector("code").hasAttribute("style");o(t)}),[c]);return E(c,i),(0,s.useEffect)((()=>{i()}),[e,i]),(0,s.useEffect)((()=>(window.addEventListener("resize",i,{passive:!0}),()=>{window.removeEventListener("resize",i)})),[i]),{codeBlockRef:c,isEnabled:e,isCodeScrollable:t,toggle:a}}(),x=function(e){return e?.match(f)?.groups.title??""}(o)||c,{lineClassNames:b,code:v}=j(n,{metastring:o,language:h,magicComments:m}),N=a??function(e){return Boolean(e?.includes("showLineNumbers"))}(o);return(0,C.jsxs)(k,{as:"div",className:(0,i.Z)(t,h&&!t.includes(`language-${h}`)&&`language-${h}`),children:[x&&(0,C.jsx)("div",{className:y.codeBlockTitle,children:x}),(0,C.jsxs)("div",{className:y.codeBlockContent,children:[(0,C.jsx)(H.y$,{theme:p,code:v,language:h??"text",children:e=>{let{className:n,style:t,tokens:s,getLineProps:o,getTokenProps:c}=e;return(0,C.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,i.Z)(n,y.codeBlock,"thin-scrollbar"),style:t,children:(0,C.jsx)("code",{className:(0,i.Z)(y.codeBlockLines,N&&y.codeBlockLinesWithNumbering),children:s.map(((e,n)=>(0,C.jsx)(_,{line:e,getLineProps:o,getTokenProps:c,classNames:b[n],showLineNumbers:N},n)))})})}}),(0,C.jsxs)("div",{className:y.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,C.jsx)(O,{className:y.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,C.jsx)(M,{className:y.codeButton,code:v})]})]})]})}function V(e){let{children:n,...t}=e;const o=(0,a.Z)(),c=function(e){return s.Children.toArray(e).some((e=>(0,s.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(n),i="string"==typeof c?$:L;return(0,C.jsx)(i,{...t,children:c},String(o))}function W(e){return(0,C.jsx)("code",{...e})}var P=t(3692);var q=t(6043);const D={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function F(e){return!!e&&("SUMMARY"===e.tagName||F(e.parentElement))}function U(e,n){return!!e&&(e===n||U(e.parentElement,n))}function G(e){let{summary:n,children:t,...o}=e;const c=(0,a.Z)(),r=(0,s.useRef)(null),{collapsed:l,setCollapsed:d}=(0,q.u)({initialState:!o.open}),[u,m]=(0,s.useState)(o.open),h=s.isValidElement(n)?n:(0,C.jsx)("summary",{children:n??"Details"});return(0,C.jsxs)("details",{...o,ref:r,open:u,"data-collapsed":l,className:(0,i.Z)(D.details,c&&D.isBrowser,o.className),onMouseDown:e=>{F(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const n=e.target;F(n)&&U(n,r.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[h,(0,C.jsx)(q.z,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,C.jsx)("div",{className:D.collapsibleContent,children:t})})]})}const J={details:"details_b_Ee"},Y="alert alert--info";function K(e){let{...n}=e;return(0,C.jsx)(G,{...n,className:(0,i.Z)(Y,J.details,n.className)})}function Q(e){const n=s.Children.toArray(e.children),t=n.find((e=>s.isValidElement(e)&&"summary"===e.type)),o=(0,C.jsx)(C.Fragment,{children:n.filter((e=>e!==t))});return(0,C.jsx)(K,{...e,summary:t,children:o})}var X=t(2503);function ee(e){return(0,C.jsx)(X.Z,{...e})}const ne={containsTaskList:"containsTaskList_mC6p"};function te(e){if(void 0!==e)return(0,i.Z)(e,e?.includes("contains-task-list")&&ne.containsTaskList)}const se={img:"img_ev3q"};var oe=t(9047);const ce={Head:c.Z,details:Q,Details:Q,code:function(e){return function(e){return void 0!==e.children&&s.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))}(e)?(0,C.jsx)(W,{...e}):(0,C.jsx)(V,{...e})},a:function(e){return(0,C.jsx)(P.Z,{...e})},pre:function(e){return(0,C.jsx)(C.Fragment,{children:e.children})},ul:function(e){return(0,C.jsx)("ul",{...e,className:te(e.className)})},img:function(e){return(0,C.jsx)("img",{loading:"lazy",...e,className:(n=e.className,(0,i.Z)(n,se.img))});var n},h1:e=>(0,C.jsx)(ee,{as:"h1",...e}),h2:e=>(0,C.jsx)(ee,{as:"h2",...e}),h3:e=>(0,C.jsx)(ee,{as:"h3",...e}),h4:e=>(0,C.jsx)(ee,{as:"h4",...e}),h5:e=>(0,C.jsx)(ee,{as:"h5",...e}),h6:e=>(0,C.jsx)(ee,{as:"h6",...e}),admonition:oe.Z,mermaid:()=>null};function ae(e){let{children:n}=e;return(0,C.jsx)(o.Z,{components:ce,children:n})}},9407:(e,n,t)=>{"use strict";t.d(n,{Z:()=>l});t(7294);var s=t(512),o=t(3743);const c={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var a=t(5893);const i="table-of-contents__link toc-highlight",r="table-of-contents__link--active";function l(e){let{className:n,...t}=e;return(0,a.jsx)("div",{className:(0,s.Z)(c.tableOfContents,"thin-scrollbar",n),children:(0,a.jsx)(o.Z,{...t,linkClassName:i,linkActiveClassName:r})})}},3743:(e,n,t)=>{"use strict";t.d(n,{Z:()=>p});var s=t(7294),o=t(6668);function c(e){const n=e.map((e=>({...e,parentIndex:-1,children:[]}))),t=Array(7).fill(-1);n.forEach(((e,n)=>{const s=t.slice(2,e.level);e.parentIndex=Math.max(...s),t[e.level]=n}));const s=[];return n.forEach((e=>{const{parentIndex:t,...o}=e;t>=0?n[t].children.push(o):s.push(o)})),s}function a(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:s}=e;return n.flatMap((e=>{const n=a({toc:e.children,minHeadingLevel:t,maxHeadingLevel:s});return function(e){return e.level>=t&&e.level<=s}(e)?[{...e,children:n}]:n}))}function i(e){const n=e.getBoundingClientRect();return n.top===n.bottom?i(e.parentNode):n}function r(e,n){let{anchorTopOffset:t}=n;const s=e.find((e=>i(e).top>=t));if(s){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(i(s))?s:e[e.indexOf(s)-1]??null}return e[e.length-1]??null}function l(){const e=(0,s.useRef)(0),{navbar:{hideOnScroll:n}}=(0,o.L)();return(0,s.useEffect)((()=>{e.current=n?0:document.querySelector(".navbar").clientHeight}),[n]),e}function d(e){const n=(0,s.useRef)(void 0),t=l();(0,s.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:s,linkActiveClassName:o,minHeadingLevel:c,maxHeadingLevel:a}=e;function i(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(s),i=function(e){let{minHeadingLevel:n,maxHeadingLevel:t}=e;const s=[];for(let o=n;o<=t;o+=1)s.push(`h${o}.anchor`);return Array.from(document.querySelectorAll(s.join()))}({minHeadingLevel:c,maxHeadingLevel:a}),l=r(i,{anchorTopOffset:t.current}),d=e.find((e=>l&&l.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,t){t?(n.current&&n.current!==e&&n.current.classList.remove(o),e.classList.add(o),n.current=e):e.classList.remove(o)}(e,e===d)}))}return document.addEventListener("scroll",i),document.addEventListener("resize",i),i(),()=>{document.removeEventListener("scroll",i),document.removeEventListener("resize",i)}}),[e,t])}var u=t(3692),m=t(5893);function h(e){let{toc:n,className:t,linkClassName:s,isChild:o}=e;return n.length?(0,m.jsx)("ul",{className:o?void 0:t,children:n.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:s??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(h,{isChild:!0,toc:e.children,className:t,linkClassName:s})]},e.id)))}):null}const f=s.memo(h);function p(e){let{toc:n,className:t="table-of-contents table-of-contents__left-border",linkClassName:i="table-of-contents__link",linkActiveClassName:r,minHeadingLevel:l,maxHeadingLevel:u,...h}=e;const p=(0,o.L)(),g=l??p.tableOfContents.minHeadingLevel,x=u??p.tableOfContents.maxHeadingLevel,b=function(e){let{toc:n,minHeadingLevel:t,maxHeadingLevel:o}=e;return(0,s.useMemo)((()=>a({toc:c(n),minHeadingLevel:t,maxHeadingLevel:o})),[n,t,o])}({toc:n,minHeadingLevel:g,maxHeadingLevel:x});return d((0,s.useMemo)((()=>{if(i&&r)return{linkClassName:i,linkActiveClassName:r,minHeadingLevel:g,maxHeadingLevel:x}}),[i,r,g,x])),(0,m.jsx)(f,{toc:b,className:t,linkClassName:i,...h})}},2212:(e,n,t)=>{"use strict";t.d(n,{Z:()=>h});t(7294);var s=t(512),o=t(5999),c=t(5742),a=t(5893);function i(){return(0,a.jsx)(o.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function r(){return(0,a.jsx)(o.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,a.jsx)(c.Z,{children:(0,a.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=t(5281),u=t(9047);function m(e){let{className:n}=e;return(0,a.jsx)(u.Z,{type:"caution",title:(0,a.jsx)(i,{}),className:(0,s.Z)(n,d.k.common.unlistedBanner),children:(0,a.jsx)(r,{})})}function h(e){return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l,{}),(0,a.jsx)(m,{...e})]})}},7594:(e,n)=>{function t(e){let n,t=[];for(let s of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(s))t.push(parseInt(s,10));else if(n=s.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,s,o,c]=n;if(s&&c){s=parseInt(s),c=parseInt(c);const e=s<c?1:-1;"-"!==o&&".."!==o&&"\u2025"!==o||(c+=e);for(let n=s;n!==c;n+=e)t.push(n)}}return t}n.default=t,e.exports=t},1151:(e,n,t)=>{"use strict";t.d(n,{Z:()=>i,a:()=>a});var s=t(7294);const o={},c=s.createContext(o);function a(e){const n=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(c.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/69e64926.33ff0de6.js b/assets/js/69e64926.33ff0de6.js new file mode 100644 index 00000000..33766e20 --- /dev/null +++ b/assets/js/69e64926.33ff0de6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7444],{3671:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>l});var n=s(5893),o=s(1151);const r={sidebar_position:1,title:"useFlatListActions"},a=void 0,i={id:"hooks/use-flat-list-actions",title:"useFlatListActions",description:"Content",source:"@site/docs/hooks/use-flat-list-actions.md",sourceDirName:"hooks",slug:"/hooks/use-flat-list-actions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-flat-list-actions.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"useFlatListActions"},sidebar:"tutorialSidebar",previous:{title:"serializeQueryParams",permalink:"/react-native-template-strong/docs/utils/serialize-query-params"},next:{title:"useDebounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Creates default ",(0,n.jsx)(t.code,{children:"loadMore"}),", ",(0,n.jsx)(t.code,{children:"tryAgain"})," and ",(0,n.jsx)(t.code,{children:"pullToRefresh"})," request dispatches based on provided ",(0,n.jsx)(t.code,{children:"LoadState"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Works in together with ",(0,n.jsx)(t.code,{children:"FlatlistWrapper"})," and ",(0,n.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const {data, error, loadState} = useAppSelector(({offers}) => offers);\n const {loadMore, tryAgain, pullToRefresh} = useFlatListActions(getCompanyOffers, loadState);\n\n return (\n <FlatListWrapper\n data={data}\n error={error}\n renderItem={renderItem}\n loadState={loadState}\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n />\n );\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Where ",(0,n.jsx)(t.code,{children:"getCompanyOffers"})," is ",(0,n.jsx)(t.code,{children:"AsyncThunk"}),"."]})]})}function u(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,s)=>{s.d(t,{Z:()=>i,a:()=>a});var n=s(7294);const o={},r=n.createContext(o);function a(e){const t=n.useContext(r);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),n.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/69e64926.9bbdcea7.js b/assets/js/69e64926.9bbdcea7.js deleted file mode 100644 index b9f82ac6..00000000 --- a/assets/js/69e64926.9bbdcea7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7444],{3671:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>l});var n=s(5893),o=s(1151);const r={sidebar_position:1,title:"useFlatListActions"},a=void 0,i={unversionedId:"hooks/use-flat-list-actions",id:"hooks/use-flat-list-actions",title:"useFlatListActions",description:"Content",source:"@site/docs/hooks/use-flat-list-actions.md",sourceDirName:"hooks",slug:"/hooks/use-flat-list-actions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-flat-list-actions.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"useFlatListActions"},sidebar:"tutorialSidebar",previous:{title:"serializeQueryParams",permalink:"/react-native-template-strong/docs/utils/serialize-query-params"},next:{title:"useDebounce",permalink:"/react-native-template-strong/docs/hooks/use-debounce"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,o.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Creates default ",(0,n.jsx)(t.code,{children:"loadMore"}),", ",(0,n.jsx)(t.code,{children:"tryAgain"})," and ",(0,n.jsx)(t.code,{children:"pullToRefresh"})," request dispatches based on provided ",(0,n.jsx)(t.code,{children:"LoadState"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Works in together with ",(0,n.jsx)(t.code,{children:"FlatlistWrapper"})," and ",(0,n.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const {data, error, loadState} = useAppSelector(({offers}) => offers);\n const {loadMore, tryAgain, pullToRefresh} = useFlatListActions(getCompanyOffers, loadState);\n\n return (\n <FlatListWrapper\n data={data}\n error={error}\n renderItem={renderItem}\n loadState={loadState}\n tryAgain={tryAgain}\n onRefresh={pullToRefresh}\n onEndReached={loadMore}\n />\n );\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Where ",(0,n.jsx)(t.code,{children:"getCompanyOffers"})," is ",(0,n.jsx)(t.code,{children:"AsyncThunk"}),"."]})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(d,e)})):d(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>i,ah:()=>r});var n=s(7294);const o=n.createContext({});function r(e){const t=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function i({components:e,children:t,disableParentContext:s}){let i;return i=s?"function"==typeof e?e({}):e||a:r(e),n.createElement(o.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/6e581f4b.96f0063e.js b/assets/js/6e581f4b.96f0063e.js new file mode 100644 index 00000000..42b36e1c --- /dev/null +++ b/assets/js/6e581f4b.96f0063e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1721],{5010:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var s=t(5893),a=t(1151);const l={sidebar_position:3,title:"Common sizes"},r=void 0,o={id:"styles/common-sizes",title:"Common sizes",description:"Content",source:"@site/docs/styles/common-sizes.md",sourceDirName:"styles",slug:"/styles/common-sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/common-sizes.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Common sizes"},sidebar:"tutorialSidebar",previous:{title:"Common styles",permalink:"/react-native-template-strong/docs/styles/common-styles"},next:{title:"Common constants",permalink:"/react-native-template-strong/docs/common-constants"}},i={},m=[{value:"Content",id:"content",level:2}];function c(e){const n={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(n.p,{children:"There are many margins, paddings, font sizes, line heights and other parameters that hold some constant number."}),"\n",(0,s.jsxs)(n.p,{children:[(0,s.jsx)(n.code,{children:"CommonSizes"})," was created to simplify and unify and fix some misleading or wrong constant numbers."]}),"\n",(0,s.jsxs)(n.p,{children:["They are located at ",(0,s.jsx)(n.code,{children:"/src/core/theme/commonSizes.ts"}),"."]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export const CommonSizes = {\n font: {\n extraSmall: 11,\n extraSmallPlus: 12,\n small: 13,\n smallPlus: 15,\n medium: 17,\n mediumPlus: 20,\n large: 22,\n largePlus: 28,\n extraLarge: 34,\n extraLargePlus: 44,\n } as Readonly<ISize>,\n letterSpacing: {\n extraSmall: 0.07,\n extraSmallPlus: 0,\n small: -0.08,\n smallPlus: -0.24,\n medium: -0.41,\n mediumPlus: 0.38,\n large: 0.35,\n largePlus: 0.36,\n extraLarge: 0.37,\n extraLargePlus: 0.37,\n } as Readonly<ISize>,\n lineHeight: {\n extraSmall: 13,\n extraSmallPlus: 16,\n small: 18,\n smallPlus: 20,\n medium: 22,\n mediumPlus: 25,\n large: 28,\n largePlus: 34,\n extraLarge: 41,\n extraLargePlus: 52,\n } as Readonly<ISize>,\n spacing: {\n extraSmall: 8,\n extraSmallPlus: 10,\n small: 12,\n smallPlus: 13,\n medium: 16,\n mediumPlus: 24,\n large: 32,\n largePlus: 40,\n extraLarge: 48,\n extraLargePlus: 56,\n } as Readonly<ISize>,\n borderRadius: {\n extraSmall: 4,\n extraSmallPlus: 6,\n small: 8,\n smallPlus: 10,\n medium: 12,\n mediumPlus: 13,\n large: 14,\n largePlus: 16,\n extraLarge: 18,\n extraLargePlus: 20,\n } as Readonly<ISize>,\n};\n"})}),"\n",(0,s.jsx)(n.p,{children:"You can use, change, add or remove these constants according to your design."}),"\n",(0,s.jsx)(n.p,{children:"Try to use them as much as possible."})]})}function d(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>o,a:()=>r});var s=t(7294);const a={},l=s.createContext(a);function r(e){const n=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function o(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:r(e.components),s.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/6e581f4b.e7c07ac3.js b/assets/js/6e581f4b.e7c07ac3.js deleted file mode 100644 index 002898ae..00000000 --- a/assets/js/6e581f4b.e7c07ac3.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1721],{5010:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>i,contentTitle:()=>r,default:()=>d,frontMatter:()=>l,metadata:()=>o,toc:()=>m});var t=s(5893),a=s(1151);const l={sidebar_position:3,title:"Common sizes"},r=void 0,o={unversionedId:"styles/common-sizes",id:"styles/common-sizes",title:"Common sizes",description:"Content",source:"@site/docs/styles/common-sizes.md",sourceDirName:"styles",slug:"/styles/common-sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/common-sizes.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Common sizes"},sidebar:"tutorialSidebar",previous:{title:"Common styles",permalink:"/react-native-template-strong/docs/styles/common-styles"},next:{title:"Common constants",permalink:"/react-native-template-strong/docs/common-constants"}},i={},m=[{value:"Content",id:"content",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,a.ah)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,t.jsx)(n.p,{children:"There are many margins, paddings, font sizes, line heights and other parameters that hold some constant number."}),"\n",(0,t.jsxs)(n.p,{children:[(0,t.jsx)(n.code,{children:"CommonSizes"})," was created to simplify and unify and fix some misleading or wrong constant numbers."]}),"\n",(0,t.jsxs)(n.p,{children:["They are located at ",(0,t.jsx)(n.code,{children:"/src/core/theme/commonSizes.ts"}),"."]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:"export const CommonSizes = {\n font: {\n extraSmall: 11,\n extraSmallPlus: 12,\n small: 13,\n smallPlus: 15,\n medium: 17,\n mediumPlus: 20,\n large: 22,\n largePlus: 28,\n extraLarge: 34,\n extraLargePlus: 44,\n } as Readonly<ISize>,\n letterSpacing: {\n extraSmall: 0.07,\n extraSmallPlus: 0,\n small: -0.08,\n smallPlus: -0.24,\n medium: -0.41,\n mediumPlus: 0.38,\n large: 0.35,\n largePlus: 0.36,\n extraLarge: 0.37,\n extraLargePlus: 0.37,\n } as Readonly<ISize>,\n lineHeight: {\n extraSmall: 13,\n extraSmallPlus: 16,\n small: 18,\n smallPlus: 20,\n medium: 22,\n mediumPlus: 25,\n large: 28,\n largePlus: 34,\n extraLarge: 41,\n extraLargePlus: 52,\n } as Readonly<ISize>,\n spacing: {\n extraSmall: 8,\n extraSmallPlus: 10,\n small: 12,\n smallPlus: 13,\n medium: 16,\n mediumPlus: 24,\n large: 32,\n largePlus: 40,\n extraLarge: 48,\n extraLargePlus: 56,\n } as Readonly<ISize>,\n borderRadius: {\n extraSmall: 4,\n extraSmallPlus: 6,\n small: 8,\n smallPlus: 10,\n medium: 12,\n mediumPlus: 13,\n large: 14,\n largePlus: 16,\n extraLarge: 18,\n extraLargePlus: 20,\n } as Readonly<ISize>,\n};\n"})}),"\n",(0,t.jsx)(n.p,{children:"You can use, change, add or remove these constants according to your design."}),"\n",(0,t.jsx)(n.p,{children:"Try to use them as much as possible."})]})}const d=function(e={}){const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(c,e)})):c(e)}},1151:(e,n,s)=>{s.d(n,{Zo:()=>o,ah:()=>l});var t=s(7294);const a=t.createContext({});function l(e){const n=t.useContext(a);return t.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function o({components:e,children:n,disableParentContext:s}){let o;return o=s?"function"==typeof e?e({}):e||r:l(e),t.createElement(a.Provider,{value:o},n)}}}]); \ No newline at end of file diff --git a/assets/js/78a19f83.15cf341a.js b/assets/js/78a19f83.15cf341a.js deleted file mode 100644 index f4770d78..00000000 --- a/assets/js/78a19f83.15cf341a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5389],{569:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=n(5893),t=n(1151);const i={sidebar_position:3,title:"SF Symbols"},r=void 0,c={unversionedId:"resources/sf-symbols",id:"resources/sf-symbols",title:"SF Symbols",description:"Content",source:"@site/docs/resources/sf-symbols.md",sourceDirName:"resources",slug:"/resources/sf-symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/sf-symbols.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"SF Symbols"},sidebar:"tutorialSidebar",previous:{title:"Images",permalink:"/react-native-template-strong/docs/resources/images"},next:{title:"Vector icons",permalink:"/react-native-template-strong/docs/resources/vector-icons"}},a={},l=[{value:"Content",id:"content",level:2},{value:"Browsing icons",id:"browsing-icons",level:2},{value:"Using icons in navigation",id:"using-icons-in-navigation",level:2},{value:"BottomTab",id:"bottomtab",level:3},{value:"BackButton",id:"backbutton",level:3},{value:"Using icons as components",id:"using-icons-as-components",level:2}];function d(e){const s=Object.assign({h2:"h2",p:"p",a:"a",code:"code",h3:"h3",pre:"pre"},(0,t.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(s.p,{children:["The preferable way to show icons on iOS is to use ",(0,o.jsx)(s.a,{href:"https://developer.apple.com/sf-symbols/",children:"SF Symbols"}),"."]}),"\n",(0,o.jsx)(s.h2,{id:"browsing-icons",children:"Browsing icons"}),"\n",(0,o.jsxs)(s.p,{children:["All icons are stored as enum with names in ",(0,o.jsx)(s.code,{children:"/resources/symbols/sfSymbols"}),". It contains mostly all the 3 100 icons."]}),"\n",(0,o.jsxs)(s.p,{children:["To take a look at them without using them you can open ",(0,o.jsx)(s.a,{href:"https://developer.apple.com/sf-symbols/",children:"SF Symbols App"})," on macOS."]}),"\n",(0,o.jsx)(s.h2,{id:"using-icons-in-navigation",children:"Using icons in navigation"}),"\n",(0,o.jsx)(s.h3,{id:"bottomtab",children:"BottomTab"}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"react-native-navigation"})," currently supports SF Symbols as icon in ",(0,o.jsx)(s.code,{children:"bottomTab"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'Main.options = {\n bottomTab: {\n sfSymbol: SFSymbols["app.gift"],\n sfSelectedSymbol: SFSymbols["app.gift.fill"],\n },\n};\n'})}),"\n",(0,o.jsxs)(s.p,{children:["It also applies same effect properties as ",(0,o.jsx)(s.code,{children:"Icon"})," ones, like ",(0,o.jsx)(s.code,{children:"selectedIconColor"})," or ",(0,o.jsx)(s.code,{children:"iconColor"}),", see more properties ",(0,o.jsx)(s.a,{href:"https://wix.github.io/react-native-navigation/api/options-bottomTab#iconwidth",children:"here"}),"."]}),"\n",(0,o.jsx)(s.h3,{id:"backbutton",children:"BackButton"}),"\n",(0,o.jsxs)(s.p,{children:["SF Symbol can also be applied directly as ",(0,o.jsx)(s.code,{children:"topBar"}),"'s ",(0,o.jsx)(s.code,{children:"backButton"})," like so:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'Main.options = {\n topBar: {\n backButton: {\n sfSymbol: SFSymbols["arrow.backward.circle"],\n },\n },\n};\n'})}),"\n",(0,o.jsx)(s.h2,{id:"using-icons-as-components",children:"Using icons as components"}),"\n",(0,o.jsxs)(s.p,{children:["Usage of SF Symbols as components made possible by ",(0,o.jsx)(s.a,{href:"https://github.com/birkir/react-native-sfsymbols",children:"react-native-sfsymbols"}),"."]}),"\n",(0,o.jsx)(s.p,{children:"You can use it directly like so:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'<SFSymbol \n name={SFSymbol["thermometer.sun.fill"]}\n size={16} \n multicolor={false}\n/>\n'})}),"\n",(0,o.jsx)(s.p,{children:"But it will be shown only on iOS, which is not desired."}),"\n",(0,o.jsxs)(s.p,{children:["To work with both iOS and Android, there's ",(0,o.jsx)(s.a,{href:"/react-native-template-strong/docs/components/icon-platform",children:"IconPlatform"})," component,\nwhich shows SF Symbols on iOS and Material Icons on Android, it works next way:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'<IconPlatform \n iosName={SFSymbols["thermometer.sun.fill"]}\n androidName={"star-rate"}\n size={32} \n resizeMode={"contain"} \n style={styles.clauseIcon}\n/>\n'})})]})}const m=function(e={}){const{wrapper:s}=Object.assign({},(0,t.ah)(),e.components);return s?(0,o.jsx)(s,Object.assign({},e,{children:(0,o.jsx)(d,e)})):d(e)}},1151:(e,s,n)=>{n.d(s,{Zo:()=>c,ah:()=>i});var o=n(7294);const t=o.createContext({});function i(e){const s=o.useContext(t);return o.useMemo((()=>"function"==typeof e?e(s):{...s,...e}),[s,e])}const r={};function c({components:e,children:s,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||r:i(e),o.createElement(t.Provider,{value:c},s)}}}]); \ No newline at end of file diff --git a/assets/js/78a19f83.37d604ec.js b/assets/js/78a19f83.37d604ec.js new file mode 100644 index 00000000..7264c198 --- /dev/null +++ b/assets/js/78a19f83.37d604ec.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5389],{569:(e,s,n)=>{n.r(s),n.d(s,{assets:()=>a,contentTitle:()=>r,default:()=>m,frontMatter:()=>i,metadata:()=>c,toc:()=>l});var o=n(5893),t=n(1151);const i={sidebar_position:3,title:"SF Symbols"},r=void 0,c={id:"resources/sf-symbols",title:"SF Symbols",description:"Content",source:"@site/docs/resources/sf-symbols.md",sourceDirName:"resources",slug:"/resources/sf-symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/sf-symbols.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"SF Symbols"},sidebar:"tutorialSidebar",previous:{title:"Images",permalink:"/react-native-template-strong/docs/resources/images"},next:{title:"Vector icons",permalink:"/react-native-template-strong/docs/resources/vector-icons"}},a={},l=[{value:"Content",id:"content",level:2},{value:"Browsing icons",id:"browsing-icons",level:2},{value:"Using icons in navigation",id:"using-icons-in-navigation",level:2},{value:"BottomTab",id:"bottomtab",level:3},{value:"BackButton",id:"backbutton",level:3},{value:"Using icons as components",id:"using-icons-as-components",level:2}];function d(e){const s={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,t.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(s.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(s.p,{children:["The preferable way to show icons on iOS is to use ",(0,o.jsx)(s.a,{href:"https://developer.apple.com/sf-symbols/",children:"SF Symbols"}),"."]}),"\n",(0,o.jsx)(s.h2,{id:"browsing-icons",children:"Browsing icons"}),"\n",(0,o.jsxs)(s.p,{children:["All icons are stored as enum with names in ",(0,o.jsx)(s.code,{children:"/resources/symbols/sfSymbols"}),". It contains mostly all the 3 100 icons."]}),"\n",(0,o.jsxs)(s.p,{children:["To take a look at them without using them you can open ",(0,o.jsx)(s.a,{href:"https://developer.apple.com/sf-symbols/",children:"SF Symbols App"})," on macOS."]}),"\n",(0,o.jsx)(s.h2,{id:"using-icons-in-navigation",children:"Using icons in navigation"}),"\n",(0,o.jsx)(s.h3,{id:"bottomtab",children:"BottomTab"}),"\n",(0,o.jsxs)(s.p,{children:[(0,o.jsx)(s.code,{children:"react-native-navigation"})," currently supports SF Symbols as icon in ",(0,o.jsx)(s.code,{children:"bottomTab"}),":"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'Main.options = {\n bottomTab: {\n sfSymbol: SFSymbols["app.gift"],\n sfSelectedSymbol: SFSymbols["app.gift.fill"],\n },\n};\n'})}),"\n",(0,o.jsxs)(s.p,{children:["It also applies same effect properties as ",(0,o.jsx)(s.code,{children:"Icon"})," ones, like ",(0,o.jsx)(s.code,{children:"selectedIconColor"})," or ",(0,o.jsx)(s.code,{children:"iconColor"}),", see more properties ",(0,o.jsx)(s.a,{href:"https://wix.github.io/react-native-navigation/api/options-bottomTab#iconwidth",children:"here"}),"."]}),"\n",(0,o.jsx)(s.h3,{id:"backbutton",children:"BackButton"}),"\n",(0,o.jsxs)(s.p,{children:["SF Symbol can also be applied directly as ",(0,o.jsx)(s.code,{children:"topBar"}),"'s ",(0,o.jsx)(s.code,{children:"backButton"})," like so:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'Main.options = {\n topBar: {\n backButton: {\n sfSymbol: SFSymbols["arrow.backward.circle"],\n },\n },\n};\n'})}),"\n",(0,o.jsx)(s.h2,{id:"using-icons-as-components",children:"Using icons as components"}),"\n",(0,o.jsxs)(s.p,{children:["Usage of SF Symbols as components made possible by ",(0,o.jsx)(s.a,{href:"https://github.com/birkir/react-native-sfsymbols",children:"react-native-sfsymbols"}),"."]}),"\n",(0,o.jsx)(s.p,{children:"You can use it directly like so:"}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'<SFSymbol \n name={SFSymbol["thermometer.sun.fill"]}\n size={16} \n multicolor={false}\n/>\n'})}),"\n",(0,o.jsx)(s.p,{children:"But it will be shown only on iOS, which is not desired."}),"\n",(0,o.jsxs)(s.p,{children:["To work with both iOS and Android, there's ",(0,o.jsx)(s.a,{href:"/react-native-template-strong/docs/components/icon-platform",children:"IconPlatform"})," component,\nwhich shows SF Symbols on iOS and Material Icons on Android, it works next way:"]}),"\n",(0,o.jsx)(s.pre,{children:(0,o.jsx)(s.code,{className:"language-typescript",metastring:"jsx",children:'<IconPlatform \n iosName={SFSymbols["thermometer.sun.fill"]}\n androidName={"star-rate"}\n size={32} \n resizeMode={"contain"} \n style={styles.clauseIcon}\n/>\n'})})]})}function m(e={}){const{wrapper:s}={...(0,t.a)(),...e.components};return s?(0,o.jsx)(s,{...e,children:(0,o.jsx)(d,{...e})}):d(e)}},1151:(e,s,n)=>{n.d(s,{Z:()=>c,a:()=>r});var o=n(7294);const t={},i=o.createContext(t);function r(e){const s=o.useContext(i);return o.useMemo((function(){return"function"==typeof e?e(s):{...s,...e}}),[s,e])}function c(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:r(e.components),o.createElement(i.Provider,{value:s},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7f85490b.8753bb0a.js b/assets/js/7f85490b.8753bb0a.js new file mode 100644 index 00000000..c86f24e2 --- /dev/null +++ b/assets/js/7f85490b.8753bb0a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3427],{6091:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>o,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>l});var s=n(5893),r=n(1151);const d={sidebar_position:3,title:"Dependencies and scripts"},c=void 0,t={id:"dependencies",title:"Dependencies and scripts",description:"Dependencies",source:"@site/docs/dependencies.md",sourceDirName:".",slug:"/dependencies",permalink:"/react-native-template-strong/docs/dependencies",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/dependencies.md",tags:[],version:"current",lastUpdatedAt:1704743195,formattedLastUpdatedAt:"Jan 8, 2024",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Dependencies and scripts"},sidebar:"tutorialSidebar",previous:{title:"Module",permalink:"/react-native-template-strong/docs/structure/module"},next:{title:"Before starting",permalink:"/react-native-template-strong/docs/navigation/before-starting"}},o={},l=[{value:"Dependencies",id:"dependencies",level:2},{value:"Scripts",id:"scripts",level:2},{value:"React Native specific",id:"react-native-specific",level:3},{value:"Project openers",id:"project-openers",level:3},{value:"Android specific",id:"android-specific",level:3},{value:"iOS specific",id:"ios-specific",level:3},{value:"Environment specific",id:"environment-specific",level:3},{value:"Version specific",id:"version-specific",level:3},{value:"Test specific",id:"test-specific",level:3},{value:"Utility specific",id:"utility-specific",level:3}];function a(e){const i={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,s.jsx)(i.p,{children:"This repository relies on dependencies which are needed in day-to-day development."}),"\n",(0,s.jsxs)(i.p,{children:["Every dependency is provided with types or in case if there are no types it implements in ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/types",children:"Types"}),"."]}),"\n",(0,s.jsx)(i.p,{children:"The versions are updating manually and regularly with new releases."}),"\n",(0,s.jsx)(i.p,{children:"Build primarily with"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://reactnative.dev",children:"React Native"})," ",(0,s.jsx)(i.code,{children:"0.73.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://wix.github.io/react-native-navigation/docs/before-you-start/",children:"React Native Navigation"})," ",(0,s.jsx)(i.code,{children:"7.37.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://redux-toolkit.js.org",children:"Redux Toolkit"})," ",(0,s.jsx)(i.code,{children:"2.0.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://www.typescriptlang.org",children:"TypeScript"})," ",(0,s.jsx)(i.code,{children:"5.3.3"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Includes next components:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-datetimepicker/datetimepicker",children:"Date time picker"})," ",(0,s.jsx)(i.code,{children:"7.6.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/stefalda/ReactNativeLocalization",children:"Localization"})," ",(0,s.jsx)(i.code,{children:"2.3.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/wonday/react-native-orientation-locker",children:"Orientation locker"})," ",(0,s.jsx)(i.code,{children:"1.6.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/zoontek/react-native-permissions",children:"Permissions"})," ",(0,s.jsx)(i.code,{children:"4.0.4"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/luggit/react-native-config",children:"Config"})," ",(0,s.jsx)(i.code,{children:"1.5.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/ivpusic/react-native-image-crop-picker",children:"Image crop picker"})," ",(0,s.jsx)(i.code,{children:"0.40.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/dohooo/react-native-reanimated-carousel",children:"Reanimated carousel"})," ",(0,s.jsx)(i.code,{children:"3.5.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/oblador/react-native-vector-icons",children:"Vector icons"})," ",(0,s.jsx)(i.code,{children:"10.0.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/birkir/react-native-sfsymbols",children:"SF Symbols"})," ",(0,s.jsx)(i.code,{children:"1.2.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/MinaSamir11/react-native-in-app-review",children:"In-app review"})," ",(0,s.jsx)(i.code,{children:"4.3.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/nirsky/react-native-size-matters",children:"Size matters"})," ",(0,s.jsx)(i.code,{children:"0.4.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/CaioQuirinoMedeiros/react-native-mask-input",children:"Mask input"})," ",(0,s.jsx)(i.code,{children:"1.2.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/iamkun/dayjs/",children:"DayJS"})," ",(0,s.jsx)(i.code,{children:"1.11.10"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-netinfo/react-native-netinfo",children:"Net info"})," ",(0,s.jsx)(i.code,{children:"11.2.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-share/react-native-share",children:"Share"})," ",(0,s.jsx)(i.code,{children:"10.0.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/software-mansion/react-native-reanimated",children:"Reanimated"})," ",(0,s.jsx)(i.code,{children:"3.6.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-menu/menu",children:"Menu"})," ",(0,s.jsx)(i.code,{children:"0.9.1"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Testing made with:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/facebook/jest",children:"Jest"})," ",(0,s.jsx)(i.code,{children:"29.7.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/wix/Detox",children:"Detox"})," ",(0,s.jsx)(i.code,{children:"20.14.8"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://storybook.js.org/tutorials/intro-to-storybook/react-native/en/get-started/",children:"Storybook"})," ",(0,s.jsx)(i.code,{children:"6.5.7"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Code quality covered with:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/eslint/eslint",children:"ESLint"})," ",(0,s.jsx)(i.code,{children:"8.56.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"ESLint Config React Strong"})," ",(0,s.jsx)(i.code,{children:"2.2.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/typicode/husky",children:"Husky"})," ",(0,s.jsx)(i.code,{children:"8.0.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/prettier/prettier",children:"Prettier"})," ",(0,s.jsx)(i.code,{children:"3.1.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/okonet/lint-staged",children:"Lint staged"})," ",(0,s.jsx)(i.code,{children:"15.2.0"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"It also includes other small or utility components."}),"\n",(0,s.jsx)(i.h2,{id:"scripts",children:"Scripts"}),"\n",(0,s.jsx)(i.p,{children:"Most of the needed scripts are here to help with your development process without using terminal:"}),"\n",(0,s.jsx)(i.h3,{id:"react-native-specific",children:"React Native specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"start"})," - starts Metro bundler"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"start-reset-cache"})," - starts Metro bundler with resetting cache"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"project-openers",children:"Project openers"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"open:xcode"})," - opens Xcode with workspace project"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"open:android-studio"})," - opens Android Studio with Android project"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"android-specific",children:"Android specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:run"})," - compiles and runs your application on Android devices or emulators WITHOUT starting Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:run+start"})," - compiles and runs your application on Android devices or emulators AND if successful starts Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-bundle-nix"})," - builds Android release bundle on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-apk-nix"})," - builds Android release APK on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:clean-nix"})," - cleans Android builds on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-bundle-win"})," - builds Android release bundle on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-apk-win"})," - builds Android release APK on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:clean-win"})," - cleans Android builds on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:bundle"})," - builds Android bundle with sourcemaps to visualize its content"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:bundle-visualizer"})," - visualizes contents of Android bundle (total, components, packages size)"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"ios-specific",children:"iOS specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:run"})," - compiles and runs your application on iOS devices or emulators WITHOUT starting Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-visualizer"})," - visualizes contents of iOS bundle (total, components, packages size)"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-install"})," - installs ",(0,s.jsx)(i.code,{children:"vendor"})," bundle"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-pod-install"})," - install pods"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-pod-install-repo-update"})," - install pods and updates repo"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-check-pods-updates"})," - checks outdated pods"]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"The rest of the actions are done in XCode by opening the project's workspace."}),"\n",(0,s.jsx)(i.h3,{id:"environment-specific",children:"Environment specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:development-nix"})," - sets development environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:test-nix"})," - sets test environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:staging-nix"})," - sets staging environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:production-nix"})," - sets production environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:development-win"})," - sets development environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:test-win"})," - sets test environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:staging-win"})," - sets staging environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:production-win"})," - sets production environment on Windows"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"version-specific",children:"Version specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:major"})," - updates major version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:minor"})," - updates minor version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:patch"})," - updates patch version of iOS, Android and package.json"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"test-specific",children:"Test specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ts"})," - checks TypeScript files for errors"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests"})," - runs Jest tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests:watch"})," - runs Jest tests with watcher enabled"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests:coverage"})," - creates HTML and console representation of Jest test coverage percentage"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-android-debug"})," - builds Android debug build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-android-release"})," - builds Android release build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:android-debug"})," - runs Detox tests on Android device or emulator of debug build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:android-release"})," - runs Detox tests on Android device or emulator of release build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-ios-debug"})," - builds iOS debug build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-ios-release"})," - builds iOS release build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:ios-debug"})," - runs Detox tests on iOS device or emulator of debug build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:ios-release"})," - runs Detox tests on iOS device or emulator of release build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"eslint:run"})," - runs ESLint on JSX, TSX and TS files to check for rules error and warnings"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"eslint:fix"})," - runs ESLint on JSX, TSX and TS files and tries to automatically fix errors and warnings"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"utility-specific",children:"Utility specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"postinstall"})," - uses ",(0,s.jsx)(i.code,{children:"patch-package"})," to apply changes made with ",(0,s.jsx)(i.code,{children:"patch-package"})," after ",(0,s.jsx)(i.code,{children:"npm install"}),", check ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/patches",children:"Patches"})," for more"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"postversion"}),"- utilizes ",(0,s.jsx)(i.code,{children:"react-native-version"})," to increment version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"check-dependencies-updates"})," - checks version updates of your dependencies so that you could manually check changes and update what's needed"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"check-pods-updates"})," - checks iOS pods updates"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"generate-image-resources"})," - generates image resources based on images from selected folder, check ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/resources/images",children:"Images"})," for more"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"prepare"})," - if you have a git repository then it prepares scripts ",(0,s.jsx)(i.code,{children:"pre-commit"})," and ",(0,s.jsx)(i.code,{children:"post-merge"})," from package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"npm-install-force"})," - ",(0,s.jsx)(i.code,{children:"npm install"})," with ",(0,s.jsx)(i.code,{children:"force"})," to mitigate check issues with older dependencies"]}),"\n"]})]})}function h(e={}){const{wrapper:i}={...(0,r.a)(),...e.components};return i?(0,s.jsx)(i,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,i,n)=>{n.d(i,{Z:()=>t,a:()=>c});var s=n(7294);const r={},d=s.createContext(r);function c(e){const i=s.useContext(d);return s.useMemo((function(){return"function"==typeof e?e(i):{...i,...e}}),[i,e])}function t(e){let i;return i=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),s.createElement(d.Provider,{value:i},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/7f85490b.d453525b.js b/assets/js/7f85490b.d453525b.js deleted file mode 100644 index 6931ad8d..00000000 --- a/assets/js/7f85490b.d453525b.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3427],{6091:(e,i,n)=>{n.r(i),n.d(i,{assets:()=>l,contentTitle:()=>c,default:()=>h,frontMatter:()=>d,metadata:()=>t,toc:()=>o});var s=n(5893),r=n(1151);const d={sidebar_position:3,title:"Dependencies and scripts"},c=void 0,t={unversionedId:"dependencies",id:"dependencies",title:"Dependencies and scripts",description:"Dependencies",source:"@site/docs/dependencies.md",sourceDirName:".",slug:"/dependencies",permalink:"/react-native-template-strong/docs/dependencies",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/dependencies.md",tags:[],version:"current",lastUpdatedAt:1695732655,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Dependencies and scripts"},sidebar:"tutorialSidebar",previous:{title:"Module",permalink:"/react-native-template-strong/docs/structure/module"},next:{title:"Before starting",permalink:"/react-native-template-strong/docs/navigation/before-starting"}},l={},o=[{value:"Dependencies",id:"dependencies",level:2},{value:"Scripts",id:"scripts",level:2},{value:"React Native specific",id:"react-native-specific",level:3},{value:"Project openers",id:"project-openers",level:3},{value:"Android specific",id:"android-specific",level:3},{value:"iOS specific",id:"ios-specific",level:3},{value:"Environment specific",id:"environment-specific",level:3},{value:"Version specific",id:"version-specific",level:3},{value:"Test specific",id:"test-specific",level:3},{value:"Utility specific",id:"utility-specific",level:3}];function a(e){const i=Object.assign({h2:"h2",p:"p",a:"a",ul:"ul",li:"li",code:"code",h3:"h3"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h2,{id:"dependencies",children:"Dependencies"}),"\n",(0,s.jsx)(i.p,{children:"This repository relies on dependencies which are needed in day-to-day development."}),"\n",(0,s.jsxs)(i.p,{children:["Every dependency is provided with types or in case if there are no types it implements in ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/types",children:"Types"}),"."]}),"\n",(0,s.jsx)(i.p,{children:"The versions are updating manually and regularly with new releases."}),"\n",(0,s.jsx)(i.p,{children:"Build primarily with"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://reactnative.dev",children:"React Native"})," ",(0,s.jsx)(i.code,{children:"0.72.5"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://wix.github.io/react-native-navigation/docs/before-you-start/",children:"React Native Navigation"})," ",(0,s.jsx)(i.code,{children:"7.37.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://redux-toolkit.js.org",children:"Redux Toolkit"})," ",(0,s.jsx)(i.code,{children:"1.9.6"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://www.typescriptlang.org",children:"TypeScript"})," ",(0,s.jsx)(i.code,{children:"5.2.2"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Includes next components:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-datetimepicker/datetimepicker",children:"Date time picker"})," ",(0,s.jsx)(i.code,{children:"7.6.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/stefalda/ReactNativeLocalization",children:"Localization"})," ",(0,s.jsx)(i.code,{children:"2.3.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/wonday/react-native-orientation-locker",children:"Orientation locker"})," ",(0,s.jsx)(i.code,{children:"1.5.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/zoontek/react-native-permissions",children:"Permissions"})," ",(0,s.jsx)(i.code,{children:"3.9.2"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/luggit/react-native-config",children:"Config"})," ",(0,s.jsx)(i.code,{children:"1.5.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/ivpusic/react-native-image-crop-picker",children:"Image crop picker"})," ",(0,s.jsx)(i.code,{children:"0.40.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/dohooo/react-native-reanimated-carousel",children:"Reanimated carousel"})," ",(0,s.jsx)(i.code,{children:"3.5.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/oblador/react-native-vector-icons",children:"Vector icons"})," ",(0,s.jsx)(i.code,{children:"10.0.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/birkir/react-native-sfsymbols",children:"SF Symbols"})," ",(0,s.jsx)(i.code,{children:"1.2.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/MinaSamir11/react-native-in-app-review",children:"In-app review"})," ",(0,s.jsx)(i.code,{children:"4.3.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/nirsky/react-native-size-matters",children:"Size matters"})," ",(0,s.jsx)(i.code,{children:"0.4.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/CaioQuirinoMedeiros/react-native-mask-input",children:"Mask input"})," ",(0,s.jsx)(i.code,{children:"1.2.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/iamkun/dayjs/",children:"DayJS"})," ",(0,s.jsx)(i.code,{children:"1.11.10"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-netinfo/react-native-netinfo",children:"Net info"})," ",(0,s.jsx)(i.code,{children:"9.4.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-share/react-native-share",children:"Share"})," ",(0,s.jsx)(i.code,{children:"9.4.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/software-mansion/react-native-reanimated",children:"Reanimated"})," ",(0,s.jsx)(i.code,{children:"3.5.4"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/react-native-menu/menu",children:"Menu"})," ",(0,s.jsx)(i.code,{children:"0.9.1"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Testing made with:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/facebook/jest",children:"Jest"})," ",(0,s.jsx)(i.code,{children:"29.7.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/wix/Detox",children:"Detox"})," ",(0,s.jsx)(i.code,{children:"20.12.1"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://storybook.js.org/tutorials/intro-to-storybook/react-native/en/get-started/",children:"Storybook"})," ",(0,s.jsx)(i.code,{children:"6.5.6"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"Code quality covered with:"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/eslint/eslint",children:"ESLint"})," ",(0,s.jsx)(i.code,{children:"8.50.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/svbutko/eslint-config-react-strong",children:"ESLint Config React Strong"})," ",(0,s.jsx)(i.code,{children:"2.2.0"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/typicode/husky",children:"Husky"})," ",(0,s.jsx)(i.code,{children:"8.0.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/prettier/prettier",children:"Prettier"})," ",(0,s.jsx)(i.code,{children:"3.0.3"})]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.a,{href:"https://github.com/okonet/lint-staged",children:"Lint staged"})," ",(0,s.jsx)(i.code,{children:"14.0.1"})]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"It also includes other small or utility components."}),"\n",(0,s.jsx)(i.h2,{id:"scripts",children:"Scripts"}),"\n",(0,s.jsx)(i.p,{children:"Most of the needed scripts are here to help with your development process without using terminal:"}),"\n",(0,s.jsx)(i.h3,{id:"react-native-specific",children:"React Native specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"start"})," - starts Metro bundler"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"start-reset-cache"})," - starts Metro bundler with resetting cache"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"project-openers",children:"Project openers"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"open:xcode"})," - opens Xcode with workspace project"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"open:android-studio"})," - opens Android Studio with Android project"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"android-specific",children:"Android specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:run"})," - compiles and runs your application on Android devices or emulators WITHOUT starting Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:run+start"})," - compiles and runs your application on Android devices or emulators AND if successful starts Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-bundle-nix"})," - builds Android release bundle on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-apk-nix"})," - builds Android release APK on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:clean-nix"})," - cleans Android builds on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-bundle-win"})," - builds Android release bundle on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:build-release-apk-win"})," - builds Android release APK on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:clean-win"})," - cleans Android builds on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:bundle"})," - builds Android bundle with sourcemaps to visualize its content"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"android:bundle-visualizer"})," - visualizes contents of Android bundle (total, components, packages size)"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"ios-specific",children:"iOS specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:run"})," - compiles and runs your application on iOS devices or emulators WITHOUT starting Metro"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-visualizer"})," - visualizes contents of iOS bundle (total, components, packages size)"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-install"})," - installs ",(0,s.jsx)(i.code,{children:"vendor"})," bundle"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-pod-install"})," - install pods"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-pod-install-repo-update"})," - install pods and updates repo"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ios:bundle-check-pods-updates"})," - checks outdated pods"]}),"\n"]}),"\n",(0,s.jsx)(i.p,{children:"The rest of the actions are done in XCode by opening the project's workspace."}),"\n",(0,s.jsx)(i.h3,{id:"environment-specific",children:"Environment specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:development-nix"})," - sets development environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:test-nix"})," - sets test environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:staging-nix"})," - sets staging environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:production-nix"})," - sets production environment on Linux/macOS"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:development-win"})," - sets development environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:test-win"})," - sets test environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:staging-win"})," - sets staging environment on Windows"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"environment:production-win"})," - sets production environment on Windows"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"version-specific",children:"Version specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:major"})," - updates major version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:minor"})," - updates minor version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"version:patch"})," - updates patch version of iOS, Android and package.json"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"test-specific",children:"Test specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"ts"})," - checks TypeScript files for errors"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests"})," - runs Jest tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests:watch"})," - runs Jest tests with watcher enabled"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"tests:coverage"})," - creates HTML and console representation of Jest test coverage percentage"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-android-debug"})," - builds Android debug build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-android-release"})," - builds Android release build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:android-debug"})," - runs Detox tests on Android device or emulator of debug build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:android-release"})," - runs Detox tests on Android device or emulator of release build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-ios-debug"})," - builds iOS debug build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:build-ios-release"})," - builds iOS release build for Detox tests"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:ios-debug"})," - runs Detox tests on iOS device or emulator of debug build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"e2e:ios-release"})," - runs Detox tests on iOS device or emulator of release build"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"eslint:run"})," - runs ESLint on JSX, TSX and TS files to check for rules error and warnings"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"eslint:fix"})," - runs ESLint on JSX, TSX and TS files and tries to automatically fix errors and warnings"]}),"\n"]}),"\n",(0,s.jsx)(i.h3,{id:"utility-specific",children:"Utility specific"}),"\n",(0,s.jsxs)(i.ul,{children:["\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"postinstall"})," - uses ",(0,s.jsx)(i.code,{children:"patch-package"})," to apply changes made with ",(0,s.jsx)(i.code,{children:"patch-package"})," after ",(0,s.jsx)(i.code,{children:"npm install"}),", check ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/patches",children:"Patches"})," for more"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"postversion"}),"- utilizes ",(0,s.jsx)(i.code,{children:"react-native-version"})," to increment version of iOS, Android and package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"check-dependencies-updates"})," - checks version updates of your dependencies so that you could manually check changes and update what's needed"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"check-pods-updates"})," - checks iOS pods updates"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"generate-image-resources"})," - generates image resources based on images from selected folder, check ",(0,s.jsx)(i.a,{href:"/react-native-template-strong/docs/resources/images",children:"Images"})," for more"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"prepare"})," - if you have a git repository then it prepares scripts ",(0,s.jsx)(i.code,{children:"pre-commit"})," and ",(0,s.jsx)(i.code,{children:"post-merge"})," from package.json"]}),"\n",(0,s.jsxs)(i.li,{children:[(0,s.jsx)(i.code,{children:"npm-install-force"})," - ",(0,s.jsx)(i.code,{children:"npm install"})," with ",(0,s.jsx)(i.code,{children:"force"})," to mitigate check issues with older dependencies"]}),"\n"]})]})}const h=function(e={}){const{wrapper:i}=Object.assign({},(0,r.ah)(),e.components);return i?(0,s.jsx)(i,Object.assign({},e,{children:(0,s.jsx)(a,e)})):a(e)}},1151:(e,i,n)=>{n.d(i,{Zo:()=>t,ah:()=>d});var s=n(7294);const r=s.createContext({});function d(e){const i=s.useContext(r);return s.useMemo((()=>"function"==typeof e?e(i):{...i,...e}),[i,e])}const c={};function t({components:e,children:i,disableParentContext:n}){let t;return t=n?"function"==typeof e?e({}):e||c:d(e),s.createElement(r.Provider,{value:t},i)}}}]); \ No newline at end of file diff --git a/assets/js/82bbd999.67be8e88.js b/assets/js/82bbd999.67be8e88.js deleted file mode 100644 index 26c5332e..00000000 --- a/assets/js/82bbd999.67be8e88.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9709],{8941:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var s=n(5893),r=n(1151);const o={sidebar_position:2,title:"Module"},c=void 0,i={unversionedId:"structure/module",id:"structure/module",title:"Module",description:"Content",source:"@site/docs/structure/module.md",sourceDirName:"structure",slug:"/structure/module",permalink:"/react-native-template-strong/docs/structure/module",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/structure/module.md",tags:[],version:"current",lastUpdatedAt:1643013568,formattedLastUpdatedAt:"Jan 24, 2022",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Module"},sidebar:"tutorialSidebar",previous:{title:"Project",permalink:"/react-native-template-strong/docs/structure/project"},next:{title:"Dependencies and scripts",permalink:"/react-native-template-strong/docs/dependencies"}},d={},a=[{value:"Content",id:"content",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",ul:"ul",li:"li",pre:"pre",code:"code"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Module structure contains:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Screen or screens"}),"\n",(0,s.jsx)(t.li,{children:"Redux state"}),"\n",(0,s.jsx)(t.li,{children:"Redux slice"}),"\n",(0,s.jsx)(t.li,{children:"Components used only with this module"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Example:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"src\n\u2502\n\u2502\n\u2502\n\u2514\u2500\u2500\u2500modules\n\u2502 \u2502\n\u2502 \u2502\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500companyOffers\n\u2502 \u2502 CompanyOffers.tsx\n\u2502 \u2502 companyOffersSlice.ts\n\u2502 \u2502 companyOffersState.ts\n\u2502 \u2514\u2500\u2500\u2500components\n\u2502 \u2502 CompanyOfferItem.tsx\n\u2502 \u2502 CompanyOffersHeader.tsx\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500\n"})})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>i,ah:()=>o});var s=n(7294);const r=s.createContext({});function o(e){const t=s.useContext(r);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const c={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||c:o(e),s.createElement(r.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/82bbd999.6d0c58b6.js b/assets/js/82bbd999.6d0c58b6.js new file mode 100644 index 00000000..39219d7a --- /dev/null +++ b/assets/js/82bbd999.6d0c58b6.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9709],{8941:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>c,default:()=>u,frontMatter:()=>o,metadata:()=>i,toc:()=>a});var s=n(5893),r=n(1151);const o={sidebar_position:2,title:"Module"},c=void 0,i={id:"structure/module",title:"Module",description:"Content",source:"@site/docs/structure/module.md",sourceDirName:"structure",slug:"/structure/module",permalink:"/react-native-template-strong/docs/structure/module",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/structure/module.md",tags:[],version:"current",lastUpdatedAt:1643013568,formattedLastUpdatedAt:"Jan 24, 2022",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Module"},sidebar:"tutorialSidebar",previous:{title:"Project",permalink:"/react-native-template-strong/docs/structure/project"},next:{title:"Dependencies and scripts",permalink:"/react-native-template-strong/docs/dependencies"}},d={},a=[{value:"Content",id:"content",level:2}];function l(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Module structure contains:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Screen or screens"}),"\n",(0,s.jsx)(t.li,{children:"Redux state"}),"\n",(0,s.jsx)(t.li,{children:"Redux slice"}),"\n",(0,s.jsx)(t.li,{children:"Components used only with this module"}),"\n"]}),"\n",(0,s.jsx)(t.p,{children:"Example:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{children:"src\n\u2502\n\u2502\n\u2502\n\u2514\u2500\u2500\u2500modules\n\u2502 \u2502\n\u2502 \u2502\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500companyOffers\n\u2502 \u2502 CompanyOffers.tsx\n\u2502 \u2502 companyOffersSlice.ts\n\u2502 \u2502 companyOffersState.ts\n\u2502 \u2514\u2500\u2500\u2500components\n\u2502 \u2502 CompanyOfferItem.tsx\n\u2502 \u2502 CompanyOffersHeader.tsx\n\u2502 \u2502\n\u2502 \u2514\u2500\u2500\u2500\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>c});var s=n(7294);const r={},o=s.createContext(r);function c(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:c(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/84080ef2.6ed75d33.js b/assets/js/84080ef2.6ed75d33.js deleted file mode 100644 index d9ef7900..00000000 --- a/assets/js/84080ef2.6ed75d33.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7816],{3545:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>h,frontMatter:()=>a,metadata:()=>d,toc:()=>o});var n=r(5893),s=r(1151);const a={sidebar_position:3,title:"defaultKeyIdExtractor"},i=void 0,d={unversionedId:"helpers/default-key-id-extractor",id:"helpers/default-key-id-extractor",title:"defaultKeyIdExtractor",description:"Content",source:"@site/docs/helpers/default-key-id-extractor.md",sourceDirName:"helpers",slug:"/helpers/default-key-id-extractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/default-key-id-extractor.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"defaultKeyIdExtractor"},sidebar:"tutorialSidebar",previous:{title:"colorHelpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers"},next:{title:"dialogsHelpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers"}},l={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td"},(0,s.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Used to provide string value of ",(0,n.jsx)(t.code,{children:"id"})," from items as key for the ",(0,n.jsx)(t.code,{children:"keyExtractor"})," property of ",(0,n.jsx)(t.code,{children:"FlatList"})," or ",(0,n.jsx)(t.code,{children:"SectionList"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Used as default property in ",(0,n.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,n.jsx)(t.code,{children:"SectionListWrapper"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n};\n\nSectionListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n};\n"})}),"\n",(0,n.jsx)(t.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{align:"left",children:"Name"}),(0,n.jsx)(t.th,{align:"left",children:"Type"}),(0,n.jsx)(t.th,{align:"left",children:"Required"}),(0,n.jsx)(t.th,{align:"left",children:"Default value"}),(0,n.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,n.jsx)(t.tbody,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{align:"left",children:"item"}),(0,n.jsx)(t.td,{align:"left",children:"T extends {id: string or number}"}),(0,n.jsx)(t.td,{align:"left",children:"-"}),(0,n.jsx)(t.td,{align:"left",children:"-"}),(0,n.jsxs)(t.td,{align:"left",children:["Item which has ",(0,n.jsx)(t.code,{children:"id"})," and will be used as key"]})]})})]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(c,e)})):c(e)}},1151:(e,t,r)=>{r.d(t,{Zo:()=>d,ah:()=>a});var n=r(7294);const s=n.createContext({});function a(e){const t=n.useContext(s);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function d({components:e,children:t,disableParentContext:r}){let d;return d=r?"function"==typeof e?e({}):e||i:a(e),n.createElement(s.Provider,{value:d},t)}}}]); \ No newline at end of file diff --git a/assets/js/84080ef2.cf2b77e8.js b/assets/js/84080ef2.cf2b77e8.js new file mode 100644 index 00000000..8220b0c5 --- /dev/null +++ b/assets/js/84080ef2.cf2b77e8.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7816],{3545:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>a,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>d,toc:()=>o});var s=r(5893),n=r(1151);const l={sidebar_position:3,title:"defaultKeyIdExtractor"},i=void 0,d={id:"helpers/default-key-id-extractor",title:"defaultKeyIdExtractor",description:"Content",source:"@site/docs/helpers/default-key-id-extractor.md",sourceDirName:"helpers",slug:"/helpers/default-key-id-extractor",permalink:"/react-native-template-strong/docs/helpers/default-key-id-extractor",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/default-key-id-extractor.md",tags:[],version:"current",lastUpdatedAt:1704543933,formattedLastUpdatedAt:"Jan 6, 2024",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"defaultKeyIdExtractor"},sidebar:"tutorialSidebar",previous:{title:"colorHelpers",permalink:"/react-native-template-strong/docs/helpers/color-helpers"},next:{title:"dialogsHelpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers"}},a={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Used to provide string value of ",(0,s.jsx)(t.code,{children:"id"})," from items as key for the ",(0,s.jsx)(t.code,{children:"keyExtractor"})," property of ",(0,s.jsx)(t.code,{children:"FlatList"})," or ",(0,s.jsx)(t.code,{children:"SectionList"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Used as default property in ",(0,s.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,s.jsx)(t.code,{children:"SectionListWrapper"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n};\n\nSectionListWrapper.defaultProps = {\n keyExtractor: defaultKeyIdExtractor,\n};\n"})}),"\n",(0,s.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsx)(t.tbody,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"item"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"T extends {id: string or number}"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsxs)(t.td,{style:{textAlign:"left"},children:["Item which has ",(0,s.jsx)(t.code,{children:"id"})," and will be used as key"]})]})})]})]})}function p(e={}){const{wrapper:t}={...(0,n.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>d,a:()=>i});var s=r(7294);const n={},l=s.createContext(n);function i(e){const t=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(n):e.components||n:i(e.components),s.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8450a114.026a0590.js b/assets/js/8450a114.026a0590.js new file mode 100644 index 00000000..fa1070c6 --- /dev/null +++ b/assets/js/8450a114.026a0590.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5116],{70:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>x,frontMatter:()=>o,metadata:()=>i,toc:()=>c});var l=n(5893),s=n(1151);const o={sidebar_position:6,title:"IconPlatform"},r=void 0,i={id:"components/icon-platform",title:"IconPlatform",description:"Content",source:"@site/docs/components/icon-platform.md",sourceDirName:"components",slug:"/components/icon-platform",permalink:"/react-native-template-strong/docs/components/icon-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/icon-platform.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"IconPlatform"},sidebar:"tutorialSidebar",previous:{title:"SectionListWrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper"},next:{title:"TouchablePlatform",permalink:"/react-native-template-strong/docs/components/touchable-platform"}},d={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function a(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(t.p,{children:["Shows provided SF Symbol for iOS or Material Icon for Android or if both aren't provided then returns ",(0,l.jsx)(t.code,{children:"null"}),"."]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.p,{children:["Extends ",(0,l.jsx)(t.code,{children:"IconProps"})," of ",(0,l.jsx)(t.code,{children:"react-native-vector-icons/Icon"})," and ",(0,l.jsx)(t.code,{children:"SFSymbolProps"})," of ",(0,l.jsx)(t.code,{children:"react-native-sfsymbols"})," and omits ",(0,l.jsx)(t.code,{children:"name"})," of both of them."]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"iosName"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"SFSymbols"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"SF Symbol fron enum"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"androidName"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"string"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Name of Material Icon"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"color"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ColorValue"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Color of icon"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"style"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"TextStyle or ViewStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of icon"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:' <IconPlatform\n iosName={SFSymbols["star.fill"]}\n androidName={"star-rate"}\n size={moderateScale(32)}\n resizeMode={"contain"}\n color={platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.primary)}\n style={styles.clauseIcon}\n />\n'})})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var l=n(7294);const s={},o=l.createContext(s);function r(e){const t=l.useContext(o);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),l.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8450a114.b3b5a4f9.js b/assets/js/8450a114.b3b5a4f9.js deleted file mode 100644 index de31655d..00000000 --- a/assets/js/8450a114.b3b5a4f9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5116],{70:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>i,default:()=>h,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var l=t(5893),o=t(1151);const s={sidebar_position:6,title:"IconPlatform"},i=void 0,r={unversionedId:"components/icon-platform",id:"components/icon-platform",title:"IconPlatform",description:"Content",source:"@site/docs/components/icon-platform.md",sourceDirName:"components",slug:"/components/icon-platform",permalink:"/react-native-template-strong/docs/components/icon-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/icon-platform.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"IconPlatform"},sidebar:"tutorialSidebar",previous:{title:"SectionListWrapper",permalink:"/react-native-template-strong/docs/components/section-list-wrapper"},next:{title:"TouchablePlatform",permalink:"/react-native-template-strong/docs/components/touchable-platform"}},a={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,o.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(n.p,{children:["Shows provided SF Symbol for iOS or Material Icon for Android or if both aren't provided then returns ",(0,l.jsx)(n.code,{children:"null"}),"."]}),"\n",(0,l.jsx)(n.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(n.p,{children:["Extends ",(0,l.jsx)(n.code,{children:"IconProps"})," of ",(0,l.jsx)(n.code,{children:"react-native-vector-icons/Icon"})," and ",(0,l.jsx)(n.code,{children:"SFSymbolProps"})," of ",(0,l.jsx)(n.code,{children:"react-native-sfsymbols"})," and omits ",(0,l.jsx)(n.code,{children:"name"})," of both of them."]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"iosName"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"SFSymbols"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"SF Symbol fron enum"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"androidName"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Name of Material Icon"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"color"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ColorValue"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Color of icon"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"style"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"TextStyle or ViewStyle"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Style of icon"})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:' <IconPlatform\n iosName={SFSymbols["star.fill"]}\n androidName={"star-rate"}\n size={moderateScale(32)}\n resizeMode={"contain"}\n color={platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.primary)}\n style={styles.clauseIcon}\n />\n'})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,o.ah)(),e.components);return n?(0,l.jsx)(n,Object.assign({},e,{children:(0,l.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>r,ah:()=>s});var l=t(7294);const o=l.createContext({});function s(e){const n=l.useContext(o);return l.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const i={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||i:s(e),l.createElement(o.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/8705.f0525c2d.js b/assets/js/8705.f0525c2d.js deleted file mode 100644 index f26bf7e5..00000000 --- a/assets/js/8705.f0525c2d.js +++ /dev/null @@ -1 +0,0 @@ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8705],{6782:(e,t,n)=>{"use strict";n.d(t,{Z:()=>H});var o=n(7294),s=n(5893);function r(e){const{mdxAdmonitionTitle:t,rest:n}=function(e){const t=o.Children.toArray(e),n=t.find((e=>o.isValidElement(e)&&"mdxAdmonitionTitle"===e.type)),r=t.filter((e=>e!==n)),i=n?.props.children;return{mdxAdmonitionTitle:i,rest:r.length>0?(0,s.jsx)(s.Fragment,{children:r}):null}}(e.children),r=e.title??t;return{...e,...r&&{title:r},children:n}}var i=n(6010),a=n(5999),c=n(5281);const l={admonition:"admonition_xJq3",admonitionHeading:"admonitionHeading_Gvgb",admonitionIcon:"admonitionIcon_Rf37",admonitionContent:"admonitionContent_BuS1"};function d(e){let{type:t,className:n,children:o}=e;return(0,s.jsx)("div",{className:(0,i.Z)(c.k.common.admonition,c.k.common.admonitionType(t),l.admonition,n),children:o})}function u(e){let{icon:t,title:n}=e;return(0,s.jsxs)("div",{className:l.admonitionHeading,children:[(0,s.jsx)("span",{className:l.admonitionIcon,children:t}),n]})}function m(e){let{children:t}=e;return t?(0,s.jsx)("div",{className:l.admonitionContent,children:t}):null}function p(e){const{type:t,icon:n,title:o,children:r,className:i}=e;return(0,s.jsxs)(d,{type:t,className:i,children:[(0,s.jsx)(u,{title:o,icon:n}),(0,s.jsx)(m,{children:r})]})}function h(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"})})}const f={icon:(0,s.jsx)(h,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.note",description:"The default label used for the Note admonition (:::note)",children:"note"})};function g(e){return(0,s.jsx)(p,{...f,...e,className:(0,i.Z)("alert alert--secondary",e.className),children:e.children})}function v(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"})})}const x={icon:(0,s.jsx)(v,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.tip",description:"The default label used for the Tip admonition (:::tip)",children:"tip"})};function y(e){return(0,s.jsx)(p,{...x,...e,className:(0,i.Z)("alert alert--success",e.className),children:e.children})}function b(e){return(0,s.jsx)("svg",{viewBox:"0 0 14 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"})})}const j={icon:(0,s.jsx)(b,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.info",description:"The default label used for the Info admonition (:::info)",children:"info"})};function k(e){return(0,s.jsx)(p,{...j,...e,className:(0,i.Z)("alert alert--info",e.className),children:e.children})}function N(e){return(0,s.jsx)("svg",{viewBox:"0 0 16 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"})})}const C={icon:(0,s.jsx)(N,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.caution",description:"The default label used for the Caution admonition (:::caution)",children:"caution"})};function L(e){return(0,s.jsx)("svg",{viewBox:"0 0 12 16",...e,children:(0,s.jsx)("path",{fillRule:"evenodd",d:"M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"})})}const B={icon:(0,s.jsx)(L,{}),title:(0,s.jsx)(a.Z,{id:"theme.admonition.danger",description:"The default label used for the Danger admonition (:::danger)",children:"danger"})};function w(e){return(0,s.jsx)(p,{...B,...e,className:(0,i.Z)("alert alert--danger",e.className),children:e.children})}const E={...{note:g,tip:y,info:k,caution:function(e){return(0,s.jsx)(p,{...C,...e,className:(0,i.Z)("alert alert--warning",e.className),children:e.children})},danger:w},...{secondary:e=>(0,s.jsx)(g,{title:"secondary",...e}),important:e=>(0,s.jsx)(k,{title:"important",...e}),success:e=>(0,s.jsx)(y,{title:"success",...e}),warning:e=>(0,s.jsx)(w,{title:"warning",...e})}};function H(e){const t=r(e),n=(o=t.type,E[o]||(console.warn(`No admonition component found for admonition type "${o}". Using Info as fallback.`),E.info));var o;return(0,s.jsx)(n,{...t})}},5814:(e,t,n)=>{"use strict";n.d(t,{Z:()=>de});var o=n(7294),s=n(1151),r=n(5742),i=n(2389),a=n(6010),c=n(2949),l=n(6668);function d(){const{prism:e}=(0,l.L)(),{colorMode:t}=(0,c.I)(),n=e.theme,o=e.darkTheme||n;return"dark"===t?o:n}var u=n(5281),m=n(7594),p=n.n(m);const h=/title=(?<quote>["'])(?<title>.*?)\1/,f=/\{(?<range>[\d,-]+)\}/,g={js:{start:"\\/\\/",end:""},jsBlock:{start:"\\/\\*",end:"\\*\\/"},jsx:{start:"\\{\\s*\\/\\*",end:"\\*\\/\\s*\\}"},bash:{start:"#",end:""},html:{start:"\x3c!--",end:"--\x3e"},lua:{start:"--",end:""},wasm:{start:"\\;\\;",end:""},tex:{start:"%",end:""}};function v(e,t){const n=e.map((e=>{const{start:n,end:o}=g[e];return`(?:${n}\\s*(${t.flatMap((e=>[e.line,e.block?.start,e.block?.end].filter(Boolean))).join("|")})\\s*${o})`})).join("|");return new RegExp(`^\\s*(?:${n})\\s*$`)}function x(e,t){let n=e.replace(/\n$/,"");const{language:o,magicComments:s,metastring:r}=t;if(r&&f.test(r)){const e=r.match(f).groups.range;if(0===s.length)throw new Error(`A highlight range has been given in code block's metastring (\`\`\` ${r}), but no magic comment config is available. Docusaurus applies the first magic comment entry's className for metastring ranges.`);const t=s[0].className,o=p()(e).filter((e=>e>0)).map((e=>[e-1,[t]]));return{lineClassNames:Object.fromEntries(o),code:n}}if(void 0===o)return{lineClassNames:{},code:n};const i=function(e,t){switch(e){case"js":case"javascript":case"ts":case"typescript":return v(["js","jsBlock"],t);case"jsx":case"tsx":return v(["js","jsBlock","jsx"],t);case"html":return v(["js","jsBlock","html"],t);case"python":case"py":case"bash":return v(["bash"],t);case"markdown":case"md":return v(["html","jsx","bash"],t);case"tex":case"latex":case"matlab":return v(["tex"],t);case"lua":case"haskell":case"sql":return v(["lua"],t);case"wasm":return v(["wasm"],t);default:return v(Object.keys(g).filter((e=>!["lua","wasm","tex","latex","matlab"].includes(e))),t)}}(o,s),a=n.split("\n"),c=Object.fromEntries(s.map((e=>[e.className,{start:0,range:""}]))),l=Object.fromEntries(s.filter((e=>e.line)).map((e=>{let{className:t,line:n}=e;return[n,t]}))),d=Object.fromEntries(s.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.start,t]}))),u=Object.fromEntries(s.filter((e=>e.block)).map((e=>{let{className:t,block:n}=e;return[n.end,t]})));for(let p=0;p<a.length;){const e=a[p].match(i);if(!e){p+=1;continue}const t=e.slice(1).find((e=>void 0!==e));l[t]?c[l[t]].range+=`${p},`:d[t]?c[d[t]].start=p:u[t]&&(c[u[t]].range+=`${c[u[t]].start}-${p-1},`),a.splice(p,1)}n=a.join("\n");const m={};return Object.entries(c).forEach((e=>{let[t,{range:n}]=e;p()(n).forEach((e=>{m[e]??=[],m[e].push(t)}))})),{lineClassNames:m,code:n}}const y={codeBlockContainer:"codeBlockContainer_Ckt0"};var b=n(5893);function j(e){let{as:t,...n}=e;const o=function(e){const t={color:"--prism-color",backgroundColor:"--prism-background-color"},n={};return Object.entries(e.plain).forEach((e=>{let[o,s]=e;const r=t[o];r&&"string"==typeof s&&(n[r]=s)})),n}(d());return(0,b.jsx)(t,{...n,style:o,className:(0,a.Z)(n.className,y.codeBlockContainer,u.k.common.codeBlock)})}const k={codeBlockContent:"codeBlockContent_biex",codeBlockTitle:"codeBlockTitle_Ktv7",codeBlock:"codeBlock_bY9V",codeBlockStandalone:"codeBlockStandalone_MEMb",codeBlockLines:"codeBlockLines_e6Vv",codeBlockLinesWithNumbering:"codeBlockLinesWithNumbering_o6Pm",buttonGroup:"buttonGroup__atx"};function N(e){let{children:t,className:n}=e;return(0,b.jsx)(j,{as:"pre",tabIndex:0,className:(0,a.Z)(k.codeBlockStandalone,"thin-scrollbar",n),children:(0,b.jsx)("code",{className:k.codeBlockLines,children:t})})}var C=n(902);const L={attributes:!0,characterData:!0,childList:!0,subtree:!0};function B(e,t){const[n,s]=(0,o.useState)(),r=(0,o.useCallback)((()=>{s(e.current?.closest("[role=tabpanel][hidden]"))}),[e,s]);(0,o.useEffect)((()=>{r()}),[r]),function(e,t,n){void 0===n&&(n=L);const s=(0,C.zX)(t),r=(0,C.Ql)(n);(0,o.useEffect)((()=>{const t=new MutationObserver(s);return e&&t.observe(e,r),()=>t.disconnect()}),[e,s,r])}(n,(e=>{e.forEach((e=>{"attributes"===e.type&&"hidden"===e.attributeName&&(t(),r())}))}),{attributes:!0,characterData:!1,childList:!1,subtree:!1})}const w={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]};var E={Prism:n(7410).Z,theme:w};function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function T(){return T=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},T.apply(this,arguments)}var Z=/\r\n|\r|\n/,_=function(e){0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},S=function(e,t){var n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)};function I(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&-1===t.indexOf(o)&&(n[o]=e[o]);return n}var A=function(e){function t(){for(var t=this,n=[],o=arguments.length;o--;)n[o]=arguments[o];e.apply(this,n),H(this,"getThemeDict",(function(e){if(void 0!==t.themeDict&&e.theme===t.prevTheme&&e.language===t.prevLanguage)return t.themeDict;t.prevTheme=e.theme,t.prevLanguage=e.language;var n=e.theme?function(e,t){var n=e.plain,o=Object.create(null),s=e.styles.reduce((function(e,n){var o=n.languages,s=n.style;return o&&!o.includes(t)||n.types.forEach((function(t){var n=T({},e[t],s);e[t]=n})),e}),o);return s.root=n,s.plain=T({},n,{backgroundColor:null}),s}(e.theme,e.language):void 0;return t.themeDict=n})),H(this,"getLineProps",(function(e){var n=e.key,o=e.className,s=e.style,r=T({},I(e,["key","className","style","line"]),{className:"token-line",style:void 0,key:void 0}),i=t.getThemeDict(t.props);return void 0!==i&&(r.style=i.plain),void 0!==s&&(r.style=void 0!==r.style?T({},r.style,s):s),void 0!==n&&(r.key=n),o&&(r.className+=" "+o),r})),H(this,"getStyleForToken",(function(e){var n=e.types,o=e.empty,s=n.length,r=t.getThemeDict(t.props);if(void 0!==r){if(1===s&&"plain"===n[0])return o?{display:"inline-block"}:void 0;if(1===s&&!o)return r[n[0]];var i=o?{display:"inline-block"}:{},a=n.map((function(e){return r[e]}));return Object.assign.apply(Object,[i].concat(a))}})),H(this,"getTokenProps",(function(e){var n=e.key,o=e.className,s=e.style,r=e.token,i=T({},I(e,["key","className","style","token"]),{className:"token "+r.types.join(" "),children:r.content,style:t.getStyleForToken(r),key:void 0});return void 0!==s&&(i.style=void 0!==i.style?T({},i.style,s):s),void 0!==n&&(i.key=n),o&&(i.className+=" "+o),i})),H(this,"tokenize",(function(e,t,n,o){var s={code:t,grammar:n,language:o,tokens:[]};e.hooks.run("before-tokenize",s);var r=s.tokens=e.tokenize(s.code,s.grammar,s.language);return e.hooks.run("after-tokenize",s),r}))}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){var e=this.props,t=e.Prism,n=e.language,o=e.code,s=e.children,r=this.getThemeDict(this.props),i=t.languages[n];return s({tokens:function(e){for(var t=[[]],n=[e],o=[0],s=[e.length],r=0,i=0,a=[],c=[a];i>-1;){for(;(r=o[i]++)<s[i];){var l=void 0,d=t[i],u=n[i][r];if("string"==typeof u?(d=i>0?d:["plain"],l=u):(d=S(d,u.type),u.alias&&(d=S(d,u.alias)),l=u.content),"string"==typeof l){var m=l.split(Z),p=m.length;a.push({types:d,content:m[0]});for(var h=1;h<p;h++)_(a),c.push(a=[]),a.push({types:d,content:m[h]})}else i++,t.push(d),n.push(l),o.push(0),s.push(l.length)}i--,t.pop(),n.pop(),o.pop(),s.pop()}return _(a),c}(void 0!==i?this.tokenize(t,o,i,n):[o]),className:"prism-code language-"+n,style:void 0!==r?r.root:{},getLineProps:this.getLineProps,getTokenProps:this.getTokenProps})},t}(o.Component);const z=A,M={codeLine:"codeLine_lJS_",codeLineNumber:"codeLineNumber_Tfdd",codeLineContent:"codeLineContent_feaV"};function O(e){let{line:t,classNames:n,showLineNumbers:o,getLineProps:s,getTokenProps:r}=e;1===t.length&&"\n"===t[0].content&&(t[0].content="");const i=s({line:t,className:(0,a.Z)(n,o&&M.codeLine)}),c=t.map(((e,t)=>(0,b.jsx)("span",{...r({token:e,key:t})},t)));return(0,b.jsxs)("span",{...i,children:[o?(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)("span",{className:M.codeLineNumber}),(0,b.jsx)("span",{className:M.codeLineContent,children:c})]}):c,(0,b.jsx)("br",{})]})}var P=n(5999);function R(e){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,b.jsx)("path",{fill:"currentColor",d:"M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"})})}function D(e){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,b.jsx)("path",{fill:"currentColor",d:"M21,7L9,19L3.5,13.5L4.91,12.09L9,16.17L19.59,5.59L21,7Z"})})}const $={copyButtonCopied:"copyButtonCopied_obH4",copyButtonIcons:"copyButtonIcons_eSgA",copyButtonIcon:"copyButtonIcon_y97N",copyButtonSuccessIcon:"copyButtonSuccessIcon_LjdS"};function V(e){let{code:t,className:n}=e;const[s,r]=(0,o.useState)(!1),i=(0,o.useRef)(void 0),c=(0,o.useCallback)((()=>{!function(e,t){let{target:n=document.body}=void 0===t?{}:t;if("string"!=typeof e)throw new TypeError(`Expected parameter \`text\` to be a \`string\`, got \`${typeof e}\`.`);const o=document.createElement("textarea"),s=document.activeElement;o.value=e,o.setAttribute("readonly",""),o.style.contain="strict",o.style.position="absolute",o.style.left="-9999px",o.style.fontSize="12pt";const r=document.getSelection(),i=r.rangeCount>0&&r.getRangeAt(0);n.append(o),o.select(),o.selectionStart=0,o.selectionEnd=e.length;let a=!1;try{a=document.execCommand("copy")}catch{}o.remove(),i&&(r.removeAllRanges(),r.addRange(i)),s&&s.focus()}(t),r(!0),i.current=window.setTimeout((()=>{r(!1)}),1e3)}),[t]);return(0,o.useEffect)((()=>()=>window.clearTimeout(i.current)),[]),(0,b.jsx)("button",{type:"button","aria-label":s?(0,P.I)({id:"theme.CodeBlock.copied",message:"Copied",description:"The copied button label on code blocks"}):(0,P.I)({id:"theme.CodeBlock.copyButtonAriaLabel",message:"Copy code to clipboard",description:"The ARIA label for copy code blocks button"}),title:(0,P.I)({id:"theme.CodeBlock.copy",message:"Copy",description:"The copy button label on code blocks"}),className:(0,a.Z)("clean-btn",n,$.copyButton,s&&$.copyButtonCopied),onClick:c,children:(0,b.jsxs)("span",{className:$.copyButtonIcons,"aria-hidden":"true",children:[(0,b.jsx)(R,{className:$.copyButtonIcon}),(0,b.jsx)(D,{className:$.copyButtonSuccessIcon})]})})}function W(e){return(0,b.jsx)("svg",{viewBox:"0 0 24 24",...e,children:(0,b.jsx)("path",{fill:"currentColor",d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})})}const q={wordWrapButtonIcon:"wordWrapButtonIcon_Bwma",wordWrapButtonEnabled:"wordWrapButtonEnabled_EoeP"};function F(e){let{className:t,onClick:n,isEnabled:o}=e;const s=(0,P.I)({id:"theme.CodeBlock.wordWrapToggle",message:"Toggle word wrap",description:"The title attribute for toggle word wrapping button of code block lines"});return(0,b.jsx)("button",{type:"button",onClick:n,className:(0,a.Z)("clean-btn",t,o&&q.wordWrapButtonEnabled),"aria-label":s,title:s,children:(0,b.jsx)(W,{className:q.wordWrapButtonIcon,"aria-hidden":"true"})})}function U(e){let{children:t,className:n="",metastring:s,title:r,showLineNumbers:i,language:c}=e;const{prism:{defaultLanguage:u,magicComments:m}}=(0,l.L)(),p=c??function(e){const t=e.split(" ").find((e=>e.startsWith("language-")));return t?.replace(/language-/,"")}(n)??u,f=d(),g=function(){const[e,t]=(0,o.useState)(!1),[n,s]=(0,o.useState)(!1),r=(0,o.useRef)(null),i=(0,o.useCallback)((()=>{const n=r.current.querySelector("code");e?n.removeAttribute("style"):(n.style.whiteSpace="pre-wrap",n.style.overflowWrap="anywhere"),t((e=>!e))}),[r,e]),a=(0,o.useCallback)((()=>{const{scrollWidth:e,clientWidth:t}=r.current,n=e>t||r.current.querySelector("code").hasAttribute("style");s(n)}),[r]);return B(r,a),(0,o.useEffect)((()=>{a()}),[e,a]),(0,o.useEffect)((()=>(window.addEventListener("resize",a,{passive:!0}),()=>{window.removeEventListener("resize",a)})),[a]),{codeBlockRef:r,isEnabled:e,isCodeScrollable:n,toggle:i}}(),v=function(e){return e?.match(h)?.groups.title??""}(s)||r,{lineClassNames:y,code:N}=x(t,{metastring:s,language:p,magicComments:m}),C=i??function(e){return Boolean(e?.includes("showLineNumbers"))}(s);return(0,b.jsxs)(j,{as:"div",className:(0,a.Z)(n,p&&!n.includes(`language-${p}`)&&`language-${p}`),children:[v&&(0,b.jsx)("div",{className:k.codeBlockTitle,children:v}),(0,b.jsxs)("div",{className:k.codeBlockContent,children:[(0,b.jsx)(z,{...E,theme:f,code:N,language:p??"text",children:e=>{let{className:t,tokens:n,getLineProps:o,getTokenProps:s}=e;return(0,b.jsx)("pre",{tabIndex:0,ref:g.codeBlockRef,className:(0,a.Z)(t,k.codeBlock,"thin-scrollbar"),children:(0,b.jsx)("code",{className:(0,a.Z)(k.codeBlockLines,C&&k.codeBlockLinesWithNumbering),children:n.map(((e,t)=>(0,b.jsx)(O,{line:e,getLineProps:o,getTokenProps:s,classNames:y[t],showLineNumbers:C},t)))})})}}),(0,b.jsxs)("div",{className:k.buttonGroup,children:[(g.isEnabled||g.isCodeScrollable)&&(0,b.jsx)(F,{className:k.codeButton,onClick:()=>g.toggle(),isEnabled:g.isEnabled}),(0,b.jsx)(V,{className:k.codeButton,code:N})]})]})]})}function G(e){let{children:t,...n}=e;const s=(0,i.Z)(),r=function(e){return o.Children.toArray(e).some((e=>(0,o.isValidElement)(e)))?e:Array.isArray(e)?e.join(""):e}(t),a="string"==typeof r?U:N;return(0,b.jsx)(a,{...n,children:r},String(s))}var J=n(9960);var Y=n(6043);const K={details:"details_lb9f",isBrowser:"isBrowser_bmU9",collapsibleContent:"collapsibleContent_i85q"};function Q(e){return!!e&&("SUMMARY"===e.tagName||Q(e.parentElement))}function X(e,t){return!!e&&(e===t||X(e.parentElement,t))}function ee(e){let{summary:t,children:n,...s}=e;const r=(0,i.Z)(),c=(0,o.useRef)(null),{collapsed:l,setCollapsed:d}=(0,Y.u)({initialState:!s.open}),[u,m]=(0,o.useState)(s.open),p=o.isValidElement(t)?t:(0,b.jsx)("summary",{children:t??"Details"});return(0,b.jsxs)("details",{...s,ref:c,open:u,"data-collapsed":l,className:(0,a.Z)(K.details,r&&K.isBrowser,s.className),onMouseDown:e=>{Q(e.target)&&e.detail>1&&e.preventDefault()},onClick:e=>{e.stopPropagation();const t=e.target;Q(t)&&X(t,c.current)&&(e.preventDefault(),l?(d(!1),m(!0)):d(!0))},children:[p,(0,b.jsx)(Y.z,{lazy:!1,collapsed:l,disableSSRStyle:!0,onCollapseTransitionEnd:e=>{d(e),m(!e)},children:(0,b.jsx)("div",{className:K.collapsibleContent,children:n})})]})}const te={details:"details_b_Ee"},ne="alert alert--info";function oe(e){let{...t}=e;return(0,b.jsx)(ee,{...t,className:(0,a.Z)(ne,te.details,t.className)})}var se=n(2503);function re(e){return(0,b.jsx)(se.Z,{...e})}const ie={containsTaskList:"containsTaskList_mC6p"};const ae={img:"img_ev3q"};var ce=n(6782);const le={Head:r.Z,Details:function(e){const t=o.Children.toArray(e.children),n=t.find((e=>o.isValidElement(e)&&"summary"===e.type)),s=(0,b.jsx)(b.Fragment,{children:t.filter((e=>e!==n))});return(0,b.jsx)(oe,{...e,summary:n,children:s})},code:function(e){return o.Children.toArray(e.children).every((e=>"string"==typeof e&&!e.includes("\n")))?(0,b.jsx)("code",{...e}):(0,b.jsx)(G,{...e})},a:function(e){return(0,b.jsx)(J.Z,{...e})},pre:function(e){return(0,b.jsx)(b.Fragment,{children:e.children})},ul:function(e){return(0,b.jsx)("ul",{...e,className:(t=e.className,(0,a.Z)(t,t?.includes("contains-task-list")&&ie.containsTaskList))});var t},img:function(e){return(0,b.jsx)("img",{loading:"lazy",...e,className:(t=e.className,(0,a.Z)(t,ae.img))});var t},h1:e=>(0,b.jsx)(re,{as:"h1",...e}),h2:e=>(0,b.jsx)(re,{as:"h2",...e}),h3:e=>(0,b.jsx)(re,{as:"h3",...e}),h4:e=>(0,b.jsx)(re,{as:"h4",...e}),h5:e=>(0,b.jsx)(re,{as:"h5",...e}),h6:e=>(0,b.jsx)(re,{as:"h6",...e}),admonition:ce.Z,mermaid:()=>null};function de(e){let{children:t}=e;return(0,b.jsx)(s.Zo,{components:le,children:t})}},9407:(e,t,n)=>{"use strict";n.d(t,{Z:()=>l});n(7294);var o=n(6010),s=n(3743);const r={tableOfContents:"tableOfContents_bqdL",docItemContainer:"docItemContainer_F8PC"};var i=n(5893);const a="table-of-contents__link toc-highlight",c="table-of-contents__link--active";function l(e){let{className:t,...n}=e;return(0,i.jsx)("div",{className:(0,o.Z)(r.tableOfContents,"thin-scrollbar",t),children:(0,i.jsx)(s.Z,{...n,linkClassName:a,linkActiveClassName:c})})}},3743:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var o=n(7294),s=n(6668);function r(e){const t=e.map((e=>({...e,parentIndex:-1,children:[]}))),n=Array(7).fill(-1);t.forEach(((e,t)=>{const o=n.slice(2,e.level);e.parentIndex=Math.max(...o),n[e.level]=t}));const o=[];return t.forEach((e=>{const{parentIndex:n,...s}=e;n>=0?t[n].children.push(s):o.push(s)})),o}function i(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:o}=e;return t.flatMap((e=>{const t=i({toc:e.children,minHeadingLevel:n,maxHeadingLevel:o});return function(e){return e.level>=n&&e.level<=o}(e)?[{...e,children:t}]:t}))}function a(e){const t=e.getBoundingClientRect();return t.top===t.bottom?a(e.parentNode):t}function c(e,t){let{anchorTopOffset:n}=t;const o=e.find((e=>a(e).top>=n));if(o){return function(e){return e.top>0&&e.bottom<window.innerHeight/2}(a(o))?o:e[e.indexOf(o)-1]??null}return e[e.length-1]??null}function l(){const e=(0,o.useRef)(0),{navbar:{hideOnScroll:t}}=(0,s.L)();return(0,o.useEffect)((()=>{e.current=t?0:document.querySelector(".navbar").clientHeight}),[t]),e}function d(e){const t=(0,o.useRef)(void 0),n=l();(0,o.useEffect)((()=>{if(!e)return()=>{};const{linkClassName:o,linkActiveClassName:s,minHeadingLevel:r,maxHeadingLevel:i}=e;function a(){const e=function(e){return Array.from(document.getElementsByClassName(e))}(o),a=function(e){let{minHeadingLevel:t,maxHeadingLevel:n}=e;const o=[];for(let s=t;s<=n;s+=1)o.push(`h${s}.anchor`);return Array.from(document.querySelectorAll(o.join()))}({minHeadingLevel:r,maxHeadingLevel:i}),l=c(a,{anchorTopOffset:n.current}),d=e.find((e=>l&&l.id===function(e){return decodeURIComponent(e.href.substring(e.href.indexOf("#")+1))}(e)));e.forEach((e=>{!function(e,n){n?(t.current&&t.current!==e&&t.current.classList.remove(s),e.classList.add(s),t.current=e):e.classList.remove(s)}(e,e===d)}))}return document.addEventListener("scroll",a),document.addEventListener("resize",a),a(),()=>{document.removeEventListener("scroll",a),document.removeEventListener("resize",a)}}),[e,n])}var u=n(9960),m=n(5893);function p(e){let{toc:t,className:n,linkClassName:o,isChild:s}=e;return t.length?(0,m.jsx)("ul",{className:s?void 0:n,children:t.map((e=>(0,m.jsxs)("li",{children:[(0,m.jsx)(u.Z,{to:`#${e.id}`,className:o??void 0,dangerouslySetInnerHTML:{__html:e.value}}),(0,m.jsx)(p,{isChild:!0,toc:e.children,className:n,linkClassName:o})]},e.id)))}):null}const h=o.memo(p);function f(e){let{toc:t,className:n="table-of-contents table-of-contents__left-border",linkClassName:a="table-of-contents__link",linkActiveClassName:c,minHeadingLevel:l,maxHeadingLevel:u,...p}=e;const f=(0,s.L)(),g=l??f.tableOfContents.minHeadingLevel,v=u??f.tableOfContents.maxHeadingLevel,x=function(e){let{toc:t,minHeadingLevel:n,maxHeadingLevel:s}=e;return(0,o.useMemo)((()=>i({toc:r(t),minHeadingLevel:n,maxHeadingLevel:s})),[t,n,s])}({toc:t,minHeadingLevel:g,maxHeadingLevel:v});return d((0,o.useMemo)((()=>{if(a&&c)return{linkClassName:a,linkActiveClassName:c,minHeadingLevel:g,maxHeadingLevel:v}}),[a,c,g,v])),(0,m.jsx)(h,{toc:x,className:n,linkClassName:a,...p})}},2212:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var o=n(6010),s=n(5999),r=n(5742),i=n(5893);function a(){return(0,i.jsx)(s.Z,{id:"theme.unlistedContent.title",description:"The unlisted content banner title",children:"Unlisted page"})}function c(){return(0,i.jsx)(s.Z,{id:"theme.unlistedContent.message",description:"The unlisted content banner message",children:"This page is unlisted. Search engines will not index it, and only users having a direct link can access it."})}function l(){return(0,i.jsx)(r.Z,{children:(0,i.jsx)("meta",{name:"robots",content:"noindex, nofollow"})})}var d=n(5281),u=n(6782);function m(e){let{className:t}=e;return(0,i.jsx)(u.Z,{type:"caution",title:(0,i.jsx)(a,{}),className:(0,o.Z)(t,d.k.common.unlistedBanner),children:(0,i.jsx)(c,{})})}function p(e){return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(l,{}),(0,i.jsx)(m,{...e})]})}},7594:(e,t)=>{function n(e){let t,n=[];for(let o of e.split(",").map((e=>e.trim())))if(/^-?\d+$/.test(o))n.push(parseInt(o,10));else if(t=o.match(/^(-?\d+)(-|\.\.\.?|\u2025|\u2026|\u22EF)(-?\d+)$/)){let[e,o,s,r]=t;if(o&&r){o=parseInt(o),r=parseInt(r);const e=o<r?1:-1;"-"!==s&&".."!==s&&"\u2025"!==s||(r+=e);for(let t=o;t!==r;t+=e)n.push(t)}}return n}t.default=n,e.exports=n},1151:(e,t,n)=>{"use strict";n.d(t,{Zo:()=>a,ah:()=>r});var o=n(7294);const s=o.createContext({});function r(e){const t=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||i:r(e),o.createElement(s.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/88cbf0c6.be060995.js b/assets/js/88cbf0c6.be060995.js new file mode 100644 index 00000000..8daff317 --- /dev/null +++ b/assets/js/88cbf0c6.be060995.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1242],{1310:(e,r,t)=>{t.r(r),t.d(r,{assets:()=>i,contentTitle:()=>d,default:()=>u,frontMatter:()=>s,metadata:()=>o,toc:()=>l});var n=t(5893),a=t(1151);const s={sidebar_position:6,title:"AsyncThunk"},d=void 0,o={id:"redux/async-thunk",title:"AsyncThunk",description:"Content",source:"@site/docs/redux/async-thunk.md",sourceDirName:"redux",slug:"/redux/async-thunk",permalink:"/react-native-template-strong/docs/redux/async-thunk",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/async-thunk.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"AsyncThunk"},sidebar:"tutorialSidebar",previous:{title:"Slice",permalink:"/react-native-template-strong/docs/redux/slice"},next:{title:"Hooks",permalink:"/react-native-template-strong/docs/redux/hooks"}},i={},l=[{value:"Content",id:"content",level:2},{value:"Creation",id:"creation",level:2},{value:"Slice handlers",id:"slice-handlers",level:2},{value:"Promise result handlers",id:"promise-result-handlers",level:2}];function c(e){const r={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(r.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(r.p,{children:[(0,n.jsx)(r.code,{children:"AsyncThunks"})," as well as ",(0,n.jsx)(r.code,{children:"Slices"})," are stored together for better readability and remove need to have additional imports."]}),"\n",(0,n.jsxs)(r.p,{children:["To demonstrate how to create and use it, I will be using some ",(0,n.jsx)(r.code,{children:"Orders"})," state and ",(0,n.jsx)(r.code,{children:"ordersApi"})," as example."]}),"\n",(0,n.jsx)(r.h2,{id:"creation",children:"Creation"}),"\n",(0,n.jsxs)(r.p,{children:["Creation of ",(0,n.jsx)(r.code,{children:"AsyncThunk"})," is the same as in original documentation with usage of typed ",(0,n.jsx)(r.code,{children:"state"})," and ",(0,n.jsx)(r.code,{children:"dispatch"}),", with your API call do the following:"]}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-typescript",children:'export const takeOrder = createAppAsyncThunk("orders/take", async (id: string) => {\n return await ordersApi.takeOrder(id);\n});\n'})}),"\n",(0,n.jsxs)(r.p,{children:["Where ",(0,n.jsx)(r.code,{children:'"orders/take""'})," is name of your slice and name of your method."]}),"\n",(0,n.jsx)(r.h2,{id:"slice-handlers",children:"Slice handlers"}),"\n",(0,n.jsx)(r.p,{children:"You can handle the result inline or as I like with functions, all together it looks like this:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-typescript",children:'export const takeOrder = createAppAsyncThunk("order/take", async (id: string) => {\n return await ordersApi.takeOrder(id);\n});\n\nfunction rehydrate(state: OrderState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.orders || state, {});\n}\n\nfunction orderActionPendingHandler(state: OrderState, params: ReturnType<typeof takeOrder.pending>) {\n return newState(state, {isLoading: true, error: null});\n}\n\nfunction takeOrderFulfilledHandler(state: OrderState, params: ReturnType<typeof takeOrder.fulfilled>) {\n return newState(state, {isLoading: false, error: null, order: params.payload});\n}\n\nfunction orderActionRejectedHandler(state: OrderState, params: ReturnType<typeof takeOrder.rejected>) {\n return newState(state, {isLoading: false, error: params.error.message});\n}\n\nexport const {reducer: OrderReducer} = createSlice({\n name: "order",\n initialState: OrdersInitialState,\n extraReducers: (builder) => {\n builder\n .addCase(REHYDRATE, rehydrate)\n .addCase(takeOrder.pending, orderActionPendingHandler)\n .addCase(takeOrder.fulfilled, takeOrderFulfilledHandler)\n .addCase(takeOrder.rejected, orderActionRejectedHandler);\n },\n});\n'})}),"\n",(0,n.jsx)(r.h2,{id:"promise-result-handlers",children:"Promise result handlers"}),"\n",(0,n.jsx)(r.p,{children:"To handle promise results in pages/components (i.e. show error toast, show error in input, show success toast etc.)\nwe can handle it the following way:"}),"\n",(0,n.jsx)(r.pre,{children:(0,n.jsx)(r.code,{className:"language-typescript",children:" const onTakeOrderPress = useCallback(() => {\n handlePromiseResult(dispatch(takeOrder(orderId)), localization.common.orderHasBeenSuccessfullyTaken);\n }, [dispatch, orderId]);\n"})}),"\n",(0,n.jsxs)(r.p,{children:["To check more about ",(0,n.jsx)(r.code,{children:"handlePromiseResult"})," read more ",(0,n.jsx)(r.a,{href:"/react-native-template-strong/docs/validations",children:"here"}),"."]})]})}function u(e={}){const{wrapper:r}={...(0,a.a)(),...e.components};return r?(0,n.jsx)(r,{...e,children:(0,n.jsx)(c,{...e})}):c(e)}},1151:(e,r,t)=>{t.d(r,{Z:()=>o,a:()=>d});var n=t(7294);const a={},s=n.createContext(a);function d(e){const r=n.useContext(s);return n.useMemo((function(){return"function"==typeof e?e(r):{...r,...e}}),[r,e])}function o(e){let r;return r=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:d(e.components),n.createElement(s.Provider,{value:r},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/88cbf0c6.e087a403.js b/assets/js/88cbf0c6.e087a403.js deleted file mode 100644 index 91837623..00000000 --- a/assets/js/88cbf0c6.e087a403.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1242],{1310:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>u,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var n=r(5893),a=r(1151);const s={sidebar_position:6,title:"AsyncThunk"},d=void 0,i={unversionedId:"redux/async-thunk",id:"redux/async-thunk",title:"AsyncThunk",description:"Content",source:"@site/docs/redux/async-thunk.md",sourceDirName:"redux",slug:"/redux/async-thunk",permalink:"/react-native-template-strong/docs/redux/async-thunk",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/async-thunk.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:6,frontMatter:{sidebar_position:6,title:"AsyncThunk"},sidebar:"tutorialSidebar",previous:{title:"Slice",permalink:"/react-native-template-strong/docs/redux/slice"},next:{title:"Hooks",permalink:"/react-native-template-strong/docs/redux/hooks"}},o={},c=[{value:"Content",id:"content",level:2},{value:"Creation",id:"creation",level:2},{value:"Slice handlers",id:"slice-handlers",level:2},{value:"Promise result handlers",id:"promise-result-handlers",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",a:"a"},(0,a.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"AsyncThunks"})," as well as ",(0,n.jsx)(t.code,{children:"Slices"})," are stored together for better readability and remove need to have additional imports."]}),"\n",(0,n.jsxs)(t.p,{children:["To demonstrate how to create and use it, I will be using some ",(0,n.jsx)(t.code,{children:"Orders"})," state and ",(0,n.jsx)(t.code,{children:"ordersApi"})," as example."]}),"\n",(0,n.jsx)(t.h2,{id:"creation",children:"Creation"}),"\n",(0,n.jsxs)(t.p,{children:["Creation of ",(0,n.jsx)(t.code,{children:"AsyncThunk"})," is the same as in original documentation with usage of typed ",(0,n.jsx)(t.code,{children:"state"})," and ",(0,n.jsx)(t.code,{children:"dispatch"}),", with your API call do the following:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:'export const takeOrder = createAppAsyncThunk("orders/take", async (id: string) => {\n return await ordersApi.takeOrder(id);\n});\n'})}),"\n",(0,n.jsxs)(t.p,{children:["Where ",(0,n.jsx)(t.code,{children:'"orders/take""'})," is name of your slice and name of your method."]}),"\n",(0,n.jsx)(t.h2,{id:"slice-handlers",children:"Slice handlers"}),"\n",(0,n.jsx)(t.p,{children:"You can handle the result inline or as I like with functions, all together it looks like this:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:'export const takeOrder = createAppAsyncThunk("order/take", async (id: string) => {\n return await ordersApi.takeOrder(id);\n});\n\nfunction rehydrate(state: OrderState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.orders || state, {});\n}\n\nfunction orderActionPendingHandler(state: OrderState, params: ReturnType<typeof takeOrder.pending>) {\n return newState(state, {isLoading: true, error: null});\n}\n\nfunction takeOrderFulfilledHandler(state: OrderState, params: ReturnType<typeof takeOrder.fulfilled>) {\n return newState(state, {isLoading: false, error: null, order: params.payload});\n}\n\nfunction orderActionRejectedHandler(state: OrderState, params: ReturnType<typeof takeOrder.rejected>) {\n return newState(state, {isLoading: false, error: params.error.message});\n}\n\nexport const {reducer: OrderReducer} = createSlice({\n name: "order",\n initialState: OrdersInitialState,\n extraReducers: (builder) => {\n builder\n .addCase(REHYDRATE, rehydrate)\n .addCase(takeOrder.pending, orderActionPendingHandler)\n .addCase(takeOrder.fulfilled, takeOrderFulfilledHandler)\n .addCase(takeOrder.rejected, orderActionRejectedHandler);\n },\n});\n'})}),"\n",(0,n.jsx)(t.h2,{id:"promise-result-handlers",children:"Promise result handlers"}),"\n",(0,n.jsx)(t.p,{children:"To handle promise results in pages/components (i.e. show error toast, show error in input, show success toast etc.)\nwe can handle it the following way:"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:" const onTakeOrderPress = useCallback(() => {\n handlePromiseResult(dispatch(takeOrder(orderId)), localization.common.orderHasBeenSuccessfullyTaken);\n }, [dispatch, orderId]);\n"})}),"\n",(0,n.jsxs)(t.p,{children:["To check more about ",(0,n.jsx)(t.code,{children:"handlePromiseResult"})," read more ",(0,n.jsx)(t.a,{href:"/react-native-template-strong/docs/validations",children:"here"}),"."]})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(l,e)})):l(e)}},1151:(e,t,r)=>{r.d(t,{Zo:()=>i,ah:()=>s});var n=r(7294);const a=n.createContext({});function s(e){const t=n.useContext(a);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const d={};function i({components:e,children:t,disableParentContext:r}){let i;return i=r?"function"==typeof e?e({}):e||d:s(e),n.createElement(a.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/8a6ff679.97520d5b.js b/assets/js/8a6ff679.97520d5b.js new file mode 100644 index 00000000..ac35b9f0 --- /dev/null +++ b/assets/js/8a6ff679.97520d5b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6243],{3989:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>o,default:()=>h,frontMatter:()=>l,metadata:()=>d,toc:()=>c});var s=n(5893),i=n(1151);const l={sidebar_position:11,title:"RadioIcon"},o=void 0,d={id:"components/radio-icon",title:"RadioIcon",description:"Content",source:"@site/docs/components/radio-icon.md",sourceDirName:"components",slug:"/components/radio-icon",permalink:"/react-native-template-strong/docs/components/radio-icon",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/radio-icon.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:11,frontMatter:{sidebar_position:11,title:"RadioIcon"},sidebar:"tutorialSidebar",previous:{title:"RadioButton",permalink:"/react-native-template-strong/docs/components/radio-button"},next:{title:"EmptyView",permalink:"/react-native-template-strong/docs/components/empty-view"}},r={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function a(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Simple icon component which will be used in ",(0,s.jsx)(t.code,{children:"RadioButton"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(t.table,{children:[(0,s.jsx)(t.thead,{children:(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(t.tbody,{children:[(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"isSelected"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"boolean"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Changes the rendering icon design based on selection"})]}),(0,s.jsxs)(t.tr,{children:[(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"disabled"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:(0,s.jsx)(t.code,{children:"boolean"})}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(t.td,{style:{textAlign:"left"},children:"If disabled then not allows to select it and shows different design"})]})]})]}),"\n",(0,s.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"RadioButton.defaultProps = {\n IconComponent: RadioIcon,\n};\n"})})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>o});var s=n(7294);const i={},l=s.createContext(i);function o(e){const t=s.useContext(l);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/8a6ff679.ae244ac5.js b/assets/js/8a6ff679.ae244ac5.js deleted file mode 100644 index 6c4f97b4..00000000 --- a/assets/js/8a6ff679.ae244ac5.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6243],{3989:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>r});var i=t(5893),s=t(1151);const o={sidebar_position:11,title:"RadioIcon"},a=void 0,d={unversionedId:"components/radio-icon",id:"components/radio-icon",title:"RadioIcon",description:"Content",source:"@site/docs/components/radio-icon.md",sourceDirName:"components",slug:"/components/radio-icon",permalink:"/react-native-template-strong/docs/components/radio-icon",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/radio-icon.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:11,frontMatter:{sidebar_position:11,title:"RadioIcon"},sidebar:"tutorialSidebar",previous:{title:"RadioButton",permalink:"/react-native-template-strong/docs/components/radio-button"},next:{title:"EmptyView",permalink:"/react-native-template-strong/docs/components/empty-view"}},l={},r=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,s.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(n.p,{children:["Simple icon component which will be used in ",(0,i.jsx)(n.code,{children:"RadioButton"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{align:"left",children:"Name"}),(0,i.jsx)(n.th,{align:"left",children:"Type"}),(0,i.jsx)(n.th,{align:"left",children:"Required"}),(0,i.jsx)(n.th,{align:"left",children:"Default value"}),(0,i.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"isSelected"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{align:"left",children:"True"}),(0,i.jsx)(n.td,{align:"left",children:"-"}),(0,i.jsx)(n.td,{align:"left",children:"Changes the rendering icon design based on selection"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"disabled"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"If disabled then not allows to select it and shows different design"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"RadioButton.defaultProps = {\n IconComponent: RadioIcon,\n};\n"})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>d,ah:()=>o});var i=t(7294);const s=i.createContext({});function o(e){const n=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function d({components:e,children:n,disableParentContext:t}){let d;return d=t?"function"==typeof e?e({}):e||a:o(e),i.createElement(s.Provider,{value:d},n)}}}]); \ No newline at end of file diff --git a/assets/js/8e392f8e.c4c03b58.js b/assets/js/8e392f8e.c4c03b58.js deleted file mode 100644 index b56c380e..00000000 --- a/assets/js/8e392f8e.c4c03b58.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[880],{8273:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>l,toc:()=>c});var s=n(5893),i=n(1151);const o={sidebar_position:1,title:"Component styles"},r=void 0,l={unversionedId:"styles/component-styles",id:"styles/component-styles",title:"Component styles",description:"Content",source:"@site/docs/styles/component-styles.md",sourceDirName:"styles",slug:"/styles/component-styles",permalink:"/react-native-template-strong/docs/styles/component-styles",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/component-styles.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Component styles"},sidebar:"tutorialSidebar",previous:{title:"Native colors",permalink:"/react-native-template-strong/docs/themes/native-colors"},next:{title:"Common styles",permalink:"/react-native-template-strong/docs/styles/common-styles"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Creating",id:"creating",level:2},{value:"Merging",id:"merging",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",a:"a",pre:"pre",code:"code"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Component styles are stored withing its own file at the very bottom of it"}),"\n",(0,s.jsxs)(t.p,{children:["The conventional method of creating styles for components is by using ",(0,s.jsx)(t.a,{href:"https://reactnative.dev/docs/stylesheet",children:"StyleSheet.create"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"creating",children:"Creating"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'const styles = StyleSheet.create({\n container: {\n padding: CommonSizes.spacing.medium,\n } as ViewStyle,\n title: {\n fontWeight: "600",\n textAlign: "center",\n marginBottom: CommonSizes.spacing.extraSmall,\n } as TextStyle,\n description: {\n textAlign: "center",\n } as TextStyle,\n});\n'})}),"\n",(0,s.jsxs)(t.p,{children:["Every style has to be assigned to its proper interface (",(0,s.jsx)(t.code,{children:"ViewStyle"}),", ",(0,s.jsx)(t.code,{children:"TextStyle"}),", ",(0,s.jsx)(t.code,{children:"ImageStyle"})," etc.) to have proper types and validations by TypeScript."]}),"\n",(0,s.jsx)(t.h2,{id:"merging",children:"Merging"}),"\n",(0,s.jsx)(t.p,{children:"To merge styles simply use spread operator like so:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'const styles = StyleSheet.create({\n container: {\n ...CommonStyles.flexCenter,\n padding: CommonSizes.spacing.medium,\n } as ViewStyle,\n title: {\n ...CommonStyles.normalText,\n fontWeight: "600",\n textAlign: "center",\n marginBottom: CommonSizes.spacing.extraSmall,\n } as TextStyle,\n description: {\n ...CommonStyles.normalText,\n textAlign: "center",\n } as TextStyle,\n});\n'})}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(t.p,{children:"Use the styles constant and appropriate parameter like so:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <View style={styles.container}>\n <Text style={styles.title}>{title}</Text>\n <Text style={styles.description}>{description}</Text>\n </View>\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>o});var s=n(7294);const i=s.createContext({});function o(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||r:o(e),s.createElement(i.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/8e392f8e.c4e39364.js b/assets/js/8e392f8e.c4e39364.js new file mode 100644 index 00000000..126d51df --- /dev/null +++ b/assets/js/8e392f8e.c4e39364.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[880],{8273:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>l,toc:()=>c});var s=n(5893),o=n(1151);const i={sidebar_position:1,title:"Component styles"},r=void 0,l={id:"styles/component-styles",title:"Component styles",description:"Content",source:"@site/docs/styles/component-styles.md",sourceDirName:"styles",slug:"/styles/component-styles",permalink:"/react-native-template-strong/docs/styles/component-styles",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/styles/component-styles.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Component styles"},sidebar:"tutorialSidebar",previous:{title:"Native colors",permalink:"/react-native-template-strong/docs/themes/native-colors"},next:{title:"Common styles",permalink:"/react-native-template-strong/docs/styles/common-styles"}},a={},c=[{value:"Content",id:"content",level:2},{value:"Creating",id:"creating",level:2},{value:"Merging",id:"merging",level:2},{value:"Usage",id:"usage",level:2}];function d(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Component styles are stored withing its own file at the very bottom of it"}),"\n",(0,s.jsxs)(t.p,{children:["The conventional method of creating styles for components is by using ",(0,s.jsx)(t.a,{href:"https://reactnative.dev/docs/stylesheet",children:"StyleSheet.create"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"creating",children:"Creating"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'const styles = StyleSheet.create({\n container: {\n padding: CommonSizes.spacing.medium,\n } as ViewStyle,\n title: {\n fontWeight: "600",\n textAlign: "center",\n marginBottom: CommonSizes.spacing.extraSmall,\n } as TextStyle,\n description: {\n textAlign: "center",\n } as TextStyle,\n});\n'})}),"\n",(0,s.jsxs)(t.p,{children:["Every style has to be assigned to its proper interface (",(0,s.jsx)(t.code,{children:"ViewStyle"}),", ",(0,s.jsx)(t.code,{children:"TextStyle"}),", ",(0,s.jsx)(t.code,{children:"ImageStyle"})," etc.) to have proper types and validations by TypeScript."]}),"\n",(0,s.jsx)(t.h2,{id:"merging",children:"Merging"}),"\n",(0,s.jsx)(t.p,{children:"To merge styles simply use spread operator like so:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'const styles = StyleSheet.create({\n container: {\n ...CommonStyles.flexCenter,\n padding: CommonSizes.spacing.medium,\n } as ViewStyle,\n title: {\n ...CommonStyles.normalText,\n fontWeight: "600",\n textAlign: "center",\n marginBottom: CommonSizes.spacing.extraSmall,\n } as TextStyle,\n description: {\n ...CommonStyles.normalText,\n textAlign: "center",\n } as TextStyle,\n});\n'})}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(t.p,{children:"Use the styles constant and appropriate parameter like so:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <View style={styles.container}>\n <Text style={styles.title}>{title}</Text>\n <Text style={styles.description}>{description}</Text>\n </View>\n"})})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>l,a:()=>r});var s=n(7294);const o={},i=s.createContext(o);function r(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function l(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/91cb04fa.5e48e87e.js b/assets/js/91cb04fa.5e48e87e.js new file mode 100644 index 00000000..fc4b2fa2 --- /dev/null +++ b/assets/js/91cb04fa.5e48e87e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7290],{3291:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>f,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var o=n(5893),i=n(1151);const r={sidebar_position:5,title:"Metro config"},s=void 0,c={id:"configs/metro-config",title:"Metro config",description:"Metro config doesn't use experimentalImportSupport and inlineRequires",source:"@site/docs/configs/metro-config.md",sourceDirName:"configs",slug:"/configs/metro-config",permalink:"/react-native-template-strong/docs/configs/metro-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/metro-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Metro config"},sidebar:"tutorialSidebar",previous:{title:"Prettier config",permalink:"/react-native-template-strong/docs/configs/prettier-config"},next:{title:"Jest config",permalink:"/react-native-template-strong/docs/configs/jest-config"}},a={},d=[];function p(t){const e={code:"code",p:"p",...(0,i.a)(),...t.components};return(0,o.jsxs)(e.p,{children:["Metro config doesn't use ",(0,o.jsx)(e.code,{children:"experimentalImportSupport"})," and ",(0,o.jsx)(e.code,{children:"inlineRequires"})]})}function f(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>s});var o=n(7294);const i={},r=o.createContext(i);function s(t){const e=o.useContext(r);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:s(t.components),o.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/91cb04fa.db1aeebf.js b/assets/js/91cb04fa.db1aeebf.js deleted file mode 100644 index 7f59871f..00000000 --- a/assets/js/91cb04fa.db1aeebf.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7290],{3291:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>s,metadata:()=>c,toc:()=>d});var o=n(5893),i=n(1151);const s={sidebar_position:5,title:"Metro config"},r=void 0,c={unversionedId:"configs/metro-config",id:"configs/metro-config",title:"Metro config",description:"Metro config doesn't use experimentalImportSupport and inlineRequires",source:"@site/docs/configs/metro-config.md",sourceDirName:"configs",slug:"/configs/metro-config",permalink:"/react-native-template-strong/docs/configs/metro-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/metro-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Metro config"},sidebar:"tutorialSidebar",previous:{title:"Prettier config",permalink:"/react-native-template-strong/docs/configs/prettier-config"},next:{title:"Jest config",permalink:"/react-native-template-strong/docs/configs/jest-config"}},a={},d=[];function f(t){const e=Object.assign({p:"p",code:"code"},(0,i.ah)(),t.components);return(0,o.jsxs)(e.p,{children:["Metro config doesn't use ",(0,o.jsx)(e.code,{children:"experimentalImportSupport"})," and ",(0,o.jsx)(e.code,{children:"inlineRequires"})]})}const p=function(t={}){const{wrapper:e}=Object.assign({},(0,i.ah)(),t.components);return e?(0,o.jsx)(e,Object.assign({},t,{children:(0,o.jsx)(f,t)})):f(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>c,ah:()=>s});var o=n(7294);const i=o.createContext({});function s(t){const e=o.useContext(i);return o.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const r={};function c({components:t,children:e,disableParentContext:n}){let c;return c=n?"function"==typeof t?t({}):t||r:s(t),o.createElement(i.Provider,{value:c},e)}}}]); \ No newline at end of file diff --git a/assets/js/94173908.51a4d942.js b/assets/js/94173908.51a4d942.js new file mode 100644 index 00000000..9aa9861c --- /dev/null +++ b/assets/js/94173908.51a4d942.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6765],{7781:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=t(5893),r=t(1151);const o={sidebar_position:1,title:"Before starting"},i=void 0,a={id:"redux/before-starting",title:"Before starting",description:"Content",source:"@site/docs/redux/before-starting.md",sourceDirName:"redux",slug:"/redux/before-starting",permalink:"/react-native-template-strong/docs/redux/before-starting",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/before-starting.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Before starting"},sidebar:"tutorialSidebar",previous:{title:"Actions",permalink:"/react-native-template-strong/docs/navigation/actions"},next:{title:"Core idea",permalink:"/react-native-template-strong/docs/redux/core-idea"}},c={},d=[{value:"Content",id:"content",level:2},{value:"If you don't want to use Redux",id:"if-you-dont-want-to-use-redux",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["First read about ",(0,s.jsx)(n.a,{href:"https://redux.js.org/introduction/getting-started",children:"Redux"})," and ",(0,s.jsx)(n.a,{href:"https://redux-toolkit.js.org/introduction/getting-started",children:"Redux ToolKit"}),", about what it can do, what they offer and then come back here to move on."]}),"\n",(0,s.jsx)(n.p,{children:"It's important to know about them because they are core components of this template and knowing them can save your time\nand eliminate many questions."}),"\n",(0,s.jsx)(n.h2,{id:"if-you-dont-want-to-use-redux",children:"If you don't want to use Redux"}),"\n",(0,s.jsx)(n.p,{children:"You can simply remove it with next following steps:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Remove it from dependencies and devDependencies:"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"npm uninstall @reduxjs/toolkit react-redux redux-persist @types/react-redux\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Delete the ",(0,s.jsx)(n.code,{children:"src/core/store"})," folder"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove Redux usage from ",(0,s.jsx)(n.code,{children:"registerNavigationComponent"})]}),"\n",(0,s.jsxs)(n.li,{children:["Change ",(0,s.jsx)(n.code,{children:"Splash"})," screen navigation component initialization:"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"From:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" registerNavigationComponent(Pages.splash, Splash, true);\n"})}),"\n",(0,s.jsx)(n.p,{children:"To:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" registerNavigationComponent(Pages.splash, Splash);\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove usage of ",(0,s.jsx)(n.code,{children:"useAppSelector"})," in ",(0,s.jsx)(n.code,{children:"Splash"})," (but you have to manage now ",(0,s.jsx)(n.code,{children:"Onboarding"})," logic your way):"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n useEffect(() => {\n setTabsRoot();\n }, []);\n\n return <LoadingComponent />;\n};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove unneeded interfaces from ",(0,s.jsx)(n.code,{children:"src/types/index.ts"}),":"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export interface RehydrateAppAction extends RehydrateAction {\n payload?: RootState;\n}\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove unneeded ",(0,s.jsx)(n.code,{children:"handlePromiseResult"})," from ",(0,s.jsx)(n.code,{children:"src/common/validations/errorValidations.ts"}),":"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export function handlePromiseResult(\n promiseAction: Promise<any>,\n successMessage?: string,\n successAction?: () => void,\n processError?: (error: Error) => IErrorResult,\n setError?: (errorMessage: string) => void,\n) {\n promiseAction\n .then(unwrapResult)\n .then(() => {\n successMessage && showToast({text: successMessage});\n successAction && successAction();\n })\n .catch((handledError: Error) => {\n processError && handleErrorPostProcessing(processError(handledError), setError);\n });\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["That's it, you successfully removed ",(0,s.jsx)(n.code,{children:"redux"})," from project."]})]})}function u(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>i});var s=t(7294);const r={},o=s.createContext(r);function i(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/94173908.93646198.js b/assets/js/94173908.93646198.js deleted file mode 100644 index 667c2760..00000000 --- a/assets/js/94173908.93646198.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6765],{7781:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=t(5893),r=t(1151);const o={sidebar_position:1,title:"Before starting"},i=void 0,a={unversionedId:"redux/before-starting",id:"redux/before-starting",title:"Before starting",description:"Content",source:"@site/docs/redux/before-starting.md",sourceDirName:"redux",slug:"/redux/before-starting",permalink:"/react-native-template-strong/docs/redux/before-starting",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/before-starting.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Before starting"},sidebar:"tutorialSidebar",previous:{title:"Actions",permalink:"/react-native-template-strong/docs/navigation/actions"},next:{title:"Core idea",permalink:"/react-native-template-strong/docs/redux/core-idea"}},c={},d=[{value:"Content",id:"content",level:2},{value:"If you don't want to use Redux",id:"if-you-dont-want-to-use-redux",level:2}];function l(e){const n=Object.assign({h2:"h2",p:"p",a:"a",ul:"ul",li:"li",pre:"pre",code:"code"},(0,r.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["First read about ",(0,s.jsx)(n.a,{href:"https://redux.js.org/introduction/getting-started",children:"Redux"})," and ",(0,s.jsx)(n.a,{href:"https://redux-toolkit.js.org/introduction/getting-started",children:"Redux ToolKit"}),", about what it can do, what they offer and then come back here to move on."]}),"\n",(0,s.jsx)(n.p,{children:"It's important to know about them because they are core components of this template and knowing them can save your time\nand eliminate many questions."}),"\n",(0,s.jsx)(n.h2,{id:"if-you-dont-want-to-use-redux",children:"If you don't want to use Redux"}),"\n",(0,s.jsx)(n.p,{children:"You can simply remove it with next following steps:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:"Remove it from dependencies and devDependencies:"}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-shell",children:"npm uninstall @reduxjs/toolkit react-redux redux-persist @types/react-redux\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Delete the ",(0,s.jsx)(n.code,{children:"src/core/store"})," folder"]}),"\n",(0,s.jsxs)(n.li,{children:["Remove Redux usage from ",(0,s.jsx)(n.code,{children:"registerNavigationComponent"})]}),"\n",(0,s.jsxs)(n.li,{children:["Change ",(0,s.jsx)(n.code,{children:"Splash"})," screen navigation component initialization:"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"From:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" registerNavigationComponent(Pages.splash, Splash, true);\n"})}),"\n",(0,s.jsx)(n.p,{children:"To:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" registerNavigationComponent(Pages.splash, Splash);\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove usage of ",(0,s.jsx)(n.code,{children:"useAppSelector"})," in ",(0,s.jsx)(n.code,{children:"Splash"})," (but you have to manage now ",(0,s.jsx)(n.code,{children:"Onboarding"})," logic your way):"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n useEffect(() => {\n setTabsRoot();\n }, []);\n\n return <LoadingComponent />;\n};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove unneeded interfaces from ",(0,s.jsx)(n.code,{children:"src/types/index.ts"}),":"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export interface RehydrateAppAction extends RehydrateAction {\n payload?: RootState;\n}\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Remove unneeded ",(0,s.jsx)(n.code,{children:"handlePromiseResult"})," from ",(0,s.jsx)(n.code,{children:"src/common/validations/errorValidations.ts"}),":"]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export function handlePromiseResult(\n promiseAction: Promise<any>,\n successMessage?: string,\n successAction?: () => void,\n processError?: (error: Error) => IErrorResult,\n setError?: (errorMessage: string) => void,\n) {\n promiseAction\n .then(unwrapResult)\n .then(() => {\n successMessage && showToast({text: successMessage});\n successAction && successAction();\n })\n .catch((handledError: Error) => {\n processError && handleErrorPostProcessing(processError(handledError), setError);\n });\n}\n"})}),"\n",(0,s.jsxs)(n.p,{children:["That's it, you successfully removed ",(0,s.jsx)(n.code,{children:"redux"})," from project."]})]})}const u=function(e={}){const{wrapper:n}=Object.assign({},(0,r.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>o});var s=t(7294);const r=s.createContext({});function o(e){const n=s.useContext(r);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const i={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||i:o(e),s.createElement(r.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/9a53555d.4fd1de70.js b/assets/js/9a53555d.4fd1de70.js deleted file mode 100644 index 9f76e12d..00000000 --- a/assets/js/9a53555d.4fd1de70.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3922],{1526:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=n(5893),o=n(1151);const i={sidebar_position:1,title:"Fonts"},r=void 0,c={unversionedId:"resources/fonts",id:"resources/fonts",title:"Fonts",description:"Content",source:"@site/docs/resources/fonts.md",sourceDirName:"resources",slug:"/resources/fonts",permalink:"/react-native-template-strong/docs/resources/fonts",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/fonts.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Fonts"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/react-native-template-strong/docs/redux/hooks"},next:{title:"Images",permalink:"/react-native-template-strong/docs/resources/images"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Accessing fonts",id:"accessing-fonts",level:2},{value:"Adding fonts",id:"adding-fonts",level:2}];function a(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",ul:"ul",li:"li"},(0,o.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Currently, there is only a single font which is used, and it's ",(0,s.jsx)(t.code,{children:"system"}),".\nIt's a system font which is used on device."]}),"\n",(0,s.jsx)(t.h2,{id:"accessing-fonts",children:"Accessing fonts"}),"\n",(0,s.jsxs)(t.p,{children:["To access a font in your code, you need to use ",(0,s.jsx)(t.code,{children:"fonts.ts"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:'export const Fonts = {\n system: "System",\n};\n'})}),"\n",(0,s.jsx)(t.p,{children:"To use it you simply can create a style and use it like this:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"const styles = StyleSheet.create({\n text: {\n fontFamily: Fonts.system\n } as TextStyle\n});\n"})}),"\n",(0,s.jsxs)(t.p,{children:["There's also a default combination of font styles which is stored in ",(0,s.jsx)(t.code,{children:"commonStyles"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const CommonStyles = StyleSheet.create({\n normalText: {\n fontFamily: Fonts.system,\n fontSize: CommonSizes.font.medium,\n lineHeight: CommonSizes.lineHeight.medium,\n color: platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primaryText),\n } as TextStyle,\n});\n"})}),"\n",(0,s.jsx)(t.p,{children:"To use it you can simply call it like this:"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <Text style={CommonStyles.normalText} numberOfLines={1}>\n {localization.common.loading}\n </Text>\n"})}),"\n",(0,s.jsx)(t.h2,{id:"adding-fonts",children:"Adding fonts"}),"\n",(0,s.jsx)(t.p,{children:"To add your custom fonts you need to do the following:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Place your ",(0,s.jsx)(t.code,{children:".ttf"})," or ",(0,s.jsx)(t.code,{children:".otf"})," font/s in ",(0,s.jsx)(t.code,{children:"resources/fonts"})," folder"]}),"\n",(0,s.jsxs)(t.li,{children:["Run ",(0,s.jsx)(t.code,{children:"react-native link"}),", it will add your fonts to native resources folders"]}),"\n",(0,s.jsxs)(t.li,{children:["Add your font inside ",(0,s.jsx)(t.code,{children:"Fonts"})]}),"\n",(0,s.jsx)(t.li,{children:"Rebuild your application"}),"\n",(0,s.jsx)(t.li,{children:"Use your newly added fonts"}),"\n"]})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(a,e)})):a(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>c,ah:()=>i});var s=n(7294);const o=s.createContext({});function i(e){const t=s.useContext(o);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function c({components:e,children:t,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||r:i(e),s.createElement(o.Provider,{value:c},t)}}}]); \ No newline at end of file diff --git a/assets/js/9a53555d.80b7004c.js b/assets/js/9a53555d.80b7004c.js new file mode 100644 index 00000000..d9e8afcc --- /dev/null +++ b/assets/js/9a53555d.80b7004c.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3922],{1526:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var s=t(5893),o=t(1151);const i={sidebar_position:1,title:"Fonts"},r=void 0,c={id:"resources/fonts",title:"Fonts",description:"Content",source:"@site/docs/resources/fonts.md",sourceDirName:"resources",slug:"/resources/fonts",permalink:"/react-native-template-strong/docs/resources/fonts",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/fonts.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Fonts"},sidebar:"tutorialSidebar",previous:{title:"Hooks",permalink:"/react-native-template-strong/docs/redux/hooks"},next:{title:"Images",permalink:"/react-native-template-strong/docs/resources/images"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Accessing fonts",id:"accessing-fonts",level:2},{value:"Adding fonts",id:"adding-fonts",level:2}];function a(e){const n={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["Currently, there is only a single font which is used, and it's ",(0,s.jsx)(n.code,{children:"system"}),".\nIt's a system font which is used on device."]}),"\n",(0,s.jsx)(n.h2,{id:"accessing-fonts",children:"Accessing fonts"}),"\n",(0,s.jsxs)(n.p,{children:["To access a font in your code, you need to use ",(0,s.jsx)(n.code,{children:"fonts.ts"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'export const Fonts = {\n system: "System",\n};\n'})}),"\n",(0,s.jsx)(n.p,{children:"To use it you simply can create a style and use it like this:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"const styles = StyleSheet.create({\n text: {\n fontFamily: Fonts.system\n } as TextStyle\n});\n"})}),"\n",(0,s.jsxs)(n.p,{children:["There's also a default combination of font styles which is stored in ",(0,s.jsx)(n.code,{children:"commonStyles"}),":"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"export const CommonStyles = StyleSheet.create({\n normalText: {\n fontFamily: Fonts.system,\n fontSize: CommonSizes.font.medium,\n lineHeight: CommonSizes.lineHeight.medium,\n color: platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primaryText),\n } as TextStyle,\n});\n"})}),"\n",(0,s.jsx)(n.p,{children:"To use it you can simply call it like this:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" <Text style={CommonStyles.normalText} numberOfLines={1}>\n {localization.common.loading}\n </Text>\n"})}),"\n",(0,s.jsx)(n.h2,{id:"adding-fonts",children:"Adding fonts"}),"\n",(0,s.jsx)(n.p,{children:"To add your custom fonts you need to do the following:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Place your ",(0,s.jsx)(n.code,{children:".ttf"})," or ",(0,s.jsx)(n.code,{children:".otf"})," font/s in ",(0,s.jsx)(n.code,{children:"resources/fonts"})," folder"]}),"\n",(0,s.jsxs)(n.li,{children:["Run ",(0,s.jsx)(n.code,{children:"react-native link"}),", it will add your fonts to native resources folders"]}),"\n",(0,s.jsxs)(n.li,{children:["Add your font inside ",(0,s.jsx)(n.code,{children:"Fonts"})]}),"\n",(0,s.jsx)(n.li,{children:"Rebuild your application"}),"\n",(0,s.jsx)(n.li,{children:"Use your newly added fonts"}),"\n"]})]})}function u(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>c,a:()=>r});var s=t(7294);const o={},i=s.createContext(o);function r(e){const n=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function c(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9bbfbce4.8001f90e.js b/assets/js/9bbfbce4.8001f90e.js new file mode 100644 index 00000000..7c823e3a --- /dev/null +++ b/assets/js/9bbfbce4.8001f90e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3845],{1247:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>r,default:()=>x,frontMatter:()=>s,metadata:()=>d,toc:()=>c});var l=n(5893),i=n(1151);const s={sidebar_position:14,title:"ImageCropPickerButton"},r=void 0,d={id:"components/image-crop-picker-button",title:"ImageCropPickerButton",description:"Content",source:"@site/docs/components/image-crop-picker-button.md",sourceDirName:"components",slug:"/components/image-crop-picker-button",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/image-crop-picker-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:14,frontMatter:{sidebar_position:14,title:"ImageCropPickerButton"},sidebar:"tutorialSidebar",previous:{title:"PhotoTakingButton",permalink:"/react-native-template-strong/docs/components/photo-taking-button"},next:{title:"DatePickerOverlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay"}},o={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function a(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,i.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(t.p,{children:"Image crop picker button which provides a dialog to user to photo selection or image taking or removing existing one and also showing the result to user."}),"\n",(0,l.jsx)(t.p,{children:"If image is not selected it will show a button with icon."}),"\n",(0,l.jsxs)(t.p,{children:["Uses ",(0,l.jsx)(t.code,{children:"PhotoTakingButton"})," as button component."]}),"\n",(0,l.jsxs)(t.p,{children:["Uses ",(0,l.jsx)(t.a,{href:"https://github.com/ivpusic/react-native-image-crop-picker",children:"react-native-image-crop-picker"})," for image picking."]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onImagePicked"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"(image: CropperImage) => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"On image picked callback"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onRemoveImage"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"() => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"On remove image callback"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onPickerError"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"(error: Error) => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Callback with error when something went wrong"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"image"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageURISource or null"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Selected image which will be shown and used"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"icon"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageURISource"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageResources.camera"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Icon which will be shown when image is not present and over the selected image"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"style"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ViewStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of button"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"iconStyle"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of icon"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"imageStyle"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of image"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"disabled"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"boolean"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Is button disabled"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const [photo, setPhoto] = useState<ImageURISource | null>(null);\n\n const onRemoveImage = useCallback(() => {\n setPhoto(null);\n }, [setPhoto]);\n\n const onImagePicked = useCallback(\n (nextImage) => {\n setPhoto({uri: nextImage.path});\n },\n [setPhoto],\n );\n\n return (\n <ImageCropPickerButton \n image={photo} \n onRemoveImage={onRemoveImage} \n onImagePicked={onImagePicked} \n onPickerError={console.error} \n />\n );\n"})})]})}function x(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>d,a:()=>r});var l=n(7294);const i={},s=l.createContext(i);function r(e){const t=l.useContext(s);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function d(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),l.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9bbfbce4.c799d2c8.js b/assets/js/9bbfbce4.c799d2c8.js deleted file mode 100644 index 3a748f7a..00000000 --- a/assets/js/9bbfbce4.c799d2c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3845],{1247:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>d,contentTitle:()=>s,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>c});var i=t(5893),l=t(1151);const r={sidebar_position:14,title:"ImageCropPickerButton"},s=void 0,a={unversionedId:"components/image-crop-picker-button",id:"components/image-crop-picker-button",title:"ImageCropPickerButton",description:"Content",source:"@site/docs/components/image-crop-picker-button.md",sourceDirName:"components",slug:"/components/image-crop-picker-button",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/image-crop-picker-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:14,frontMatter:{sidebar_position:14,title:"ImageCropPickerButton"},sidebar:"tutorialSidebar",previous:{title:"PhotoTakingButton",permalink:"/react-native-template-strong/docs/components/photo-taking-button"},next:{title:"DatePickerOverlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay"}},d={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function o(e){const n=Object.assign({h2:"h2",p:"p",code:"code",a:"a",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,l.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(n.p,{children:"Image crop picker button which provides a dialog to user to photo selection or image taking or removing existing one and also showing the result to user."}),"\n",(0,i.jsx)(n.p,{children:"If image is not selected it will show a button with icon."}),"\n",(0,i.jsxs)(n.p,{children:["Uses ",(0,i.jsx)(n.code,{children:"PhotoTakingButton"})," as button component."]}),"\n",(0,i.jsxs)(n.p,{children:["Uses ",(0,i.jsx)(n.a,{href:"https://github.com/ivpusic/react-native-image-crop-picker",children:"react-native-image-crop-picker"})," for image picking."]}),"\n",(0,i.jsx)(n.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,i.jsxs)(n.table,{children:[(0,i.jsx)(n.thead,{children:(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.th,{align:"left",children:"Name"}),(0,i.jsx)(n.th,{align:"left",children:"Type"}),(0,i.jsx)(n.th,{align:"left",children:"Required"}),(0,i.jsx)(n.th,{align:"left",children:"Default value"}),(0,i.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,i.jsxs)(n.tbody,{children:[(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"onImagePicked"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"(image: CropperImage) => void"})}),(0,i.jsx)(n.td,{align:"left",children:"True"}),(0,i.jsx)(n.td,{align:"left",children:"-"}),(0,i.jsx)(n.td,{align:"left",children:"On image picked callback"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"onRemoveImage"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"() => void"})}),(0,i.jsx)(n.td,{align:"left",children:"True"}),(0,i.jsx)(n.td,{align:"left",children:"-"}),(0,i.jsx)(n.td,{align:"left",children:"On remove image callback"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"onPickerError"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"(error: Error) => void"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Callback with error when something went wrong"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"image"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ImageURISource or null"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Selected image which will be shown and used"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"icon"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ImageURISource"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ImageResources.camera"})}),(0,i.jsx)(n.td,{align:"left",children:"Icon which will be shown when image is not present and over the selected image"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"style"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ViewStyle"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Style of button"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"iconStyle"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ImageStyle"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Style of icon"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"imageStyle"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"ImageStyle"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Style of image"})]}),(0,i.jsxs)(n.tr,{children:[(0,i.jsx)(n.td,{align:"left",children:"disabled"}),(0,i.jsx)(n.td,{align:"left",children:(0,i.jsx)(n.code,{children:"boolean"})}),(0,i.jsx)(n.td,{align:"left",children:"False"}),(0,i.jsx)(n.td,{align:"left",children:"Undefined"}),(0,i.jsx)(n.td,{align:"left",children:"Is button disabled"})]})]})]}),"\n",(0,i.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" const [photo, setPhoto] = useState<ImageURISource | null>(null);\n\n const onRemoveImage = useCallback(() => {\n setPhoto(null);\n }, [setPhoto]);\n\n const onImagePicked = useCallback(\n (nextImage) => {\n setPhoto({uri: nextImage.path});\n },\n [setPhoto],\n );\n\n return (\n <ImageCropPickerButton \n image={photo} \n onRemoveImage={onRemoveImage} \n onImagePicked={onImagePicked} \n onPickerError={console.error} \n />\n );\n"})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,l.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(o,e)})):o(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>r});var i=t(7294);const l=i.createContext({});function r(e){const n=i.useContext(l);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const s={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||s:r(e),i.createElement(l.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/9cf17553.21111104.js b/assets/js/9cf17553.21111104.js new file mode 100644 index 00000000..8c6aa932 --- /dev/null +++ b/assets/js/9cf17553.21111104.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2188],{4319:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var l=n(5893),s=n(1151);const o={sidebar_position:7,title:"TouchablePlatform"},r=void 0,i={id:"components/touchable-platform",title:"TouchablePlatform",description:"Content",source:"@site/docs/components/touchable-platform.md",sourceDirName:"components",slug:"/components/touchable-platform",permalink:"/react-native-template-strong/docs/components/touchable-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/touchable-platform.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"TouchablePlatform"},sidebar:"tutorialSidebar",previous:{title:"IconPlatform",permalink:"/react-native-template-strong/docs/components/icon-platform"},next:{title:"LoadingComponent",permalink:"/react-native-template-strong/docs/components/loading-component"}},a={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(t.p,{children:["Platform-friendly touchable button which relies on ",(0,l.jsx)(t.code,{children:"Pressable"}),".\nUsed in ",(0,l.jsx)(t.code,{children:"PrimaryButton"})," and ",(0,l.jsx)(t.code,{children:"RadioButton"}),"."]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.p,{children:["Extends ",(0,l.jsx)(t.code,{children:"PressableProps"})," and additionally adds next properties"]}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"style"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ViewStyle or ViewStyle[]"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of button"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"highlightColor"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"string or OpaqueColorValue"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsxs)(t.td,{style:{textAlign:"left"},children:[(0,l.jsx)(t.code,{children:"PlatformColorsIOS.quaternarySystemFill"})," on iOS and ",(0,l.jsx)(t.code,{children:"PlatformColorsAndroid.primaryLight"})," on Android"]}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Highlight color used as ripple color on Android and when pressed background color on iOS"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <TouchablePlatform style={styles.container} onPress={onButtonPress}>\n <Text style={labelStyle} numberOfLines={1}>\n {label}\n </Text>\n </TouchablePlatform>\n"})})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var l=n(7294);const s={},o=l.createContext(s);function r(e){const t=l.useContext(o);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),l.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/9cf17553.e4334942.js b/assets/js/9cf17553.e4334942.js deleted file mode 100644 index 84365dc1..00000000 --- a/assets/js/9cf17553.e4334942.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2188],{4319:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>r,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var l=n(5893),o=n(1151);const s={sidebar_position:7,title:"TouchablePlatform"},r=void 0,a={unversionedId:"components/touchable-platform",id:"components/touchable-platform",title:"TouchablePlatform",description:"Content",source:"@site/docs/components/touchable-platform.md",sourceDirName:"components",slug:"/components/touchable-platform",permalink:"/react-native-template-strong/docs/components/touchable-platform",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/touchable-platform.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"TouchablePlatform"},sidebar:"tutorialSidebar",previous:{title:"IconPlatform",permalink:"/react-native-template-strong/docs/components/icon-platform"},next:{title:"LoadingComponent",permalink:"/react-native-template-strong/docs/components/loading-component"}},i={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,o.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(t.p,{children:["Platform-friendly touchable button which relies on ",(0,l.jsx)(t.code,{children:"Pressable"}),".\nUsed in ",(0,l.jsx)(t.code,{children:"PrimaryButton"})," and ",(0,l.jsx)(t.code,{children:"RadioButton"}),"."]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.p,{children:["Extends ",(0,l.jsx)(t.code,{children:"PressableProps"})," and additionally adds next properties"]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{align:"left",children:"Name"}),(0,l.jsx)(t.th,{align:"left",children:"Type"}),(0,l.jsx)(t.th,{align:"left",children:"Required"}),(0,l.jsx)(t.th,{align:"left",children:"Default value"}),(0,l.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{align:"left",children:"style"}),(0,l.jsx)(t.td,{align:"left",children:(0,l.jsx)(t.code,{children:"ViewStyle or ViewStyle[]"})}),(0,l.jsx)(t.td,{align:"left",children:"False"}),(0,l.jsx)(t.td,{align:"left",children:"Undefined"}),(0,l.jsx)(t.td,{align:"left",children:"Style of button"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{align:"left",children:"highlightColor"}),(0,l.jsx)(t.td,{align:"left",children:(0,l.jsx)(t.code,{children:"string or OpaqueColorValue"})}),(0,l.jsx)(t.td,{align:"left",children:"False"}),(0,l.jsxs)(t.td,{align:"left",children:[(0,l.jsx)(t.code,{children:"PlatformColorsIOS.quaternarySystemFill"})," on iOS and ",(0,l.jsx)(t.code,{children:"PlatformColorsAndroid.primaryLight"})," on Android"]}),(0,l.jsx)(t.td,{align:"left",children:"Highlight color used as ripple color on Android and when pressed background color on iOS"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <TouchablePlatform style={styles.container} onPress={onButtonPress}>\n <Text style={labelStyle} numberOfLines={1}>\n {label}\n </Text>\n </TouchablePlatform>\n"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,l.jsx)(t,Object.assign({},e,{children:(0,l.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>s});var l=n(7294);const o=l.createContext({});function s(e){const t=l.useContext(o);return l.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||r:s(e),l.createElement(o.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/9dcf257f.9880fde7.js b/assets/js/9dcf257f.9880fde7.js deleted file mode 100644 index c0cd6765..00000000 --- a/assets/js/9dcf257f.9880fde7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8886],{4739:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>s,metadata:()=>o,toc:()=>c});var r=n(5893),a=n(1151);const s={sidebar_position:3,title:"Separator"},i=void 0,o={unversionedId:"components/separator",id:"components/separator",title:"Separator",description:"Content",source:"@site/docs/components/separator.md",sourceDirName:"components",slug:"/components/separator",permalink:"/react-native-template-strong/docs/components/separator",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/separator.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Separator"},sidebar:"tutorialSidebar",previous:{title:"PrimaryTextInput",permalink:"/react-native-template-strong/docs/components/primary-text-input"},next:{title:"FlatListWrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper"}},l={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,a.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Simple separator component, primarily used with ",(0,r.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,r.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{align:"left",children:"Name"}),(0,r.jsx)(t.th,{align:"left",children:"Type"}),(0,r.jsx)(t.th,{align:"left",children:"Required"}),(0,r.jsx)(t.th,{align:"left",children:"Default value"}),(0,r.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"isFull"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"boolean"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"true"})}),(0,r.jsx)(t.td,{align:"left",children:"Should it take whole width or have horizontal margins"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n ItemSeparatorComponent: Separator,\n};\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <Separator />\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>o,ah:()=>s});var r=n(7294);const a=r.createContext({});function s(e){const t=r.useContext(a);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function o({components:e,children:t,disableParentContext:n}){let o;return o=n?"function"==typeof e?e({}):e||i:s(e),r.createElement(a.Provider,{value:o},t)}}}]); \ No newline at end of file diff --git a/assets/js/9dcf257f.aa994b3a.js b/assets/js/9dcf257f.aa994b3a.js new file mode 100644 index 00000000..a928f2f6 --- /dev/null +++ b/assets/js/9dcf257f.aa994b3a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8886],{4739:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>p,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var r=n(5893),s=n(1151);const a={sidebar_position:3,title:"Separator"},l=void 0,i={id:"components/separator",title:"Separator",description:"Content",source:"@site/docs/components/separator.md",sourceDirName:"components",slug:"/components/separator",permalink:"/react-native-template-strong/docs/components/separator",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/separator.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Separator"},sidebar:"tutorialSidebar",previous:{title:"PrimaryTextInput",permalink:"/react-native-template-strong/docs/components/primary-text-input"},next:{title:"FlatListWrapper",permalink:"/react-native-template-strong/docs/components/flat-list-wrapper"}},o={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function d(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Simple separator component, primarily used with ",(0,r.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,r.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"isFull"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"boolean"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"true"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Should it take whole width or have horizontal margins"})]})})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"FlatListWrapper.defaultProps = {\n ItemSeparatorComponent: Separator,\n};\n"})}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <Separator />\n"})})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>l});var r=n(7294);const s={},a=r.createContext(s);function l(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a09f8af8.43e005a7.js b/assets/js/a09f8af8.43e005a7.js deleted file mode 100644 index 35aef680..00000000 --- a/assets/js/a09f8af8.43e005a7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1357],{3818:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=n(5893),i=n(1151);const o={sidebar_position:1,title:"Project"},r=void 0,c={unversionedId:"structure/project",id:"structure/project",title:"Project",description:"Content",source:"@site/docs/structure/project.md",sourceDirName:"structure",slug:"/structure/project",permalink:"/react-native-template-strong/docs/structure/project",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/structure/project.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Project"},sidebar:"tutorialSidebar",previous:{title:"Getting started",permalink:"/react-native-template-strong/docs/getting-started"},next:{title:"Module",permalink:"/react-native-template-strong/docs/structure/module"}},l={},d=[{value:"Content",id:"content",level:2}];function a(e){const t=Object.assign({h2:"h2",p:"p",ul:"ul",li:"li",a:"a",code:"code"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Here you will see a brief description of each folder, to learn more about what a specific folder does continue reading documentation."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"mocks - module mocks for tests"}),"\n",(0,s.jsx)(t.li,{children:"tests - jest tests"}),"\n",(0,s.jsx)(t.li,{children:"e2e - detox tests"}),"\n",(0,s.jsxs)(t.li,{children:["patches - patches made with ",(0,s.jsx)(t.a,{href:"https://github.com/ds300/patch-package",children:"patch-package"})]}),"\n",(0,s.jsxs)(t.li,{children:["resources\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"images - images and icons"}),"\n",(0,s.jsxs)(t.li,{children:["fonts - fonts ",(0,s.jsx)(t.code,{children:".ttf"})," files"]}),"\n",(0,s.jsx)(t.li,{children:"symbols - SF symbols which can be used on iOS"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["src\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["common\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["components - common components (e.g. ",(0,s.jsx)(t.code,{children:"PrimaryButton.tsx"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["helpers - different common helpers (e.g. ",(0,s.jsx)(t.code,{children:"platformNativeColor"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["hooks - different common hooks (e.g. ",(0,s.jsx)(t.code,{children:"useDebounce"}),")"]}),"\n",(0,s.jsx)(t.li,{children:"localization - project localization"}),"\n",(0,s.jsx)(t.li,{children:"urls - URL openers/handlers"}),"\n",(0,s.jsxs)(t.li,{children:["utils - different utilities (e.g. ",(0,s.jsx)(t.code,{children:"newState"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["validations - validations, max and min length constants (e.g. ",(0,s.jsx)(t.code,{children:"phoneValidations"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["core\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"api - API related requests, DTOs"}),"\n",(0,s.jsxs)(t.li,{children:["store - ",(0,s.jsx)(t.code,{children:"redux"})," store, ",(0,s.jsx)(t.code,{children:"rootReducer"}),", ",(0,s.jsx)(t.code,{children:"systemSlice"})]}),"\n",(0,s.jsx)(t.li,{children:"theme - colors, common styles, sizes, font constants"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"modules"}),"\n",(0,s.jsxs)(t.li,{children:["navigation - pages, roots, tabs, default navigation options\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["helpers - navigation actions, different overlay and modals helpers (e.g. ",(0,s.jsx)(t.code,{children:"showDatePicker"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"types - common types and types of dependencies which are not present"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"storybook - contains storybook stories"}),"\n"]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(a,e)})):a(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>c,ah:()=>o});var s=n(7294);const i=s.createContext({});function o(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function c({components:e,children:t,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||r:o(e),s.createElement(i.Provider,{value:c},t)}}}]); \ No newline at end of file diff --git a/assets/js/a09f8af8.f5e6e3d1.js b/assets/js/a09f8af8.f5e6e3d1.js new file mode 100644 index 00000000..748aebcb --- /dev/null +++ b/assets/js/a09f8af8.f5e6e3d1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1357],{3818:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>c,toc:()=>d});var s=n(5893),i=n(1151);const o={sidebar_position:1,title:"Project"},r=void 0,c={id:"structure/project",title:"Project",description:"Content",source:"@site/docs/structure/project.md",sourceDirName:"structure",slug:"/structure/project",permalink:"/react-native-template-strong/docs/structure/project",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/structure/project.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Project"},sidebar:"tutorialSidebar",previous:{title:"Getting started",permalink:"/react-native-template-strong/docs/getting-started"},next:{title:"Module",permalink:"/react-native-template-strong/docs/structure/module"}},l={},d=[{value:"Content",id:"content",level:2}];function a(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Here you will see a brief description of each folder, to learn more about what a specific folder does continue reading documentation."}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"mocks - module mocks for tests"}),"\n",(0,s.jsx)(t.li,{children:"tests - jest tests"}),"\n",(0,s.jsx)(t.li,{children:"e2e - detox tests"}),"\n",(0,s.jsxs)(t.li,{children:["patches - patches made with ",(0,s.jsx)(t.a,{href:"https://github.com/ds300/patch-package",children:"patch-package"})]}),"\n",(0,s.jsxs)(t.li,{children:["resources","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"images - images and icons"}),"\n",(0,s.jsxs)(t.li,{children:["fonts - fonts ",(0,s.jsx)(t.code,{children:".ttf"})," files"]}),"\n",(0,s.jsx)(t.li,{children:"symbols - SF symbols which can be used on iOS"}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["src","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["common","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["components - common components (e.g. ",(0,s.jsx)(t.code,{children:"PrimaryButton.tsx"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["helpers - different common helpers (e.g. ",(0,s.jsx)(t.code,{children:"platformNativeColor"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["hooks - different common hooks (e.g. ",(0,s.jsx)(t.code,{children:"useDebounce"}),")"]}),"\n",(0,s.jsx)(t.li,{children:"localization - project localization"}),"\n",(0,s.jsx)(t.li,{children:"urls - URL openers/handlers"}),"\n",(0,s.jsxs)(t.li,{children:["utils - different utilities (e.g. ",(0,s.jsx)(t.code,{children:"newState"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["validations - validations, max and min length constants (e.g. ",(0,s.jsx)(t.code,{children:"phoneValidations"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsxs)(t.li,{children:["core","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"api - API related requests, DTOs"}),"\n",(0,s.jsxs)(t.li,{children:["store - ",(0,s.jsx)(t.code,{children:"redux"})," store, ",(0,s.jsx)(t.code,{children:"rootReducer"}),", ",(0,s.jsx)(t.code,{children:"systemSlice"})]}),"\n",(0,s.jsx)(t.li,{children:"theme - colors, common styles, sizes, font constants"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"modules"}),"\n",(0,s.jsxs)(t.li,{children:["navigation - pages, roots, tabs, default navigation options","\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["helpers - navigation actions, different overlay and modals helpers (e.g. ",(0,s.jsx)(t.code,{children:"showDatePicker"}),")"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"types - common types and types of dependencies which are not present"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:"storybook - contains storybook stories"}),"\n"]})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>r});var s=n(7294);const i={},o=s.createContext(i);function r(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a775fdf9.80e8c4c8.js b/assets/js/a775fdf9.80e8c4c8.js deleted file mode 100644 index 90c1b891..00000000 --- a/assets/js/a775fdf9.80e8c4c8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1902],{2825:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>p,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var t=r(5893),s=r(1151);const l={sidebar_position:3,title:"URL openers"},a=void 0,i={unversionedId:"utils/url-openers",id:"utils/url-openers",title:"URL openers",description:"PhoneUrl",source:"@site/docs/utils/url-openers.md",sourceDirName:"utils",slug:"/utils/url-openers",permalink:"/react-native-template-strong/docs/utils/url-openers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/url-openers.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"URL openers"},sidebar:"tutorialSidebar",previous:{title:"listHandlers",permalink:"/react-native-template-strong/docs/utils/list-handlers"},next:{title:"serializeQueryParams",permalink:"/react-native-template-strong/docs/utils/serialize-query-params"}},o={},d=[{value:"PhoneUrl",id:"phoneurl",level:2},{value:"MapUrl",id:"mapurl",level:2},{value:"EmailUrl",id:"emailurl",level:2},{value:"HttpUrl",id:"httpurl",level:2},{value:"Create your own handlers",id:"create-your-own-handlers",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",pre:"pre",code:"code",a:"a"},(0,s.ah)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"phoneurl",children:"PhoneUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens the system phone application with provided phone number."}),"\n",(0,t.jsx)(n.p,{children:"If the phone won't be provided it will return null."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new PhoneUrl("37322233444").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"mapurl",children:"MapUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens a map application or browser with latitude, longitude and address."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new MapUrl(60.59735, 27.63646, "some address").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"emailurl",children:"EmailUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens email application with a new email to provided address."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new EmailUrl("test@mail.com").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"httpurl",children:"HttpUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens browser or application to handle provided web address."}),"\n",(0,t.jsxs)(n.p,{children:["If web address doesn't start with ",(0,t.jsx)(n.code,{children:"http"})," then ",(0,t.jsx)(n.code,{children:"https://"})," will be pasted before the address."]}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new HttpUrl("google.com").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"create-your-own-handlers",children:"Create your own handlers"}),"\n",(0,t.jsxs)(n.p,{children:["All the previously described openers extend abstract ",(0,t.jsx)(n.code,{children:"BaseUrlOpener"})," which uses ",(0,t.jsx)(n.a,{href:"https://reactnative.dev/docs/linking",children:"Linking.openURL"})," under the hood when trying to open your params."]}),"\n",(0,t.jsxs)(n.p,{children:["You can create your own class extend it from ",(0,t.jsx)(n.code,{children:"BaseUrlOpener"}),", set your own ",(0,t.jsx)(n.code,{children:"constructor"})," and ",(0,t.jsx)(n.code,{children:"generateUrl"}),", like so:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'export class MyParamUrl extends BaseUrlOpener {\n //Define your parameters\n constructor(private myParam: string | null) {\n super();\n }\n\n protected generateUrl(): string | null {\n if (this.myParam == null) {\n return null;\n } else {\n //Do some action here\n return "do something";\n }\n }\n}\n'})})]})}const p=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(c,e)})):c(e)}},1151:(e,n,r)=>{r.d(n,{Zo:()=>i,ah:()=>l});var t=r(7294);const s=t.createContext({});function l(e){const n=t.useContext(s);return t.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function i({components:e,children:n,disableParentContext:r}){let i;return i=r?"function"==typeof e?e({}):e||a:l(e),t.createElement(s.Provider,{value:i},n)}}}]); \ No newline at end of file diff --git a/assets/js/a775fdf9.a062c406.js b/assets/js/a775fdf9.a062c406.js new file mode 100644 index 00000000..cb088ab2 --- /dev/null +++ b/assets/js/a775fdf9.a062c406.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1902],{2825:(e,n,r)=>{r.r(n),r.d(n,{assets:()=>o,contentTitle:()=>a,default:()=>c,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var t=r(5893),s=r(1151);const l={sidebar_position:3,title:"URL openers"},a=void 0,i={id:"utils/url-openers",title:"URL openers",description:"PhoneUrl",source:"@site/docs/utils/url-openers.md",sourceDirName:"utils",slug:"/utils/url-openers",permalink:"/react-native-template-strong/docs/utils/url-openers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/url-openers.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"URL openers"},sidebar:"tutorialSidebar",previous:{title:"listHandlers",permalink:"/react-native-template-strong/docs/utils/list-handlers"},next:{title:"serializeQueryParams",permalink:"/react-native-template-strong/docs/utils/serialize-query-params"}},o={},d=[{value:"PhoneUrl",id:"phoneurl",level:2},{value:"MapUrl",id:"mapurl",level:2},{value:"EmailUrl",id:"emailurl",level:2},{value:"HttpUrl",id:"httpurl",level:2},{value:"Create your own handlers",id:"create-your-own-handlers",level:2}];function p(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"phoneurl",children:"PhoneUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens the system phone application with provided phone number."}),"\n",(0,t.jsx)(n.p,{children:"If the phone won't be provided it will return null."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new PhoneUrl("37322233444").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"mapurl",children:"MapUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens a map application or browser with latitude, longitude and address."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new MapUrl(60.59735, 27.63646, "some address").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"emailurl",children:"EmailUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens email application with a new email to provided address."}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new EmailUrl("test@mail.com").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"httpurl",children:"HttpUrl"}),"\n",(0,t.jsx)(n.p,{children:"Opens browser or application to handle provided web address."}),"\n",(0,t.jsxs)(n.p,{children:["If web address doesn't start with ",(0,t.jsx)(n.code,{children:"http"})," then ",(0,t.jsx)(n.code,{children:"https://"})," will be pasted before the address."]}),"\n",(0,t.jsx)(n.p,{children:"Example usage:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'await new HttpUrl("google.com").open();\n'})}),"\n",(0,t.jsx)(n.h2,{id:"create-your-own-handlers",children:"Create your own handlers"}),"\n",(0,t.jsxs)(n.p,{children:["All the previously described openers extend abstract ",(0,t.jsx)(n.code,{children:"BaseUrlOpener"})," which uses ",(0,t.jsx)(n.a,{href:"https://reactnative.dev/docs/linking",children:"Linking.openURL"})," under the hood when trying to open your params."]}),"\n",(0,t.jsxs)(n.p,{children:["You can create your own class extend it from ",(0,t.jsx)(n.code,{children:"BaseUrlOpener"}),", set your own ",(0,t.jsx)(n.code,{children:"constructor"})," and ",(0,t.jsx)(n.code,{children:"generateUrl"}),", like so:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",children:'export class MyParamUrl extends BaseUrlOpener {\n //Define your parameters\n constructor(private myParam: string | null) {\n super();\n }\n\n protected generateUrl(): string | null {\n if (this.myParam == null) {\n return null;\n } else {\n //Do some action here\n return "do something";\n }\n }\n}\n'})})]})}function c(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(p,{...e})}):p(e)}},1151:(e,n,r)=>{r.d(n,{Z:()=>i,a:()=>a});var t=r(7294);const s={},l=t.createContext(s);function a(e){const n=t.useContext(l);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function i(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),t.createElement(l.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a88c1c0e.1a5f6aa9.js b/assets/js/a88c1c0e.1a5f6aa9.js deleted file mode 100644 index d0b242b8..00000000 --- a/assets/js/a88c1c0e.1a5f6aa9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7748],{295:(e,n,s)=>{s.r(n),s.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var t=s(5893),o=s(1151);const i={sidebar_position:4,title:"Vector icons"},c=void 0,r={unversionedId:"resources/vector-icons",id:"resources/vector-icons",title:"Vector icons",description:"Content",source:"@site/docs/resources/vector-icons.md",sourceDirName:"resources",slug:"/resources/vector-icons",permalink:"/react-native-template-strong/docs/resources/vector-icons",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/vector-icons.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Vector icons"},sidebar:"tutorialSidebar",previous:{title:"SF Symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols"},next:{title:"Colors",permalink:"/react-native-template-strong/docs/themes/colors"}},a={},l=[{value:"Content",id:"content",level:2},{value:"Browsing icons",id:"browsing-icons",level:2},{value:"Using icons in navigation",id:"using-icons-in-navigation",level:2},{value:"Using icons as components",id:"using-icons-as-components",level:2}];function d(e){const n=Object.assign({h2:"h2",p:"p",a:"a",pre:"pre",code:"code"},(0,o.ah)(),e.components);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,t.jsxs)(n.p,{children:["The preferable way to show icons on Android is to use ",(0,t.jsx)(n.a,{href:"https://fonts.google.com/icons",children:"Material Icons"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Usage of icons in the application is made possible by ",(0,t.jsx)(n.a,{href:"https://github.com/oblador/react-native-vector-icons",children:"react-native-vector-icons"})]}),"\n",(0,t.jsx)(n.h2,{id:"browsing-icons",children:"Browsing icons"}),"\n",(0,t.jsxs)(n.p,{children:["To take a look at them without using them you can open ",(0,t.jsx)(n.a,{href:"https://fonts.google.com/icons",children:"Material Icons"})," and browse through them."]}),"\n",(0,t.jsx)(n.p,{children:"Find an icon which suits your need and use its name."}),"\n",(0,t.jsx)(n.h2,{id:"using-icons-in-navigation",children:"Using icons in navigation"}),"\n",(0,t.jsx)(n.p,{children:"To access icons in navigation you need to get them as PNG image/source asset."}),"\n",(0,t.jsx)(n.p,{children:"It can be achieved next way:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'import Icon from "react-native-vector-icons/MaterialIcons";\n\nMain.options = {\n bottomTab: {\n icon: Icon.getImageSourceSync("person", 20),\n },\n};\n'})}),"\n",(0,t.jsxs)(n.p,{children:["To learn more check this ",(0,t.jsx)(n.a,{href:"https://github.com/oblador/react-native-vector-icons#usage-as-png-imagesource-object",children:"descriptions"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"using-icons-as-components",children:"Using icons as components"}),"\n",(0,t.jsx)(n.p,{children:"You can use it directly like so:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'import Icon from "react-native-vector-icons/MaterialIcons";\n\n<Icon name={"person"} size={30} />\n'})}),"\n",(0,t.jsx)(n.p,{children:"But it will be shown only on Android, which is not desired."}),"\n",(0,t.jsxs)(n.p,{children:["To work with both iOS and Android, there's ",(0,t.jsx)(n.a,{href:"/react-native-template-strong/docs/components/icon-platform",children:"IconPlatform"})," component,\nwhich shows SF Symbols on iOS and Material Icons on Android, it works next way:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'<IconPlatform \n iosName={SFSymbols["thermometer.sun.fill"]}\n androidName={"star-rate"}\n size={32} \n resizeMode={"contain"} \n style={styles.clauseIcon}\n/>\n'})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,o.ah)(),e.components);return n?(0,t.jsx)(n,Object.assign({},e,{children:(0,t.jsx)(d,e)})):d(e)}},1151:(e,n,s)=>{s.d(n,{Zo:()=>r,ah:()=>i});var t=s(7294);const o=t.createContext({});function i(e){const n=t.useContext(o);return t.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const c={};function r({components:e,children:n,disableParentContext:s}){let r;return r=s?"function"==typeof e?e({}):e||c:i(e),t.createElement(o.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/a88c1c0e.e18aba6f.js b/assets/js/a88c1c0e.e18aba6f.js new file mode 100644 index 00000000..0634e03d --- /dev/null +++ b/assets/js/a88c1c0e.e18aba6f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7748],{295:(e,n,o)=>{o.r(n),o.d(n,{assets:()=>a,contentTitle:()=>c,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>l});var t=o(5893),s=o(1151);const i={sidebar_position:4,title:"Vector icons"},c=void 0,r={id:"resources/vector-icons",title:"Vector icons",description:"Content",source:"@site/docs/resources/vector-icons.md",sourceDirName:"resources",slug:"/resources/vector-icons",permalink:"/react-native-template-strong/docs/resources/vector-icons",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/resources/vector-icons.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Vector icons"},sidebar:"tutorialSidebar",previous:{title:"SF Symbols",permalink:"/react-native-template-strong/docs/resources/sf-symbols"},next:{title:"Colors",permalink:"/react-native-template-strong/docs/themes/colors"}},a={},l=[{value:"Content",id:"content",level:2},{value:"Browsing icons",id:"browsing-icons",level:2},{value:"Using icons in navigation",id:"using-icons-in-navigation",level:2},{value:"Using icons as components",id:"using-icons-as-components",level:2}];function d(e){const n={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,t.jsxs)(n.p,{children:["The preferable way to show icons on Android is to use ",(0,t.jsx)(n.a,{href:"https://fonts.google.com/icons",children:"Material Icons"}),"."]}),"\n",(0,t.jsxs)(n.p,{children:["Usage of icons in the application is made possible by ",(0,t.jsx)(n.a,{href:"https://github.com/oblador/react-native-vector-icons",children:"react-native-vector-icons"})]}),"\n",(0,t.jsx)(n.h2,{id:"browsing-icons",children:"Browsing icons"}),"\n",(0,t.jsxs)(n.p,{children:["To take a look at them without using them you can open ",(0,t.jsx)(n.a,{href:"https://fonts.google.com/icons",children:"Material Icons"})," and browse through them."]}),"\n",(0,t.jsx)(n.p,{children:"Find an icon which suits your need and use its name."}),"\n",(0,t.jsx)(n.h2,{id:"using-icons-in-navigation",children:"Using icons in navigation"}),"\n",(0,t.jsx)(n.p,{children:"To access icons in navigation you need to get them as PNG image/source asset."}),"\n",(0,t.jsx)(n.p,{children:"It can be achieved next way:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'import Icon from "react-native-vector-icons/MaterialIcons";\n\nMain.options = {\n bottomTab: {\n icon: Icon.getImageSourceSync("person", 20),\n },\n};\n'})}),"\n",(0,t.jsxs)(n.p,{children:["To learn more check this ",(0,t.jsx)(n.a,{href:"https://github.com/oblador/react-native-vector-icons#usage-as-png-imagesource-object",children:"descriptions"}),"."]}),"\n",(0,t.jsx)(n.h2,{id:"using-icons-as-components",children:"Using icons as components"}),"\n",(0,t.jsx)(n.p,{children:"You can use it directly like so:"}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'import Icon from "react-native-vector-icons/MaterialIcons";\n\n<Icon name={"person"} size={30} />\n'})}),"\n",(0,t.jsx)(n.p,{children:"But it will be shown only on Android, which is not desired."}),"\n",(0,t.jsxs)(n.p,{children:["To work with both iOS and Android, there's ",(0,t.jsx)(n.a,{href:"/react-native-template-strong/docs/components/icon-platform",children:"IconPlatform"})," component,\nwhich shows SF Symbols on iOS and Material Icons on Android, it works next way:"]}),"\n",(0,t.jsx)(n.pre,{children:(0,t.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'<IconPlatform \n iosName={SFSymbols["thermometer.sun.fill"]}\n androidName={"star-rate"}\n size={32} \n resizeMode={"contain"} \n style={styles.clauseIcon}\n/>\n'})})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,t.jsx)(n,{...e,children:(0,t.jsx)(d,{...e})}):d(e)}},1151:(e,n,o)=>{o.d(n,{Z:()=>r,a:()=>c});var t=o(7294);const s={},i=t.createContext(s);function c(e){const n=t.useContext(i);return t.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:c(e.components),t.createElement(i.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.5018fc8a.js b/assets/js/a94703ab.5018fc8a.js new file mode 100644 index 00000000..f2f44961 --- /dev/null +++ b/assets/js/a94703ab.5018fc8a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(512),i=n(833),s=n(5281),l=n(2802),r=n(1116),c=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),A=n(3692),L=n(2389);function y(e){let{collapsed:t,categoryLabel:n,onClick:a}=e;return(0,b.jsx)("button",{"aria-label":t?(0,c.I)({id:"theme.DocSidebarItem.expandCategoryAriaLabel",message:"Expand sidebar category '{label}'",description:"The ARIA label to expand the sidebar category"},{label:n}):(0,c.I)({id:"theme.DocSidebarItem.collapseCategoryAriaLabel",message:"Collapse sidebar category '{label}'",description:"The ARIA label to collapse the sidebar category"},{label:n}),type:"button",className:"clean-btn menu__caret",onClick:a})}function w(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,L.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:w}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),w(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(A.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(y,{collapsed:g,categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function R(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(A.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const W={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[W.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(w,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(R,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(3163);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(512),o=n(5999),i=n(2503),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/a94703ab.cdc6a653.js b/assets/js/a94703ab.cdc6a653.js deleted file mode 100644 index 3aab8661..00000000 --- a/assets/js/a94703ab.cdc6a653.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4368],{2674:(e,t,n)=>{n.r(t),n.d(t,{default:()=>be});var a=n(7294),o=n(6010),i=n(833),s=n(5281),l=n(2802),r=n(1116),c=n(5999),d=n(2466),u=n(5936);const m={backToTopButton:"backToTopButton_sjWU",backToTopButtonShow:"backToTopButtonShow_xfvO"};var b=n(5893);function h(){const{shown:e,scrollToTop:t}=function(e){let{threshold:t}=e;const[n,o]=(0,a.useState)(!1),i=(0,a.useRef)(!1),{startScroll:s,cancelScroll:l}=(0,d.Ct)();return(0,d.RF)(((e,n)=>{let{scrollY:a}=e;const s=n?.scrollY;s&&(i.current?i.current=!1:a>=s?(l(),o(!1)):a<t?o(!1):a+window.innerHeight<document.documentElement.scrollHeight&&o(!0))})),(0,u.S)((e=>{e.location.hash&&(i.current=!0,o(!1))})),{shown:n,scrollToTop:()=>s(0)}}({threshold:300});return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.BackToTopButton.buttonAriaLabel",message:"Scroll back to top",description:"The ARIA label for the back to top button"}),className:(0,o.Z)("clean-btn",s.k.common.backToTopButton,m.backToTopButton,e&&m.backToTopButtonShow),type:"button",onClick:t})}var p=n(1442),x=n(6550),f=n(7524),j=n(6668),k=n(1327);function _(e){return(0,b.jsx)("svg",{width:"20",height:"20","aria-hidden":"true",...e,children:(0,b.jsxs)("g",{fill:"#7a7a7a",children:[(0,b.jsx)("path",{d:"M9.992 10.023c0 .2-.062.399-.172.547l-4.996 7.492a.982.982 0 01-.828.454H1c-.55 0-1-.453-1-1 0-.2.059-.403.168-.551l4.629-6.942L.168 3.078A.939.939 0 010 2.528c0-.548.45-.997 1-.997h2.996c.352 0 .649.18.828.45L9.82 9.472c.11.148.172.347.172.55zm0 0"}),(0,b.jsx)("path",{d:"M19.98 10.023c0 .2-.058.399-.168.547l-4.996 7.492a.987.987 0 01-.828.454h-3c-.547 0-.996-.453-.996-1 0-.2.059-.403.168-.551l4.625-6.942-4.625-6.945a.939.939 0 01-.168-.55 1 1 0 01.996-.997h3c.348 0 .649.18.828.45l4.996 7.492c.11.148.168.347.168.55zm0 0"})]})})}const v={collapseSidebarButton:"collapseSidebarButton_PEFL",collapseSidebarButtonIcon:"collapseSidebarButtonIcon_kv0_"};function g(e){let{onClick:t}=e;return(0,b.jsx)("button",{type:"button",title:(0,c.I)({id:"theme.docs.sidebar.collapseButtonTitle",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.collapseButtonAriaLabel",message:"Collapse sidebar",description:"The title attribute for collapse button of doc sidebar"}),className:(0,o.Z)("button button--secondary button--outline",v.collapseSidebarButton),onClick:t,children:(0,b.jsx)(_,{className:v.collapseSidebarButtonIcon})})}var C=n(9689),S=n(902);const I=Symbol("EmptyContext"),N=a.createContext(I);function T(e){let{children:t}=e;const[n,o]=(0,a.useState)(null),i=(0,a.useMemo)((()=>({expandedItem:n,setExpandedItem:o})),[n]);return(0,b.jsx)(N.Provider,{value:i,children:t})}var B=n(6043),Z=n(8596),L=n(9960),w=n(2389);function A(e){let{categoryLabel:t,onClick:n}=e;return(0,b.jsx)("button",{"aria-label":(0,c.I)({id:"theme.DocSidebarItem.toggleCollapsedCategoryAriaLabel",message:"Toggle the collapsible sidebar category '{label}'",description:"The ARIA label to toggle the collapsible sidebar category"},{label:t}),type:"button",className:"clean-btn menu__caret",onClick:n})}function y(e){let{item:t,onItemClick:n,activePath:i,level:r,index:c,...d}=e;const{items:u,label:m,collapsible:h,className:p,href:x}=t,{docs:{sidebar:{autoCollapseCategories:f}}}=(0,j.L)(),k=function(e){const t=(0,w.Z)();return(0,a.useMemo)((()=>e.href&&!e.linkUnlisted?e.href:!t&&e.collapsible?(0,l.LM)(e):void 0),[e,t])}(t),_=(0,l._F)(t,i),v=(0,Z.Mg)(x,i),{collapsed:g,setCollapsed:C}=(0,B.u)({initialState:()=>!!h&&(!_&&t.collapsed)}),{expandedItem:T,setExpandedItem:y}=function(){const e=(0,a.useContext)(N);if(e===I)throw new S.i6("DocSidebarItemsExpandedStateProvider");return e}(),E=function(e){void 0===e&&(e=!g),y(e?null:c),C(e)};return function(e){let{isActive:t,collapsed:n,updateCollapsed:o}=e;const i=(0,S.D9)(t);(0,a.useEffect)((()=>{t&&!i&&n&&o(!1)}),[t,i,n,o])}({isActive:_,collapsed:g,updateCollapsed:E}),(0,a.useEffect)((()=>{h&&null!=T&&T!==c&&f&&C(!0)}),[h,T,c,C,f]),(0,b.jsxs)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemCategory,s.k.docs.docSidebarItemCategoryLevel(r),"menu__list-item",{"menu__list-item--collapsed":g},p),children:[(0,b.jsxs)("div",{className:(0,o.Z)("menu__list-item-collapsible",{"menu__list-item-collapsible--active":v}),children:[(0,b.jsx)(L.Z,{className:(0,o.Z)("menu__link",{"menu__link--sublist":h,"menu__link--sublist-caret":!x&&h,"menu__link--active":_}),onClick:h?e=>{n?.(t),x?E(!1):(e.preventDefault(),E())}:()=>{n?.(t)},"aria-current":v?"page":void 0,"aria-expanded":h?!g:void 0,href:h?k??"#":k,...d,children:m}),x&&h&&(0,b.jsx)(A,{categoryLabel:m,onClick:e=>{e.preventDefault(),E()}})]}),(0,b.jsx)(B.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:g,children:(0,b.jsx)(V,{items:u,tabIndex:g?-1:0,onItemClick:n,activePath:i,level:r+1})})]})}var E=n(3919),H=n(9471);const M={menuExternalLink:"menuExternalLink_NmtK"};function W(e){let{item:t,onItemClick:n,activePath:a,level:i,index:r,...c}=e;const{href:d,label:u,className:m,autoAddBaseUrl:h}=t,p=(0,l._F)(t,a),x=(0,E.Z)(d);return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(i),"menu__list-item",m),children:(0,b.jsxs)(L.Z,{className:(0,o.Z)("menu__link",!x&&M.menuExternalLink,{"menu__link--active":p}),autoAddBaseUrl:h,"aria-current":p?"page":void 0,to:d,...x&&{onClick:n?()=>n(t):void 0},...c,children:[u,!x&&(0,b.jsx)(H.Z,{})]})},u)}const R={menuHtmlItem:"menuHtmlItem_M9Kj"};function F(e){let{item:t,level:n,index:a}=e;const{value:i,defaultStyle:l,className:r}=t;return(0,b.jsx)("li",{className:(0,o.Z)(s.k.docs.docSidebarItemLink,s.k.docs.docSidebarItemLinkLevel(n),l&&[R.menuHtmlItem,"menu__list-item"],r),dangerouslySetInnerHTML:{__html:i}},a)}function P(e){let{item:t,...n}=e;switch(t.type){case"category":return(0,b.jsx)(y,{item:t,...n});case"html":return(0,b.jsx)(F,{item:t,...n});default:return(0,b.jsx)(W,{item:t,...n})}}function D(e){let{items:t,...n}=e;const a=(0,l.f)(t,n.activePath);return(0,b.jsx)(T,{children:a.map(((e,t)=>(0,b.jsx)(P,{item:e,index:t,...n},t)))})}const V=(0,a.memo)(D),U={menu:"menu_SIkG",menuWithAnnouncementBar:"menuWithAnnouncementBar_GW3s"};function K(e){let{path:t,sidebar:n,className:i}=e;const l=function(){const{isActive:e}=(0,C.nT)(),[t,n]=(0,a.useState)(e);return(0,d.RF)((t=>{let{scrollY:a}=t;e&&n(0===a)}),[e]),e&&t}();return(0,b.jsx)("nav",{"aria-label":(0,c.I)({id:"theme.docs.sidebar.navAriaLabel",message:"Docs sidebar",description:"The ARIA label for the sidebar navigation"}),className:(0,o.Z)("menu thin-scrollbar",U.menu,l&&U.menuWithAnnouncementBar,i),children:(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:n,activePath:t,level:1})})})}const Y="sidebar_njMd",z="sidebarWithHideableNavbar_wUlq",G="sidebarHidden_VK0M",O="sidebarLogo_isFc";function q(e){let{path:t,sidebar:n,onCollapse:a,isHidden:i}=e;const{navbar:{hideOnScroll:s},docs:{sidebar:{hideable:l}}}=(0,j.L)();return(0,b.jsxs)("div",{className:(0,o.Z)(Y,s&&z,i&&G),children:[s&&(0,b.jsx)(k.Z,{tabIndex:-1,className:O}),(0,b.jsx)(K,{path:t,sidebar:n}),l&&(0,b.jsx)(g,{onClick:a})]})}const J=a.memo(q);var Q=n(3102),X=n(3163);const $=e=>{let{sidebar:t,path:n}=e;const a=(0,X.e)();return(0,b.jsx)("ul",{className:(0,o.Z)(s.k.docs.docSidebarMenu,"menu__list"),children:(0,b.jsx)(V,{items:t,activePath:n,onItemClick:e=>{"category"===e.type&&e.href&&a.toggle(),"link"===e.type&&a.toggle()},level:1})})};function ee(e){return(0,b.jsx)(Q.Zo,{component:$,props:e})}const te=a.memo(ee);function ne(e){const t=(0,f.i)(),n="desktop"===t||"ssr"===t,a="mobile"===t;return(0,b.jsxs)(b.Fragment,{children:[n&&(0,b.jsx)(J,{...e}),a&&(0,b.jsx)(te,{...e})]})}const ae={expandButton:"expandButton_TmdG",expandButtonIcon:"expandButtonIcon_i1dp"};function oe(e){let{toggleSidebar:t}=e;return(0,b.jsx)("div",{className:ae.expandButton,title:(0,c.I)({id:"theme.docs.sidebar.expandButtonTitle",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),"aria-label":(0,c.I)({id:"theme.docs.sidebar.expandButtonAriaLabel",message:"Expand sidebar",description:"The ARIA label and title attribute for expand button of doc sidebar"}),tabIndex:0,role:"button",onKeyDown:t,onClick:t,children:(0,b.jsx)(_,{className:ae.expandButtonIcon})})}const ie={docSidebarContainer:"docSidebarContainer_YfHR",docSidebarContainerHidden:"docSidebarContainerHidden_DPk8",sidebarViewport:"sidebarViewport_aRkj"};function se(e){let{children:t}=e;const n=(0,r.V)();return(0,b.jsx)(a.Fragment,{children:t},n?.name??"noSidebar")}function le(e){let{sidebar:t,hiddenSidebarContainer:n,setHiddenSidebarContainer:i}=e;const{pathname:l}=(0,x.TH)(),[r,c]=(0,a.useState)(!1),d=(0,a.useCallback)((()=>{r&&c(!1),!r&&(0,p.n)()&&c(!0),i((e=>!e))}),[i,r]);return(0,b.jsx)("aside",{className:(0,o.Z)(s.k.docs.docSidebarContainer,ie.docSidebarContainer,n&&ie.docSidebarContainerHidden),onTransitionEnd:e=>{e.currentTarget.classList.contains(ie.docSidebarContainer)&&n&&c(!0)},children:(0,b.jsx)(se,{children:(0,b.jsxs)("div",{className:(0,o.Z)(ie.sidebarViewport,r&&ie.sidebarViewportHidden),children:[(0,b.jsx)(ne,{sidebar:t,path:l,onCollapse:d,isHidden:r}),r&&(0,b.jsx)(oe,{toggleSidebar:d})]})})})}const re={docMainContainer:"docMainContainer_TBSr",docMainContainerEnhanced:"docMainContainerEnhanced_lQrH",docItemWrapperEnhanced:"docItemWrapperEnhanced_JWYK"};function ce(e){let{hiddenSidebarContainer:t,children:n}=e;const a=(0,r.V)();return(0,b.jsx)("main",{className:(0,o.Z)(re.docMainContainer,(t||!a)&&re.docMainContainerEnhanced),children:(0,b.jsx)("div",{className:(0,o.Z)("container padding-top--md padding-bottom--lg",re.docItemWrapper,t&&re.docItemWrapperEnhanced),children:n})})}const de={docRoot:"docRoot_UBD9",docsWrapper:"docsWrapper_hBAB"};function ue(e){let{children:t}=e;const n=(0,r.V)(),[o,i]=(0,a.useState)(!1);return(0,b.jsxs)("div",{className:de.docsWrapper,children:[(0,b.jsx)(h,{}),(0,b.jsxs)("div",{className:de.docRoot,children:[n&&(0,b.jsx)(le,{sidebar:n.items,hiddenSidebarContainer:o,setHiddenSidebarContainer:i}),(0,b.jsx)(ce,{hiddenSidebarContainer:o,children:t})]})]})}var me=n(5658);function be(e){const t=(0,l.SN)(e);if(!t)return(0,b.jsx)(me.Z,{});const{docElement:n,sidebarName:a,sidebarItems:c}=t;return(0,b.jsx)(i.FG,{className:(0,o.Z)(s.k.page.docsDocPage),children:(0,b.jsx)(r.b,{name:a,items:c,children:(0,b.jsx)(ue,{children:n})})})}},5658:(e,t,n)=>{n.d(t,{Z:()=>l});n(7294);var a=n(6010),o=n(5999),i=n(2503),s=n(5893);function l(e){let{className:t}=e;return(0,s.jsx)("main",{className:(0,a.Z)("container margin-vert--xl",t),children:(0,s.jsx)("div",{className:"row",children:(0,s.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,s.jsx)(i.Z,{as:"h1",className:"hero__title",children:(0,s.jsx)(o.Z,{id:"theme.NotFound.title",description:"The title of the 404 page",children:"Page Not Found"})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p1",description:"The first paragraph of the 404 page",children:"We could not find what you were looking for."})}),(0,s.jsx)("p",{children:(0,s.jsx)(o.Z,{id:"theme.NotFound.p2",description:"The 2nd paragraph of the 404 page",children:"Please contact the owner of the site that linked you to the original URL and let them know their link is broken."})})]})})})}}}]); \ No newline at end of file diff --git a/assets/js/aae46502.1f20f75a.js b/assets/js/aae46502.1f20f75a.js new file mode 100644 index 00000000..4cb14ec9 --- /dev/null +++ b/assets/js/aae46502.1f20f75a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5565],{2590:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>a,metadata:()=>i,toc:()=>d});var s=n(5893),r=n(1151);const a={sidebar_position:4,title:"useBackHandler"},o=void 0,i={id:"hooks/use-back-handler",title:"useBackHandler",description:"Content",source:"@site/docs/hooks/use-back-handler.md",sourceDirName:"hooks",slug:"/hooks/use-back-handler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-back-handler.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"useBackHandler"},sidebar:"tutorialSidebar",previous:{title:"useEventRegister",permalink:"/react-native-template-strong/docs/hooks/use-event-register"},next:{title:"usePrevious",permalink:"/react-native-template-strong/docs/hooks/use-previous"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function l(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Creates a simple ",(0,s.jsx)(t.code,{children:"hardwareBackPress"})," listener with provided ",(0,s.jsx)(t.code,{children:"handler"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const backHandler = useCallback(() => {\n //Do something here\n return true;\n }, []);\n\n useBackHandler(backHandler);\n"})})]})}function u(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var s=n(7294);const r={},a=s.createContext(r);function o(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/aae46502.ff8caf4a.js b/assets/js/aae46502.ff8caf4a.js deleted file mode 100644 index 90882c14..00000000 --- a/assets/js/aae46502.ff8caf4a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5565],{2590:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>u,frontMatter:()=>r,metadata:()=>i,toc:()=>d});var n=s(5893),a=s(1151);const r={sidebar_position:4,title:"useBackHandler"},o=void 0,i={unversionedId:"hooks/use-back-handler",id:"hooks/use-back-handler",title:"useBackHandler",description:"Content",source:"@site/docs/hooks/use-back-handler.md",sourceDirName:"hooks",slug:"/hooks/use-back-handler",permalink:"/react-native-template-strong/docs/hooks/use-back-handler",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/hooks/use-back-handler.md",tags:[],version:"current",lastUpdatedAt:1633405147,formattedLastUpdatedAt:"Oct 5, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"useBackHandler"},sidebar:"tutorialSidebar",previous:{title:"useEventRegister",permalink:"/react-native-template-strong/docs/hooks/use-event-register"},next:{title:"usePrevious",permalink:"/react-native-template-strong/docs/hooks/use-previous"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,a.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Creates a simple ",(0,n.jsx)(t.code,{children:"hardwareBackPress"})," listener with provided ",(0,n.jsx)(t.code,{children:"handler"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const backHandler = useCallback(() => {\n //Do something here\n return true;\n }, []);\n\n useBackHandler(backHandler);\n"})})]})}const u=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(l,e)})):l(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>i,ah:()=>r});var n=s(7294);const a=n.createContext({});function r(e){const t=n.useContext(a);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function i({components:e,children:t,disableParentContext:s}){let i;return i=s?"function"==typeof e?e({}):e||o:r(e),n.createElement(a.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/ae8ecedf.433c66a5.js b/assets/js/ae8ecedf.433c66a5.js new file mode 100644 index 00000000..879472e5 --- /dev/null +++ b/assets/js/ae8ecedf.433c66a5.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4769],{4227:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>f});var n=o(5893),i=o(1151);const s={sidebar_position:7,title:"Detox config"},c=void 0,r={id:"configs/detox-config",title:"Detox config",description:"Detox config is configured to work with TypeScript.",source:"@site/docs/configs/detox-config.md",sourceDirName:"configs",slug:"/configs/detox-config",permalink:"/react-native-template-strong/docs/configs/detox-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/detox-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Detox config"},sidebar:"tutorialSidebar",previous:{title:"Jest config",permalink:"/react-native-template-strong/docs/configs/jest-config"},next:{title:"Babel config",permalink:"/react-native-template-strong/docs/configs/babel-config"}},a={},f=[];function d(t){const e={p:"p",...(0,i.a)(),...t.components};return(0,n.jsx)(e.p,{children:"Detox config is configured to work with TypeScript."})}function p(t={}){const{wrapper:e}={...(0,i.a)(),...t.components};return e?(0,n.jsx)(e,{...t,children:(0,n.jsx)(d,{...t})}):d(t)}},1151:(t,e,o)=>{o.d(e,{Z:()=>r,a:()=>c});var n=o(7294);const i={},s=n.createContext(i);function c(t){const e=n.useContext(s);return n.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(i):t.components||i:c(t.components),n.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/ae8ecedf.af5ff458.js b/assets/js/ae8ecedf.af5ff458.js deleted file mode 100644 index 388385b4..00000000 --- a/assets/js/ae8ecedf.af5ff458.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4769],{4227:(t,e,o)=>{o.r(e),o.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var n=o(5893),i=o(1151);const s={sidebar_position:7,title:"Detox config"},c=void 0,r={unversionedId:"configs/detox-config",id:"configs/detox-config",title:"Detox config",description:"Detox config is configured to work with TypeScript.",source:"@site/docs/configs/detox-config.md",sourceDirName:"configs",slug:"/configs/detox-config",permalink:"/react-native-template-strong/docs/configs/detox-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/detox-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Detox config"},sidebar:"tutorialSidebar",previous:{title:"Jest config",permalink:"/react-native-template-strong/docs/configs/jest-config"},next:{title:"Babel config",permalink:"/react-native-template-strong/docs/configs/babel-config"}},a={},d=[];function f(t){const e=Object.assign({p:"p"},(0,i.ah)(),t.components);return(0,n.jsx)(e.p,{children:"Detox config is configured to work with TypeScript."})}const g=function(t={}){const{wrapper:e}=Object.assign({},(0,i.ah)(),t.components);return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(f,t)})):f(t)}},1151:(t,e,o)=>{o.d(e,{Zo:()=>r,ah:()=>s});var n=o(7294);const i=n.createContext({});function s(t){const e=n.useContext(i);return n.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const c={};function r({components:t,children:e,disableParentContext:o}){let r;return r=o?"function"==typeof t?t({}):t||c:s(t),n.createElement(i.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/b1ef8e0a.4a06a167.js b/assets/js/b1ef8e0a.4a06a167.js new file mode 100644 index 00000000..508becba --- /dev/null +++ b/assets/js/b1ef8e0a.4a06a167.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9702],{1297:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var i=t(5893),a=t(1151);const s={sidebar_position:3,title:"Pages"},o=void 0,r={id:"navigation/pages",title:"Pages",description:"Content",source:"@site/docs/navigation/pages.md",sourceDirName:"navigation",slug:"/navigation/pages",permalink:"/react-native-template-strong/docs/navigation/pages",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/pages.md",tags:[],version:"current",lastUpdatedAt:1688639826,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Pages"},sidebar:"tutorialSidebar",previous:{title:"Default options",permalink:"/react-native-template-strong/docs/navigation/default-options"},next:{title:"Roots",permalink:"/react-native-template-strong/docs/navigation/roots"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Adding pages",id:"adding-pages",level:2},{value:"Registering pages",id:"registering-pages",level:2},{value:"Using pages",id:"using-pages",level:2}];function l(e){const n={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(n.p,{children:["Pages constants are located in ",(0,i.jsx)(n.code,{children:"src/navigation/pages.ts"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export const Pages = {\n storybook: {\n id: "STORYBOOK",\n name: "Storybook",\n },\n splash: {\n id: "SPLASH_SCREEN",\n name: "SplashScreen",\n },\n onboarding: {\n id: "ONBOARDING_SCREEN",\n name: "OnboardingScreen",\n },\n toast: {\n id: "TOAST",\n name: "ToastOverlay",\n },\n datePicker: {\n id: "DATE_PICKER",\n name: "DatePickerOverlay",\n },\n tabs: {\n id: "BOTTOM_TABS",\n name: "BottomTabs",\n },\n main: {\n id: "MAIN_SCREEN",\n name: "MainScreen",\n },\n search: {\n id: "SEARCH_SCREEN",\n name: "SearchScreen",\n },\n settings: {\n id: "SETTINGS_SCREEN",\n name: "SettingsScreen",\n },\n};\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Pages are defined as the object which contains page names as parameters which are objects with ",(0,i.jsx)(n.code,{children:"name"})," and ",(0,i.jsx)(n.code,{children:"id"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Here besides pages itself you add modals, overlays and other components which will be registered in navigation (i.e. ",(0,i.jsx)(n.code,{children:"registerNavigationComponent"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"registerNavigationComponent"})," - shorthand function to simplify registration of a page."]}),"\n",(0,i.jsxs)(n.p,{children:["Such examples are ",(0,i.jsx)(n.code,{children:"toast"})," and ",(0,i.jsx)(n.code,{children:"datePicker"})," properties of ",(0,i.jsx)(n.code,{children:"Pages"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"adding-pages",children:"Adding pages"}),"\n",(0,i.jsxs)(n.p,{children:["To add a page, simply add your own property in ",(0,i.jsx)(n.code,{children:"Pages"})," with ",(0,i.jsx)(n.code,{children:"id"})," and ",(0,i.jsx)(n.code,{children:"name"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"registering-pages",children:"Registering pages"}),"\n",(0,i.jsxs)(n.p,{children:["All the pages are being registered in ",(0,i.jsx)(n.code,{children:"src/navigation/navigation.ts"}),"'s ",(0,i.jsx)(n.code,{children:"registerComponents"})," function which is being called at initialization of application."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:"export function registerComponents() {\n if (__DEV__) {\n registerNavigationComponent(Pages.storybook, StorybookUIRoot);\n }\n registerNavigationComponent(Pages.splash, Splash, true);\n registerNavigationComponent(Pages.onboarding, Onboarding);\n registerNavigationComponent(Pages.main, Main);\n registerNavigationComponent(Pages.search, Search);\n registerNavigationComponent(Pages.settings, Settings);\n registerNavigationComponent(Pages.toast, ToastOverlay);\n registerNavigationComponent(Pages.datePicker, DatePickerOverlay);\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["If your page or component is going to be a simple component which won't be communication with ",(0,i.jsx)(n.code,{children:"redux"})," then you can simply register it the next way:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.yourPage, YourPage);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Otherwise, add a third parameter with ",(0,i.jsx)(n.code,{children:"true"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.yourPage, YourPage, true);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The communication with ",(0,i.jsx)(n.code,{children:"redux"})," and usage will be explained later."]}),"\n",(0,i.jsx)(n.h2,{id:"using-pages",children:"Using pages"}),"\n",(0,i.jsx)(n.p,{children:"Create a simple function component like so and describe its options if needed:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export const YourPage: NavigationFunctionComponent = (): JSX.Element => {\n return <ScrollView contentInsetAdjustmentBehavior={"automatic"} style={CommonStyles.flex1} />;\n};\n\nYourPage.options = {\n topBar: {\n largeTitle: {\n visible: true,\n },\n searchBar: {\n visible: false,\n },\n title: {\n text: localization.pages.yourPage,\n },\n },\n};\n'})}),"\n",(0,i.jsx)(n.admonition,{title:"Tip",type:"tip",children:(0,i.jsxs)(n.p,{children:["Try to use ",(0,i.jsx)(n.code,{children:"ScrollView"})," as your parent component in order to have the best behavior on iOS."]})})]})}function g(e={}){const{wrapper:n}={...(0,a.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>r,a:()=>o});var i=t(7294);const a={},s=i.createContext(a);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function r(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b1ef8e0a.fbab38ac.js b/assets/js/b1ef8e0a.fbab38ac.js deleted file mode 100644 index 0dc09fb3..00000000 --- a/assets/js/b1ef8e0a.fbab38ac.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9702],{1297:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>l,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var i=t(5893),a=t(1151);const s={sidebar_position:3,title:"Pages"},o=void 0,r={unversionedId:"navigation/pages",id:"navigation/pages",title:"Pages",description:"Content",source:"@site/docs/navigation/pages.md",sourceDirName:"navigation",slug:"/navigation/pages",permalink:"/react-native-template-strong/docs/navigation/pages",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/pages.md",tags:[],version:"current",lastUpdatedAt:1688639826,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Pages"},sidebar:"tutorialSidebar",previous:{title:"Default options",permalink:"/react-native-template-strong/docs/navigation/default-options"},next:{title:"Roots",permalink:"/react-native-template-strong/docs/navigation/roots"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Adding pages",id:"adding-pages",level:2},{value:"Registering pages",id:"registering-pages",level:2},{value:"Using pages",id:"using-pages",level:2}];function g(e){const n=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",admonition:"admonition"},(0,a.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(n.p,{children:["Pages constants are located in ",(0,i.jsx)(n.code,{children:"src/navigation/pages.ts"}),"."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'export const Pages = {\n storybook: {\n id: "STORYBOOK",\n name: "Storybook",\n },\n splash: {\n id: "SPLASH_SCREEN",\n name: "SplashScreen",\n },\n onboarding: {\n id: "ONBOARDING_SCREEN",\n name: "OnboardingScreen",\n },\n toast: {\n id: "TOAST",\n name: "ToastOverlay",\n },\n datePicker: {\n id: "DATE_PICKER",\n name: "DatePickerOverlay",\n },\n tabs: {\n id: "BOTTOM_TABS",\n name: "BottomTabs",\n },\n main: {\n id: "MAIN_SCREEN",\n name: "MainScreen",\n },\n search: {\n id: "SEARCH_SCREEN",\n name: "SearchScreen",\n },\n settings: {\n id: "SETTINGS_SCREEN",\n name: "SettingsScreen",\n },\n};\n'})}),"\n",(0,i.jsxs)(n.p,{children:["Pages are defined as the object which contains page names as parameters which are objects with ",(0,i.jsx)(n.code,{children:"name"})," and ",(0,i.jsx)(n.code,{children:"id"}),"."]}),"\n",(0,i.jsxs)(n.p,{children:["Here besides pages itself you add modals, overlays and other components which will be registered in navigation (i.e. ",(0,i.jsx)(n.code,{children:"registerNavigationComponent"}),")."]}),"\n",(0,i.jsxs)(n.p,{children:[(0,i.jsx)(n.code,{children:"registerNavigationComponent"})," - shorthand function to simplify registration of a page."]}),"\n",(0,i.jsxs)(n.p,{children:["Such examples are ",(0,i.jsx)(n.code,{children:"toast"})," and ",(0,i.jsx)(n.code,{children:"datePicker"})," properties of ",(0,i.jsx)(n.code,{children:"Pages"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"adding-pages",children:"Adding pages"}),"\n",(0,i.jsxs)(n.p,{children:["To add a page, simply add your own property in ",(0,i.jsx)(n.code,{children:"Pages"})," with ",(0,i.jsx)(n.code,{children:"id"})," and ",(0,i.jsx)(n.code,{children:"name"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"registering-pages",children:"Registering pages"}),"\n",(0,i.jsxs)(n.p,{children:["All the pages are being registered in ",(0,i.jsx)(n.code,{children:"src/navigation/navigation.ts"}),"'s ",(0,i.jsx)(n.code,{children:"registerComponents"})," function which is being called at initialization of application."]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:"export function registerComponents() {\n if (__DEV__) {\n registerNavigationComponent(Pages.storybook, StorybookUIRoot);\n }\n registerNavigationComponent(Pages.splash, Splash, true);\n registerNavigationComponent(Pages.onboarding, Onboarding);\n registerNavigationComponent(Pages.main, Main);\n registerNavigationComponent(Pages.search, Search);\n registerNavigationComponent(Pages.settings, Settings);\n registerNavigationComponent(Pages.toast, ToastOverlay);\n registerNavigationComponent(Pages.datePicker, DatePickerOverlay);\n}\n"})}),"\n",(0,i.jsxs)(n.p,{children:["If your page or component is going to be a simple component which won't be communication with ",(0,i.jsx)(n.code,{children:"redux"})," then you can simply register it the next way:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.yourPage, YourPage);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["Otherwise, add a third parameter with ",(0,i.jsx)(n.code,{children:"true"}),":"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:" registerNavigationComponent(Pages.yourPage, YourPage, true);\n"})}),"\n",(0,i.jsxs)(n.p,{children:["The communication with ",(0,i.jsx)(n.code,{children:"redux"})," and usage will be explained later."]}),"\n",(0,i.jsx)(n.h2,{id:"using-pages",children:"Using pages"}),"\n",(0,i.jsx)(n.p,{children:"Create a simple function component like so and describe its options if needed:"}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'export const YourPage: NavigationFunctionComponent = (): JSX.Element => {\n return <ScrollView contentInsetAdjustmentBehavior={"automatic"} style={CommonStyles.flex1} />;\n};\n\nYourPage.options = {\n topBar: {\n largeTitle: {\n visible: true,\n },\n searchBar: {\n visible: false,\n },\n title: {\n text: localization.pages.yourPage,\n },\n },\n};\n'})}),"\n",(0,i.jsx)(n.admonition,{title:"Tip",type:"tip",children:(0,i.jsxs)(n.p,{children:["Try to use ",(0,i.jsx)(n.code,{children:"ScrollView"})," as your parent component in order to have the best behavior on iOS."]})})]})}const l=function(e={}){const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(g,e)})):g(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>r,ah:()=>s});var i=t(7294);const a=i.createContext({});function s(e){const n=i.useContext(a);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const o={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||o:s(e),i.createElement(a.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/b4a96655.ab0ff656.js b/assets/js/b4a96655.ab0ff656.js new file mode 100644 index 00000000..39e5e4f9 --- /dev/null +++ b/assets/js/b4a96655.ab0ff656.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5277],{8044:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>u,contentTitle:()=>n,default:()=>p,frontMatter:()=>a,metadata:()=>o,toc:()=>l});var r=s(5893),i=s(1151);const a={sidebar_position:4,title:"serializeQueryParams"},n=void 0,o={id:"utils/serialize-query-params",title:"serializeQueryParams",description:"",source:"@site/docs/utils/serialize-query-params.md",sourceDirName:"utils",slug:"/utils/serialize-query-params",permalink:"/react-native-template-strong/docs/utils/serialize-query-params",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/serialize-query-params.md",tags:[],version:"current",lastUpdatedAt:1633107579,formattedLastUpdatedAt:"Oct 1, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"serializeQueryParams"},sidebar:"tutorialSidebar",previous:{title:"URL openers",permalink:"/react-native-template-strong/docs/utils/url-openers"},next:{title:"useFlatListActions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions"}},u={},l=[];function c(e){return(0,r.jsx)(r.Fragment,{})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c()}},1151:(e,t,s)=>{s.d(t,{Z:()=>o,a:()=>n});var r=s(7294);const i={},a=r.createContext(i);function n(e){const t=r.useContext(a);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:n(e.components),r.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b4a96655.c8c98c48.js b/assets/js/b4a96655.c8c98c48.js deleted file mode 100644 index d8be3ae0..00000000 --- a/assets/js/b4a96655.c8c98c48.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5277],{8044:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>l,contentTitle:()=>n,default:()=>d,frontMatter:()=>a,metadata:()=>o,toc:()=>u});var r=s(5893),i=s(1151);const a={sidebar_position:4,title:"serializeQueryParams"},n=void 0,o={unversionedId:"utils/serialize-query-params",id:"utils/serialize-query-params",title:"serializeQueryParams",description:"",source:"@site/docs/utils/serialize-query-params.md",sourceDirName:"utils",slug:"/utils/serialize-query-params",permalink:"/react-native-template-strong/docs/utils/serialize-query-params",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/serialize-query-params.md",tags:[],version:"current",lastUpdatedAt:1633107579,formattedLastUpdatedAt:"Oct 1, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"serializeQueryParams"},sidebar:"tutorialSidebar",previous:{title:"URL openers",permalink:"/react-native-template-strong/docs/utils/url-openers"},next:{title:"useFlatListActions",permalink:"/react-native-template-strong/docs/hooks/use-flat-list-actions"}},l={},u=[];function c(e){return(0,r.jsx)(r.Fragment,{})}const d=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c()}},1151:(e,t,s)=>{s.d(t,{Zo:()=>o,ah:()=>a});var r=s(7294);const i=r.createContext({});function a(e){const t=r.useContext(i);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const n={};function o({components:e,children:t,disableParentContext:s}){let o;return o=s?"function"==typeof e?e({}):e||n:a(e),r.createElement(i.Provider,{value:o},t)}}}]); \ No newline at end of file diff --git a/assets/js/b5ee907e.07edc557.js b/assets/js/b5ee907e.07edc557.js new file mode 100644 index 00000000..9375c052 --- /dev/null +++ b/assets/js/b5ee907e.07edc557.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3800],{1095:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=i(5893),t=i(1151);const s={sidebar_position:22,title:"App release"},o=void 0,l={id:"app-release",title:"App release",description:"Preparations",source:"@site/docs/app-release.md",sourceDirName:".",slug:"/app-release",permalink:"/react-native-template-strong/docs/app-release",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/app-release.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:22,frontMatter:{sidebar_position:22,title:"App release"},sidebar:"tutorialSidebar",previous:{title:"App icon",permalink:"/react-native-template-strong/docs/app-icon"},next:{title:"React Native config",permalink:"/react-native-template-strong/docs/configs/rn-config"}},a={},d=[{value:"Preparations",id:"preparations",level:2},{value:"Common start",id:"common-start",level:2},{value:"Android",id:"android",level:2},{value:"iOS",id:"ios",level:2},{value:"After all",id:"after-all",level:2}];function c(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,t.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"preparations",children:"Preparations"}),"\n",(0,r.jsx)(n.p,{children:"Make sure that"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"ESLint and TypeScript have no errors and warnings"}),"\n",(0,r.jsx)(n.li,{children:"All tests are running and not failing"}),"\n",(0,r.jsx)(n.li,{children:"API is reachable and working"}),"\n",(0,r.jsx)(n.li,{children:"Components and pages are rendering correctly on different devices (smartphones, tablets), different screen sizes (iPhone X, iPhone SE, iPad, Pixel 5, Android Tablet), both platforms (iOS, Android)"}),"\n",(0,r.jsx)(n.li,{children:"App icons and splash screen are set up"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"common-start",children:"Common start"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Select production environment (",(0,r.jsx)(n.code,{children:"npm run environment:production-nix"})," on macOS/Linux or ",(0,r.jsx)(n.code,{children:"npm run environment:production-win"})," on Windows)"]}),"\n",(0,r.jsxs)(n.li,{children:["Bump the update version (e.g. ",(0,r.jsx)(n.code,{children:"npm run version:major"})," for major bump)"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"android",children:"Android"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Build the release bundle (",(0,r.jsx)(n.code,{children:"npm android:build-release-bundle-nix"})," on macOS/Linux or ",(0,r.jsx)(n.code,{children:"npm run android:build-release-bundle-win"})," on Windows)"]}),"\n",(0,r.jsx)(n.li,{children:"Test that it works on one of your devices"}),"\n",(0,r.jsxs)(n.li,{children:["If everything is fine, then create an update in ",(0,r.jsx)(n.a,{href:"https://play.google.com/console/",children:"Google Play Market Developer Console"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ios",children:"iOS"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Open ",(0,r.jsx)(n.code,{children:".xcworkspace"})," file in XCode"]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.code,{children:"Any iOS device (arm64)"})," in devices"]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.code,{children:"Product"})," -> ",(0,r.jsx)(n.code,{children:"Archive"})]}),"\n",(0,r.jsx)(n.li,{children:"Follow the instructions after the archive task will be completed"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"after-all",children:"After all"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Commit updated changes of iOS, Android and package.json versions"}),"\n",(0,r.jsx)(n.li,{children:"Create a tag at this commit with version name, so it would be easier to rollback."}),"\n"]})]})}function p(e={}){const{wrapper:n}={...(0,t.a)(),...e.components};return n?(0,r.jsx)(n,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,n,i)=>{i.d(n,{Z:()=>l,a:()=>o});var r=i(7294);const t={},s=r.createContext(t);function o(e){const n=r.useContext(s);return r.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function l(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(t):e.components||t:o(e.components),r.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b5ee907e.a4fde704.js b/assets/js/b5ee907e.a4fde704.js deleted file mode 100644 index a2b2932f..00000000 --- a/assets/js/b5ee907e.a4fde704.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3800],{1095:(e,n,i)=>{i.r(n),i.d(n,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=i(5893),t=i(1151);const s={sidebar_position:22,title:"App release"},o=void 0,l={unversionedId:"app-release",id:"app-release",title:"App release",description:"Preparations",source:"@site/docs/app-release.md",sourceDirName:".",slug:"/app-release",permalink:"/react-native-template-strong/docs/app-release",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/app-release.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:22,frontMatter:{sidebar_position:22,title:"App release"},sidebar:"tutorialSidebar",previous:{title:"App icon",permalink:"/react-native-template-strong/docs/app-icon"},next:{title:"React Native config",permalink:"/react-native-template-strong/docs/configs/rn-config"}},a={},d=[{value:"Preparations",id:"preparations",level:2},{value:"Common start",id:"common-start",level:2},{value:"Android",id:"android",level:2},{value:"iOS",id:"ios",level:2},{value:"After all",id:"after-all",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",ul:"ul",li:"li",code:"code",a:"a"},(0,t.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h2,{id:"preparations",children:"Preparations"}),"\n",(0,r.jsx)(n.p,{children:"Make sure that"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"ESLint and TypeScript have no errors and warnings"}),"\n",(0,r.jsx)(n.li,{children:"All tests are running and not failing"}),"\n",(0,r.jsx)(n.li,{children:"API is reachable and working"}),"\n",(0,r.jsx)(n.li,{children:"Components and pages are rendering correctly on different devices (smartphones, tablets), different screen sizes (iPhone X, iPhone SE, iPad, Pixel 5, Android Tablet), both platforms (iOS, Android)"}),"\n",(0,r.jsx)(n.li,{children:"App icons and splash screen are set up"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"common-start",children:"Common start"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Select production environment (",(0,r.jsx)(n.code,{children:"npm run environment:production-nix"})," on macOS/Linux or ",(0,r.jsx)(n.code,{children:"npm run environment:production-win"})," on Windows)"]}),"\n",(0,r.jsxs)(n.li,{children:["Bump the update version (e.g. ",(0,r.jsx)(n.code,{children:"npm run version:major"})," for major bump)"]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"android",children:"Android"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Build the release bundle (",(0,r.jsx)(n.code,{children:"npm android:build-release-bundle-nix"})," on macOS/Linux or ",(0,r.jsx)(n.code,{children:"npm run android:build-release-bundle-win"})," on Windows)"]}),"\n",(0,r.jsx)(n.li,{children:"Test that it works on one of your devices"}),"\n",(0,r.jsxs)(n.li,{children:["If everything is fine, then create an update in ",(0,r.jsx)(n.a,{href:"https://play.google.com/console/",children:"Google Play Market Developer Console"})]}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"ios",children:"iOS"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["Open ",(0,r.jsx)(n.code,{children:".xcworkspace"})," file in XCode"]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.code,{children:"Any iOS device (arm64)"})," in devices"]}),"\n",(0,r.jsxs)(n.li,{children:["Select ",(0,r.jsx)(n.code,{children:"Product"})," -> ",(0,r.jsx)(n.code,{children:"Archive"})]}),"\n",(0,r.jsx)(n.li,{children:"Follow the instructions after the archive task will be completed"}),"\n"]}),"\n",(0,r.jsx)(n.h2,{id:"after-all",children:"After all"}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsx)(n.li,{children:"Commit updated changes of iOS, Android and package.json versions"}),"\n",(0,r.jsx)(n.li,{children:"Create a tag at this commit with version name, so it would be easier to rollback."}),"\n"]})]})}const p=function(e={}){const{wrapper:n}=Object.assign({},(0,t.ah)(),e.components);return n?(0,r.jsx)(n,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c(e)}},1151:(e,n,i)=>{i.d(n,{Zo:()=>l,ah:()=>s});var r=i(7294);const t=r.createContext({});function s(e){const n=r.useContext(t);return r.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const o={};function l({components:e,children:n,disableParentContext:i}){let l;return l=i?"function"==typeof e?e({}):e||o:s(e),r.createElement(t.Provider,{value:l},n)}}}]); \ No newline at end of file diff --git a/assets/js/b669beb2.86b73957.js b/assets/js/b669beb2.86b73957.js new file mode 100644 index 00000000..7e6a9b4b --- /dev/null +++ b/assets/js/b669beb2.86b73957.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3118],{5132:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>i,metadata:()=>r,toc:()=>p});var s=n(5893),o=n(1151);const i={sidebar_position:2,title:"Splash"},a=void 0,r={id:"pages/splash",title:"Splash",description:"Content",source:"@site/docs/pages/splash.md",sourceDirName:"pages",slug:"/pages/splash",permalink:"/react-native-template-strong/docs/pages/splash",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/splash.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Splash"},sidebar:"tutorialSidebar",previous:{title:"Native splash",permalink:"/react-native-template-strong/docs/pages/native-splash"},next:{title:"Onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding"}},c={},p=[{value:"Content",id:"content",level:2}];function d(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["It's React Native navigation page which at this moment shows ",(0,s.jsx)(t.code,{children:"LoadingComponent"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"You can try to adjust it to show replicate the native splash, or add some animation here."}),"\n",(0,s.jsx)(t.p,{children:"This page is primarily used to implement initial navigation root setting by checking different parameters."}),"\n",(0,s.jsxs)(t.p,{children:["For example, now it checks whether user opens this app first time or not in order to show him ",(0,s.jsx)(t.code,{children:"Onboarding"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);\n\n useEffect(() => {\n if (isOnboardingVisited) {\n setTabsRoot();\n } else if (isIos) {\n setTabsRoot(showOnboarding);\n } else {\n setOnboardingRoot();\n }\n }, [isOnboardingVisited]);\n\n return <LoadingComponent />;\n};\n"})}),"\n",(0,s.jsx)(t.p,{children:"You can also implement your checks here (e.g. is logged in or not)."})]})}function l(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(d,{...e})}):d(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const o={},i=s.createContext(o);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/b669beb2.d731353f.js b/assets/js/b669beb2.d731353f.js deleted file mode 100644 index 2f8d71ab..00000000 --- a/assets/js/b669beb2.d731353f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3118],{5132:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>l,frontMatter:()=>o,metadata:()=>r,toc:()=>p});var s=n(5893),i=n(1151);const o={sidebar_position:2,title:"Splash"},a=void 0,r={unversionedId:"pages/splash",id:"pages/splash",title:"Splash",description:"Content",source:"@site/docs/pages/splash.md",sourceDirName:"pages",slug:"/pages/splash",permalink:"/react-native-template-strong/docs/pages/splash",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/splash.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Splash"},sidebar:"tutorialSidebar",previous:{title:"Native splash",permalink:"/react-native-template-strong/docs/pages/native-splash"},next:{title:"Onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding"}},c={},p=[{value:"Content",id:"content",level:2}];function d(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["It's React Native navigation page which at this moment shows ",(0,s.jsx)(t.code,{children:"LoadingComponent"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"You can try to adjust it to show replicate the native splash, or add some animation here."}),"\n",(0,s.jsx)(t.p,{children:"This page is primarily used to implement initial navigation root setting by checking different parameters."}),"\n",(0,s.jsxs)(t.p,{children:["For example, now it checks whether user opens this app first time or not in order to show him ",(0,s.jsx)(t.code,{children:"Onboarding"}),":"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);\n\n useEffect(() => {\n if (isOnboardingVisited) {\n setTabsRoot();\n } else if (isIos) {\n setTabsRoot(showOnboarding);\n } else {\n setOnboardingRoot();\n }\n }, [isOnboardingVisited]);\n\n return <LoadingComponent />;\n};\n"})}),"\n",(0,s.jsx)(t.p,{children:"You can also implement your checks here (e.g. is logged in or not)."})]})}const l=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>o});var s=n(7294);const i=s.createContext({});function o(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||a:o(e),s.createElement(i.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/b801cfc7.208939b7.js b/assets/js/b801cfc7.208939b7.js deleted file mode 100644 index c4bb1a56..00000000 --- a/assets/js/b801cfc7.208939b7.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8622],{1744:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>o,default:()=>f,frontMatter:()=>s,metadata:()=>c,toc:()=>l});var i=n(5893),r=n(1151);const s={sidebar_position:4,title:"Prettier config"},o=void 0,c={unversionedId:"configs/prettier-config",id:"configs/prettier-config",title:"Prettier config",description:"Prettier defines next obvious rules:",source:"@site/docs/configs/prettier-config.md",sourceDirName:"configs",slug:"/configs/prettier-config",permalink:"/react-native-template-strong/docs/configs/prettier-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/prettier-config.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Prettier config"},sidebar:"tutorialSidebar",previous:{title:"ESLint config",permalink:"/react-native-template-strong/docs/configs/eslint-config"},next:{title:"Metro config",permalink:"/react-native-template-strong/docs/configs/metro-config"}},a={},l=[];function d(t){const e=Object.assign({p:"p",ul:"ul",li:"li"},(0,r.ah)(),t.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Prettier defines next obvious rules:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Tab width - 2"}),"\n",(0,i.jsx)(e.li,{children:"Print width - 80"}),"\n",(0,i.jsx)(e.li,{children:"Only single quotes"}),"\n",(0,i.jsx)(e.li,{children:"Trailing coma"}),"\n",(0,i.jsx)(e.li,{children:"No bracket spacing"}),"\n",(0,i.jsx)(e.li,{children:"JSX bracket shouldn't be on the same line"}),"\n"]})]})}const f=function(t={}){const{wrapper:e}=Object.assign({},(0,r.ah)(),t.components);return e?(0,i.jsx)(e,Object.assign({},t,{children:(0,i.jsx)(d,t)})):d(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>c,ah:()=>s});var i=n(7294);const r=i.createContext({});function s(t){const e=i.useContext(r);return i.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const o={};function c({components:t,children:e,disableParentContext:n}){let c;return c=n?"function"==typeof t?t({}):t||o:s(t),i.createElement(r.Provider,{value:c},e)}}}]); \ No newline at end of file diff --git a/assets/js/b801cfc7.eeda6d62.js b/assets/js/b801cfc7.eeda6d62.js new file mode 100644 index 00000000..4e961c48 --- /dev/null +++ b/assets/js/b801cfc7.eeda6d62.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8622],{1744:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>c,toc:()=>l});var i=n(5893),r=n(1151);const o={sidebar_position:4,title:"Prettier config"},s=void 0,c={id:"configs/prettier-config",title:"Prettier config",description:"Prettier defines next obvious rules:",source:"@site/docs/configs/prettier-config.md",sourceDirName:"configs",slug:"/configs/prettier-config",permalink:"/react-native-template-strong/docs/configs/prettier-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/prettier-config.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Prettier config"},sidebar:"tutorialSidebar",previous:{title:"ESLint config",permalink:"/react-native-template-strong/docs/configs/eslint-config"},next:{title:"Metro config",permalink:"/react-native-template-strong/docs/configs/metro-config"}},a={},l=[];function d(t){const e={li:"li",p:"p",ul:"ul",...(0,r.a)(),...t.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(e.p,{children:"Prettier defines next obvious rules:"}),"\n",(0,i.jsxs)(e.ul,{children:["\n",(0,i.jsx)(e.li,{children:"Tab width - 2"}),"\n",(0,i.jsx)(e.li,{children:"Print width - 80"}),"\n",(0,i.jsx)(e.li,{children:"Only single quotes"}),"\n",(0,i.jsx)(e.li,{children:"Trailing coma"}),"\n",(0,i.jsx)(e.li,{children:"No bracket spacing"}),"\n",(0,i.jsx)(e.li,{children:"JSX bracket shouldn't be on the same line"}),"\n"]})]})}function u(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(d,{...t})}):d(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>c,a:()=>s});var i=n(7294);const r={},o=i.createContext(r);function s(t){const e=i.useContext(o);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function c(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:s(t.components),i.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf3f5c43.045e65bc.js b/assets/js/bf3f5c43.045e65bc.js new file mode 100644 index 00000000..ac003b8b --- /dev/null +++ b/assets/js/bf3f5c43.045e65bc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2627],{919:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>a,metadata:()=>o,toc:()=>c});var s=n(5893),r=n(1151);const a={sidebar_position:1,title:"newState"},i=void 0,o={id:"utils/new-state",title:"newState",description:"Used primarily for merging redux state objects.",source:"@site/docs/utils/new-state.md",sourceDirName:"utils",slug:"/utils/new-state",permalink:"/react-native-template-strong/docs/utils/new-state",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/new-state.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"newState"},sidebar:"tutorialSidebar",previous:{title:"Validations",permalink:"/react-native-template-strong/docs/validations"},next:{title:"listHandlers",permalink:"/react-native-template-strong/docs/utils/list-handlers"}},d={},c=[];function l(t){const e={code:"code",p:"p",pre:"pre",...(0,r.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.p,{children:"Used primarily for merging redux state objects."}),"\n",(0,s.jsx)(e.p,{children:"First parameter is your current or initial state, and second is your changes to this state."}),"\n",(0,s.jsx)(e.p,{children:"Result will be new merged object."}),"\n",(0,s.jsxs)(e.p,{children:["Example usage from ",(0,s.jsx)(e.code,{children:"systemSlice.ts"}),":"]}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n\nfunction onboardingHandler(state: SystemState) {\n return newState(state, {isOnboardingVisited: true});\n}\n"})})]})}function u(t={}){const{wrapper:e}={...(0,r.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>o,a:()=>i});var s=n(7294);const r={},a=s.createContext(r);function i(t){const e=s.useContext(a);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(r):t.components||r:i(t.components),s.createElement(a.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/bf3f5c43.852105d2.js b/assets/js/bf3f5c43.852105d2.js deleted file mode 100644 index c21cbbc3..00000000 --- a/assets/js/bf3f5c43.852105d2.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2627],{919:(t,e,s)=>{s.r(e),s.d(e,{assets:()=>d,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>c});var n=s(5893),a=s(1151);const r={sidebar_position:1,title:"newState"},i=void 0,o={unversionedId:"utils/new-state",id:"utils/new-state",title:"newState",description:"Used primarily for merging redux state objects.",source:"@site/docs/utils/new-state.md",sourceDirName:"utils",slug:"/utils/new-state",permalink:"/react-native-template-strong/docs/utils/new-state",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/utils/new-state.md",tags:[],version:"current",lastUpdatedAt:1633280321,formattedLastUpdatedAt:"Oct 3, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"newState"},sidebar:"tutorialSidebar",previous:{title:"Validations",permalink:"/react-native-template-strong/docs/validations"},next:{title:"listHandlers",permalink:"/react-native-template-strong/docs/utils/list-handlers"}},d={},c=[];function l(t){const e=Object.assign({p:"p",code:"code",pre:"pre"},(0,a.ah)(),t.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.p,{children:"Used primarily for merging redux state objects."}),"\n",(0,n.jsx)(e.p,{children:"First parameter is your current or initial state, and second is your changes to this state."}),"\n",(0,n.jsx)(e.p,{children:"Result will be new merged object."}),"\n",(0,n.jsxs)(e.p,{children:["Example usage from ",(0,n.jsx)(e.code,{children:"systemSlice.ts"}),":"]}),"\n",(0,n.jsx)(e.pre,{children:(0,n.jsx)(e.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n\nfunction onboardingHandler(state: SystemState) {\n return newState(state, {isOnboardingVisited: true});\n}\n"})})]})}const u=function(t={}){const{wrapper:e}=Object.assign({},(0,a.ah)(),t.components);return e?(0,n.jsx)(e,Object.assign({},t,{children:(0,n.jsx)(l,t)})):l(t)}},1151:(t,e,s)=>{s.d(e,{Zo:()=>o,ah:()=>r});var n=s(7294);const a=n.createContext({});function r(t){const e=n.useContext(a);return n.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const i={};function o({components:t,children:e,disableParentContext:s}){let o;return o=s?"function"==typeof t?t({}):t||i:r(t),n.createElement(a.Provider,{value:o},e)}}}]); \ No newline at end of file diff --git a/assets/js/bf787174.76a33336.js b/assets/js/bf787174.76a33336.js deleted file mode 100644 index 04d3b087..00000000 --- a/assets/js/bf787174.76a33336.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9721],{7122:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:4,title:"Roots"},a=void 0,r={unversionedId:"navigation/roots",id:"navigation/roots",title:"Roots",description:"Content",source:"@site/docs/navigation/roots.md",sourceDirName:"navigation",slug:"/navigation/roots",permalink:"/react-native-template-strong/docs/navigation/roots",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/roots.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Roots"},sidebar:"tutorialSidebar",previous:{title:"Pages",permalink:"/react-native-template-strong/docs/navigation/pages"},next:{title:"Overlays and modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Starting root",id:"starting-root",level:2},{value:"Switching roots",id:"switching-roots",level:2}];function l(t){const e=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,s.ah)(),t.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(e.p,{children:"The root is where the application layout structure is defined. It is typically the first UI element a user interacts with."}),"\n",(0,o.jsx)(e.p,{children:"The root can be changed multiple times during the lifespan of the application."}),"\n",(0,o.jsx)(e.p,{children:"For example, if an app requires users to login, it's common to use a stack-based root and transition to either tabs- or SideMenu-based root if login is successful."}),"\n",(0,o.jsxs)(e.p,{children:["Roots are located in ",(0,o.jsx)(e.code,{children:"src/navigation/roots.ts"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"Each root is being exported separately."}),"\n",(0,o.jsx)(e.h2,{id:"starting-root",children:"Starting root"}),"\n",(0,o.jsxs)(e.p,{children:["The starting root is ",(0,o.jsx)(e.code,{children:"setInitialRoot"})," which shows ",(0,o.jsx)(e.code,{children:"Splash"}),"."]}),"\n",(0,o.jsx)(e.h2,{id:"switching-roots",children:"Switching roots"}),"\n",(0,o.jsxs)(e.p,{children:["As shown in ",(0,o.jsx)(e.code,{children:"Splash"})," based on whether user opened application first time or second time it switches the root to ",(0,o.jsx)(e.code,{children:"tabs"})," or ",(0,o.jsx)(e.code,{children:"onboarding"}),":"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);\n\n useEffect(() => {\n if (isOnboardingVisited) {\n setTabsRoot();\n } else if (isIos) {\n setTabsRoot(showOnboarding);\n } else {\n setOnboardingRoot();\n }\n }, [isOnboardingVisited]);\n\n return <LoadingComponent />;\n};\n"})})]})}const h=function(t={}){const{wrapper:e}=Object.assign({},(0,s.ah)(),t.components);return e?(0,o.jsx)(e,Object.assign({},t,{children:(0,o.jsx)(l,t)})):l(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>r,ah:()=>i});var o=n(7294);const s=o.createContext({});function i(t){const e=o.useContext(s);return o.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const a={};function r({components:t,children:e,disableParentContext:n}){let r;return r=n?"function"==typeof t?t({}):t||a:i(t),o.createElement(s.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/bf787174.c382d408.js b/assets/js/bf787174.c382d408.js new file mode 100644 index 00000000..051d0eba --- /dev/null +++ b/assets/js/bf787174.c382d408.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9721],{7122:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>p,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:4,title:"Roots"},r=void 0,a={id:"navigation/roots",title:"Roots",description:"Content",source:"@site/docs/navigation/roots.md",sourceDirName:"navigation",slug:"/navigation/roots",permalink:"/react-native-template-strong/docs/navigation/roots",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/roots.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Roots"},sidebar:"tutorialSidebar",previous:{title:"Pages",permalink:"/react-native-template-strong/docs/navigation/pages"},next:{title:"Overlays and modals",permalink:"/react-native-template-strong/docs/navigation/overlays-and-modals"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Starting root",id:"starting-root",level:2},{value:"Switching roots",id:"switching-roots",level:2}];function l(t){const e={code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(e.p,{children:"The root is where the application layout structure is defined. It is typically the first UI element a user interacts with."}),"\n",(0,o.jsx)(e.p,{children:"The root can be changed multiple times during the lifespan of the application."}),"\n",(0,o.jsx)(e.p,{children:"For example, if an app requires users to login, it's common to use a stack-based root and transition to either tabs- or SideMenu-based root if login is successful."}),"\n",(0,o.jsxs)(e.p,{children:["Roots are located in ",(0,o.jsx)(e.code,{children:"src/navigation/roots.ts"}),"."]}),"\n",(0,o.jsx)(e.p,{children:"Each root is being exported separately."}),"\n",(0,o.jsx)(e.h2,{id:"starting-root",children:"Starting root"}),"\n",(0,o.jsxs)(e.p,{children:["The starting root is ",(0,o.jsx)(e.code,{children:"setInitialRoot"})," which shows ",(0,o.jsx)(e.code,{children:"Splash"}),"."]}),"\n",(0,o.jsx)(e.h2,{id:"switching-roots",children:"Switching roots"}),"\n",(0,o.jsxs)(e.p,{children:["As shown in ",(0,o.jsx)(e.code,{children:"Splash"})," based on whether user opened application first time or second time it switches the root to ",(0,o.jsx)(e.code,{children:"tabs"})," or ",(0,o.jsx)(e.code,{children:"onboarding"}),":"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"export const Splash: NavigationFunctionComponent = () => {\n const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);\n\n useEffect(() => {\n if (isOnboardingVisited) {\n setTabsRoot();\n } else if (isIos) {\n setTabsRoot(showOnboarding);\n } else {\n setOnboardingRoot();\n }\n }, [isOnboardingVisited]);\n\n return <LoadingComponent />;\n};\n"})})]})}function p(t={}){const{wrapper:e}={...(0,s.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(l,{...t})}):l(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>r});var o=n(7294);const s={},i=o.createContext(s);function r(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(s):t.components||s:r(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/c2066304.5836462d.js b/assets/js/c2066304.5836462d.js new file mode 100644 index 00000000..2c7ebf78 --- /dev/null +++ b/assets/js/c2066304.5836462d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3122],{4658:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>l,default:()=>x,frontMatter:()=>i,metadata:()=>a,toc:()=>d});var r=n(5893),s=n(1151);const i={sidebar_position:9,title:"TryAgain"},l=void 0,a={id:"components/try-again",title:"TryAgain",description:"Content",source:"@site/docs/components/try-again.md",sourceDirName:"components",slug:"/components/try-again",permalink:"/react-native-template-strong/docs/components/try-again",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/try-again.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"TryAgain"},sidebar:"tutorialSidebar",previous:{title:"LoadingComponent",permalink:"/react-native-template-strong/docs/components/loading-component"},next:{title:"RadioButton",permalink:"/react-native-template-strong/docs/components/radio-button"}},o={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Simple try again screen-like message with the try again button. Used primarily in ",(0,r.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,r.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,r.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"onPress"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"On try again press callback"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"errorText"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"string"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:(0,r.jsx)(t.code,{children:"localization.errors.unknownErrorHasOccurred"})}),(0,r.jsx)(t.td,{style:{textAlign:"left"},children:"Error text"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <TryAgain onPress={tryAgain} errorText={error || localization.errors.listErrorTitle} />\n"})})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>l});var r=n(7294);const s={},i=r.createContext(s);function l(e){const t=r.useContext(i);return r.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:l(e.components),r.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c2066304.bc39b83f.js b/assets/js/c2066304.bc39b83f.js deleted file mode 100644 index ebf44c25..00000000 --- a/assets/js/c2066304.bc39b83f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3122],{4658:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>a,default:()=>h,frontMatter:()=>s,metadata:()=>l,toc:()=>d});var r=n(5893),i=n(1151);const s={sidebar_position:9,title:"TryAgain"},a=void 0,l={unversionedId:"components/try-again",id:"components/try-again",title:"TryAgain",description:"Content",source:"@site/docs/components/try-again.md",sourceDirName:"components",slug:"/components/try-again",permalink:"/react-native-template-strong/docs/components/try-again",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/try-again.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"TryAgain"},sidebar:"tutorialSidebar",previous:{title:"LoadingComponent",permalink:"/react-native-template-strong/docs/components/loading-component"},next:{title:"RadioButton",permalink:"/react-native-template-strong/docs/components/radio-button"}},o={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,i.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsxs)(t.p,{children:["Simple try again screen-like message with the try again button. Used primarily in ",(0,r.jsx)(t.code,{children:"FlatListWrapper"})," and ",(0,r.jsx)(t.code,{children:"SectionListWrapper"}),"."]}),"\n",(0,r.jsx)(t.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{align:"left",children:"Name"}),(0,r.jsx)(t.th,{align:"left",children:"Type"}),(0,r.jsx)(t.th,{align:"left",children:"Required"}),(0,r.jsx)(t.th,{align:"left",children:"Default value"}),(0,r.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,r.jsxs)(t.tbody,{children:[(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"onPress"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"() => void"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:"Undefined"}),(0,r.jsx)(t.td,{align:"left",children:"On try again press callback"})]}),(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"errorText"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"string"})}),(0,r.jsx)(t.td,{align:"left",children:"False"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"localization.errors.unknownErrorHasOccurred"})}),(0,r.jsx)(t.td,{align:"left",children:"Error text"})]})]})]}),"\n",(0,r.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" <TryAgain onPress={tryAgain} errorText={error || localization.errors.listErrorTitle} />\n"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>s});var r=n(7294);const i=r.createContext({});function s(e){const t=r.useContext(i);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||a:s(e),r.createElement(i.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/c27df6d1.4c1825d8.js b/assets/js/c27df6d1.4c1825d8.js deleted file mode 100644 index c8d8925c..00000000 --- a/assets/js/c27df6d1.4c1825d8.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9117],{8585:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>o});var n=r(5893),s=r(1151);const d={sidebar_position:5,title:"Slice"},a=void 0,i={unversionedId:"redux/slice",id:"redux/slice",title:"Slice",description:"Content",source:"@site/docs/redux/slice.md",sourceDirName:"redux",slug:"/redux/slice",permalink:"/react-native-template-strong/docs/redux/slice",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/slice.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Slice"},sidebar:"tutorialSidebar",previous:{title:"State",permalink:"/react-native-template-strong/docs/redux/state"},next:{title:"AsyncThunk",permalink:"/react-native-template-strong/docs/redux/async-thunk"}},c={},o=[{value:"Content",id:"content",level:2},{value:"Creation",id:"creation",level:2},{value:"Adding reducer to RootReducer",id:"adding-reducer-to-rootreducer",level:2},{value:"Case handlers",id:"case-handlers",level:2},{value:"Return newState",id:"return-newstate",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre",a:"a"},(0,s.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"Slices"})," as well as ",(0,n.jsx)(t.code,{children:"AsyncThunks"})," are stored together for better readability and remove need to have additional imports."]}),"\n",(0,n.jsx)(t.h2,{id:"creation",children:"Creation"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"Slices"})," are created the same way as described in documentation."]}),"\n",(0,n.jsxs)(t.p,{children:["E.g. ",(0,n.jsx)(t.code,{children:"systemSlice.ts"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:'export const {reducer: SystemReducer} = createSlice({\n name: "system",\n initialState: SystemInitialState,\n reducers: {\n setOnboarding: onboardingHandler,\n },\n extraReducers: (builder) => {\n builder.addCase(REHYDRATE, rehydrate);\n },\n});\n'})}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.code,{children:"extraReducers"})," don't forget to add the ",(0,n.jsx)(t.code,{children:"REHYDRATE"})," case to set properly store after rehydration:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n"})}),"\n",(0,n.jsx)(t.h2,{id:"adding-reducer-to-rootreducer",children:"Adding reducer to RootReducer"}),"\n",(0,n.jsxs)(t.p,{children:["To see and use our reducer, first it has to be added into ",(0,n.jsx)(t.code,{children:"RootReducer"}),", which is constructed using ",(0,n.jsx)(t.code,{children:"combineReducers"}),"\nand can be found in ",(0,n.jsx)(t.code,{children:"src/core/store/rootReducer.ts"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["E.g. of adding ",(0,n.jsx)(t.code,{children:"SystemReducer"})," into ",(0,n.jsx)(t.code,{children:"RootReducer"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export const rootReducer = combineReducers({\n system: SystemReducer,\n});\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Parameter should be the same as ",(0,n.jsx)(t.code,{children:"name"})," which was used in ",(0,n.jsx)(t.code,{children:"createSlice"})]}),"\n",(0,n.jsx)(t.h2,{id:"case-handlers",children:"Case handlers"}),"\n",(0,n.jsxs)(t.p,{children:["Case handlers as you could see in example of the ",(0,n.jsx)(t.code,{children:"rehydrate"})," case should be handled as a separate function for better readability."]}),"\n",(0,n.jsx)(t.h2,{id:"return-newstate",children:"Return newState"}),"\n",(0,n.jsxs)(t.p,{children:["Even though ",(0,n.jsx)(t.code,{children:"Immer"})," is used under the hood of the toolkit, it's still better to return ",(0,n.jsx)(t.a,{href:"/react-native-template-strong/docs/utils/new-state",children:"newState"}),"\nrather than change properties directly without returning anything."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n"})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(l,e)})):l(e)}},1151:(e,t,r)=>{r.d(t,{Zo:()=>i,ah:()=>d});var n=r(7294);const s=n.createContext({});function d(e){const t=n.useContext(s);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function i({components:e,children:t,disableParentContext:r}){let i;return i=r?"function"==typeof e?e({}):e||a:d(e),n.createElement(s.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/c27df6d1.d879a41e.js b/assets/js/c27df6d1.d879a41e.js new file mode 100644 index 00000000..47fbb14d --- /dev/null +++ b/assets/js/c27df6d1.d879a41e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9117],{8585:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>u,frontMatter:()=>d,metadata:()=>i,toc:()=>o});var n=r(5893),s=r(1151);const d={sidebar_position:5,title:"Slice"},a=void 0,i={id:"redux/slice",title:"Slice",description:"Content",source:"@site/docs/redux/slice.md",sourceDirName:"redux",slug:"/redux/slice",permalink:"/react-native-template-strong/docs/redux/slice",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/slice.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"Slice"},sidebar:"tutorialSidebar",previous:{title:"State",permalink:"/react-native-template-strong/docs/redux/state"},next:{title:"AsyncThunk",permalink:"/react-native-template-strong/docs/redux/async-thunk"}},c={},o=[{value:"Content",id:"content",level:2},{value:"Creation",id:"creation",level:2},{value:"Adding reducer to RootReducer",id:"adding-reducer-to-rootreducer",level:2},{value:"Case handlers",id:"case-handlers",level:2},{value:"Return newState",id:"return-newstate",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"Slices"})," as well as ",(0,n.jsx)(t.code,{children:"AsyncThunks"})," are stored together for better readability and remove need to have additional imports."]}),"\n",(0,n.jsx)(t.h2,{id:"creation",children:"Creation"}),"\n",(0,n.jsxs)(t.p,{children:[(0,n.jsx)(t.code,{children:"Slices"})," are created the same way as described in documentation."]}),"\n",(0,n.jsxs)(t.p,{children:["E.g. ",(0,n.jsx)(t.code,{children:"systemSlice.ts"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:'export const {reducer: SystemReducer} = createSlice({\n name: "system",\n initialState: SystemInitialState,\n reducers: {\n setOnboarding: onboardingHandler,\n },\n extraReducers: (builder) => {\n builder.addCase(REHYDRATE, rehydrate);\n },\n});\n'})}),"\n",(0,n.jsxs)(t.p,{children:["In ",(0,n.jsx)(t.code,{children:"extraReducers"})," don't forget to add the ",(0,n.jsx)(t.code,{children:"REHYDRATE"})," case to set properly store after rehydration:"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n"})}),"\n",(0,n.jsx)(t.h2,{id:"adding-reducer-to-rootreducer",children:"Adding reducer to RootReducer"}),"\n",(0,n.jsxs)(t.p,{children:["To see and use our reducer, first it has to be added into ",(0,n.jsx)(t.code,{children:"RootReducer"}),", which is constructed using ",(0,n.jsx)(t.code,{children:"combineReducers"}),"\nand can be found in ",(0,n.jsx)(t.code,{children:"src/core/store/rootReducer.ts"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["E.g. of adding ",(0,n.jsx)(t.code,{children:"SystemReducer"})," into ",(0,n.jsx)(t.code,{children:"RootReducer"}),":"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export const rootReducer = combineReducers({\n system: SystemReducer,\n});\n"})}),"\n",(0,n.jsxs)(t.p,{children:["Parameter should be the same as ",(0,n.jsx)(t.code,{children:"name"})," which was used in ",(0,n.jsx)(t.code,{children:"createSlice"})]}),"\n",(0,n.jsx)(t.h2,{id:"case-handlers",children:"Case handlers"}),"\n",(0,n.jsxs)(t.p,{children:["Case handlers as you could see in example of the ",(0,n.jsx)(t.code,{children:"rehydrate"})," case should be handled as a separate function for better readability."]}),"\n",(0,n.jsx)(t.h2,{id:"return-newstate",children:"Return newState"}),"\n",(0,n.jsxs)(t.p,{children:["Even though ",(0,n.jsx)(t.code,{children:"Immer"})," is used under the hood of the toolkit, it's still better to return ",(0,n.jsx)(t.a,{href:"/react-native-template-strong/docs/utils/new-state",children:"newState"}),"\nrather than change properties directly without returning anything."]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {\n return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});\n}\n"})})]})}function u(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(l,{...e})}):l(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>i,a:()=>a});var n=r(7294);const s={},d=n.createContext(s);function a(e){const t=n.useContext(d);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:a(e.components),n.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/c5ed97f1.2d70f298.js b/assets/js/c5ed97f1.2d70f298.js deleted file mode 100644 index 45060cc7..00000000 --- a/assets/js/c5ed97f1.2d70f298.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[186],{1090:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>l});var i=t(5893),s=t(1151);const o={title:"Mission"},a="Mission",r={type:"mdx",permalink:"/react-native-template-strong/mission",source:"@site/src/pages/mission.md",title:"Mission",description:"The idea behind creation of this repository is to have next core features when creating a new project:",frontMatter:{title:"Mission"},unlisted:!1},c={},l=[];function p(e){const n=Object.assign({h1:"h1",p:"p",ul:"ul",li:"li"},(0,s.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"mission",children:"Mission"}),"\n",(0,i.jsx)(n.p,{children:"The idea behind creation of this repository is to have next core features when creating a new project:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Dependencies on which almost every application relies (orientation, localization, navigation, environments .etc)"}),"\n",(0,i.jsx)(n.li,{children:"Configured TypeScript"}),"\n",(0,i.jsx)(n.li,{children:"Configured ESLint with strict set of rules and plugins"}),"\n",(0,i.jsx)(n.li,{children:"Configured testing environment (Storybook, Jest, Detox)"}),"\n",(0,i.jsx)(n.li,{children:"Set of styles, components and helpers"}),"\n",(0,i.jsx)(n.li,{children:"Predefined popular scenarios of user behavior (including pages)"}),"\n",(0,i.jsx)(n.li,{children:"Documentation of before mentioned"}),"\n",(0,i.jsx)(n.li,{children:"Unification of application/component/style development within teams"}),"\n",(0,i.jsx)(n.li,{children:"A single code structure"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Additionally, to before mentioned concepts, goes documentation of development processes of the way how I and community see it.\nIt has to be a single source of information in many aspects (e.g. app publishing, splash screen creation, navigation .etc)."}),"\n",(0,i.jsx)(n.p,{children:"I strive to make this as easy as possible using the KISS (keep it simple, stupid) approach whenever possible,\nand when there's a case it can't be applied I'll try to document it as good as I can."}),"\n",(0,i.jsx)(n.p,{children:"There's a lot of \"I\" in this section, but I'm eager to listen to community and open to new ideas and approaches."}),"\n",(0,i.jsx)(n.p,{children:"I hope this template will help people with application development."})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(p,e)})):p(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>r,ah:()=>o});var i=t(7294);const s=i.createContext({});function o(e){const n=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const a={};function r({components:e,children:n,disableParentContext:t}){let r;return r=t?"function"==typeof e?e({}):e||a:o(e),i.createElement(s.Provider,{value:r},n)}}}]); \ No newline at end of file diff --git a/assets/js/c5ed97f1.49105c91.js b/assets/js/c5ed97f1.49105c91.js new file mode 100644 index 00000000..bc43de92 --- /dev/null +++ b/assets/js/c5ed97f1.49105c91.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[186],{1090:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>d,frontMatter:()=>s,metadata:()=>a,toc:()=>l});var i=t(5893),o=t(1151);const s={title:"Mission"},r="Mission",a={type:"mdx",permalink:"/react-native-template-strong/mission",source:"@site/src/pages/mission.md",title:"Mission",description:"The idea behind creation of this repository is to have next core features when creating a new project:",frontMatter:{title:"Mission"},unlisted:!1},c={},l=[];function p(e){const n={h1:"h1",li:"li",p:"p",ul:"ul",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{id:"mission",children:"Mission"}),"\n",(0,i.jsx)(n.p,{children:"The idea behind creation of this repository is to have next core features when creating a new project:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:"Dependencies on which almost every application relies (orientation, localization, navigation, environments .etc)"}),"\n",(0,i.jsx)(n.li,{children:"Configured TypeScript"}),"\n",(0,i.jsx)(n.li,{children:"Configured ESLint with strict set of rules and plugins"}),"\n",(0,i.jsx)(n.li,{children:"Configured testing environment (Storybook, Jest, Detox)"}),"\n",(0,i.jsx)(n.li,{children:"Set of styles, components and helpers"}),"\n",(0,i.jsx)(n.li,{children:"Predefined popular scenarios of user behavior (including pages)"}),"\n",(0,i.jsx)(n.li,{children:"Documentation of before mentioned"}),"\n",(0,i.jsx)(n.li,{children:"Unification of application/component/style development within teams"}),"\n",(0,i.jsx)(n.li,{children:"A single code structure"}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Additionally, to before mentioned concepts, goes documentation of development processes of the way how I and community see it.\nIt has to be a single source of information in many aspects (e.g. app publishing, splash screen creation, navigation .etc)."}),"\n",(0,i.jsx)(n.p,{children:"I strive to make this as easy as possible using the KISS (keep it simple, stupid) approach whenever possible,\nand when there's a case it can't be applied I'll try to document it as good as I can."}),"\n",(0,i.jsx)(n.p,{children:"There's a lot of \"I\" in this section, but I'm eager to listen to community and open to new ideas and approaches."}),"\n",(0,i.jsx)(n.p,{children:"I hope this template will help people with application development."})]})}function d(e={}){const{wrapper:n}={...(0,o.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(p,{...e})}):p(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var i=t(7294);const o={},s=i.createContext(o);function r(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/cf5243f0.7655a082.js b/assets/js/cf5243f0.7655a082.js deleted file mode 100644 index 7ef8ede4..00000000 --- a/assets/js/cf5243f0.7655a082.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8136],{9688:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>r,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>o});var l=t(5893),i=t(1151);const s={sidebar_position:13,title:"PhotoTakingButton"},d=void 0,a={unversionedId:"components/photo-taking-button",id:"components/photo-taking-button",title:"PhotoTakingButton",description:"Content",source:"@site/docs/components/photo-taking-button.md",sourceDirName:"components",slug:"/components/photo-taking-button",permalink:"/react-native-template-strong/docs/components/photo-taking-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/photo-taking-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"PhotoTakingButton"},sidebar:"tutorialSidebar",previous:{title:"EmptyView",permalink:"/react-native-template-strong/docs/components/empty-view"},next:{title:"ImageCropPickerButton",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button"}},r={},o=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,i.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(n.p,{children:["Button which is used as primary component of ",(0,l.jsx)(n.code,{children:"ImageCropPickerButton"})]}),"\n",(0,l.jsx)(n.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"onPress"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"() => void"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"On press callback"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"backgroundImage"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageURISource or null or CropperImage"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Selected image which will be shown and used"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"icon"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageURISource"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageResources.camera"})}),(0,l.jsx)(n.td,{align:"left",children:"Icon which will be shown when image is not present and over the selected image"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"style"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ViewStyle"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Style of button"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"iconStyle"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageStyle"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Style of icon"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"imageStyle"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"ImageStyle"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Style of image"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"disabled"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"boolean"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"Is button disabled"})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:" return (\n <PhotoTakingButton\n style={style}\n iconStyle={iconStyle}\n imageStyle={imageStyle}\n onPress={onPress}\n backgroundImage={image}\n icon={icon}\n disabled={disabled}\n />\n );\n"})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,l.jsx)(n,Object.assign({},e,{children:(0,l.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>s});var l=t(7294);const i=l.createContext({});function s(e){const n=l.useContext(i);return l.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const d={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||d:s(e),l.createElement(i.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/cf5243f0.97604f6e.js b/assets/js/cf5243f0.97604f6e.js new file mode 100644 index 00000000..d1f93782 --- /dev/null +++ b/assets/js/cf5243f0.97604f6e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8136],{9688:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>r,toc:()=>c});var l=n(5893),s=n(1151);const i={sidebar_position:13,title:"PhotoTakingButton"},d=void 0,r={id:"components/photo-taking-button",title:"PhotoTakingButton",description:"Content",source:"@site/docs/components/photo-taking-button.md",sourceDirName:"components",slug:"/components/photo-taking-button",permalink:"/react-native-template-strong/docs/components/photo-taking-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/photo-taking-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:13,frontMatter:{sidebar_position:13,title:"PhotoTakingButton"},sidebar:"tutorialSidebar",previous:{title:"EmptyView",permalink:"/react-native-template-strong/docs/components/empty-view"},next:{title:"ImageCropPickerButton",permalink:"/react-native-template-strong/docs/components/image-crop-picker-button"}},o={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function a(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsxs)(t.p,{children:["Button which is used as primary component of ",(0,l.jsx)(t.code,{children:"ImageCropPickerButton"})]}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onPress"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"() => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"On press callback"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"backgroundImage"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageURISource or null or CropperImage"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Selected image which will be shown and used"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"icon"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageURISource"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageResources.camera"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Icon which will be shown when image is not present and over the selected image"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"style"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ViewStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of button"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"iconStyle"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of icon"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"imageStyle"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"ImageStyle"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Style of image"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"disabled"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"boolean"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Is button disabled"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return (\n <PhotoTakingButton\n style={style}\n iconStyle={iconStyle}\n imageStyle={imageStyle}\n onPress={onPress}\n backgroundImage={image}\n icon={icon}\n disabled={disabled}\n />\n );\n"})})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>d});var l=n(7294);const s={},i=l.createContext(s);function d(e){const t=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),l.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d1e36d14.4b661c0f.js b/assets/js/d1e36d14.4b661c0f.js deleted file mode 100644 index f54bed48..00000000 --- a/assets/js/d1e36d14.4b661c0f.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[729],{8277:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var a=n(5893),i=n(1151);const o={sidebar_position:1,title:"Before starting"},s=void 0,r={unversionedId:"navigation/before-starting",id:"navigation/before-starting",title:"Before starting",description:"Content",source:"@site/docs/navigation/before-starting.md",sourceDirName:"navigation",slug:"/navigation/before-starting",permalink:"/react-native-template-strong/docs/navigation/before-starting",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/before-starting.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Before starting"},sidebar:"tutorialSidebar",previous:{title:"Dependencies and scripts",permalink:"/react-native-template-strong/docs/dependencies"},next:{title:"Default options",permalink:"/react-native-template-strong/docs/navigation/default-options"}},c={},d=[{value:"Content",id:"content",level:2}];function l(t){const e=Object.assign({h2:"h2",p:"p",a:"a"},(0,i.ah)(),t.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,a.jsxs)(e.p,{children:["First read about ",(0,a.jsx)(e.a,{href:"https://wix.github.io/react-native-navigation/docs/before-you-start/",children:"React Native Navigation"}),", about what it can do, what it offers and then come back here to move on."]}),"\n",(0,a.jsx)(e.p,{children:"It's important to know about it because it's one of a core components of this template and knowing it can save your time\nand eliminate many questions."})]})}const u=function(t={}){const{wrapper:e}=Object.assign({},(0,i.ah)(),t.components);return e?(0,a.jsx)(e,Object.assign({},t,{children:(0,a.jsx)(l,t)})):l(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>r,ah:()=>o});var a=n(7294);const i=a.createContext({});function o(t){const e=a.useContext(i);return a.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const s={};function r({components:t,children:e,disableParentContext:n}){let r;return r=n?"function"==typeof t?t({}):t||s:o(t),a.createElement(i.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/d1e36d14.80e44583.js b/assets/js/d1e36d14.80e44583.js new file mode 100644 index 00000000..37f3fb59 --- /dev/null +++ b/assets/js/d1e36d14.80e44583.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[729],{8277:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>s,default:()=>u,frontMatter:()=>i,metadata:()=>r,toc:()=>d});var o=n(5893),a=n(1151);const i={sidebar_position:1,title:"Before starting"},s=void 0,r={id:"navigation/before-starting",title:"Before starting",description:"Content",source:"@site/docs/navigation/before-starting.md",sourceDirName:"navigation",slug:"/navigation/before-starting",permalink:"/react-native-template-strong/docs/navigation/before-starting",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/before-starting.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Before starting"},sidebar:"tutorialSidebar",previous:{title:"Dependencies and scripts",permalink:"/react-native-template-strong/docs/dependencies"},next:{title:"Default options",permalink:"/react-native-template-strong/docs/navigation/default-options"}},c={},d=[{value:"Content",id:"content",level:2}];function p(t){const e={a:"a",h2:"h2",p:"p",...(0,a.a)(),...t.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(e.p,{children:["First read about ",(0,o.jsx)(e.a,{href:"https://wix.github.io/react-native-navigation/docs/before-you-start/",children:"React Native Navigation"}),", about what it can do, what it offers and then come back here to move on."]}),"\n",(0,o.jsx)(e.p,{children:"It's important to know about it because it's one of a core components of this template and knowing it can save your time\nand eliminate many questions."})]})}function u(t={}){const{wrapper:e}={...(0,a.a)(),...t.components};return e?(0,o.jsx)(e,{...t,children:(0,o.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>r,a:()=>s});var o=n(7294);const a={},i=o.createContext(a);function s(t){const e=o.useContext(i);return o.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:s(t.components),o.createElement(i.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/d589d3a7.6f9b2b64.js b/assets/js/d589d3a7.6f9b2b64.js deleted file mode 100644 index bd952f51..00000000 --- a/assets/js/d589d3a7.6f9b2b64.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7162],{6443:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var n=s(5893),r=s(1151);const i={sidebar_position:1,title:"Getting started"},a=void 0,o={unversionedId:"getting-started",id:"getting-started",title:"Getting started",description:"Before you start",source:"@site/docs/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-template-strong/docs/getting-started",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/getting-started.md",tags:[],version:"current",lastUpdatedAt:1695732655,formattedLastUpdatedAt:"Sep 26, 2023",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Getting started"},sidebar:"tutorialSidebar",next:{title:"Project",permalink:"/react-native-template-strong/docs/structure/project"}},d={},c=[{value:"Before you start",id:"before-you-start",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Usage",id:"usage",level:2},{value:"After usage",id:"after-usage",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",a:"a",ul:"ul",li:"li",pre:"pre",code:"code"},(0,r.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"before-you-start",children:"Before you start"}),"\n",(0,n.jsxs)(t.p,{children:["If you are new to React Native, it would be better to learn a bit about it first by\n",(0,n.jsx)(t.a,{href:"https://reactnative.dev/docs/getting-started",children:"checking its website"})," and then come back here."]}),"\n",(0,n.jsxs)(t.p,{children:["To work with this template you have to install everything what's needed in order to work with React Native,\nmake sure you have ",(0,n.jsx)(t.a,{href:"https://reactnative.dev/docs/environment-setup",children:"environment ready to work with"}),"."]}),"\n",(0,n.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,n.jsx)(t.p,{children:"These are the versions of tools on which this template was created and tested (higher versions should be also supported):"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://developer.android.com/studio",children:"Android Studio Giraffe | 2022.3.1 Patch 1"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"Gradle 7.4.2"}),"\n",(0,n.jsx)(t.li,{children:"JDK 11 (Zulu 11)"}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.li,{children:(0,n.jsx)(t.a,{href:"https://apps.apple.com/us/app/xcode/id497799835?mt=12",children:"XCode 15.0"})}),"\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.a,{href:"https://nodejs.org/",children:"Node 20.7.0"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsx)(t.li,{children:"npm 10.1.0"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-sh",children:"npx --force react-native init MyApp --template react-native-template-strong --npm\n"})}),"\n",(0,n.jsx)(t.h2,{id:"after-usage",children:"After usage"}),"\n",(0,n.jsx)(t.p,{children:"I strongly advise you to be patient, and check documentation to know about all available features."}),"\n",(0,n.jsxs)(t.p,{children:["If you have any questions regarding any particular decision check ",(0,n.jsx)(t.a,{href:"../faq",children:"FAQ"}),"\nor ",(0,n.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/issues/new/choose",children:"ask a question"}),"\nor ",(0,n.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/discussions",children:"create a discussion"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["If you have any questions you can check the ",(0,n.jsx)(t.a,{href:"../troubleshooting",children:"troubleshooting"})," section."]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(l,e)})):l(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>o,ah:()=>i});var n=s(7294);const r=n.createContext({});function i(e){const t=n.useContext(r);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function o({components:e,children:t,disableParentContext:s}){let o;return o=s?"function"==typeof e?e({}):e||a:i(e),n.createElement(r.Provider,{value:o},t)}}}]); \ No newline at end of file diff --git a/assets/js/d589d3a7.7490123a.js b/assets/js/d589d3a7.7490123a.js new file mode 100644 index 00000000..2df55fec --- /dev/null +++ b/assets/js/d589d3a7.7490123a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7162],{6443:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>a,default:()=>h,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var s=n(5893),r=n(1151);const i={sidebar_position:1,title:"Getting started"},a=void 0,o={id:"getting-started",title:"Getting started",description:"Before you start",source:"@site/docs/getting-started.md",sourceDirName:".",slug:"/getting-started",permalink:"/react-native-template-strong/docs/getting-started",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/getting-started.md",tags:[],version:"current",lastUpdatedAt:1704743195,formattedLastUpdatedAt:"Jan 8, 2024",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Getting started"},sidebar:"tutorialSidebar",next:{title:"Project",permalink:"/react-native-template-strong/docs/structure/project"}},d={},c=[{value:"Before you start",id:"before-you-start",level:2},{value:"Prerequisites",id:"prerequisites",level:2},{value:"Usage",id:"usage",level:2},{value:"After usage",id:"after-usage",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"before-you-start",children:"Before you start"}),"\n",(0,s.jsxs)(t.p,{children:["If you are new to React Native, it would be better to learn a bit about it first by\n",(0,s.jsx)(t.a,{href:"https://reactnative.dev/docs/getting-started",children:"checking its website"})," and then come back here."]}),"\n",(0,s.jsxs)(t.p,{children:["To work with this template you have to install everything what's needed in order to work with React Native,\nmake sure you have ",(0,s.jsx)(t.a,{href:"https://reactnative.dev/docs/environment-setup",children:"environment ready to work with"}),"."]}),"\n",(0,s.jsx)(t.h2,{id:"prerequisites",children:"Prerequisites"}),"\n",(0,s.jsx)(t.p,{children:"These are the versions of tools on which this template was created and tested (higher versions should be also supported):"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://developer.android.com/studio",children:"Android Studio Hedgehog | 2023.1.1 Patch 1"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Gradle 8.3"}),"\n",(0,s.jsx)(t.li,{children:"JDK 17 (Zulu 17)"}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.li,{children:(0,s.jsx)(t.a,{href:"https://apps.apple.com/us/app/xcode/id497799835?mt=12",children:"XCode 15.0"})}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.a,{href:"https://nodejs.org/",children:"Node 20.7.0"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"npm 10.1.0"}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-sh",children:"npx --force react-native init MyApp --template react-native-template-strong --npm\n"})}),"\n",(0,s.jsx)(t.h2,{id:"after-usage",children:"After usage"}),"\n",(0,s.jsx)(t.p,{children:"I strongly advise you to be patient, and check documentation to know about all available features."}),"\n",(0,s.jsxs)(t.p,{children:["If you have any questions regarding any particular decision check ",(0,s.jsx)(t.a,{href:"../faq",children:"FAQ"}),"\nor ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/issues/new/choose",children:"ask a question"}),"\nor ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/discussions",children:"create a discussion"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["If you have any questions you can check the ",(0,s.jsx)(t.a,{href:"../troubleshooting",children:"troubleshooting"})," section."]})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>a});var s=n(7294);const r={},i=s.createContext(r);function a(e){const t=s.useContext(i);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:a(e.components),s.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/d95e32bd.03e80a33.js b/assets/js/d95e32bd.03e80a33.js deleted file mode 100644 index de3e92e5..00000000 --- a/assets/js/d95e32bd.03e80a33.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1390],{3589:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=t(5893),i=t(1151);const o={sidebar_position:11,title:"netInfoHelpers"},r=void 0,a={unversionedId:"helpers/net-info-helpers",id:"helpers/net-info-helpers",title:"netInfoHelpers",description:"Content",source:"@site/docs/helpers/net-info-helpers.md",sourceDirName:"helpers",slug:"/helpers/net-info-helpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/net-info-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:11,frontMatter:{sidebar_position:11,title:"netInfoHelpers"},sidebar:"tutorialSidebar",previous:{title:"inAppReviewHelper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper"},next:{title:"shareHelpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers"}},l={},c=[{value:"Content",id:"content",level:2},{value:"startListeningToNetInfo",id:"startlisteningtonetinfo",level:3},{value:"Usage example",id:"usage-example",level:4},{value:"unsubscribeFromNetInfo",id:"unsubscribefromnetinfo",level:3}];function p(e){const n=Object.assign({h2:"h2",p:"p",a:"a",h3:"h3",code:"code",h4:"h4",pre:"pre"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["Checks Internet connection. Made possible by ",(0,s.jsx)(n.a,{href:"https://github.com/react-native-netinfo/react-native-netinfo",children:"react-native-netinfo"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"startlisteningtonetinfo",children:"startListeningToNetInfo"}),"\n",(0,s.jsxs)(n.p,{children:["Starts listening to net-info changes, and if ",(0,s.jsx)(n.code,{children:"isInternetReachable"})," is equal to ",(0,s.jsx)(n.code,{children:"false"})," then shows ",(0,s.jsx)(n.code,{children:"alert"})," that states that there are no Internet connection and gives user a choice to open settings."]}),"\n",(0,s.jsxs)(n.p,{children:["Won't work if you provide ",(0,s.jsx)(n.code,{children:"IGNORE_NET_INFO"})," as ",(0,s.jsx)(n.code,{children:"true"})," in your environment variables."]}),"\n",(0,s.jsx)(n.p,{children:"Shows only once."}),"\n",(0,s.jsx)(n.p,{children:"Don't forget to unsubscribe."}),"\n",(0,s.jsx)(n.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export function setInitialRoot() {\n Navigation.setRoot({\n root: {\n component: {\n name: Pages.splash.name,\n id: Pages.splash.id,\n options: {\n topBar: {\n visible: false,\n },\n },\n },\n },\n }).then(startListeningToNetInfo);\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"unsubscribefromnetinfo",children:"unsubscribeFromNetInfo"}),"\n",(0,s.jsx)(n.p,{children:"Unsubscribe from listening to net-info changes."})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(p,e)})):p(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>o});var s=t(7294);const i=s.createContext({});function o(e){const n=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||r:o(e),s.createElement(i.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/d95e32bd.2240e801.js b/assets/js/d95e32bd.2240e801.js new file mode 100644 index 00000000..48a7531f --- /dev/null +++ b/assets/js/d95e32bd.2240e801.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1390],{3589:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>r,default:()=>d,frontMatter:()=>o,metadata:()=>a,toc:()=>c});var s=t(5893),i=t(1151);const o={sidebar_position:11,title:"netInfoHelpers"},r=void 0,a={id:"helpers/net-info-helpers",title:"netInfoHelpers",description:"Content",source:"@site/docs/helpers/net-info-helpers.md",sourceDirName:"helpers",slug:"/helpers/net-info-helpers",permalink:"/react-native-template-strong/docs/helpers/net-info-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/net-info-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:11,frontMatter:{sidebar_position:11,title:"netInfoHelpers"},sidebar:"tutorialSidebar",previous:{title:"inAppReviewHelper",permalink:"/react-native-template-strong/docs/helpers/in-app-review-helper"},next:{title:"shareHelpers",permalink:"/react-native-template-strong/docs/helpers/share-helpers"}},l={},c=[{value:"Content",id:"content",level:2},{value:"startListeningToNetInfo",id:"startlisteningtonetinfo",level:3},{value:"Usage example",id:"usage-example",level:4},{value:"unsubscribeFromNetInfo",id:"unsubscribefromnetinfo",level:3}];function p(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["Checks Internet connection. Made possible by ",(0,s.jsx)(n.a,{href:"https://github.com/react-native-netinfo/react-native-netinfo",children:"react-native-netinfo"}),"."]}),"\n",(0,s.jsx)(n.h3,{id:"startlisteningtonetinfo",children:"startListeningToNetInfo"}),"\n",(0,s.jsxs)(n.p,{children:["Starts listening to net-info changes, and if ",(0,s.jsx)(n.code,{children:"isInternetReachable"})," is equal to ",(0,s.jsx)(n.code,{children:"false"})," then shows ",(0,s.jsx)(n.code,{children:"alert"})," that states that there are no Internet connection and gives user a choice to open settings."]}),"\n",(0,s.jsxs)(n.p,{children:["Won't work if you provide ",(0,s.jsx)(n.code,{children:"IGNORE_NET_INFO"})," as ",(0,s.jsx)(n.code,{children:"true"})," in your environment variables."]}),"\n",(0,s.jsx)(n.p,{children:"Shows only once."}),"\n",(0,s.jsx)(n.p,{children:"Don't forget to unsubscribe."}),"\n",(0,s.jsx)(n.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export function setInitialRoot() {\n Navigation.setRoot({\n root: {\n component: {\n name: Pages.splash.name,\n id: Pages.splash.id,\n options: {\n topBar: {\n visible: false,\n },\n },\n },\n },\n }).then(startListeningToNetInfo);\n}\n"})}),"\n",(0,s.jsx)(n.h3,{id:"unsubscribefromnetinfo",children:"unsubscribeFromNetInfo"}),"\n",(0,s.jsx)(n.p,{children:"Unsubscribe from listening to net-info changes."})]})}function d(e={}){const{wrapper:n}={...(0,i.a)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>r});var s=t(7294);const i={},o=s.createContext(i);function r(e){const n=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:r(e.components),s.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/da80d167.6725179b.js b/assets/js/da80d167.6725179b.js new file mode 100644 index 00000000..810cf3e0 --- /dev/null +++ b/assets/js/da80d167.6725179b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5048],{1389:(n,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>s,toc:()=>d});var o=t(5893),r=t(1151);const a={sidebar_position:2,title:"Default options"},i=void 0,s={id:"navigation/default-options",title:"Default options",description:"Content",source:"@site/docs/navigation/default-options.md",sourceDirName:"navigation",slug:"/navigation/default-options",permalink:"/react-native-template-strong/docs/navigation/default-options",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/default-options.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Default options"},sidebar:"tutorialSidebar",previous:{title:"Before starting",permalink:"/react-native-template-strong/docs/navigation/before-starting"},next:{title:"Pages",permalink:"/react-native-template-strong/docs/navigation/pages"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Options",id:"options",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3}];function c(n){const e={a:"a",code:"code",h2:"h2",h3:"h3",p:"p",pre:"pre",...(0,r.a)(),...n.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(e.p,{children:[(0,o.jsx)(e.a,{href:"https://wix.github.io/react-native-navigation/api/options-api#setdefaultoptions",children:"Default options"})," are being set in ",(0,o.jsx)(e.code,{children:"src/navigation/navigation.ts"}),":"]}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",children:'export function setDefaultOptions() {\n Navigation.setDefaultOptions({\n animations: {\n setRoot: {\n waitForRender: true,\n },\n setStackRoot: {\n waitForRender: true,\n },\n },\n layout: {\n componentBackgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n },\n topBar: {\n animate: true,\n drawBehind: !isAndroid,\n background: {\n translucent: true,\n color: platformNativeColor(undefined, PlatformColorsAndroid.navigation),\n },\n title: {\n color: platformNativeColor(undefined, PlatformColorsAndroid.onPrimaryText),\n },\n largeTitle: {\n visible: false,\n },\n scrollEdgeAppearance: {\n active: true,\n noBorder: true,\n },\n searchBar: {\n visible: false,\n hideOnScroll: true,\n hideTopBarOnFocus: true,\n obscuresBackgroundDuringPresentation: true,\n },\n hideNavBarOnFocusSearchBar: true,\n searchBarHiddenWhenScrolling: true,\n searchBarPlaceholder: localization.common.search,\n noBorder: false,\n },\n bottomTabs: {\n animate: true,\n hideShadow: false,\n translucent: true,\n animateTabSelection: true,\n preferLargeIcons: false,\n tabsAttachMode: "together",\n backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.navigation),\n ...Platform.select({\n android: {\n translucent: false,\n borderWidth: 1,\n borderColor: platformNativeColor(undefined, PlatformColorsAndroid.divider),\n },\n }),\n },\n bottomTab: {\n selectedTextColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryText),\n selectedIconColor: platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.onPrimaryText),\n textColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),\n iconColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),\n },\n statusBar: {\n backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.statusbar),\n visible: true,\n },\n });\n}\n'})}),"\n",(0,o.jsx)(e.p,{children:"Here we are setting default options which will be applied to every navigation component which will be created in application."}),"\n",(0,o.jsx)(e.p,{children:"So rather than changing lots of different options in pages, modals, overlays, tabs, it's more convenient to do it once\nand then apply needed changes to certain navigation components."}),"\n",(0,o.jsx)(e.p,{children:"These options are being applied ad the application's initialization:"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:"export function initializeApp() {\n ...\n setDefaultOptions();\n ...\n}\n"})}),"\n",(0,o.jsx)(e.h2,{id:"options",children:"Options"}),"\n",(0,o.jsx)(e.p,{children:"The options which are provided with template are very close to the stock iOS and Android applications."}),"\n",(0,o.jsx)(e.h3,{id:"ios",children:"iOS"}),"\n",(0,o.jsxs)(e.p,{children:["Bars are translucent, in stacks the large title is present and tint color is ",(0,o.jsx)(e.code,{children:"systemBlue"}),"."]}),"\n",(0,o.jsx)(e.h3,{id:"android",children:"Android"}),"\n",(0,o.jsxs)(e.p,{children:["Bars' background is set to follow the Material's primary color while ",(0,o.jsx)(e.code,{children:"light"})," theme is on, and they are dark when ",(0,o.jsx)(e.code,{children:"dark"})," theme is on."]}),"\n",(0,o.jsx)(e.p,{children:"Bottom bar animation is present."}),"\n",(0,o.jsx)(e.p,{children:"Status bar changes its color accordingly to theme."})]})}function p(n={}){const{wrapper:e}={...(0,r.a)(),...n.components};return e?(0,o.jsx)(e,{...n,children:(0,o.jsx)(c,{...n})}):c(n)}},1151:(n,e,t)=>{t.d(e,{Z:()=>s,a:()=>i});var o=t(7294);const r={},a=o.createContext(r);function i(n){const e=o.useContext(a);return o.useMemo((function(){return"function"==typeof n?n(e):{...e,...n}}),[e,n])}function s(n){let e;return e=n.disableParentContext?"function"==typeof n.components?n.components(r):n.components||r:i(n.components),o.createElement(a.Provider,{value:e},n.children)}}}]); \ No newline at end of file diff --git a/assets/js/da80d167.8f9c40c1.js b/assets/js/da80d167.8f9c40c1.js deleted file mode 100644 index 07821dce..00000000 --- a/assets/js/da80d167.8f9c40c1.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[5048],{1389:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>l,contentTitle:()=>i,default:()=>p,frontMatter:()=>r,metadata:()=>s,toc:()=>d});var o=t(5893),a=t(1151);const r={sidebar_position:2,title:"Default options"},i=void 0,s={unversionedId:"navigation/default-options",id:"navigation/default-options",title:"Default options",description:"Content",source:"@site/docs/navigation/default-options.md",sourceDirName:"navigation",slug:"/navigation/default-options",permalink:"/react-native-template-strong/docs/navigation/default-options",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/navigation/default-options.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"Default options"},sidebar:"tutorialSidebar",previous:{title:"Before starting",permalink:"/react-native-template-strong/docs/navigation/before-starting"},next:{title:"Pages",permalink:"/react-native-template-strong/docs/navigation/pages"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Options",id:"options",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3}];function c(e){const n=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre",h3:"h3"},(0,a.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,o.jsxs)(n.p,{children:[(0,o.jsx)(n.a,{href:"https://wix.github.io/react-native-navigation/api/options-api#setdefaultoptions",children:"Default options"})," are being set in ",(0,o.jsx)(n.code,{children:"src/navigation/navigation.ts"}),":"]}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",children:'export function setDefaultOptions() {\n Navigation.setDefaultOptions({\n animations: {\n setRoot: {\n waitForRender: true,\n },\n setStackRoot: {\n waitForRender: true,\n },\n },\n layout: {\n componentBackgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),\n },\n topBar: {\n animate: true,\n drawBehind: !isAndroid,\n background: {\n translucent: true,\n color: platformNativeColor(undefined, PlatformColorsAndroid.navigation),\n },\n title: {\n color: platformNativeColor(undefined, PlatformColorsAndroid.onPrimaryText),\n },\n largeTitle: {\n visible: false,\n },\n scrollEdgeAppearance: {\n active: true,\n noBorder: true,\n },\n searchBar: {\n visible: false,\n hideOnScroll: true,\n hideTopBarOnFocus: true,\n obscuresBackgroundDuringPresentation: true,\n },\n hideNavBarOnFocusSearchBar: true,\n searchBarHiddenWhenScrolling: true,\n searchBarPlaceholder: localization.common.search,\n noBorder: false,\n },\n bottomTabs: {\n animate: true,\n hideShadow: false,\n translucent: true,\n animateTabSelection: true,\n preferLargeIcons: false,\n tabsAttachMode: "together",\n backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.navigation),\n ...Platform.select({\n android: {\n translucent: false,\n borderWidth: 1,\n borderColor: platformNativeColor(undefined, PlatformColorsAndroid.divider),\n },\n }),\n },\n bottomTab: {\n selectedTextColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryText),\n selectedIconColor: platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.onPrimaryText),\n textColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),\n iconColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),\n },\n statusBar: {\n backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.statusbar),\n visible: true,\n },\n });\n}\n'})}),"\n",(0,o.jsx)(n.p,{children:"Here we are setting default options which will be applied to every navigation component which will be created in application."}),"\n",(0,o.jsx)(n.p,{children:"So rather than changing lots of different options in pages, modals, overlays, tabs, it's more convenient to do it once\nand then apply needed changes to certain navigation components."}),"\n",(0,o.jsx)(n.p,{children:"These options are being applied ad the application's initialization:"}),"\n",(0,o.jsx)(n.pre,{children:(0,o.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:"export function initializeApp() {\n ...\n setDefaultOptions();\n ...\n}\n"})}),"\n",(0,o.jsx)(n.h2,{id:"options",children:"Options"}),"\n",(0,o.jsx)(n.p,{children:"The options which are provided with template are very close to the stock iOS and Android applications."}),"\n",(0,o.jsx)(n.h3,{id:"ios",children:"iOS"}),"\n",(0,o.jsxs)(n.p,{children:["Bars are translucent, in stacks the large title is present and tint color is ",(0,o.jsx)(n.code,{children:"systemBlue"}),"."]}),"\n",(0,o.jsx)(n.h3,{id:"android",children:"Android"}),"\n",(0,o.jsxs)(n.p,{children:["Bars' background is set to follow the Material's primary color while ",(0,o.jsx)(n.code,{children:"light"})," theme is on, and they are dark when ",(0,o.jsx)(n.code,{children:"dark"})," theme is on."]}),"\n",(0,o.jsx)(n.p,{children:"Bottom bar animation is present."}),"\n",(0,o.jsx)(n.p,{children:"Status bar changes its color accordingly to theme."})]})}const p=function(e={}){const{wrapper:n}=Object.assign({},(0,a.ah)(),e.components);return n?(0,o.jsx)(n,Object.assign({},e,{children:(0,o.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>s,ah:()=>r});var o=t(7294);const a=o.createContext({});function r(e){const n=o.useContext(a);return o.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const i={};function s({components:e,children:n,disableParentContext:t}){let s;return s=t?"function"==typeof e?e({}):e||i:r(e),o.createElement(a.Provider,{value:s},n)}}}]); \ No newline at end of file diff --git a/assets/js/e1df6725.8ee2038c.js b/assets/js/e1df6725.8ee2038c.js deleted file mode 100644 index eb537a3b..00000000 --- a/assets/js/e1df6725.8ee2038c.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1314],{8578:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>d});var n=s(5893),o=s(1151);const c={sidebar_position:7,title:"Hooks"},r=void 0,i={unversionedId:"redux/hooks",id:"redux/hooks",title:"Hooks",description:"Content",source:"@site/docs/redux/hooks.md",sourceDirName:"redux",slug:"/redux/hooks",permalink:"/react-native-template-strong/docs/redux/hooks",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/hooks.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Hooks"},sidebar:"tutorialSidebar",previous:{title:"AsyncThunk",permalink:"/react-native-template-strong/docs/redux/async-thunk"},next:{title:"Fonts",permalink:"/react-native-template-strong/docs/resources/fonts"}},a={},d=[{value:"Content",id:"content",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",ul:"ul",li:"li",pre:"pre"},(0,o.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Some hooks which are present in ",(0,n.jsx)(t.code,{children:"react-redux"})," have been modified to utilize local store configuration."]}),"\n",(0,n.jsx)(t.p,{children:"These are the changes that were made:"}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"useDispatch"})," becomes ",(0,n.jsx)(t.code,{children:"useAppDispatch"}),":"]}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export const useAppDispatch = () => useDispatch<AppDispatch>();\n"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"useSelector"})," becomes ",(0,n.jsx)(t.code,{children:"useAppSelector"}),":"]}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\n"})}),"\n",(0,n.jsxs)(t.ul,{children:["\n",(0,n.jsxs)(t.li,{children:[(0,n.jsx)(t.code,{children:"createAsyncThunk"})," becomes ",(0,n.jsx)(t.code,{children:"createAppAsyncThunk"}),":"]}),"\n"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",children:"export const createAppAsyncThunk = createAsyncThunk.withTypes<{\n state: RootState;\n dispatch: AppDispatch;\n}>();\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,o.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(l,e)})):l(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>i,ah:()=>c});var n=s(7294);const o=n.createContext({});function c(e){const t=n.useContext(o);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function i({components:e,children:t,disableParentContext:s}){let i;return i=s?"function"==typeof e?e({}):e||r:c(e),n.createElement(o.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/e1df6725.9a0719f9.js b/assets/js/e1df6725.9a0719f9.js new file mode 100644 index 00000000..5f0a8c92 --- /dev/null +++ b/assets/js/e1df6725.9a0719f9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1314],{8578:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>p,frontMatter:()=>c,metadata:()=>i,toc:()=>d});var s=n(5893),o=n(1151);const c={sidebar_position:7,title:"Hooks"},r=void 0,i={id:"redux/hooks",title:"Hooks",description:"Content",source:"@site/docs/redux/hooks.md",sourceDirName:"redux",slug:"/redux/hooks",permalink:"/react-native-template-strong/docs/redux/hooks",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/hooks.md",tags:[],version:"current",lastUpdatedAt:1689098240,formattedLastUpdatedAt:"Jul 11, 2023",sidebarPosition:7,frontMatter:{sidebar_position:7,title:"Hooks"},sidebar:"tutorialSidebar",previous:{title:"AsyncThunk",permalink:"/react-native-template-strong/docs/redux/async-thunk"},next:{title:"Fonts",permalink:"/react-native-template-strong/docs/resources/fonts"}},a={},d=[{value:"Content",id:"content",level:2}];function l(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Some hooks which are present in ",(0,s.jsx)(t.code,{children:"react-redux"})," have been modified to utilize local store configuration."]}),"\n",(0,s.jsx)(t.p,{children:"These are the changes that were made:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"useDispatch"})," becomes ",(0,s.jsx)(t.code,{children:"useAppDispatch"}),":"]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const useAppDispatch = () => useDispatch<AppDispatch>();\n"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"useSelector"})," becomes ",(0,s.jsx)(t.code,{children:"useAppSelector"}),":"]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;\n"})}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"createAsyncThunk"})," becomes ",(0,s.jsx)(t.code,{children:"createAppAsyncThunk"}),":"]}),"\n"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-typescript",children:"export const createAppAsyncThunk = createAsyncThunk.withTypes<{\n state: RootState;\n dispatch: AppDispatch;\n}>();\n"})})]})}function p(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var s=n(7294);const o={},c=s.createContext(o);function r(e){const t=s.useContext(c);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(c.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e2ad1f17.c74488c3.js b/assets/js/e2ad1f17.c74488c3.js new file mode 100644 index 00000000..56413868 --- /dev/null +++ b/assets/js/e2ad1f17.c74488c3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9264],{4173:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>g,frontMatter:()=>s,metadata:()=>r,toc:()=>f});var i=n(5893),o=n(1151);const s={sidebar_position:2,title:"TypeScript config"},c=void 0,r={id:"configs/ts-config",title:"TypeScript config",description:"TypeScript config is strict as ESLint rules and relies on config from eslint-config-react-strong's TypeScript Config",source:"@site/docs/configs/ts-config.md",sourceDirName:"configs",slug:"/configs/ts-config",permalink:"/react-native-template-strong/docs/configs/ts-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/ts-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"TypeScript config"},sidebar:"tutorialSidebar",previous:{title:"React Native config",permalink:"/react-native-template-strong/docs/configs/rn-config"},next:{title:"ESLint config",permalink:"/react-native-template-strong/docs/configs/eslint-config"}},a={},f=[];function p(t){const e={a:"a",p:"p",...(0,o.a)(),...t.components};return(0,i.jsxs)(e.p,{children:["TypeScript config is strict as ESLint rules and relies on config from ",(0,i.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong/blob/master/configs/tsconfig.md",children:"eslint-config-react-strong's TypeScript Config"})]})}function g(t={}){const{wrapper:e}={...(0,o.a)(),...t.components};return e?(0,i.jsx)(e,{...t,children:(0,i.jsx)(p,{...t})}):p(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>r,a:()=>c});var i=n(7294);const o={},s=i.createContext(o);function c(t){const e=i.useContext(s);return i.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function r(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(o):t.components||o:c(t.components),i.createElement(s.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/e2ad1f17.ec08ace9.js b/assets/js/e2ad1f17.ec08ace9.js deleted file mode 100644 index 3cc505b3..00000000 --- a/assets/js/e2ad1f17.ec08ace9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[9264],{4173:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>a,contentTitle:()=>c,default:()=>p,frontMatter:()=>o,metadata:()=>r,toc:()=>f});var i=n(5893),s=n(1151);const o={sidebar_position:2,title:"TypeScript config"},c=void 0,r={unversionedId:"configs/ts-config",id:"configs/ts-config",title:"TypeScript config",description:"TypeScript config is strict as ESLint rules and relies on config from eslint-config-react-strong's TypeScript Config",source:"@site/docs/configs/ts-config.md",sourceDirName:"configs",slug:"/configs/ts-config",permalink:"/react-native-template-strong/docs/configs/ts-config",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/configs/ts-config.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:2,frontMatter:{sidebar_position:2,title:"TypeScript config"},sidebar:"tutorialSidebar",previous:{title:"React Native config",permalink:"/react-native-template-strong/docs/configs/rn-config"},next:{title:"ESLint config",permalink:"/react-native-template-strong/docs/configs/eslint-config"}},a={},f=[];function g(t){const e=Object.assign({p:"p",a:"a"},(0,s.ah)(),t.components);return(0,i.jsxs)(e.p,{children:["TypeScript config is strict as ESLint rules and relies on config from ",(0,i.jsx)(e.a,{href:"https://github.com/svbutko/eslint-config-react-strong/blob/master/configs/tsconfig.md",children:"eslint-config-react-strong's TypeScript Config"})]})}const p=function(t={}){const{wrapper:e}=Object.assign({},(0,s.ah)(),t.components);return e?(0,i.jsx)(e,Object.assign({},t,{children:(0,i.jsx)(g,t)})):g(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>r,ah:()=>o});var i=n(7294);const s=i.createContext({});function o(t){const e=i.useContext(s);return i.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const c={};function r({components:t,children:e,disableParentContext:n}){let r;return r=n?"function"==typeof t?t({}):t||c:o(t),i.createElement(s.Provider,{value:r},e)}}}]); \ No newline at end of file diff --git a/assets/js/e690c9e7.8de738ed.js b/assets/js/e690c9e7.8de738ed.js deleted file mode 100644 index 57015452..00000000 --- a/assets/js/e690c9e7.8de738ed.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7686],{4408:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>c});var o=n(5893),s=n(1151);const d={sidebar_position:25,title:"Checking on updates"},r=void 0,i={unversionedId:"checking-updates",id:"checking-updates",title:"Checking on updates",description:"React Native Template Strong",source:"@site/docs/checking-updates.md",sourceDirName:".",slug:"/checking-updates",permalink:"/react-native-template-strong/docs/checking-updates",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/checking-updates.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:25,frontMatter:{sidebar_position:25,title:"Checking on updates"},sidebar:"tutorialSidebar",previous:{title:"Android internals",permalink:"/react-native-template-strong/docs/internals/android"}},a={},c=[{value:"React Native Template Strong",id:"react-native-template-strong",level:2},{value:"Node",id:"node",level:2},{value:"Brew",id:"brew",level:2},{value:"Node modules",id:"node-modules",level:2},{value:"IDEs and Tools",id:"ides-and-tools",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",a:"a"},(0,s.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"react-native-template-strong",children:"React Native Template Strong"}),"\n",(0,o.jsxs)(t.p,{children:["You can compare the difference between your version of ",(0,o.jsx)(t.code,{children:"react-native-template-strong"}),"\nand the current one using ",(0,o.jsx)(t.code,{children:"compare"})," in the ",(0,o.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/releases",children:"GitHub repository releases"})]}),"\n",(0,o.jsxs)(t.p,{children:["To know on what version of template your app was initially created open ",(0,o.jsx)(t.code,{children:"README"})," file in your local repository, and you'll see ",(0,o.jsx)(t.code,{children:"Version"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["When new version of ",(0,o.jsx)(t.code,{children:"react-native"})," or ",(0,o.jsx)(t.code,{children:"react-native-navigation"})," or ",(0,o.jsx)(t.code,{children:"typescript"})," comes, this template will probably follow this and will be updated too as soon as possible."]}),"\n",(0,o.jsx)(t.h2,{id:"node",children:"Node"}),"\n",(0,o.jsxs)(t.p,{children:["Check on ",(0,o.jsx)(t.code,{children:"node"})," and ",(0,o.jsx)(t.code,{children:"npm"})," updates on ",(0,o.jsx)(t.a,{href:"https://nodejs.org/en/",children:"nodejs.org"})," and install current (latest features) version."]}),"\n",(0,o.jsx)(t.h2,{id:"brew",children:"Brew"}),"\n",(0,o.jsxs)(t.p,{children:["Run ",(0,o.jsx)(t.code,{children:"brew update"})," to update ",(0,o.jsx)(t.a,{href:"https://brew.sh",children:"Homebrew"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["After run ",(0,o.jsx)(t.code,{children:"brew outdated"})," to see outdated list of dependencies and if there are some then run ",(0,o.jsx)(t.code,{children:"brew upgrade"})," to keep the latest versions of depedencies like ",(0,o.jsx)(t.code,{children:"watchman"}),", ",(0,o.jsx)(t.code,{children:"adoptopenjdk11"}),", ",(0,o.jsx)(t.code,{children:"node"}),", ",(0,o.jsx)(t.code,{children:"fastlane"})," and many others."]}),"\n",(0,o.jsx)(t.h2,{id:"node-modules",children:"Node modules"}),"\n",(0,o.jsxs)(t.p,{children:["Check on updates of ",(0,o.jsx)(t.code,{children:"node_modules"})," of your own project to keep up with the latest releases by running ",(0,o.jsx)(t.code,{children:"npm run check-dependencies-updates"}),".\nCheck what's new and update if needed."]}),"\n",(0,o.jsx)(t.h2,{id:"ides-and-tools",children:"IDEs and Tools"}),"\n",(0,o.jsxs)(t.p,{children:["Try to keep your primary IDEs like ",(0,o.jsx)(t.code,{children:"Android Studio"}),", ",(0,o.jsx)(t.code,{children:"XCode"}),", ",(0,o.jsx)(t.code,{children:"VSCode"}),", ",(0,o.jsx)(t.code,{children:"WebStorm"})," and tools like ",(0,o.jsx)(t.code,{children:"Flipper"}),", ",(0,o.jsx)(t.code,{children:"Postman"})," updated too."]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>i,ah:()=>d});var o=n(7294);const s=o.createContext({});function d(e){const t=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||r:d(e),o.createElement(s.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/e690c9e7.a8a7b878.js b/assets/js/e690c9e7.a8a7b878.js new file mode 100644 index 00000000..2a7ccffb --- /dev/null +++ b/assets/js/e690c9e7.a8a7b878.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[7686],{4408:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>r,default:()=>h,frontMatter:()=>d,metadata:()=>i,toc:()=>c});var o=n(5893),s=n(1151);const d={sidebar_position:25,title:"Checking on updates"},r=void 0,i={id:"checking-updates",title:"Checking on updates",description:"React Native Template Strong",source:"@site/docs/checking-updates.md",sourceDirName:".",slug:"/checking-updates",permalink:"/react-native-template-strong/docs/checking-updates",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/checking-updates.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:25,frontMatter:{sidebar_position:25,title:"Checking on updates"},sidebar:"tutorialSidebar",previous:{title:"Android internals",permalink:"/react-native-template-strong/docs/internals/android"}},a={},c=[{value:"React Native Template Strong",id:"react-native-template-strong",level:2},{value:"Node",id:"node",level:2},{value:"Brew",id:"brew",level:2},{value:"Node modules",id:"node-modules",level:2},{value:"IDEs and Tools",id:"ides-and-tools",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"react-native-template-strong",children:"React Native Template Strong"}),"\n",(0,o.jsxs)(t.p,{children:["You can compare the difference between your version of ",(0,o.jsx)(t.code,{children:"react-native-template-strong"}),"\nand the current one using ",(0,o.jsx)(t.code,{children:"compare"})," in the ",(0,o.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/releases",children:"GitHub repository releases"})]}),"\n",(0,o.jsxs)(t.p,{children:["To know on what version of template your app was initially created open ",(0,o.jsx)(t.code,{children:"README"})," file in your local repository, and you'll see ",(0,o.jsx)(t.code,{children:"Version"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["When new version of ",(0,o.jsx)(t.code,{children:"react-native"})," or ",(0,o.jsx)(t.code,{children:"react-native-navigation"})," or ",(0,o.jsx)(t.code,{children:"typescript"})," comes, this template will probably follow this and will be updated too as soon as possible."]}),"\n",(0,o.jsx)(t.h2,{id:"node",children:"Node"}),"\n",(0,o.jsxs)(t.p,{children:["Check on ",(0,o.jsx)(t.code,{children:"node"})," and ",(0,o.jsx)(t.code,{children:"npm"})," updates on ",(0,o.jsx)(t.a,{href:"https://nodejs.org/en/",children:"nodejs.org"})," and install current (latest features) version."]}),"\n",(0,o.jsx)(t.h2,{id:"brew",children:"Brew"}),"\n",(0,o.jsxs)(t.p,{children:["Run ",(0,o.jsx)(t.code,{children:"brew update"})," to update ",(0,o.jsx)(t.a,{href:"https://brew.sh",children:"Homebrew"}),"."]}),"\n",(0,o.jsxs)(t.p,{children:["After run ",(0,o.jsx)(t.code,{children:"brew outdated"})," to see outdated list of dependencies and if there are some then run ",(0,o.jsx)(t.code,{children:"brew upgrade"})," to keep the latest versions of depedencies like ",(0,o.jsx)(t.code,{children:"watchman"}),", ",(0,o.jsx)(t.code,{children:"adoptopenjdk11"}),", ",(0,o.jsx)(t.code,{children:"node"}),", ",(0,o.jsx)(t.code,{children:"fastlane"})," and many others."]}),"\n",(0,o.jsx)(t.h2,{id:"node-modules",children:"Node modules"}),"\n",(0,o.jsxs)(t.p,{children:["Check on updates of ",(0,o.jsx)(t.code,{children:"node_modules"})," of your own project to keep up with the latest releases by running ",(0,o.jsx)(t.code,{children:"npm run check-dependencies-updates"}),".\nCheck what's new and update if needed."]}),"\n",(0,o.jsx)(t.h2,{id:"ides-and-tools",children:"IDEs and Tools"}),"\n",(0,o.jsxs)(t.p,{children:["Try to keep your primary IDEs like ",(0,o.jsx)(t.code,{children:"Android Studio"}),", ",(0,o.jsx)(t.code,{children:"XCode"}),", ",(0,o.jsx)(t.code,{children:"VSCode"}),", ",(0,o.jsx)(t.code,{children:"WebStorm"})," and tools like ",(0,o.jsx)(t.code,{children:"Flipper"}),", ",(0,o.jsx)(t.code,{children:"Postman"})," updated too."]})]})}function h(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var o=n(7294);const s={},d=o.createContext(s);function r(e){const t=o.useContext(d);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),o.createElement(d.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/e7a9e65a.0490afce.js b/assets/js/e7a9e65a.0490afce.js new file mode 100644 index 00000000..dd7f811e --- /dev/null +++ b/assets/js/e7a9e65a.0490afce.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3518],{8969:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>r,contentTitle:()=>i,default:()=>x,frontMatter:()=>o,metadata:()=>a,toc:()=>d});var s=n(5893),l=n(1151);const o={sidebar_position:16,title:"ToastOverlay"},i=void 0,a={id:"components/toast-overlay",title:"ToastOverlay",description:"Content",source:"@site/docs/components/toast-overlay.md",sourceDirName:"components",slug:"/components/toast-overlay",permalink:"/react-native-template-strong/docs/components/toast-overlay",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/toast-overlay.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:16,frontMatter:{sidebar_position:16,title:"ToastOverlay"},sidebar:"tutorialSidebar",previous:{title:"DatePickerOverlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay"},next:{title:"Native splash",permalink:"/react-native-template-strong/docs/pages/native-splash"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(t){const e={admonition:"admonition",code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,l.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(e.admonition,{title:"Do not use this component directly!",type:"danger",children:(0,s.jsxs)(e.p,{children:["Use ",(0,s.jsx)(e.code,{children:"showToast"})," to present this component because it's linked to navigation."]})}),"\n",(0,s.jsx)(e.p,{children:"Represents a simple toast overlay which animatedly appears for 3 seconds with presented text and the animatedly disappears."}),"\n",(0,s.jsx)(e.h2,{id:"params",children:"Params"}),"\n",(0,s.jsxs)(e.table,{children:[(0,s.jsx)(e.thead,{children:(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.th,{style:{textAlign:"left"},children:"Name"}),(0,s.jsx)(e.th,{style:{textAlign:"left"},children:"Type"}),(0,s.jsx)(e.th,{style:{textAlign:"left"},children:"Required"}),(0,s.jsx)(e.th,{style:{textAlign:"left"},children:"Default value"}),(0,s.jsx)(e.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,s.jsxs)(e.tbody,{children:[(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"text"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"string"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"True"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"-"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Text which will be shown"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"textStyle"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"TextStyle"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Style of text"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"icon"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"ImageURISource"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Icon which will be shown on the lft side from message"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"iconStyle"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"ImageStyle"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Icon style"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"loading"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"boolean"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Undefined"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Shows activity indicator"})]}),(0,s.jsxs)(e.tr,{children:[(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"location"}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:(0,s.jsx)(e.code,{children:"bottom or top"})}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"False"}),(0,s.jsxs)(e.td,{style:{textAlign:"left"},children:[(0,s.jsx)(e.code,{children:"top"})," on iOS, ",(0,s.jsx)(e.code,{children:"bottom"})," on Android"]}),(0,s.jsx)(e.td,{style:{textAlign:"left"},children:"Location of toast"})]})]})]}),"\n",(0,s.jsx)(e.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:' const showTopToast = useCallback(() => {\n showToast({\n text: "Toast message text",\n location: "top",\n });\n}, []);\n\nconst showBottomToast = useCallback(() => {\n showToast({\n text: "Toast message text",\n location: "bottom",\n });\n}, []);\n\nconst showBottomToastLoading = useCallback(() => {\n showToast({\n text: "Loading message",\n location: "bottom",\n loading: true,\n });\n}, []);\n\nconst showBottomToastIcon = useCallback(() => {\n showToast({\n text: "Message with icon",\n location: "bottom",\n icon: ImageResources.camera,\n iconStyle: {tintColor: Colors.red},\n });\n}, []);\n\nreturn (\n <ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>\n <PrimaryButton type={ButtonType.solid} label={"Show top toast"} onPress={showTopToast} />\n <PrimaryButton type={ButtonType.solid} label={"Show bottom toast"} onPress={showBottomToast} />\n <PrimaryButton type={ButtonType.solid} label={"Show loading"} onPress={showBottomToastLoading} />\n <PrimaryButton type={ButtonType.solid} label={"Show icon"} onPress={showBottomToastIcon} />\n </ScrollView>\n);\n'})})]})}function x(t={}){const{wrapper:e}={...(0,l.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(c,{...t})}):c(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>a,a:()=>i});var s=n(7294);const l={},o=s.createContext(l);function i(t){const e=s.useContext(o);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function a(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(l):t.components||l:i(t.components),s.createElement(o.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/e7a9e65a.3701b4d9.js b/assets/js/e7a9e65a.3701b4d9.js deleted file mode 100644 index f2d1027d..00000000 --- a/assets/js/e7a9e65a.3701b4d9.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3518],{8969:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>r,contentTitle:()=>a,default:()=>h,frontMatter:()=>l,metadata:()=>i,toc:()=>d});var o=n(5893),s=n(1151);const l={sidebar_position:16,title:"ToastOverlay"},a=void 0,i={unversionedId:"components/toast-overlay",id:"components/toast-overlay",title:"ToastOverlay",description:"Content",source:"@site/docs/components/toast-overlay.md",sourceDirName:"components",slug:"/components/toast-overlay",permalink:"/react-native-template-strong/docs/components/toast-overlay",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/toast-overlay.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:16,frontMatter:{sidebar_position:16,title:"ToastOverlay"},sidebar:"tutorialSidebar",previous:{title:"DatePickerOverlay",permalink:"/react-native-template-strong/docs/components/date-picker-overlay"},next:{title:"Native splash",permalink:"/react-native-template-strong/docs/pages/native-splash"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(t){const e=Object.assign({h2:"h2",admonition:"admonition",p:"p",code:"code",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,s.ah)(),t.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(e.admonition,{title:"Do not use this component directly!",type:"danger",children:(0,o.jsxs)(e.p,{children:["Use ",(0,o.jsx)(e.code,{children:"showToast"})," to present this component because it's linked to navigation."]})}),"\n",(0,o.jsx)(e.p,{children:"Represents a simple toast overlay which animatedly appears for 3 seconds with presented text and the animatedly disappears."}),"\n",(0,o.jsx)(e.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,o.jsxs)(e.table,{children:[(0,o.jsx)(e.thead,{children:(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.th,{align:"left",children:"Name"}),(0,o.jsx)(e.th,{align:"left",children:"Type"}),(0,o.jsx)(e.th,{align:"left",children:"Required"}),(0,o.jsx)(e.th,{align:"left",children:"Default value"}),(0,o.jsx)(e.th,{align:"left",children:"Description"})]})}),(0,o.jsxs)(e.tbody,{children:[(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"text"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"string"})}),(0,o.jsx)(e.td,{align:"left",children:"True"}),(0,o.jsx)(e.td,{align:"left",children:"-"}),(0,o.jsx)(e.td,{align:"left",children:"Text which will be shown"})]}),(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"textStyle"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"TextStyle"})}),(0,o.jsx)(e.td,{align:"left",children:"False"}),(0,o.jsx)(e.td,{align:"left",children:"Undefined"}),(0,o.jsx)(e.td,{align:"left",children:"Style of text"})]}),(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"icon"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"ImageURISource"})}),(0,o.jsx)(e.td,{align:"left",children:"False"}),(0,o.jsx)(e.td,{align:"left",children:"Undefined"}),(0,o.jsx)(e.td,{align:"left",children:"Icon which will be shown on the lft side from message"})]}),(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"iconStyle"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"ImageStyle"})}),(0,o.jsx)(e.td,{align:"left",children:"False"}),(0,o.jsx)(e.td,{align:"left",children:"Undefined"}),(0,o.jsx)(e.td,{align:"left",children:"Icon style"})]}),(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"loading"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"boolean"})}),(0,o.jsx)(e.td,{align:"left",children:"False"}),(0,o.jsx)(e.td,{align:"left",children:"Undefined"}),(0,o.jsx)(e.td,{align:"left",children:"Shows activity indicator"})]}),(0,o.jsxs)(e.tr,{children:[(0,o.jsx)(e.td,{align:"left",children:"location"}),(0,o.jsx)(e.td,{align:"left",children:(0,o.jsx)(e.code,{children:"bottom or top"})}),(0,o.jsx)(e.td,{align:"left",children:"False"}),(0,o.jsxs)(e.td,{align:"left",children:[(0,o.jsx)(e.code,{children:"top"})," on iOS, ",(0,o.jsx)(e.code,{children:"bottom"})," on Android"]}),(0,o.jsx)(e.td,{align:"left",children:"Location of toast"})]})]})]}),"\n",(0,o.jsx)(e.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,o.jsx)(e.pre,{children:(0,o.jsx)(e.code,{className:"language-typescript",metastring:"jsx",children:' const showTopToast = useCallback(() => {\n showToast({\n text: "Toast message text",\n location: "top",\n });\n}, []);\n\nconst showBottomToast = useCallback(() => {\n showToast({\n text: "Toast message text",\n location: "bottom",\n });\n}, []);\n\nconst showBottomToastLoading = useCallback(() => {\n showToast({\n text: "Loading message",\n location: "bottom",\n loading: true,\n });\n}, []);\n\nconst showBottomToastIcon = useCallback(() => {\n showToast({\n text: "Message with icon",\n location: "bottom",\n icon: ImageResources.camera,\n iconStyle: {tintColor: Colors.red},\n });\n}, []);\n\nreturn (\n <ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>\n <PrimaryButton type={ButtonType.solid} label={"Show top toast"} onPress={showTopToast} />\n <PrimaryButton type={ButtonType.solid} label={"Show bottom toast"} onPress={showBottomToast} />\n <PrimaryButton type={ButtonType.solid} label={"Show loading"} onPress={showBottomToastLoading} />\n <PrimaryButton type={ButtonType.solid} label={"Show icon"} onPress={showBottomToastIcon} />\n </ScrollView>\n);\n'})})]})}const h=function(t={}){const{wrapper:e}=Object.assign({},(0,s.ah)(),t.components);return e?(0,o.jsx)(e,Object.assign({},t,{children:(0,o.jsx)(c,t)})):c(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>i,ah:()=>l});var o=n(7294);const s=o.createContext({});function l(t){const e=o.useContext(s);return o.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const a={};function i({components:t,children:e,disableParentContext:n}){let i;return i=n?"function"==typeof t?t({}):t||a:l(t),o.createElement(s.Provider,{value:i},e)}}}]); \ No newline at end of file diff --git a/assets/js/eb838824.b932796e.js b/assets/js/eb838824.b932796e.js deleted file mode 100644 index 374de65a..00000000 --- a/assets/js/eb838824.b932796e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4697],{5759:(e,t,s)=>{s.r(t),s.d(t,{assets:()=>r,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>i,toc:()=>d});var n=s(5893),a=s(1151);const o={sidebar_position:20,title:"Patches"},c=void 0,i={unversionedId:"patches",id:"patches",title:"Patches",description:"Content",source:"@site/docs/patches.md",sourceDirName:".",slug:"/patches",permalink:"/react-native-template-strong/docs/patches",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/patches.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:20,frontMatter:{sidebar_position:20,title:"Patches"},sidebar:"tutorialSidebar",previous:{title:"Types",permalink:"/react-native-template-strong/docs/types"},next:{title:"App icon",permalink:"/react-native-template-strong/docs/app-icon"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function p(e){const t=Object.assign({h2:"h2",p:"p",a:"a",code:"code",pre:"pre"},(0,a.ah)(),e.components);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsxs)(t.p,{children:["Work with patches made possible by ",(0,n.jsx)(t.a,{href:"https://github.com/ds300/patch-package",children:"patch-package"}),"."]}),"\n",(0,n.jsxs)(t.p,{children:["Sometimes it's needed to make changes in packages from ",(0,n.jsx)(t.code,{children:"node_modules"}),"."]}),"\n",(0,n.jsx)(t.p,{children:"There might be an error, mistake, or you need to adjust module to your needs."}),"\n",(0,n.jsx)(t.p,{children:"The best possible way to do so is to make a fork and propose your changes.\nBut this might take some time to accept your changes, or maintainer refuses to accept them,\nor even worse, dependency is not maintained anymore."}),"\n",(0,n.jsx)(t.p,{children:"To handle this situation the best possible way is to make a local patch."}),"\n",(0,n.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,n.jsxs)(t.p,{children:["First make changes to the files of a particular package in your ",(0,n.jsx)(t.code,{children:"node_modules"})," folder, then run"]}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-shell",children:"npx patch-package package-name\n"})}),"\n",(0,n.jsxs)(t.p,{children:["where ",(0,n.jsx)(t.code,{children:"package-name"})," matches the name of the package you made changes to."]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,n.jsx)(t,Object.assign({},e,{children:(0,n.jsx)(p,e)})):p(e)}},1151:(e,t,s)=>{s.d(t,{Zo:()=>i,ah:()=>o});var n=s(7294);const a=n.createContext({});function o(e){const t=n.useContext(a);return n.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const c={};function i({components:e,children:t,disableParentContext:s}){let i;return i=s?"function"==typeof e?e({}):e||c:o(e),n.createElement(a.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/eb838824.dd21056d.js b/assets/js/eb838824.dd21056d.js new file mode 100644 index 00000000..147ade43 --- /dev/null +++ b/assets/js/eb838824.dd21056d.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[4697],{5759:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>i,contentTitle:()=>c,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var s=n(5893),a=n(1151);const o={sidebar_position:20,title:"Patches"},c=void 0,r={id:"patches",title:"Patches",description:"Content",source:"@site/docs/patches.md",sourceDirName:".",slug:"/patches",permalink:"/react-native-template-strong/docs/patches",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/patches.md",tags:[],version:"current",lastUpdatedAt:1633518181,formattedLastUpdatedAt:"Oct 6, 2021",sidebarPosition:20,frontMatter:{sidebar_position:20,title:"Patches"},sidebar:"tutorialSidebar",previous:{title:"Types",permalink:"/react-native-template-strong/docs/types"},next:{title:"App icon",permalink:"/react-native-template-strong/docs/app-icon"}},i={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2}];function p(e){const t={a:"a",code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(t.p,{children:["Work with patches made possible by ",(0,s.jsx)(t.a,{href:"https://github.com/ds300/patch-package",children:"patch-package"}),"."]}),"\n",(0,s.jsxs)(t.p,{children:["Sometimes it's needed to make changes in packages from ",(0,s.jsx)(t.code,{children:"node_modules"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"There might be an error, mistake, or you need to adjust module to your needs."}),"\n",(0,s.jsx)(t.p,{children:"The best possible way to do so is to make a fork and propose your changes.\nBut this might take some time to accept your changes, or maintainer refuses to accept them,\nor even worse, dependency is not maintained anymore."}),"\n",(0,s.jsx)(t.p,{children:"To handle this situation the best possible way is to make a local patch."}),"\n",(0,s.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,s.jsxs)(t.p,{children:["First make changes to the files of a particular package in your ",(0,s.jsx)(t.code,{children:"node_modules"})," folder, then run"]}),"\n",(0,s.jsx)(t.pre,{children:(0,s.jsx)(t.code,{className:"language-shell",children:"npx patch-package package-name\n"})}),"\n",(0,s.jsxs)(t.p,{children:["where ",(0,s.jsx)(t.code,{children:"package-name"})," matches the name of the package you made changes to."]})]})}function h(e={}){const{wrapper:t}={...(0,a.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>c});var s=n(7294);const a={},o=s.createContext(a);function c(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(a):e.components||a:c(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec7be5cc.0e067126.js b/assets/js/ec7be5cc.0e067126.js new file mode 100644 index 00000000..b273bcec --- /dev/null +++ b/assets/js/ec7be5cc.0e067126.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8471],{7719:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(5893),r=n(1151);const s={sidebar_position:4,title:"Date formatter"},o=void 0,i={id:"localisation/date-formatter",title:"Date formatter",description:"Content",source:"@site/docs/localisation/date-formatter.md",sourceDirName:"localisation",slug:"/localisation/date-formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/date-formatter.md",tags:[],version:"current",lastUpdatedAt:1634101010,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Date formatter"},sidebar:"tutorialSidebar",previous:{title:"Change language",permalink:"/react-native-template-strong/docs/localisation/change-language"},next:{title:"Intl formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter"}},d={},c=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Check how it looks",id:"check-how-it-looks",level:2}];function l(e){const t={code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(t.p,{children:"Contains date converters and date formatters based on current language."}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"DateFormat"})," - enum of possible formats you can use (you can add you own)"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromString"})," - tries to convert string represented as date to ",(0,a.jsx)(t.code,{children:"Date"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromUnknown"})," - tries to convert any type possibly represented as date to ",(0,a.jsx)(t.code,{children:"Date"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromFormat"})," - takes date and format and returns the formatted string"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"calendarDate"})," - takes date and formats it to calendar (tomorrow, yesterday, today etc.) date and returns the formatted string"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"getUnixDate"})," - returns given date as ",(0,a.jsx)(t.code,{children:"unix"})," number"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"getInitialDate"})," - takes the date if it exists and returns it otherwise if the date is equal to null returns ",(0,a.jsx)(t.code,{children:"defaultDate"})," or current date"]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromString"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:'dateFromString("2021-10-01");\n//2021-10-01T00:00:00.000Z as Date\n'})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromUnknown"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"dateFromUnknown(1234567891011);\n//2009-02-13T23:31:31.011Z as Date\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromFormat"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"dateFromFormat(new Date(), DateFormat.yearDateTime);\n//2021.10.04 12:13\n\ndateFromFormat(new Date(), DateFormat.shortMonthYear);\n//Oct 2021\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"calendarDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"calendarDate(new Date());\n//Today at 12:14 PM\n\ncalendarDate(new Date(), true)\n//Today\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"getUnixDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"getUnixDate(new Date());\n//1633338938000\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"getInitialDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:'getInitialDate(new Date());\n// 2021-10-04T09:16:17.565Z\n\ngetInitialDate(null, new Date("2012-10-01"));\n//2012-10-01T00:00:00.000Z\n'})}),"\n",(0,a.jsx)(t.h2,{id:"check-how-it-looks",children:"Check how it looks"}),"\n",(0,a.jsxs)(t.p,{children:["You can open StoryBook and open ",(0,a.jsx)(t.code,{children:"Format"})," -> ",(0,a.jsx)(t.code,{children:"Date Formats"})," and ",(0,a.jsx)(t.code,{children:"Date Formats Enum"})," stories and see how they are being applied."]})]})}function h(e={}){const{wrapper:t}={...(0,r.a)(),...e.components};return t?(0,a.jsx)(t,{...e,children:(0,a.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>o});var a=n(7294);const r={},s=a.createContext(r);function o(e){const t=a.useContext(s);return a.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ec7be5cc.c2f58dfb.js b/assets/js/ec7be5cc.c2f58dfb.js deleted file mode 100644 index ec8a56fb..00000000 --- a/assets/js/ec7be5cc.c2f58dfb.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8471],{7719:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>i,toc:()=>c});var a=n(5893),r=n(1151);const s={sidebar_position:4,title:"Date formatter"},o=void 0,i={unversionedId:"localisation/date-formatter",id:"localisation/date-formatter",title:"Date formatter",description:"Content",source:"@site/docs/localisation/date-formatter.md",sourceDirName:"localisation",slug:"/localisation/date-formatter",permalink:"/react-native-template-strong/docs/localisation/date-formatter",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/localisation/date-formatter.md",tags:[],version:"current",lastUpdatedAt:1634101010,formattedLastUpdatedAt:"Oct 13, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"Date formatter"},sidebar:"tutorialSidebar",previous:{title:"Change language",permalink:"/react-native-template-strong/docs/localisation/change-language"},next:{title:"Intl formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter"}},d={},c=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Check how it looks",id:"check-how-it-looks",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",ul:"ul",li:"li",code:"code",pre:"pre"},(0,r.ah)(),e.components);return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,a.jsx)(t.p,{children:"Contains date converters and date formatters based on current language."}),"\n",(0,a.jsxs)(t.ul,{children:["\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"DateFormat"})," - enum of possible formats you can use (you can add you own)"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromString"})," - tries to convert string represented as date to ",(0,a.jsx)(t.code,{children:"Date"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromUnknown"})," - tries to convert any type possibly represented as date to ",(0,a.jsx)(t.code,{children:"Date"})]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"dateFromFormat"})," - takes date and format and returns the formatted string"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"calendarDate"})," - takes date and formats it to calendar (tomorrow, yesterday, today etc.) date and returns the formatted string"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"getUnixDate"})," - returns given date as ",(0,a.jsx)(t.code,{children:"unix"})," number"]}),"\n",(0,a.jsxs)(t.li,{children:[(0,a.jsx)(t.code,{children:"getInitialDate"})," - takes the date if it exists and returns it otherwise if the date is equal to null returns ",(0,a.jsx)(t.code,{children:"defaultDate"})," or current date"]}),"\n"]}),"\n",(0,a.jsx)(t.h2,{id:"usage",children:"Usage"}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromString"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:'dateFromString("2021-10-01");\n//2021-10-01T00:00:00.000Z as Date\n'})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromUnknown"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"dateFromUnknown(1234567891011);\n//2009-02-13T23:31:31.011Z as Date\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"dateFromFormat"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"dateFromFormat(new Date(), DateFormat.yearDateTime);\n//2021.10.04 12:13\n\ndateFromFormat(new Date(), DateFormat.shortMonthYear);\n//Oct 2021\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"calendarDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"calendarDate(new Date());\n//Today at 12:14 PM\n\ncalendarDate(new Date(), true)\n//Today\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"getUnixDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:"getUnixDate(new Date());\n//1633338938000\n"})}),"\n",(0,a.jsxs)(t.p,{children:[(0,a.jsx)(t.code,{children:"getInitialDate"}),":"]}),"\n",(0,a.jsx)(t.pre,{children:(0,a.jsx)(t.code,{className:"language-typescript",children:'getInitialDate(new Date());\n// 2021-10-04T09:16:17.565Z\n\ngetInitialDate(null, new Date("2012-10-01"));\n//2012-10-01T00:00:00.000Z\n'})}),"\n",(0,a.jsx)(t.h2,{id:"check-how-it-looks",children:"Check how it looks"}),"\n",(0,a.jsxs)(t.p,{children:["You can open StoryBook and open ",(0,a.jsx)(t.code,{children:"Format"})," -> ",(0,a.jsx)(t.code,{children:"Date Formats"})," and ",(0,a.jsx)(t.code,{children:"Date Formats Enum"})," stories and see how they are being applied."]})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,r.ah)(),e.components);return t?(0,a.jsx)(t,Object.assign({},e,{children:(0,a.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>i,ah:()=>s});var a=n(7294);const r=a.createContext({});function s(e){const t=a.useContext(r);return a.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function i({components:e,children:t,disableParentContext:n}){let i;return i=n?"function"==typeof e?e({}):e||o:s(e),a.createElement(r.Provider,{value:i},t)}}}]); \ No newline at end of file diff --git a/assets/js/edb259cb.b9d7e83a.js b/assets/js/edb259cb.b9d7e83a.js new file mode 100644 index 00000000..1556802a --- /dev/null +++ b/assets/js/edb259cb.b9d7e83a.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1889],{2625:(e,t,r)=>{r.r(t),r.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>l,metadata:()=>a,toc:()=>c});var n=r(5893),s=r(1151);const l={sidebar_position:5,title:"imageHelpers"},i=void 0,a={id:"helpers/image-helpers",title:"imageHelpers",description:"Content",source:"@site/docs/helpers/image-helpers.md",sourceDirName:"helpers",slug:"/helpers/image-helpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/image-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"imageHelpers"},sidebar:"tutorialSidebar",previous:{title:"dialogsHelpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers"},next:{title:"orientationHelpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers"}},o={},c=[{value:"Content",id:"content",level:2},{value:"convertCropperImageToBase64",id:"convertcropperimagetobase64",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function d(e){const t={code:"code",h2:"h2",h3:"h3",h4:"h4",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,n.jsx)(t.p,{children:"Used to convert and apply different changes to images"}),"\n",(0,n.jsx)(t.h3,{id:"convertcropperimagetobase64",children:"convertCropperImageToBase64"}),"\n",(0,n.jsxs)(t.p,{children:["Converts ",(0,n.jsx)(t.code,{children:"CropperImage"})," from ",(0,n.jsx)(t.code,{children:"react-native-image-crop-picker"})," to base64 string using ",(0,n.jsx)(t.code,{children:"mime"})," and ",(0,n.jsx)(t.code,{children:"data"}),"."]}),"\n",(0,n.jsx)(t.h4,{id:"params",children:"Params"}),"\n",(0,n.jsxs)(t.table,{children:[(0,n.jsx)(t.thead,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,n.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,n.jsx)(t.tbody,{children:(0,n.jsxs)(t.tr,{children:[(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"image"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:(0,n.jsx)(t.code,{children:"CropperImage"})}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,n.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,n.jsxs)(t.td,{style:{textAlign:"left"},children:["Picked image as result from ",(0,n.jsx)(t.code,{children:"react-native-image-crop-picker"})]})]})})]}),"\n",(0,n.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,n.jsx)(t.pre,{children:(0,n.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const onImagePicked = useCallback((nextImage) => {\n convertCropperImageToBase64(nextImage);\n}, []);\n"})})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,n.jsx)(t,{...e,children:(0,n.jsx)(d,{...e})}):d(e)}},1151:(e,t,r)=>{r.d(t,{Z:()=>a,a:()=>i});var n=r(7294);const s={},l=n.createContext(s);function i(e){const t=n.useContext(l);return n.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:i(e.components),n.createElement(l.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/edb259cb.dad21e98.js b/assets/js/edb259cb.dad21e98.js deleted file mode 100644 index ceca961e..00000000 --- a/assets/js/edb259cb.dad21e98.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1889],{2625:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>o,contentTitle:()=>i,default:()=>p,frontMatter:()=>a,metadata:()=>l,toc:()=>c});var r=n(5893),s=n(1151);const a={sidebar_position:5,title:"imageHelpers"},i=void 0,l={unversionedId:"helpers/image-helpers",id:"helpers/image-helpers",title:"imageHelpers",description:"Content",source:"@site/docs/helpers/image-helpers.md",sourceDirName:"helpers",slug:"/helpers/image-helpers",permalink:"/react-native-template-strong/docs/helpers/image-helpers",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/helpers/image-helpers.md",tags:[],version:"current",lastUpdatedAt:1633852672,formattedLastUpdatedAt:"Oct 10, 2021",sidebarPosition:5,frontMatter:{sidebar_position:5,title:"imageHelpers"},sidebar:"tutorialSidebar",previous:{title:"dialogsHelpers",permalink:"/react-native-template-strong/docs/helpers/dialogs-helpers"},next:{title:"orientationHelpers",permalink:"/react-native-template-strong/docs/helpers/orientation-helpers"}},o={},c=[{value:"Content",id:"content",level:2},{value:"convertCropperImageToBase64",id:"convertcropperimagetobase64",level:3},{value:"Params",id:"params",level:4},{value:"Usage example",id:"usage-example",level:4}];function d(e){const t=Object.assign({h2:"h2",p:"p",h3:"h3",code:"code",h4:"h4",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",pre:"pre"},(0,s.ah)(),e.components);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,r.jsx)(t.p,{children:"Used to convert and apply different changes to images"}),"\n",(0,r.jsx)(t.h3,{id:"convertcropperimagetobase64",children:"convertCropperImageToBase64"}),"\n",(0,r.jsxs)(t.p,{children:["Converts ",(0,r.jsx)(t.code,{children:"CropperImage"})," from ",(0,r.jsx)(t.code,{children:"react-native-image-crop-picker"})," to base64 string using ",(0,r.jsx)(t.code,{children:"mime"})," and ",(0,r.jsx)(t.code,{children:"data"}),"."]}),"\n",(0,r.jsx)(t.h4,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,r.jsxs)(t.table,{children:[(0,r.jsx)(t.thead,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.th,{align:"left",children:"Name"}),(0,r.jsx)(t.th,{align:"left",children:"Type"}),(0,r.jsx)(t.th,{align:"left",children:"Required"}),(0,r.jsx)(t.th,{align:"left",children:"Default value"}),(0,r.jsx)(t.th,{align:"left",children:"Description"})]})}),(0,r.jsx)(t.tbody,{children:(0,r.jsxs)(t.tr,{children:[(0,r.jsx)(t.td,{align:"left",children:"image"}),(0,r.jsx)(t.td,{align:"left",children:(0,r.jsx)(t.code,{children:"CropperImage"})}),(0,r.jsx)(t.td,{align:"left",children:"True"}),(0,r.jsx)(t.td,{align:"left",children:"-"}),(0,r.jsxs)(t.td,{align:"left",children:["Picked image as result from ",(0,r.jsx)(t.code,{children:"react-native-image-crop-picker"})]})]})})]}),"\n",(0,r.jsx)(t.h4,{id:"usage-example",children:"Usage example"}),"\n",(0,r.jsx)(t.pre,{children:(0,r.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" const onImagePicked = useCallback((nextImage) => {\n convertCropperImageToBase64(nextImage);\n}, []);\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,r.jsx)(t,Object.assign({},e,{children:(0,r.jsx)(d,e)})):d(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>l,ah:()=>a});var r=n(7294);const s=r.createContext({});function a(e){const t=r.useContext(s);return r.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function l({components:e,children:t,disableParentContext:n}){let l;return l=n?"function"==typeof e?e({}):e||i:a(e),r.createElement(s.Provider,{value:l},t)}}}]); \ No newline at end of file diff --git a/assets/js/ede50c9e.1818c4e1.js b/assets/js/ede50c9e.1818c4e1.js new file mode 100644 index 00000000..9593787e --- /dev/null +++ b/assets/js/ede50c9e.1818c4e1.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[665],{8409:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>i,default:()=>u,frontMatter:()=>r,metadata:()=>o,toc:()=>d});var s=n(5893),a=n(1151);const r={sidebar_position:4,title:"State"},i=void 0,o={id:"redux/state",title:"State",description:"Content",source:"@site/docs/redux/state.md",sourceDirName:"redux",slug:"/redux/state",permalink:"/react-native-template-strong/docs/redux/state",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/state.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"State"},sidebar:"tutorialSidebar",previous:{title:"Store",permalink:"/react-native-template-strong/docs/redux/store"},next:{title:"Slice",permalink:"/react-native-template-strong/docs/redux/slice"}},c={},d=[{value:"Content",id:"content",level:2}];function l(t){const e={code:"code",h2:"h2",p:"p",pre:"pre",...(0,a.a)(),...t.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(e.p,{children:"State is defined by an interface and a constant with its initial values in a separated file."}),"\n",(0,s.jsxs)(e.p,{children:["E.g. ",(0,s.jsx)(e.code,{children:"systemState.ts"}),":"]}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-typescript",children:"export interface SystemState {\n isOnboardingVisited: boolean;\n}\n\nexport const SystemInitialState: SystemState = {\n isOnboardingVisited: false,\n};\n"})})]})}function u(t={}){const{wrapper:e}={...(0,a.a)(),...t.components};return e?(0,s.jsx)(e,{...t,children:(0,s.jsx)(l,{...t})}):l(t)}},1151:(t,e,n)=>{n.d(e,{Z:()=>o,a:()=>i});var s=n(7294);const a={},r=s.createContext(a);function i(t){const e=s.useContext(r);return s.useMemo((function(){return"function"==typeof t?t(e):{...e,...t}}),[e,t])}function o(t){let e;return e=t.disableParentContext?"function"==typeof t.components?t.components(a):t.components||a:i(t.components),s.createElement(r.Provider,{value:e},t.children)}}}]); \ No newline at end of file diff --git a/assets/js/ede50c9e.b2646eea.js b/assets/js/ede50c9e.b2646eea.js deleted file mode 100644 index 0bd92e0e..00000000 --- a/assets/js/ede50c9e.b2646eea.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[665],{8409:(t,e,n)=>{n.r(e),n.d(e,{assets:()=>c,contentTitle:()=>r,default:()=>u,frontMatter:()=>i,metadata:()=>o,toc:()=>d});var s=n(5893),a=n(1151);const i={sidebar_position:4,title:"State"},r=void 0,o={unversionedId:"redux/state",id:"redux/state",title:"State",description:"Content",source:"@site/docs/redux/state.md",sourceDirName:"redux",slug:"/redux/state",permalink:"/react-native-template-strong/docs/redux/state",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/redux/state.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:4,frontMatter:{sidebar_position:4,title:"State"},sidebar:"tutorialSidebar",previous:{title:"Store",permalink:"/react-native-template-strong/docs/redux/store"},next:{title:"Slice",permalink:"/react-native-template-strong/docs/redux/slice"}},c={},d=[{value:"Content",id:"content",level:2}];function l(t){const e=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,a.ah)(),t.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(e.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(e.p,{children:"State is defined by an interface and a constant with its initial values in a separated file."}),"\n",(0,s.jsxs)(e.p,{children:["E.g. ",(0,s.jsx)(e.code,{children:"systemState.ts"}),":"]}),"\n",(0,s.jsx)(e.pre,{children:(0,s.jsx)(e.code,{className:"language-typescript",children:"export interface SystemState {\n isOnboardingVisited: boolean;\n}\n\nexport const SystemInitialState: SystemState = {\n isOnboardingVisited: false,\n};\n"})})]})}const u=function(t={}){const{wrapper:e}=Object.assign({},(0,a.ah)(),t.components);return e?(0,s.jsx)(e,Object.assign({},t,{children:(0,s.jsx)(l,t)})):l(t)}},1151:(t,e,n)=>{n.d(e,{Zo:()=>o,ah:()=>i});var s=n(7294);const a=s.createContext({});function i(t){const e=s.useContext(a);return s.useMemo((()=>"function"==typeof t?t(e):{...e,...t}),[e,t])}const r={};function o({components:t,children:e,disableParentContext:n}){let o;return o=n?"function"==typeof t?t({}):t||r:i(t),s.createElement(a.Provider,{value:o},e)}}}]); \ No newline at end of file diff --git a/assets/js/f2beb3a0.3e2ae2a9.js b/assets/js/f2beb3a0.3e2ae2a9.js new file mode 100644 index 00000000..956619ee --- /dev/null +++ b/assets/js/f2beb3a0.3e2ae2a9.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1486],{236:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>s,metadata:()=>a,toc:()=>d});var i=t(5893),r=t(1151);const s={sidebar_position:16,title:"Environments"},o=void 0,a={id:"environments",title:"Environments",description:"Work with environments made possible by react-native-config.",source:"@site/docs/environments.md",sourceDirName:".",slug:"/environments",permalink:"/react-native-template-strong/docs/environments",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/environments.md",tags:[],version:"current",lastUpdatedAt:1687357876,formattedLastUpdatedAt:"Jun 21, 2023",sidebarPosition:16,frontMatter:{sidebar_position:16,title:"Environments"},sidebar:"tutorialSidebar",previous:{title:"Intl formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter"},next:{title:"API",permalink:"/react-native-template-strong/docs/api"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Change environment",id:"change-environment",level:2},{value:"Add more parameters",id:"add-more-parameters",level:2}];function l(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",pre:"pre",ul:"ul",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Work with environments made possible by ",(0,i.jsx)(n.a,{href:"https://github.com/luggit/react-native-config",children:"react-native-config"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(n.p,{children:"The application has 4 primitive environments:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env"})," - Common"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.dev"})," - Development"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.test"})," - Test"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.staging"})," - Staging"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.production"})," - Production"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Each has a set of predefined values:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"API_URL"})," - URL of you API"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ENVIRONMENT"})," - current selected environment"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"IGNORE_NET_INFO"})," - ignore ",(0,i.jsx)(n.code,{children:"NetInfo"})," or not (useful while in development)"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["To use environment variables you simply need to import ",(0,i.jsx)(n.code,{children:"Config"})," and use your parameters, like so:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'import Config from "react-native-config";\n\nConfig.ENVIRONMENT;\n'})}),"\n",(0,i.jsx)(n.h2,{id:"change-environment",children:"Change environment"}),"\n",(0,i.jsxs)(n.p,{children:["By default, ",(0,i.jsx)(n.code,{children:".env"})," (development) is selected environment,\nto change that you need to run one of the ",(0,i.jsx)(n.a,{href:"../docs/dependencies#environment-specific",children:"scripts"})," from ",(0,i.jsx)(n.code,{children:"package.json"}),"\nand rebuild your app."]}),"\n",(0,i.jsx)(n.h2,{id:"add-more-parameters",children:"Add more parameters"}),"\n",(0,i.jsx)(n.p,{children:"To add more parameters, first you have to add them in types:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Open ",(0,i.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/react-native-config.d.ts",children:"react-native-config.d.ts"})]}),"\n",(0,i.jsxs)(n.li,{children:["Define your parameter with type inside ",(0,i.jsx)(n.code,{children:"EnvironmentVariables"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["After that add your parameters with values into each ",(0,i.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,i.jsx)(n.p,{children:"To see it into action you need to rebuild the application."})]})}function h(e={}){const{wrapper:n}={...(0,r.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(l,{...e})}):l(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>a,a:()=>o});var i=t(7294);const r={},s=i.createContext(r);function o(e){const n=i.useContext(s);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function a(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),i.createElement(s.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f2beb3a0.8ab47bb0.js b/assets/js/f2beb3a0.8ab47bb0.js deleted file mode 100644 index f9d43280..00000000 --- a/assets/js/f2beb3a0.8ab47bb0.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[1486],{236:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>o,default:()=>h,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=t(5893),s=t(1151);const r={sidebar_position:16,title:"Environments"},o=void 0,a={unversionedId:"environments",id:"environments",title:"Environments",description:"Work with environments made possible by react-native-config.",source:"@site/docs/environments.md",sourceDirName:".",slug:"/environments",permalink:"/react-native-template-strong/docs/environments",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/environments.md",tags:[],version:"current",lastUpdatedAt:1687357876,formattedLastUpdatedAt:"Jun 21, 2023",sidebarPosition:16,frontMatter:{sidebar_position:16,title:"Environments"},sidebar:"tutorialSidebar",previous:{title:"Intl formatter",permalink:"/react-native-template-strong/docs/localisation/intl-formatter"},next:{title:"API",permalink:"/react-native-template-strong/docs/api"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Usage",id:"usage",level:2},{value:"Change environment",id:"change-environment",level:2},{value:"Add more parameters",id:"add-more-parameters",level:2}];function l(e){const n=Object.assign({p:"p",a:"a",h2:"h2",ul:"ul",li:"li",code:"code",pre:"pre"},(0,s.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)(n.p,{children:["Work with environments made possible by ",(0,i.jsx)(n.a,{href:"https://github.com/luggit/react-native-config",children:"react-native-config"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsx)(n.p,{children:"The application has 4 primitive environments:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env"})," - Common"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.dev"})," - Development"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.test"})," - Test"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.staging"})," - Staging"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:".env.production"})," - Production"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"Each has a set of predefined values:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"API_URL"})," - URL of you API"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"ENVIRONMENT"})," - current selected environment"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"IGNORE_NET_INFO"})," - ignore ",(0,i.jsx)(n.code,{children:"NetInfo"})," or not (useful while in development)"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"usage",children:"Usage"}),"\n",(0,i.jsxs)(n.p,{children:["To use environment variables you simply need to import ",(0,i.jsx)(n.code,{children:"Config"})," and use your parameters, like so:"]}),"\n",(0,i.jsx)(n.pre,{children:(0,i.jsx)(n.code,{className:"language-typescript",children:'import Config from "react-native-config";\n\nConfig.ENVIRONMENT;\n'})}),"\n",(0,i.jsx)(n.h2,{id:"change-environment",children:"Change environment"}),"\n",(0,i.jsxs)(n.p,{children:["By default, ",(0,i.jsx)(n.code,{children:".env"})," (development) is selected environment,\nto change that you need to run one of the ",(0,i.jsx)(n.a,{href:"../docs/dependencies#environment-specific",children:"scripts"})," from ",(0,i.jsx)(n.code,{children:"package.json"}),"\nand rebuild your app."]}),"\n",(0,i.jsx)(n.h2,{id:"add-more-parameters",children:"Add more parameters"}),"\n",(0,i.jsx)(n.p,{children:"To add more parameters, first you have to add them in types:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:["Open ",(0,i.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/react-native-config.d.ts",children:"react-native-config.d.ts"})]}),"\n",(0,i.jsxs)(n.li,{children:["Define your parameter with type inside ",(0,i.jsx)(n.code,{children:"EnvironmentVariables"})]}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["After that add your parameters with values into each ",(0,i.jsx)(n.code,{children:".env"})," file."]}),"\n",(0,i.jsx)(n.p,{children:"To see it into action you need to rebuild the application."})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,s.ah)(),e.components);return n?(0,i.jsx)(n,Object.assign({},e,{children:(0,i.jsx)(l,e)})):l(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>a,ah:()=>r});var i=t(7294);const s=i.createContext({});function r(e){const n=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const o={};function a({components:e,children:n,disableParentContext:t}){let a;return a=t?"function"==typeof e?e({}):e||o:r(e),i.createElement(s.Provider,{value:a},n)}}}]); \ No newline at end of file diff --git a/assets/js/f2f008bc.2cbfe496.js b/assets/js/f2f008bc.2cbfe496.js new file mode 100644 index 00000000..cd518a1c --- /dev/null +++ b/assets/js/f2f008bc.2cbfe496.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3220],{8926:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>a,default:()=>h,frontMatter:()=>o,metadata:()=>r,toc:()=>d});var s=n(5893),i=n(1151);const o={sidebar_position:1,title:"Native splash"},a=void 0,r={id:"pages/native-splash",title:"Native splash",description:"Content",source:"@site/docs/pages/native-splash.md",sourceDirName:"pages",slug:"/pages/native-splash",permalink:"/react-native-template-strong/docs/pages/native-splash",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/native-splash.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Native splash"},sidebar:"tutorialSidebar",previous:{title:"ToastOverlay",permalink:"/react-native-template-strong/docs/components/toast-overlay"},next:{title:"Splash",permalink:"/react-native-template-strong/docs/pages/splash"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Changing logos",id:"changing-logos",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3}];function c(e){const t={admonition:"admonition",code:"code",h2:"h2",h3:"h3",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Native splash at this moment shows the most common pattern for this kind of screens:"}),"\n",(0,s.jsx)(t.p,{children:"It shows a logo in the middle of the screen with theme background on iOS and gradient on Android."}),"\n",(0,s.jsx)(t.h2,{id:"changing-logos",children:"Changing logos"}),"\n",(0,s.jsx)(t.p,{children:"To change the logo you have to do the following:"}),"\n",(0,s.jsx)(t.h3,{id:"ios",children:"iOS"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Create your icons with appropriate sizes (1x, 2x, 3x)"}),"\n",(0,s.jsxs)(t.li,{children:["Replace them in ",(0,s.jsx)(t.code,{children:"ios/YourProjectName/images.xcassets"})," with the same name (",(0,s.jsx)(t.code,{children:"splash.png"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["Check the result in XCode by opening ",(0,s.jsx)(t.code,{children:"LaunchScreen"})]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"android",children:"Android"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Create your icon with appropriate size (xxhdpi)"}),"\n",(0,s.jsxs)(t.li,{children:["Replace it in ",(0,s.jsx)(t.code,{children:"android/app/src/main/res/drawable-xxhdpi"})," with the same name (",(0,s.jsx)(t.code,{children:"splash.png"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["Your gradient and splash files are located in ",(0,s.jsx)(t.code,{children:"android/app/src/main/res/drawable"}),", you can also change them if needed"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{title:"Tip",type:"tip",children:(0,s.jsx)(t.p,{children:"Don't use text on your logos on both platforms, try to place just logos."})})]})}function h(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var s=n(7294);const i={},o=s.createContext(i);function a(e){const t=s.useContext(o);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),s.createElement(o.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f2f008bc.8430308a.js b/assets/js/f2f008bc.8430308a.js deleted file mode 100644 index 42b642e4..00000000 --- a/assets/js/f2f008bc.8430308a.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3220],{8926:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>h,frontMatter:()=>a,metadata:()=>r,toc:()=>d});var s=n(5893),i=n(1151);const a={sidebar_position:1,title:"Native splash"},o=void 0,r={unversionedId:"pages/native-splash",id:"pages/native-splash",title:"Native splash",description:"Content",source:"@site/docs/pages/native-splash.md",sourceDirName:"pages",slug:"/pages/native-splash",permalink:"/react-native-template-strong/docs/pages/native-splash",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/native-splash.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"Native splash"},sidebar:"tutorialSidebar",previous:{title:"ToastOverlay",permalink:"/react-native-template-strong/docs/components/toast-overlay"},next:{title:"Splash",permalink:"/react-native-template-strong/docs/pages/splash"}},l={},d=[{value:"Content",id:"content",level:2},{value:"Changing logos",id:"changing-logos",level:2},{value:"iOS",id:"ios",level:3},{value:"Android",id:"android",level:3}];function c(e){const t=Object.assign({h2:"h2",p:"p",h3:"h3",ul:"ul",li:"li",code:"code",admonition:"admonition"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"Native splash at this moment shows the most common pattern for this kind of screens:"}),"\n",(0,s.jsx)(t.p,{children:"It shows a logo in the middle of the screen with theme background on iOS and gradient on Android."}),"\n",(0,s.jsx)(t.h2,{id:"changing-logos",children:"Changing logos"}),"\n",(0,s.jsx)(t.p,{children:"To change the logo you have to do the following:"}),"\n",(0,s.jsx)(t.h3,{id:"ios",children:"iOS"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Create your icons with appropriate sizes (1x, 2x, 3x)"}),"\n",(0,s.jsxs)(t.li,{children:["Replace them in ",(0,s.jsx)(t.code,{children:"ios/YourProjectName/images.xcassets"})," with the same name (",(0,s.jsx)(t.code,{children:"splash.png"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["Check the result in XCode by opening ",(0,s.jsx)(t.code,{children:"LaunchScreen"})]}),"\n"]}),"\n",(0,s.jsx)(t.h3,{id:"android",children:"Android"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsx)(t.li,{children:"Create your icon with appropriate size (xxhdpi)"}),"\n",(0,s.jsxs)(t.li,{children:["Replace it in ",(0,s.jsx)(t.code,{children:"android/app/src/main/res/drawable-xxhdpi"})," with the same name (",(0,s.jsx)(t.code,{children:"splash.png"}),")"]}),"\n",(0,s.jsxs)(t.li,{children:["Your gradient and splash files are located in ",(0,s.jsx)(t.code,{children:"android/app/src/main/res/drawable"}),", you can also change them if needed"]}),"\n"]}),"\n",(0,s.jsx)(t.admonition,{title:"Tip",type:"tip",children:(0,s.jsx)(t.p,{children:"Don't use text on your logos on both platforms, try to place just logos."})})]})}const h=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>a});var s=n(7294);const i=s.createContext({});function a(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||o:a(e),s.createElement(i.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/f49fe340.4f3a16a3.js b/assets/js/f49fe340.4f3a16a3.js new file mode 100644 index 00000000..f85b8829 --- /dev/null +++ b/assets/js/f49fe340.4f3a16a3.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3888],{3486:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>l,frontMatter:()=>a,metadata:()=>i,toc:()=>c});var s=n(5893),o=n(1151);const a={sidebar_position:3,title:"Onboarding"},r=void 0,i={id:"pages/onboarding",title:"Onboarding",description:"Content",source:"@site/docs/pages/onboarding.md",sourceDirName:"pages",slug:"/pages/onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/onboarding.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Onboarding"},sidebar:"tutorialSidebar",previous:{title:"Splash",permalink:"/react-native-template-strong/docs/pages/splash"},next:{title:"calculatePage",permalink:"/react-native-template-strong/docs/helpers/calculate-page"}},d={},c=[{value:"Content",id:"content",level:2}];function p(e){const t={h2:"h2",p:"p",...(0,o.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"This screen is used in order to demonstrate users your app's features."}),"\n",(0,s.jsx)(t.p,{children:"The onboarding process is a user\u2019s first impression of your app, and when designed correctly, increases the likelihood of successful adoption."}),"\n",(0,s.jsx)(t.p,{children:"At this moment there are some information regarding the template, you have to replace it."}),"\n",(0,s.jsx)(t.p,{children:"On iOS it imitates the Apple's onboardings and presented as modal on both iPhone and iPad."}),"\n",(0,s.jsx)(t.p,{children:"On Android it imitates Material Design's onboarding and presented as a separated root with snap carousel (it look different on smartphones and tablets)."})]})}function l(e={}){const{wrapper:t}={...(0,o.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>i,a:()=>r});var s=n(7294);const o={},a=s.createContext(o);function r(e){const t=s.useContext(a);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function i(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:r(e.components),s.createElement(a.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/f49fe340.be6915ca.js b/assets/js/f49fe340.be6915ca.js deleted file mode 100644 index 0fbca610..00000000 --- a/assets/js/f49fe340.be6915ca.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[3888],{3486:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>i,default:()=>l,frontMatter:()=>o,metadata:()=>r,toc:()=>c});var s=n(5893),a=n(1151);const o={sidebar_position:3,title:"Onboarding"},i=void 0,r={unversionedId:"pages/onboarding",id:"pages/onboarding",title:"Onboarding",description:"Content",source:"@site/docs/pages/onboarding.md",sourceDirName:"pages",slug:"/pages/onboarding",permalink:"/react-native-template-strong/docs/pages/onboarding",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/pages/onboarding.md",tags:[],version:"current",lastUpdatedAt:1633686498,formattedLastUpdatedAt:"Oct 8, 2021",sidebarPosition:3,frontMatter:{sidebar_position:3,title:"Onboarding"},sidebar:"tutorialSidebar",previous:{title:"Splash",permalink:"/react-native-template-strong/docs/pages/splash"},next:{title:"calculatePage",permalink:"/react-native-template-strong/docs/helpers/calculate-page"}},d={},c=[{value:"Content",id:"content",level:2}];function p(e){const t=Object.assign({h2:"h2",p:"p"},(0,a.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,s.jsx)(t.p,{children:"This screen is used in order to demonstrate users your app's features."}),"\n",(0,s.jsx)(t.p,{children:"The onboarding process is a user\u2019s first impression of your app, and when designed correctly, increases the likelihood of successful adoption."}),"\n",(0,s.jsx)(t.p,{children:"At this moment there are some information regarding the template, you have to replace it."}),"\n",(0,s.jsx)(t.p,{children:"On iOS it imitates the Apple's onboardings and presented as modal on both iPhone and iPad."}),"\n",(0,s.jsx)(t.p,{children:"On Android it imitates Material Design's onboarding and presented as a separated root with snap carousel (it look different on smartphones and tablets)."})]})}const l=function(e={}){const{wrapper:t}=Object.assign({},(0,a.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(p,e)})):p(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>r,ah:()=>o});var s=n(7294);const a=s.createContext({});function o(e){const t=s.useContext(a);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const i={};function r({components:e,children:t,disableParentContext:n}){let r;return r=n?"function"==typeof e?e({}):e||i:o(e),s.createElement(a.Provider,{value:r},t)}}}]); \ No newline at end of file diff --git a/assets/js/fa6c2e8e.17e6b11e.js b/assets/js/fa6c2e8e.17e6b11e.js deleted file mode 100644 index 5b80a221..00000000 --- a/assets/js/fa6c2e8e.17e6b11e.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8460],{1153:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var s=n(5893),i=n(1151);const r={sidebar_position:19,title:"Types"},o=void 0,a={unversionedId:"types",id:"types",title:"Types",description:"Own types, interfaces and enums",source:"@site/docs/types.md",sourceDirName:".",slug:"/types",permalink:"/react-native-template-strong/docs/types",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/types.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:19,frontMatter:{sidebar_position:19,title:"Types"},sidebar:"tutorialSidebar",previous:{title:"Detox",permalink:"/react-native-template-strong/docs/testing/detox"},next:{title:"Patches",permalink:"/react-native-template-strong/docs/patches"}},c={},d=[{value:"Own types, interfaces and enums",id:"own-types-interfaces-and-enums",level:2},{value:"Dependency types",id:"dependency-types",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",a:"a",ul:"ul",li:"li",code:"code"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"own-types-interfaces-and-enums",children:"Own types, interfaces and enums"}),"\n",(0,s.jsxs)(t.p,{children:["There are many types, interfaces and enums which are being used in this template, they are all included in ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/index.ts",children:"types/index.ts"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If you have some interface, type or enum which you are going to use in different places and it's sort of global then add it in this file."}),"\n",(0,s.jsx)(t.p,{children:"To briefly describe what each currently existed interface/type/enum does:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"AppEnvironment"})," - enum of your environments"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"INavigationPage"})," - minimal needed description of your navigation pages"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IOnboardingData"})," - interface of each of the carousel/case item from ",(0,s.jsx)(t.code,{children:"Onboarding"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"LoadState"})," - important enum which is responsible to setting current state of your lists stored in redux, and visual representation of items based on it"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"TouchablePlatformProps"})," - copy of ",(0,s.jsx)(t.code,{children:"PressableProps"})," with slight changes of ",(0,s.jsx)(t.code,{children:"style"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ButtonType"})," - enum of ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/primary-button",children:"PrimaryButton"})," type representation;"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ISize"})," - enum of possible sizes for your style constants ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/core/theme/commonSizes.ts",children:"commonSizes"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IListState"})," - simple interface to store necessary list data, mostly used with ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/flat-list-wrapper",children:"FlatListWrapper"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ISection"})," - same as ",(0,s.jsx)(t.code,{children:"IListState"})," but for ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/section-list-wrapper",children:"SectionListWrapper"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"RehydrateAppAction"})," - interface for rehydrated params (our redux root state) which comes when ",(0,s.jsx)(t.code,{children:"rehydrate"})," occurs"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ErrorRepresentationType"})," - enum of possible errors which will be shown to user when using API requests or text input validations"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IErrorResult"})," - result of error representation"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ITextInputMask"})," - interface which is used for creation of input masks"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"dependency-types",children:"Dependency types"}),"\n",(0,s.jsxs)(t.p,{children:["If you'd like to change or add types for dependencies from ",(0,s.jsx)(t.code,{children:"node_modules"}),"\nthen you can check the already existing ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/react-native-config.d.ts",children:"react-native-config.d.ts"}),"\ntype and create your own by following next steps:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Create a file in ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/tree/main/template/src/types",children:"types"})," with name of your dependency like so e.g. ",(0,s.jsx)(t.code,{children:"react-native-config.d.ts"})]}),"\n",(0,s.jsx)(t.li,{children:"Declare a module"}),"\n",(0,s.jsx)(t.li,{children:"Add needed types and interfaces"}),"\n",(0,s.jsx)(t.li,{children:"Create proper (default or not) exports"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["TypeScript uses ",(0,s.jsx)(t.code,{children:"types"})," folder to check for additional types so after making your changes they will be seen in action immediately."]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,i.ah)(),e.components);return t?(0,s.jsx)(t,Object.assign({},e,{children:(0,s.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>r});var s=n(7294);const i=s.createContext({});function r(e){const t=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const o={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||o:r(e),s.createElement(i.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/fa6c2e8e.7184605f.js b/assets/js/fa6c2e8e.7184605f.js new file mode 100644 index 00000000..c90c42d4 --- /dev/null +++ b/assets/js/fa6c2e8e.7184605f.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[8460],{1153:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>a,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>c,toc:()=>d});var s=n(5893),i=n(1151);const r={sidebar_position:19,title:"Types"},o=void 0,c={id:"types",title:"Types",description:"Own types, interfaces and enums",source:"@site/docs/types.md",sourceDirName:".",slug:"/types",permalink:"/react-native-template-strong/docs/types",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/types.md",tags:[],version:"current",lastUpdatedAt:1633614778,formattedLastUpdatedAt:"Oct 7, 2021",sidebarPosition:19,frontMatter:{sidebar_position:19,title:"Types"},sidebar:"tutorialSidebar",previous:{title:"Detox",permalink:"/react-native-template-strong/docs/testing/detox"},next:{title:"Patches",permalink:"/react-native-template-strong/docs/patches"}},a={},d=[{value:"Own types, interfaces and enums",id:"own-types-interfaces-and-enums",level:2},{value:"Dependency types",id:"dependency-types",level:2}];function l(e){const t={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,i.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(t.h2,{id:"own-types-interfaces-and-enums",children:"Own types, interfaces and enums"}),"\n",(0,s.jsxs)(t.p,{children:["There are many types, interfaces and enums which are being used in this template, they are all included in ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/index.ts",children:"types/index.ts"}),"."]}),"\n",(0,s.jsx)(t.p,{children:"If you have some interface, type or enum which you are going to use in different places and it's sort of global then add it in this file."}),"\n",(0,s.jsx)(t.p,{children:"To briefly describe what each currently existed interface/type/enum does:"}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"AppEnvironment"})," - enum of your environments"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"INavigationPage"})," - minimal needed description of your navigation pages"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IOnboardingData"})," - interface of each of the carousel/case item from ",(0,s.jsx)(t.code,{children:"Onboarding"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"LoadState"})," - important enum which is responsible to setting current state of your lists stored in redux, and visual representation of items based on it"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"TouchablePlatformProps"})," - copy of ",(0,s.jsx)(t.code,{children:"PressableProps"})," with slight changes of ",(0,s.jsx)(t.code,{children:"style"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ButtonType"})," - enum of ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/primary-button",children:"PrimaryButton"})," type representation;"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ISize"})," - enum of possible sizes for your style constants ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/core/theme/commonSizes.ts",children:"commonSizes"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IListState"})," - simple interface to store necessary list data, mostly used with ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/flat-list-wrapper",children:"FlatListWrapper"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ISection"})," - same as ",(0,s.jsx)(t.code,{children:"IListState"})," but for ",(0,s.jsx)(t.a,{href:"/react-native-template-strong/docs/components/section-list-wrapper",children:"SectionListWrapper"})]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"RehydrateAppAction"})," - interface for rehydrated params (our redux root state) which comes when ",(0,s.jsx)(t.code,{children:"rehydrate"})," occurs"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ErrorRepresentationType"})," - enum of possible errors which will be shown to user when using API requests or text input validations"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"IErrorResult"})," - result of error representation"]}),"\n",(0,s.jsxs)(t.li,{children:[(0,s.jsx)(t.code,{children:"ITextInputMask"})," - interface which is used for creation of input masks"]}),"\n"]}),"\n",(0,s.jsx)(t.h2,{id:"dependency-types",children:"Dependency types"}),"\n",(0,s.jsxs)(t.p,{children:["If you'd like to change or add types for dependencies from ",(0,s.jsx)(t.code,{children:"node_modules"}),"\nthen you can check the already existing ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/types/react-native-config.d.ts",children:"react-native-config.d.ts"}),"\ntype and create your own by following next steps:"]}),"\n",(0,s.jsxs)(t.ul,{children:["\n",(0,s.jsxs)(t.li,{children:["Create a file in ",(0,s.jsx)(t.a,{href:"https://github.com/svbutko/react-native-template-strong/tree/main/template/src/types",children:"types"})," with name of your dependency like so e.g. ",(0,s.jsx)(t.code,{children:"react-native-config.d.ts"})]}),"\n",(0,s.jsx)(t.li,{children:"Declare a module"}),"\n",(0,s.jsx)(t.li,{children:"Add needed types and interfaces"}),"\n",(0,s.jsx)(t.li,{children:"Create proper (default or not) exports"}),"\n"]}),"\n",(0,s.jsxs)(t.p,{children:["TypeScript uses ",(0,s.jsx)(t.code,{children:"types"})," folder to check for additional types so after making your changes they will be seen in action immediately."]})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,s.jsx)(t,{...e,children:(0,s.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>c,a:()=>o});var s=n(7294);const i={},r=s.createContext(i);function o(e){const t=s.useContext(r);return s.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function c(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:o(e.components),s.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fab06093.86830fe6.js b/assets/js/fab06093.86830fe6.js deleted file mode 100644 index eb2cbc09..00000000 --- a/assets/js/fab06093.86830fe6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6257],{9070:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>a,default:()=>p,frontMatter:()=>i,metadata:()=>c,toc:()=>d});var o=n(5893),s=n(1151);const i={sidebar_position:8,title:"LoadingComponent"},a=void 0,c={unversionedId:"components/loading-component",id:"components/loading-component",title:"LoadingComponent",description:"Content",source:"@site/docs/components/loading-component.md",sourceDirName:"components",slug:"/components/loading-component",permalink:"/react-native-template-strong/docs/components/loading-component",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/loading-component.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"LoadingComponent"},sidebar:"tutorialSidebar",previous:{title:"TouchablePlatform",permalink:"/react-native-template-strong/docs/components/touchable-platform"},next:{title:"TryAgain",permalink:"/react-native-template-strong/docs/components/try-again"}},r={},d=[{value:"Content",id:"content",level:2},{value:"Usage example",id:"usage-example",level:2}];function l(e){const t=Object.assign({h2:"h2",p:"p",code:"code",pre:"pre"},(0,s.ah)(),e.components);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(t.p,{children:"Simple view with activity indicator and loading text in the middle"}),"\n",(0,o.jsxs)(t.p,{children:["Used mostly in ",(0,o.jsx)(t.code,{children:"Splash"}),", ",(0,o.jsx)(t.code,{children:"FlatListWrapper"}),", ",(0,o.jsx)(t.code,{children:"SectionListWrapper"})]}),"\n",(0,o.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return <LoadingComponent />;\n"})})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,o.jsx)(t,Object.assign({},e,{children:(0,o.jsx)(l,e)})):l(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>c,ah:()=>i});var o=n(7294);const s=o.createContext({});function i(e){const t=o.useContext(s);return o.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const a={};function c({components:e,children:t,disableParentContext:n}){let c;return c=n?"function"==typeof e?e({}):e||a:i(e),o.createElement(s.Provider,{value:c},t)}}}]); \ No newline at end of file diff --git a/assets/js/fab06093.f3769e20.js b/assets/js/fab06093.f3769e20.js new file mode 100644 index 00000000..d89eb922 --- /dev/null +++ b/assets/js/fab06093.f3769e20.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[6257],{9070:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>c,contentTitle:()=>a,default:()=>p,frontMatter:()=>s,metadata:()=>r,toc:()=>d});var o=n(5893),i=n(1151);const s={sidebar_position:8,title:"LoadingComponent"},a=void 0,r={id:"components/loading-component",title:"LoadingComponent",description:"Content",source:"@site/docs/components/loading-component.md",sourceDirName:"components",slug:"/components/loading-component",permalink:"/react-native-template-strong/docs/components/loading-component",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/loading-component.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:8,frontMatter:{sidebar_position:8,title:"LoadingComponent"},sidebar:"tutorialSidebar",previous:{title:"TouchablePlatform",permalink:"/react-native-template-strong/docs/components/touchable-platform"},next:{title:"TryAgain",permalink:"/react-native-template-strong/docs/components/try-again"}},c={},d=[{value:"Content",id:"content",level:2},{value:"Usage example",id:"usage-example",level:2}];function l(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",...(0,i.a)(),...e.components};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,o.jsx)(t.p,{children:"Simple view with activity indicator and loading text in the middle"}),"\n",(0,o.jsxs)(t.p,{children:["Used mostly in ",(0,o.jsx)(t.code,{children:"Splash"}),", ",(0,o.jsx)(t.code,{children:"FlatListWrapper"}),", ",(0,o.jsx)(t.code,{children:"SectionListWrapper"})]}),"\n",(0,o.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,o.jsx)(t.pre,{children:(0,o.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:" return <LoadingComponent />;\n"})})]})}function p(e={}){const{wrapper:t}={...(0,i.a)(),...e.components};return t?(0,o.jsx)(t,{...e,children:(0,o.jsx)(l,{...e})}):l(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>r,a:()=>a});var o=n(7294);const i={},s=o.createContext(i);function a(e){const t=o.useContext(s);return o.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function r(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(i):e.components||i:a(e.components),o.createElement(s.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fcca6dac.03772928.js b/assets/js/fcca6dac.03772928.js new file mode 100644 index 00000000..850916a7 --- /dev/null +++ b/assets/js/fcca6dac.03772928.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2239],{8689:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>p,frontMatter:()=>r,metadata:()=>a,toc:()=>d});var i=n(5893),s=n(1151);const r={sidebar_position:1,title:"iOS internals"},o=void 0,a={id:"internals/ios",title:"iOS internals",description:"Hermes",source:"@site/docs/internals/ios.md",sourceDirName:"internals",slug:"/internals/ios",permalink:"/react-native-template-strong/docs/internals/ios",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/internals/ios.md",tags:[],version:"current",lastUpdatedAt:1704743195,formattedLastUpdatedAt:"Jan 8, 2024",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"iOS internals"},sidebar:"tutorialSidebar",previous:{title:"Babel config",permalink:"/react-native-template-strong/docs/configs/babel-config"},next:{title:"Android internals",permalink:"/react-native-template-strong/docs/internals/android"}},l={},d=[{value:"Hermes",id:"hermes",level:2},{value:"Versions",id:"versions",level:2},{value:"Devices",id:"devices",level:2},{value:"Orientations",id:"orientations",level:2},{value:"Flipper",id:"flipper",level:2}];function c(e){const t={code:"code",h2:"h2",p:"p",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"hermes",children:"Hermes"}),"\n",(0,i.jsx)(t.p,{children:"Enabled"}),"\n",(0,i.jsx)(t.h2,{id:"versions",children:"Versions"}),"\n",(0,i.jsxs)(t.p,{children:["Deployment target is set to ",(0,i.jsx)(t.code,{children:"13.4"})]}),"\n",(0,i.jsx)(t.h2,{id:"devices",children:"Devices"}),"\n",(0,i.jsx)(t.p,{children:"iPhones and iPads are both supported"}),"\n",(0,i.jsx)(t.h2,{id:"orientations",children:"Orientations"}),"\n",(0,i.jsx)(t.p,{children:"All orientations are unlocked (locked in React Native by device type)"}),"\n",(0,i.jsx)(t.h2,{id:"flipper",children:"Flipper"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Flipper"})," is disabled in ",(0,i.jsx)(t.code,{children:"podfile"})," due to the fact that it increases app size and goes in production as a pod too,\nyou can enable it while testing but don't forget to comment it back."]})]})}function p(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,i.jsx)(t,{...e,children:(0,i.jsx)(c,{...e})}):c(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>a,a:()=>o});var i=n(7294);const s={},r=i.createContext(s);function o(e){const t=i.useContext(r);return i.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(r.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/fcca6dac.121d13b6.js b/assets/js/fcca6dac.121d13b6.js deleted file mode 100644 index 2c139139..00000000 --- a/assets/js/fcca6dac.121d13b6.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2239],{8689:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>d,contentTitle:()=>r,default:()=>p,frontMatter:()=>o,metadata:()=>a,toc:()=>l});var i=n(5893),s=n(1151);const o={sidebar_position:1,title:"iOS internals"},r=void 0,a={unversionedId:"internals/ios",id:"internals/ios",title:"iOS internals",description:"Hermes",source:"@site/docs/internals/ios.md",sourceDirName:"internals",slug:"/internals/ios",permalink:"/react-native-template-strong/docs/internals/ios",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/internals/ios.md",tags:[],version:"current",lastUpdatedAt:1633194349,formattedLastUpdatedAt:"Oct 2, 2021",sidebarPosition:1,frontMatter:{sidebar_position:1,title:"iOS internals"},sidebar:"tutorialSidebar",previous:{title:"Babel config",permalink:"/react-native-template-strong/docs/configs/babel-config"},next:{title:"Android internals",permalink:"/react-native-template-strong/docs/internals/android"}},d={},l=[{value:"Hermes",id:"hermes",level:2},{value:"Pods",id:"pods",level:2},{value:"Versions",id:"versions",level:2},{value:"Devices",id:"devices",level:2},{value:"Orientations",id:"orientations",level:2},{value:"Flipper",id:"flipper",level:2}];function c(e){const t=Object.assign({h2:"h2",p:"p",code:"code"},(0,s.ah)(),e.components);return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h2,{id:"hermes",children:"Hermes"}),"\n",(0,i.jsx)(t.p,{children:"Enabled"}),"\n",(0,i.jsx)(t.h2,{id:"pods",children:"Pods"}),"\n",(0,i.jsxs)(t.p,{children:["There's a pods post installation action which bumps deployment target version of each pod to ",(0,i.jsx)(t.code,{children:"13.0"}),"\n(only ",(0,i.jsx)(t.code,{children:"RCT-Folly"})," stays on ",(0,i.jsx)(t.code,{children:"11.0"})," due to to a bug)."]}),"\n",(0,i.jsx)(t.h2,{id:"versions",children:"Versions"}),"\n",(0,i.jsxs)(t.p,{children:["Deployment target is set to ",(0,i.jsx)(t.code,{children:"13.0"})," later in plans to change it to ",(0,i.jsx)(t.code,{children:"14.0"}),"."]}),"\n",(0,i.jsx)(t.h2,{id:"devices",children:"Devices"}),"\n",(0,i.jsx)(t.p,{children:"It supports iPhones and iPads"}),"\n",(0,i.jsx)(t.h2,{id:"orientations",children:"Orientations"}),"\n",(0,i.jsx)(t.p,{children:"All unlocked (locked in React Native by device type)"}),"\n",(0,i.jsx)(t.h2,{id:"flipper",children:"Flipper"}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"Flipper"})," is disabled in ",(0,i.jsx)(t.code,{children:"podfile"})," due to the fact that it increases app size and goes in production as a pod too,\nyou can enable it while testing but don't forget to comment it back."]})]})}const p=function(e={}){const{wrapper:t}=Object.assign({},(0,s.ah)(),e.components);return t?(0,i.jsx)(t,Object.assign({},e,{children:(0,i.jsx)(c,e)})):c(e)}},1151:(e,t,n)=>{n.d(t,{Zo:()=>a,ah:()=>o});var i=n(7294);const s=i.createContext({});function o(e){const t=i.useContext(s);return i.useMemo((()=>"function"==typeof e?e(t):{...t,...e}),[t,e])}const r={};function a({components:e,children:t,disableParentContext:n}){let a;return a=n?"function"==typeof e?e({}):e||r:o(e),i.createElement(s.Provider,{value:a},t)}}}]); \ No newline at end of file diff --git a/assets/js/fcde09bc.4579637d.js b/assets/js/fcde09bc.4579637d.js deleted file mode 100644 index acc4ee9f..00000000 --- a/assets/js/fcde09bc.4579637d.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2023],{9833:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var s=t(5893),i=t(1151);const o={sidebar_position:9,title:"Common constants"},r=void 0,d={unversionedId:"common-constants",id:"common-constants",title:"Common constants",description:"Content",source:"@site/docs/common-constants.md",sourceDirName:".",slug:"/common-constants",permalink:"/react-native-template-strong/docs/common-constants",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/common-constants.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"Common constants"},sidebar:"tutorialSidebar",previous:{title:"Common sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes"},next:{title:"PrimaryButton",permalink:"/react-native-template-strong/docs/components/primary-button"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Platform dependant",id:"platform-dependant",level:2},{value:"Dimensions dependant",id:"dimensions-dependant",level:2},{value:"Hit slops",id:"hit-slops",level:2},{value:"Time dependant",id:"time-dependant",level:2},{value:"Other",id:"other",level:2}];function a(e){const n=Object.assign({h2:"h2",p:"p",a:"a",code:"code",ul:"ul",li:"li"},(0,i.ah)(),e.components);return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,s.jsxs)(n.p,{children:["This is a set of constants which are useful throughout the development process, rather than creating them every time,\nthey are being created once and stored and exported from ",(0,s.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/core/theme/commonConsts.ts",children:"commonConstants.ts"})]}),"\n",(0,s.jsx)(n.h2,{id:"platform-dependant",children:"Platform dependant"}),"\n",(0,s.jsxs)(n.p,{children:["Rather than always importing ",(0,s.jsx)(n.code,{children:"Device"})," or ",(0,s.jsx)(n.code,{children:"Platform"})," and checking whether it's iOS or Android or some versions,\nit's easier to have this checks"]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isIos"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isIphoneX"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isIpad"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isTablet"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isAndroid"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isAndroidLollipop"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"isAndroid11AndHigher"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"hasNotch"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"hasDynamicIsland"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"dimensions-dependant",children:"Dimensions dependant"}),"\n",(0,s.jsx)(n.p,{children:"Most of the time the apps are made for smartphones and orientation is almost always locked to portrait,\nso instead of checking dimensions all the time it's easier to use next constants:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"windowWidth"})}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"windowHeight"})," - on Android it also subtracts ",(0,s.jsx)(n.code,{children:"StatusBar.currentHeight"})," from height"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"In cases when it comes to tablets where all the orientations are unlocked or in other cases where orientation is not locked,\nthere are next two constants:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"maxWindowDimension"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"minWindowDimension"})}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["They basically compare (max/min) ",(0,s.jsx)(n.code,{children:"windowHeight"})," and ",(0,s.jsx)(n.code,{children:"windowWidth"})," on start so that you could use them rather than always calling ",(0,s.jsx)(n.code,{children:"Dimensions"}),"."]}),"\n",(0,s.jsx)(n.h2,{id:"hit-slops",children:"Hit slops"}),"\n",(0,s.jsx)(n.p,{children:"Some basic predefined hit slops, you can change them for your needs:"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"hitSlop"})}),"\n",(0,s.jsx)(n.li,{children:(0,s.jsx)(n.code,{children:"hitSlopBig"})}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"time-dependant",children:"Time dependant"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"minimalLegalAge"})," - subtracts 16 years from current time"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"maximalAge"})," - subtracts 100 years from current time"]}),"\n"]}),"\n",(0,s.jsx)(n.h2,{id:"other",children:"Other"}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"hairlineWidth"})," - contains the result of ",(0,s.jsx)(n.code,{children:"StyleSheet.hairlineWidth"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"pixelRatio"})," - contains the result of ",(0,s.jsx)(n.code,{children:"PixelRatio.get()"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.code,{children:"perfectSize"})," - pixel perfect size calculation across devices (",(0,s.jsx)(n.code,{children:"e.g. perfectSize(10)"}),")"]}),"\n"]})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,s.jsx)(n,Object.assign({},e,{children:(0,s.jsx)(a,e)})):a(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>d,ah:()=>o});var s=t(7294);const i=s.createContext({});function o(e){const n=s.useContext(i);return s.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const r={};function d({components:e,children:n,disableParentContext:t}){let d;return d=t?"function"==typeof e?e({}):e||r:o(e),s.createElement(i.Provider,{value:d},n)}}}]); \ No newline at end of file diff --git a/assets/js/fcde09bc.a9ee9d0b.js b/assets/js/fcde09bc.a9ee9d0b.js new file mode 100644 index 00000000..4fd30600 --- /dev/null +++ b/assets/js/fcde09bc.a9ee9d0b.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2023],{9833:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>c,contentTitle:()=>r,default:()=>h,frontMatter:()=>o,metadata:()=>d,toc:()=>l});var i=t(5893),s=t(1151);const o={sidebar_position:9,title:"Common constants"},r=void 0,d={id:"common-constants",title:"Common constants",description:"Content",source:"@site/docs/common-constants.md",sourceDirName:".",slug:"/common-constants",permalink:"/react-native-template-strong/docs/common-constants",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/common-constants.md",tags:[],version:"current",lastUpdatedAt:1688636932,formattedLastUpdatedAt:"Jul 6, 2023",sidebarPosition:9,frontMatter:{sidebar_position:9,title:"Common constants"},sidebar:"tutorialSidebar",previous:{title:"Common sizes",permalink:"/react-native-template-strong/docs/styles/common-sizes"},next:{title:"PrimaryButton",permalink:"/react-native-template-strong/docs/components/primary-button"}},c={},l=[{value:"Content",id:"content",level:2},{value:"Platform dependant",id:"platform-dependant",level:2},{value:"Dimensions dependant",id:"dimensions-dependant",level:2},{value:"Hit slops",id:"hit-slops",level:2},{value:"Time dependant",id:"time-dependant",level:2},{value:"Other",id:"other",level:2}];function a(e){const n={a:"a",code:"code",h2:"h2",li:"li",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,i.jsxs)(n.p,{children:["This is a set of constants which are useful throughout the development process, rather than creating them every time,\nthey are being created once and stored and exported from ",(0,i.jsx)(n.a,{href:"https://github.com/svbutko/react-native-template-strong/blob/main/template/src/core/theme/commonConsts.ts",children:"commonConstants.ts"})]}),"\n",(0,i.jsx)(n.h2,{id:"platform-dependant",children:"Platform dependant"}),"\n",(0,i.jsxs)(n.p,{children:["Rather than always importing ",(0,i.jsx)(n.code,{children:"Device"})," or ",(0,i.jsx)(n.code,{children:"Platform"})," and checking whether it's iOS or Android or some versions,\nit's easier to have this checks"]}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isIos"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isIphoneX"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isIpad"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isTablet"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isAndroid"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isAndroidLollipop"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"isAndroid11AndHigher"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"hasNotch"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"hasDynamicIsland"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"dimensions-dependant",children:"Dimensions dependant"}),"\n",(0,i.jsx)(n.p,{children:"Most of the time the apps are made for smartphones and orientation is almost always locked to portrait,\nso instead of checking dimensions all the time it's easier to use next constants:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"windowWidth"})}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"windowHeight"})," - on Android it also subtracts ",(0,i.jsx)(n.code,{children:"StatusBar.currentHeight"})," from height"]}),"\n"]}),"\n",(0,i.jsx)(n.p,{children:"In cases when it comes to tablets where all the orientations are unlocked or in other cases where orientation is not locked,\nthere are next two constants:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"maxWindowDimension"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"minWindowDimension"})}),"\n"]}),"\n",(0,i.jsxs)(n.p,{children:["They basically compare (max/min) ",(0,i.jsx)(n.code,{children:"windowHeight"})," and ",(0,i.jsx)(n.code,{children:"windowWidth"})," on start so that you could use them rather than always calling ",(0,i.jsx)(n.code,{children:"Dimensions"}),"."]}),"\n",(0,i.jsx)(n.h2,{id:"hit-slops",children:"Hit slops"}),"\n",(0,i.jsx)(n.p,{children:"Some basic predefined hit slops, you can change them for your needs:"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"hitSlop"})}),"\n",(0,i.jsx)(n.li,{children:(0,i.jsx)(n.code,{children:"hitSlopBig"})}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"time-dependant",children:"Time dependant"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"minimalLegalAge"})," - subtracts 16 years from current time"]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"maximalAge"})," - subtracts 100 years from current time"]}),"\n"]}),"\n",(0,i.jsx)(n.h2,{id:"other",children:"Other"}),"\n",(0,i.jsxs)(n.ul,{children:["\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"hairlineWidth"})," - contains the result of ",(0,i.jsx)(n.code,{children:"StyleSheet.hairlineWidth"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"pixelRatio"})," - contains the result of ",(0,i.jsx)(n.code,{children:"PixelRatio.get()"})]}),"\n",(0,i.jsxs)(n.li,{children:[(0,i.jsx)(n.code,{children:"perfectSize"})," - pixel perfect size calculation across devices (",(0,i.jsx)(n.code,{children:"e.g. perfectSize(10)"}),")"]}),"\n"]})]})}function h(e={}){const{wrapper:n}={...(0,s.a)(),...e.components};return n?(0,i.jsx)(n,{...e,children:(0,i.jsx)(a,{...e})}):a(e)}},1151:(e,n,t)=>{t.d(n,{Z:()=>d,a:()=>r});var i=t(7294);const s={},o=i.createContext(s);function r(e){const n=i.useContext(o);return i.useMemo((function(){return"function"==typeof e?e(n):{...n,...e}}),[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:r(e.components),i.createElement(o.Provider,{value:n},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff6d8346.7b8a532e.js b/assets/js/ff6d8346.7b8a532e.js new file mode 100644 index 00000000..1a5598c0 --- /dev/null +++ b/assets/js/ff6d8346.7b8a532e.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2529],{353:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>r,contentTitle:()=>d,default:()=>x,frontMatter:()=>i,metadata:()=>o,toc:()=>c});var l=n(5893),s=n(1151);const i={sidebar_position:10,title:"RadioButton"},d=void 0,o={id:"components/radio-button",title:"RadioButton",description:"Content",source:"@site/docs/components/radio-button.md",sourceDirName:"components",slug:"/components/radio-button",permalink:"/react-native-template-strong/docs/components/radio-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/radio-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:10,frontMatter:{sidebar_position:10,title:"RadioButton"},sidebar:"tutorialSidebar",previous:{title:"TryAgain",permalink:"/react-native-template-strong/docs/components/try-again"},next:{title:"RadioIcon",permalink:"/react-native-template-strong/docs/components/radio-icon"}},r={},c=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function a(e){const t={code:"code",h2:"h2",p:"p",pre:"pre",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",...(0,s.a)(),...e.components};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(t.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(t.p,{children:"Radio button component."}),"\n",(0,l.jsx)(t.h2,{id:"params",children:"Params"}),"\n",(0,l.jsxs)(t.table,{children:[(0,l.jsx)(t.thead,{children:(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Name"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Type"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Required"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Default value"}),(0,l.jsx)(t.th,{style:{textAlign:"left"},children:"Description"})]})}),(0,l.jsxs)(t.tbody,{children:[(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"isSelected"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"boolean"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Changes the design based on selection"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"id"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"string"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"ID of radio button item"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"label"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"string"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Label of radio button"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"onPress"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"(id: string, nextValue: boolean) => void"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"True"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"-"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"On item press callback"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"disabled"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"boolean"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Undefined"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"If disabled then not allows to select it and shows different design"})]}),(0,l.jsxs)(t.tr,{children:[(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"IconComponent"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"FunctionComponent<IIconComponentProps>"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"False"}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:(0,l.jsx)(t.code,{children:"RadioIcon"})}),(0,l.jsx)(t.td,{style:{textAlign:"left"},children:"Radio icon component"})]})]})]}),"\n",(0,l.jsx)(t.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(t.pre,{children:(0,l.jsx)(t.code,{className:"language-typescript",metastring:"jsx",children:'const [isSelected, setSelected] = useState<boolean>(false);\n\nconst onPress = useCallback((id, nextSelection) => {\n setSelected(nextSelection);\n}, []);\n\nreturn (\n <ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>\n <RadioButton id={"0"} label={"Radio button label"} isSelected={isSelected} onPress={onPress} />\n </ScrollView>\n);\n'})})]})}function x(e={}){const{wrapper:t}={...(0,s.a)(),...e.components};return t?(0,l.jsx)(t,{...e,children:(0,l.jsx)(a,{...e})}):a(e)}},1151:(e,t,n)=>{n.d(t,{Z:()=>o,a:()=>d});var l=n(7294);const s={},i=l.createContext(s);function d(e){const t=l.useContext(i);return l.useMemo((function(){return"function"==typeof e?e(t):{...t,...e}}),[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:d(e.components),l.createElement(i.Provider,{value:t},e.children)}}}]); \ No newline at end of file diff --git a/assets/js/ff6d8346.a76d8393.js b/assets/js/ff6d8346.a76d8393.js deleted file mode 100644 index 5b4b32d9..00000000 --- a/assets/js/ff6d8346.a76d8393.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[2529],{353:(e,n,t)=>{t.r(n),t.d(n,{assets:()=>a,contentTitle:()=>d,default:()=>h,frontMatter:()=>s,metadata:()=>o,toc:()=>r});var l=t(5893),i=t(1151);const s={sidebar_position:10,title:"RadioButton"},d=void 0,o={unversionedId:"components/radio-button",id:"components/radio-button",title:"RadioButton",description:"Content",source:"@site/docs/components/radio-button.md",sourceDirName:"components",slug:"/components/radio-button",permalink:"/react-native-template-strong/docs/components/radio-button",draft:!1,unlisted:!1,editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/docs/components/radio-button.md",tags:[],version:"current",lastUpdatedAt:1634026274,formattedLastUpdatedAt:"Oct 12, 2021",sidebarPosition:10,frontMatter:{sidebar_position:10,title:"RadioButton"},sidebar:"tutorialSidebar",previous:{title:"TryAgain",permalink:"/react-native-template-strong/docs/components/try-again"},next:{title:"RadioIcon",permalink:"/react-native-template-strong/docs/components/radio-icon"}},a={},r=[{value:"Content",id:"content",level:2},{value:"Params",id:"params",level:2},{value:"Usage example",id:"usage-example",level:2}];function c(e){const n=Object.assign({h2:"h2",p:"p",table:"table",thead:"thead",tr:"tr",th:"th",tbody:"tbody",td:"td",code:"code",pre:"pre"},(0,i.ah)(),e.components);return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.h2,{id:"content",children:"Content"}),"\n",(0,l.jsx)(n.p,{children:"Radio button component."}),"\n",(0,l.jsx)(n.h2,{id:"params",children:"Params"}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,l.jsxs)(n.table,{children:[(0,l.jsx)(n.thead,{children:(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.th,{align:"left",children:"Name"}),(0,l.jsx)(n.th,{align:"left",children:"Type"}),(0,l.jsx)(n.th,{align:"left",children:"Required"}),(0,l.jsx)(n.th,{align:"left",children:"Default value"}),(0,l.jsx)(n.th,{align:"left",children:"Description"})]})}),(0,l.jsxs)(n.tbody,{children:[(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"isSelected"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"boolean"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"Changes the design based on selection"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"id"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"ID of radio button item"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"label"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"string"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"Label of radio button"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"onPress"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"(id: string, nextValue: boolean) => void"})}),(0,l.jsx)(n.td,{align:"left",children:"True"}),(0,l.jsx)(n.td,{align:"left",children:"-"}),(0,l.jsx)(n.td,{align:"left",children:"On item press callback"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"disabled"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"boolean"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:"Undefined"}),(0,l.jsx)(n.td,{align:"left",children:"If disabled then not allows to select it and shows different design"})]}),(0,l.jsxs)(n.tr,{children:[(0,l.jsx)(n.td,{align:"left",children:"IconComponent"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"FunctionComponent<IIconComponentProps>"})}),(0,l.jsx)(n.td,{align:"left",children:"False"}),(0,l.jsx)(n.td,{align:"left",children:(0,l.jsx)(n.code,{children:"RadioIcon"})}),(0,l.jsx)(n.td,{align:"left",children:"Radio icon component"})]})]})]}),"\n",(0,l.jsx)(n.h2,{id:"usage-example",children:"Usage example"}),"\n",(0,l.jsx)(n.pre,{children:(0,l.jsx)(n.code,{className:"language-typescript",metastring:"jsx",children:'const [isSelected, setSelected] = useState<boolean>(false);\n\nconst onPress = useCallback((id, nextSelection) => {\n setSelected(nextSelection);\n}, []);\n\nreturn (\n <ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>\n <RadioButton id={"0"} label={"Radio button label"} isSelected={isSelected} onPress={onPress} />\n </ScrollView>\n);\n'})})]})}const h=function(e={}){const{wrapper:n}=Object.assign({},(0,i.ah)(),e.components);return n?(0,l.jsx)(n,Object.assign({},e,{children:(0,l.jsx)(c,e)})):c(e)}},1151:(e,n,t)=>{t.d(n,{Zo:()=>o,ah:()=>s});var l=t(7294);const i=l.createContext({});function s(e){const n=l.useContext(i);return l.useMemo((()=>"function"==typeof e?e(n):{...n,...e}),[n,e])}const d={};function o({components:e,children:n,disableParentContext:t}){let o;return o=t?"function"==typeof e?e({}):e||d:s(e),l.createElement(i.Provider,{value:o},n)}}}]); \ No newline at end of file diff --git a/assets/js/main.17deb7e1.js b/assets/js/main.17deb7e1.js deleted file mode 100644 index 53deff1e..00000000 --- a/assets/js/main.17deb7e1.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! For license information please see main.17deb7e1.js.LICENSE.txt */ -(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"0106a0c1":[()=>n.e(5165).then(n.bind(n,7478)),"@site/docs/helpers/share-helpers.md",7478],"041eb33b":[()=>n.e(4715).then(n.bind(n,1239)),"@site/docs/configs/rn-config.md",1239],"07727b20":[()=>n.e(817).then(n.bind(n,7984)),"@site/docs/helpers/regex-helpers.md",7984],"08fac725":[()=>n.e(4027).then(n.bind(n,1369)),"@site/docs/configs/eslint-config.md",1369],"09318855":[()=>n.e(8906).then(n.bind(n,1605)),"@site/docs/helpers/in-app-review-helper.md",1605],"0a3d3edc":[()=>n.e(7102).then(n.bind(n,6561)),"@site/docs/helpers/calculate-page.md",6561],"11e380a5":[()=>n.e(2370).then(n.bind(n,1778)),"@site/docs/hooks/use-previous.md",1778],"14f2708c":[()=>n.e(9908).then(n.bind(n,548)),"@site/docs/localisation/add-language.md",548],17896441:[()=>Promise.all([n.e(532),n.e(8705),n.e(7918)]).then(n.bind(n,903)),"@theme/DocItem",903],"19829c28":[()=>n.e(8608).then(n.bind(n,8129)),"@site/docs/components/section-list-wrapper.md",8129],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1a8cd603":[()=>n.e(4522).then(n.bind(n,5876)),"@site/docs/navigation/hooks.md",5876],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,8368)),"@site/src/pages/index.tsx",8368],"1e5d5012":[()=>n.e(4942).then(n.bind(n,0)),"@site/docs/components/flat-list-wrapper.md",0],"1f05955d":[()=>n.e(9301).then(n.bind(n,5413)),"@site/docs/styles/common-styles.md",5413],"1f391b9e":[()=>Promise.all([n.e(532),n.e(8705),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"1fd605f7":[()=>n.e(5803).then(n.bind(n,244)),"@site/src/pages/faq.md",244],"201c1feb":[()=>n.e(1186).then(n.bind(n,7210)),"@site/docs/redux/core-idea.md",7210],"2040cfe4":[()=>n.e(4012).then(n.bind(n,7111)),"@site/docs/navigation/overlays-and-modals.md",7111],"2190081c":[()=>n.e(8842).then(n.bind(n,4077)),"@site/docs/hooks/use-event-register.md",4077],26509314:[()=>n.e(6235).then(n.bind(n,188)),"@site/src/pages/troubleshooting.md",188],"2adfb7b8":[()=>n.e(915).then(n.bind(n,3219)),"@site/docs/localisation/intl-formatter.md",3219],"2b755825":[()=>n.e(962).then(n.bind(n,9376)),"@site/docs/localisation/change-language.md",9376],"2f2dc1d3":[()=>n.e(350).then(n.bind(n,7323)),"@site/docs/app-icon.md",7323],"30b35490":[()=>n.e(7952).then(n.bind(n,3573)),"@site/docs/navigation/actions.md",3573],"31630cdb":[()=>n.e(3793).then(n.bind(n,3833)),"@site/docs/components/primary-text-input.md",3833],"3169c1c1":[()=>n.e(7831).then(n.bind(n,2973)),"@site/docs/themes/native-colors.md",2973],"328e254d":[()=>n.e(2918).then(n.bind(n,6139)),"@site/docs/helpers/color-helpers.md",6139],"37742c1c":[()=>n.e(5887).then(n.t.bind(n,3769,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],39654635:[()=>n.e(7705).then(n.bind(n,970)),"@site/docs/configs/babel-config.md",970],"3a8d2d9f":[()=>n.e(945).then(n.bind(n,9503)),"@site/docs/testing/detox.md",9503],"3c45ece2":[()=>n.e(447).then(n.bind(n,2925)),"@site/docs/testing/storybook.md",2925],"3efb1320":[()=>n.e(4258).then(n.bind(n,7628)),"@site/docs/components/empty-view.md",7628],"3fdaf820":[()=>n.e(759).then(n.bind(n,3570)),"@site/docs/localisation/translations.md",3570],"43bdb0b8":[()=>n.e(6394).then(n.bind(n,5377)),"@site/docs/helpers/dialogs-helpers.md",5377],"449809ec":[()=>n.e(2544).then(n.bind(n,8949)),"@site/docs/utils/list-handlers.md",8949],"4972ee25":[()=>n.e(6638).then(n.bind(n,5202)),"@site/docs/redux/store.md",5202],"4ff29f3f":[()=>n.e(3286).then(n.bind(n,1067)),"@site/docs/components/date-picker-overlay.md",1067],"51dcefc3":[()=>n.e(9969).then(n.bind(n,3452)),"@site/docs/helpers/strings-helpers.md",3452],"527ccfd4":[()=>n.e(4469).then(n.bind(n,29)),"@site/docs/testing/jest.md",29],"52fe9033":[()=>n.e(5967).then(n.bind(n,8183)),"@site/docs/themes/colors.md",8183],"5b2ba987":[()=>n.e(4991).then(n.bind(n,8719)),"@site/docs/hooks/use-why-did-you-update.md",8719],"5d01a4f0":[()=>n.e(5638).then(n.bind(n,8407)),"@site/docs/hooks/use-debounce.md",8407],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5ed5e9d2":[()=>n.e(1984).then(n.bind(n,2805)),"@site/docs/helpers/orientation-helpers.md",2805],"5f847e85":[()=>n.e(5601).then(n.bind(n,2250)),"@site/docs/resources/images.md",2250],"5f9cf606":[()=>n.e(7062).then(n.bind(n,4545)),"@site/docs/configs/jest-config.md",4545],"5fbc5cf1":[()=>n.e(1207).then(n.bind(n,8594)),"@site/docs/api.md",8594],"6222aa5d":[()=>n.e(3772).then(n.bind(n,8321)),"@site/docs/internals/android.md",8321],"62c33f29":[()=>n.e(9102).then(n.bind(n,3976)),"@site/docs/components/primary-button.md",3976],"644e2e9e":[()=>n.e(6759).then(n.bind(n,9816)),"@site/docs/validations.md",9816],"69e64926":[()=>n.e(7444).then(n.bind(n,3671)),"@site/docs/hooks/use-flat-list-actions.md",3671],"6e581f4b":[()=>n.e(1721).then(n.bind(n,5010)),"@site/docs/styles/common-sizes.md",5010],"78a19f83":[()=>n.e(5389).then(n.bind(n,569)),"@site/docs/resources/sf-symbols.md",569],"7f85490b":[()=>n.e(3427).then(n.bind(n,6091)),"@site/docs/dependencies.md",6091],"82bbd999":[()=>n.e(9709).then(n.bind(n,8941)),"@site/docs/structure/module.md",8941],"84080ef2":[()=>n.e(7816).then(n.bind(n,3545)),"@site/docs/helpers/default-key-id-extractor.md",3545],"8450a114":[()=>n.e(5116).then(n.bind(n,70)),"@site/docs/components/icon-platform.md",70],"88cbf0c6":[()=>n.e(1242).then(n.bind(n,1310)),"@site/docs/redux/async-thunk.md",1310],"8a6ff679":[()=>n.e(6243).then(n.bind(n,3989)),"@site/docs/components/radio-icon.md",3989],"8e392f8e":[()=>n.e(880).then(n.bind(n,8273)),"@site/docs/styles/component-styles.md",8273],"91cb04fa":[()=>n.e(7290).then(n.bind(n,3291)),"@site/docs/configs/metro-config.md",3291],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],94173908:[()=>n.e(6765).then(n.bind(n,7781)),"@site/docs/redux/before-starting.md",7781],"9a53555d":[()=>n.e(3922).then(n.bind(n,1526)),"@site/docs/resources/fonts.md",1526],"9bbfbce4":[()=>n.e(3845).then(n.bind(n,1247)),"@site/docs/components/image-crop-picker-button.md",1247],"9cf17553":[()=>n.e(2188).then(n.bind(n,4319)),"@site/docs/components/touchable-platform.md",4319],"9dcf257f":[()=>n.e(8886).then(n.bind(n,4739)),"@site/docs/components/separator.md",4739],a09f8af8:[()=>n.e(1357).then(n.bind(n,3818)),"@site/docs/structure/project.md",3818],a775fdf9:[()=>n.e(1902).then(n.bind(n,2825)),"@site/docs/utils/url-openers.md",2825],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a7e83710:[()=>n.e(8857).then(n.t.bind(n,7085,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],a88c1c0e:[()=>n.e(7748).then(n.bind(n,295)),"@site/docs/resources/vector-icons.md",295],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],aae46502:[()=>n.e(5565).then(n.bind(n,2590)),"@site/docs/hooks/use-back-handler.md",2590],ae8ecedf:[()=>n.e(4769).then(n.bind(n,4227)),"@site/docs/configs/detox-config.md",4227],b0417d48:[()=>n.e(1477).then(n.t.bind(n,5745,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],b1ef8e0a:[()=>n.e(9702).then(n.bind(n,1297)),"@site/docs/navigation/pages.md",1297],b4a96655:[()=>n.e(5277).then(n.bind(n,8044)),"@site/docs/utils/serialize-query-params.md",8044],b5ee907e:[()=>n.e(3800).then(n.bind(n,1095)),"@site/docs/app-release.md",1095],b669beb2:[()=>n.e(3118).then(n.bind(n,5132)),"@site/docs/pages/splash.md",5132],b801cfc7:[()=>n.e(8622).then(n.bind(n,1744)),"@site/docs/configs/prettier-config.md",1744],bf3f5c43:[()=>n.e(2627).then(n.bind(n,919)),"@site/docs/utils/new-state.md",919],bf787174:[()=>n.e(9721).then(n.bind(n,7122)),"@site/docs/navigation/roots.md",7122],c2066304:[()=>n.e(3122).then(n.bind(n,4658)),"@site/docs/components/try-again.md",4658],c27df6d1:[()=>n.e(9117).then(n.bind(n,8585)),"@site/docs/redux/slice.md",8585],c5ed97f1:[()=>n.e(186).then(n.bind(n,1090)),"@site/src/pages/mission.md",1090],cf5243f0:[()=>n.e(8136).then(n.bind(n,9688)),"@site/docs/components/photo-taking-button.md",9688],d1e36d14:[()=>n.e(729).then(n.bind(n,8277)),"@site/docs/navigation/before-starting.md",8277],d589d3a7:[()=>n.e(7162).then(n.bind(n,6443)),"@site/docs/getting-started.md",6443],d95e32bd:[()=>n.e(1390).then(n.bind(n,3589)),"@site/docs/helpers/net-info-helpers.md",3589],da80d167:[()=>n.e(5048).then(n.bind(n,1389)),"@site/docs/navigation/default-options.md",1389],e1df6725:[()=>n.e(1314).then(n.bind(n,8578)),"@site/docs/redux/hooks.md",8578],e2ad1f17:[()=>n.e(9264).then(n.bind(n,4173)),"@site/docs/configs/ts-config.md",4173],e690c9e7:[()=>n.e(7686).then(n.bind(n,4408)),"@site/docs/checking-updates.md",4408],e7a9e65a:[()=>n.e(3518).then(n.bind(n,8969)),"@site/docs/components/toast-overlay.md",8969],eb838824:[()=>n.e(4697).then(n.bind(n,5759)),"@site/docs/patches.md",5759],ec7be5cc:[()=>n.e(8471).then(n.bind(n,7719)),"@site/docs/localisation/date-formatter.md",7719],edb259cb:[()=>n.e(1889).then(n.bind(n,2625)),"@site/docs/helpers/image-helpers.md",2625],ede50c9e:[()=>n.e(665).then(n.bind(n,8409)),"@site/docs/redux/state.md",8409],f2beb3a0:[()=>n.e(1486).then(n.bind(n,236)),"@site/docs/environments.md",236],f2f008bc:[()=>n.e(3220).then(n.bind(n,8926)),"@site/docs/pages/native-splash.md",8926],f49fe340:[()=>n.e(3888).then(n.bind(n,3486)),"@site/docs/pages/onboarding.md",3486],fa6c2e8e:[()=>n.e(8460).then(n.bind(n,1153)),"@site/docs/types.md",1153],fab06093:[()=>n.e(6257).then(n.bind(n,9070)),"@site/docs/components/loading-component.md",9070],fcca6dac:[()=>n.e(2239).then(n.bind(n,8689)),"@site/docs/internals/ios.md",8689],fcde09bc:[()=>n.e(2023).then(n.bind(n,9833)),"@site/docs/common-constants.md",9833],ff6d8346:[()=>n.e(2529).then(n.bind(n,353)),"@site/docs/components/radio-button.md",353]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,c.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/react-native-template-strong/faq",component:d("/react-native-template-strong/faq","c36"),exact:!0},{path:"/react-native-template-strong/mission",component:d("/react-native-template-strong/mission","cc1"),exact:!0},{path:"/react-native-template-strong/search",component:d("/react-native-template-strong/search","2ff"),exact:!0},{path:"/react-native-template-strong/troubleshooting",component:d("/react-native-template-strong/troubleshooting","c71"),exact:!0},{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","d0f"),routes:[{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","c29"),routes:[{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","1a9"),routes:[{path:"/react-native-template-strong/docs/api",component:d("/react-native-template-strong/docs/api","274"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/app-icon",component:d("/react-native-template-strong/docs/app-icon","ae1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/app-release",component:d("/react-native-template-strong/docs/app-release","f60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/checking-updates",component:d("/react-native-template-strong/docs/checking-updates","815"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/common-constants",component:d("/react-native-template-strong/docs/common-constants","ed0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/date-picker-overlay",component:d("/react-native-template-strong/docs/components/date-picker-overlay","261"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/empty-view",component:d("/react-native-template-strong/docs/components/empty-view","a05"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/flat-list-wrapper",component:d("/react-native-template-strong/docs/components/flat-list-wrapper","770"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/icon-platform",component:d("/react-native-template-strong/docs/components/icon-platform","1dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/image-crop-picker-button",component:d("/react-native-template-strong/docs/components/image-crop-picker-button","27c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/loading-component",component:d("/react-native-template-strong/docs/components/loading-component","6f6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/photo-taking-button",component:d("/react-native-template-strong/docs/components/photo-taking-button","f01"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/primary-button",component:d("/react-native-template-strong/docs/components/primary-button","bf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/primary-text-input",component:d("/react-native-template-strong/docs/components/primary-text-input","1fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/radio-button",component:d("/react-native-template-strong/docs/components/radio-button","6f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/radio-icon",component:d("/react-native-template-strong/docs/components/radio-icon","c7e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/section-list-wrapper",component:d("/react-native-template-strong/docs/components/section-list-wrapper","b26"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/separator",component:d("/react-native-template-strong/docs/components/separator","e7f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/toast-overlay",component:d("/react-native-template-strong/docs/components/toast-overlay","c46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/touchable-platform",component:d("/react-native-template-strong/docs/components/touchable-platform","4c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/try-again",component:d("/react-native-template-strong/docs/components/try-again","6f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/babel-config",component:d("/react-native-template-strong/docs/configs/babel-config","8a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/detox-config",component:d("/react-native-template-strong/docs/configs/detox-config","a1e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/eslint-config",component:d("/react-native-template-strong/docs/configs/eslint-config","6f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/jest-config",component:d("/react-native-template-strong/docs/configs/jest-config","260"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/metro-config",component:d("/react-native-template-strong/docs/configs/metro-config","1bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/prettier-config",component:d("/react-native-template-strong/docs/configs/prettier-config","2bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/rn-config",component:d("/react-native-template-strong/docs/configs/rn-config","442"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/ts-config",component:d("/react-native-template-strong/docs/configs/ts-config","c65"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/dependencies",component:d("/react-native-template-strong/docs/dependencies","68f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/environments",component:d("/react-native-template-strong/docs/environments","d41"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/getting-started",component:d("/react-native-template-strong/docs/getting-started","828"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/calculate-page",component:d("/react-native-template-strong/docs/helpers/calculate-page","5f0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/color-helpers",component:d("/react-native-template-strong/docs/helpers/color-helpers","770"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/default-key-id-extractor",component:d("/react-native-template-strong/docs/helpers/default-key-id-extractor","088"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/dialogs-helpers",component:d("/react-native-template-strong/docs/helpers/dialogs-helpers","c9e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/image-helpers",component:d("/react-native-template-strong/docs/helpers/image-helpers","112"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/in-app-review-helper",component:d("/react-native-template-strong/docs/helpers/in-app-review-helper","768"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/net-info-helpers",component:d("/react-native-template-strong/docs/helpers/net-info-helpers","fed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/orientation-helpers",component:d("/react-native-template-strong/docs/helpers/orientation-helpers","18d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/regex-helpers",component:d("/react-native-template-strong/docs/helpers/regex-helpers","72c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/share-helpers",component:d("/react-native-template-strong/docs/helpers/share-helpers","653"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/strings-helpers",component:d("/react-native-template-strong/docs/helpers/strings-helpers","600"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-back-handler",component:d("/react-native-template-strong/docs/hooks/use-back-handler","6c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-debounce",component:d("/react-native-template-strong/docs/hooks/use-debounce","d71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-event-register",component:d("/react-native-template-strong/docs/hooks/use-event-register","153"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-flat-list-actions",component:d("/react-native-template-strong/docs/hooks/use-flat-list-actions","f06"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-previous",component:d("/react-native-template-strong/docs/hooks/use-previous","768"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-why-did-you-update",component:d("/react-native-template-strong/docs/hooks/use-why-did-you-update","60b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/internals/android",component:d("/react-native-template-strong/docs/internals/android","859"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/internals/ios",component:d("/react-native-template-strong/docs/internals/ios","feb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/add-language",component:d("/react-native-template-strong/docs/localisation/add-language","758"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/change-language",component:d("/react-native-template-strong/docs/localisation/change-language","b0b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/date-formatter",component:d("/react-native-template-strong/docs/localisation/date-formatter","a03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/intl-formatter",component:d("/react-native-template-strong/docs/localisation/intl-formatter","0bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/translations",component:d("/react-native-template-strong/docs/localisation/translations","353"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/actions",component:d("/react-native-template-strong/docs/navigation/actions","295"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/before-starting",component:d("/react-native-template-strong/docs/navigation/before-starting","9c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/default-options",component:d("/react-native-template-strong/docs/navigation/default-options","f98"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/hooks",component:d("/react-native-template-strong/docs/navigation/hooks","cb5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/overlays-and-modals",component:d("/react-native-template-strong/docs/navigation/overlays-and-modals","347"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/pages",component:d("/react-native-template-strong/docs/navigation/pages","828"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/roots",component:d("/react-native-template-strong/docs/navigation/roots","8fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/native-splash",component:d("/react-native-template-strong/docs/pages/native-splash","88d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/onboarding",component:d("/react-native-template-strong/docs/pages/onboarding","452"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/splash",component:d("/react-native-template-strong/docs/pages/splash","472"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/patches",component:d("/react-native-template-strong/docs/patches","863"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/async-thunk",component:d("/react-native-template-strong/docs/redux/async-thunk","fa5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/before-starting",component:d("/react-native-template-strong/docs/redux/before-starting","f70"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/core-idea",component:d("/react-native-template-strong/docs/redux/core-idea","309"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/hooks",component:d("/react-native-template-strong/docs/redux/hooks","385"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/slice",component:d("/react-native-template-strong/docs/redux/slice","1bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/state",component:d("/react-native-template-strong/docs/redux/state","5a5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/store",component:d("/react-native-template-strong/docs/redux/store","78c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/fonts",component:d("/react-native-template-strong/docs/resources/fonts","c35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/images",component:d("/react-native-template-strong/docs/resources/images","efe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/sf-symbols",component:d("/react-native-template-strong/docs/resources/sf-symbols","b6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/vector-icons",component:d("/react-native-template-strong/docs/resources/vector-icons","685"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/structure/module",component:d("/react-native-template-strong/docs/structure/module","240"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/structure/project",component:d("/react-native-template-strong/docs/structure/project","2a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/common-sizes",component:d("/react-native-template-strong/docs/styles/common-sizes","78d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/common-styles",component:d("/react-native-template-strong/docs/styles/common-styles","e28"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/component-styles",component:d("/react-native-template-strong/docs/styles/component-styles","6b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/detox",component:d("/react-native-template-strong/docs/testing/detox","55c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/jest",component:d("/react-native-template-strong/docs/testing/jest","a1d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/storybook",component:d("/react-native-template-strong/docs/testing/storybook","eb6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/themes/colors",component:d("/react-native-template-strong/docs/themes/colors","a7f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/themes/native-colors",component:d("/react-native-template-strong/docs/themes/native-colors","ed6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/types",component:d("/react-native-template-strong/docs/types","b19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/list-handlers",component:d("/react-native-template-strong/docs/utils/list-handlers","b74"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/new-state",component:d("/react-native-template-strong/docs/utils/new-state","494"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/serialize-query-params",component:d("/react-native-template-strong/docs/utils/serialize-query-params","f5d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/url-openers",component:d("/react-native-template-strong/docs/utils/url-openers","2cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/validations",component:d("/react-native-template-strong/docs/validations","982"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/react-native-template-strong/",component:d("/react-native-template-strong/","da3"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},9383:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5742),h=n(2263),g=n(4996),b=n(6668),v=n(833),y=n(4711),w=n(9727),k=n(3320),S=n(197);function x(){const{i18n:{defaultLocale:e,localeConfigs:t}}=(0,h.Z)(),n=(0,y.l)();return(0,p.jsxs)(m.Z,{children:[Object.entries(t).map((e=>{let[t,{htmlLang:r}]=e;return(0,p.jsx)("link",{rel:"alternate",href:n.createUrl({locale:t,fullyQualified:!0}),hrefLang:r},t)})),(0,p.jsx)("link",{rel:"alternate",href:n.createUrl({locale:e,fullyQualified:!0}),hrefLang:"x-default"})]})}function E(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,h.Z)(),r=function(){const{siteConfig:{url:e}}=(0,h.Z)(),{pathname:t}=(0,u.TH)();return e+(0,g.Z)(t)}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function _(){const{i18n:{currentLocale:e}}=(0,h.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(v.d,{image:n}),(0,p.jsx)(E,{}),(0,p.jsx)(x,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const C=new Map;function T(e){if(C.has(e.pathname))return{...e,pathname:C.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return C.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return C.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),R=n(8940),L=n(469);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const j=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,L.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),N("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function P(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class O extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),P(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(j,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const I=O,D="__docusaurus-base-url-issue-banner-container",M="__docusaurus-base-url-issue-banner",F="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${D}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${M}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${F}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${F}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function z(){const{siteConfig:{baseUrl:e}}=(0,h.Z)();return(0,p.jsx)(p.Fragment,{children:!s.Z.canUseDOM&&(0,p.jsx)(m.Z,{children:(0,p.jsx)("script",{children:B(e)})})})}function U(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,h.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?(0,p.jsx)(z,{}):null}function $(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,h.Z)(),o=(0,g.Z)(e),{htmlLang:i,direction:s}=a[r];return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var q=n(4763);function H(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return(0,p.jsx)(q.Z,{children:(0,p.jsx)(R.M,{children:(0,p.jsx)(A.t,{children:(0,p.jsxs)(f,{children:[(0,p.jsx)($,{}),(0,p.jsx)(_,{}),(0,p.jsx)(U,{}),(0,p.jsx)(I,{location:T(t),children:e})]})})})})}var G=n(6887);const Z=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var V=n(9670);const W=new Set,K=new Set,Y=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,Q={prefetch(e){if(!(e=>!Y()&&!K.has(e)&&!W.has(e))(e))return!1;W.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(G).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,V.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Z(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!Y()&&!K.has(e))(e)&&(K.add(e),P(e))},X=Object.freeze(Q),J=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=X;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(H,{})})}),n=e=>{console.error("Docusaurus React Root onRecoverableError:",e)},s=()=>{if(J)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};P(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/react-native-template-strong/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/react-native-template-strong/docs","mainDocId":"getting-started","docs":[{"id":"api","path":"/react-native-template-strong/docs/api","sidebar":"tutorialSidebar"},{"id":"app-icon","path":"/react-native-template-strong/docs/app-icon","sidebar":"tutorialSidebar"},{"id":"app-release","path":"/react-native-template-strong/docs/app-release","sidebar":"tutorialSidebar"},{"id":"checking-updates","path":"/react-native-template-strong/docs/checking-updates","sidebar":"tutorialSidebar"},{"id":"common-constants","path":"/react-native-template-strong/docs/common-constants","sidebar":"tutorialSidebar"},{"id":"components/date-picker-overlay","path":"/react-native-template-strong/docs/components/date-picker-overlay","sidebar":"tutorialSidebar"},{"id":"components/empty-view","path":"/react-native-template-strong/docs/components/empty-view","sidebar":"tutorialSidebar"},{"id":"components/flat-list-wrapper","path":"/react-native-template-strong/docs/components/flat-list-wrapper","sidebar":"tutorialSidebar"},{"id":"components/icon-platform","path":"/react-native-template-strong/docs/components/icon-platform","sidebar":"tutorialSidebar"},{"id":"components/image-crop-picker-button","path":"/react-native-template-strong/docs/components/image-crop-picker-button","sidebar":"tutorialSidebar"},{"id":"components/loading-component","path":"/react-native-template-strong/docs/components/loading-component","sidebar":"tutorialSidebar"},{"id":"components/photo-taking-button","path":"/react-native-template-strong/docs/components/photo-taking-button","sidebar":"tutorialSidebar"},{"id":"components/primary-button","path":"/react-native-template-strong/docs/components/primary-button","sidebar":"tutorialSidebar"},{"id":"components/primary-text-input","path":"/react-native-template-strong/docs/components/primary-text-input","sidebar":"tutorialSidebar"},{"id":"components/radio-button","path":"/react-native-template-strong/docs/components/radio-button","sidebar":"tutorialSidebar"},{"id":"components/radio-icon","path":"/react-native-template-strong/docs/components/radio-icon","sidebar":"tutorialSidebar"},{"id":"components/section-list-wrapper","path":"/react-native-template-strong/docs/components/section-list-wrapper","sidebar":"tutorialSidebar"},{"id":"components/separator","path":"/react-native-template-strong/docs/components/separator","sidebar":"tutorialSidebar"},{"id":"components/toast-overlay","path":"/react-native-template-strong/docs/components/toast-overlay","sidebar":"tutorialSidebar"},{"id":"components/touchable-platform","path":"/react-native-template-strong/docs/components/touchable-platform","sidebar":"tutorialSidebar"},{"id":"components/try-again","path":"/react-native-template-strong/docs/components/try-again","sidebar":"tutorialSidebar"},{"id":"configs/babel-config","path":"/react-native-template-strong/docs/configs/babel-config","sidebar":"tutorialSidebar"},{"id":"configs/detox-config","path":"/react-native-template-strong/docs/configs/detox-config","sidebar":"tutorialSidebar"},{"id":"configs/eslint-config","path":"/react-native-template-strong/docs/configs/eslint-config","sidebar":"tutorialSidebar"},{"id":"configs/jest-config","path":"/react-native-template-strong/docs/configs/jest-config","sidebar":"tutorialSidebar"},{"id":"configs/metro-config","path":"/react-native-template-strong/docs/configs/metro-config","sidebar":"tutorialSidebar"},{"id":"configs/prettier-config","path":"/react-native-template-strong/docs/configs/prettier-config","sidebar":"tutorialSidebar"},{"id":"configs/rn-config","path":"/react-native-template-strong/docs/configs/rn-config","sidebar":"tutorialSidebar"},{"id":"configs/ts-config","path":"/react-native-template-strong/docs/configs/ts-config","sidebar":"tutorialSidebar"},{"id":"dependencies","path":"/react-native-template-strong/docs/dependencies","sidebar":"tutorialSidebar"},{"id":"environments","path":"/react-native-template-strong/docs/environments","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-template-strong/docs/getting-started","sidebar":"tutorialSidebar"},{"id":"helpers/calculate-page","path":"/react-native-template-strong/docs/helpers/calculate-page","sidebar":"tutorialSidebar"},{"id":"helpers/color-helpers","path":"/react-native-template-strong/docs/helpers/color-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/default-key-id-extractor","path":"/react-native-template-strong/docs/helpers/default-key-id-extractor","sidebar":"tutorialSidebar"},{"id":"helpers/dialogs-helpers","path":"/react-native-template-strong/docs/helpers/dialogs-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/image-helpers","path":"/react-native-template-strong/docs/helpers/image-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/in-app-review-helper","path":"/react-native-template-strong/docs/helpers/in-app-review-helper","sidebar":"tutorialSidebar"},{"id":"helpers/net-info-helpers","path":"/react-native-template-strong/docs/helpers/net-info-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/orientation-helpers","path":"/react-native-template-strong/docs/helpers/orientation-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/regex-helpers","path":"/react-native-template-strong/docs/helpers/regex-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/share-helpers","path":"/react-native-template-strong/docs/helpers/share-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/strings-helpers","path":"/react-native-template-strong/docs/helpers/strings-helpers","sidebar":"tutorialSidebar"},{"id":"hooks/use-back-handler","path":"/react-native-template-strong/docs/hooks/use-back-handler","sidebar":"tutorialSidebar"},{"id":"hooks/use-debounce","path":"/react-native-template-strong/docs/hooks/use-debounce","sidebar":"tutorialSidebar"},{"id":"hooks/use-event-register","path":"/react-native-template-strong/docs/hooks/use-event-register","sidebar":"tutorialSidebar"},{"id":"hooks/use-flat-list-actions","path":"/react-native-template-strong/docs/hooks/use-flat-list-actions","sidebar":"tutorialSidebar"},{"id":"hooks/use-previous","path":"/react-native-template-strong/docs/hooks/use-previous","sidebar":"tutorialSidebar"},{"id":"hooks/use-why-did-you-update","path":"/react-native-template-strong/docs/hooks/use-why-did-you-update","sidebar":"tutorialSidebar"},{"id":"internals/android","path":"/react-native-template-strong/docs/internals/android","sidebar":"tutorialSidebar"},{"id":"internals/ios","path":"/react-native-template-strong/docs/internals/ios","sidebar":"tutorialSidebar"},{"id":"localisation/add-language","path":"/react-native-template-strong/docs/localisation/add-language","sidebar":"tutorialSidebar"},{"id":"localisation/change-language","path":"/react-native-template-strong/docs/localisation/change-language","sidebar":"tutorialSidebar"},{"id":"localisation/date-formatter","path":"/react-native-template-strong/docs/localisation/date-formatter","sidebar":"tutorialSidebar"},{"id":"localisation/intl-formatter","path":"/react-native-template-strong/docs/localisation/intl-formatter","sidebar":"tutorialSidebar"},{"id":"localisation/translations","path":"/react-native-template-strong/docs/localisation/translations","sidebar":"tutorialSidebar"},{"id":"navigation/actions","path":"/react-native-template-strong/docs/navigation/actions","sidebar":"tutorialSidebar"},{"id":"navigation/before-starting","path":"/react-native-template-strong/docs/navigation/before-starting","sidebar":"tutorialSidebar"},{"id":"navigation/default-options","path":"/react-native-template-strong/docs/navigation/default-options","sidebar":"tutorialSidebar"},{"id":"navigation/hooks","path":"/react-native-template-strong/docs/navigation/hooks","sidebar":"tutorialSidebar"},{"id":"navigation/overlays-and-modals","path":"/react-native-template-strong/docs/navigation/overlays-and-modals","sidebar":"tutorialSidebar"},{"id":"navigation/pages","path":"/react-native-template-strong/docs/navigation/pages","sidebar":"tutorialSidebar"},{"id":"navigation/roots","path":"/react-native-template-strong/docs/navigation/roots","sidebar":"tutorialSidebar"},{"id":"pages/native-splash","path":"/react-native-template-strong/docs/pages/native-splash","sidebar":"tutorialSidebar"},{"id":"pages/onboarding","path":"/react-native-template-strong/docs/pages/onboarding","sidebar":"tutorialSidebar"},{"id":"pages/splash","path":"/react-native-template-strong/docs/pages/splash","sidebar":"tutorialSidebar"},{"id":"patches","path":"/react-native-template-strong/docs/patches","sidebar":"tutorialSidebar"},{"id":"redux/async-thunk","path":"/react-native-template-strong/docs/redux/async-thunk","sidebar":"tutorialSidebar"},{"id":"redux/before-starting","path":"/react-native-template-strong/docs/redux/before-starting","sidebar":"tutorialSidebar"},{"id":"redux/core-idea","path":"/react-native-template-strong/docs/redux/core-idea","sidebar":"tutorialSidebar"},{"id":"redux/hooks","path":"/react-native-template-strong/docs/redux/hooks","sidebar":"tutorialSidebar"},{"id":"redux/slice","path":"/react-native-template-strong/docs/redux/slice","sidebar":"tutorialSidebar"},{"id":"redux/state","path":"/react-native-template-strong/docs/redux/state","sidebar":"tutorialSidebar"},{"id":"redux/store","path":"/react-native-template-strong/docs/redux/store","sidebar":"tutorialSidebar"},{"id":"resources/fonts","path":"/react-native-template-strong/docs/resources/fonts","sidebar":"tutorialSidebar"},{"id":"resources/images","path":"/react-native-template-strong/docs/resources/images","sidebar":"tutorialSidebar"},{"id":"resources/sf-symbols","path":"/react-native-template-strong/docs/resources/sf-symbols","sidebar":"tutorialSidebar"},{"id":"resources/vector-icons","path":"/react-native-template-strong/docs/resources/vector-icons","sidebar":"tutorialSidebar"},{"id":"structure/module","path":"/react-native-template-strong/docs/structure/module","sidebar":"tutorialSidebar"},{"id":"structure/project","path":"/react-native-template-strong/docs/structure/project","sidebar":"tutorialSidebar"},{"id":"styles/common-sizes","path":"/react-native-template-strong/docs/styles/common-sizes","sidebar":"tutorialSidebar"},{"id":"styles/common-styles","path":"/react-native-template-strong/docs/styles/common-styles","sidebar":"tutorialSidebar"},{"id":"styles/component-styles","path":"/react-native-template-strong/docs/styles/component-styles","sidebar":"tutorialSidebar"},{"id":"testing/detox","path":"/react-native-template-strong/docs/testing/detox","sidebar":"tutorialSidebar"},{"id":"testing/jest","path":"/react-native-template-strong/docs/testing/jest","sidebar":"tutorialSidebar"},{"id":"testing/storybook","path":"/react-native-template-strong/docs/testing/storybook","sidebar":"tutorialSidebar"},{"id":"themes/colors","path":"/react-native-template-strong/docs/themes/colors","sidebar":"tutorialSidebar"},{"id":"themes/native-colors","path":"/react-native-template-strong/docs/themes/native-colors","sidebar":"tutorialSidebar"},{"id":"types","path":"/react-native-template-strong/docs/types","sidebar":"tutorialSidebar"},{"id":"utils/list-handlers","path":"/react-native-template-strong/docs/utils/list-handlers","sidebar":"tutorialSidebar"},{"id":"utils/new-state","path":"/react-native-template-strong/docs/utils/new-state","sidebar":"tutorialSidebar"},{"id":"utils/serialize-query-params","path":"/react-native-template-strong/docs/utils/serialize-query-params","sidebar":"tutorialSidebar"},{"id":"utils/url-openers","path":"/react-native-template-strong/docs/utils/url-openers","sidebar":"tutorialSidebar"},{"id":"validations","path":"/react-native-template-strong/docs/validations","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-template-strong/docs/getting-started","label":"getting-started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.0.0-alpha.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.0.0-alpha.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.0.0-alpha.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.0.0-alpha.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.0.0-alpha.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.0.0-alpha.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.0.0-alpha.0"}}}');var c=n(5893);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(7452),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},9960:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(5893);const u=r.createContext({collectLink:()=>{}});var d=n(4996);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:h,"data-noBrokenLinkCheck":g,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,d.C)(),S=(0,r.useContext)(u),x=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>x.current));const E=p||f;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(A=C,b&&(e=>e.startsWith("/"))(A)?k(A):A):void 0;var A;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const R=(0,r.useRef)(!1),L=n?a.OL:a.rU,N=l.Z.canUseIntersectionObserver,j=(0,r.useRef)(),P=()=>{R.current||null==T||(window.docusaurus.preload(T),R.current=!0)};(0,r.useEffect)((()=>(!N&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{N&&j.current&&j.current.disconnect()})),[j,T,N,_]);const O=T?.startsWith("#")??!1,I=!T||!_||O;return I||g||S.collectLink(T),I?(0,c.jsx)("a",{ref:x,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...v}):(0,c.jsx)(L,{...v,onMouseEnter:P,onTouchStart:P,innerRef:e=>{x.current=e,N&&e&&_&&(j.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(j.current.unobserve(e),j.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),j.current.observe(e))},to:T,...n&&{isActive:h,activeClassName:m}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>g,gB:()=>h});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function h(e){return p(e).versions}function g(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return c(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(7410),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.Z)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});n(7294);var r=n(6010),a=n(5999),o=n(6668),i=n(9960);const s={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var l=n(5893);function c(e){let{as:t,id:n,...c}=e;const{navbar:{hideOnScroll:u}}=(0,o.L)();if("h1"===t||!n)return(0,l.jsx)(t,{...c,id:void 0});const d=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof c.children?c.children:n});return(0,l.jsxs)(t,{...c,className:(0,r.Z)("anchor",u?s.anchorWithHideOnScrollNavbar:s.anchorWithStickyNavbar,c.className),id:n,children:[c.children,(0,l.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":d,title:d,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},7452:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Nt});var r=n(7294),a=n(6010),o=n(4763),i=n(833),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function h(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var g=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return(0,u.jsx)(h,{className:v.skipToContent})}var w=n(6668),k=n(9689);function S(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const x={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",x.closeButton,e.className),children:(0,u.jsx)(S,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function A(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),o&&(0,u.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var R=n(3163),L=n(2466);var N=n(902),j=n(3102);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,R.e)(),t=(0,j.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,N.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(P);if(!e)throw new N.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,j.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(2949),B=n(2389);function z(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,B.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.Z)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(z,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})]})})}const H=r.memo(q),G={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function Z(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?G.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var V=n(1327);function W(){return(0,u.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function K(){const e=(0,R.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(S,{color:"var(--ifm-color-emphasis-600)"})})}function Y(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(W,{}),(0,u.jsx)(Z,{className:"margin-right--md"}),(0,u.jsx)(K,{})]})}var Q=n(9960),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.Z)(a),h=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,m&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Q.Z,{href:l?f:a,...c,...h}):(0,u.jsx)(Q.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},...c,...h})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);function ce(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function ue(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(qe,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function de(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ce(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.Z)("menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(qe,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function pe(e){let{mobile:t=!1,...n}=e;const r=t?de:ue;return(0,u.jsx)(r,{...n})}var fe=n(4711);function me(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";function ge(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var be=n(830),ve=["translations"];function ye(){return ye=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ye.apply(this,arguments)}function we(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){s=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return ke(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ke(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function ke(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Se(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var xe="Ctrl";var Ee=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Se(e,ve),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=we((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(xe))}),[]),r.createElement("button",ye({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(be.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===xe?r.createElement(ge,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),_e=n(5742),Ce=n(6177),Te=n(239),Ae=n(3320);var Re=n(3935);const Le={button:{buttonText:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ne=null;function je(e){let{hit:t,children:n}=e;return(0,u.jsx)(Q.Z,{to:t.url,children:n})}function Pe(e){let{state:t,onClose:n}=e;const r=(0,Ce.M)();return(0,u.jsx)(Q.Z,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Oe(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),l=(0,Te.l)(),c=function(){const{locale:e,tags:t}=(0,Ae._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.k6)(),h=(0,r.useRef)(null),g=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Ne?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Ne=t}))),[]),S=(0,r.useCallback)((()=>{k().then((()=>{h.current=document.createElement("div"),document.body.insertBefore(h.current,document.body.firstChild),v(!0)}))}),[k,v]),x=(0,r.useCallback)((()=>{v(!1),h.current?.remove()}),[v]),E=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>(0,u.jsx)(Pe,{...e,onClose:x})),[x]),A=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:S,onClose:x,onInput:E,searchButtonRef:g}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(_e.Z,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(Ee,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:S,ref:g,translations:Le.button}),b&&Ne&&h.current&&(0,Re.createPortal)((0,u.jsx)(Ne,{onClose:x,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:je,transformSearchClient:A,...o.searchPagePath&&{resultsFooterComponent:T},...o,searchParameters:f,placeholder:Le.placeholder,translations:Le.modal}),h.current)]})}function Ie(){const{siteConfig:e}=(0,le.Z)();return(0,u.jsx)(Oe,{...e.themeConfig.algolia})}const De={searchBox:"searchBox_ZlJk"};function Me(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.Z)(n,De.searchBox),children:t})}var Fe=n(143),Be=n(2802);var ze=n(373);const Ue=e=>e.docs.find((t=>t.id===e.mainDocId));const $e={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,fe.l)(),{search:f,hash:m}=(0,s.TH)(),h=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],g=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(pe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(me,{className:he}),g]}),items:h})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Me,{className:n,children:(0,u.jsx)(Ie,{})})},dropdown:pe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Fe.Iw)(r),i=(0,Be.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,Fe.Iw)(r),i=(0,Be.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Be.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,Fe.Iw)(n),f=(0,Fe.gB)(n),{savePreferredVersionName:m}=(0,ze.J)(n),h=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??Ue(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],g=(0,Be.lO)(n)[0],b=t&&h.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):g.label,v=t&&h.length>1?void 0:Ue(g).path;return h.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:v,isActive:r?()=>!1:void 0}):(0,u.jsx)(pe,{...i,mobile:t,label:b,to:v,items:h,isActive:r?()=>!1:void 0})}};function qe(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=$e[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function He(){const e=(0,R.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(qe,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ze(){const e=0===(0,w.L)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function Ve(){const e=(0,R.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(Y,{}),primaryMenu:(0,u.jsx)(He,{}),secondaryMenu:(0,u.jsx)(Ze,{})}):null}const We={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,R.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[We.navbarHideable,!d&&We.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ke,{onClick:i.toggle}),(0,u.jsx)(Ve,{})]})}var Qe=n(8780);const Xe={errorBoundaryError:"errorBoundaryError_a6uf"};function Je(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function et(e){let{error:t}=e;const n=(0,Qe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Xe.errorBoundaryError,children:n})}class tt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const nt="right";function rt(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function at(){const{toggle:e,shown:t}=(0,R.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(rt,{})})}const ot={colorModeToggle:"colorModeToggle_DEke"};function it(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(tt,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(qe,{...e})},t)))})}function st(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function lt(){const e=(0,R.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??nt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(st,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(at,{}),(0,u.jsx)(W,{}),(0,u.jsx)(it,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(it,{items:r}),(0,u.jsx)(Z,{className:ot.colorModeToggle}),!a&&(0,u.jsx)(Me,{children:(0,u.jsx)(Ie,{})})]})})}function ct(){return(0,u.jsx)(Ye,{children:(0,u.jsx)(lt,{})})}function ut(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Q.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function dt(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(ut,{item:t})},t.href??t.to)}function pt(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(dt,{item:e},t)))})]})}function ft(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(pt,{column:e},t)))})}function mt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ht(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(ut,{item:t})}function gt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(ht,{item:e}),t.length!==n+1&&(0,u.jsx)(mt,{})]},n)))})})}function bt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(ft,{columns:t}):(0,u.jsx)(gt,{links:t})}var vt=n(9965);const yt={footerLogoLink:"footerLogoLink_BH7S"};function wt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(vt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function kt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Q.Z,{href:t.href,className:yt.footerLogoLink,target:t.target,children:(0,u.jsx)(wt,{logo:t})}):(0,u.jsx)(wt,{logo:t})}function St(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function xt(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function Et(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(xt,{style:a,links:n&&n.length>0&&(0,u.jsx)(bt,{links:n}),logo:r&&(0,u.jsx)(kt,{logo:r}),copyright:t&&(0,u.jsx)(St,{copyright:t})})}const _t=r.memo(Et),Ct=(0,N.Qc)([F.S,k.pl,L.OC,ze.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(j.n2,{children:(0,u.jsx)(R.M,{children:(0,u.jsx)(O,{children:t})})})}]);function Tt(e){let{children:t}=e;return(0,u.jsx)(Ct,{children:t})}var At=n(2503);function Rt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(At.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(Je,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(et,{error:t})})]})})})}const Lt={mainWrapper:"mainWrapper_z2l0"};function Nt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(Tt,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(y,{}),(0,u.jsx)(A,{}),(0,u.jsx)(ct,{}),(0,u.jsx)("div",{id:d,className:(0,a.Z)(g.k.wrapper.main,Lt.mainWrapper,r),children:(0,u.jsx)(o.Z,{fallback:e=>(0,u.jsx)(Rt,{...e}),children:t})}),!n&&(0,u.jsx)(_t,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(9960),a=n(4996),o=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),m=n?"":t,h=s?.alt??m;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:h,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),a=n(6010),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,o.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.Z.canUseDOM)return e?u:d}function h(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function g(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(h,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?g:h;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>h,pl:()=>m});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function h(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>g});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),h=e=>{d.set(f(e))};function g(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&h(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b,Oh:()=>w});var r=n(7294),a=n(143),o=n(9935),i=n(6668),s=n(2802),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function h(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function g(e){let{children:t}=e;const n=h();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(g,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function v(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),a=n(2263),o=n(1980);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>c});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(){return a.Z.canUseDOM?window.innerWidth>i?o.desktop:o.mobile:o.ssr}const l=!1;function c(){const[e,t]=(0,r.useState)((()=>l?"ssr":s()));return(0,r.useEffect)((()=>{function e(){t(s())}const n=l?window.setTimeout(e,1e3):void 0;return window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e),clearTimeout(n)}}),[]),e}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{LM:()=>f,_F:()=>g,cE:()=>p,SN:()=>E,lO:()=>k,vY:()=>x,oz:()=>S,s1:()=>w,f:()=>v});var r=n(7294),a=n(6550),o=n(8790),i=n(143),s=n(373),l=n(4477),c=n(1116);function u(e){return Array.from(new Set(e))}var d=n(8596);const p=!!i._r;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),h=(e,t)=>e.some((e=>g(e,t)));function g(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||h(e.items,t))}function b(e,t){switch(e.type){case"category":return g(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||g(e,t);default:return!1}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.H)(i),sidebarName:c,sidebarItems:u}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>c,Rb:()=>s});var r=n(7294),a=n(6550),o=n(1688),i=n(902);function s(e){!function(e){const t=(0,a.k6)(),n=(0,i.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function l(e){return function(e){const t=(0,a.k6)();return(0,o.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function c(e){const t=l(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),a=n(6010),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128),u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>p});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),s=n(5893);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(143),a=n(2263),o=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>l});n(7294),n(1688);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>o});var r=n(2263),a=n(6550);function o(){const{siteConfig:{baseUrl:e,url:t},i18n:{defaultLocale:n,currentLocale:o}}=(0,r.Z)(),{pathname:i}=(0,a.TH)(),s=o===n?e:e.replace(`/${o}/`,"/"),l=i.replace(e,"");return{createUrl:function(e){let{locale:r,fullyQualified:a}=e;return`${a?t:""}${function(e){return e===n?`${s}`:`${s}${e}/`}(r)}${l}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},6010:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n);else for(t in e)e[t]&&(a&&(a+=" "),a+=t);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="";n<arguments.length;)(e=arguments[n++])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>A,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&a(e),l=t&&a(t),c=s||l;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var h=!("undefined"==typeof window||!window.document||!window.document.createElement);function g(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,S=void 0===k?g:k,x=i.keyLength,E=void 0===x?6:x,_=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=u(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var A=m();function R(e){(0,r.Z)(U,e),U.length=n.length,A.notifyListeners(U.location,U.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(C(e.state))}function N(){P(C(y()))}var j=!1;function P(e){if(j)j=!1,R();else{A.confirmTransitionTo(e,"POP",S,(function(t){t?R({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(j=!0,M(a))}(e)}))}}var O=C(y()),I=[O.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function B(e){1===(F+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(v,N)):0===F&&(window.removeEventListener(b,L),o&&window.removeEventListener(v,N))}var z=!1;var U={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=I.indexOf(U.location.key),c=I.slice(0,l+1);c.push(o.key),I=c,R({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);A.confirmTransitionTo(o,r,S,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=I.indexOf(U.location.key);-1!==l&&(I[l]=o.key),R({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=A.setPrompt(e);return z||(B(1),z=!0),function(){return z&&(z=!1,B(-1)),t()}},listen:function(e){var t=A.appendListener(e);return B(1),function(){B(-1),t()}}};return U}var k="hashchange",S={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};function x(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(x(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),h||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?g:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",v=S[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(E());return b&&(e=u(e,b)),f(e)}var T=m();function A(e){(0,r.Z)(z,e),z.length=t.length,T.notifyListeners(z.location,z.action)}var R=!1,L=null;function N(){var e,t,n=E(),r=y(n);if(n!==r)_(r);else{var a=C(),i=z.location;if(!R&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(R)R=!1,A();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?A({action:t,location:e}):function(e){var t=z.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(R=!0,D(a))}(e)}))}}(a)}}var j=E(),P=y(j);j!==P&&_(P);var O=C(),I=[p(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,N):0===M&&window.removeEventListener(k,N)}var B=!1;var z={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=x(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(E()!==a){L=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(z.location)),i=I.slice(0,o+1);i.push(t),I=i,A({action:n,location:r})}else A()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,z.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);E()!==a&&(L=t,_(a));var o=I.indexOf(p(z.location));-1!==o&&(I[o]=t),A({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return B||(F(1),B=!0),function(){return B&&(B=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return z}function T(e,t,n){return Math.min(Math.max(e,t),n)}function A(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function h(){return Math.random().toString(36).substr(2,c)}var g=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?h():e.key||h())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[g],index:g,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,h(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),h=l(n),g=0;g<i.length;++g){var b=i[g];if(!(o[b]||r&&r[b]||h&&h[b]||s&&s[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],h=n[2],g=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=h&&null!=m&&m!==h,S="+"===y||"*"===y,x="?"===y||"*"===y,E=n[2]||u,_=b||v;r.push({name:g||o++,prefix:h||"",delimiter:E,optional:x,repeat:S,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(n.delimiter||"/"),h=i.slice(-m.length)===m;return a||(i=(h?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&h?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},7410:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],c=r.util.type(l);"Object"!==c||o[i(l)]?"Array"!==c||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};return r.hooks.run("before-tokenize",o),o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){var t=[],n=e.head.next;for(;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var h=f[m],g=h.inside,b=!!h.lookbehind,v=!!h.greedy,y=h.alias;if(v&&!h.pattern.global){var w=h.pattern.toString().match(/[imsuy]*$/)[0];h.pattern=RegExp(h.pattern.source,w+"g")}for(var k=h.pattern||h,S=s.next,x=u;S!==t.tail&&!(d&&x>=d.reach);x+=S.value.length,S=S.next){var E=S.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(v){if(!(_=o(k,x,e,b))||_.index>=e.length)break;var T=_.index,A=_.index+_[0].length,R=x;for(R+=S.value.length;T>=R;)R+=(S=S.next).value.length;if(x=R-=S.value.length,S.value instanceof a)continue;for(var L=S;L!==t.tail&&(R<A||"string"==typeof L.value);L=L.next)C++,R+=L.value.length;C--,E=e.slice(x,R),_.index-=x}else if(!(_=o(k,0,E,b)))continue;T=_.index;var N=_[0],j=E.slice(0,T),P=E.slice(T+N.length),O=x+E.length;d&&O>d.reach&&(d.reach=O);var I=S.prev;if(j&&(I=l(t,I,j),x+=j.length),c(t,I,C),S=l(t,I,new a(p,g?r.tokenize(N,g):N,y,N)),P&&l(t,S,P),C>1){var D={cause:p+","+m,reach:O};i(e,t,n,S.prev,x,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}(),a=r;r.default=r,a.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},a.languages.markup.tag.inside["attr-value"].inside.entity=a.languages.markup.entity,a.languages.markup.doctype.inside["internal-subset"].inside=a.languages.markup,a.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(a.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:a.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i;var r={"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:a.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:r},a.languages.insertBefore("markup","cdata",o)}}),Object.defineProperty(a.languages.markup.tag,"addAttribute",{value:function(e,t){a.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:a.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),a.languages.html=a.languages.markup,a.languages.mathml=a.languages.markup,a.languages.svg=a.languages.markup,a.languages.xml=a.languages.extend("markup",{}),a.languages.ssml=a.languages.xml,a.languages.atom=a.languages.xml,a.languages.rss=a.languages.xml,function(e){var t="\\b(?:BASH|BASHOPTS|BASH_ALIASES|BASH_ARGC|BASH_ARGV|BASH_CMDS|BASH_COMPLETION_COMPAT_DIR|BASH_LINENO|BASH_REMATCH|BASH_SOURCE|BASH_VERSINFO|BASH_VERSION|COLORTERM|COLUMNS|COMP_WORDBREAKS|DBUS_SESSION_BUS_ADDRESS|DEFAULTS_PATH|DESKTOP_SESSION|DIRSTACK|DISPLAY|EUID|GDMSESSION|GDM_LANG|GNOME_KEYRING_CONTROL|GNOME_KEYRING_PID|GPG_AGENT_INFO|GROUPS|HISTCONTROL|HISTFILE|HISTFILESIZE|HISTSIZE|HOME|HOSTNAME|HOSTTYPE|IFS|INSTANCE|JOB|LANG|LANGUAGE|LC_ADDRESS|LC_ALL|LC_IDENTIFICATION|LC_MEASUREMENT|LC_MONETARY|LC_NAME|LC_NUMERIC|LC_PAPER|LC_TELEPHONE|LC_TIME|LESSCLOSE|LESSOPEN|LINES|LOGNAME|LS_COLORS|MACHTYPE|MAILCHECK|MANDATORY_PATH|NO_AT_BRIDGE|OLDPWD|OPTERR|OPTIND|ORBIT_SOCKETDIR|OSTYPE|PAPERSIZE|PATH|PIPESTATUS|PPID|PS1|PS2|PS3|PS4|PWD|RANDOM|REPLY|SECONDS|SELINUX_INIT|SESSION|SESSIONTYPE|SESSION_MANAGER|SHELL|SHELLOPTS|SHLVL|SSH_AUTH_SOCK|TERM|UID|UPSTART_EVENTS|UPSTART_INSTANCE|UPSTART_JOB|UPSTART_SESSION|USER|WINDOWID|XAUTHORITY|XDG_CONFIG_DIRS|XDG_CURRENT_DESKTOP|XDG_DATA_DIRS|XDG_GREETER_DATA_DIR|XDG_MENU_PREFIX|XDG_RUNTIME_DIR|XDG_SEAT|XDG_SEAT_PATH|XDG_SESSION_DESKTOP|XDG_SESSION_ID|XDG_SESSION_PATH|XDG_SESSION_TYPE|XDG_VTNR|XMODIFIERS)\\b",n={pattern:/(^(["']?)\w+\2)[ \t]+\S.*/,lookbehind:!0,alias:"punctuation",inside:null},r={bash:n,environment:{pattern:RegExp("\\$"+t),alias:"constant"},variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,greedy:!0,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--|\+\+|\*\*=?|<<=?|>>=?|&&|\|\||[=!+\-*/%<>^&|]=?|[?~:]/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|U[0-9a-fA-F]{8}|u[0-9a-fA-F]{4}|x[0-9a-fA-F]{1,2})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)[\w-]+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b[\w-]+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+)\s[\s\S]*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:r},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s[\s\S]*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0,inside:{bash:n}},{pattern:/(^|[^\\](?:\\\\)*)"(?:\\[\s\S]|\$\([^)]+\)|\$(?!\()|`[^`]+`|[^"\\`$])*"/,lookbehind:!0,greedy:!0,inside:r},{pattern:/(^|[^$\\])'[^']*'/,lookbehind:!0,greedy:!0},{pattern:/\$'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,inside:{entity:r.entity}}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:r.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|apt-cache|apt-get|aptitude|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|composer|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|docker|docker-compose|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|node|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|podman|podman-compose|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vcpkg|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:case|do|done|elif|else|esac|fi|for|function|if|in|select|then|until|while)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|alias|bind|break|builtin|caller|cd|command|continue|declare|echo|enable|eval|exec|exit|export|getopts|hash|help|let|local|logout|mapfile|printf|pwd|read|readarray|readonly|return|set|shift|shopt|source|test|times|trap|type|typeset|ulimit|umask|unalias|unset)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:false|true)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|=[=~]?|!=?|<<[<-]?|[&\d]?>>|\d[<>]&?|[<>][&=]?|&[>&]?|\|[&|]?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}},n.inside=e.languages.bash;for(var a=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=r.variable[1].inside,i=0;i<a.length;i++)o[a[i]]=e.languages.bash[a[i]];e.languages.shell=e.languages.bash}(a),a.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},a.languages.c=a.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),a.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),a.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},a.languages.c.string],char:a.languages.c.char,comment:a.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:a.languages.c}}}}),a.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete a.languages.c.boolean,function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(a),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-](?:[^;{\s]|\s+(?![\s{]))*(?:;|(?=\s*\{))/,inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css;var n=e.languages.markup;n&&(n.tag.addInlined("style","css"),n.tag.addAttribute("style","css"))}(a),function(e){var t,n=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/;e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+n.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[n,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}});var r={pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0},a={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0};e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:r,number:a,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:r,number:a})}(a),a.languages.javascript=a.languages.extend("clike",{"class-name":[a.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),a.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,a.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)\/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/,lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:a.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:a.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:a.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:a.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:a.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),a.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:a.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),a.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),a.languages.markup&&(a.languages.markup.tag.addInlined("script","javascript"),a.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),a.languages.js=a.languages.javascript,function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(a),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(a),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source;e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a=t[n];if("code"===a.type){var o=a.content[1],i=a.content[3];if(o&&i&&"code-language"===o.type&&"code-block"===i.type&&"string"==typeof o.content){var s=o.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),l="language-"+(s=(/[a-z][\w-]*/i.exec(s)||[""])[0].toLowerCase());i.alias?"string"==typeof i.alias?i.alias=[i.alias,l]:i.alias.push(l):i.alias=[l]}}else e(a.content)}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r],c=/language-(.+)/.exec(o);if(c){n=c[1];break}}var u,d=e.languages[n];if(d)t.content=e.highlight((u=t.content,u.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;if("#"===(t=t.toLowerCase())[0])return n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n);var r=s[t];return r||e}))),d,n);else if(n&&"none"!==n&&e.plugins.autoloader){var p="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random());t.attributes.id=p,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(p);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))}))}}}));var i=RegExp(e.languages.markup.tag.pattern.source,"gi"),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(a),a.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:a.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},a.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),a.length>0)){var s=p(/^\{$/,/^\}$/);if(-1===s)continue;for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&a.indexOf(c.content)>=0&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return!1}return!0}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0===--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),a.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(e,t){return"___"+t.toUpperCase()+"_"+e+"___"}function l(t,n,r){var a={code:t,grammar:n,language:r};return e.hooks.run("before-tokenize",a),a.tokens=e.tokenize(a.code,a.grammar),e.hooks.run("after-tokenize",a),a.tokens}function c(t){var n={};n["interpolation-punctuation"]=a;var o=e.tokenize(t,n);if(3===o.length){var i=[1,1];i.push.apply(i,l(o[1],e.languages.javascript,"javascript")),o.splice.apply(o,i)}return new e.Token("interpolation",o,r.alias,t)}function u(t,n,r){var a=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),i=0,u={},d=l(a.map((function(e){if("string"==typeof e)return e;for(var n,a=e.content;-1!==t.indexOf(n=s(i++,r)););return u[n]=a,n})).join(""),n,r),p=Object.keys(u);return i=0,function e(t){for(var n=0;n<t.length;n++){if(i>=p.length)return;var r=t[n];if("string"==typeof r||"string"==typeof r.content){var a=p[i],o="string"==typeof r?r:r.content,s=o.indexOf(a);if(-1!==s){++i;var l=o.substring(0,s),d=c(u[a]),f=o.substring(s+a.length),m=[];if(l&&m.push(l),m.push(d),f){var h=[f];e(h),m.push.apply(m,h)}"string"==typeof r?(t.splice.apply(t,[n,1].concat(m)),n+=m.length-1):r.content=m}}else{var g=r.content;Array.isArray(g)?e(g):e([g])}}}(d),new e.Token(r,d,"language-"+r,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var d={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function p(e){return"string"==typeof e?e:Array.isArray(e)?e.map(p).join(""):p(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in d&&function t(n){for(var r=0,a=n.length;r<a;r++){var o=n[r];if("string"!=typeof o){var i=o.content;if(Array.isArray(i))if("template-string"===o.type){var s=i[1];if(3===i.length&&"string"!=typeof s&&"embedded-code"===s.type){var l=p(s),c=s.alias,d=Array.isArray(c)?c[0]:c,f=e.languages[d];if(!f)continue;i[1]=u(l,f,d)}}else t(i);else"string"!=typeof i&&t([i])}}}(t.tokens)}))}(a),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(a),function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];"RegExp"===e.util.type(o)&&(o=e.languages.javascript[a]={pattern:o});var i=o.inside||{};o.inside=i,i["maybe-class-name"]=/^[A-Z][\s\S]*/}}(a),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var i=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(i).join(""):""},s=function(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;if("string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?n.length>0&&n[n.length-1].tagName===i(a.content[0].content[1])&&n.pop():"/>"===a.content[a.content.length-1].content||n.push({tagName:i(a.content[0].content[1]),openedBraces:0}):n.length>0&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&n.length>0&&0===n[n.length-1].openedBraces){var l=i(a);r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(l+=i(t[r+1]),t.splice(r+1,1)),r>0&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(l=i(t[r-1])+l,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",l,null,l)}a.content&&"string"!=typeof a.content&&s(a.content)}};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||s(e.tokens)}))}(a),function(e){e.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d.*$/m]};var t={"deleted-sign":"-","deleted-arrow":"<","inserted-sign":"+","inserted-arrow":">",unchanged:" ",diff:"!"};Object.keys(t).forEach((function(n){var r=t[n],a=[];/^\w+$/.test(n)||a.push(/\w+/.exec(n)[0]),"diff"===n&&a.push("bold"),e.languages.diff[n]={pattern:RegExp("^(?:["+r+"].*(?:\r\n?|\n|(?![\\s\\S])))+","m"),alias:a,inside:{line:{pattern:/(.)(?=[\s\S]).*(?:\r\n?|\n)?/,lookbehind:!0},prefix:{pattern:/[\s\S]/,alias:/\w+/.exec(n)[0]}}}})),Object.defineProperty(e.languages.diff,"PREFIXES",{value:t})}(a),a.languages.git={comment:/^#.*/m,deleted:/^[-\u2013].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/}},coord:/^@@.*@@$/m,"commit-sha1":/^commit \w{40}$/m},a.languages.go=a.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),a.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete a.languages.go["class-name"],function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var h=p.substring(0,m),g=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];h&&v.push.apply(v,i([h])),v.push(g),b&&v.push.apply(v,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(a),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:false|true)\b/,block:{pattern:/^(\s*(?:~\s*)?)[#\/]\S+?(?=\s*(?:~\s*)?$|\s)/,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&':()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",(function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})),e.languages.hbs=e.languages.handlebars}(a),a.languages.json={property:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?=\s*:)/,lookbehind:!0,greedy:!0},string:{pattern:/(^|[^\\])"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,lookbehind:!0,greedy:!0},comment:{pattern:/\/\/.*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},number:/-?\b\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,punctuation:/[{}[\],]/,operator:/:/,boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"}},a.languages.webmanifest=a.languages.json,a.languages.less=a.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-](?:\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\((?:[^(){}]|\([^(){}]*\))*\)|[^(){};@\s]|\s+(?!\s))*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/,operator:/[+\-*\/]/}),a.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-].*?(?=[(;])/,lookbehind:!0,alias:"function"}}),a.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"builtin-target":{pattern:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,alias:"builtin"},target:{pattern:/^(?:[^:=\s]|[ \t]+(?![\s:]))+(?=\s*:(?!=))/m,alias:"symbol",inside:{variable:/\$+(?:(?!\$)[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:(?!\$)[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,function:{pattern:/(\()(?:abspath|addsuffix|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:list|s)?)(?=[ \t])/,lookbehind:!0},operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},a.languages.objectivec=a.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete a.languages.objectivec["class-name"],a.languages.objc=a.languages.objectivec,a.languages.ocaml={comment:{pattern:/\(\*[\s\S]*?\*\)/,greedy:!0},char:{pattern:/'(?:[^\\\r\n']|\\(?:.|[ox]?[0-9a-f]{1,3}))'/i,greedy:!0},string:[{pattern:/"(?:\\(?:[\s\S]|\r\n)|[^\\\r\n"])*"/,greedy:!0},{pattern:/\{([a-z_]*)\|[\s\S]*?\|\1\}/,greedy:!0}],number:[/\b(?:0b[01][01_]*|0o[0-7][0-7_]*)\b/i,/\b0x[a-f0-9][a-f0-9_]*(?:\.[a-f0-9_]*)?(?:p[+-]?\d[\d_]*)?(?!\w)/i,/\b\d[\d_]*(?:\.[\d_]*)?(?:e[+-]?\d[\d_]*)?(?!\w)/i],directive:{pattern:/\B#\w+/,alias:"property"},label:{pattern:/\B~\w+/,alias:"property"},"type-variable":{pattern:/\B'\w+/,alias:"function"},variant:{pattern:/`\w+/,alias:"symbol"},keyword:/\b(?:as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|nonrec|object|of|open|private|rec|sig|struct|then|to|try|type|val|value|virtual|when|where|while|with)\b/,boolean:/\b(?:false|true)\b/,"operator-like-punctuation":{pattern:/\[[<>|]|[>|]\]|\{<|>\}/,alias:"punctuation"},operator:/\.[.~]|:[=>]|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lsl|lsr|lxor|mod|or)\b/,punctuation:/;;|::|[(){}\[\].,:;#]|\b_\b/},a.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},a.languages.python["string-interpolation"].inside.interpolation.inside.rest=a.languages.python,a.languages.py=a.languages.python,a.languages.reason=a.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),a.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete a.languages.reason.function,function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t].+)*/m,lookbehind:!0,greedy:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,greedy:!0,inside:{atrule:/(?:@[\w-]+|[+=])/}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|not|or)\b/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,greedy:!0,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s].*)/m,greedy:!0,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/^([ \t]*)\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,[^,\r\n]+|[^,\r\n]*)(?:,[^,\r\n]+)*)*/m,lookbehind:!0,greedy:!0}})}(a),a.languages.scss=a.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-](?:\([^()]+\)|[^()\s]|\s+(?!\s))*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)?url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()\s]|\s+(?!\s)|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}][^:{}]*[:{][^}]))/,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}},property:{pattern:/(?:[-\w]|\$[-\w]|#\{\$[-\w]+\})+(?=\s*:)/,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),a.languages.insertBefore("scss","atrule",{keyword:[/@(?:content|debug|each|else(?: if)?|extend|for|forward|function|if|import|include|mixin|return|use|warn|while)\b/i,{pattern:/( )(?:from|through)(?= )/,lookbehind:!0}]}),a.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),a.languages.insertBefore("scss","function",{"module-modifier":{pattern:/\b(?:as|hide|show|with)\b/i,alias:"keyword"},placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:false|true)\b/,null:{pattern:/\bnull\b/,alias:"keyword"},operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|not|or)(?=\s)/,lookbehind:!0}}),a.languages.scss.atrule.inside.rest=a.languages.scss,function(e){var t={pattern:/(\b\d+)(?:%|[a-z]+)/,lookbehind:!0},n={pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0},r={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},url:{pattern:/\burl\((["']?).*?\1\)/i,greedy:!0},string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:else|for|if|return|unless)(?=\s|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,color:[/\b(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)\b/i,{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,boolean:/\b(?:false|true)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.{2,3}|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],number:n,punctuation:/[{}()\[\];:,]/};r.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^\{|\}$/,alias:"punctuation"},rest:r}},r.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:r}},e.languages.stylus={"atrule-declaration":{pattern:/(^[ \t]*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:r}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:\{[^{}]*\}|\S.*|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:r}},statement:{pattern:/(^[ \t]*)(?:else|for|if|return|unless)[ \t].+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:r}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)(?!\s)[^{\r\n]*(?:;|[^{\r\n,]$(?!(?:\r?\n|\r)(?:\{|\2[ \t])))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:r.interpolation}},rest:r}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\)|(?![\w-]))|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t])))/m,lookbehind:!0,inside:{interpolation:r.interpolation,comment:r.comment,punctuation:/[{},]/}},func:r.func,string:r.string,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0,greedy:!0},interpolation:r.interpolation,punctuation:/[{}()\[\];:.]/}}(a),function(e){var t=e.util.clone(e.languages.typescript);e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"];var n=e.languages.tsx.tag;n.pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+n.pattern.source+")",n.pattern.flags),n.lookbehind=!0}(a),a.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|neg?|nearest|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|sqrt|store(?:8|16|32)?|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-./:<=>?@\\^`|~]+/,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};const o=a},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in a(t,o),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;a(m);){for(var h in p={},m){var g=l[h];t(g&&g.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return s[e]=a}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function h(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new h(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new h(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new h(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new h(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new h(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new h(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new h(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new h(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new h(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function v(e){return e[1].toUpperCase()}function y(e,t,n,r){var a=g.hasOwnProperty(t)?g[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,v);g[t]=new h(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new h("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new h(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),S=Symbol.for("react.portal"),x=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),A=Symbol.for("react.forward_ref"),R=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),N=Symbol.for("react.memo"),j=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var P=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var D,M=Object.assign;function F(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var B=!1;function z(e,t){if(!e||B)return"";B=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s]){var l="\n"+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{B=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=z(e.type,!1);case 11:return e=z(e.type.render,!1);case 1:return e=z(e.type,!0);default:return""}}function $(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case x:return"Fragment";case S:return"Portal";case _:return"Profiler";case E:return"StrictMode";case R:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case A:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case N:return null!==(t=e.displayName||null)?t:$(e.type)||"Memo";case j:t=e._payload,e=e._init;try{return $(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function G(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Z(e){e._valueTracker||(e._valueTracker=function(e){var t=G(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function V(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=G(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function W(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function K(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function Y(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Q(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function X(e,t){Q(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&W(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function he(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=he(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ve(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var Se=null,xe=null,Ee=null;function _e(e){if(e=ya(e)){if("function"!=typeof Se)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),Se(e.stateNode,e.type,t))}}function Ce(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function Te(){if(xe){var e=xe,t=Ee;if(Ee=xe=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function Ae(e,t){return e(t)}function Re(){}var Le=!1;function Ne(e,t,n){if(Le)return e(t,n);Le=!0;try{return Ae(e,t,n)}finally{Le=!1,(null!==xe||null!==Ee)&&(Re(),Te())}}function je(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Pe=!1;if(u)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Pe=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ue){Pe=!1}function Ie(e,t,n,r,a,o,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var De=!1,Me=null,Fe=!1,Be=null,ze={onError:function(e){De=!0,Me=e}};function Ue(e,t,n,r,a,o,i,s,l){De=!1,Me=null,Ie.apply(ze,arguments)}function $e(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if($e(e)!==e)throw Error(o(188))}function Ge(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=$e(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ze(e):null}function Ze(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ze(e);if(null!==t)return t;e=e.sibling}return null}var Ve=a.unstable_scheduleCallback,We=a.unstable_cancelCallback,Ke=a.unstable_shouldYield,Ye=a.unstable_requestPaint,Qe=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~a;0!==s?r=dt(s):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ht(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var yt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,St,xt,Et,_t,Ct=!1,Tt=[],At=null,Rt=null,Lt=null,Nt=new Map,jt=new Map,Pt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function It(e,t){switch(e){case"focusin":case"focusout":At=null;break;case"dragenter":case"dragleave":Rt=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Nt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":jt.delete(t.pointerId)}}function Dt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=ya(t))&&St(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=va(e.target);if(null!==t){var n=$e(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){xt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Kt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ya(n))&&St(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function Bt(e,t,n){Ft(e)&&n.delete(t)}function zt(){Ct=!1,null!==At&&Ft(At)&&(At=null),null!==Rt&&Ft(Rt)&&(Rt=null),null!==Lt&&Ft(Lt)&&(Lt=null),Nt.forEach(Bt),jt.forEach(Bt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,zt)))}function $t(e){function t(t){return Ut(t,e)}if(0<Tt.length){Ut(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==At&&Ut(At,e),null!==Rt&&Ut(Rt,e),null!==Lt&&Ut(Lt,e),Nt.forEach(t),jt.forEach(t),n=0;n<Pt.length;n++)(r=Pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Pt.length&&null===(n=Pt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Pt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Gt(e,t,n,r){var a=yt,o=qt.transition;qt.transition=null;try{yt=1,Vt(e,t,n,r)}finally{yt=a,qt.transition=o}}function Zt(e,t,n,r){var a=yt,o=qt.transition;qt.transition=null;try{yt=4,Vt(e,t,n,r)}finally{yt=a,qt.transition=o}}function Vt(e,t,n,r){if(Ht){var a=Kt(e,t,n,r);if(null===a)Hr(e,t,r,Wt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return At=Dt(At,e,t,n,r,a),!0;case"dragenter":return Rt=Dt(Rt,e,t,n,r,a),!0;case"mouseover":return Lt=Dt(Lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Nt.set(o,Dt(Nt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,jt.set(o,Dt(jt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=ya(a);if(null!==o&&kt(o),null===(o=Kt(e,t,n,r))&&Hr(e,t,r,Wt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Wt=null;function Kt(e,t,n,r){if(Wt=null,null!==(e=va(e=ke(r))))if(null===(t=$e(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Wt=e,null}function Yt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Qt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Qt?Qt.value:Qt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=M({},cn,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=an(fn),hn=an(M({},fn,{dataTransfer:0})),gn=an(M({},dn,{relatedTarget:0})),bn=an(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=an(vn),wn=an(M({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},Sn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},xn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=xn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?Sn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),An=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),Rn=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=an(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Nn=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),jn=an(Nn),Pn=[9,13,27,32],On=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Dn=u&&"TextEvent"in window&&!In,Mn=u&&(!On||In&&8<In&&11>=In),Fn=String.fromCharCode(32),Bn=!1;function zn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Gn(e,t,n,r){Ce(r),0<(t=Zr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,Vn=null;function Wn(e){Fr(e,0)}function Kn(e){if(V(wa(e)))return e}function Yn(e,t){if("change"===e)return t}var Qn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Qn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Zn&&(Zn.detachEvent("onpropertychange",nr),Vn=Zn=null)}function nr(e){if("value"===e.propertyName&&Kn(Vn)){var t=[];Gn(t,Vn,e,ke(e)),Ne(Wn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Vn=n,(Zn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Kn(Vn)}function or(e,t){if("click"===e)return Kn(t)}function ir(e,t){if("input"===e||"change"===e)return Kn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=W();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=W((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=ur(n,o);var i=ur(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var hr=u&&"documentMode"in document&&11>=document.documentMode,gr=null,br=null,vr=null,yr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==gr||gr!==W(r)||("selectionStart"in(r=gr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&lr(vr,r)||(vr=r,0<(r=Zr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var Sr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},xr={},Er={};function _r(e){if(xr[e])return xr[e];if(!Sr[e])return e;var t,n=Sr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return xr[e]=n[t];return e}u&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete Sr.animationend.animation,delete Sr.animationiteration.animation,delete Sr.animationstart.animation),"TransitionEvent"in window||delete Sr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),Ar=_r("animationstart"),Rr=_r("transitionend"),Lr=new Map,Nr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function jr(e,t){Lr.set(e,t),l(t,[e])}for(var Pr=0;Pr<Nr.length;Pr++){var Or=Nr[Pr];jr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}jr(Cr,"onAnimationEnd"),jr(Tr,"onAnimationIteration"),jr(Ar,"onAnimationStart"),jr("dblclick","onDoubleClick"),jr("focusin","onFocus"),jr("focusout","onBlur"),jr(Rr,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,c){if(Ue.apply(this,arguments),De){if(!De)throw Error(o(198));var u=Me;De=!1,Me=null,Fe||(Fe=!0,Be=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}}}if(Fe)throw e=Be,Fe=!1,Be=null,e}function Br(e,t){var n=t[ha];void 0===n&&(n=t[ha]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function $r(e){if(!e[Ur]){e[Ur]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,zr("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Yt(t)){case 1:var a=Gt;break;case 4:a=Zt;break;default:a=Vt}n=a.bind(null,t,n,e),a=void 0,!Pe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=va(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}Ne((function(){var r=o,a=ke(n),i=[];e:{var s=Lr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=hn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=Rn;break;case Cr:case Tr:case Ar:l=bn;break;case Rr:l=Ln;break;case"scroll":l=pn;break;case"wheel":l=jn;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=An}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var h=(f=m).stateNode;if(5===f.tag&&null!==h&&(f=h,null!==p&&(null!=(h=je(m,p))&&u.push(Gr(m,h,f)))),d)break;m=m.return}0<u.length&&(s=new l(s,c,null,n,a),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!va(c)&&!c[ma])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?va(c):null)&&(c!==(d=$e(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=mn,h="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=An,h="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:wa(l),f=null==c?s:wa(c),(s=new u(h,m+"leave",l,n,a)).target=d,s.relatedTarget=f,h=null,va(a)===r&&((u=new u(p,m+"enter",c,n,a)).target=f,u.relatedTarget=d,h=u),d=h,l&&c)e:{for(p=c,m=0,f=u=l;f;f=Vr(f))m++;for(f=0,h=p;h;h=Vr(h))f++;for(;0<m-f;)u=Vr(u),m--;for(;0<f-m;)p=Vr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Vr(u),p=Vr(p)}u=null}else u=null;null!==l&&Wr(i,s,l,u,!1),null!==c&&null!==d&&Wr(i,d,c,u,!0)}if("select"===(l=(s=r?wa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Yn;else if(Hn(s))if(Qn)g=ir;else{g=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=or);switch(g&&(g=g(e,r))?Gn(i,g,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(gr=b,br=r,vr=null);break;case"focusout":vr=br=gr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,wr(i,n,a);break;case"selectionchange":if(hr)break;case"keydown":case"keyup":wr(i,n,a)}var v;if(On)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?zn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Mn&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=en()):(Xt="value"in(Qt=a)?Qt.value:Qt.textContent,$n=!0)),0<(b=Zr(r,y)).length&&(y=new wn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Un(n))&&(y.data=v))),(v=Dn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(Bn=!0,Fn);case"textInput":return(e=t.data)===Fn&&Bn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!On&&zn(e,t)?(e=en(),Jt=Xt=Qt=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Zr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Fr(i,t)}))}function Gr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Zr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=je(e,n))&&r.unshift(Gr(e,o,a)),null!=(o=je(e,t))&&r.push(Gr(e,o,a))),e=e.return}return r}function Vr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Wr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=je(n,o))&&i.unshift(Gr(n,l,s)):a||null!=(l=je(n,o))&&i.push(Gr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Kr=/\r\n?/g,Yr=/\u0000|\uFFFD/g;function Qr(e){return("string"==typeof e?e:""+e).replace(Kr,"\n").replace(Yr,"")}function Xr(e,t,n){if(t=Qr(t),Qr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void $t(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);$t(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ha="__reactEvents$"+da,ga="__reactListeners$"+da,ba="__reactHandles$"+da;function va(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function ya(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var Sa=[],xa=-1;function Ea(e){return{current:e}}function _a(e){0>xa||(e.current=Sa[xa],Sa[xa]=null,xa--)}function Ca(e,t){xa++,Sa[xa]=e.current,e.current=t}var Ta={},Aa=Ea(Ta),Ra=Ea(!1),La=Ta;function Na(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function ja(e){return null!=(e=e.childContextTypes)}function Pa(){_a(Ra),_a(Aa)}function Oa(e,t,n){if(Aa.current!==Ta)throw Error(o(168));Ca(Aa,t),Ca(Ra,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,La=Aa.current,Ca(Aa,e),Ca(Ra,Ra.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,La),r.__reactInternalMemoizedMergedChildContext=e,_a(Ra),_a(Aa),Ca(Aa,e)):_a(Ra),Ca(Ra,n)}var Fa=null,Ba=!1,za=!1;function Ua(e){null===Fa?Fa=[e]:Fa.push(e)}function $a(){if(!za&&null!==Fa){za=!0;var e=0,t=yt;try{var n=Fa;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,Ba=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),Ve(Je,$a),a}finally{yt=t,za=!1}}return null}var qa=[],Ha=0,Ga=null,Za=0,Va=[],Wa=0,Ka=null,Ya=1,Qa="";function Xa(e,t){qa[Ha++]=Za,qa[Ha++]=Ga,Ga=e,Za=t}function Ja(e,t,n){Va[Wa++]=Ya,Va[Wa++]=Qa,Va[Wa++]=Ka,Ka=e;var r=Ya;e=Qa;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ya=1<<32-it(t)+a|n<<a|r,Qa=o+e}else Ya=1<<o|n<<a|r,Qa=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Ga;)Ga=qa[--Ha],qa[Ha]=null,Za=qa[--Ha],qa[Ha]=null;for(;e===Ka;)Ka=Va[--Wa],Va[Wa]=null,Qa=Va[--Wa],Va[Wa]=null,Ya=Va[--Wa],Va[Wa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=jc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Ka?{id:Ya,overflow:Qa}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=jc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function co(e){if(ao){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ca(n.nextSibling);var r=no;t&&so(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return uo(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ca(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ca(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ca(e.nextSibling)}function mo(){ro=no=null,ao=!1}function ho(e){null===oo?oo=[e]:oo.push(e)}var go=w.ReactCurrentBatchConfig;function bo(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var vo=Ea(null),yo=null,wo=null,ko=null;function So(){ko=wo=yo=null}function xo(e){var t=vo.current;_a(vo),e._currentValue=t}function Eo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _o(e,t){yo=e,ko=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(ko!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===yo)throw Error(o(308));wo=e,yo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function Ao(e){null===To?To=[e]:To.push(e)}function Ro(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,Ao(t)):(n.next=a.next,a.next=n),t.interleaved=n,Lo(e,r)}function Lo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var No=!1;function jo(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Po(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Io(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Rl)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Lo(e,n)}return null===(a=r.interleaved)?(t.next=t,Ao(r)):(t.next=a.next,a.next=t),r.interleaved=t,Lo(e,n)}function Do(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}function Mo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fo(e,t,n,r){var a=e.updateQueue;No=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?o=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=a.baseState;for(i=0,u=c=l=null,s=o;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,h=s;switch(p=t,f=n,h.tag){case 1:if("function"==typeof(m=h.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=h.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:No=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ml|=i,e.lanes=i,e.memoizedState=d}}function Bo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var zo=(new r.Component).refs;function Uo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var $o={isMounted:function(e){return!!(e=e._reactInternals)&&$e(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),a=Oo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Io(e,a,r))&&(rc(t,e,r,n),Do(t,e,r))}};function qo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,o))}function Ho(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=ja(t)?La:Aa.current,o=(r=null!=(r=t.contextTypes))?Na(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=$o,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Go(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&$o.enqueueReplaceState(t,t.state,null)}function Zo(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=zo,jo(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=ja(t)?La:Aa.current,a.context=Na(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(Uo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&$o.enqueueReplaceState(a,a.state,null),Fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Vo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===zo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function Wo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ko(e){return(0,e._init)(e._payload)}function Yo(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===x?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===j&&Ko(o)===t.type)?((r=a(t,n.props)).ref=Vo(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Vo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Bc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Vo(e,null,t),n.return=e,n;case S:return(t=Bc(t,e.mode,n)).return=e,t;case j:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Dc(t,e.mode,n,null)).return=e,t;Wo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?c(e,t,n,r):null;case S:return n.key===a?u(e,t,n,r):null;case j:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);Wo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case S:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case j:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);Wo(t,r)}return null}function h(a,o,s,l){for(var c=null,u=null,d=o,h=o=0,g=null;null!==d&&h<s.length;h++){d.index>h?(g=d,d=null):g=d.sibling;var b=f(a,d,s[h],l);if(null===b){null===d&&(d=g);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,h),null===u?c=b:u.sibling=b,u=b,d=g}if(h===s.length)return n(a,d),ao&&Xa(a,h),c;if(null===d){for(;h<s.length;h++)null!==(d=p(a,s[h],l))&&(o=i(d,o,h),null===u?c=d:u.sibling=d,u=d);return ao&&Xa(a,h),c}for(d=r(a,d);h<s.length;h++)null!==(g=m(d,a,h,s[h],l))&&(e&&null!==g.alternate&&d.delete(null===g.key?h:g.key),o=i(g,o,h),null===u?c=g:u.sibling=g,u=g);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),c}function g(a,s,l,c){var u=I(l);if("function"!=typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,h=s,g=s=0,b=null,v=l.next();null!==h&&!v.done;g++,v=l.next()){h.index>g?(b=h,h=null):b=h.sibling;var y=f(a,h,v.value,c);if(null===y){null===h&&(h=b);break}e&&h&&null===y.alternate&&t(a,h),s=i(y,s,g),null===d?u=y:d.sibling=y,d=y,h=b}if(v.done)return n(a,h),ao&&Xa(a,g),u;if(null===h){for(;!v.done;g++,v=l.next())null!==(v=p(a,v.value,c))&&(s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return ao&&Xa(a,g),u}for(h=r(a,h);!v.done;g++,v=l.next())null!==(v=m(h,a,g,v.value,c))&&(e&&null!==v.alternate&&h.delete(null===v.key?g:v.key),s=i(v,s,g),null===d?u=v:d.sibling=v,d=v);return e&&h.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),u}return function e(r,o,i,l){if("object"==typeof i&&null!==i&&i.type===x&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=o;null!==u;){if(u.key===c){if((c=i.type)===x){if(7===u.tag){n(r,u.sibling),(o=a(u,i.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===j&&Ko(c)===u.type){n(r,u.sibling),(o=a(u,i.props)).ref=Vo(r,u,i),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===x?((o=Dc(i.props.children,r.mode,l,i.key)).return=r,r=o):((l=Ic(i.type,i.key,i.props,null,r.mode,l)).ref=Vo(r,o,i),l.return=r,r=l)}return s(r);case S:e:{for(u=i.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Bc(i,r.mode,l)).return=r,r=o}return s(r);case j:return e(r,o,(u=i._init)(i._payload),l)}if(te(i))return h(r,o,i,l);if(I(i))return g(r,o,i,l);Wo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Fc(i,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Qo=Yo(!0),Xo=Yo(!1),Jo={},ei=Ea(Jo),ti=Ea(Jo),ni=Ea(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(ei),Ca(ei,t)}function oi(){_a(ei),_a(ti),_a(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function si(e){ti.current===e&&(_a(ei),_a(ti))}var li=Ea(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,mi=0,hi=null,gi=null,bi=null,vi=!1,yi=!1,wi=0,ki=0;function Si(){throw Error(o(321))}function xi(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,a,i){if(mi=i,hi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),yi){i=0;do{if(yi=!1,wi=0,25<=i)throw Error(o(301));i+=1,bi=gi=null,t.updateQueue=null,pi.current=cs,e=n(r,a)}while(yi)}if(pi.current=is,t=null!==gi&&null!==gi.next,mi=0,bi=gi=hi=null,vi=!1,t)throw Error(o(300));return e}function _i(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?hi.memoizedState=bi=e:bi=bi.next=e,bi}function Ti(){if(null===gi){var e=hi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===bi?hi.memoizedState:bi.next;if(null!==t)bi=t,gi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===bi?hi.memoizedState=bi=e:bi=bi.next=e}return bi}function Ai(e,t){return"function"==typeof t?t(e):t}function Ri(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=gi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((mi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,hi.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,hi.lanes|=i,Ml|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Li(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ni(){}function ji(e,t){var n=hi,r=Ti(),a=t(),i=!sr(r.memoizedState,a);if(i&&(r.memoizedState=a,ws=!0),r=r.queue,Hi(Ii.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,Bi(9,Oi.bind(null,n,r,a,t),void 0,null),null===Ll)throw Error(o(349));0!=(30&mi)||Pi(n,t,a)}return a}function Pi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Di(t)&&Mi(e)}function Ii(e,t,n){return n((function(){Di(t)&&Mi(e)}))}function Di(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Mi(e){var t=Lo(e,1);null!==t&&rc(t,e,1,-1)}function Fi(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Ai,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,hi,e),[t.memoizedState,e]}function Bi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=hi.updateQueue)?(t={lastEffect:null,stores:null},hi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function zi(){return Ti().memoizedState}function Ui(e,t,n,r){var a=Ci();hi.flags|=e,a.memoizedState=Bi(1|t,n,void 0,void 0===r?null:r)}function $i(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==gi){var i=gi.memoizedState;if(o=i.destroy,null!==r&&xi(r,i.deps))return void(a.memoizedState=Bi(t,n,o,r))}hi.flags|=e,a.memoizedState=Bi(1|t,n,o,r)}function qi(e,t){return Ui(8390656,8,e,t)}function Hi(e,t){return $i(2048,8,e,t)}function Gi(e,t){return $i(4,2,e,t)}function Zi(e,t){return $i(4,4,e,t)}function Vi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Wi(e,t,n){return n=null!=n?n.concat([e]):null,$i(4,4,Vi.bind(null,t,e),n)}function Ki(){}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&xi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Qi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&xi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&mi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=ht(),hi.lanes|=n,Ml|=n,e.baseState=!0),t)}function Ji(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{yt=n,fi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=Ro(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(a.next=a,Ao(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=Ro(e,t,a,r))&&(rc(n,e,r,a=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===hi||null!==t&&t===hi}function as(e,t){yi=vi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}var is={readContext:Co,useCallback:Si,useContext:Si,useEffect:Si,useImperativeHandle:Si,useInsertionEffect:Si,useLayoutEffect:Si,useMemo:Si,useReducer:Si,useRef:Si,useState:Si,useDebugValue:Si,useDeferredValue:Si,useTransition:Si,useMutableSource:Si,useSyncExternalStore:Si,useId:Si,unstable_isNewReconciler:!1},ss={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4194308,4,Vi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ui(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ui(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,hi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Fi,useDebugValue:Ki,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Fi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=hi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===Ll)throw Error(o(349));0!=(30&mi)||Pi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,qi(Ii.bind(null,r,i,e),[e]),r.flags|=2048,Bi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=Ll.identifierPrefix;if(ao){var n=Qa;t=":"+t+"R"+(n=(Ya&~(1<<32-it(Ya)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Gi,useLayoutEffect:Zi,useMemo:Qi,useReducer:Ri,useRef:zi,useState:function(){return Ri(Ai)},useDebugValue:Ki,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[Ri(Ai)[0],Ti().memoizedState]},useMutableSource:Ni,useSyncExternalStore:ji,useId:es,unstable_isNewReconciler:!1},cs={readContext:Co,useCallback:Yi,useContext:Co,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Gi,useLayoutEffect:Zi,useMemo:Qi,useReducer:Li,useRef:zi,useState:function(){return Li(Ai)},useDebugValue:Ki,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[Li(Ai)[0],Ti().memoizedState]},useMutableSource:Ni,useSyncExternalStore:ji,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function ms(e,t,n){(n=Oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Gl||(Gl=!0,Zl=r),ps(0,t)},n}function hs(e,t,n){(n=Oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Vl?Vl=new Set([this]):Vl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function vs(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oo(-1,1)).tag=2,Io(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var ys=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Qo(t,e.child,n,r)}function Ss(e,t,n,r,a){n=n.render;var o=t.ref;return _o(t,a),r=Ei(e,t,n,r,o,a),n=_i(),null===e||ws?(ao&&n&&eo(t),t.flags|=1,ks(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gs(e,t,a))}function xs(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Pc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Es(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Gs(e,t,a)}return t.flags|=1,(e=Oc(o,r)).ref=t.ref,e.return=t,t.child=e}function Es(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Gs(e,t,a);0!=(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,r,a)}function _s(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ol,Pl),Pl|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ol,Pl),Pl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ol,Pl),Pl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ol,Pl),Pl|=r;return ks(e,t,a,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,a){var o=ja(n)?La:Aa.current;return o=Na(t,o),_o(t,a),n=Ei(e,t,n,r,o,a),r=_i(),null===e||ws?(ao&&r&&eo(t),t.flags|=1,ks(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Gs(e,t,a))}function As(e,t,n,r,a){if(ja(n)){var o=!0;Da(t)}else o=!1;if(_o(t,a),null===t.stateNode)Hs(e,t),Ho(t,n,r),Zo(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Co(c):c=Na(t,c=ja(n)?La:Aa.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&Go(t,i,r,c),No=!1;var p=t.memoizedState;i.state=p,Fo(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Ra.current||No?("function"==typeof u&&(Uo(t,n,u,r),l=t.memoizedState),(s=No||qo(t,n,s,r,p,l,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Po(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:bo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Co(l):l=Na(t,l=ja(n)?La:Aa.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&Go(t,i,r,l),No=!1,p=t.memoizedState,i.state=p,Fo(t,r,i,a);var m=t.memoizedState;s!==d||p!==m||Ra.current||No?("function"==typeof f&&(Uo(t,n,f,r),m=t.memoizedState),(c=No||qo(t,n,c,r,p,m,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return Rs(e,t,n,r,o,a)}function Rs(e,t,n,r,a,o){Cs(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Gs(e,t,o);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Qo(t,e.child,null,o),t.child=Qo(t,null,s,o)):ks(e,t,s,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function Ls(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),ai(e,t.containerInfo)}function Ns(e,t,n,r,a){return mo(),ho(a),t.flags|=256,ks(e,t,n,r),t.child}var js,Ps,Os,Is,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,a=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(li,1&i),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Dc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Ds,e):Bs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(i=Dc(i,a,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Qo(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Ds,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=ds(i=Error(o(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=Ll)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,Lo(e,a),rc(r,e,a,-1))}return gc(),zs(e,t,s,r=ds(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=Ac.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ca(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Va[Wa++]=Ya,Va[Wa++]=Qa,Va[Wa++]=Ka,Ya=e.id,Qa=e.overflow,Ka=t),t=Bs(t,r.children),t.flags|=4096,t)}(e,t,l,a,r,i,n);if(s){s=a.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 0==(1&l)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Oc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,a}return e=(s=e.child).sibling,a=Oc(s,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function Bs(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&ho(r),Qo(t,e.child,null,n),(e=Bs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Eo(e.return,t,n)}function $s(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function qs(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(li,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),$s(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ci(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}$s(t,!0,n,null,o);break;case"together":$s(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Gs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Zs(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ws(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vs(t),null;case 1:case 17:return ja(t.type)&&Pa(),Vs(t),null;case 3:return r=t.stateNode,oi(),_a(Ra),_a(Aa),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Ps(e,t),Vs(t),null;case 5:si(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Os(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Vs(t),null}if(e=ri(ei.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=0!=(1&t.mode),n){case"dialog":Br("cancel",r),Br("close",r);break;case"iframe":case"object":case"embed":Br("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],r);break;case"source":Br("error",r);break;case"img":case"image":case"link":Br("error",r),Br("load",r);break;case"details":Br("toggle",r);break;case"input":Y(r,i),Br("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Br("invalid",r);break;case"textarea":ae(r,i),Br("invalid",r)}for(var l in ve(n,i),a=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Br("scroll",r)}switch(n){case"input":Z(r),J(r,i,!0);break;case"textarea":Z(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[fa]=r,js(e,t,!1,!1),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":Br("cancel",e),Br("close",e),a=r;break;case"iframe":case"object":case"embed":Br("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)Br(Ir[a],e);a=r;break;case"source":Br("error",e),a=r;break;case"img":case"image":case"link":Br("error",e),Br("load",e),a=r;break;case"details":Br("toggle",e),a=r;break;case"input":Y(e,r),a=K(e,r),Br("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),Br("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),Br("invalid",e)}for(i in ve(n,a),c=a)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?ge(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&Br("scroll",e):null!=u&&y(e,i,u,l))}switch(n){case"input":Z(e),J(e,r,!1);break;case"textarea":Z(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vs(t),null;case 6:if(e&&null!=t.stateNode)Is(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Vs(t),null;case 13:if(_a(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vs(t),i=!1}else null!==oo&&(sc(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Il&&(Il=3):gc())),null!==t.updateQueue&&(t.flags|=4),Vs(t),null);case 4:return oi(),Ps(e,t),null===e&&$r(t.stateNode.containerInfo),Vs(t),null;case 10:return xo(t.type._context),Vs(t),null;case 19:if(_a(li),null===(i=t.memoizedState))return Vs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Zs(i,!1);else{if(0!==Il||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Zs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Qe()>ql&&(t.flags|=128,r=!0,Zs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Zs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!ao)return Vs(t),null}else 2*Qe()-i.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,r=!0,Zs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Qe(),t.sibling=null,n=li.current,Ca(li,r?1&n|2:1&n),t):(Vs(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Pl)&&(Vs(t),6&t.subtreeFlags&&(t.flags|=8192)):Vs(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Ks(e,t){switch(to(t),t.tag){case 1:return ja(t.type)&&Pa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),_a(Ra),_a(Aa),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(_a(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(li),null;case 4:return oi(),null;case 10:return xo(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}js=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(){},Os=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=K(e,a),r=K(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ve(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&Br("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Is=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ys=!1,Qs=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){_c(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){_c(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&tl(t,n,o)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ha],delete t[ga],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Qs||el(n,t);case 6:var r=dl,a=pl;dl=null,fl(e,t,n),pl=a,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),$t(e)):la(dl,n.stateNode));break;case 4:r=dl,a=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Qs&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&tl(n,t,i),a=a.next}while(a!==r)}fl(e,t,n);break;case 1:if(!Qs&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){_c(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Qs=(r=Qs)||null!==n.memoizedState,fl(e,t,n),Qs=r):fl(e,t,n);break;default:fl(e,t,n)}}function hl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Rc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));ml(i,s,a),dl=null,pl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){_c(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),vl(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(g){_c(e,e.return,g)}try{rl(5,e,e.return)}catch(g){_c(e,e.return,g)}}break;case 1:gl(t,e),vl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),vl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(g){_c(e,e.return,g)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Q(a,i),ye(l,s);var u=ye(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?ge(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):y(a,d,p,u)}switch(l){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(g){_c(e,e.return,g)}}break;case 6:if(gl(t,e),vl(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(g){_c(e,e.return,g)}}break;case 3:if(gl(t,e),vl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{$t(t.containerInfo)}catch(g){_c(e,e.return,g)}break;case 4:default:gl(t,e),vl(e);break;case 13:gl(t,e),vl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||($l=Qe())),4&r&&hl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Qs=(u=Qs)||d,gl(t,e),Qs=u):gl(t,e),vl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(m=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var h=f.stateNode;if("function"==typeof h.componentWillUnmount){r=f,n=f.return;try{t=r,h.props=t.memoizedProps,h.state=t.memoizedState,h.componentWillUnmount()}catch(g){_c(r,n,g)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){Sl(p);continue}}null!==m?(m.return=f,Js=m):Sl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=he("display",s))}catch(g){_c(e,e.return,g)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){_c(e,e.return,g)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:gl(t,e),vl(e),4&r&&hl(e);case 21:}}function vl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),ul(e,ll(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(o(161))}}catch(s){_c(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yl(e,t,n){Js=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Js;){var a=Js,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Ys;if(!i){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Qs;s=Ys;var c=Qs;if(Ys=i,(Qs=l)&&!c)for(Js=a;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?xl(a):null!==l?(l.return=i,Js=l):xl(a);for(;null!==o;)Js=o,wl(o,t,n),o=o.sibling;Js=a,Ys=s,Qs=c}kl(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Js=o):kl(e)}}function kl(e){for(;null!==Js;){var t=Js;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Qs||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Qs)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Bo(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Bo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&$t(p)}}}break;default:throw Error(o(163))}Qs||512&t.flags&&ol(t)}catch(f){_c(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function xl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(l){_c(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){_c(t,a,l)}}var o=t.return;try{ol(t)}catch(l){_c(t,o,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){_c(t,i,l)}}}catch(l){_c(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var El,_l=Math.ceil,Cl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,Al=w.ReactCurrentBatchConfig,Rl=0,Ll=null,Nl=null,jl=0,Pl=0,Ol=Ea(0),Il=0,Dl=null,Ml=0,Fl=0,Bl=0,zl=null,Ul=null,$l=0,ql=1/0,Hl=null,Gl=!1,Zl=null,Vl=null,Wl=!1,Kl=null,Yl=0,Ql=0,Xl=null,Jl=-1,ec=0;function tc(){return 0!=(6&Rl)?Qe():-1!==Jl?Jl:Jl=Qe()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Rl)&&0!==jl?jl&-jl:null!==go.transition?(0===ec&&(ec=ht()),ec):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Yt(e.type)}function rc(e,t,n,r){if(50<Ql)throw Ql=0,Xl=null,Error(o(185));bt(e,n,r),0!=(2&Rl)&&e===Ll||(e===Ll&&(0==(2&Rl)&&(Fl|=n),4===Il&&lc(e,jl)),ac(e,r),1===n&&0===Rl&&0==(1&t.mode)&&(ql=Qe()+500,Ba&&$a()))}function ac(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),s=1<<i,l=a[i];-1===l?0!=(s&n)&&0==(s&r)||(a[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=pt(e,e===Ll?jl:0);if(0===r)null!==n&&We(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&We(n),1===t)0===e.tag?function(e){Ba=!0,Ua(e)}(cc.bind(null,e)):Ua(cc.bind(null,e)),ia((function(){0==(6&Rl)&&$a()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Lc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!=(6&Rl))throw Error(o(327));var n=e.callbackNode;if(xc()&&e.callbackNode!==n)return null;var r=pt(e,e===Ll?jl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var a=Rl;Rl|=2;var i=hc();for(Ll===e&&jl===t||(Hl=null,ql=Qe()+500,fc(e,t));;)try{yc();break}catch(l){mc(e,l)}So(),Cl.current=i,Rl=a,null!==Nl?t=0:(Ll=null,jl=0,t=Il)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Dl,fc(e,0),lc(e,r),ac(e,Qe()),n;if(6===t)lc(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!sr(o(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=bc(e,r))&&(0!==(i=mt(e))&&(r=i,t=ic(e,i))),1===t))throw n=Dl,fc(e,0),lc(e,r),ac(e,Qe()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:Sc(e,Ul,Hl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=$l+500-Qe())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(Sc.bind(null,e,Ul,Hl),t);break}Sc(e,Ul,Hl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>a&&(a=s),r&=~i}if(r=a,10<(r=(120>(r=Qe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_l(r/1960))-r)){e.timeoutHandle=ra(Sc.bind(null,e,Ul,Hl),r);break}Sc(e,Ul,Hl);break;default:throw Error(o(329))}}}return ac(e,Qe()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=Ul,Ul=n,null!==t&&sc(t)),e}function sc(e){null===Ul?Ul=e:Ul.push.apply(Ul,e)}function lc(e,t){for(t&=~Bl,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Rl))throw Error(o(327));xc();var t=pt(e,0);if(0==(1&t))return ac(e,Qe()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,fc(e,0),lc(e,t),ac(e,Qe()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,Sc(e,Ul,Hl),ac(e,Qe()),null}function uc(e,t){var n=Rl;Rl|=1;try{return e(t)}finally{0===(Rl=n)&&(ql=Qe()+500,Ba&&$a())}}function dc(e){null!==Kl&&0===Kl.tag&&0==(6&Rl)&&xc();var t=Rl;Rl|=1;var n=Al.transition,r=yt;try{if(Al.transition=null,yt=1,e)return e()}finally{yt=r,Al.transition=n,0==(6&(Rl=t))&&$a()}}function pc(){Pl=Ol.current,_a(Ol)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Nl)for(n=Nl.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Pa();break;case 3:oi(),_a(Ra),_a(Aa),di();break;case 5:si(r);break;case 4:oi();break;case 13:case 19:_a(li);break;case 10:xo(r.type._context);break;case 22:case 23:pc()}n=n.return}if(Ll=e,Nl=e=Oc(e.current,null),jl=Pl=t,Il=0,Dl=null,Bl=Fl=Ml=0,Ul=zl=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function mc(e,t){for(;;){var n=Nl;try{if(So(),pi.current=is,vi){for(var r=hi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}vi=!1}if(mi=0,bi=gi=hi=null,yi=!1,wi=0,Tl.current=null,null===n||null===n.return){Il=1,Dl=t,Nl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=jl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=bs(s);if(null!==m){m.flags&=-257,vs(m,s,l,0,t),1&m.mode&&gs(i,u,t),c=u;var h=(t=m).updateQueue;if(null===h){var g=new Set;g.add(c),t.updateQueue=g}else h.add(c);break e}if(0==(1&t)){gs(i,u,t),gc();break e}c=Error(o(426))}else if(ao&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),vs(b,s,l,0,t),ho(us(c,l));break e}}i=c=us(c,l),4!==Il&&(Il=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,ms(0,c,t));break e;case 1:l=c;var v=i.type,y=i.stateNode;if(0==(128&i.flags)&&("function"==typeof v.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===Vl||!Vl.has(y)))){i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,hs(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Nl===n&&null!==n&&(Nl=n=n.return);continue}break}}function hc(){var e=Cl.current;return Cl.current=is,null===e?is:e}function gc(){0!==Il&&3!==Il&&2!==Il||(Il=4),null===Ll||0==(268435455&Ml)&&0==(268435455&Fl)||lc(Ll,jl)}function bc(e,t){var n=Rl;Rl|=2;var r=hc();for(Ll===e&&jl===t||(Hl=null,fc(e,t));;)try{vc();break}catch(a){mc(e,a)}if(So(),Rl=n,Cl.current=r,null!==Nl)throw Error(o(261));return Ll=null,jl=0,Il}function vc(){for(;null!==Nl;)wc(Nl)}function yc(){for(;null!==Nl&&!Ke();)wc(Nl)}function wc(e){var t=El(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?kc(e):Nl=t,Tl.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Ws(n,t,Pl)))return void(Nl=n)}else{if(null!==(n=Ks(n,t)))return n.flags&=32767,void(Nl=n);if(null===e)return Il=6,void(Nl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Nl=t);Nl=t=e}while(null!==t);0===Il&&(Il=5)}function Sc(e,t,n){var r=yt,a=Al.transition;try{Al.transition=null,yt=1,function(e,t,n,r){do{xc()}while(null!==Kl);if(0!=(6&Rl))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===Ll&&(Nl=Ll=null,jl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Wl||(Wl=!0,Lc(tt,(function(){return xc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Al.transition,Al.transition=null;var s=yt;yt=1;var l=Rl;Rl|=4,Tl.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===a&&(l=s),f===i&&++d===r&&(c=s),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var h=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==h){var g=h.memoizedProps,b=h.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?g:bo(t.type,g),b);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){_c(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}h=nl,nl=!1}(e,n),bl(n,e),mr(ta),Ht=!!ea,ta=ea=null,e.current=n,yl(n,e,a),Ye(),Rl=l,yt=s,Al.transition=i}else e.current=n;if(Wl&&(Wl=!1,Kl=e,Yl=a),i=e.pendingLanes,0===i&&(Vl=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),ac(e,Qe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Gl)throw Gl=!1,e=Zl,Zl=null,e;0!=(1&Yl)&&0!==e.tag&&xc(),i=e.pendingLanes,0!=(1&i)?e===Xl?Ql++:(Ql=0,Xl=e):Ql=0,$a()}(e,t,n,r)}finally{Al.transition=a,yt=r}return null}function xc(){if(null!==Kl){var e=wt(Yl),t=Al.transition,n=yt;try{if(Al.transition=null,yt=16>e?16:e,null===Kl)var r=!1;else{if(e=Kl,Kl=null,Yl=0,0!=(6&Rl))throw Error(o(331));var a=Rl;for(Rl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(0!=(16&Js.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,m=d.return;if(il(d),d===u){Js=null;break}if(null!==f){f.return=m,Js=f;break}Js=m}}}var h=i.alternate;if(null!==h){var g=h.child;if(null!==g){h.child=null;do{var b=g.sibling;g.sibling=null,g=b}while(null!==g)}}Js=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(0!=(2048&(i=Js).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var v=i.sibling;if(null!==v){v.return=i.return,Js=v;break e}Js=i.return}}var y=e.current;for(Js=y;null!==Js;){var w=(s=Js).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Js=w;else e:for(s=y;null!==Js;){if(0!=(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(S){_c(l,l.return,S)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Rl=a,$a(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(S){}r=!0}return r}finally{yt=n,Al.transition=t}}return!1}function Ec(e,t,n){e=Io(e,t=ms(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),ac(e,t))}function _c(e,t,n){if(3===e.tag)Ec(e,e,n);else for(;null!==t;){if(3===t.tag){Ec(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vl||!Vl.has(r))){t=Io(t,e=hs(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),ac(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,Ll===e&&(jl&n)===n&&(4===Il||3===Il&&(130023424&jl)===jl&&500>Qe()-$l?fc(e,0):Bl|=n),ac(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=Lo(e,t))&&(bt(e,t,n),ac(e,n))}function Ac(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Rc(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tc(e,n)}function Lc(e,t){return Ve(e,t)}function Nc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function jc(e,t,n,r){return new Nc(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=jc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ic(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Pc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case x:return Dc(n.children,a,i,t);case E:s=8,a|=8;break;case _:return(e=jc(12,n,t,2|a)).elementType=_,e.lanes=i,e;case R:return(e=jc(13,n,t,a)).elementType=R,e.lanes=i,e;case L:return(e=jc(19,n,t,a)).elementType=L,e.lanes=i,e;case P:return Mc(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case A:s=11;break e;case N:s=14;break e;case j:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=jc(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Dc(e,t,n,r){return(e=jc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=jc(22,e,r,t)).elementType=P,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=jc(6,e,null,t)).lanes=n,e}function Bc(e,t,n){return(t=jc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Uc(e,t,n,r,a,o,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=jc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},jo(o),e}function $c(e){if(!e)return Ta;e:{if($e(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(ja(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(ja(n))return Ia(e,n,t)}return t}function qc(e,t,n,r,a,o,i,s,l){return(e=Uc(n,r,!0,e,0,o,0,s,l)).context=$c(null),n=e.current,(o=Oo(r=tc(),a=nc(n))).callback=null!=t?t:null,Io(n,o,a),e.current.lanes=a,bt(e,a,r),ac(e,r),e}function Hc(e,t,n,r){var a=t.current,o=tc(),i=nc(a);return n=$c(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Io(a,t,i))&&(rc(e,a,i,o),Do(e,a,i)),i}function Gc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Zc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vc(e,t){Zc(e,t),(e=e.alternate)&&Zc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Ra.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:Ls(t),mo();break;case 5:ii(t);break;case 1:ja(t.type)&&Da(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(vo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(Ca(li,1&li.current),null!==(e=Gs(e,t,n))?e.sibling:null);Ca(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return qs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,_s(e,t,n)}return Gs(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Za,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var a=Na(t,Aa.current);_o(t,n),a=Ei(null,t,r,e,a,n);var i=_i();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,ja(r)?(i=!0,Da(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,jo(t),a.updater=$o,t.stateNode=a,a._reactInternals=t,Zo(t,r,e,n),t=Rs(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),ks(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===A)return 11;if(e===N)return 14}return 2}(r),e=bo(r,e),a){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=As(null,t,r,e,n);break e;case 11:t=Ss(null,t,r,e,n);break e;case 14:t=xs(null,t,r,bo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ts(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 1:return r=t.type,a=t.pendingProps,As(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 3:e:{if(Ls(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Po(e,t),Fo(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ns(e,t,r,n,a=us(Error(o(423)),t));break e}if(r!==a){t=Ns(e,t,r,n,a=us(Error(o(424)),t));break e}for(ro=ca(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Gs(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&co(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==i&&na(r,i)&&(t.flags|=32),Cs(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Fs(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Qo(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,Ss(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ca(vo,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===a.children&&!Ra.current){t=Gs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Oo(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Eo(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Eo(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,_o(t,n),r=r(a=Co(a)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return a=bo(r=t.type,t.pendingProps),xs(e,t,r,a=bo(r.type,a),n);case 15:return Es(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:bo(r,a),Hs(e,t),t.tag=1,ja(r)?(e=!0,Da(t)):e=!1,_o(t,n),Ho(t,r,a),Zo(t,r,a,n),Rs(null,t,r,!0,e,n);case 19:return qs(e,t,n);case 22:return _s(e,t,n)}throw Error(o(156,t.tag))};var Wc="function"==typeof reportError?reportError:function(e){console.error(e)};function Kc(e){this._internalRoot=e}function Yc(e){this._internalRoot=e}function Qc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var s=a;a=function(){var e=Gc(i);s.call(e)}}Hc(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Gc(i);o.call(e)}}var i=qc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ma]=i.current,$r(8===e.nodeType?e.parentNode:e),dc(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var s=r;r=function(){var e=Gc(l);s.call(e)}}var l=Uc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ma]=l.current,$r(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,a,r);return Gc(i)}Yc.prototype.render=Kc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Hc(e,t,null,null)},Yc.prototype.unmount=Kc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[ma]=null}},Yc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Pt.length&&0!==t&&t<Pt[n].priority;n++);Pt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(vt(t,1|n),ac(t,Qe()),0==(6&Rl)&&(ql=Qe()+500,$a()))}break;case 13:dc((function(){var t=Lo(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Vc(e,1)}},St=function(e){if(13===e.tag){var t=Lo(e,134217728);if(null!==t)rc(t,e,134217728,tc());Vc(e,134217728)}},xt=function(e){if(13===e.tag){var t=nc(e),n=Lo(e,t);if(null!==n)rc(n,e,t,tc());Vc(e,t)}},Et=function(){return yt},_t=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},Se=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));V(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Ae=uc,Re=dc;var tu={usingClientEntryPoint:!1,Events:[ya,wa,ka,Ce,Te,uc]},nu={findFiberByHostInstance:va,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ge(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),ot=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Qc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:S,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Qc(e))throw Error(o(299));var n=!1,r="",a=Wc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Uc(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,$r(8===e.nodeType?e.parentNode:e),new Kc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ge(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Qc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",s=Wc;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,a,0,i,s),e[ma]=t.current,$r(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Yc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>G,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),s=n.n(i),l=n(1143),c=n.n(l),u=n(6774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function h(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var g={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(g).map((function(e){return g[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},S=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),x=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=x(e,g.TITLE),n=x(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=x(e,"defaultTitle");return t||r||void 0},_=function(e){return x(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[g.BASE]})).map((function(e){return e[g.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},A=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},R=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},N=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},j=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},P=[g.NOSCRIPT,g.SCRIPT,g.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case g.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(g.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},B=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=N(e.metaTags,y),o=N(t,b),i=N(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(g.META,a.priority),M(g.LINK,o.priority),M(g.SCRIPT,i.priority))},toString:function(){return F(g.META,a.priority,r)+" "+F(g.LINK,o.priority,r)+" "+F(g.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(g.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(g.LINK,u,r),meta:F(g.META,d,r),noscript:F(g.NOSCRIPT,o,r),script:F(g.SCRIPT,p,r),style:F(g.STYLE,i,r),title:F(g.TITLE,{title:l,titleAttributes:c},r)}},z=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?z:n.instances},add:function(e){(n.canUseDOM?z:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?z:n.instances).indexOf(e);(n.canUseDOM?z:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=B({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,G=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);G.canUseDOM=H,G.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},G.defaultProps={context:{}},G.displayName="HelmetProvider";var Z=function(e,t){var n,r=document.head||document.querySelector(g.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===a.indexOf(l)&&a.push(l);var u=o.indexOf(l);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(g.BODY,e.bodyAttributes),V(g.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(g.TITLE,t)}(u,d);var p={baseTag:Z(g.BASE,n),linkTags:Z(g.LINK,a),metaTags:Z(g.META,o),noscriptTags:Z(g.NOSCRIPT,i),scriptTags:Z(g.SCRIPT,l),styleTags:Z(g.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},K=null,Y=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:x(e,"defer"),encode:x(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:A(g.LINK,["rel","href"],e),metaTags:A(g.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:A(g.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:A(g.SCRIPT,["src","innerHTML"],e),styleTags:A(g.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:R(e,"prioritizeSeoTags")});G.canUseDOM?(t=o,K&&cancelAnimationFrame(K),t.defer?K=requestAnimationFrame((function(){W(t,(function(){K=null}))})):(W(t),K=null)):B&&(a=B(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);Y.propTypes={context:q.isRequired},Y.displayName="HelmetDispatcher";var Q=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(j(this.props,"helmetData"),j(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case g.SCRIPT:case g.NOSCRIPT:return{innerHTML:t};case g.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case g.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case g.BODY:return p({},a,{bodyAttributes:p({},o)});case g.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=h(r,Q),s=Object.keys(i).reduce((function(e,t){return e[S[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case g.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case g.LINK:case g.META:case g.NOSCRIPT:case g.SCRIPT:case g.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=h(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(Y,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(Y,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,h=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case g:case h:case l:return e;default:return t}}case a:return t}}}function S(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=g,t.Memo=h,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return S(e)||k(e)===u},t.isConcurrentMode=S,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===g},t.isMemo=function(e){return k(e)===h},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===h||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(7294),l=n(5697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),h=null;function g(){return h||(h=e(m.loader)),h.promise}return c.push(g),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return g()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),h=e(m.loader),r._loadModule()})),g(),r.state={error:h.error,pastDelay:!1,timedOut:!1,loading:h.loading,loaded:h.loaded},r}r(n,t),n.preload=function(){return g()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),h.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:h.error,loaded:h.loaded,loading:h.loading}),e._clearTimeouts()};h.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function h(e){return m(d,e)}h.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var g=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(g,"propTypes",{report:l.func.isRequired}),o(g,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),h.Capture=g,h.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},h.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=h},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>g});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),s=n(7462),l=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var h=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o.createElement("a",u)}));var g=m((function(e,t){var n=e.component,a=void 0===n?h:n,u=e.replace,g=e.to,b=e.innerRef,v=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(g,e.location),e.location),l=r?n.createHref(r):"",h=(0,s.Z)({},v,{href:l,navigate:function(){var t=d(g,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?h.ref=t||b:h.innerRef=b,o.createElement(a,h)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,h=e.exact,y=e.isActive,w=e.location,k=e.sensitive,S=e.strict,x=e.style,E=e.to,_=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(E,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),A=T?(0,r.LX)(n.pathname,{path:T,exact:h,sensitive:k,strict:S}):null,R=!!(y?y(A,n):A),L="function"==typeof m?m(R):m,N="function"==typeof x?x(R):x;R&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,u),N=(0,s.Z)({},N,f));var j=(0,s.Z)({"aria-current":R&&a||null,className:L,style:N,to:i},C);return b!==v?j.ref=t||_:j.innerRef=_,o.createElement(g,j)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>y,LX:()=>x,TH:()=>P,k6:()=>j,rs:()=>L,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),s=n(9318),l=n(8776),c=n(7462),u=n(4779),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var h=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:c}},g=function(e){var t=h();return t.displayName=e,t},b=g("Router-History"),v=g("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,S=0;function x(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return S<k&&(r[e]=o,S++),o}(n,{end:o,strict:s,sensitive:c}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?x(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(v.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:u?a.createElement(u,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function A(e){return function(){(0,l.Z)(!1)}}function R(){}a.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?x(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var N=a.useContext;function j(){return N(b)}function P(){return N(v).location}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:s.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},h=Object.assign,g={};function b(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var w=y.prototype=new v;w.constructor=y,h(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,S=Object.prototype.hasOwnProperty,x={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)S.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===o[a]&&(o[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:o,_owner:x.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function A(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function R(e,t,a,o,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===o?"."+A(l,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),R(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,o=""===o?".":o+":",k(e))for(var c=0;c<e.length;c++){var u=o+A(s=e[c],c);l+=R(s,t,a,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=R(s=s.value,t,a,u=o+A(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function L(e,t,n){if(null==e)return e;var r=[],a=0;return R(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function N(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var j={current:null},P={transition:null},O={ReactCurrentDispatcher:j,ReactCurrentBatchConfig:P,ReactCurrentOwner:x};t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=y,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=h({},e.props),o=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=x.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)S.call(t,c)&&!E.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:N}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=P.transition;P.transition={};try{e()}finally{P.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return j.current.useCallback(e,t)},t.useContext=function(e){return j.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return j.current.useDeferredValue(e)},t.useEffect=function(e,t){return j.current.useEffect(e,t)},t.useId=function(){return j.current.useId()},t.useImperativeHandle=function(e,t,n){return j.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return j.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return j.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return j.current.useMemo(e,t)},t.useReducer=function(e,t,n){return j.current.useReducer(e,t,n)},t.useRef=function(e){return j.current.useRef(e)},t.useState=function(e){return j.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return j.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return j.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<a&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,m=!1,h=!1,g=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,y="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(g=!1,w(e),!h)if(null!==r(c))h=!0,P(S);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function S(e,n){h=!1,g&&(g=!1,v(C),C=-1),m=!0;var o=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!R());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&a(c),w(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),l=!1}return l}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var x,E=!1,_=null,C=-1,T=5,A=-1;function R(){return!(t.unstable_now()-A<T)}function L(){if(null!==_){var e=t.unstable_now();A=e;var n=!0;try{n=_(!0,e)}finally{n?x():(E=!1,_=null)}}else E=!1}if("function"==typeof y)x=function(){y(L)};else if("undefined"!=typeof MessageChannel){var N=new MessageChannel,j=N.port2;N.port1.onmessage=L,x=function(){j.postMessage(null)}}else x=function(){b(L,0)};function P(e){_=e,E||(E=!0,x())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){h||m||(h=!0,P(S))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(g?(v(C),C=-1):g=!0,O(k,o-i))):(e.sortIndex=s,n(c,e),h||m||(h=!0,P(S))),e},t.unstable_shouldYield=R,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},3250:(e,t,n)=>{"use strict";var r=n(7294);var a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},o=r.useState,i=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!a(e,n)}catch(r){return!0}}var u="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=o({inst:{value:n,getSnapshot:t}}),a=r[0].inst,u=r[1];return s((function(){a.value=n,a.getSnapshot=t,c(a)&&u({inst:a})}),[e,n,t]),i((function(){return c(a)&&u({inst:a}),e((function(){c(a)&&u({inst:a})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:u},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"React Native Template Strong",tagline:"Quick, opinionated, documented and strong beginning for your next project",url:"https://svbutko.github.io",baseUrl:"/react-native-template-strong/",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",favicon:"img/favicon.ico",organizationName:"svbutko",projectName:"react-native-template-strong",themeConfig:{algolia:{appId:"XO9GJZJMTW",apiKey:"d9b09790edab8cc6a9a4a727c0e5c059",indexName:"react-native-template-strong",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},navbar:{title:"React Native Template Strong",logo:{alt:"strong-logo",src:"img/logo.svg"},items:[{type:"doc",docId:"getting-started",position:"right",label:"Docs"},{to:"mission",position:"right",label:"Mission"},{to:"troubleshooting",position:"right",label:"Troubleshooting"},{to:"faq",position:"right",label:"FAQ"},{href:"https://github.com/svbutko/react-native-template-strong",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Getting started",to:"/docs/getting-started"},{label:"Troubleshooting",to:"troubleshooting"},{label:"FAQ",to:"faq"}]},{title:"Community",items:[{label:"Discussions",href:"https://github.com/svbutko/react-native-template-strong/discussions"},{label:"Issues",href:"https://github.com/svbutko/react-native-template-strong/issues"}]},{title:"More",items:[{label:"Project Github",href:"https://github.com/svbutko/react-native-template-strong"},{label:"My Github",href:"https://github.com/svbutko"},{label:"My Twitter",href:"https://twitter.com/svbutko"}]}],copyright:"Copyright \xa9 2023 Sergei Butko (@svbutko). Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},presets:[["@docusaurus/preset-classic",{docs:{showLastUpdateTime:!0,sidebarPath:"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/sidebars.js",editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/"},theme:{customCss:"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/src/css/custom.css"}}]],baseUrlIssueBanner:!0,i18n:{defaultLocale:"en",path:"i18n",locales:["en"],localeConfigs:{}},onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/react-native-template-strong/faq-c36":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"1fd605f7"},"/react-native-template-strong/mission-cc1":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"c5ed97f1"},"/react-native-template-strong/search-2ff":{"__comp":"1a4e3797","__context":{"plugin":"a7e83710"}},"/react-native-template-strong/troubleshooting-c71":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"26509314"},"/react-native-template-strong/docs-d0f":{"__comp":"5e95c892","__context":{"plugin":"37742c1c"}},"/react-native-template-strong/docs-c29":{"__comp":"a7bd4aaa","version":"935f2afb"},"/react-native-template-strong/docs-1a9":{"__comp":"a94703ab"},"/react-native-template-strong/docs/api-274":{"__comp":"17896441","content":"5fbc5cf1"},"/react-native-template-strong/docs/app-icon-ae1":{"__comp":"17896441","content":"2f2dc1d3"},"/react-native-template-strong/docs/app-release-f60":{"__comp":"17896441","content":"b5ee907e"},"/react-native-template-strong/docs/checking-updates-815":{"__comp":"17896441","content":"e690c9e7"},"/react-native-template-strong/docs/common-constants-ed0":{"__comp":"17896441","content":"fcde09bc"},"/react-native-template-strong/docs/components/date-picker-overlay-261":{"__comp":"17896441","content":"4ff29f3f"},"/react-native-template-strong/docs/components/empty-view-a05":{"__comp":"17896441","content":"3efb1320"},"/react-native-template-strong/docs/components/flat-list-wrapper-770":{"__comp":"17896441","content":"1e5d5012"},"/react-native-template-strong/docs/components/icon-platform-1dc":{"__comp":"17896441","content":"8450a114"},"/react-native-template-strong/docs/components/image-crop-picker-button-27c":{"__comp":"17896441","content":"9bbfbce4"},"/react-native-template-strong/docs/components/loading-component-6f6":{"__comp":"17896441","content":"fab06093"},"/react-native-template-strong/docs/components/photo-taking-button-f01":{"__comp":"17896441","content":"cf5243f0"},"/react-native-template-strong/docs/components/primary-button-bf6":{"__comp":"17896441","content":"62c33f29"},"/react-native-template-strong/docs/components/primary-text-input-1fd":{"__comp":"17896441","content":"31630cdb"},"/react-native-template-strong/docs/components/radio-button-6f7":{"__comp":"17896441","content":"ff6d8346"},"/react-native-template-strong/docs/components/radio-icon-c7e":{"__comp":"17896441","content":"8a6ff679"},"/react-native-template-strong/docs/components/section-list-wrapper-b26":{"__comp":"17896441","content":"19829c28"},"/react-native-template-strong/docs/components/separator-e7f":{"__comp":"17896441","content":"9dcf257f"},"/react-native-template-strong/docs/components/toast-overlay-c46":{"__comp":"17896441","content":"e7a9e65a"},"/react-native-template-strong/docs/components/touchable-platform-4c0":{"__comp":"17896441","content":"9cf17553"},"/react-native-template-strong/docs/components/try-again-6f5":{"__comp":"17896441","content":"c2066304"},"/react-native-template-strong/docs/configs/babel-config-8a3":{"__comp":"17896441","content":"39654635"},"/react-native-template-strong/docs/configs/detox-config-a1e":{"__comp":"17896441","content":"ae8ecedf"},"/react-native-template-strong/docs/configs/eslint-config-6f4":{"__comp":"17896441","content":"08fac725"},"/react-native-template-strong/docs/configs/jest-config-260":{"__comp":"17896441","content":"5f9cf606"},"/react-native-template-strong/docs/configs/metro-config-1bf":{"__comp":"17896441","content":"91cb04fa"},"/react-native-template-strong/docs/configs/prettier-config-2bc":{"__comp":"17896441","content":"b801cfc7"},"/react-native-template-strong/docs/configs/rn-config-442":{"__comp":"17896441","content":"041eb33b"},"/react-native-template-strong/docs/configs/ts-config-c65":{"__comp":"17896441","content":"e2ad1f17"},"/react-native-template-strong/docs/dependencies-68f":{"__comp":"17896441","content":"7f85490b"},"/react-native-template-strong/docs/environments-d41":{"__comp":"17896441","content":"f2beb3a0"},"/react-native-template-strong/docs/getting-started-828":{"__comp":"17896441","content":"d589d3a7"},"/react-native-template-strong/docs/helpers/calculate-page-5f0":{"__comp":"17896441","content":"0a3d3edc"},"/react-native-template-strong/docs/helpers/color-helpers-770":{"__comp":"17896441","content":"328e254d"},"/react-native-template-strong/docs/helpers/default-key-id-extractor-088":{"__comp":"17896441","content":"84080ef2"},"/react-native-template-strong/docs/helpers/dialogs-helpers-c9e":{"__comp":"17896441","content":"43bdb0b8"},"/react-native-template-strong/docs/helpers/image-helpers-112":{"__comp":"17896441","content":"edb259cb"},"/react-native-template-strong/docs/helpers/in-app-review-helper-768":{"__comp":"17896441","content":"09318855"},"/react-native-template-strong/docs/helpers/net-info-helpers-fed":{"__comp":"17896441","content":"d95e32bd"},"/react-native-template-strong/docs/helpers/orientation-helpers-18d":{"__comp":"17896441","content":"5ed5e9d2"},"/react-native-template-strong/docs/helpers/regex-helpers-72c":{"__comp":"17896441","content":"07727b20"},"/react-native-template-strong/docs/helpers/share-helpers-653":{"__comp":"17896441","content":"0106a0c1"},"/react-native-template-strong/docs/helpers/strings-helpers-600":{"__comp":"17896441","content":"51dcefc3"},"/react-native-template-strong/docs/hooks/use-back-handler-6c7":{"__comp":"17896441","content":"aae46502"},"/react-native-template-strong/docs/hooks/use-debounce-d71":{"__comp":"17896441","content":"5d01a4f0"},"/react-native-template-strong/docs/hooks/use-event-register-153":{"__comp":"17896441","content":"2190081c"},"/react-native-template-strong/docs/hooks/use-flat-list-actions-f06":{"__comp":"17896441","content":"69e64926"},"/react-native-template-strong/docs/hooks/use-previous-768":{"__comp":"17896441","content":"11e380a5"},"/react-native-template-strong/docs/hooks/use-why-did-you-update-60b":{"__comp":"17896441","content":"5b2ba987"},"/react-native-template-strong/docs/internals/android-859":{"__comp":"17896441","content":"6222aa5d"},"/react-native-template-strong/docs/internals/ios-feb":{"__comp":"17896441","content":"fcca6dac"},"/react-native-template-strong/docs/localisation/add-language-758":{"__comp":"17896441","content":"14f2708c"},"/react-native-template-strong/docs/localisation/change-language-b0b":{"__comp":"17896441","content":"2b755825"},"/react-native-template-strong/docs/localisation/date-formatter-a03":{"__comp":"17896441","content":"ec7be5cc"},"/react-native-template-strong/docs/localisation/intl-formatter-0bd":{"__comp":"17896441","content":"2adfb7b8"},"/react-native-template-strong/docs/localisation/translations-353":{"__comp":"17896441","content":"3fdaf820"},"/react-native-template-strong/docs/navigation/actions-295":{"__comp":"17896441","content":"30b35490"},"/react-native-template-strong/docs/navigation/before-starting-9c0":{"__comp":"17896441","content":"d1e36d14"},"/react-native-template-strong/docs/navigation/default-options-f98":{"__comp":"17896441","content":"da80d167"},"/react-native-template-strong/docs/navigation/hooks-cb5":{"__comp":"17896441","content":"1a8cd603"},"/react-native-template-strong/docs/navigation/overlays-and-modals-347":{"__comp":"17896441","content":"2040cfe4"},"/react-native-template-strong/docs/navigation/pages-828":{"__comp":"17896441","content":"b1ef8e0a"},"/react-native-template-strong/docs/navigation/roots-8fc":{"__comp":"17896441","content":"bf787174"},"/react-native-template-strong/docs/pages/native-splash-88d":{"__comp":"17896441","content":"f2f008bc"},"/react-native-template-strong/docs/pages/onboarding-452":{"__comp":"17896441","content":"f49fe340"},"/react-native-template-strong/docs/pages/splash-472":{"__comp":"17896441","content":"b669beb2"},"/react-native-template-strong/docs/patches-863":{"__comp":"17896441","content":"eb838824"},"/react-native-template-strong/docs/redux/async-thunk-fa5":{"__comp":"17896441","content":"88cbf0c6"},"/react-native-template-strong/docs/redux/before-starting-f70":{"__comp":"17896441","content":"94173908"},"/react-native-template-strong/docs/redux/core-idea-309":{"__comp":"17896441","content":"201c1feb"},"/react-native-template-strong/docs/redux/hooks-385":{"__comp":"17896441","content":"e1df6725"},"/react-native-template-strong/docs/redux/slice-1bd":{"__comp":"17896441","content":"c27df6d1"},"/react-native-template-strong/docs/redux/state-5a5":{"__comp":"17896441","content":"ede50c9e"},"/react-native-template-strong/docs/redux/store-78c":{"__comp":"17896441","content":"4972ee25"},"/react-native-template-strong/docs/resources/fonts-c35":{"__comp":"17896441","content":"9a53555d"},"/react-native-template-strong/docs/resources/images-efe":{"__comp":"17896441","content":"5f847e85"},"/react-native-template-strong/docs/resources/sf-symbols-b6e":{"__comp":"17896441","content":"78a19f83"},"/react-native-template-strong/docs/resources/vector-icons-685":{"__comp":"17896441","content":"a88c1c0e"},"/react-native-template-strong/docs/structure/module-240":{"__comp":"17896441","content":"82bbd999"},"/react-native-template-strong/docs/structure/project-2a9":{"__comp":"17896441","content":"a09f8af8"},"/react-native-template-strong/docs/styles/common-sizes-78d":{"__comp":"17896441","content":"6e581f4b"},"/react-native-template-strong/docs/styles/common-styles-e28":{"__comp":"17896441","content":"1f05955d"},"/react-native-template-strong/docs/styles/component-styles-6b5":{"__comp":"17896441","content":"8e392f8e"},"/react-native-template-strong/docs/testing/detox-55c":{"__comp":"17896441","content":"3a8d2d9f"},"/react-native-template-strong/docs/testing/jest-a1d":{"__comp":"17896441","content":"527ccfd4"},"/react-native-template-strong/docs/testing/storybook-eb6":{"__comp":"17896441","content":"3c45ece2"},"/react-native-template-strong/docs/themes/colors-a7f":{"__comp":"17896441","content":"52fe9033"},"/react-native-template-strong/docs/themes/native-colors-ed6":{"__comp":"17896441","content":"3169c1c1"},"/react-native-template-strong/docs/types-b19":{"__comp":"17896441","content":"fa6c2e8e"},"/react-native-template-strong/docs/utils/list-handlers-b74":{"__comp":"17896441","content":"449809ec"},"/react-native-template-strong/docs/utils/new-state-494":{"__comp":"17896441","content":"bf3f5c43"},"/react-native-template-strong/docs/utils/serialize-query-params-f5d":{"__comp":"17896441","content":"b4a96655"},"/react-native-template-strong/docs/utils/url-openers-2cc":{"__comp":"17896441","content":"a775fdf9"},"/react-native-template-strong/docs/validations-982":{"__comp":"17896441","content":"644e2e9e"},"/react-native-template-strong/-da3":{"__comp":"1df93b7f","__context":{"plugin":"b0417d48"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=9383,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.47c9f7f0.js b/assets/js/main.47c9f7f0.js new file mode 100644 index 00000000..11a1c0f5 --- /dev/null +++ b/assets/js/main.47c9f7f0.js @@ -0,0 +1,2 @@ +/*! For license information please see main.47c9f7f0.js.LICENSE.txt */ +(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[179],{830:(e,t,n)=>{"use strict";n.d(t,{W:()=>a});var r=n(7294);function a(){return r.createElement("svg",{width:"20",height:"20",className:"DocSearch-Search-Icon",viewBox:"0 0 20 20"},r.createElement("path",{d:"M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z",stroke:"currentColor",fill:"none",fillRule:"evenodd",strokeLinecap:"round",strokeLinejoin:"round"}))}},723:(e,t,n)=>{"use strict";n.d(t,{Z:()=>p});n(7294);var r=n(8356),a=n.n(r),o=n(6887);const i={"0106a0c1":[()=>n.e(5165).then(n.bind(n,7478)),"@site/docs/helpers/share-helpers.md",7478],"041eb33b":[()=>n.e(4715).then(n.bind(n,1239)),"@site/docs/configs/rn-config.md",1239],"07727b20":[()=>n.e(817).then(n.bind(n,7984)),"@site/docs/helpers/regex-helpers.md",7984],"08fac725":[()=>n.e(4027).then(n.bind(n,1369)),"@site/docs/configs/eslint-config.md",1369],"09318855":[()=>n.e(8906).then(n.bind(n,1605)),"@site/docs/helpers/in-app-review-helper.md",1605],"0a3d3edc":[()=>n.e(7102).then(n.bind(n,6561)),"@site/docs/helpers/calculate-page.md",6561],"11e380a5":[()=>n.e(2370).then(n.bind(n,1778)),"@site/docs/hooks/use-previous.md",1778],"14f2708c":[()=>n.e(9908).then(n.bind(n,548)),"@site/docs/localisation/add-language.md",548],17896441:[()=>Promise.all([n.e(532),n.e(692),n.e(7918)]).then(n.bind(n,903)),"@theme/DocItem",903],"19829c28":[()=>n.e(8608).then(n.bind(n,8129)),"@site/docs/components/section-list-wrapper.md",8129],"1a4e3797":[()=>Promise.all([n.e(532),n.e(7920)]).then(n.bind(n,6675)),"@theme/SearchPage",6675],"1a8cd603":[()=>n.e(4522).then(n.bind(n,5876)),"@site/docs/navigation/hooks.md",5876],"1df93b7f":[()=>Promise.all([n.e(532),n.e(3237)]).then(n.bind(n,8368)),"@site/src/pages/index.tsx",8368],"1e5d5012":[()=>n.e(4942).then(n.bind(n,0)),"@site/docs/components/flat-list-wrapper.md",0],"1f05955d":[()=>n.e(9301).then(n.bind(n,5413)),"@site/docs/styles/common-styles.md",5413],"1f391b9e":[()=>Promise.all([n.e(532),n.e(692),n.e(3085)]).then(n.bind(n,4247)),"@theme/MDXPage",4247],"1fd605f7":[()=>n.e(5803).then(n.bind(n,244)),"@site/src/pages/faq.md",244],"201c1feb":[()=>n.e(1186).then(n.bind(n,7210)),"@site/docs/redux/core-idea.md",7210],"2040cfe4":[()=>n.e(4012).then(n.bind(n,7111)),"@site/docs/navigation/overlays-and-modals.md",7111],"2190081c":[()=>n.e(8842).then(n.bind(n,4077)),"@site/docs/hooks/use-event-register.md",4077],26509314:[()=>n.e(6235).then(n.bind(n,188)),"@site/src/pages/troubleshooting.md",188],"2adfb7b8":[()=>n.e(915).then(n.bind(n,3219)),"@site/docs/localisation/intl-formatter.md",3219],"2b755825":[()=>n.e(962).then(n.bind(n,9376)),"@site/docs/localisation/change-language.md",9376],"2f2dc1d3":[()=>n.e(350).then(n.bind(n,7323)),"@site/docs/app-icon.md",7323],"30b35490":[()=>n.e(7952).then(n.bind(n,3573)),"@site/docs/navigation/actions.md",3573],"31630cdb":[()=>n.e(3793).then(n.bind(n,3833)),"@site/docs/components/primary-text-input.md",3833],"3169c1c1":[()=>n.e(7831).then(n.bind(n,2973)),"@site/docs/themes/native-colors.md",2973],"328e254d":[()=>n.e(2918).then(n.bind(n,6139)),"@site/docs/helpers/color-helpers.md",6139],"37742c1c":[()=>n.e(5887).then(n.t.bind(n,3769,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-plugin-content-docs/default/plugin-route-context-module-100.json",3769],39654635:[()=>n.e(7705).then(n.bind(n,970)),"@site/docs/configs/babel-config.md",970],"3a8d2d9f":[()=>n.e(945).then(n.bind(n,9503)),"@site/docs/testing/detox.md",9503],"3c45ece2":[()=>n.e(447).then(n.bind(n,2925)),"@site/docs/testing/storybook.md",2925],"3efb1320":[()=>n.e(4258).then(n.bind(n,7628)),"@site/docs/components/empty-view.md",7628],"3fdaf820":[()=>n.e(759).then(n.bind(n,3570)),"@site/docs/localisation/translations.md",3570],"43bdb0b8":[()=>n.e(6394).then(n.bind(n,5377)),"@site/docs/helpers/dialogs-helpers.md",5377],"449809ec":[()=>n.e(2544).then(n.bind(n,8949)),"@site/docs/utils/list-handlers.md",8949],"4972ee25":[()=>n.e(6638).then(n.bind(n,5202)),"@site/docs/redux/store.md",5202],"4ff29f3f":[()=>n.e(3286).then(n.bind(n,1067)),"@site/docs/components/date-picker-overlay.md",1067],"51dcefc3":[()=>n.e(9969).then(n.bind(n,3452)),"@site/docs/helpers/strings-helpers.md",3452],"527ccfd4":[()=>n.e(4469).then(n.bind(n,29)),"@site/docs/testing/jest.md",29],"52fe9033":[()=>n.e(5967).then(n.bind(n,8183)),"@site/docs/themes/colors.md",8183],"5b2ba987":[()=>n.e(4991).then(n.bind(n,8719)),"@site/docs/hooks/use-why-did-you-update.md",8719],"5d01a4f0":[()=>n.e(5638).then(n.bind(n,8407)),"@site/docs/hooks/use-debounce.md",8407],"5e95c892":[()=>n.e(9661).then(n.bind(n,1892)),"@theme/DocsRoot",1892],"5e9f5e1a":[()=>Promise.resolve().then(n.bind(n,6809)),"@generated/docusaurus.config",6809],"5ed5e9d2":[()=>n.e(1984).then(n.bind(n,2805)),"@site/docs/helpers/orientation-helpers.md",2805],"5f847e85":[()=>n.e(5601).then(n.bind(n,2250)),"@site/docs/resources/images.md",2250],"5f9cf606":[()=>n.e(7062).then(n.bind(n,4545)),"@site/docs/configs/jest-config.md",4545],"5fbc5cf1":[()=>n.e(1207).then(n.bind(n,8594)),"@site/docs/api.md",8594],"6222aa5d":[()=>n.e(3772).then(n.bind(n,8321)),"@site/docs/internals/android.md",8321],"62c33f29":[()=>n.e(9102).then(n.bind(n,3976)),"@site/docs/components/primary-button.md",3976],"644e2e9e":[()=>n.e(6759).then(n.bind(n,9816)),"@site/docs/validations.md",9816],"69e64926":[()=>n.e(7444).then(n.bind(n,3671)),"@site/docs/hooks/use-flat-list-actions.md",3671],"6e581f4b":[()=>n.e(1721).then(n.bind(n,5010)),"@site/docs/styles/common-sizes.md",5010],"78a19f83":[()=>n.e(5389).then(n.bind(n,569)),"@site/docs/resources/sf-symbols.md",569],"7f85490b":[()=>n.e(3427).then(n.bind(n,6091)),"@site/docs/dependencies.md",6091],"82bbd999":[()=>n.e(9709).then(n.bind(n,8941)),"@site/docs/structure/module.md",8941],"84080ef2":[()=>n.e(7816).then(n.bind(n,3545)),"@site/docs/helpers/default-key-id-extractor.md",3545],"8450a114":[()=>n.e(5116).then(n.bind(n,70)),"@site/docs/components/icon-platform.md",70],"88cbf0c6":[()=>n.e(1242).then(n.bind(n,1310)),"@site/docs/redux/async-thunk.md",1310],"8a6ff679":[()=>n.e(6243).then(n.bind(n,3989)),"@site/docs/components/radio-icon.md",3989],"8e392f8e":[()=>n.e(880).then(n.bind(n,8273)),"@site/docs/styles/component-styles.md",8273],"91cb04fa":[()=>n.e(7290).then(n.bind(n,3291)),"@site/docs/configs/metro-config.md",3291],"935f2afb":[()=>n.e(53).then(n.t.bind(n,1109,19)),"~docs/default/version-current-metadata-prop-751.json",1109],94173908:[()=>n.e(6765).then(n.bind(n,7781)),"@site/docs/redux/before-starting.md",7781],"9a53555d":[()=>n.e(3922).then(n.bind(n,1526)),"@site/docs/resources/fonts.md",1526],"9bbfbce4":[()=>n.e(3845).then(n.bind(n,1247)),"@site/docs/components/image-crop-picker-button.md",1247],"9cf17553":[()=>n.e(2188).then(n.bind(n,4319)),"@site/docs/components/touchable-platform.md",4319],"9dcf257f":[()=>n.e(8886).then(n.bind(n,4739)),"@site/docs/components/separator.md",4739],a09f8af8:[()=>n.e(1357).then(n.bind(n,3818)),"@site/docs/structure/project.md",3818],a775fdf9:[()=>n.e(1902).then(n.bind(n,2825)),"@site/docs/utils/url-openers.md",2825],a7bd4aaa:[()=>n.e(8518).then(n.bind(n,8564)),"@theme/DocVersionRoot",8564],a7e83710:[()=>n.e(8857).then(n.t.bind(n,7085,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-theme-search-algolia/default/plugin-route-context-module-100.json",7085],a88c1c0e:[()=>n.e(7748).then(n.bind(n,295)),"@site/docs/resources/vector-icons.md",295],a94703ab:[()=>Promise.all([n.e(532),n.e(4368)]).then(n.bind(n,2674)),"@theme/DocRoot",2674],aae46502:[()=>n.e(5565).then(n.bind(n,2590)),"@site/docs/hooks/use-back-handler.md",2590],ae8ecedf:[()=>n.e(4769).then(n.bind(n,4227)),"@site/docs/configs/detox-config.md",4227],b0417d48:[()=>n.e(1477).then(n.t.bind(n,5745,19)),"/Users/sergeibutko/Projects/React-Native/react-native-template-oneup/website/.docusaurus/docusaurus-plugin-content-pages/default/plugin-route-context-module-100.json",5745],b1ef8e0a:[()=>n.e(9702).then(n.bind(n,1297)),"@site/docs/navigation/pages.md",1297],b4a96655:[()=>n.e(5277).then(n.bind(n,8044)),"@site/docs/utils/serialize-query-params.md",8044],b5ee907e:[()=>n.e(3800).then(n.bind(n,1095)),"@site/docs/app-release.md",1095],b669beb2:[()=>n.e(3118).then(n.bind(n,5132)),"@site/docs/pages/splash.md",5132],b801cfc7:[()=>n.e(8622).then(n.bind(n,1744)),"@site/docs/configs/prettier-config.md",1744],bf3f5c43:[()=>n.e(2627).then(n.bind(n,919)),"@site/docs/utils/new-state.md",919],bf787174:[()=>n.e(9721).then(n.bind(n,7122)),"@site/docs/navigation/roots.md",7122],c2066304:[()=>n.e(3122).then(n.bind(n,4658)),"@site/docs/components/try-again.md",4658],c27df6d1:[()=>n.e(9117).then(n.bind(n,8585)),"@site/docs/redux/slice.md",8585],c5ed97f1:[()=>n.e(186).then(n.bind(n,1090)),"@site/src/pages/mission.md",1090],cf5243f0:[()=>n.e(8136).then(n.bind(n,9688)),"@site/docs/components/photo-taking-button.md",9688],d1e36d14:[()=>n.e(729).then(n.bind(n,8277)),"@site/docs/navigation/before-starting.md",8277],d589d3a7:[()=>n.e(7162).then(n.bind(n,6443)),"@site/docs/getting-started.md",6443],d95e32bd:[()=>n.e(1390).then(n.bind(n,3589)),"@site/docs/helpers/net-info-helpers.md",3589],da80d167:[()=>n.e(5048).then(n.bind(n,1389)),"@site/docs/navigation/default-options.md",1389],e1df6725:[()=>n.e(1314).then(n.bind(n,8578)),"@site/docs/redux/hooks.md",8578],e2ad1f17:[()=>n.e(9264).then(n.bind(n,4173)),"@site/docs/configs/ts-config.md",4173],e690c9e7:[()=>n.e(7686).then(n.bind(n,4408)),"@site/docs/checking-updates.md",4408],e7a9e65a:[()=>n.e(3518).then(n.bind(n,8969)),"@site/docs/components/toast-overlay.md",8969],eb838824:[()=>n.e(4697).then(n.bind(n,5759)),"@site/docs/patches.md",5759],ec7be5cc:[()=>n.e(8471).then(n.bind(n,7719)),"@site/docs/localisation/date-formatter.md",7719],edb259cb:[()=>n.e(1889).then(n.bind(n,2625)),"@site/docs/helpers/image-helpers.md",2625],ede50c9e:[()=>n.e(665).then(n.bind(n,8409)),"@site/docs/redux/state.md",8409],f2beb3a0:[()=>n.e(1486).then(n.bind(n,236)),"@site/docs/environments.md",236],f2f008bc:[()=>n.e(3220).then(n.bind(n,8926)),"@site/docs/pages/native-splash.md",8926],f49fe340:[()=>n.e(3888).then(n.bind(n,3486)),"@site/docs/pages/onboarding.md",3486],fa6c2e8e:[()=>n.e(8460).then(n.bind(n,1153)),"@site/docs/types.md",1153],fab06093:[()=>n.e(6257).then(n.bind(n,9070)),"@site/docs/components/loading-component.md",9070],fcca6dac:[()=>n.e(2239).then(n.bind(n,8689)),"@site/docs/internals/ios.md",8689],fcde09bc:[()=>n.e(2023).then(n.bind(n,9833)),"@site/docs/common-constants.md",9833],ff6d8346:[()=>n.e(2529).then(n.bind(n,353)),"@site/docs/components/radio-button.md",353]};var s=n(5893);function l(e){let{error:t,retry:n,pastDelay:r}=e;return t?(0,s.jsxs)("div",{style:{textAlign:"center",color:"#fff",backgroundColor:"#fa383e",borderColor:"#fa383e",borderStyle:"solid",borderRadius:"0.25rem",borderWidth:"1px",boxSizing:"border-box",display:"block",padding:"1rem",flex:"0 0 50%",marginLeft:"25%",marginRight:"25%",marginTop:"5rem",maxWidth:"50%",width:"100%"},children:[(0,s.jsx)("p",{children:String(t)}),(0,s.jsx)("div",{children:(0,s.jsx)("button",{type:"button",onClick:n,children:"Retry"})})]}):r?(0,s.jsx)("div",{style:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:(0,s.jsx)("svg",{id:"loader",style:{width:128,height:110,position:"absolute",top:"calc(100vh - 64%)"},viewBox:"0 0 45 45",xmlns:"http://www.w3.org/2000/svg",stroke:"#61dafb",children:(0,s.jsxs)("g",{fill:"none",fillRule:"evenodd",transform:"translate(1 1)",strokeWidth:"2",children:[(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"1.5s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"1.5s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"1.5s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsxs)("circle",{cx:"22",cy:"22",r:"6",strokeOpacity:"0",children:[(0,s.jsx)("animate",{attributeName:"r",begin:"3s",dur:"3s",values:"6;22",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-opacity",begin:"3s",dur:"3s",values:"1;0",calcMode:"linear",repeatCount:"indefinite"}),(0,s.jsx)("animate",{attributeName:"stroke-width",begin:"3s",dur:"3s",values:"2;0",calcMode:"linear",repeatCount:"indefinite"})]}),(0,s.jsx)("circle",{cx:"22",cy:"22",r:"8",children:(0,s.jsx)("animate",{attributeName:"r",begin:"0s",dur:"1.5s",values:"6;1;2;3;4;5;6",calcMode:"linear",repeatCount:"indefinite"})})]})})}):null}var c=n(9670),u=n(226);function d(e,t){if("*"===e)return a()({loading:l,loader:()=>n.e(1772).then(n.bind(n,1772)),modules:["@theme/NotFound"],webpack:()=>[1772],render(e,t){const n=e.default;return(0,s.jsx)(u.z,{value:{plugin:{name:"native",id:"default"}},children:(0,s.jsx)(n,{...t})})}});const r=o[`${e}-${t}`],d={},p=[],f=[],m=(0,c.Z)(r);return Object.entries(m).forEach((e=>{let[t,n]=e;const r=i[n];r&&(d[t]=r[0],p.push(r[1]),f.push(r[2]))})),a().Map({loading:l,loader:d,modules:p,webpack:()=>f,render(t,n){const a=JSON.parse(JSON.stringify(r));Object.entries(t).forEach((t=>{let[n,r]=t;const o=r.default;if(!o)throw new Error(`The page component at ${e} doesn't have a default export. This makes it impossible to render anything. Consider default-exporting a React component.`);"object"!=typeof o&&"function"!=typeof o||Object.keys(r).filter((e=>"default"!==e)).forEach((e=>{o[e]=r[e]}));let i=a;const s=n.split(".");s.slice(0,-1).forEach((e=>{i=i[e]})),i[s[s.length-1]]=o}));const o=a.__comp;delete a.__comp;const i=a.__context;return delete a.__context,(0,s.jsx)(u.z,{value:i,children:(0,s.jsx)(o,{...a,...n})})}})}const p=[{path:"/react-native-template-strong/faq",component:d("/react-native-template-strong/faq","c36"),exact:!0},{path:"/react-native-template-strong/mission",component:d("/react-native-template-strong/mission","cc1"),exact:!0},{path:"/react-native-template-strong/search",component:d("/react-native-template-strong/search","2ff"),exact:!0},{path:"/react-native-template-strong/troubleshooting",component:d("/react-native-template-strong/troubleshooting","c71"),exact:!0},{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","d0f"),routes:[{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","c29"),routes:[{path:"/react-native-template-strong/docs",component:d("/react-native-template-strong/docs","1a9"),routes:[{path:"/react-native-template-strong/docs/api",component:d("/react-native-template-strong/docs/api","274"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/app-icon",component:d("/react-native-template-strong/docs/app-icon","ae1"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/app-release",component:d("/react-native-template-strong/docs/app-release","f60"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/checking-updates",component:d("/react-native-template-strong/docs/checking-updates","815"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/common-constants",component:d("/react-native-template-strong/docs/common-constants","ed0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/date-picker-overlay",component:d("/react-native-template-strong/docs/components/date-picker-overlay","261"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/empty-view",component:d("/react-native-template-strong/docs/components/empty-view","a05"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/flat-list-wrapper",component:d("/react-native-template-strong/docs/components/flat-list-wrapper","770"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/icon-platform",component:d("/react-native-template-strong/docs/components/icon-platform","1dc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/image-crop-picker-button",component:d("/react-native-template-strong/docs/components/image-crop-picker-button","27c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/loading-component",component:d("/react-native-template-strong/docs/components/loading-component","6f6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/photo-taking-button",component:d("/react-native-template-strong/docs/components/photo-taking-button","f01"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/primary-button",component:d("/react-native-template-strong/docs/components/primary-button","bf6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/primary-text-input",component:d("/react-native-template-strong/docs/components/primary-text-input","1fd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/radio-button",component:d("/react-native-template-strong/docs/components/radio-button","6f7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/radio-icon",component:d("/react-native-template-strong/docs/components/radio-icon","c7e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/section-list-wrapper",component:d("/react-native-template-strong/docs/components/section-list-wrapper","b26"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/separator",component:d("/react-native-template-strong/docs/components/separator","e7f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/toast-overlay",component:d("/react-native-template-strong/docs/components/toast-overlay","c46"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/touchable-platform",component:d("/react-native-template-strong/docs/components/touchable-platform","4c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/components/try-again",component:d("/react-native-template-strong/docs/components/try-again","6f5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/babel-config",component:d("/react-native-template-strong/docs/configs/babel-config","8a3"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/detox-config",component:d("/react-native-template-strong/docs/configs/detox-config","a1e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/eslint-config",component:d("/react-native-template-strong/docs/configs/eslint-config","6f4"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/jest-config",component:d("/react-native-template-strong/docs/configs/jest-config","260"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/metro-config",component:d("/react-native-template-strong/docs/configs/metro-config","1bf"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/prettier-config",component:d("/react-native-template-strong/docs/configs/prettier-config","2bc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/rn-config",component:d("/react-native-template-strong/docs/configs/rn-config","442"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/configs/ts-config",component:d("/react-native-template-strong/docs/configs/ts-config","c65"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/dependencies",component:d("/react-native-template-strong/docs/dependencies","68f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/environments",component:d("/react-native-template-strong/docs/environments","d41"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/getting-started",component:d("/react-native-template-strong/docs/getting-started","828"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/calculate-page",component:d("/react-native-template-strong/docs/helpers/calculate-page","5f0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/color-helpers",component:d("/react-native-template-strong/docs/helpers/color-helpers","770"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/default-key-id-extractor",component:d("/react-native-template-strong/docs/helpers/default-key-id-extractor","088"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/dialogs-helpers",component:d("/react-native-template-strong/docs/helpers/dialogs-helpers","c9e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/image-helpers",component:d("/react-native-template-strong/docs/helpers/image-helpers","112"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/in-app-review-helper",component:d("/react-native-template-strong/docs/helpers/in-app-review-helper","768"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/net-info-helpers",component:d("/react-native-template-strong/docs/helpers/net-info-helpers","fed"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/orientation-helpers",component:d("/react-native-template-strong/docs/helpers/orientation-helpers","18d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/regex-helpers",component:d("/react-native-template-strong/docs/helpers/regex-helpers","72c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/share-helpers",component:d("/react-native-template-strong/docs/helpers/share-helpers","653"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/helpers/strings-helpers",component:d("/react-native-template-strong/docs/helpers/strings-helpers","600"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-back-handler",component:d("/react-native-template-strong/docs/hooks/use-back-handler","6c7"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-debounce",component:d("/react-native-template-strong/docs/hooks/use-debounce","d71"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-event-register",component:d("/react-native-template-strong/docs/hooks/use-event-register","153"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-flat-list-actions",component:d("/react-native-template-strong/docs/hooks/use-flat-list-actions","f06"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-previous",component:d("/react-native-template-strong/docs/hooks/use-previous","768"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/hooks/use-why-did-you-update",component:d("/react-native-template-strong/docs/hooks/use-why-did-you-update","60b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/internals/android",component:d("/react-native-template-strong/docs/internals/android","859"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/internals/ios",component:d("/react-native-template-strong/docs/internals/ios","feb"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/add-language",component:d("/react-native-template-strong/docs/localisation/add-language","758"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/change-language",component:d("/react-native-template-strong/docs/localisation/change-language","b0b"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/date-formatter",component:d("/react-native-template-strong/docs/localisation/date-formatter","a03"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/intl-formatter",component:d("/react-native-template-strong/docs/localisation/intl-formatter","0bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/localisation/translations",component:d("/react-native-template-strong/docs/localisation/translations","353"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/actions",component:d("/react-native-template-strong/docs/navigation/actions","295"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/before-starting",component:d("/react-native-template-strong/docs/navigation/before-starting","9c0"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/default-options",component:d("/react-native-template-strong/docs/navigation/default-options","f98"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/hooks",component:d("/react-native-template-strong/docs/navigation/hooks","cb5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/overlays-and-modals",component:d("/react-native-template-strong/docs/navigation/overlays-and-modals","347"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/pages",component:d("/react-native-template-strong/docs/navigation/pages","828"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/navigation/roots",component:d("/react-native-template-strong/docs/navigation/roots","8fc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/native-splash",component:d("/react-native-template-strong/docs/pages/native-splash","88d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/onboarding",component:d("/react-native-template-strong/docs/pages/onboarding","452"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/pages/splash",component:d("/react-native-template-strong/docs/pages/splash","472"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/patches",component:d("/react-native-template-strong/docs/patches","863"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/async-thunk",component:d("/react-native-template-strong/docs/redux/async-thunk","fa5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/before-starting",component:d("/react-native-template-strong/docs/redux/before-starting","f70"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/core-idea",component:d("/react-native-template-strong/docs/redux/core-idea","309"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/hooks",component:d("/react-native-template-strong/docs/redux/hooks","385"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/slice",component:d("/react-native-template-strong/docs/redux/slice","1bd"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/state",component:d("/react-native-template-strong/docs/redux/state","5a5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/redux/store",component:d("/react-native-template-strong/docs/redux/store","78c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/fonts",component:d("/react-native-template-strong/docs/resources/fonts","c35"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/images",component:d("/react-native-template-strong/docs/resources/images","efe"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/sf-symbols",component:d("/react-native-template-strong/docs/resources/sf-symbols","b6e"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/resources/vector-icons",component:d("/react-native-template-strong/docs/resources/vector-icons","685"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/structure/module",component:d("/react-native-template-strong/docs/structure/module","240"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/structure/project",component:d("/react-native-template-strong/docs/structure/project","2a9"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/common-sizes",component:d("/react-native-template-strong/docs/styles/common-sizes","78d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/common-styles",component:d("/react-native-template-strong/docs/styles/common-styles","e28"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/styles/component-styles",component:d("/react-native-template-strong/docs/styles/component-styles","6b5"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/detox",component:d("/react-native-template-strong/docs/testing/detox","55c"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/jest",component:d("/react-native-template-strong/docs/testing/jest","a1d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/testing/storybook",component:d("/react-native-template-strong/docs/testing/storybook","eb6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/themes/colors",component:d("/react-native-template-strong/docs/themes/colors","a7f"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/themes/native-colors",component:d("/react-native-template-strong/docs/themes/native-colors","ed6"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/types",component:d("/react-native-template-strong/docs/types","b19"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/list-handlers",component:d("/react-native-template-strong/docs/utils/list-handlers","b74"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/new-state",component:d("/react-native-template-strong/docs/utils/new-state","494"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/serialize-query-params",component:d("/react-native-template-strong/docs/utils/serialize-query-params","f5d"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/utils/url-openers",component:d("/react-native-template-strong/docs/utils/url-openers","2cc"),exact:!0,sidebar:"tutorialSidebar"},{path:"/react-native-template-strong/docs/validations",component:d("/react-native-template-strong/docs/validations","982"),exact:!0,sidebar:"tutorialSidebar"}]}]}]},{path:"/react-native-template-strong/",component:d("/react-native-template-strong/","da3"),exact:!0},{path:"*",component:d("*")}]},8934:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,t:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(!1);function i(e){let{children:t}=e;const[n,i]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{i(!0)}),[]),(0,a.jsx)(o.Provider,{value:n,children:t})}},7221:(e,t,n)=>{"use strict";var r=n(7294),a=n(745),o=n(3727),i=n(405),s=n(412);const l=[n(2497),n(3310),n(8320),n(2295)];var c=n(723),u=n(6550),d=n(8790),p=n(5893);function f(e){let{children:t}=e;return(0,p.jsx)(p.Fragment,{children:t})}var m=n(5742),g=n(2263),h=n(4996),b=n(6668),v=n(833),y=n(4711),w=n(9727),k=n(3320),x=n(8780),S=n(197);function E(){const{i18n:{currentLocale:e,defaultLocale:t,localeConfigs:n}}=(0,g.Z)(),r=(0,y.l)(),a=n[e].htmlLang,o=e=>e.replace("-","_");return(0,p.jsxs)(m.Z,{children:[Object.entries(n).map((e=>{let[t,{htmlLang:n}]=e;return(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:n},t)})),(0,p.jsx)("link",{rel:"alternate",href:r.createUrl({locale:t,fullyQualified:!0}),hrefLang:"x-default"}),(0,p.jsx)("meta",{property:"og:locale",content:o(a)}),Object.values(n).filter((e=>a!==e.htmlLang)).map((e=>(0,p.jsx)("meta",{property:"og:locale:alternate",content:o(e.htmlLang)},`meta-og-${e.htmlLang}`)))]})}function _(e){let{permalink:t}=e;const{siteConfig:{url:n}}=(0,g.Z)(),r=function(){const{siteConfig:{url:e,baseUrl:t,trailingSlash:n}}=(0,g.Z)(),{pathname:r}=(0,u.TH)();return e+(0,x.applyTrailingSlash)((0,h.Z)(r),{trailingSlash:n,baseUrl:t})}(),a=t?`${n}${t}`:r;return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{property:"og:url",content:a}),(0,p.jsx)("link",{rel:"canonical",href:a})]})}function C(){const{i18n:{currentLocale:e}}=(0,g.Z)(),{metadata:t,image:n}=(0,b.L)();return(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,p.jsx)("body",{className:w.h})]}),n&&(0,p.jsx)(v.d,{image:n}),(0,p.jsx)(_,{}),(0,p.jsx)(E,{}),(0,p.jsx)(S.Z,{tag:k.HX,locale:e}),(0,p.jsx)(m.Z,{children:t.map(((e,t)=>(0,p.jsx)("meta",{...e},t)))})]})}const T=new Map;function j(e){if(T.has(e.pathname))return{...e,pathname:T.get(e.pathname)};if((0,d.f)(c.Z,e.pathname).some((e=>{let{route:t}=e;return!0===t.exact})))return T.set(e.pathname,e.pathname),e;const t=e.pathname.trim().replace(/(?:\/index)?\.html$/,"")||"/";return T.set(e.pathname,t),{...e,pathname:t}}var A=n(8934),L=n(8940),R=n(469);function N(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];const a=l.map((t=>{const r=t.default?.[e]??t[e];return r?.(...n)}));return()=>a.forEach((e=>e?.()))}const P=function(e){let{children:t,location:n,previousLocation:r}=e;return(0,R.Z)((()=>{r!==n&&(!function(e){let{location:t,previousLocation:n}=e;if(!n)return;const r=t.pathname===n.pathname,a=t.hash===n.hash,o=t.search===n.search;if(r&&a&&!o)return;const{hash:i}=t;if(i){const e=decodeURIComponent(i.substring(1)),t=document.getElementById(e);t?.scrollIntoView()}else window.scrollTo(0,0)}({location:n,previousLocation:r}),N("onRouteDidUpdate",{previousLocation:r,location:n}))}),[r,n]),t};function O(e){const t=Array.from(new Set([e,decodeURI(e)])).map((e=>(0,d.f)(c.Z,e))).flat();return Promise.all(t.map((e=>e.route.component.preload?.())))}class I extends r.Component{previousLocation;routeUpdateCleanupCb;constructor(e){super(e),this.previousLocation=null,this.routeUpdateCleanupCb=s.Z.canUseDOM?N("onRouteUpdate",{previousLocation:null,location:this.props.location}):()=>{},this.state={nextRouteHasLoaded:!0}}shouldComponentUpdate(e,t){if(e.location===this.props.location)return t.nextRouteHasLoaded;const n=e.location;return this.previousLocation=this.props.location,this.setState({nextRouteHasLoaded:!1}),this.routeUpdateCleanupCb=N("onRouteUpdate",{previousLocation:this.previousLocation,location:n}),O(n.pathname).then((()=>{this.routeUpdateCleanupCb(),this.setState({nextRouteHasLoaded:!0})})).catch((e=>{console.warn(e),window.location.reload()})),!1}render(){const{children:e,location:t}=this.props;return(0,p.jsx)(P,{previousLocation:this.previousLocation,location:t,children:(0,p.jsx)(u.AW,{location:t,render:()=>e})})}}const D=I,M="__docusaurus-base-url-issue-banner-container",F="__docusaurus-base-url-issue-banner",z="__docusaurus-base-url-issue-banner-suggestion-container";function B(e){return`\ndocument.addEventListener('DOMContentLoaded', function maybeInsertBanner() {\n var shouldInsert = typeof window['docusaurus'] === 'undefined';\n shouldInsert && insertBanner();\n});\n\nfunction insertBanner() {\n var bannerContainer = document.createElement('div');\n bannerContainer.id = '${M}';\n var bannerHtml = ${JSON.stringify(function(e){return`\n<div id="${F}" style="border: thick solid red; background-color: rgb(255, 230, 179); margin: 20px; padding: 20px; font-size: 20px;">\n <p style="font-weight: bold; font-size: 30px;">Your Docusaurus site did not load properly.</p>\n <p>A very common reason is a wrong site <a href="https://docusaurus.io/docs/docusaurus.config.js/#baseUrl" style="font-weight: bold;">baseUrl configuration</a>.</p>\n <p>Current configured baseUrl = <span style="font-weight: bold; color: red;">${e}</span> ${"/"===e?" (default value)":""}</p>\n <p>We suggest trying baseUrl = <span id="${z}" style="font-weight: bold; color: green;"></span></p>\n</div>\n`}(e)).replace(/</g,"\\<")};\n bannerContainer.innerHTML = bannerHtml;\n document.body.prepend(bannerContainer);\n var suggestionContainer = document.getElementById('${z}');\n var actualHomePagePath = window.location.pathname;\n var suggestedBaseUrl = actualHomePagePath.substr(-1) === '/'\n ? actualHomePagePath\n : actualHomePagePath + '/';\n suggestionContainer.innerHTML = suggestedBaseUrl;\n}\n`}function U(){const{siteConfig:{baseUrl:e}}=(0,g.Z)();return(0,p.jsx)(p.Fragment,{children:!s.Z.canUseDOM&&(0,p.jsx)(m.Z,{children:(0,p.jsx)("script",{children:B(e)})})})}function $(){const{siteConfig:{baseUrl:e,baseUrlIssueBanner:t}}=(0,g.Z)(),{pathname:n}=(0,u.TH)();return t&&n===e?(0,p.jsx)(U,{}):null}function q(){const{siteConfig:{favicon:e,title:t,noIndex:n},i18n:{currentLocale:r,localeConfigs:a}}=(0,g.Z)(),o=(0,h.Z)(e),{htmlLang:i,direction:s}=a[r];return(0,p.jsxs)(m.Z,{children:[(0,p.jsx)("html",{lang:i,dir:s}),(0,p.jsx)("title",{children:t}),(0,p.jsx)("meta",{property:"og:title",content:t}),(0,p.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0"}),n&&(0,p.jsx)("meta",{name:"robots",content:"noindex, nofollow"}),e&&(0,p.jsx)("link",{rel:"icon",href:o})]})}var H=n(4763),Z=n(2389);function G(){const e=(0,Z.Z)();return(0,p.jsx)(m.Z,{children:(0,p.jsx)("html",{"data-has-hydrated":e})})}function V(){const e=(0,d.H)(c.Z),t=(0,u.TH)();return(0,p.jsx)(H.Z,{children:(0,p.jsx)(L.M,{children:(0,p.jsxs)(A.t,{children:[(0,p.jsxs)(f,{children:[(0,p.jsx)(q,{}),(0,p.jsx)(C,{}),(0,p.jsx)($,{}),(0,p.jsx)(D,{location:j(t),children:e})]}),(0,p.jsx)(G,{})]})})})}var W=n(6887);const Q=function(e){try{return document.createElement("link").relList.supports(e)}catch{return!1}}("prefetch")?function(e){return new Promise(((t,n)=>{if("undefined"==typeof document)return void n();const r=document.createElement("link");r.setAttribute("rel","prefetch"),r.setAttribute("href",e),r.onload=()=>t(),r.onerror=()=>n();const a=document.getElementsByTagName("head")[0]??document.getElementsByName("script")[0]?.parentNode;a?.appendChild(r)}))}:function(e){return new Promise(((t,n)=>{const r=new XMLHttpRequest;r.open("GET",e,!0),r.withCredentials=!0,r.onload=()=>{200===r.status?t():n()},r.send(null)}))};var K=n(9670);const Y=new Set,X=new Set,J=()=>navigator.connection?.effectiveType.includes("2g")||navigator.connection?.saveData,ee={prefetch(e){if(!(e=>!J()&&!X.has(e)&&!Y.has(e))(e))return!1;Y.add(e);const t=(0,d.f)(c.Z,e).flatMap((e=>{return t=e.route.path,Object.entries(W).filter((e=>{let[n]=e;return n.replace(/-[^-]+$/,"")===t})).flatMap((e=>{let[,t]=e;return Object.values((0,K.Z)(t))}));var t}));return Promise.all(t.map((e=>{const t=n.gca(e);return t&&!t.includes("undefined")?Q(t).catch((()=>{})):Promise.resolve()})))},preload:e=>!!(e=>!J()&&!X.has(e))(e)&&(X.add(e),O(e))},te=Object.freeze(ee),ne=Boolean(!0);if(s.Z.canUseDOM){window.docusaurus=te;const e=document.getElementById("__docusaurus"),t=(0,p.jsx)(i.B6,{children:(0,p.jsx)(o.VK,{children:(0,p.jsx)(V,{})})}),n=(e,t)=>{console.error("Docusaurus React Root onRecoverableError:",e,t)},s=()=>{if(ne)r.startTransition((()=>{a.hydrateRoot(e,t,{onRecoverableError:n})}));else{const o=a.createRoot(e,{onRecoverableError:n});r.startTransition((()=>{o.render(t)}))}};O(window.location.pathname).then(s)}},8940:(e,t,n)=>{"use strict";n.d(t,{_:()=>d,M:()=>p});var r=n(7294),a=n(6809);const o=JSON.parse('{"docusaurus-plugin-content-docs":{"default":{"path":"/react-native-template-strong/docs","versions":[{"name":"current","label":"Next","isLast":true,"path":"/react-native-template-strong/docs","mainDocId":"getting-started","docs":[{"id":"api","path":"/react-native-template-strong/docs/api","sidebar":"tutorialSidebar"},{"id":"app-icon","path":"/react-native-template-strong/docs/app-icon","sidebar":"tutorialSidebar"},{"id":"app-release","path":"/react-native-template-strong/docs/app-release","sidebar":"tutorialSidebar"},{"id":"checking-updates","path":"/react-native-template-strong/docs/checking-updates","sidebar":"tutorialSidebar"},{"id":"common-constants","path":"/react-native-template-strong/docs/common-constants","sidebar":"tutorialSidebar"},{"id":"components/date-picker-overlay","path":"/react-native-template-strong/docs/components/date-picker-overlay","sidebar":"tutorialSidebar"},{"id":"components/empty-view","path":"/react-native-template-strong/docs/components/empty-view","sidebar":"tutorialSidebar"},{"id":"components/flat-list-wrapper","path":"/react-native-template-strong/docs/components/flat-list-wrapper","sidebar":"tutorialSidebar"},{"id":"components/icon-platform","path":"/react-native-template-strong/docs/components/icon-platform","sidebar":"tutorialSidebar"},{"id":"components/image-crop-picker-button","path":"/react-native-template-strong/docs/components/image-crop-picker-button","sidebar":"tutorialSidebar"},{"id":"components/loading-component","path":"/react-native-template-strong/docs/components/loading-component","sidebar":"tutorialSidebar"},{"id":"components/photo-taking-button","path":"/react-native-template-strong/docs/components/photo-taking-button","sidebar":"tutorialSidebar"},{"id":"components/primary-button","path":"/react-native-template-strong/docs/components/primary-button","sidebar":"tutorialSidebar"},{"id":"components/primary-text-input","path":"/react-native-template-strong/docs/components/primary-text-input","sidebar":"tutorialSidebar"},{"id":"components/radio-button","path":"/react-native-template-strong/docs/components/radio-button","sidebar":"tutorialSidebar"},{"id":"components/radio-icon","path":"/react-native-template-strong/docs/components/radio-icon","sidebar":"tutorialSidebar"},{"id":"components/section-list-wrapper","path":"/react-native-template-strong/docs/components/section-list-wrapper","sidebar":"tutorialSidebar"},{"id":"components/separator","path":"/react-native-template-strong/docs/components/separator","sidebar":"tutorialSidebar"},{"id":"components/toast-overlay","path":"/react-native-template-strong/docs/components/toast-overlay","sidebar":"tutorialSidebar"},{"id":"components/touchable-platform","path":"/react-native-template-strong/docs/components/touchable-platform","sidebar":"tutorialSidebar"},{"id":"components/try-again","path":"/react-native-template-strong/docs/components/try-again","sidebar":"tutorialSidebar"},{"id":"configs/babel-config","path":"/react-native-template-strong/docs/configs/babel-config","sidebar":"tutorialSidebar"},{"id":"configs/detox-config","path":"/react-native-template-strong/docs/configs/detox-config","sidebar":"tutorialSidebar"},{"id":"configs/eslint-config","path":"/react-native-template-strong/docs/configs/eslint-config","sidebar":"tutorialSidebar"},{"id":"configs/jest-config","path":"/react-native-template-strong/docs/configs/jest-config","sidebar":"tutorialSidebar"},{"id":"configs/metro-config","path":"/react-native-template-strong/docs/configs/metro-config","sidebar":"tutorialSidebar"},{"id":"configs/prettier-config","path":"/react-native-template-strong/docs/configs/prettier-config","sidebar":"tutorialSidebar"},{"id":"configs/rn-config","path":"/react-native-template-strong/docs/configs/rn-config","sidebar":"tutorialSidebar"},{"id":"configs/ts-config","path":"/react-native-template-strong/docs/configs/ts-config","sidebar":"tutorialSidebar"},{"id":"dependencies","path":"/react-native-template-strong/docs/dependencies","sidebar":"tutorialSidebar"},{"id":"environments","path":"/react-native-template-strong/docs/environments","sidebar":"tutorialSidebar"},{"id":"getting-started","path":"/react-native-template-strong/docs/getting-started","sidebar":"tutorialSidebar"},{"id":"helpers/calculate-page","path":"/react-native-template-strong/docs/helpers/calculate-page","sidebar":"tutorialSidebar"},{"id":"helpers/color-helpers","path":"/react-native-template-strong/docs/helpers/color-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/default-key-id-extractor","path":"/react-native-template-strong/docs/helpers/default-key-id-extractor","sidebar":"tutorialSidebar"},{"id":"helpers/dialogs-helpers","path":"/react-native-template-strong/docs/helpers/dialogs-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/image-helpers","path":"/react-native-template-strong/docs/helpers/image-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/in-app-review-helper","path":"/react-native-template-strong/docs/helpers/in-app-review-helper","sidebar":"tutorialSidebar"},{"id":"helpers/net-info-helpers","path":"/react-native-template-strong/docs/helpers/net-info-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/orientation-helpers","path":"/react-native-template-strong/docs/helpers/orientation-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/regex-helpers","path":"/react-native-template-strong/docs/helpers/regex-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/share-helpers","path":"/react-native-template-strong/docs/helpers/share-helpers","sidebar":"tutorialSidebar"},{"id":"helpers/strings-helpers","path":"/react-native-template-strong/docs/helpers/strings-helpers","sidebar":"tutorialSidebar"},{"id":"hooks/use-back-handler","path":"/react-native-template-strong/docs/hooks/use-back-handler","sidebar":"tutorialSidebar"},{"id":"hooks/use-debounce","path":"/react-native-template-strong/docs/hooks/use-debounce","sidebar":"tutorialSidebar"},{"id":"hooks/use-event-register","path":"/react-native-template-strong/docs/hooks/use-event-register","sidebar":"tutorialSidebar"},{"id":"hooks/use-flat-list-actions","path":"/react-native-template-strong/docs/hooks/use-flat-list-actions","sidebar":"tutorialSidebar"},{"id":"hooks/use-previous","path":"/react-native-template-strong/docs/hooks/use-previous","sidebar":"tutorialSidebar"},{"id":"hooks/use-why-did-you-update","path":"/react-native-template-strong/docs/hooks/use-why-did-you-update","sidebar":"tutorialSidebar"},{"id":"internals/android","path":"/react-native-template-strong/docs/internals/android","sidebar":"tutorialSidebar"},{"id":"internals/ios","path":"/react-native-template-strong/docs/internals/ios","sidebar":"tutorialSidebar"},{"id":"localisation/add-language","path":"/react-native-template-strong/docs/localisation/add-language","sidebar":"tutorialSidebar"},{"id":"localisation/change-language","path":"/react-native-template-strong/docs/localisation/change-language","sidebar":"tutorialSidebar"},{"id":"localisation/date-formatter","path":"/react-native-template-strong/docs/localisation/date-formatter","sidebar":"tutorialSidebar"},{"id":"localisation/intl-formatter","path":"/react-native-template-strong/docs/localisation/intl-formatter","sidebar":"tutorialSidebar"},{"id":"localisation/translations","path":"/react-native-template-strong/docs/localisation/translations","sidebar":"tutorialSidebar"},{"id":"navigation/actions","path":"/react-native-template-strong/docs/navigation/actions","sidebar":"tutorialSidebar"},{"id":"navigation/before-starting","path":"/react-native-template-strong/docs/navigation/before-starting","sidebar":"tutorialSidebar"},{"id":"navigation/default-options","path":"/react-native-template-strong/docs/navigation/default-options","sidebar":"tutorialSidebar"},{"id":"navigation/hooks","path":"/react-native-template-strong/docs/navigation/hooks","sidebar":"tutorialSidebar"},{"id":"navigation/overlays-and-modals","path":"/react-native-template-strong/docs/navigation/overlays-and-modals","sidebar":"tutorialSidebar"},{"id":"navigation/pages","path":"/react-native-template-strong/docs/navigation/pages","sidebar":"tutorialSidebar"},{"id":"navigation/roots","path":"/react-native-template-strong/docs/navigation/roots","sidebar":"tutorialSidebar"},{"id":"pages/native-splash","path":"/react-native-template-strong/docs/pages/native-splash","sidebar":"tutorialSidebar"},{"id":"pages/onboarding","path":"/react-native-template-strong/docs/pages/onboarding","sidebar":"tutorialSidebar"},{"id":"pages/splash","path":"/react-native-template-strong/docs/pages/splash","sidebar":"tutorialSidebar"},{"id":"patches","path":"/react-native-template-strong/docs/patches","sidebar":"tutorialSidebar"},{"id":"redux/async-thunk","path":"/react-native-template-strong/docs/redux/async-thunk","sidebar":"tutorialSidebar"},{"id":"redux/before-starting","path":"/react-native-template-strong/docs/redux/before-starting","sidebar":"tutorialSidebar"},{"id":"redux/core-idea","path":"/react-native-template-strong/docs/redux/core-idea","sidebar":"tutorialSidebar"},{"id":"redux/hooks","path":"/react-native-template-strong/docs/redux/hooks","sidebar":"tutorialSidebar"},{"id":"redux/slice","path":"/react-native-template-strong/docs/redux/slice","sidebar":"tutorialSidebar"},{"id":"redux/state","path":"/react-native-template-strong/docs/redux/state","sidebar":"tutorialSidebar"},{"id":"redux/store","path":"/react-native-template-strong/docs/redux/store","sidebar":"tutorialSidebar"},{"id":"resources/fonts","path":"/react-native-template-strong/docs/resources/fonts","sidebar":"tutorialSidebar"},{"id":"resources/images","path":"/react-native-template-strong/docs/resources/images","sidebar":"tutorialSidebar"},{"id":"resources/sf-symbols","path":"/react-native-template-strong/docs/resources/sf-symbols","sidebar":"tutorialSidebar"},{"id":"resources/vector-icons","path":"/react-native-template-strong/docs/resources/vector-icons","sidebar":"tutorialSidebar"},{"id":"structure/module","path":"/react-native-template-strong/docs/structure/module","sidebar":"tutorialSidebar"},{"id":"structure/project","path":"/react-native-template-strong/docs/structure/project","sidebar":"tutorialSidebar"},{"id":"styles/common-sizes","path":"/react-native-template-strong/docs/styles/common-sizes","sidebar":"tutorialSidebar"},{"id":"styles/common-styles","path":"/react-native-template-strong/docs/styles/common-styles","sidebar":"tutorialSidebar"},{"id":"styles/component-styles","path":"/react-native-template-strong/docs/styles/component-styles","sidebar":"tutorialSidebar"},{"id":"testing/detox","path":"/react-native-template-strong/docs/testing/detox","sidebar":"tutorialSidebar"},{"id":"testing/jest","path":"/react-native-template-strong/docs/testing/jest","sidebar":"tutorialSidebar"},{"id":"testing/storybook","path":"/react-native-template-strong/docs/testing/storybook","sidebar":"tutorialSidebar"},{"id":"themes/colors","path":"/react-native-template-strong/docs/themes/colors","sidebar":"tutorialSidebar"},{"id":"themes/native-colors","path":"/react-native-template-strong/docs/themes/native-colors","sidebar":"tutorialSidebar"},{"id":"types","path":"/react-native-template-strong/docs/types","sidebar":"tutorialSidebar"},{"id":"utils/list-handlers","path":"/react-native-template-strong/docs/utils/list-handlers","sidebar":"tutorialSidebar"},{"id":"utils/new-state","path":"/react-native-template-strong/docs/utils/new-state","sidebar":"tutorialSidebar"},{"id":"utils/serialize-query-params","path":"/react-native-template-strong/docs/utils/serialize-query-params","sidebar":"tutorialSidebar"},{"id":"utils/url-openers","path":"/react-native-template-strong/docs/utils/url-openers","sidebar":"tutorialSidebar"},{"id":"validations","path":"/react-native-template-strong/docs/validations","sidebar":"tutorialSidebar"}],"draftIds":[],"sidebars":{"tutorialSidebar":{"link":{"path":"/react-native-template-strong/docs/getting-started","label":"getting-started"}}}}],"breadcrumbs":true}}}'),i=JSON.parse('{"defaultLocale":"en","locales":["en"],"path":"i18n","currentLocale":"en","localeConfigs":{"en":{"label":"English","direction":"ltr","htmlLang":"en","calendar":"gregory","path":"en"}}}');var s=n(7529);const l=JSON.parse('{"docusaurusVersion":"3.1.0","siteVersion":"0.0.0","pluginVersions":{"docusaurus-plugin-content-docs":{"type":"package","name":"@docusaurus/plugin-content-docs","version":"3.1.0"},"docusaurus-plugin-content-blog":{"type":"package","name":"@docusaurus/plugin-content-blog","version":"3.1.0"},"docusaurus-plugin-content-pages":{"type":"package","name":"@docusaurus/plugin-content-pages","version":"3.1.0"},"docusaurus-plugin-sitemap":{"type":"package","name":"@docusaurus/plugin-sitemap","version":"3.1.0"},"docusaurus-theme-classic":{"type":"package","name":"@docusaurus/theme-classic","version":"3.1.0"},"docusaurus-theme-search-algolia":{"type":"package","name":"@docusaurus/theme-search-algolia","version":"3.1.0"}}}');var c=n(5893);const u={siteConfig:a.default,siteMetadata:l,globalData:o,i18n:i,codeTranslations:s},d=r.createContext(u);function p(e){let{children:t}=e;return(0,c.jsx)(d.Provider,{value:u,children:t})}},4763:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(412),o=n(5742),i=n(8780),s=n(7372),l=n(5893);function c(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"flex-start",minHeight:"100vh",width:"100%",maxWidth:"80ch",fontSize:"20px",margin:"0 auto",padding:"1rem"},children:[(0,l.jsx)("h1",{style:{fontSize:"3rem"},children:"This page crashed"}),(0,l.jsx)("button",{type:"button",onClick:n,style:{margin:"1rem 0",fontSize:"2rem",cursor:"pointer",borderRadius:20,padding:"1rem"},children:"Try again"}),(0,l.jsx)(u,{error:t})]})}function u(e){let{error:t}=e;const n=(0,i.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,l.jsx)("p",{style:{whiteSpace:"pre-wrap"},children:n})}function d(e){let{error:t,tryAgain:n}=e;return(0,l.jsxs)(f,{fallback:()=>(0,l.jsx)(c,{error:t,tryAgain:n}),children:[(0,l.jsx)(o.Z,{children:(0,l.jsx)("title",{children:"Page Error"})}),(0,l.jsx)(s.Z,{children:(0,l.jsx)(c,{error:t,tryAgain:n})})]})}const p=e=>(0,l.jsx)(d,{...e});class f extends r.Component{constructor(e){super(e),this.state={error:null}}componentDidCatch(e){a.Z.canUseDOM&&this.setState({error:e})}render(){const{children:e}=this.props,{error:t}=this.state;if(t){const e={error:t,tryAgain:()=>this.setState({error:null})};return(this.props.fallback??p)(e)}return e??null}}},412:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r="undefined"!=typeof window&&"document"in window&&"createElement"in window.document,a={canUseDOM:r,canUseEventListeners:r&&("addEventListener"in window||"attachEvent"in window),canUseIntersectionObserver:r&&"IntersectionObserver"in window,canUseViewport:r&&"screen"in window}},5742:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(405),a=n(5893);function o(e){return(0,a.jsx)(r.ql,{...e})}},3692:(e,t,n)=>{"use strict";n.d(t,{Z:()=>f});var r=n(7294),a=n(3727),o=n(8780),i=n(2263),s=n(3919),l=n(412),c=n(8138),u=n(4996),d=n(5893);function p(e,t){let{isNavLink:n,to:p,href:f,activeClassName:m,isActive:g,"data-noBrokenLinkCheck":h,autoAddBaseUrl:b=!0,...v}=e;const{siteConfig:{trailingSlash:y,baseUrl:w}}=(0,i.Z)(),{withBaseUrl:k}=(0,u.C)(),x=(0,c.Z)(),S=(0,r.useRef)(null);(0,r.useImperativeHandle)(t,(()=>S.current));const E=p||f;const _=(0,s.Z)(E),C=E?.replace("pathname://","");let T=void 0!==C?(j=C,b&&(e=>e.startsWith("/"))(j)?k(j):j):void 0;var j;T&&_&&(T=(0,o.applyTrailingSlash)(T,{trailingSlash:y,baseUrl:w}));const A=(0,r.useRef)(!1),L=n?a.OL:a.rU,R=l.Z.canUseIntersectionObserver,N=(0,r.useRef)(),P=()=>{A.current||null==T||(window.docusaurus.preload(T),A.current=!0)};(0,r.useEffect)((()=>(!R&&_&&null!=T&&window.docusaurus.prefetch(T),()=>{R&&N.current&&N.current.disconnect()})),[N,T,R,_]);const O=T?.startsWith("#")??!1,I=!T||!_||O;return I||h||x.collectLink(T),I?(0,d.jsx)("a",{ref:S,href:T,...E&&!_&&{target:"_blank",rel:"noopener noreferrer"},...v}):(0,d.jsx)(L,{...v,onMouseEnter:P,onTouchStart:P,innerRef:e=>{S.current=e,R&&e&&_&&(N.current=new window.IntersectionObserver((t=>{t.forEach((t=>{e===t.target&&(t.isIntersecting||t.intersectionRatio>0)&&(N.current.unobserve(e),N.current.disconnect(),null!=T&&window.docusaurus.prefetch(T))}))})),N.current.observe(e))},to:T,...n&&{isActive:g,activeClassName:m}})}const f=r.forwardRef(p)},5999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c,I:()=>l});var r=n(7294),a=n(5893);function o(e,t){const n=e.split(/(\{\w+\})/).map(((e,n)=>{if(n%2==1){const n=t?.[e.slice(1,-1)];if(void 0!==n)return n}return e}));return n.some((e=>(0,r.isValidElement)(e)))?n.map(((e,t)=>(0,r.isValidElement)(e)?r.cloneElement(e,{key:t}):e)).filter((e=>""!==e)):n.join("")}var i=n(7529);function s(e){let{id:t,message:n}=e;if(void 0===t&&void 0===n)throw new Error("Docusaurus translation declarations must have at least a translation id or a default translation message");return i[t??n]??n??t}function l(e,t){let{message:n,id:r}=e;return o(s({message:n,id:r}),t)}function c(e){let{children:t,id:n,values:r}=e;if(t&&"string"!=typeof t)throw console.warn("Illegal <Translate> children",t),new Error("The Docusaurus <Translate> component only accept simple string values");const i=s({message:t,id:n});return(0,a.jsx)(a.Fragment,{children:o(i,r)})}},9935:(e,t,n)=>{"use strict";n.d(t,{m:()=>r});const r="default"},3919:(e,t,n)=>{"use strict";function r(e){return/^(?:\w*:|\/\/)/.test(e)}function a(e){return void 0!==e&&!r(e)}n.d(t,{Z:()=>a,b:()=>r})},4996:(e,t,n)=>{"use strict";n.d(t,{C:()=>i,Z:()=>s});var r=n(7294),a=n(2263),o=n(3919);function i(){const{siteConfig:{baseUrl:e,url:t}}=(0,a.Z)(),n=(0,r.useCallback)(((n,r)=>function(e,t,n,r){let{forcePrependBaseUrl:a=!1,absolute:i=!1}=void 0===r?{}:r;if(!n||n.startsWith("#")||(0,o.b)(n))return n;if(a)return t+n.replace(/^\//,"");if(n===t.replace(/\/$/,""))return t;const s=n.startsWith(t)?n:t+n.replace(/^\//,"");return i?e+s:s}(t,e,n,r)),[t,e]);return{withBaseUrl:n}}function s(e,t){void 0===t&&(t={});const{withBaseUrl:n}=i();return n(e,t)}},8138:(e,t,n)=>{"use strict";n.d(t,{Z:()=>i});var r=n(7294);n(5893);const a=r.createContext({collectAnchor:()=>{},collectLink:()=>{}}),o=()=>(0,r.useContext)(a);function i(){return o()}},2263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8940);function o(){return(0,r.useContext)(a._)}},2389:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=n(7294),a=n(8934);function o(){return(0,r.useContext)(a._)}},469:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});var r=n(7294);const a=n(412).Z.canUseDOM?r.useLayoutEffect:r.useEffect},9670:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a});const r=e=>"object"==typeof e&&!!e&&Object.keys(e).length>0;function a(e){const t={};return function e(n,a){Object.entries(n).forEach((n=>{let[o,i]=n;const s=a?`${a}.${o}`:o;r(i)?e(i,s):t[s]=i}))}(e),t}},226:(e,t,n)=>{"use strict";n.d(t,{_:()=>o,z:()=>i});var r=n(7294),a=n(5893);const o=r.createContext(null);function i(e){let{children:t,value:n}=e;const i=r.useContext(o),s=(0,r.useMemo)((()=>function(e){let{parent:t,value:n}=e;if(!t){if(!n)throw new Error("Unexpected: no Docusaurus route context found");if(!("plugin"in n))throw new Error("Unexpected: Docusaurus topmost route context has no `plugin` attribute");return n}const r={...t.data,...n?.data};return{plugin:t.plugin,data:r}}({parent:i,value:n})),[i,n]);return(0,a.jsx)(o.Provider,{value:s,children:t})}},143:(e,t,n)=>{"use strict";n.d(t,{Iw:()=>b,gA:()=>f,WS:()=>m,_r:()=>d,Jo:()=>v,zh:()=>p,yW:()=>h,gB:()=>g});var r=n(6550),a=n(2263),o=n(9935);function i(e,t){void 0===t&&(t={});const n=function(){const{globalData:e}=(0,a.Z)();return e}()[e];if(!n&&t.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin.`);return n}const s=e=>e.versions.find((e=>e.isLast));function l(e,t){const n=s(e);return[...e.versions.filter((e=>e!==n)),n].find((e=>!!(0,r.LX)(t,{path:e.path,exact:!1,strict:!1})))}function c(e,t){const n=l(e,t),a=n?.docs.find((e=>!!(0,r.LX)(t,{path:e.path,exact:!0,strict:!1})));return{activeVersion:n,activeDoc:a,alternateDocVersions:a?function(t){const n={};return e.versions.forEach((e=>{e.docs.forEach((r=>{r.id===t&&(n[e.name]=r)}))})),n}(a.id):{}}}const u={},d=()=>i("docusaurus-plugin-content-docs")??u,p=e=>function(e,t,n){void 0===t&&(t=o.m),void 0===n&&(n={});const r=i(e),a=r?.[t];if(!a&&n.failfast)throw new Error(`Docusaurus plugin global data not found for "${e}" plugin with id "${t}".`);return a}("docusaurus-plugin-content-docs",e,{failfast:!0});function f(e){void 0===e&&(e={});const t=d(),{pathname:n}=(0,r.TH)();return function(e,t,n){void 0===n&&(n={});const a=Object.entries(e).sort(((e,t)=>t[1].path.localeCompare(e[1].path))).find((e=>{let[,n]=e;return!!(0,r.LX)(t,{path:n.path,exact:!1,strict:!1})})),o=a?{pluginId:a[0],pluginData:a[1]}:void 0;if(!o&&n.failfast)throw new Error(`Can't find active docs plugin for "${t}" pathname, while it was expected to be found. Maybe you tried to use a docs feature that can only be used on a docs-related page? Existing docs plugin paths are: ${Object.values(e).map((e=>e.path)).join(", ")}`);return o}(t,n,e)}function m(e){void 0===e&&(e={});const t=f(e),{pathname:n}=(0,r.TH)();if(!t)return;return{activePlugin:t,activeVersion:l(t.pluginData,n)}}function g(e){return p(e).versions}function h(e){const t=p(e);return s(t)}function b(e){const t=p(e),{pathname:n}=(0,r.TH)();return c(t,n)}function v(e){const t=p(e),{pathname:n}=(0,r.TH)();return function(e,t){const n=s(e);return{latestDocSuggestion:c(e,t).alternateDocVersions[n.name],latestVersionSuggestion:n}}(t,n)}},8320:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>o});var r=n(4865),a=n.n(r);a().configure({showSpinner:!1});const o={onRouteUpdate(e){let{location:t,previousLocation:n}=e;if(n&&t.pathname!==n.pathname){const e=window.setTimeout((()=>{a().start()}),200);return()=>window.clearTimeout(e)}},onRouteDidUpdate(){a().done()}}},3310:(e,t,n)=>{"use strict";n.r(t);var r=n(2573),a=n(6809);!function(e){const{themeConfig:{prism:t}}=a.default,{additionalLanguages:r}=t;globalThis.Prism=e,r.forEach((e=>{"php"===e&&n(6854),n(6726)(`./prism-${e}`)})),delete globalThis.Prism}(r.p1)},2503:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(512),a=n(5999),o=n(6668),i=n(3692),s=n(8138);const l={anchorWithStickyNavbar:"anchorWithStickyNavbar_LWe7",anchorWithHideOnScrollNavbar:"anchorWithHideOnScrollNavbar_WYt5"};var c=n(5893);function u(e){let{as:t,id:n,...u}=e;const d=(0,s.Z)(),{navbar:{hideOnScroll:p}}=(0,o.L)();if("h1"===t||!n)return(0,c.jsx)(t,{...u,id:void 0});d.collectAnchor(n);const f=(0,a.I)({id:"theme.common.headingLinkTitle",message:"Direct link to {heading}",description:"Title for link to heading"},{heading:"string"==typeof u.children?u.children:n});return(0,c.jsxs)(t,{...u,className:(0,r.Z)("anchor",p?l.anchorWithHideOnScrollNavbar:l.anchorWithStickyNavbar,u.className),id:n,children:[u.children,(0,c.jsx)(i.Z,{className:"hash-link",to:`#${n}`,"aria-label":f,title:f,children:"\u200b"})]})}},9471:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);const r={iconExternalLink:"iconExternalLink_nPIU"};var a=n(5893);function o(e){let{width:t=13.5,height:n=13.5}=e;return(0,a.jsx)("svg",{width:t,height:n,"aria-hidden":"true",viewBox:"0 0 24 24",className:r.iconExternalLink,children:(0,a.jsx)("path",{fill:"currentColor",d:"M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"})})}},7372:(e,t,n)=>{"use strict";n.d(t,{Z:()=>Nt});var r=n(7294),a=n(512),o=n(4763),i=n(833),s=n(6550),l=n(5999),c=n(5936),u=n(5893);const d="__docusaurus_skipToContent_fallback";function p(e){e.setAttribute("tabindex","-1"),e.focus(),e.removeAttribute("tabindex")}function f(){const e=(0,r.useRef)(null),{action:t}=(0,s.k6)(),n=(0,r.useCallback)((e=>{e.preventDefault();const t=document.querySelector("main:first-of-type")??document.getElementById(d);t&&p(t)}),[]);return(0,c.S)((n=>{let{location:r}=n;e.current&&!r.hash&&"PUSH"===t&&p(e.current)})),{containerRef:e,onClick:n}}const m=(0,l.I)({id:"theme.common.skipToMainContent",description:"The skip to content label used for accessibility, allowing to rapidly navigate to main content with keyboard tab/enter navigation",message:"Skip to main content"});function g(e){const t=e.children??m,{containerRef:n,onClick:r}=f();return(0,u.jsx)("div",{ref:n,role:"region","aria-label":m,children:(0,u.jsx)("a",{...e,href:`#${d}`,onClick:r,children:t})})}var h=n(5281),b=n(9727);const v={skipToContent:"skipToContent_fXgn"};function y(){return(0,u.jsx)(g,{className:v.skipToContent})}var w=n(6668),k=n(9689);function x(e){let{width:t=21,height:n=21,color:r="currentColor",strokeWidth:a=1.2,className:o,...i}=e;return(0,u.jsx)("svg",{viewBox:"0 0 15 15",width:t,height:n,...i,children:(0,u.jsx)("g",{stroke:r,strokeWidth:a,children:(0,u.jsx)("path",{d:"M.75.75l13.5 13.5M14.25.75L.75 14.25"})})})}const S={closeButton:"closeButton_CVFx"};function E(e){return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.AnnouncementBar.closeButtonAriaLabel",message:"Close",description:"The ARIA label for close button of announcement bar"}),...e,className:(0,a.Z)("clean-btn close",S.closeButton,e.className),children:(0,u.jsx)(x,{width:14,height:14,strokeWidth:3.1})})}const _={content:"content_knG7"};function C(e){const{announcementBar:t}=(0,w.L)(),{content:n}=t;return(0,u.jsx)("div",{...e,className:(0,a.Z)(_.content,e.className),dangerouslySetInnerHTML:{__html:n}})}const T={announcementBar:"announcementBar_mb4j",announcementBarPlaceholder:"announcementBarPlaceholder_vyr4",announcementBarClose:"announcementBarClose_gvF7",announcementBarContent:"announcementBarContent_xLdY"};function j(){const{announcementBar:e}=(0,w.L)(),{isActive:t,close:n}=(0,k.nT)();if(!t)return null;const{backgroundColor:r,textColor:a,isCloseable:o}=e;return(0,u.jsxs)("div",{className:T.announcementBar,style:{backgroundColor:r,color:a},role:"banner",children:[o&&(0,u.jsx)("div",{className:T.announcementBarPlaceholder}),(0,u.jsx)(C,{className:T.announcementBarContent}),o&&(0,u.jsx)(E,{onClick:n,className:T.announcementBarClose})]})}var A=n(3163),L=n(2466);var R=n(902),N=n(3102);const P=r.createContext(null);function O(e){let{children:t}=e;const n=function(){const e=(0,A.e)(),t=(0,N.HY)(),[n,a]=(0,r.useState)(!1),o=null!==t.component,i=(0,R.D9)(o);return(0,r.useEffect)((()=>{o&&!i&&a(!0)}),[o,i]),(0,r.useEffect)((()=>{o?e.shown||a(!0):a(!1)}),[e.shown,o]),(0,r.useMemo)((()=>[n,a]),[n])}();return(0,u.jsx)(P.Provider,{value:n,children:t})}function I(e){if(e.component){const t=e.component;return(0,u.jsx)(t,{...e.props})}}function D(){const e=(0,r.useContext)(P);if(!e)throw new R.i6("NavbarSecondaryMenuDisplayProvider");const[t,n]=e,a=(0,r.useCallback)((()=>n(!1)),[n]),o=(0,N.HY)();return(0,r.useMemo)((()=>({shown:t,hide:a,content:I(o)})),[a,o,t])}function M(e){let{header:t,primaryMenu:n,secondaryMenu:r}=e;const{shown:o}=D();return(0,u.jsxs)("div",{className:"navbar-sidebar",children:[t,(0,u.jsxs)("div",{className:(0,a.Z)("navbar-sidebar__items",{"navbar-sidebar__items--show-secondary":o}),children:[(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:n}),(0,u.jsx)("div",{className:"navbar-sidebar__item menu",children:r})]})]})}var F=n(2949),z=n(2389);function B(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"})})}function U(e){return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:24,height:24,...e,children:(0,u.jsx)("path",{fill:"currentColor",d:"M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"})})}const $={toggle:"toggle_vylO",toggleButton:"toggleButton_gllP",darkToggleIcon:"darkToggleIcon_wfgR",lightToggleIcon:"lightToggleIcon_pyhR",toggleButtonDisabled:"toggleButtonDisabled_aARS"};function q(e){let{className:t,buttonClassName:n,value:r,onChange:o}=e;const i=(0,z.Z)(),s=(0,l.I)({message:"Switch between dark and light mode (currently {mode})",id:"theme.colorToggle.ariaLabel",description:"The ARIA label for the navbar color mode toggle"},{mode:"dark"===r?(0,l.I)({message:"dark mode",id:"theme.colorToggle.ariaLabel.mode.dark",description:"The name for the dark color mode"}):(0,l.I)({message:"light mode",id:"theme.colorToggle.ariaLabel.mode.light",description:"The name for the light color mode"})});return(0,u.jsx)("div",{className:(0,a.Z)($.toggle,t),children:(0,u.jsxs)("button",{className:(0,a.Z)("clean-btn",$.toggleButton,!i&&$.toggleButtonDisabled,n),type:"button",onClick:()=>o("dark"===r?"light":"dark"),disabled:!i,title:s,"aria-label":s,"aria-live":"polite",children:[(0,u.jsx)(B,{className:(0,a.Z)($.toggleIcon,$.lightToggleIcon)}),(0,u.jsx)(U,{className:(0,a.Z)($.toggleIcon,$.darkToggleIcon)})]})})}const H=r.memo(q),Z={darkNavbarColorModeToggle:"darkNavbarColorModeToggle_X3D1"};function G(e){let{className:t}=e;const n=(0,w.L)().navbar.style,r=(0,w.L)().colorMode.disableSwitch,{colorMode:a,setColorMode:o}=(0,F.I)();return r?null:(0,u.jsx)(H,{className:t,buttonClassName:"dark"===n?Z.darkNavbarColorModeToggle:void 0,value:a,onChange:o})}var V=n(1327);function W(){return(0,u.jsx)(V.Z,{className:"navbar__brand",imageClassName:"navbar__logo",titleClassName:"navbar__title text--truncate"})}function Q(){const e=(0,A.e)();return(0,u.jsx)("button",{type:"button","aria-label":(0,l.I)({id:"theme.docs.sidebar.closeSidebarButtonAriaLabel",message:"Close navigation bar",description:"The ARIA label for close button of mobile sidebar"}),className:"clean-btn navbar-sidebar__close",onClick:()=>e.toggle(),children:(0,u.jsx)(x,{color:"var(--ifm-color-emphasis-600)"})})}function K(){return(0,u.jsxs)("div",{className:"navbar-sidebar__brand",children:[(0,u.jsx)(W,{}),(0,u.jsx)(G,{className:"margin-right--md"}),(0,u.jsx)(Q,{})]})}var Y=n(3692),X=n(4996),J=n(3919),ee=n(8022),te=n(9471);function ne(e){let{activeBasePath:t,activeBaseRegex:n,to:r,href:a,label:o,html:i,isDropdownLink:s,prependBaseUrlToHref:l,...c}=e;const d=(0,X.Z)(r),p=(0,X.Z)(t),f=(0,X.Z)(a,{forcePrependBaseUrl:!0}),m=o&&a&&!(0,J.Z)(a),g=i?{dangerouslySetInnerHTML:{__html:i}}:{children:(0,u.jsxs)(u.Fragment,{children:[o,m&&(0,u.jsx)(te.Z,{...s&&{width:12,height:12}})]})};return a?(0,u.jsx)(Y.Z,{href:l?f:a,...c,...g}):(0,u.jsx)(Y.Z,{to:d,isNavLink:!0,...(t||n)&&{isActive:(e,t)=>n?(0,ee.F)(n,t.pathname):t.pathname.startsWith(p)},...c,...g})}function re(e){let{className:t,isDropdownItem:n=!1,...r}=e;const o=(0,u.jsx)(ne,{className:(0,a.Z)(n?"dropdown__link":"navbar__item navbar__link",t),isDropdownLink:n,...r});return n?(0,u.jsx)("li",{children:o}):o}function ae(e){let{className:t,isDropdownItem:n,...r}=e;return(0,u.jsx)("li",{className:"menu__list-item",children:(0,u.jsx)(ne,{className:(0,a.Z)("menu__link",t),...r})})}function oe(e){let{mobile:t=!1,position:n,...r}=e;const a=t?ae:re;return(0,u.jsx)(a,{...r,activeClassName:r.activeClassName??(t?"menu__link--active":"navbar__link--active")})}var ie=n(6043),se=n(8596),le=n(2263);const ce={dropdownNavbarItemMobile:"dropdownNavbarItemMobile_S0Fm"};function ue(e,t){return e.some((e=>function(e,t){return!!(0,se.Mg)(e.to,t)||!!(0,ee.F)(e.activeBaseRegex,t)||!(!e.activeBasePath||!t.startsWith(e.activeBasePath))}(e,t)))}function de(e){let{items:t,position:n,className:o,onClick:i,...s}=e;const l=(0,r.useRef)(null),[c,d]=(0,r.useState)(!1);return(0,r.useEffect)((()=>{const e=e=>{l.current&&!l.current.contains(e.target)&&d(!1)};return document.addEventListener("mousedown",e),document.addEventListener("touchstart",e),document.addEventListener("focusin",e),()=>{document.removeEventListener("mousedown",e),document.removeEventListener("touchstart",e),document.removeEventListener("focusin",e)}}),[l]),(0,u.jsxs)("div",{ref:l,className:(0,a.Z)("navbar__item","dropdown","dropdown--hoverable",{"dropdown--right":"right"===n,"dropdown--show":c}),children:[(0,u.jsx)(ne,{"aria-haspopup":"true","aria-expanded":c,role:"button",href:s.to?void 0:"#",className:(0,a.Z)("navbar__link",o),...s,onClick:s.to?void 0:e=>e.preventDefault(),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),d(!c))},children:s.children??s.label}),(0,u.jsx)("ul",{className:"dropdown__menu",children:t.map(((e,t)=>(0,r.createElement)(He,{isDropdownItem:!0,activeClassName:"dropdown__link--active",...e,key:t})))})]})}function pe(e){let{items:t,className:n,position:o,onClick:i,...l}=e;const c=function(){const{siteConfig:{baseUrl:e}}=(0,le.Z)(),{pathname:t}=(0,s.TH)();return t.replace(e,"/")}(),d=ue(t,c),{collapsed:p,toggleCollapsed:f,setCollapsed:m}=(0,ie.u)({initialState:()=>!d});return(0,r.useEffect)((()=>{d&&m(!d)}),[c,d,m]),(0,u.jsxs)("li",{className:(0,a.Z)("menu__list-item",{"menu__list-item--collapsed":p}),children:[(0,u.jsx)(ne,{role:"button",className:(0,a.Z)(ce.dropdownNavbarItemMobile,"menu__link menu__link--sublist menu__link--sublist-caret",n),...l,onClick:e=>{e.preventDefault(),f()},children:l.children??l.label}),(0,u.jsx)(ie.z,{lazy:!0,as:"ul",className:"menu__list",collapsed:p,children:t.map(((e,t)=>(0,r.createElement)(He,{mobile:!0,isDropdownItem:!0,onClick:i,activeClassName:"menu__link--active",...e,key:t})))})]})}function fe(e){let{mobile:t=!1,...n}=e;const r=t?pe:de;return(0,u.jsx)(r,{...n})}var me=n(4711);function ge(e){let{width:t=20,height:n=20,...r}=e;return(0,u.jsx)("svg",{viewBox:"0 0 24 24",width:t,height:n,"aria-hidden":!0,...r,children:(0,u.jsx)("path",{fill:"currentColor",d:"M12.87 15.07l-2.54-2.51.03-.03c1.74-1.94 2.98-4.17 3.71-6.53H17V4h-7V2H8v2H1v1.99h11.17C11.5 7.92 10.44 9.75 9 11.35 8.07 10.32 7.3 9.19 6.69 8h-2c.73 1.63 1.73 3.17 2.98 4.56l-5.09 5.02L4 19l5-5 3.11 3.11.76-2.04zM18.5 10h-2L12 22h2l1.12-3h4.75L21 22h2l-4.5-12zm-2.62 7l1.62-4.33L19.12 17h-3.24z"})})}const he="iconLanguage_nlXk";var be=n(3935);function ve(){return r.createElement("svg",{width:"15",height:"15",className:"DocSearch-Control-Key-Icon"},r.createElement("path",{d:"M4.505 4.496h2M5.505 5.496v5M8.216 4.496l.055 5.993M10 7.5c.333.333.5.667.5 1v2M12.326 4.5v5.996M8.384 4.496c1.674 0 2.116 0 2.116 1.5s-.442 1.5-2.116 1.5M3.205 9.303c-.09.448-.277 1.21-1.241 1.203C1 10.5.5 9.513.5 8V7c0-1.57.5-2.5 1.464-2.494.964.006 1.134.598 1.24 1.342M12.553 10.5h1.953",strokeWidth:"1.2",stroke:"currentColor",fill:"none",strokeLinecap:"square"}))}var ye=n(830),we=["translations"];function ke(){return ke=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ke.apply(this,arguments)}function xe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null==n)return;var r,a,o=[],i=!0,s=!1;try{for(n=n.call(e);!(i=(r=n.next()).done)&&(o.push(r.value),!t||o.length!==t);i=!0);}catch(l){s=!0,a=l}finally{try{i||null==n.return||n.return()}finally{if(s)throw a}}return o}(e,t)||function(e,t){if(!e)return;if("string"==typeof e)return Se(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);"Object"===n&&e.constructor&&(n=e.constructor.name);if("Map"===n||"Set"===n)return Array.from(e);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Se(e,t)}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function Se(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Ee(e,t){if(null==e)return{};var n,r,a=function(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}var _e="Ctrl";var Ce=r.forwardRef((function(e,t){var n=e.translations,a=void 0===n?{}:n,o=Ee(e,we),i=a.buttonText,s=void 0===i?"Search":i,l=a.buttonAriaLabel,c=void 0===l?"Search":l,u=xe((0,r.useState)(null),2),d=u[0],p=u[1];return(0,r.useEffect)((function(){"undefined"!=typeof navigator&&(/(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)?p("\u2318"):p(_e))}),[]),r.createElement("button",ke({type:"button",className:"DocSearch DocSearch-Button","aria-label":c},o,{ref:t}),r.createElement("span",{className:"DocSearch-Button-Container"},r.createElement(ye.W,null),r.createElement("span",{className:"DocSearch-Button-Placeholder"},s)),r.createElement("span",{className:"DocSearch-Button-Keys"},null!==d&&r.createElement(r.Fragment,null,r.createElement("kbd",{className:"DocSearch-Button-Key"},d===_e?r.createElement(ve,null):d),r.createElement("kbd",{className:"DocSearch-Button-Key"},"K"))))})),Te=n(5742),je=n(6177),Ae=n(239),Le=n(3320);const Re={button:{buttonText:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"}),buttonAriaLabel:(0,l.I)({id:"theme.SearchBar.label",message:"Search",description:"The ARIA label and placeholder for search button"})},modal:{searchBox:{resetButtonTitle:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),resetButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.resetButtonTitle",message:"Clear the query",description:"The label and ARIA label for search box reset button"}),cancelButtonText:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"}),cancelButtonAriaLabel:(0,l.I)({id:"theme.SearchModal.searchBox.cancelButtonText",message:"Cancel",description:"The label and ARIA label for search box cancel button"})},startScreen:{recentSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.recentSearchesTitle",message:"Recent",description:"The title for recent searches"}),noRecentSearchesText:(0,l.I)({id:"theme.SearchModal.startScreen.noRecentSearchesText",message:"No recent searches",description:"The text when no recent searches"}),saveRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.saveRecentSearchButtonTitle",message:"Save this search",description:"The label for save recent search button"}),removeRecentSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeRecentSearchButtonTitle",message:"Remove this search from history",description:"The label for remove recent search button"}),favoriteSearchesTitle:(0,l.I)({id:"theme.SearchModal.startScreen.favoriteSearchesTitle",message:"Favorite",description:"The title for favorite searches"}),removeFavoriteSearchButtonTitle:(0,l.I)({id:"theme.SearchModal.startScreen.removeFavoriteSearchButtonTitle",message:"Remove this search from favorites",description:"The label for remove favorite search button"})},errorScreen:{titleText:(0,l.I)({id:"theme.SearchModal.errorScreen.titleText",message:"Unable to fetch results",description:"The title for error screen of search modal"}),helpText:(0,l.I)({id:"theme.SearchModal.errorScreen.helpText",message:"You might want to check your network connection.",description:"The help text for error screen of search modal"})},footer:{selectText:(0,l.I)({id:"theme.SearchModal.footer.selectText",message:"to select",description:"The explanatory text of the action for the enter key"}),selectKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.selectKeyAriaLabel",message:"Enter key",description:"The ARIA label for the Enter key button that makes the selection"}),navigateText:(0,l.I)({id:"theme.SearchModal.footer.navigateText",message:"to navigate",description:"The explanatory text of the action for the Arrow up and Arrow down key"}),navigateUpKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateUpKeyAriaLabel",message:"Arrow up",description:"The ARIA label for the Arrow up key button that makes the navigation"}),navigateDownKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.navigateDownKeyAriaLabel",message:"Arrow down",description:"The ARIA label for the Arrow down key button that makes the navigation"}),closeText:(0,l.I)({id:"theme.SearchModal.footer.closeText",message:"to close",description:"The explanatory text of the action for Escape key"}),closeKeyAriaLabel:(0,l.I)({id:"theme.SearchModal.footer.closeKeyAriaLabel",message:"Escape key",description:"The ARIA label for the Escape key button that close the modal"}),searchByText:(0,l.I)({id:"theme.SearchModal.footer.searchByText",message:"Search by",description:"The text explain that the search is making by Algolia"})},noResultsScreen:{noResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.noResultsText",message:"No results for",description:"The text explains that there are no results for the following search"}),suggestedQueryText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.suggestedQueryText",message:"Try searching for",description:"The text for the suggested query when no results are found for the following search"}),reportMissingResultsText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsText",message:"Believe this query should return results?",description:"The text for the question where the user thinks there are missing results"}),reportMissingResultsLinkText:(0,l.I)({id:"theme.SearchModal.noResultsScreen.reportMissingResultsLinkText",message:"Let us know.",description:"The text for the link to report missing results"})}},placeholder:(0,l.I)({id:"theme.SearchModal.placeholder",message:"Search docs",description:"The placeholder of the input of the DocSearch pop-up modal"})};let Ne=null;function Pe(e){let{hit:t,children:n}=e;return(0,u.jsx)(Y.Z,{to:t.url,children:n})}function Oe(e){let{state:t,onClose:n}=e;const r=(0,je.M)();return(0,u.jsx)(Y.Z,{to:r(t.query),onClick:n,children:(0,u.jsx)(l.Z,{id:"theme.SearchBar.seeAll",values:{count:t.context.nbHits},children:"See all {count} results"})})}function Ie(e){let{contextualSearch:t,externalUrlRegex:a,...o}=e;const{siteMetadata:i}=(0,le.Z)(),l=(0,Ae.l)(),c=function(){const{locale:e,tags:t}=(0,Le._q)();return[`language:${e}`,t.map((e=>`docusaurus_tag:${e}`))]}(),d=o.searchParameters?.facetFilters??[],p=t?function(e,t){const n=e=>"string"==typeof e?[e]:e;return[...n(e),...n(t)]}(c,d):d,f={...o.searchParameters,facetFilters:p},m=(0,s.k6)(),g=(0,r.useRef)(null),h=(0,r.useRef)(null),[b,v]=(0,r.useState)(!1),[y,w]=(0,r.useState)(void 0),k=(0,r.useCallback)((()=>Ne?Promise.resolve():Promise.all([n.e(1426).then(n.bind(n,1426)),Promise.all([n.e(532),n.e(6945)]).then(n.bind(n,6945)),Promise.all([n.e(532),n.e(8894)]).then(n.bind(n,8894))]).then((e=>{let[{DocSearchModal:t}]=e;Ne=t}))),[]),x=(0,r.useCallback)((()=>{k().then((()=>{g.current=document.createElement("div"),document.body.insertBefore(g.current,document.body.firstChild),v(!0)}))}),[k,v]),S=(0,r.useCallback)((()=>{v(!1),g.current?.remove()}),[v]),E=(0,r.useCallback)((e=>{k().then((()=>{v(!0),w(e.key)}))}),[k,v,w]),_=(0,r.useRef)({navigate(e){let{itemUrl:t}=e;(0,ee.F)(a,t)?window.location.href=t:m.push(t)}}).current,C=(0,r.useRef)((e=>o.transformItems?o.transformItems(e):e.map((e=>({...e,url:l(e.url)}))))).current,T=(0,r.useMemo)((()=>e=>(0,u.jsx)(Oe,{...e,onClose:S})),[S]),j=(0,r.useCallback)((e=>(e.addAlgoliaAgent("docusaurus",i.docusaurusVersion),e)),[i.docusaurusVersion]);return function(e){var t=e.isOpen,n=e.onOpen,a=e.onClose,o=e.onInput,i=e.searchButtonRef;r.useEffect((function(){function e(e){var r;(27===e.keyCode&&t||"k"===(null===(r=e.key)||void 0===r?void 0:r.toLowerCase())&&(e.metaKey||e.ctrlKey)||!function(e){var t=e.target,n=t.tagName;return t.isContentEditable||"INPUT"===n||"SELECT"===n||"TEXTAREA"===n}(e)&&"/"===e.key&&!t)&&(e.preventDefault(),t?a():document.body.classList.contains("DocSearch--active")||document.body.classList.contains("DocSearch--active")||n()),i&&i.current===document.activeElement&&o&&/[a-zA-Z0-9]/.test(String.fromCharCode(e.keyCode))&&o(e)}return window.addEventListener("keydown",e),function(){window.removeEventListener("keydown",e)}}),[t,n,a,o,i])}({isOpen:b,onOpen:x,onClose:S,onInput:E,searchButtonRef:h}),(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(Te.Z,{children:(0,u.jsx)("link",{rel:"preconnect",href:`https://${o.appId}-dsn.algolia.net`,crossOrigin:"anonymous"})}),(0,u.jsx)(Ce,{onTouchStart:k,onFocus:k,onMouseOver:k,onClick:x,ref:h,translations:Re.button}),b&&Ne&&g.current&&(0,be.createPortal)((0,u.jsx)(Ne,{onClose:S,initialScrollY:window.scrollY,initialQuery:y,navigator:_,transformItems:C,hitComponent:Pe,transformSearchClient:j,...o.searchPagePath&&{resultsFooterComponent:T},...o,searchParameters:f,placeholder:Re.placeholder,translations:Re.modal}),g.current)]})}function De(){const{siteConfig:e}=(0,le.Z)();return(0,u.jsx)(Ie,{...e.themeConfig.algolia})}const Me={navbarSearchContainer:"navbarSearchContainer_Bca1"};function Fe(e){let{children:t,className:n}=e;return(0,u.jsx)("div",{className:(0,a.Z)(n,Me.navbarSearchContainer),children:t})}var ze=n(143),Be=n(2802);var Ue=n(373);const $e=e=>e.docs.find((t=>t.id===e.mainDocId));const qe={default:oe,localeDropdown:function(e){let{mobile:t,dropdownItemsBefore:n,dropdownItemsAfter:r,queryString:a="",...o}=e;const{i18n:{currentLocale:i,locales:c,localeConfigs:d}}=(0,le.Z)(),p=(0,me.l)(),{search:f,hash:m}=(0,s.TH)(),g=[...n,...c.map((e=>{const n=`${`pathname://${p.createUrl({locale:e,fullyQualified:!1})}`}${f}${m}${a}`;return{label:d[e].label,lang:d[e].htmlLang,to:n,target:"_self",autoAddBaseUrl:!1,className:e===i?t?"menu__link--active":"dropdown__link--active":""}})),...r],h=t?(0,l.I)({message:"Languages",id:"theme.navbar.mobileLanguageDropdown.label",description:"The label for the mobile language switcher dropdown"}):d[i].label;return(0,u.jsx)(fe,{...o,mobile:t,label:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(ge,{className:he}),h]}),items:g})},search:function(e){let{mobile:t,className:n}=e;return t?null:(0,u.jsx)(Fe,{className:n,children:(0,u.jsx)(De,{})})},dropdown:fe,html:function(e){let{value:t,className:n,mobile:r=!1,isDropdownItem:o=!1}=e;const i=o?"li":"div";return(0,u.jsx)(i,{className:(0,a.Z)({navbar__item:!r&&!o,"menu__list-item":r},n),dangerouslySetInnerHTML:{__html:t}})},doc:function(e){let{docId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ze.Iw)(r),i=(0,Be.vY)(t,r),s=o?.path===i?.path;return null===i||i.unlisted&&!s?null:(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>s||!!o?.sidebar&&o.sidebar===i.sidebar,label:n??i.id,to:i.path})},docSidebar:function(e){let{sidebarId:t,label:n,docsPluginId:r,...a}=e;const{activeDoc:o}=(0,ze.Iw)(r),i=(0,Be.oz)(t,r).link;if(!i)throw new Error(`DocSidebarNavbarItem: Sidebar with ID "${t}" doesn't have anything to be linked to.`);return(0,u.jsx)(oe,{exact:!0,...a,isActive:()=>o?.sidebar===t,label:n??i.label,to:i.path})},docsVersion:function(e){let{label:t,to:n,docsPluginId:r,...a}=e;const o=(0,Be.lO)(r)[0],i=t??o.label,s=n??(e=>e.docs.find((t=>t.id===e.mainDocId)))(o).path;return(0,u.jsx)(oe,{...a,label:i,to:s})},docsVersionDropdown:function(e){let{mobile:t,docsPluginId:n,dropdownActiveClassDisabled:r,dropdownItemsBefore:a,dropdownItemsAfter:o,...i}=e;const{search:c,hash:d}=(0,s.TH)(),p=(0,ze.Iw)(n),f=(0,ze.gB)(n),{savePreferredVersionName:m}=(0,Ue.J)(n),g=[...a,...f.map((e=>{const t=p.alternateDocVersions[e.name]??$e(e);return{label:e.label,to:`${t.path}${c}${d}`,isActive:()=>e===p.activeVersion,onClick:()=>m(e.name)}})),...o],h=(0,Be.lO)(n)[0],b=t&&g.length>1?(0,l.I)({id:"theme.navbar.mobileVersionsDropdown.label",message:"Versions",description:"The label for the navbar versions dropdown on mobile view"}):h.label,v=t&&g.length>1?void 0:$e(h).path;return g.length<=1?(0,u.jsx)(oe,{...i,mobile:t,label:b,to:v,isActive:r?()=>!1:void 0}):(0,u.jsx)(fe,{...i,mobile:t,label:b,to:v,items:g,isActive:r?()=>!1:void 0})}};function He(e){let{type:t,...n}=e;const r=function(e,t){return e&&"default"!==e?e:"items"in t?"dropdown":"default"}(t,n),a=qe[r];if(!a)throw new Error(`No NavbarItem component found for type "${t}".`);return(0,u.jsx)(a,{...n})}function Ze(){const e=(0,A.e)(),t=(0,w.L)().navbar.items;return(0,u.jsx)("ul",{className:"menu__list",children:t.map(((t,n)=>(0,r.createElement)(He,{mobile:!0,...t,onClick:()=>e.toggle(),key:n})))})}function Ge(e){return(0,u.jsx)("button",{...e,type:"button",className:"clean-btn navbar-sidebar__back",children:(0,u.jsx)(l.Z,{id:"theme.navbar.mobileSidebarSecondaryMenu.backButtonLabel",description:"The label of the back button to return to main menu, inside the mobile navbar sidebar secondary menu (notably used to display the docs sidebar)",children:"\u2190 Back to main menu"})})}function Ve(){const e=0===(0,w.L)().navbar.items.length,t=D();return(0,u.jsxs)(u.Fragment,{children:[!e&&(0,u.jsx)(Ge,{onClick:()=>t.hide()}),t.content]})}function We(){const e=(0,A.e)();var t;return void 0===(t=e.shown)&&(t=!0),(0,r.useEffect)((()=>(document.body.style.overflow=t?"hidden":"visible",()=>{document.body.style.overflow="visible"})),[t]),e.shouldRender?(0,u.jsx)(M,{header:(0,u.jsx)(K,{}),primaryMenu:(0,u.jsx)(Ze,{}),secondaryMenu:(0,u.jsx)(Ve,{})}):null}const Qe={navbarHideable:"navbarHideable_m1mJ",navbarHidden:"navbarHidden_jGov"};function Ke(e){return(0,u.jsx)("div",{role:"presentation",...e,className:(0,a.Z)("navbar-sidebar__backdrop",e.className)})}function Ye(e){let{children:t}=e;const{navbar:{hideOnScroll:n,style:o}}=(0,w.L)(),i=(0,A.e)(),{navbarRef:s,isNavbarVisible:d}=function(e){const[t,n]=(0,r.useState)(e),a=(0,r.useRef)(!1),o=(0,r.useRef)(0),i=(0,r.useCallback)((e=>{null!==e&&(o.current=e.getBoundingClientRect().height)}),[]);return(0,L.RF)(((t,r)=>{let{scrollY:i}=t;if(!e)return;if(i<o.current)return void n(!0);if(a.current)return void(a.current=!1);const s=r?.scrollY,l=document.documentElement.scrollHeight-o.current,c=window.innerHeight;s&&i>=s?n(!1):i+c<l&&n(!0)})),(0,c.S)((t=>{if(!e)return;const r=t.location.hash;if(r?document.getElementById(r.substring(1)):void 0)return a.current=!0,void n(!1);n(!0)})),{navbarRef:i,isNavbarVisible:t}}(n);return(0,u.jsxs)("nav",{ref:s,"aria-label":(0,l.I)({id:"theme.NavBar.navAriaLabel",message:"Main",description:"The ARIA label for the main navigation"}),className:(0,a.Z)("navbar","navbar--fixed-top",n&&[Qe.navbarHideable,!d&&Qe.navbarHidden],{"navbar--dark":"dark"===o,"navbar--primary":"primary"===o,"navbar-sidebar--show":i.shown}),children:[t,(0,u.jsx)(Ke,{onClick:i.toggle}),(0,u.jsx)(We,{})]})}var Xe=n(8780);const Je={errorBoundaryError:"errorBoundaryError_a6uf",errorBoundaryFallback:"errorBoundaryFallback_VBag"};function et(e){return(0,u.jsx)("button",{type:"button",...e,children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.tryAgain",description:"The label of the button to try again rendering when the React error boundary captures an error",children:"Try again"})})}function tt(e){let{error:t}=e;const n=(0,Xe.getErrorCausalChain)(t).map((e=>e.message)).join("\n\nCause:\n");return(0,u.jsx)("p",{className:Je.errorBoundaryError,children:n})}class nt extends r.Component{componentDidCatch(e,t){throw this.props.onError(e,t)}render(){return this.props.children}}const rt="right";function at(e){let{width:t=30,height:n=30,className:r,...a}=e;return(0,u.jsx)("svg",{className:r,width:t,height:n,viewBox:"0 0 30 30","aria-hidden":"true",...a,children:(0,u.jsx)("path",{stroke:"currentColor",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"2",d:"M4 7h22M4 15h22M4 23h22"})})}function ot(){const{toggle:e,shown:t}=(0,A.e)();return(0,u.jsx)("button",{onClick:e,"aria-label":(0,l.I)({id:"theme.docs.sidebar.toggleSidebarButtonAriaLabel",message:"Toggle navigation bar",description:"The ARIA label for hamburger menu button of mobile navigation"}),"aria-expanded":t,className:"navbar__toggle clean-btn",type:"button",children:(0,u.jsx)(at,{})})}const it={colorModeToggle:"colorModeToggle_DEke"};function st(e){let{items:t}=e;return(0,u.jsx)(u.Fragment,{children:t.map(((e,t)=>(0,u.jsx)(nt,{onError:t=>new Error(`A theme navbar item failed to render.\nPlease double-check the following navbar item (themeConfig.navbar.items) of your Docusaurus config:\n${JSON.stringify(e,null,2)}`,{cause:t}),children:(0,u.jsx)(He,{...e})},t)))})}function lt(e){let{left:t,right:n}=e;return(0,u.jsxs)("div",{className:"navbar__inner",children:[(0,u.jsx)("div",{className:"navbar__items",children:t}),(0,u.jsx)("div",{className:"navbar__items navbar__items--right",children:n})]})}function ct(){const e=(0,A.e)(),t=(0,w.L)().navbar.items,[n,r]=function(e){function t(e){return"left"===(e.position??rt)}return[e.filter(t),e.filter((e=>!t(e)))]}(t),a=t.find((e=>"search"===e.type));return(0,u.jsx)(lt,{left:(0,u.jsxs)(u.Fragment,{children:[!e.disabled&&(0,u.jsx)(ot,{}),(0,u.jsx)(W,{}),(0,u.jsx)(st,{items:n})]}),right:(0,u.jsxs)(u.Fragment,{children:[(0,u.jsx)(st,{items:r}),(0,u.jsx)(G,{className:it.colorModeToggle}),!a&&(0,u.jsx)(Fe,{children:(0,u.jsx)(De,{})})]})})}function ut(){return(0,u.jsx)(Ye,{children:(0,u.jsx)(ct,{})})}function dt(e){let{item:t}=e;const{to:n,href:r,label:a,prependBaseUrlToHref:o,...i}=t,s=(0,X.Z)(n),l=(0,X.Z)(r,{forcePrependBaseUrl:!0});return(0,u.jsxs)(Y.Z,{className:"footer__link-item",...r?{href:o?l:r}:{to:s},...i,children:[a,r&&!(0,J.Z)(r)&&(0,u.jsx)(te.Z,{})]})}function pt(e){let{item:t}=e;return t.html?(0,u.jsx)("li",{className:"footer__item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)("li",{className:"footer__item",children:(0,u.jsx)(dt,{item:t})},t.href??t.to)}function ft(e){let{column:t}=e;return(0,u.jsxs)("div",{className:"col footer__col",children:[(0,u.jsx)("div",{className:"footer__title",children:t.title}),(0,u.jsx)("ul",{className:"footer__items clean-list",children:t.items.map(((e,t)=>(0,u.jsx)(pt,{item:e},t)))})]})}function mt(e){let{columns:t}=e;return(0,u.jsx)("div",{className:"row footer__links",children:t.map(((e,t)=>(0,u.jsx)(ft,{column:e},t)))})}function gt(){return(0,u.jsx)("span",{className:"footer__link-separator",children:"\xb7"})}function ht(e){let{item:t}=e;return t.html?(0,u.jsx)("span",{className:"footer__link-item",dangerouslySetInnerHTML:{__html:t.html}}):(0,u.jsx)(dt,{item:t})}function bt(e){let{links:t}=e;return(0,u.jsx)("div",{className:"footer__links text--center",children:(0,u.jsx)("div",{className:"footer__links",children:t.map(((e,n)=>(0,u.jsxs)(r.Fragment,{children:[(0,u.jsx)(ht,{item:e}),t.length!==n+1&&(0,u.jsx)(gt,{})]},n)))})})}function vt(e){let{links:t}=e;return function(e){return"title"in e[0]}(t)?(0,u.jsx)(mt,{columns:t}):(0,u.jsx)(bt,{links:t})}var yt=n(9965);const wt={footerLogoLink:"footerLogoLink_BH7S"};function kt(e){let{logo:t}=e;const{withBaseUrl:n}=(0,X.C)(),r={light:n(t.src),dark:n(t.srcDark??t.src)};return(0,u.jsx)(yt.Z,{className:(0,a.Z)("footer__logo",t.className),alt:t.alt,sources:r,width:t.width,height:t.height,style:t.style})}function xt(e){let{logo:t}=e;return t.href?(0,u.jsx)(Y.Z,{href:t.href,className:wt.footerLogoLink,target:t.target,children:(0,u.jsx)(kt,{logo:t})}):(0,u.jsx)(kt,{logo:t})}function St(e){let{copyright:t}=e;return(0,u.jsx)("div",{className:"footer__copyright",dangerouslySetInnerHTML:{__html:t}})}function Et(e){let{style:t,links:n,logo:r,copyright:o}=e;return(0,u.jsx)("footer",{className:(0,a.Z)("footer",{"footer--dark":"dark"===t}),children:(0,u.jsxs)("div",{className:"container container-fluid",children:[n,(r||o)&&(0,u.jsxs)("div",{className:"footer__bottom text--center",children:[r&&(0,u.jsx)("div",{className:"margin-bottom--sm",children:r}),o]})]})})}function _t(){const{footer:e}=(0,w.L)();if(!e)return null;const{copyright:t,links:n,logo:r,style:a}=e;return(0,u.jsx)(Et,{style:a,links:n&&n.length>0&&(0,u.jsx)(vt,{links:n}),logo:r&&(0,u.jsx)(xt,{logo:r}),copyright:t&&(0,u.jsx)(St,{copyright:t})})}const Ct=r.memo(_t),Tt=(0,R.Qc)([F.S,k.pl,L.OC,Ue.L5,i.VC,function(e){let{children:t}=e;return(0,u.jsx)(N.n2,{children:(0,u.jsx)(A.M,{children:(0,u.jsx)(O,{children:t})})})}]);function jt(e){let{children:t}=e;return(0,u.jsx)(Tt,{children:t})}var At=n(2503);function Lt(e){let{error:t,tryAgain:n}=e;return(0,u.jsx)("main",{className:"container margin-vert--xl",children:(0,u.jsx)("div",{className:"row",children:(0,u.jsxs)("div",{className:"col col--6 col--offset-3",children:[(0,u.jsx)(At.Z,{as:"h1",className:"hero__title",children:(0,u.jsx)(l.Z,{id:"theme.ErrorPageContent.title",description:"The title of the fallback page when the page crashed",children:"This page crashed."})}),(0,u.jsx)("div",{className:"margin-vert--lg",children:(0,u.jsx)(et,{onClick:n,className:"button button--primary shadow--lw"})}),(0,u.jsx)("hr",{}),(0,u.jsx)("div",{className:"margin-vert--md",children:(0,u.jsx)(tt,{error:t})})]})})})}const Rt={mainWrapper:"mainWrapper_z2l0"};function Nt(e){const{children:t,noFooter:n,wrapperClassName:r,title:s,description:l}=e;return(0,b.t)(),(0,u.jsxs)(jt,{children:[(0,u.jsx)(i.d,{title:s,description:l}),(0,u.jsx)(y,{}),(0,u.jsx)(j,{}),(0,u.jsx)(ut,{}),(0,u.jsx)("div",{id:d,className:(0,a.Z)(h.k.wrapper.main,Rt.mainWrapper,r),children:(0,u.jsx)(o.Z,{fallback:e=>(0,u.jsx)(Lt,{...e}),children:t})}),!n&&(0,u.jsx)(Ct,{})]})}},1327:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});n(7294);var r=n(3692),a=n(4996),o=n(2263),i=n(6668),s=n(9965),l=n(5893);function c(e){let{logo:t,alt:n,imageClassName:r}=e;const o={light:(0,a.Z)(t.src),dark:(0,a.Z)(t.srcDark||t.src)},i=(0,l.jsx)(s.Z,{className:t.className,sources:o,height:t.height,width:t.width,alt:n,style:t.style});return r?(0,l.jsx)("div",{className:r,children:i}):i}function u(e){const{siteConfig:{title:t}}=(0,o.Z)(),{navbar:{title:n,logo:s}}=(0,i.L)(),{imageClassName:u,titleClassName:d,...p}=e,f=(0,a.Z)(s?.href||"/"),m=n?"":t,g=s?.alt??m;return(0,l.jsxs)(r.Z,{to:f,...p,...s?.target&&{target:s.target},children:[s&&(0,l.jsx)(c,{logo:s,alt:g,imageClassName:u}),null!=n&&(0,l.jsx)("b",{className:d,children:n})]})}},197:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});n(7294);var r=n(5742),a=n(5893);function o(e){let{locale:t,version:n,tag:o}=e;const i=t;return(0,a.jsxs)(r.Z,{children:[t&&(0,a.jsx)("meta",{name:"docusaurus_locale",content:t}),n&&(0,a.jsx)("meta",{name:"docusaurus_version",content:n}),o&&(0,a.jsx)("meta",{name:"docusaurus_tag",content:o}),i&&(0,a.jsx)("meta",{name:"docsearch:language",content:i}),n&&(0,a.jsx)("meta",{name:"docsearch:version",content:n}),o&&(0,a.jsx)("meta",{name:"docsearch:docusaurus_tag",content:o})]})}},9965:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(7294),a=n(512),o=n(2389),i=n(2949);const s={themedComponent:"themedComponent_mlkZ","themedComponent--light":"themedComponent--light_NVdE","themedComponent--dark":"themedComponent--dark_xIcU"};var l=n(5893);function c(e){let{className:t,children:n}=e;const c=(0,o.Z)(),{colorMode:u}=(0,i.I)();return(0,l.jsx)(l.Fragment,{children:(c?"dark"===u?["dark"]:["light"]:["light","dark"]).map((e=>{const o=n({theme:e,className:(0,a.Z)(t,s.themedComponent,s[`themedComponent--${e}`])});return(0,l.jsx)(r.Fragment,{children:o},e)}))})}function u(e){const{sources:t,className:n,alt:r,...a}=e;return(0,l.jsx)(c,{className:n,children:e=>{let{theme:n,className:o}=e;return(0,l.jsx)("img",{src:t[n],alt:r,className:o,...a})}})}},6043:(e,t,n)=>{"use strict";n.d(t,{u:()=>c,z:()=>b});var r=n(7294),a=n(412),o=n(469),i=n(1442),s=n(5893);const l="ease-in-out";function c(e){let{initialState:t}=e;const[n,a]=(0,r.useState)(t??!1),o=(0,r.useCallback)((()=>{a((e=>!e))}),[]);return{collapsed:n,setCollapsed:a,toggleCollapsed:o}}const u={display:"none",overflow:"hidden",height:"0px"},d={display:"block",overflow:"visible",height:"auto"};function p(e,t){const n=t?u:d;e.style.display=n.display,e.style.overflow=n.overflow,e.style.height=n.height}function f(e){let{collapsibleRef:t,collapsed:n,animation:a}=e;const o=(0,r.useRef)(!1);(0,r.useEffect)((()=>{const e=t.current;function r(){const t=e.scrollHeight,n=a?.duration??function(e){if((0,i.n)())return 1;const t=e/36;return Math.round(10*(4+15*t**.25+t/5))}(t);return{transition:`height ${n}ms ${a?.easing??l}`,height:`${t}px`}}function s(){const t=r();e.style.transition=t.transition,e.style.height=t.height}if(!o.current)return p(e,n),void(o.current=!0);return e.style.willChange="height",function(){const t=requestAnimationFrame((()=>{n?(s(),requestAnimationFrame((()=>{e.style.height=u.height,e.style.overflow=u.overflow}))):(e.style.display="block",requestAnimationFrame((()=>{s()})))}));return()=>cancelAnimationFrame(t)}()}),[t,n,a])}function m(e){if(!a.Z.canUseDOM)return e?u:d}function g(e){let{as:t="div",collapsed:n,children:a,animation:o,onCollapseTransitionEnd:i,className:l,disableSSRStyle:c}=e;const u=(0,r.useRef)(null);return f({collapsibleRef:u,collapsed:n,animation:o}),(0,s.jsx)(t,{ref:u,style:c?void 0:m(n),onTransitionEnd:e=>{"height"===e.propertyName&&(p(u.current,n),i?.(n))},className:l,children:a})}function h(e){let{collapsed:t,...n}=e;const[a,i]=(0,r.useState)(!t),[l,c]=(0,r.useState)(t);return(0,o.Z)((()=>{t||i(!0)}),[t]),(0,o.Z)((()=>{a&&c(t)}),[a,t]),a?(0,s.jsx)(g,{...n,collapsed:l}):null}function b(e){let{lazy:t,...n}=e;const r=t?h:g;return(0,s.jsx)(r,{...n})}},9689:(e,t,n)=>{"use strict";n.d(t,{nT:()=>g,pl:()=>m});var r=n(7294),a=n(2389),o=n(12),i=n(902),s=n(6668),l=n(5893);const c=(0,o.WA)("docusaurus.announcement.dismiss"),u=(0,o.WA)("docusaurus.announcement.id"),d=()=>"true"===c.get(),p=e=>c.set(String(e)),f=r.createContext(null);function m(e){let{children:t}=e;const n=function(){const{announcementBar:e}=(0,s.L)(),t=(0,a.Z)(),[n,o]=(0,r.useState)((()=>!!t&&d()));(0,r.useEffect)((()=>{o(d())}),[]);const i=(0,r.useCallback)((()=>{p(!0),o(!0)}),[]);return(0,r.useEffect)((()=>{if(!e)return;const{id:t}=e;let n=u.get();"annoucement-bar"===n&&(n="announcement-bar");const r=t!==n;u.set(t),r&&p(!1),!r&&d()||o(!1)}),[e]),(0,r.useMemo)((()=>({isActive:!!e&&!n,close:i})),[e,n,i])}();return(0,l.jsx)(f.Provider,{value:n,children:t})}function g(){const e=(0,r.useContext)(f);if(!e)throw new i.i6("AnnouncementBarProvider");return e}},2949:(e,t,n)=>{"use strict";n.d(t,{I:()=>b,S:()=>h});var r=n(7294),a=n(412),o=n(902),i=n(12),s=n(6668),l=n(5893);const c=r.createContext(void 0),u="theme",d=(0,i.WA)(u),p={light:"light",dark:"dark"},f=e=>e===p.dark?p.dark:p.light,m=e=>a.Z.canUseDOM?f(document.documentElement.getAttribute("data-theme")):f(e),g=e=>{d.set(f(e))};function h(e){let{children:t}=e;const n=function(){const{colorMode:{defaultMode:e,disableSwitch:t,respectPrefersColorScheme:n}}=(0,s.L)(),[a,o]=(0,r.useState)(m(e));(0,r.useEffect)((()=>{t&&d.del()}),[t]);const i=(0,r.useCallback)((function(t,r){void 0===r&&(r={});const{persist:a=!0}=r;t?(o(t),a&&g(t)):(o(n?window.matchMedia("(prefers-color-scheme: dark)").matches?p.dark:p.light:e),d.del())}),[n,e]);(0,r.useEffect)((()=>{document.documentElement.setAttribute("data-theme",f(a))}),[a]),(0,r.useEffect)((()=>{if(t)return;const e=e=>{if(e.key!==u)return;const t=d.get();null!==t&&i(f(t))};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)}),[t,i]);const l=(0,r.useRef)(!1);return(0,r.useEffect)((()=>{if(t&&!n)return;const e=window.matchMedia("(prefers-color-scheme: dark)"),r=()=>{window.matchMedia("print").matches||l.current?l.current=window.matchMedia("print").matches:i(null)};return e.addListener(r),()=>e.removeListener(r)}),[i,t,n]),(0,r.useMemo)((()=>({colorMode:a,setColorMode:i,get isDarkTheme(){return a===p.dark},setLightTheme(){i(p.light)},setDarkTheme(){i(p.dark)}})),[a,i])}();return(0,l.jsx)(c.Provider,{value:n,children:t})}function b(){const e=(0,r.useContext)(c);if(null==e)throw new o.i6("ColorModeProvider","Please see https://docusaurus.io/docs/api/themes/configuration#use-color-mode.");return e}},373:(e,t,n)=>{"use strict";n.d(t,{J:()=>y,L5:()=>b,Oh:()=>w});var r=n(7294),a=n(143),o=n(9935),i=n(6668),s=n(2802),l=n(902),c=n(12),u=n(5893);const d=e=>`docs-preferred-version-${e}`,p={save:(e,t,n)=>{(0,c.WA)(d(e),{persistence:t}).set(n)},read:(e,t)=>(0,c.WA)(d(e),{persistence:t}).get(),clear:(e,t)=>{(0,c.WA)(d(e),{persistence:t}).del()}},f=e=>Object.fromEntries(e.map((e=>[e,{preferredVersionName:null}])));const m=r.createContext(null);function g(){const e=(0,a._r)(),t=(0,i.L)().docs.versionPersistence,n=(0,r.useMemo)((()=>Object.keys(e)),[e]),[o,s]=(0,r.useState)((()=>f(n)));(0,r.useEffect)((()=>{s(function(e){let{pluginIds:t,versionPersistence:n,allDocsData:r}=e;function a(e){const t=p.read(e,n);return r[e].versions.some((e=>e.name===t))?{preferredVersionName:t}:(p.clear(e,n),{preferredVersionName:null})}return Object.fromEntries(t.map((e=>[e,a(e)])))}({allDocsData:e,versionPersistence:t,pluginIds:n}))}),[e,t,n]);return[o,(0,r.useMemo)((()=>({savePreferredVersion:function(e,n){p.save(e,t,n),s((t=>({...t,[e]:{preferredVersionName:n}})))}})),[t])]}function h(e){let{children:t}=e;const n=g();return(0,u.jsx)(m.Provider,{value:n,children:t})}function b(e){let{children:t}=e;return s.cE?(0,u.jsx)(h,{children:t}):(0,u.jsx)(u.Fragment,{children:t})}function v(){const e=(0,r.useContext)(m);if(!e)throw new l.i6("DocsPreferredVersionContextProvider");return e}function y(e){void 0===e&&(e=o.m);const t=(0,a.zh)(e),[n,i]=v(),{preferredVersionName:s}=n[e];return{preferredVersion:t.versions.find((e=>e.name===s))??null,savePreferredVersionName:(0,r.useCallback)((t=>{i.savePreferredVersion(e,t)}),[i,e])}}function w(){const e=(0,a._r)(),[t]=v();function n(n){const r=e[n],{preferredVersionName:a}=t[n];return r.versions.find((e=>e.name===a))??null}const r=Object.keys(e);return Object.fromEntries(r.map((e=>[e,n(e)])))}},1116:(e,t,n)=>{"use strict";n.d(t,{V:()=>c,b:()=>l});var r=n(7294),a=n(902),o=n(5893);const i=Symbol("EmptyContext"),s=r.createContext(i);function l(e){let{children:t,name:n,items:a}=e;const i=(0,r.useMemo)((()=>n&&a?{name:n,items:a}:null),[n,a]);return(0,o.jsx)(s.Provider,{value:i,children:t})}function c(){const e=(0,r.useContext)(s);if(e===i)throw new a.i6("DocsSidebarProvider");return e}},4477:(e,t,n)=>{"use strict";n.d(t,{E:()=>l,q:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t,version:n}=e;return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(null===e)throw new a.i6("DocsVersionProvider");return e}},3163:(e,t,n)=>{"use strict";n.d(t,{M:()=>p,e:()=>f});var r=n(7294),a=n(3102),o=n(7524),i=n(1980),s=n(6668),l=n(902),c=n(5893);const u=r.createContext(void 0);function d(){const e=function(){const e=(0,a.HY)(),{items:t}=(0,s.L)().navbar;return 0===t.length&&!e.component}(),t=(0,o.i)(),n=!e&&"mobile"===t,[l,c]=(0,r.useState)(!1);(0,i.Rb)((()=>{if(l)return c(!1),!1}));const u=(0,r.useCallback)((()=>{c((e=>!e))}),[]);return(0,r.useEffect)((()=>{"desktop"===t&&c(!1)}),[t]),(0,r.useMemo)((()=>({disabled:e,shouldRender:n,toggle:u,shown:l})),[e,n,u,l])}function p(e){let{children:t}=e;const n=d();return(0,c.jsx)(u.Provider,{value:n,children:t})}function f(){const e=r.useContext(u);if(void 0===e)throw new l.i6("NavbarMobileSidebarProvider");return e}},3102:(e,t,n)=>{"use strict";n.d(t,{HY:()=>l,Zo:()=>c,n2:()=>s});var r=n(7294),a=n(902),o=n(5893);const i=r.createContext(null);function s(e){let{children:t}=e;const n=(0,r.useState)({component:null,props:null});return(0,o.jsx)(i.Provider,{value:n,children:t})}function l(){const e=(0,r.useContext)(i);if(!e)throw new a.i6("NavbarSecondaryMenuContentProvider");return e[0]}function c(e){let{component:t,props:n}=e;const o=(0,r.useContext)(i);if(!o)throw new a.i6("NavbarSecondaryMenuContentProvider");const[,s]=o,l=(0,a.Ql)(n);return(0,r.useEffect)((()=>{s({component:t,props:l})}),[s,t,l]),(0,r.useEffect)((()=>()=>s({component:null,props:null})),[s]),null}},9727:(e,t,n)=>{"use strict";n.d(t,{h:()=>a,t:()=>o});var r=n(7294);const a="navigation-with-keyboard";function o(){(0,r.useEffect)((()=>{function e(e){"keydown"===e.type&&"Tab"===e.key&&document.body.classList.add(a),"mousedown"===e.type&&document.body.classList.remove(a)}return document.addEventListener("keydown",e),document.addEventListener("mousedown",e),()=>{document.body.classList.remove(a),document.removeEventListener("keydown",e),document.removeEventListener("mousedown",e)}}),[])}},6177:(e,t,n)=>{"use strict";n.d(t,{K:()=>s,M:()=>l});var r=n(7294),a=n(2263),o=n(1980);const i="q";function s(){return(0,o.Nc)(i)}function l(){const{siteConfig:{baseUrl:e,themeConfig:t}}=(0,a.Z)(),{algolia:{searchPagePath:n}}=t;return(0,r.useCallback)((t=>`${e}${n}?${i}=${encodeURIComponent(t)}`),[e,n])}},7524:(e,t,n)=>{"use strict";n.d(t,{i:()=>s});var r=n(7294),a=n(412);const o={desktop:"desktop",mobile:"mobile",ssr:"ssr"},i=996;function s(e){let{desktopBreakpoint:t=i}=void 0===e?{}:e;const[n,s]=(0,r.useState)((()=>"ssr"));return(0,r.useEffect)((()=>{function e(){s(function(e){if(!a.Z.canUseDOM)throw new Error("getWindowSize() should only be called after React hydration");return window.innerWidth>e?o.desktop:o.mobile}(t))}return e(),window.addEventListener("resize",e),()=>{window.removeEventListener("resize",e)}}),[t]),n}},5281:(e,t,n)=>{"use strict";n.d(t,{k:()=>r});const r={page:{blogListPage:"blog-list-page",blogPostPage:"blog-post-page",blogTagsListPage:"blog-tags-list-page",blogTagPostListPage:"blog-tags-post-list-page",docsDocPage:"docs-doc-page",docsTagsListPage:"docs-tags-list-page",docsTagDocListPage:"docs-tags-doc-list-page",mdxPage:"mdx-page"},wrapper:{main:"main-wrapper",blogPages:"blog-wrapper",docsPages:"docs-wrapper",mdxPages:"mdx-wrapper"},common:{editThisPage:"theme-edit-this-page",lastUpdated:"theme-last-updated",backToTopButton:"theme-back-to-top-button",codeBlock:"theme-code-block",admonition:"theme-admonition",unlistedBanner:"theme-unlisted-banner",admonitionType:e=>`theme-admonition-${e}`},layout:{},docs:{docVersionBanner:"theme-doc-version-banner",docVersionBadge:"theme-doc-version-badge",docBreadcrumbs:"theme-doc-breadcrumbs",docMarkdown:"theme-doc-markdown",docTocMobile:"theme-doc-toc-mobile",docTocDesktop:"theme-doc-toc-desktop",docFooter:"theme-doc-footer",docFooterTagsRow:"theme-doc-footer-tags-row",docFooterEditMetaRow:"theme-doc-footer-edit-meta-row",docSidebarContainer:"theme-doc-sidebar-container",docSidebarMenu:"theme-doc-sidebar-menu",docSidebarItemCategory:"theme-doc-sidebar-item-category",docSidebarItemLink:"theme-doc-sidebar-item-link",docSidebarItemCategoryLevel:e=>`theme-doc-sidebar-item-category-level-${e}`,docSidebarItemLinkLevel:e=>`theme-doc-sidebar-item-link-level-${e}`},blog:{}}},1442:(e,t,n)=>{"use strict";function r(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}n.d(t,{n:()=>r})},2802:(e,t,n)=>{"use strict";n.d(t,{LM:()=>f,_F:()=>h,cE:()=>p,SN:()=>E,lO:()=>k,vY:()=>S,oz:()=>x,s1:()=>w,f:()=>v});var r=n(7294),a=n(6550),o=n(8790),i=n(143),s=n(373),l=n(4477),c=n(1116);function u(e){return Array.from(new Set(e))}var d=n(8596);const p=!!i._r;function f(e){return"link"!==e.type||e.unlisted?"category"===e.type?function(e){if(e.href&&!e.linkUnlisted)return e.href;for(const t of e.items){const e=f(t);if(e)return e}}(e):void 0:e.href}const m=(e,t)=>void 0!==e&&(0,d.Mg)(e,t),g=(e,t)=>e.some((e=>h(e,t)));function h(e,t){return"link"===e.type?m(e.href,t):"category"===e.type&&(m(e.href,t)||g(e.items,t))}function b(e,t){switch(e.type){case"category":return h(e,t)||e.items.some((e=>b(e,t)));case"link":return!e.unlisted||h(e,t);default:return!0}}function v(e,t){return(0,r.useMemo)((()=>e.filter((e=>b(e,t)))),[e,t])}function y(e){let{sidebarItems:t,pathname:n,onlyCategories:r=!1}=e;const a=[];return function e(t){for(const o of t)if("category"===o.type&&((0,d.Mg)(o.href,n)||e(o.items))||"link"===o.type&&(0,d.Mg)(o.href,n)){return r&&"category"!==o.type||a.unshift(o),!0}return!1}(t),a}function w(){const e=(0,c.V)(),{pathname:t}=(0,a.TH)(),n=(0,i.gA)()?.pluginData.breadcrumbs;return!1!==n&&e?y({sidebarItems:e.items,pathname:t}):null}function k(e){const{activeVersion:t}=(0,i.Iw)(e),{preferredVersion:n}=(0,s.J)(e),a=(0,i.yW)(e);return(0,r.useMemo)((()=>u([t,n,a].filter(Boolean))),[t,n,a])}function x(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.sidebars?Object.entries(e.sidebars):[])),r=t.find((t=>t[0]===e));if(!r)throw new Error(`Can't find any sidebar with id "${e}" in version${n.length>1?"s":""} ${n.map((e=>e.name)).join(", ")}".\nAvailable sidebar ids are:\n- ${t.map((e=>e[0])).join("\n- ")}`);return r[1]}),[e,n])}function S(e,t){const n=k(t);return(0,r.useMemo)((()=>{const t=n.flatMap((e=>e.docs)),r=t.find((t=>t.id===e));if(!r){if(n.flatMap((e=>e.draftIds)).includes(e))return null;throw new Error(`Couldn't find any doc with id "${e}" in version${n.length>1?"s":""} "${n.map((e=>e.name)).join(", ")}".\nAvailable doc ids are:\n- ${u(t.map((e=>e.id))).join("\n- ")}`)}return r}),[e,n])}function E(e){let{route:t}=e;const n=(0,a.TH)(),r=(0,l.E)(),i=t.routes,s=i.find((e=>(0,a.LX)(n.pathname,e)));if(!s)return null;const c=s.sidebar,u=c?r.docsSidebars[c]:void 0;return{docElement:(0,o.H)(i),sidebarName:c,sidebarItems:u}}},2128:(e,t,n)=>{"use strict";n.d(t,{p:()=>a});var r=n(2263);function a(e){const{siteConfig:t}=(0,r.Z)(),{title:n,titleDelimiter:a}=t;return e?.trim().length?`${e.trim()} ${a} ${n}`:n}},1980:(e,t,n)=>{"use strict";n.d(t,{Nc:()=>l,Rb:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){!function(e){const t=(0,a.k6)(),n=(0,o.zX)(e);(0,r.useEffect)((()=>t.block(((e,t)=>n(e,t)))),[t,n])}(((t,n)=>{if("POP"===n)return e(t,n)}))}function s(e){return function(e){const t=(0,a.k6)();return(0,r.useSyncExternalStore)(t.listen,(()=>e(t)),(()=>e(t)))}((t=>null===e?null:new URLSearchParams(t.location.search).get(e)))}function l(e){const t=s(e)??"",n=function(){const e=(0,a.k6)();return(0,r.useCallback)(((t,n,r)=>{const a=new URLSearchParams(e.location.search);n?a.set(t,n):a.delete(t),(r?.push?e.push:e.replace)({search:a.toString()})}),[e])}();return[t,(0,r.useCallback)(((t,r)=>{n(e,t,r)}),[n,e])]}},833:(e,t,n)=>{"use strict";n.d(t,{FG:()=>f,d:()=>d,VC:()=>m});var r=n(7294),a=n(512),o=n(5742),i=n(226);function s(){const e=r.useContext(i._);if(!e)throw new Error("Unexpected: no Docusaurus route context found");return e}var l=n(4996),c=n(2128),u=n(5893);function d(e){let{title:t,description:n,keywords:r,image:a,children:i}=e;const s=(0,c.p)(t),{withBaseUrl:d}=(0,l.C)(),p=a?d(a,{absolute:!0}):void 0;return(0,u.jsxs)(o.Z,{children:[t&&(0,u.jsx)("title",{children:s}),t&&(0,u.jsx)("meta",{property:"og:title",content:s}),n&&(0,u.jsx)("meta",{name:"description",content:n}),n&&(0,u.jsx)("meta",{property:"og:description",content:n}),r&&(0,u.jsx)("meta",{name:"keywords",content:Array.isArray(r)?r.join(","):r}),p&&(0,u.jsx)("meta",{property:"og:image",content:p}),p&&(0,u.jsx)("meta",{name:"twitter:image",content:p}),i]})}const p=r.createContext(void 0);function f(e){let{className:t,children:n}=e;const i=r.useContext(p),s=(0,a.Z)(i,t);return(0,u.jsxs)(p.Provider,{value:s,children:[(0,u.jsx)(o.Z,{children:(0,u.jsx)("html",{className:s})}),n]})}function m(e){let{children:t}=e;const n=s(),r=`plugin-${n.plugin.name.replace(/docusaurus-(?:plugin|theme)-(?:content-)?/gi,"")}`;const o=`plugin-id-${n.plugin.id}`;return(0,u.jsx)(f,{className:(0,a.Z)(r,o),children:t})}},902:(e,t,n)=>{"use strict";n.d(t,{D9:()=>s,Qc:()=>u,Ql:()=>c,i6:()=>l,zX:()=>i});var r=n(7294),a=n(469),o=n(5893);function i(e){const t=(0,r.useRef)(e);return(0,a.Z)((()=>{t.current=e}),[e]),(0,r.useCallback)((function(){return t.current(...arguments)}),[])}function s(e){const t=(0,r.useRef)();return(0,a.Z)((()=>{t.current=e})),t.current}class l extends Error{constructor(e,t){super(),this.name="ReactContextError",this.message=`Hook ${this.stack?.split("\n")[1]?.match(/at (?:\w+\.)?(?<name>\w+)/)?.groups.name??""} is called outside the <${e}>. ${t??""}`}}function c(e){const t=Object.entries(e);return t.sort(((e,t)=>e[0].localeCompare(t[0]))),(0,r.useMemo)((()=>e),t.flat())}function u(e){return t=>{let{children:n}=t;return(0,o.jsx)(o.Fragment,{children:e.reduceRight(((e,t)=>(0,o.jsx)(t,{children:e})),n)})}}},8022:(e,t,n)=>{"use strict";function r(e,t){return void 0!==e&&void 0!==t&&new RegExp(e,"gi").test(t)}n.d(t,{F:()=>r})},8596:(e,t,n)=>{"use strict";n.d(t,{Mg:()=>i,Ns:()=>s});var r=n(7294),a=n(723),o=n(2263);function i(e,t){const n=e=>(!e||e.endsWith("/")?e:`${e}/`)?.toLowerCase();return n(e)===n(t)}function s(){const{baseUrl:e}=(0,o.Z)().siteConfig;return(0,r.useMemo)((()=>function(e){let{baseUrl:t,routes:n}=e;function r(e){return e.path===t&&!0===e.exact}function a(e){return e.path===t&&!e.exact}return function e(t){if(0===t.length)return;return t.find(r)||e(t.filter(a).flatMap((e=>e.routes??[])))}(n)}({routes:a.Z,baseUrl:e})),[e])}},2466:(e,t,n)=>{"use strict";n.d(t,{Ct:()=>f,OC:()=>c,RF:()=>p});var r=n(7294),a=n(412),o=n(2389),i=(n(469),n(902)),s=n(5893);const l=r.createContext(void 0);function c(e){let{children:t}=e;const n=function(){const e=(0,r.useRef)(!0);return(0,r.useMemo)((()=>({scrollEventsEnabledRef:e,enableScrollEvents:()=>{e.current=!0},disableScrollEvents:()=>{e.current=!1}})),[])}();return(0,s.jsx)(l.Provider,{value:n,children:t})}function u(){const e=(0,r.useContext)(l);if(null==e)throw new i.i6("ScrollControllerProvider");return e}const d=()=>a.Z.canUseDOM?{scrollX:window.pageXOffset,scrollY:window.pageYOffset}:null;function p(e,t){void 0===t&&(t=[]);const{scrollEventsEnabledRef:n}=u(),a=(0,r.useRef)(d()),o=(0,i.zX)(e);(0,r.useEffect)((()=>{const e=()=>{if(!n.current)return;const e=d();o(e,a.current),a.current=e},t={passive:!0};return e(),window.addEventListener("scroll",e,t),()=>window.removeEventListener("scroll",e,t)}),[o,n,...t])}function f(){const e=(0,r.useRef)(null),t=(0,o.Z)()&&"smooth"===getComputedStyle(document.documentElement).scrollBehavior;return{startScroll:n=>{e.current=t?function(e){return window.scrollTo({top:e,behavior:"smooth"}),()=>{}}(n):function(e){let t=null;const n=document.documentElement.scrollTop>e;return function r(){const a=document.documentElement.scrollTop;(n&&a>e||!n&&a<e)&&(t=requestAnimationFrame(r),window.scrollTo(0,Math.floor(.85*(a-e))+e))}(),()=>t&&cancelAnimationFrame(t)}(n)},cancelScroll:()=>e.current?.()}}},3320:(e,t,n)=>{"use strict";n.d(t,{HX:()=>i,_q:()=>l,os:()=>s});var r=n(143),a=n(2263),o=n(373);const i="default";function s(e,t){return`docs-${e}-${t}`}function l(){const{i18n:e}=(0,a.Z)(),t=(0,r._r)(),n=(0,r.WS)(),l=(0,o.Oh)();const c=[i,...Object.keys(t).map((function(e){const r=n?.activePlugin.pluginId===e?n.activeVersion:void 0,a=l[e],o=t[e].versions.find((e=>e.isLast));return s(e,(r??a??o).name)}))];return{locale:e.currentLocale,tags:c}}},12:(e,t,n)=>{"use strict";n.d(t,{WA:()=>l});n(7294);const r="localStorage";function a(e){let{key:t,oldValue:n,newValue:r,storage:a}=e;if(n===r)return;const o=document.createEvent("StorageEvent");o.initStorageEvent("storage",!1,!1,t,n,r,window.location.href,a),window.dispatchEvent(o)}function o(e){if(void 0===e&&(e=r),"undefined"==typeof window)throw new Error("Browser storage is not available on Node.js/Docusaurus SSR process.");if("none"===e)return null;try{return window[e]}catch(n){return t=n,i||(console.warn("Docusaurus browser storage is not available.\nPossible reasons: running Docusaurus in an iframe, in an incognito browser session, or using too strict browser privacy settings.",t),i=!0),null}var t}let i=!1;const s={get:()=>null,set:()=>{},del:()=>{},listen:()=>()=>{}};function l(e,t){if("undefined"==typeof window)return function(e){function t(){throw new Error(`Illegal storage API usage for storage key "${e}".\nDocusaurus storage APIs are not supposed to be called on the server-rendering process.\nPlease only call storage APIs in effects and event handlers.`)}return{get:t,set:t,del:t,listen:t}}(e);const n=o(t?.persistence);return null===n?s:{get:()=>{try{return n.getItem(e)}catch(t){return console.error(`Docusaurus storage error, can't get key=${e}`,t),null}},set:t=>{try{const r=n.getItem(e);n.setItem(e,t),a({key:e,oldValue:r,newValue:t,storage:n})}catch(r){console.error(`Docusaurus storage error, can't set ${e}=${t}`,r)}},del:()=>{try{const t=n.getItem(e);n.removeItem(e),a({key:e,oldValue:t,newValue:null,storage:n})}catch(t){console.error(`Docusaurus storage error, can't delete key=${e}`,t)}},listen:t=>{try{const r=r=>{r.storageArea===n&&r.key===e&&t(r)};return window.addEventListener("storage",r),()=>window.removeEventListener("storage",r)}catch(r){return console.error(`Docusaurus storage error, can't listen for changes of key=${e}`,r),()=>{}}}}}},4711:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(2263),a=n(6550),o=n(8780);function i(){const{siteConfig:{baseUrl:e,url:t,trailingSlash:n},i18n:{defaultLocale:i,currentLocale:s}}=(0,r.Z)(),{pathname:l}=(0,a.TH)(),c=(0,o.applyTrailingSlash)(l,{trailingSlash:n,baseUrl:e}),u=s===i?e:e.replace(`/${s}/`,"/"),d=c.replace(e,"");return{createUrl:function(e){let{locale:n,fullyQualified:r}=e;return`${r?t:""}${function(e){return e===i?`${u}`:`${u}${e}/`}(n)}${d}`}}}},5936:(e,t,n)=>{"use strict";n.d(t,{S:()=>i});var r=n(7294),a=n(6550),o=n(902);function i(e){const t=(0,a.TH)(),n=(0,o.D9)(t),i=(0,o.zX)(e);(0,r.useEffect)((()=>{n&&t!==n&&i({location:t,previousLocation:n})}),[i,t,n])}},6668:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){return(0,r.Z)().siteConfig.themeConfig}},6278:(e,t,n)=>{"use strict";n.d(t,{L:()=>a});var r=n(2263);function a(){const{siteConfig:{themeConfig:e}}=(0,r.Z)();return e}},239:(e,t,n)=>{"use strict";n.d(t,{l:()=>s});var r=n(7294),a=n(8022),o=n(4996),i=n(6278);function s(){const{withBaseUrl:e}=(0,o.C)(),{algolia:{externalUrlRegex:t,replaceSearchResultPathname:n}}=(0,i.L)();return(0,r.useCallback)((r=>{const o=new URL(r);if((0,a.F)(t,o.href))return r;const i=`${o.pathname+o.hash}`;return e(function(e,t){return t?e.replaceAll(new RegExp(t.from,"g"),t.to):e}(i,n))}),[e,t,n])}},8802:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t){const{trailingSlash:n,baseUrl:r}=t;if(e.startsWith("#"))return e;if(void 0===n)return e;const[a]=e.split(/[#?]/),o="/"===a||a===r?a:(i=a,n?function(e){return e.endsWith("/")?e:`${e}/`}(i):function(e){return e.endsWith("/")?e.slice(0,-1):e}(i));var i;return e.replace(a,o)}},4143:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=void 0,t.getErrorCausalChain=function e(t){return t.cause?[t,...e(t.cause)]:[t]}},8780:function(e,t,n){"use strict";var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.getErrorCausalChain=t.applyTrailingSlash=t.blogPostContainerID=void 0,t.blogPostContainerID="__blog-post-container";var a=n(8802);Object.defineProperty(t,"applyTrailingSlash",{enumerable:!0,get:function(){return r(a).default}});var o=n(4143);Object.defineProperty(t,"getErrorCausalChain",{enumerable:!0,get:function(){return o.getErrorCausalChain}})},9318:(e,t,n)=>{"use strict";n.d(t,{lX:()=>w,q_:()=>C,ob:()=>f,PP:()=>j,Ep:()=>p});var r=n(7462);function a(e){return"/"===e.charAt(0)}function o(e,t){for(var n=t,r=n+1,a=e.length;r<a;n+=1,r+=1)e[n]=e[r];e.pop()}const i=function(e,t){void 0===t&&(t="");var n,r=e&&e.split("/")||[],i=t&&t.split("/")||[],s=e&&a(e),l=t&&a(t),c=s||l;if(e&&a(e)?i=r:r.length&&(i.pop(),i=i.concat(r)),!i.length)return"/";if(i.length){var u=i[i.length-1];n="."===u||".."===u||""===u}else n=!1;for(var d=0,p=i.length;p>=0;p--){var f=i[p];"."===f?o(i,p):".."===f?(o(i,p),d++):d&&(o(i,p),d--)}if(!c)for(;d--;d)i.unshift("..");!c||""===i[0]||i[0]&&a(i[0])||i.unshift("");var m=i.join("/");return n&&"/"!==m.substr(-1)&&(m+="/"),m};var s=n(8776);function l(e){return"/"===e.charAt(0)?e:"/"+e}function c(e){return"/"===e.charAt(0)?e.substr(1):e}function u(e,t){return function(e,t){return 0===e.toLowerCase().indexOf(t.toLowerCase())&&-1!=="/?#".indexOf(e.charAt(t.length))}(e,t)?e.substr(t.length):e}function d(e){return"/"===e.charAt(e.length-1)?e.slice(0,-1):e}function p(e){var t=e.pathname,n=e.search,r=e.hash,a=t||"/";return n&&"?"!==n&&(a+="?"===n.charAt(0)?n:"?"+n),r&&"#"!==r&&(a+="#"===r.charAt(0)?r:"#"+r),a}function f(e,t,n,a){var o;"string"==typeof e?(o=function(e){var t=e||"/",n="",r="",a=t.indexOf("#");-1!==a&&(r=t.substr(a),t=t.substr(0,a));var o=t.indexOf("?");return-1!==o&&(n=t.substr(o),t=t.substr(0,o)),{pathname:t,search:"?"===n?"":n,hash:"#"===r?"":r}}(e),o.state=t):(void 0===(o=(0,r.Z)({},e)).pathname&&(o.pathname=""),o.search?"?"!==o.search.charAt(0)&&(o.search="?"+o.search):o.search="",o.hash?"#"!==o.hash.charAt(0)&&(o.hash="#"+o.hash):o.hash="",void 0!==t&&void 0===o.state&&(o.state=t));try{o.pathname=decodeURI(o.pathname)}catch(s){throw s instanceof URIError?new URIError('Pathname "'+o.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):s}return n&&(o.key=n),a?o.pathname?"/"!==o.pathname.charAt(0)&&(o.pathname=i(o.pathname,a.pathname)):o.pathname=a.pathname:o.pathname||(o.pathname="/"),o}function m(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,r,a){if(null!=e){var o="function"==typeof e?e(t,n):e;"string"==typeof o?"function"==typeof r?r(o,a):a(!0):a(!1!==o)}else a(!0)},appendListener:function(e){var n=!0;function r(){n&&e.apply(void 0,arguments)}return t.push(r),function(){n=!1,t=t.filter((function(e){return e!==r}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];t.forEach((function(e){return e.apply(void 0,n)}))}}}var g=!("undefined"==typeof window||!window.document||!window.document.createElement);function h(e,t){t(window.confirm(e))}var b="popstate",v="hashchange";function y(){try{return window.history.state||{}}catch(e){return{}}}function w(e){void 0===e&&(e={}),g||(0,s.Z)(!1);var t,n=window.history,a=(-1===(t=window.navigator.userAgent).indexOf("Android 2.")&&-1===t.indexOf("Android 4.0")||-1===t.indexOf("Mobile Safari")||-1!==t.indexOf("Chrome")||-1!==t.indexOf("Windows Phone"))&&window.history&&"pushState"in window.history,o=!(-1===window.navigator.userAgent.indexOf("Trident")),i=e,c=i.forceRefresh,w=void 0!==c&&c,k=i.getUserConfirmation,x=void 0===k?h:k,S=i.keyLength,E=void 0===S?6:S,_=e.basename?d(l(e.basename)):"";function C(e){var t=e||{},n=t.key,r=t.state,a=window.location,o=a.pathname+a.search+a.hash;return _&&(o=u(o,_)),f(o,r,n)}function T(){return Math.random().toString(36).substr(2,E)}var j=m();function A(e){(0,r.Z)(U,e),U.length=n.length,j.notifyListeners(U.location,U.action)}function L(e){(function(e){return void 0===e.state&&-1===navigator.userAgent.indexOf("CriOS")})(e)||P(C(e.state))}function R(){P(C(y()))}var N=!1;function P(e){if(N)N=!1,A();else{j.confirmTransitionTo(e,"POP",x,(function(t){t?A({action:"POP",location:e}):function(e){var t=U.location,n=I.indexOf(t.key);-1===n&&(n=0);var r=I.indexOf(e.key);-1===r&&(r=0);var a=n-r;a&&(N=!0,M(a))}(e)}))}}var O=C(y()),I=[O.key];function D(e){return _+p(e)}function M(e){n.go(e)}var F=0;function z(e){1===(F+=e)&&1===e?(window.addEventListener(b,L),o&&window.addEventListener(v,R)):0===F&&(window.removeEventListener(b,L),o&&window.removeEventListener(v,R))}var B=!1;var U={length:n.length,action:"POP",location:O,createHref:D,push:function(e,t){var r="PUSH",o=f(e,t,T(),U.location);j.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.pushState({key:i,state:s},null,t),w)window.location.href=t;else{var l=I.indexOf(U.location.key),c=I.slice(0,l+1);c.push(o.key),I=c,A({action:r,location:o})}else window.location.href=t}}))},replace:function(e,t){var r="REPLACE",o=f(e,t,T(),U.location);j.confirmTransitionTo(o,r,x,(function(e){if(e){var t=D(o),i=o.key,s=o.state;if(a)if(n.replaceState({key:i,state:s},null,t),w)window.location.replace(t);else{var l=I.indexOf(U.location.key);-1!==l&&(I[l]=o.key),A({action:r,location:o})}else window.location.replace(t)}}))},go:M,goBack:function(){M(-1)},goForward:function(){M(1)},block:function(e){void 0===e&&(e=!1);var t=j.setPrompt(e);return B||(z(1),B=!0),function(){return B&&(B=!1,z(-1)),t()}},listen:function(e){var t=j.appendListener(e);return z(1),function(){z(-1),t()}}};return U}var k="hashchange",x={hashbang:{encodePath:function(e){return"!"===e.charAt(0)?e:"!/"+c(e)},decodePath:function(e){return"!"===e.charAt(0)?e.substr(1):e}},noslash:{encodePath:c,decodePath:l},slash:{encodePath:l,decodePath:l}};function S(e){var t=e.indexOf("#");return-1===t?e:e.slice(0,t)}function E(){var e=window.location.href,t=e.indexOf("#");return-1===t?"":e.substring(t+1)}function _(e){window.location.replace(S(window.location.href)+"#"+e)}function C(e){void 0===e&&(e={}),g||(0,s.Z)(!1);var t=window.history,n=(window.navigator.userAgent.indexOf("Firefox"),e),a=n.getUserConfirmation,o=void 0===a?h:a,i=n.hashType,c=void 0===i?"slash":i,b=e.basename?d(l(e.basename)):"",v=x[c],y=v.encodePath,w=v.decodePath;function C(){var e=w(E());return b&&(e=u(e,b)),f(e)}var T=m();function j(e){(0,r.Z)(B,e),B.length=t.length,T.notifyListeners(B.location,B.action)}var A=!1,L=null;function R(){var e,t,n=E(),r=y(n);if(n!==r)_(r);else{var a=C(),i=B.location;if(!A&&(t=a,(e=i).pathname===t.pathname&&e.search===t.search&&e.hash===t.hash))return;if(L===p(a))return;L=null,function(e){if(A)A=!1,j();else{var t="POP";T.confirmTransitionTo(e,t,o,(function(n){n?j({action:t,location:e}):function(e){var t=B.location,n=I.lastIndexOf(p(t));-1===n&&(n=0);var r=I.lastIndexOf(p(e));-1===r&&(r=0);var a=n-r;a&&(A=!0,D(a))}(e)}))}}(a)}}var N=E(),P=y(N);N!==P&&_(P);var O=C(),I=[p(O)];function D(e){t.go(e)}var M=0;function F(e){1===(M+=e)&&1===e?window.addEventListener(k,R):0===M&&window.removeEventListener(k,R)}var z=!1;var B={length:t.length,action:"POP",location:O,createHref:function(e){var t=document.querySelector("base"),n="";return t&&t.getAttribute("href")&&(n=S(window.location.href)),n+"#"+y(b+p(e))},push:function(e,t){var n="PUSH",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);if(E()!==a){L=t,function(e){window.location.hash=e}(a);var o=I.lastIndexOf(p(B.location)),i=I.slice(0,o+1);i.push(t),I=i,j({action:n,location:r})}else j()}}))},replace:function(e,t){var n="REPLACE",r=f(e,void 0,void 0,B.location);T.confirmTransitionTo(r,n,o,(function(e){if(e){var t=p(r),a=y(b+t);E()!==a&&(L=t,_(a));var o=I.indexOf(p(B.location));-1!==o&&(I[o]=t),j({action:n,location:r})}}))},go:D,goBack:function(){D(-1)},goForward:function(){D(1)},block:function(e){void 0===e&&(e=!1);var t=T.setPrompt(e);return z||(F(1),z=!0),function(){return z&&(z=!1,F(-1)),t()}},listen:function(e){var t=T.appendListener(e);return F(1),function(){F(-1),t()}}};return B}function T(e,t,n){return Math.min(Math.max(e,t),n)}function j(e){void 0===e&&(e={});var t=e,n=t.getUserConfirmation,a=t.initialEntries,o=void 0===a?["/"]:a,i=t.initialIndex,s=void 0===i?0:i,l=t.keyLength,c=void 0===l?6:l,u=m();function d(e){(0,r.Z)(w,e),w.length=w.entries.length,u.notifyListeners(w.location,w.action)}function g(){return Math.random().toString(36).substr(2,c)}var h=T(s,0,o.length-1),b=o.map((function(e){return f(e,void 0,"string"==typeof e?g():e.key||g())})),v=p;function y(e){var t=T(w.index+e,0,w.entries.length-1),r=w.entries[t];u.confirmTransitionTo(r,"POP",n,(function(e){e?d({action:"POP",location:r,index:t}):d()}))}var w={length:b.length,action:"POP",location:b[h],index:h,entries:b,createHref:v,push:function(e,t){var r="PUSH",a=f(e,t,g(),w.location);u.confirmTransitionTo(a,r,n,(function(e){if(e){var t=w.index+1,n=w.entries.slice(0);n.length>t?n.splice(t,n.length-t,a):n.push(a),d({action:r,location:a,index:t,entries:n})}}))},replace:function(e,t){var r="REPLACE",a=f(e,t,g(),w.location);u.confirmTransitionTo(a,r,n,(function(e){e&&(w.entries[w.index]=a,d({action:r,location:a}))}))},go:y,goBack:function(){y(-1)},goForward:function(){y(1)},canGo:function(e){var t=w.index+e;return t>=0&&t<w.entries.length},block:function(e){return void 0===e&&(e=!1),u.setPrompt(e)},listen:function(e){return u.appendListener(e)}};return w}},8679:(e,t,n)=>{"use strict";var r=n(9864),a={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},o={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||a}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,u=Object.getOwnPropertyNames,d=Object.getOwnPropertySymbols,p=Object.getOwnPropertyDescriptor,f=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var a=f(n);a&&a!==m&&e(t,a,r)}var i=u(n);d&&(i=i.concat(d(n)));for(var s=l(t),g=l(n),h=0;h<i.length;++h){var b=i[h];if(!(o[b]||r&&r[b]||g&&g[b]||s&&s[b])){var v=p(n,b);try{c(t,b,v)}catch(y){}}}}return t}},1143:e=>{"use strict";e.exports=function(e,t,n,r,a,o,i,s){if(!e){var l;if(void 0===t)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,a,o,i,s],u=0;(l=new Error(t.replace(/%s/g,(function(){return c[u++]})))).name="Invariant Violation"}throw l.framesToPop=1,l}}},5826:e=>{e.exports=Array.isArray||function(e){return"[object Array]"==Object.prototype.toString.call(e)}},2497:(e,t,n)=>{"use strict";n.r(t)},2295:(e,t,n)=>{"use strict";n.r(t)},4865:function(e,t,n){var r,a;r=function(){var e,t,n={version:"0.2.0"},r=n.settings={minimum:.08,easing:"ease",positionUsing:"",speed:200,trickle:!0,trickleRate:.02,trickleSpeed:800,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'<div class="bar" role="bar"><div class="peg"></div></div><div class="spinner" role="spinner"><div class="spinner-icon"></div></div>'};function a(e,t,n){return e<t?t:e>n?n:e}function o(e){return 100*(-1+e)}function i(e,t,n){var a;return(a="translate3d"===r.positionUsing?{transform:"translate3d("+o(e)+"%,0,0)"}:"translate"===r.positionUsing?{transform:"translate("+o(e)+"%,0)"}:{"margin-left":o(e)+"%"}).transition="all "+t+"ms "+n,a}n.configure=function(e){var t,n;for(t in e)void 0!==(n=e[t])&&e.hasOwnProperty(t)&&(r[t]=n);return this},n.status=null,n.set=function(e){var t=n.isStarted();e=a(e,r.minimum,1),n.status=1===e?null:e;var o=n.render(!t),c=o.querySelector(r.barSelector),u=r.speed,d=r.easing;return o.offsetWidth,s((function(t){""===r.positionUsing&&(r.positionUsing=n.getPositioningCSS()),l(c,i(e,u,d)),1===e?(l(o,{transition:"none",opacity:1}),o.offsetWidth,setTimeout((function(){l(o,{transition:"all "+u+"ms linear",opacity:0}),setTimeout((function(){n.remove(),t()}),u)}),u)):setTimeout(t,u)})),this},n.isStarted=function(){return"number"==typeof n.status},n.start=function(){n.status||n.set(0);var e=function(){setTimeout((function(){n.status&&(n.trickle(),e())}),r.trickleSpeed)};return r.trickle&&e(),this},n.done=function(e){return e||n.status?n.inc(.3+.5*Math.random()).set(1):this},n.inc=function(e){var t=n.status;return t?("number"!=typeof e&&(e=(1-t)*a(Math.random()*t,.1,.95)),t=a(t+e,0,.994),n.set(t)):n.start()},n.trickle=function(){return n.inc(Math.random()*r.trickleRate)},e=0,t=0,n.promise=function(r){return r&&"resolved"!==r.state()?(0===t&&n.start(),e++,t++,r.always((function(){0==--t?(e=0,n.done()):n.set((e-t)/e)})),this):this},n.render=function(e){if(n.isRendered())return document.getElementById("nprogress");u(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=r.template;var a,i=t.querySelector(r.barSelector),s=e?"-100":o(n.status||0),c=document.querySelector(r.parent);return l(i,{transition:"all 0 linear",transform:"translate3d("+s+"%,0,0)"}),r.showSpinner||(a=t.querySelector(r.spinnerSelector))&&f(a),c!=document.body&&u(c,"nprogress-custom-parent"),c.appendChild(t),t},n.remove=function(){d(document.documentElement,"nprogress-busy"),d(document.querySelector(r.parent),"nprogress-custom-parent");var e=document.getElementById("nprogress");e&&f(e)},n.isRendered=function(){return!!document.getElementById("nprogress")},n.getPositioningCSS=function(){var e=document.body.style,t="WebkitTransform"in e?"Webkit":"MozTransform"in e?"Moz":"msTransform"in e?"ms":"OTransform"in e?"O":"";return t+"Perspective"in e?"translate3d":t+"Transform"in e?"translate":"margin"};var s=function(){var e=[];function t(){var n=e.shift();n&&n(t)}return function(n){e.push(n),1==e.length&&t()}}(),l=function(){var e=["Webkit","O","Moz","ms"],t={};function n(e){return e.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,(function(e,t){return t.toUpperCase()}))}function r(t){var n=document.body.style;if(t in n)return t;for(var r,a=e.length,o=t.charAt(0).toUpperCase()+t.slice(1);a--;)if((r=e[a]+o)in n)return r;return t}function a(e){return e=n(e),t[e]||(t[e]=r(e))}function o(e,t,n){t=a(t),e.style[t]=n}return function(e,t){var n,r,a=arguments;if(2==a.length)for(n in t)void 0!==(r=t[n])&&t.hasOwnProperty(n)&&o(e,n,r);else o(e,a[1],a[2])}}();function c(e,t){return("string"==typeof e?e:p(e)).indexOf(" "+t+" ")>=0}function u(e,t){var n=p(e),r=n+t;c(n,t)||(e.className=r.substring(1))}function d(e,t){var n,r=p(e);c(e,t)&&(n=r.replace(" "+t+" "," "),e.className=n.substring(1,n.length-1))}function p(e){return(" "+(e.className||"")+" ").replace(/\s+/gi," ")}function f(e){e&&e.parentNode&&e.parentNode.removeChild(e)}return n},void 0===(a="function"==typeof r?r.call(t,n,t,e):r)||(e.exports=a)},4779:(e,t,n)=>{var r=n(5826);e.exports=f,e.exports.parse=o,e.exports.compile=function(e,t){return s(o(e,t),t)},e.exports.tokensToFunction=s,e.exports.tokensToRegExp=p;var a=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");function o(e,t){for(var n,r=[],o=0,i=0,s="",u=t&&t.delimiter||"/";null!=(n=a.exec(e));){var d=n[0],p=n[1],f=n.index;if(s+=e.slice(i,f),i=f+d.length,p)s+=p[1];else{var m=e[i],g=n[2],h=n[3],b=n[4],v=n[5],y=n[6],w=n[7];s&&(r.push(s),s="");var k=null!=g&&null!=m&&m!==g,x="+"===y||"*"===y,S="?"===y||"*"===y,E=n[2]||u,_=b||v;r.push({name:h||o++,prefix:g||"",delimiter:E,optional:S,repeat:x,partial:k,asterisk:!!w,pattern:_?c(_):w?".*":"[^"+l(E)+"]+?"})}}return i<e.length&&(s+=e.substr(i)),s&&r.push(s),r}function i(e){return encodeURI(e).replace(/[\/?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()}))}function s(e,t){for(var n=new Array(e.length),a=0;a<e.length;a++)"object"==typeof e[a]&&(n[a]=new RegExp("^(?:"+e[a].pattern+")$",d(t)));return function(t,a){for(var o="",s=t||{},l=(a||{}).pretty?i:encodeURIComponent,c=0;c<e.length;c++){var u=e[c];if("string"!=typeof u){var d,p=s[u.name];if(null==p){if(u.optional){u.partial&&(o+=u.prefix);continue}throw new TypeError('Expected "'+u.name+'" to be defined')}if(r(p)){if(!u.repeat)throw new TypeError('Expected "'+u.name+'" to not repeat, but received `'+JSON.stringify(p)+"`");if(0===p.length){if(u.optional)continue;throw new TypeError('Expected "'+u.name+'" to not be empty')}for(var f=0;f<p.length;f++){if(d=l(p[f]),!n[c].test(d))throw new TypeError('Expected all "'+u.name+'" to match "'+u.pattern+'", but received `'+JSON.stringify(d)+"`");o+=(0===f?u.prefix:u.delimiter)+d}}else{if(d=u.asterisk?encodeURI(p).replace(/[?#]/g,(function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})):l(p),!n[c].test(d))throw new TypeError('Expected "'+u.name+'" to match "'+u.pattern+'", but received "'+d+'"');o+=u.prefix+d}}else o+=u}return o}}function l(e){return e.replace(/([.+*?=^!:${}()[\]|\/\\])/g,"\\$1")}function c(e){return e.replace(/([=!:$\/()])/g,"\\$1")}function u(e,t){return e.keys=t,e}function d(e){return e&&e.sensitive?"":"i"}function p(e,t,n){r(t)||(n=t||n,t=[]);for(var a=(n=n||{}).strict,o=!1!==n.end,i="",s=0;s<e.length;s++){var c=e[s];if("string"==typeof c)i+=l(c);else{var p=l(c.prefix),f="(?:"+c.pattern+")";t.push(c),c.repeat&&(f+="(?:"+p+f+")*"),i+=f=c.optional?c.partial?p+"("+f+")?":"(?:"+p+"("+f+"))?":p+"("+f+")"}}var m=l(n.delimiter||"/"),g=i.slice(-m.length)===m;return a||(i=(g?i.slice(0,-m.length):i)+"(?:"+m+"(?=$))?"),i+=o?"$":a&&g?"":"(?="+m+"|$)",u(new RegExp("^"+i,d(n)),t)}function f(e,t,n){return r(t)||(n=t||n,t=[]),n=n||{},e instanceof RegExp?function(e,t){var n=e.source.match(/\((?!\?)/g);if(n)for(var r=0;r<n.length;r++)t.push({name:r,prefix:null,delimiter:null,optional:!1,repeat:!1,partial:!1,asterisk:!1,pattern:null});return u(e,t)}(e,t):r(e)?function(e,t,n){for(var r=[],a=0;a<e.length;a++)r.push(f(e[a],t,n).source);return u(new RegExp("(?:"+r.join("|")+")",d(n)),t)}(e,t,n):function(e,t,n){return p(o(e,n),t,n)}(e,t,n)}},9901:e=>{e.exports&&(e.exports={core:{meta:{path:"components/prism-core.js",option:"mandatory"},core:"Core"},themes:{meta:{path:"themes/{id}.css",link:"index.html?theme={id}",exclusive:!0},prism:{title:"Default",option:"default"},"prism-dark":"Dark","prism-funky":"Funky","prism-okaidia":{title:"Okaidia",owner:"ocodia"},"prism-twilight":{title:"Twilight",owner:"remybach"},"prism-coy":{title:"Coy",owner:"tshedor"},"prism-solarizedlight":{title:"Solarized Light",owner:"hectormatos2011 "},"prism-tomorrow":{title:"Tomorrow Night",owner:"Rosey"}},languages:{meta:{path:"components/prism-{id}",noCSS:!0,examplesPath:"examples/prism-{id}",addCheckAll:!0},markup:{title:"Markup",alias:["html","xml","svg","mathml","ssml","atom","rss"],aliasTitles:{html:"HTML",xml:"XML",svg:"SVG",mathml:"MathML",ssml:"SSML",atom:"Atom",rss:"RSS"},option:"default"},css:{title:"CSS",option:"default",modify:"markup"},clike:{title:"C-like",option:"default"},javascript:{title:"JavaScript",require:"clike",modify:"markup",optional:"regex",alias:"js",option:"default"},abap:{title:"ABAP",owner:"dellagustin"},abnf:{title:"ABNF",owner:"RunDevelopment"},actionscript:{title:"ActionScript",require:"javascript",modify:"markup",owner:"Golmote"},ada:{title:"Ada",owner:"Lucretia"},agda:{title:"Agda",owner:"xy-ren"},al:{title:"AL",owner:"RunDevelopment"},antlr4:{title:"ANTLR4",alias:"g4",owner:"RunDevelopment"},apacheconf:{title:"Apache Configuration",owner:"GuiTeK"},apex:{title:"Apex",require:["clike","sql"],owner:"RunDevelopment"},apl:{title:"APL",owner:"ngn"},applescript:{title:"AppleScript",owner:"Golmote"},aql:{title:"AQL",owner:"RunDevelopment"},arduino:{title:"Arduino",require:"cpp",alias:"ino",owner:"dkern"},arff:{title:"ARFF",owner:"Golmote"},armasm:{title:"ARM Assembly",alias:"arm-asm",owner:"RunDevelopment"},arturo:{title:"Arturo",alias:"art",optional:["bash","css","javascript","markup","markdown","sql"],owner:"drkameleon"},asciidoc:{alias:"adoc",title:"AsciiDoc",owner:"Golmote"},aspnet:{title:"ASP.NET (C#)",require:["markup","csharp"],owner:"nauzilus"},asm6502:{title:"6502 Assembly",owner:"kzurawel"},asmatmel:{title:"Atmel AVR Assembly",owner:"cerkit"},autohotkey:{title:"AutoHotkey",owner:"aviaryan"},autoit:{title:"AutoIt",owner:"Golmote"},avisynth:{title:"AviSynth",alias:"avs",owner:"Zinfidel"},"avro-idl":{title:"Avro IDL",alias:"avdl",owner:"RunDevelopment"},awk:{title:"AWK",alias:"gawk",aliasTitles:{gawk:"GAWK"},owner:"RunDevelopment"},bash:{title:"Bash",alias:["sh","shell"],aliasTitles:{sh:"Shell",shell:"Shell"},owner:"zeitgeist87"},basic:{title:"BASIC",owner:"Golmote"},batch:{title:"Batch",owner:"Golmote"},bbcode:{title:"BBcode",alias:"shortcode",aliasTitles:{shortcode:"Shortcode"},owner:"RunDevelopment"},bbj:{title:"BBj",owner:"hyyan"},bicep:{title:"Bicep",owner:"johnnyreilly"},birb:{title:"Birb",require:"clike",owner:"Calamity210"},bison:{title:"Bison",require:"c",owner:"Golmote"},bnf:{title:"BNF",alias:"rbnf",aliasTitles:{rbnf:"RBNF"},owner:"RunDevelopment"},bqn:{title:"BQN",owner:"yewscion"},brainfuck:{title:"Brainfuck",owner:"Golmote"},brightscript:{title:"BrightScript",owner:"RunDevelopment"},bro:{title:"Bro",owner:"wayward710"},bsl:{title:"BSL (1C:Enterprise)",alias:"oscript",aliasTitles:{oscript:"OneScript"},owner:"Diversus23"},c:{title:"C",require:"clike",owner:"zeitgeist87"},csharp:{title:"C#",require:"clike",alias:["cs","dotnet"],owner:"mvalipour"},cpp:{title:"C++",require:"c",owner:"zeitgeist87"},cfscript:{title:"CFScript",require:"clike",alias:"cfc",owner:"mjclemente"},chaiscript:{title:"ChaiScript",require:["clike","cpp"],owner:"RunDevelopment"},cil:{title:"CIL",owner:"sbrl"},cilkc:{title:"Cilk/C",require:"c",alias:"cilk-c",owner:"OpenCilk"},cilkcpp:{title:"Cilk/C++",require:"cpp",alias:["cilk-cpp","cilk"],owner:"OpenCilk"},clojure:{title:"Clojure",owner:"troglotit"},cmake:{title:"CMake",owner:"mjrogozinski"},cobol:{title:"COBOL",owner:"RunDevelopment"},coffeescript:{title:"CoffeeScript",require:"javascript",alias:"coffee",owner:"R-osey"},concurnas:{title:"Concurnas",alias:"conc",owner:"jasontatton"},csp:{title:"Content-Security-Policy",owner:"ScottHelme"},cooklang:{title:"Cooklang",owner:"ahue"},coq:{title:"Coq",owner:"RunDevelopment"},crystal:{title:"Crystal",require:"ruby",owner:"MakeNowJust"},"css-extras":{title:"CSS Extras",require:"css",modify:"css",owner:"milesj"},csv:{title:"CSV",owner:"RunDevelopment"},cue:{title:"CUE",owner:"RunDevelopment"},cypher:{title:"Cypher",owner:"RunDevelopment"},d:{title:"D",require:"clike",owner:"Golmote"},dart:{title:"Dart",require:"clike",owner:"Golmote"},dataweave:{title:"DataWeave",owner:"machaval"},dax:{title:"DAX",owner:"peterbud"},dhall:{title:"Dhall",owner:"RunDevelopment"},diff:{title:"Diff",owner:"uranusjr"},django:{title:"Django/Jinja2",require:"markup-templating",alias:"jinja2",owner:"romanvm"},"dns-zone-file":{title:"DNS zone file",owner:"RunDevelopment",alias:"dns-zone"},docker:{title:"Docker",alias:"dockerfile",owner:"JustinBeckwith"},dot:{title:"DOT (Graphviz)",alias:"gv",optional:"markup",owner:"RunDevelopment"},ebnf:{title:"EBNF",owner:"RunDevelopment"},editorconfig:{title:"EditorConfig",owner:"osipxd"},eiffel:{title:"Eiffel",owner:"Conaclos"},ejs:{title:"EJS",require:["javascript","markup-templating"],owner:"RunDevelopment",alias:"eta",aliasTitles:{eta:"Eta"}},elixir:{title:"Elixir",owner:"Golmote"},elm:{title:"Elm",owner:"zwilias"},etlua:{title:"Embedded Lua templating",require:["lua","markup-templating"],owner:"RunDevelopment"},erb:{title:"ERB",require:["ruby","markup-templating"],owner:"Golmote"},erlang:{title:"Erlang",owner:"Golmote"},"excel-formula":{title:"Excel Formula",alias:["xlsx","xls"],owner:"RunDevelopment"},fsharp:{title:"F#",require:"clike",owner:"simonreynolds7"},factor:{title:"Factor",owner:"catb0t"},false:{title:"False",owner:"edukisto"},"firestore-security-rules":{title:"Firestore security rules",require:"clike",owner:"RunDevelopment"},flow:{title:"Flow",require:"javascript",owner:"Golmote"},fortran:{title:"Fortran",owner:"Golmote"},ftl:{title:"FreeMarker Template Language",require:"markup-templating",owner:"RunDevelopment"},gml:{title:"GameMaker Language",alias:"gamemakerlanguage",require:"clike",owner:"LiarOnce"},gap:{title:"GAP (CAS)",owner:"RunDevelopment"},gcode:{title:"G-code",owner:"RunDevelopment"},gdscript:{title:"GDScript",owner:"RunDevelopment"},gedcom:{title:"GEDCOM",owner:"Golmote"},gettext:{title:"gettext",alias:"po",owner:"RunDevelopment"},gherkin:{title:"Gherkin",owner:"hason"},git:{title:"Git",owner:"lgiraudel"},glsl:{title:"GLSL",require:"c",owner:"Golmote"},gn:{title:"GN",alias:"gni",owner:"RunDevelopment"},"linker-script":{title:"GNU Linker Script",alias:"ld",owner:"RunDevelopment"},go:{title:"Go",require:"clike",owner:"arnehormann"},"go-module":{title:"Go module",alias:"go-mod",owner:"RunDevelopment"},gradle:{title:"Gradle",require:"clike",owner:"zeabdelkhalek-badido18"},graphql:{title:"GraphQL",optional:"markdown",owner:"Golmote"},groovy:{title:"Groovy",require:"clike",owner:"robfletcher"},haml:{title:"Haml",require:"ruby",optional:["css","css-extras","coffeescript","erb","javascript","less","markdown","scss","textile"],owner:"Golmote"},handlebars:{title:"Handlebars",require:"markup-templating",alias:["hbs","mustache"],aliasTitles:{mustache:"Mustache"},owner:"Golmote"},haskell:{title:"Haskell",alias:"hs",owner:"bholst"},haxe:{title:"Haxe",require:"clike",optional:"regex",owner:"Golmote"},hcl:{title:"HCL",owner:"outsideris"},hlsl:{title:"HLSL",require:"c",owner:"RunDevelopment"},hoon:{title:"Hoon",owner:"matildepark"},http:{title:"HTTP",optional:["csp","css","hpkp","hsts","javascript","json","markup","uri"],owner:"danielgtaylor"},hpkp:{title:"HTTP Public-Key-Pins",owner:"ScottHelme"},hsts:{title:"HTTP Strict-Transport-Security",owner:"ScottHelme"},ichigojam:{title:"IchigoJam",owner:"BlueCocoa"},icon:{title:"Icon",owner:"Golmote"},"icu-message-format":{title:"ICU Message Format",owner:"RunDevelopment"},idris:{title:"Idris",alias:"idr",owner:"KeenS",require:"haskell"},ignore:{title:".ignore",owner:"osipxd",alias:["gitignore","hgignore","npmignore"],aliasTitles:{gitignore:".gitignore",hgignore:".hgignore",npmignore:".npmignore"}},inform7:{title:"Inform 7",owner:"Golmote"},ini:{title:"Ini",owner:"aviaryan"},io:{title:"Io",owner:"AlesTsurko"},j:{title:"J",owner:"Golmote"},java:{title:"Java",require:"clike",owner:"sherblot"},javadoc:{title:"JavaDoc",require:["markup","java","javadoclike"],modify:"java",optional:"scala",owner:"RunDevelopment"},javadoclike:{title:"JavaDoc-like",modify:["java","javascript","php"],owner:"RunDevelopment"},javastacktrace:{title:"Java stack trace",owner:"RunDevelopment"},jexl:{title:"Jexl",owner:"czosel"},jolie:{title:"Jolie",require:"clike",owner:"thesave"},jq:{title:"JQ",owner:"RunDevelopment"},jsdoc:{title:"JSDoc",require:["javascript","javadoclike","typescript"],modify:"javascript",optional:["actionscript","coffeescript"],owner:"RunDevelopment"},"js-extras":{title:"JS Extras",require:"javascript",modify:"javascript",optional:["actionscript","coffeescript","flow","n4js","typescript"],owner:"RunDevelopment"},json:{title:"JSON",alias:"webmanifest",aliasTitles:{webmanifest:"Web App Manifest"},owner:"CupOfTea696"},json5:{title:"JSON5",require:"json",owner:"RunDevelopment"},jsonp:{title:"JSONP",require:"json",owner:"RunDevelopment"},jsstacktrace:{title:"JS stack trace",owner:"sbrl"},"js-templates":{title:"JS Templates",require:"javascript",modify:"javascript",optional:["css","css-extras","graphql","markdown","markup","sql"],owner:"RunDevelopment"},julia:{title:"Julia",owner:"cdagnino"},keepalived:{title:"Keepalived Configure",owner:"dev-itsheng"},keyman:{title:"Keyman",owner:"mcdurdin"},kotlin:{title:"Kotlin",alias:["kt","kts"],aliasTitles:{kts:"Kotlin Script"},require:"clike",owner:"Golmote"},kumir:{title:"KuMir (\u041a\u0443\u041c\u0438\u0440)",alias:"kum",owner:"edukisto"},kusto:{title:"Kusto",owner:"RunDevelopment"},latex:{title:"LaTeX",alias:["tex","context"],aliasTitles:{tex:"TeX",context:"ConTeXt"},owner:"japborst"},latte:{title:"Latte",require:["clike","markup-templating","php"],owner:"nette"},less:{title:"Less",require:"css",optional:"css-extras",owner:"Golmote"},lilypond:{title:"LilyPond",require:"scheme",alias:"ly",owner:"RunDevelopment"},liquid:{title:"Liquid",require:"markup-templating",owner:"cinhtau"},lisp:{title:"Lisp",alias:["emacs","elisp","emacs-lisp"],owner:"JuanCaicedo"},livescript:{title:"LiveScript",owner:"Golmote"},llvm:{title:"LLVM IR",owner:"porglezomp"},log:{title:"Log file",optional:"javastacktrace",owner:"RunDevelopment"},lolcode:{title:"LOLCODE",owner:"Golmote"},lua:{title:"Lua",owner:"Golmote"},magma:{title:"Magma (CAS)",owner:"RunDevelopment"},makefile:{title:"Makefile",owner:"Golmote"},markdown:{title:"Markdown",require:"markup",optional:"yaml",alias:"md",owner:"Golmote"},"markup-templating":{title:"Markup templating",require:"markup",owner:"Golmote"},mata:{title:"Mata",owner:"RunDevelopment"},matlab:{title:"MATLAB",owner:"Golmote"},maxscript:{title:"MAXScript",owner:"RunDevelopment"},mel:{title:"MEL",owner:"Golmote"},mermaid:{title:"Mermaid",owner:"RunDevelopment"},metafont:{title:"METAFONT",owner:"LaeriExNihilo"},mizar:{title:"Mizar",owner:"Golmote"},mongodb:{title:"MongoDB",owner:"airs0urce",require:"javascript"},monkey:{title:"Monkey",owner:"Golmote"},moonscript:{title:"MoonScript",alias:"moon",owner:"RunDevelopment"},n1ql:{title:"N1QL",owner:"TMWilds"},n4js:{title:"N4JS",require:"javascript",optional:"jsdoc",alias:"n4jsd",owner:"bsmith-n4"},"nand2tetris-hdl":{title:"Nand To Tetris HDL",owner:"stephanmax"},naniscript:{title:"Naninovel Script",owner:"Elringus",alias:"nani"},nasm:{title:"NASM",owner:"rbmj"},neon:{title:"NEON",owner:"nette"},nevod:{title:"Nevod",owner:"nezaboodka"},nginx:{title:"nginx",owner:"volado"},nim:{title:"Nim",owner:"Golmote"},nix:{title:"Nix",owner:"Golmote"},nsis:{title:"NSIS",owner:"idleberg"},objectivec:{title:"Objective-C",require:"c",alias:"objc",owner:"uranusjr"},ocaml:{title:"OCaml",owner:"Golmote"},odin:{title:"Odin",owner:"edukisto"},opencl:{title:"OpenCL",require:"c",modify:["c","cpp"],owner:"Milania1"},openqasm:{title:"OpenQasm",alias:"qasm",owner:"RunDevelopment"},oz:{title:"Oz",owner:"Golmote"},parigp:{title:"PARI/GP",owner:"Golmote"},parser:{title:"Parser",require:"markup",owner:"Golmote"},pascal:{title:"Pascal",alias:"objectpascal",aliasTitles:{objectpascal:"Object Pascal"},owner:"Golmote"},pascaligo:{title:"Pascaligo",owner:"DefinitelyNotAGoat"},psl:{title:"PATROL Scripting Language",owner:"bertysentry"},pcaxis:{title:"PC-Axis",alias:"px",owner:"RunDevelopment"},peoplecode:{title:"PeopleCode",alias:"pcode",owner:"RunDevelopment"},perl:{title:"Perl",owner:"Golmote"},php:{title:"PHP",require:"markup-templating",owner:"milesj"},phpdoc:{title:"PHPDoc",require:["php","javadoclike"],modify:"php",owner:"RunDevelopment"},"php-extras":{title:"PHP Extras",require:"php",modify:"php",owner:"milesj"},"plant-uml":{title:"PlantUML",alias:"plantuml",owner:"RunDevelopment"},plsql:{title:"PL/SQL",require:"sql",owner:"Golmote"},powerquery:{title:"PowerQuery",alias:["pq","mscript"],owner:"peterbud"},powershell:{title:"PowerShell",owner:"nauzilus"},processing:{title:"Processing",require:"clike",owner:"Golmote"},prolog:{title:"Prolog",owner:"Golmote"},promql:{title:"PromQL",owner:"arendjr"},properties:{title:".properties",owner:"Golmote"},protobuf:{title:"Protocol Buffers",require:"clike",owner:"just-boris"},pug:{title:"Pug",require:["markup","javascript"],optional:["coffeescript","ejs","handlebars","less","livescript","markdown","scss","stylus","twig"],owner:"Golmote"},puppet:{title:"Puppet",owner:"Golmote"},pure:{title:"Pure",optional:["c","cpp","fortran"],owner:"Golmote"},purebasic:{title:"PureBasic",require:"clike",alias:"pbfasm",owner:"HeX0R101"},purescript:{title:"PureScript",require:"haskell",alias:"purs",owner:"sriharshachilakapati"},python:{title:"Python",alias:"py",owner:"multipetros"},qsharp:{title:"Q#",require:"clike",alias:"qs",owner:"fedonman"},q:{title:"Q (kdb+ database)",owner:"Golmote"},qml:{title:"QML",require:"javascript",owner:"RunDevelopment"},qore:{title:"Qore",require:"clike",owner:"temnroegg"},r:{title:"R",owner:"Golmote"},racket:{title:"Racket",require:"scheme",alias:"rkt",owner:"RunDevelopment"},cshtml:{title:"Razor C#",alias:"razor",require:["markup","csharp"],optional:["css","css-extras","javascript","js-extras"],owner:"RunDevelopment"},jsx:{title:"React JSX",require:["markup","javascript"],optional:["jsdoc","js-extras","js-templates"],owner:"vkbansal"},tsx:{title:"React TSX",require:["jsx","typescript"]},reason:{title:"Reason",require:"clike",owner:"Golmote"},regex:{title:"Regex",owner:"RunDevelopment"},rego:{title:"Rego",owner:"JordanSh"},renpy:{title:"Ren'py",alias:"rpy",owner:"HyuchiaDiego"},rescript:{title:"ReScript",alias:"res",owner:"vmarcosp"},rest:{title:"reST (reStructuredText)",owner:"Golmote"},rip:{title:"Rip",owner:"ravinggenius"},roboconf:{title:"Roboconf",owner:"Golmote"},robotframework:{title:"Robot Framework",alias:"robot",owner:"RunDevelopment"},ruby:{title:"Ruby",require:"clike",alias:"rb",owner:"samflores"},rust:{title:"Rust",owner:"Golmote"},sas:{title:"SAS",optional:["groovy","lua","sql"],owner:"Golmote"},sass:{title:"Sass (Sass)",require:"css",optional:"css-extras",owner:"Golmote"},scss:{title:"Sass (SCSS)",require:"css",optional:"css-extras",owner:"MoOx"},scala:{title:"Scala",require:"java",owner:"jozic"},scheme:{title:"Scheme",owner:"bacchus123"},"shell-session":{title:"Shell session",require:"bash",alias:["sh-session","shellsession"],owner:"RunDevelopment"},smali:{title:"Smali",owner:"RunDevelopment"},smalltalk:{title:"Smalltalk",owner:"Golmote"},smarty:{title:"Smarty",require:"markup-templating",optional:"php",owner:"Golmote"},sml:{title:"SML",alias:"smlnj",aliasTitles:{smlnj:"SML/NJ"},owner:"RunDevelopment"},solidity:{title:"Solidity (Ethereum)",alias:"sol",require:"clike",owner:"glachaud"},"solution-file":{title:"Solution file",alias:"sln",owner:"RunDevelopment"},soy:{title:"Soy (Closure Template)",require:"markup-templating",owner:"Golmote"},sparql:{title:"SPARQL",require:"turtle",owner:"Triply-Dev",alias:"rq"},"splunk-spl":{title:"Splunk SPL",owner:"RunDevelopment"},sqf:{title:"SQF: Status Quo Function (Arma 3)",require:"clike",owner:"RunDevelopment"},sql:{title:"SQL",owner:"multipetros"},squirrel:{title:"Squirrel",require:"clike",owner:"RunDevelopment"},stan:{title:"Stan",owner:"RunDevelopment"},stata:{title:"Stata Ado",require:["mata","java","python"],owner:"RunDevelopment"},iecst:{title:"Structured Text (IEC 61131-3)",owner:"serhioromano"},stylus:{title:"Stylus",owner:"vkbansal"},supercollider:{title:"SuperCollider",alias:"sclang",owner:"RunDevelopment"},swift:{title:"Swift",owner:"chrischares"},systemd:{title:"Systemd configuration file",owner:"RunDevelopment"},"t4-templating":{title:"T4 templating",owner:"RunDevelopment"},"t4-cs":{title:"T4 Text Templates (C#)",require:["t4-templating","csharp"],alias:"t4",owner:"RunDevelopment"},"t4-vb":{title:"T4 Text Templates (VB)",require:["t4-templating","vbnet"],owner:"RunDevelopment"},tap:{title:"TAP",owner:"isaacs",require:"yaml"},tcl:{title:"Tcl",owner:"PeterChaplin"},tt2:{title:"Template Toolkit 2",require:["clike","markup-templating"],owner:"gflohr"},textile:{title:"Textile",require:"markup",optional:"css",owner:"Golmote"},toml:{title:"TOML",owner:"RunDevelopment"},tremor:{title:"Tremor",alias:["trickle","troy"],owner:"darach",aliasTitles:{trickle:"trickle",troy:"troy"}},turtle:{title:"Turtle",alias:"trig",aliasTitles:{trig:"TriG"},owner:"jakubklimek"},twig:{title:"Twig",require:"markup-templating",owner:"brandonkelly"},typescript:{title:"TypeScript",require:"javascript",optional:"js-templates",alias:"ts",owner:"vkbansal"},typoscript:{title:"TypoScript",alias:"tsconfig",aliasTitles:{tsconfig:"TSConfig"},owner:"dkern"},unrealscript:{title:"UnrealScript",alias:["uscript","uc"],owner:"RunDevelopment"},uorazor:{title:"UO Razor Script",owner:"jaseowns"},uri:{title:"URI",alias:"url",aliasTitles:{url:"URL"},owner:"RunDevelopment"},v:{title:"V",require:"clike",owner:"taggon"},vala:{title:"Vala",require:"clike",optional:"regex",owner:"TemplarVolk"},vbnet:{title:"VB.Net",require:"basic",owner:"Bigsby"},velocity:{title:"Velocity",require:"markup",owner:"Golmote"},verilog:{title:"Verilog",owner:"a-rey"},vhdl:{title:"VHDL",owner:"a-rey"},vim:{title:"vim",owner:"westonganger"},"visual-basic":{title:"Visual Basic",alias:["vb","vba"],aliasTitles:{vba:"VBA"},owner:"Golmote"},warpscript:{title:"WarpScript",owner:"RunDevelopment"},wasm:{title:"WebAssembly",owner:"Golmote"},"web-idl":{title:"Web IDL",alias:"webidl",owner:"RunDevelopment"},wgsl:{title:"WGSL",owner:"Dr4gonthree"},wiki:{title:"Wiki markup",require:"markup",owner:"Golmote"},wolfram:{title:"Wolfram language",alias:["mathematica","nb","wl"],aliasTitles:{mathematica:"Mathematica",nb:"Mathematica Notebook"},owner:"msollami"},wren:{title:"Wren",owner:"clsource"},xeora:{title:"Xeora",require:"markup",alias:"xeoracube",aliasTitles:{xeoracube:"XeoraCube"},owner:"freakmaxi"},"xml-doc":{title:"XML doc (.net)",require:"markup",modify:["csharp","fsharp","vbnet"],owner:"RunDevelopment"},xojo:{title:"Xojo (REALbasic)",owner:"Golmote"},xquery:{title:"XQuery",require:"markup",owner:"Golmote"},yaml:{title:"YAML",alias:"yml",owner:"hason"},yang:{title:"YANG",owner:"RunDevelopment"},zig:{title:"Zig",owner:"RunDevelopment"}},plugins:{meta:{path:"plugins/{id}/prism-{id}",link:"plugins/{id}/"},"line-highlight":{title:"Line Highlight",description:"Highlights specific lines and/or line ranges."},"line-numbers":{title:"Line Numbers",description:"Line number at the beginning of code lines.",owner:"kuba-kubula"},"show-invisibles":{title:"Show Invisibles",description:"Show hidden characters such as tabs and line breaks.",optional:["autolinker","data-uri-highlight"]},autolinker:{title:"Autolinker",description:"Converts URLs and emails in code to clickable links. Parses Markdown links in comments."},wpd:{title:"WebPlatform Docs",description:'Makes tokens link to <a href="https://webplatform.github.io/docs/">WebPlatform.org documentation</a>. The links open in a new tab.'},"custom-class":{title:"Custom Class",description:"This plugin allows you to prefix Prism's default classes (<code>.comment</code> can become <code>.namespace--comment</code>) or replace them with your defined ones (like <code>.editor__comment</code>). You can even add new classes.",owner:"dvkndn",noCSS:!0},"file-highlight":{title:"File Highlight",description:"Fetch external files and highlight them with Prism. Used on the Prism website itself.",noCSS:!0},"show-language":{title:"Show Language",description:"Display the highlighted language in code blocks (inline code does not show the label).",owner:"nauzilus",noCSS:!0,require:"toolbar"},"jsonp-highlight":{title:"JSONP Highlight",description:"Fetch content with JSONP and highlight some interesting content (e.g. GitHub/Gists or Bitbucket API).",noCSS:!0,owner:"nauzilus"},"highlight-keywords":{title:"Highlight Keywords",description:"Adds special CSS classes for each keyword for fine-grained highlighting.",owner:"vkbansal",noCSS:!0},"remove-initial-line-feed":{title:"Remove initial line feed",description:"Removes the initial line feed in code blocks.",owner:"Golmote",noCSS:!0},"inline-color":{title:"Inline color",description:"Adds a small inline preview for colors in style sheets.",require:"css-extras",owner:"RunDevelopment"},previewers:{title:"Previewers",description:"Previewers for angles, colors, gradients, easing and time.",require:"css-extras",owner:"Golmote"},autoloader:{title:"Autoloader",description:"Automatically loads the needed languages to highlight the code blocks.",owner:"Golmote",noCSS:!0},"keep-markup":{title:"Keep Markup",description:"Prevents custom markup from being dropped out during highlighting.",owner:"Golmote",optional:"normalize-whitespace",noCSS:!0},"command-line":{title:"Command Line",description:"Display a command line with a prompt and, optionally, the output/response from the commands.",owner:"chriswells0"},"unescaped-markup":{title:"Unescaped Markup",description:"Write markup without having to escape anything."},"normalize-whitespace":{title:"Normalize Whitespace",description:"Supports multiple operations to normalize whitespace in code blocks.",owner:"zeitgeist87",optional:"unescaped-markup",noCSS:!0},"data-uri-highlight":{title:"Data-URI Highlight",description:"Highlights data-URI contents.",owner:"Golmote",noCSS:!0},toolbar:{title:"Toolbar",description:"Attach a toolbar for plugins to easily register buttons on the top of a code block.",owner:"mAAdhaTTah"},"copy-to-clipboard":{title:"Copy to Clipboard Button",description:"Add a button that copies the code block to the clipboard when clicked.",owner:"mAAdhaTTah",require:"toolbar",noCSS:!0},"download-button":{title:"Download Button",description:"A button in the toolbar of a code block adding a convenient way to download a code file.",owner:"Golmote",require:"toolbar",noCSS:!0},"match-braces":{title:"Match braces",description:"Highlights matching braces.",owner:"RunDevelopment"},"diff-highlight":{title:"Diff Highlight",description:"Highlights the code inside diff blocks.",owner:"RunDevelopment",require:"diff"},"filter-highlight-all":{title:"Filter highlightAll",description:"Filters the elements the <code>highlightAll</code> and <code>highlightAllUnder</code> methods actually highlight.",owner:"RunDevelopment",noCSS:!0},treeview:{title:"Treeview",description:"A language with special styles to highlight file system tree structures.",owner:"Golmote"}}})},2885:(e,t,n)=>{const r=n(9901),a=n(9642),o=new Set;function i(e){void 0===e?e=Object.keys(r.languages).filter((e=>"meta"!=e)):Array.isArray(e)||(e=[e]);const t=[...o,...Object.keys(Prism.languages)];a(r,e,t).load((e=>{if(!(e in r.languages))return void(i.silent||console.warn("Language does not exist: "+e));const t="./prism-"+e;delete n.c[n(6500).resolve(t)],delete Prism.languages[e],n(6500)(t),o.add(e)}))}i.silent=!1,e.exports=i},6854:()=>{!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,a,o){if(n.language===r){var i=n.tokenStack=[];n.code=n.code.replace(a,(function(e){if("function"==typeof o&&!o(e))return e;for(var a,s=i.length;-1!==n.code.indexOf(a=t(r,s));)++s;return i[s]=e,a})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var a=0,o=Object.keys(n.tokenStack);!function i(s){for(var l=0;l<s.length&&!(a>=o.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=o[a],d=n.tokenStack[u],p="string"==typeof c?c:c.content,f=t(r,u),m=p.indexOf(f);if(m>-1){++a;var g=p.substring(0,m),h=new e.Token(r,e.tokenize(d,n.grammar),"language-"+r,d),b=p.substring(m+f.length),v=[];g&&v.push.apply(v,i([g])),v.push(h),b&&v.push.apply(v,i([b])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&i(c.content)}return s}(n.tokens)}}}})}(Prism)},6726:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6726},6500:(e,t,n)=>{var r={"./":2885};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=6500},9642:e=>{"use strict";var t=function(){var e=function(){};function t(e,t){Array.isArray(e)?e.forEach(t):null!=e&&t(e,0)}function n(e){for(var t={},n=0,r=e.length;n<r;n++)t[e[n]]=!0;return t}function r(e){var n={},r=[];function a(r,o){if(!(r in n)){o.push(r);var i=o.indexOf(r);if(i<o.length-1)throw new Error("Circular dependency: "+o.slice(i).join(" -> "));var s={},l=e[r];if(l){function c(t){if(!(t in e))throw new Error(r+" depends on an unknown component "+t);if(!(t in s))for(var i in a(t,o),s[t]=!0,n[t])s[i]=!0}t(l.require,c),t(l.optional,c),t(l.modify,c)}n[r]=s,o.pop()}}return function(e){var t=n[e];return t||(a(e,r),t=n[e]),t}}function a(e){for(var t in e)return!0;return!1}return function(o,i,s){var l=function(e){var t={};for(var n in e){var r=e[n];for(var a in r)if("meta"!=a){var o=r[a];t[a]="string"==typeof o?{title:o}:o}}return t}(o),c=function(e){var n;return function(r){if(r in e)return r;if(!n)for(var a in n={},e){var o=e[a];t(o&&o.alias,(function(t){if(t in n)throw new Error(t+" cannot be alias for both "+a+" and "+n[t]);if(t in e)throw new Error(t+" cannot be alias of "+a+" because it is a component.");n[t]=a}))}return n[r]||r}}(l);i=i.map(c),s=(s||[]).map(c);var u=n(i),d=n(s);i.forEach((function e(n){var r=l[n];t(r&&r.require,(function(t){t in d||(u[t]=!0,e(t))}))}));for(var p,f=r(l),m=u;a(m);){for(var g in p={},m){var h=l[g];t(h&&h.modify,(function(e){e in d&&(p[e]=!0)}))}for(var b in d)if(!(b in u))for(var v in f(b))if(v in u){p[b]=!0;break}for(var y in m=p)u[y]=!0}var w={getIds:function(){var e=[];return w.load((function(t){e.push(t)})),e},load:function(t,n){return function(t,n,r,a){var o=a?a.series:void 0,i=a?a.parallel:e,s={},l={};function c(e){if(e in s)return s[e];l[e]=!0;var a,u=[];for(var d in t(e))d in n&&u.push(d);if(0===u.length)a=r(e);else{var p=i(u.map((function(e){var t=c(e);return delete l[e],t})));o?a=o(p,(function(){return r(e)})):r(e)}return s[e]=a}for(var u in n)c(u);var d=[];for(var p in l)d.push(s[p]);return i(d)}(f,u,t,n)}};return w}}();e.exports=t},2703:(e,t,n)=>{"use strict";var r=n(414);function a(){}function o(){}o.resetWarningCache=a,e.exports=function(){function e(e,t,n,a,o,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:o,resetWarningCache:a};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),a=n(3840);function o(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var u=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),d=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function g(e,t,n,r,a,o,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=a,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=o,this.removeEmptyString=i}var h={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){h[e]=new g(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];h[t]=new g(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){h[e]=new g(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){h[e]=new g(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){h[e]=new g(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){h[e]=new g(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){h[e]=new g(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){h[e]=new g(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){h[e]=new g(e,5,!1,e.toLowerCase(),null,!1,!1)}));var b=/[\-:]([a-z])/g;function v(e){return e[1].toUpperCase()}function y(e,t,n,r){var a=h.hasOwnProperty(t)?h[t]:null;(null!==a?0!==a.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,a,r)&&(n=null),r||null===a?function(e){return!!d.call(m,e)||!d.call(f,e)&&(p.test(e)?m[e]=!0:(f[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):a.mustUseProperty?e[a.propertyName]=null===n?3!==a.type&&"":n:(t=a.attributeName,r=a.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(a=a.type)||4===a&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(b,v);h[t]=new g(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(b,v);h[t]=new g(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(b,v);h[t]=new g(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!1,!1)})),h.xlinkHref=new g("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){h[e]=new g(e,1,!1,e.toLowerCase(),null,!0,!0)}));var w=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,k=Symbol.for("react.element"),x=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),_=Symbol.for("react.profiler"),C=Symbol.for("react.provider"),T=Symbol.for("react.context"),j=Symbol.for("react.forward_ref"),A=Symbol.for("react.suspense"),L=Symbol.for("react.suspense_list"),R=Symbol.for("react.memo"),N=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var P=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var O=Symbol.iterator;function I(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=O&&e[O]||e["@@iterator"])?e:null}var D,M=Object.assign;function F(e){if(void 0===D)try{throw Error()}catch(n){var t=n.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var z=!1;function B(e,t){if(!e||z)return"";z=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(c){var r=c}Reflect.construct(e,[],t)}else{try{t.call()}catch(c){r=c}e.call(t.prototype)}else{try{throw Error()}catch(c){r=c}e()}}catch(c){if(c&&r&&"string"==typeof c.stack){for(var a=c.stack.split("\n"),o=r.stack.split("\n"),i=a.length-1,s=o.length-1;1<=i&&0<=s&&a[i]!==o[s];)s--;for(;1<=i&&0<=s;i--,s--)if(a[i]!==o[s]){if(1!==i||1!==s)do{if(i--,0>--s||a[i]!==o[s]){var l="\n"+a[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{z=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?F(e):""}function U(e){switch(e.tag){case 5:return F(e.type);case 16:return F("Lazy");case 13:return F("Suspense");case 19:return F("SuspenseList");case 0:case 2:case 15:return e=B(e.type,!1);case 11:return e=B(e.type.render,!1);case 1:return e=B(e.type,!0);default:return""}}function $(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case S:return"Fragment";case x:return"Portal";case _:return"Profiler";case E:return"StrictMode";case A:return"Suspense";case L:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case C:return(e._context.displayName||"Context")+".Provider";case j:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case R:return null!==(t=e.displayName||null)?t:$(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return $(e(t))}catch(n){}}return null}function q(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function Z(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function G(e){e._valueTracker||(e._valueTracker=function(e){var t=Z(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var a=n.get,o=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return a.call(this)},set:function(e){r=""+e,o.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function V(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=Z(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function W(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Q(e,t){var n=t.checked;return M({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function K(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=H(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function Y(e,t){null!=(t=t.checked)&&y(e,"checked",t,!1)}function X(e,t){Y(e,t);var n=H(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,H(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function J(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&W(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var a=0;a<n.length;a++)t["$"+n[a]]=!0;for(n=0;n<e.length;n++)a=t.hasOwnProperty("$"+e[n].value),e[n].selected!==a&&(e[n].selected=a),a&&r&&(e[n].defaultSelected=!0)}else{for(n=""+H(n),t=null,a=0;a<e.length;a++){if(e[a].value===n)return e[a].selected=!0,void(r&&(e[a].defaultSelected=!0));null!==t||e[a].disabled||(t=e[a])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(o(91));return M({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function ae(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(o(92));if(te(n)){if(1<n.length)throw Error(o(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:H(n)}}function oe(e,t){var n=H(t.value),r=H(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,ue,de=(ue=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return ue(e,t)}))}:ue);function pe(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var fe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function ge(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||fe.hasOwnProperty(e)&&fe[e]?(""+t).trim():t+"px"}function he(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),a=ge(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,a):e[n]=a}}Object.keys(fe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),fe[t]=fe[e]}))}));var be=M({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function ve(e,t){if(t){if(be[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(o(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(o(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(o(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(o(62))}}function ye(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var we=null;function ke(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var xe=null,Se=null,Ee=null;function _e(e){if(e=ya(e)){if("function"!=typeof xe)throw Error(o(280));var t=e.stateNode;t&&(t=ka(t),xe(e.stateNode,e.type,t))}}function Ce(e){Se?Ee?Ee.push(e):Ee=[e]:Se=e}function Te(){if(Se){var e=Se,t=Ee;if(Ee=Se=null,_e(e),t)for(e=0;e<t.length;e++)_e(t[e])}}function je(e,t){return e(t)}function Ae(){}var Le=!1;function Re(e,t,n){if(Le)return e(t,n);Le=!0;try{return je(e,t,n)}finally{Le=!1,(null!==Se||null!==Ee)&&(Ae(),Te())}}function Ne(e,t){var n=e.stateNode;if(null===n)return null;var r=ka(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(o(231,t,typeof n));return n}var Pe=!1;if(u)try{var Oe={};Object.defineProperty(Oe,"passive",{get:function(){Pe=!0}}),window.addEventListener("test",Oe,Oe),window.removeEventListener("test",Oe,Oe)}catch(ue){Pe=!1}function Ie(e,t,n,r,a,o,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(u){this.onError(u)}}var De=!1,Me=null,Fe=!1,ze=null,Be={onError:function(e){De=!0,Me=e}};function Ue(e,t,n,r,a,o,i,s,l){De=!1,Me=null,Ie.apply(Be,arguments)}function $e(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function qe(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&(null!==(e=e.alternate)&&(t=e.memoizedState)),null!==t)return t.dehydrated}return null}function He(e){if($e(e)!==e)throw Error(o(188))}function Ze(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=$e(e)))throw Error(o(188));return t!==e?null:e}for(var n=e,r=t;;){var a=n.return;if(null===a)break;var i=a.alternate;if(null===i){if(null!==(r=a.return)){n=r;continue}break}if(a.child===i.child){for(i=a.child;i;){if(i===n)return He(a),e;if(i===r)return He(a),t;i=i.sibling}throw Error(o(188))}if(n.return!==r.return)n=a,r=i;else{for(var s=!1,l=a.child;l;){if(l===n){s=!0,n=a,r=i;break}if(l===r){s=!0,r=a,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=a;break}if(l===r){s=!0,r=i,n=a;break}l=l.sibling}if(!s)throw Error(o(189))}}if(n.alternate!==r)throw Error(o(190))}if(3!==n.tag)throw Error(o(188));return n.stateNode.current===n?e:t}(e))?Ge(e):null}function Ge(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ge(e);if(null!==t)return t;e=e.sibling}return null}var Ve=a.unstable_scheduleCallback,We=a.unstable_cancelCallback,Qe=a.unstable_shouldYield,Ke=a.unstable_requestPaint,Ye=a.unstable_now,Xe=a.unstable_getCurrentPriorityLevel,Je=a.unstable_ImmediatePriority,et=a.unstable_UserBlockingPriority,tt=a.unstable_NormalPriority,nt=a.unstable_LowPriority,rt=a.unstable_IdlePriority,at=null,ot=null;var it=Math.clz32?Math.clz32:function(e){return e>>>=0,0===e?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2;var ct=64,ut=4194304;function dt(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function pt(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,a=e.suspendedLanes,o=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~a;0!==s?r=dt(s):0!==(o&=i)&&(r=dt(o))}else 0!==(i=n&~a)?r=dt(i):0!==o&&(r=dt(o));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&a)&&((a=r&-r)>=(o=t&-t)||16===a&&0!=(4194240&o)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)a=1<<(n=31-it(t)),r|=e[n],t&=~a;return r}function ft(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!==(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function gt(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function ht(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function bt(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function vt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),a=1<<r;a&t|e[r]&t&&(e[r]|=t),n&=~a}}var yt=0;function wt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var kt,xt,St,Et,_t,Ct=!1,Tt=[],jt=null,At=null,Lt=null,Rt=new Map,Nt=new Map,Pt=[],Ot="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function It(e,t){switch(e){case"focusin":case"focusout":jt=null;break;case"dragenter":case"dragleave":At=null;break;case"mouseover":case"mouseout":Lt=null;break;case"pointerover":case"pointerout":Rt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Nt.delete(t.pointerId)}}function Dt(e,t,n,r,a,o){return null===e||e.nativeEvent!==o?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:o,targetContainers:[a]},null!==t&&(null!==(t=ya(t))&&xt(t)),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==a&&-1===t.indexOf(a)&&t.push(a),e)}function Mt(e){var t=va(e.target);if(null!==t){var n=$e(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=qe(n)))return e.blockedOn=t,void _t(e.priority,(function(){St(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ft(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Qt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=ya(n))&&xt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);we=r,n.target.dispatchEvent(r),we=null,t.shift()}return!0}function zt(e,t,n){Ft(e)&&n.delete(t)}function Bt(){Ct=!1,null!==jt&&Ft(jt)&&(jt=null),null!==At&&Ft(At)&&(At=null),null!==Lt&&Ft(Lt)&&(Lt=null),Rt.forEach(zt),Nt.forEach(zt)}function Ut(e,t){e.blockedOn===t&&(e.blockedOn=null,Ct||(Ct=!0,a.unstable_scheduleCallback(a.unstable_NormalPriority,Bt)))}function $t(e){function t(t){return Ut(t,e)}if(0<Tt.length){Ut(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==jt&&Ut(jt,e),null!==At&&Ut(At,e),null!==Lt&&Ut(Lt,e),Rt.forEach(t),Nt.forEach(t),n=0;n<Pt.length;n++)(r=Pt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Pt.length&&null===(n=Pt[0]).blockedOn;)Mt(n),null===n.blockedOn&&Pt.shift()}var qt=w.ReactCurrentBatchConfig,Ht=!0;function Zt(e,t,n,r){var a=yt,o=qt.transition;qt.transition=null;try{yt=1,Vt(e,t,n,r)}finally{yt=a,qt.transition=o}}function Gt(e,t,n,r){var a=yt,o=qt.transition;qt.transition=null;try{yt=4,Vt(e,t,n,r)}finally{yt=a,qt.transition=o}}function Vt(e,t,n,r){if(Ht){var a=Qt(e,t,n,r);if(null===a)Hr(e,t,r,Wt,n),It(e,r);else if(function(e,t,n,r,a){switch(t){case"focusin":return jt=Dt(jt,e,t,n,r,a),!0;case"dragenter":return At=Dt(At,e,t,n,r,a),!0;case"mouseover":return Lt=Dt(Lt,e,t,n,r,a),!0;case"pointerover":var o=a.pointerId;return Rt.set(o,Dt(Rt.get(o)||null,e,t,n,r,a)),!0;case"gotpointercapture":return o=a.pointerId,Nt.set(o,Dt(Nt.get(o)||null,e,t,n,r,a)),!0}return!1}(a,e,t,n,r))r.stopPropagation();else if(It(e,r),4&t&&-1<Ot.indexOf(e)){for(;null!==a;){var o=ya(a);if(null!==o&&kt(o),null===(o=Qt(e,t,n,r))&&Hr(e,t,r,Wt,n),o===a)break;a=o}null!==a&&r.stopPropagation()}else Hr(e,t,r,null,n)}}var Wt=null;function Qt(e,t,n,r){if(Wt=null,null!==(e=va(e=ke(r))))if(null===(t=$e(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=qe(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Wt=e,null}function Kt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Je:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Yt=null,Xt=null,Jt=null;function en(){if(Jt)return Jt;var e,t,n=Xt,r=n.length,a="value"in Yt?Yt.value:Yt.textContent,o=a.length;for(e=0;e<r&&n[e]===a[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===a[o-t];t++);return Jt=a.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function an(e){function t(t,n,r,a,o){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=a,this.target=o,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(a):a[i]);return this.isDefaultPrevented=(null!=a.defaultPrevented?a.defaultPrevented:!1===a.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return M(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var on,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},un=an(cn),dn=M({},cn,{view:0,detail:0}),pn=an(dn),fn=M({},dn,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_n,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(on=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=on=0,ln=e),on)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=an(fn),gn=an(M({},fn,{dataTransfer:0})),hn=an(M({},dn,{relatedTarget:0})),bn=an(M({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),vn=M({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),yn=an(vn),wn=an(M({},cn,{data:0})),kn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},xn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},Sn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=Sn[e])&&!!t[e]}function _n(){return En}var Cn=M({},dn,{key:function(e){if(e.key){var t=kn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?xn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_n,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=an(Cn),jn=an(M({},fn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),An=an(M({},dn,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_n})),Ln=an(M({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Rn=M({},fn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nn=an(Rn),Pn=[9,13,27,32],On=u&&"CompositionEvent"in window,In=null;u&&"documentMode"in document&&(In=document.documentMode);var Dn=u&&"TextEvent"in window&&!In,Mn=u&&(!On||In&&8<In&&11>=In),Fn=String.fromCharCode(32),zn=!1;function Bn(e,t){switch(e){case"keyup":return-1!==Pn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Un(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var $n=!1;var qn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!qn[e.type]:"textarea"===t}function Zn(e,t,n,r){Ce(r),0<(t=Gr(t,"onChange")).length&&(n=new un("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Gn=null,Vn=null;function Wn(e){Fr(e,0)}function Qn(e){if(V(wa(e)))return e}function Kn(e,t){if("change"===e)return t}var Yn=!1;if(u){var Xn;if(u){var Jn="oninput"in document;if(!Jn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jn="function"==typeof er.oninput}Xn=Jn}else Xn=!1;Yn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Gn&&(Gn.detachEvent("onpropertychange",nr),Vn=Gn=null)}function nr(e){if("value"===e.propertyName&&Qn(Vn)){var t=[];Zn(t,Vn,e,ke(e)),Re(Wn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Vn=n,(Gn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function ar(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Qn(Vn)}function or(e,t){if("click"===e)return Qn(t)}function ir(e,t){if("input"===e||"change"===e)return Qn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var a=n[r];if(!d.call(t,a)||!sr(e[a],t[a]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function ur(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function dr(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?dr(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function pr(){for(var e=window,t=W();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(r){n=!1}if(!n)break;t=W((e=t.contentWindow).document)}return t}function fr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=pr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&dr(n.ownerDocument.documentElement,n)){if(null!==r&&fr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var a=n.textContent.length,o=Math.min(r.start,a);r=void 0===r.end?o:Math.min(r.end,a),!e.extend&&o>r&&(a=r,r=o,o=a),a=ur(n,o);var i=ur(n,r);a&&i&&(1!==e.rangeCount||e.anchorNode!==a.node||e.anchorOffset!==a.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(a.node,a.offset),e.removeAllRanges(),o>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var gr=u&&"documentMode"in document&&11>=document.documentMode,hr=null,br=null,vr=null,yr=!1;function wr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;yr||null==hr||hr!==W(r)||("selectionStart"in(r=hr)&&fr(r)?r={start:r.selectionStart,end:r.selectionEnd}:r={anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},vr&&lr(vr,r)||(vr=r,0<(r=Gr(br,"onSelect")).length&&(t=new un("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=hr)))}function kr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var xr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},Sr={},Er={};function _r(e){if(Sr[e])return Sr[e];if(!xr[e])return e;var t,n=xr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return Sr[e]=n[t];return e}u&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete xr.animationend.animation,delete xr.animationiteration.animation,delete xr.animationstart.animation),"TransitionEvent"in window||delete xr.transitionend.transition);var Cr=_r("animationend"),Tr=_r("animationiteration"),jr=_r("animationstart"),Ar=_r("transitionend"),Lr=new Map,Rr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Nr(e,t){Lr.set(e,t),l(t,[e])}for(var Pr=0;Pr<Rr.length;Pr++){var Or=Rr[Pr];Nr(Or.toLowerCase(),"on"+(Or[0].toUpperCase()+Or.slice(1)))}Nr(Cr,"onAnimationEnd"),Nr(Tr,"onAnimationIteration"),Nr(jr,"onAnimationStart"),Nr("dblclick","onDoubleClick"),Nr("focusin","onFocus"),Nr("focusout","onBlur"),Nr(Ar,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Ir="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Ir));function Mr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,a,i,s,l,c){if(Ue.apply(this,arguments),De){if(!De)throw Error(o(198));var u=Me;De=!1,Me=null,Fe||(Fe=!0,ze=u)}}(r,t,void 0,e),e.currentTarget=null}function Fr(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],a=r.event;r=r.listeners;e:{var o=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==o&&a.isPropagationStopped())break e;Mr(a,s,c),o=l}}}if(Fe)throw e=ze,Fe=!1,ze=null,e}function zr(e,t){var n=t[ga];void 0===n&&(n=t[ga]=new Set);var r=e+"__bubble";n.has(r)||(qr(t,e,2,!1),n.add(r))}function Br(e,t,n){var r=0;t&&(r|=4),qr(n,e,r,t)}var Ur="_reactListening"+Math.random().toString(36).slice(2);function $r(e){if(!e[Ur]){e[Ur]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||Br(t,!1,e),Br(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Ur]||(t[Ur]=!0,Br("selectionchange",!1,t))}}function qr(e,t,n,r){switch(Kt(t)){case 1:var a=Zt;break;case 4:a=Gt;break;default:a=Vt}n=a.bind(null,t,n,e),a=void 0,!Pe||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(a=!0),r?void 0!==a?e.addEventListener(t,n,{capture:!0,passive:a}):e.addEventListener(t,n,!0):void 0!==a?e.addEventListener(t,n,{passive:a}):e.addEventListener(t,n,!1)}function Hr(e,t,n,r,a){var o=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===a||8===s.nodeType&&s.parentNode===a)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===a||8===l.nodeType&&l.parentNode===a))return;i=i.return}for(;null!==s;){if(null===(i=va(s)))return;if(5===(l=i.tag)||6===l){r=o=i;continue e}s=s.parentNode}}r=r.return}Re((function(){var r=o,a=ke(n),i=[];e:{var s=Lr.get(e);if(void 0!==s){var l=un,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=hn;break;case"focusout":c="blur",l=hn;break;case"beforeblur":case"afterblur":l=hn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=gn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=An;break;case Cr:case Tr:case jr:l=bn;break;case Ar:l=Ln;break;case"scroll":l=pn;break;case"wheel":l=Nn;break;case"copy":case"cut":case"paste":l=yn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=jn}var u=0!=(4&t),d=!u&&"scroll"===e,p=u?null!==s?s+"Capture":null:s;u=[];for(var f,m=r;null!==m;){var g=(f=m).stateNode;if(5===f.tag&&null!==g&&(f=g,null!==p&&(null!=(g=Ne(m,p))&&u.push(Zr(m,g,f)))),d)break;m=m.return}0<u.length&&(s=new l(s,c,null,n,a),i.push({event:s,listeners:u}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===we||!(c=n.relatedTarget||n.fromElement)||!va(c)&&!c[ma])&&(l||s)&&(s=a.window===a?a:(s=a.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?va(c):null)&&(c!==(d=$e(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(u=mn,g="onMouseLeave",p="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(u=jn,g="onPointerLeave",p="onPointerEnter",m="pointer"),d=null==l?s:wa(l),f=null==c?s:wa(c),(s=new u(g,m+"leave",l,n,a)).target=d,s.relatedTarget=f,g=null,va(a)===r&&((u=new u(p,m+"enter",c,n,a)).target=f,u.relatedTarget=d,g=u),d=g,l&&c)e:{for(p=c,m=0,f=u=l;f;f=Vr(f))m++;for(f=0,g=p;g;g=Vr(g))f++;for(;0<m-f;)u=Vr(u),m--;for(;0<f-m;)p=Vr(p),f--;for(;m--;){if(u===p||null!==p&&u===p.alternate)break e;u=Vr(u),p=Vr(p)}u=null}else u=null;null!==l&&Wr(i,s,l,u,!1),null!==c&&null!==d&&Wr(i,d,c,u,!0)}if("select"===(l=(s=r?wa(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var h=Kn;else if(Hn(s))if(Yn)h=ir;else{h=ar;var b=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(h=or);switch(h&&(h=h(e,r))?Zn(i,h,n,a):(b&&b(e,s,r),"focusout"===e&&(b=s._wrapperState)&&b.controlled&&"number"===s.type&&ee(s,"number",s.value)),b=r?wa(r):window,e){case"focusin":(Hn(b)||"true"===b.contentEditable)&&(hr=b,br=r,vr=null);break;case"focusout":vr=br=hr=null;break;case"mousedown":yr=!0;break;case"contextmenu":case"mouseup":case"dragend":yr=!1,wr(i,n,a);break;case"selectionchange":if(gr)break;case"keydown":case"keyup":wr(i,n,a)}var v;if(On)e:{switch(e){case"compositionstart":var y="onCompositionStart";break e;case"compositionend":y="onCompositionEnd";break e;case"compositionupdate":y="onCompositionUpdate";break e}y=void 0}else $n?Bn(e,n)&&(y="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(y="onCompositionStart");y&&(Mn&&"ko"!==n.locale&&($n||"onCompositionStart"!==y?"onCompositionEnd"===y&&$n&&(v=en()):(Xt="value"in(Yt=a)?Yt.value:Yt.textContent,$n=!0)),0<(b=Gr(r,y)).length&&(y=new wn(y,e,null,n,a),i.push({event:y,listeners:b}),v?y.data=v:null!==(v=Un(n))&&(y.data=v))),(v=Dn?function(e,t){switch(e){case"compositionend":return Un(t);case"keypress":return 32!==t.which?null:(zn=!0,Fn);case"textInput":return(e=t.data)===Fn&&zn?null:e;default:return null}}(e,n):function(e,t){if($n)return"compositionend"===e||!On&&Bn(e,t)?(e=en(),Jt=Xt=Yt=null,$n=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Mn&&"ko"!==t.locale?null:t.data}}(e,n))&&(0<(r=Gr(r,"onBeforeInput")).length&&(a=new wn("onBeforeInput","beforeinput",null,n,a),i.push({event:a,listeners:r}),a.data=v))}Fr(i,t)}))}function Zr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Gr(e,t){for(var n=t+"Capture",r=[];null!==e;){var a=e,o=a.stateNode;5===a.tag&&null!==o&&(a=o,null!=(o=Ne(e,n))&&r.unshift(Zr(e,o,a)),null!=(o=Ne(e,t))&&r.push(Zr(e,o,a))),e=e.return}return r}function Vr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Wr(e,t,n,r,a){for(var o=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,a?null!=(l=Ne(n,o))&&i.unshift(Zr(n,l,s)):a||null!=(l=Ne(n,o))&&i.push(Zr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Qr=/\r\n?/g,Kr=/\u0000|\uFFFD/g;function Yr(e){return("string"==typeof e?e:""+e).replace(Qr,"\n").replace(Kr,"")}function Xr(e,t,n){if(t=Yr(t),Yr(e)!==t&&n)throw Error(o(425))}function Jr(){}var ea=null,ta=null;function na(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ra="function"==typeof setTimeout?setTimeout:void 0,aa="function"==typeof clearTimeout?clearTimeout:void 0,oa="function"==typeof Promise?Promise:void 0,ia="function"==typeof queueMicrotask?queueMicrotask:void 0!==oa?function(e){return oa.resolve(null).then(e).catch(sa)}:ra;function sa(e){setTimeout((function(){throw e}))}function la(e,t){var n=t,r=0;do{var a=n.nextSibling;if(e.removeChild(n),a&&8===a.nodeType)if("/$"===(n=a.data)){if(0===r)return e.removeChild(a),void $t(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=a}while(n);$t(t)}function ca(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function ua(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var da=Math.random().toString(36).slice(2),pa="__reactFiber$"+da,fa="__reactProps$"+da,ma="__reactContainer$"+da,ga="__reactEvents$"+da,ha="__reactListeners$"+da,ba="__reactHandles$"+da;function va(e){var t=e[pa];if(t)return t;for(var n=e.parentNode;n;){if(t=n[ma]||n[pa]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=ua(e);null!==e;){if(n=e[pa])return n;e=ua(e)}return t}n=(e=n).parentNode}return null}function ya(e){return!(e=e[pa]||e[ma])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function wa(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(o(33))}function ka(e){return e[fa]||null}var xa=[],Sa=-1;function Ea(e){return{current:e}}function _a(e){0>Sa||(e.current=xa[Sa],xa[Sa]=null,Sa--)}function Ca(e,t){Sa++,xa[Sa]=e.current,e.current=t}var Ta={},ja=Ea(Ta),Aa=Ea(!1),La=Ta;function Ra(e,t){var n=e.type.contextTypes;if(!n)return Ta;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var a,o={};for(a in n)o[a]=t[a];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function Na(e){return null!=(e=e.childContextTypes)}function Pa(){_a(Aa),_a(ja)}function Oa(e,t,n){if(ja.current!==Ta)throw Error(o(168));Ca(ja,t),Ca(Aa,n)}function Ia(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var a in r=r.getChildContext())if(!(a in t))throw Error(o(108,q(e)||"Unknown",a));return M({},n,r)}function Da(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Ta,La=ja.current,Ca(ja,e),Ca(Aa,Aa.current),!0}function Ma(e,t,n){var r=e.stateNode;if(!r)throw Error(o(169));n?(e=Ia(e,t,La),r.__reactInternalMemoizedMergedChildContext=e,_a(Aa),_a(ja),Ca(ja,e)):_a(Aa),Ca(Aa,n)}var Fa=null,za=!1,Ba=!1;function Ua(e){null===Fa?Fa=[e]:Fa.push(e)}function $a(){if(!Ba&&null!==Fa){Ba=!0;var e=0,t=yt;try{var n=Fa;for(yt=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Fa=null,za=!1}catch(a){throw null!==Fa&&(Fa=Fa.slice(e+1)),Ve(Je,$a),a}finally{yt=t,Ba=!1}}return null}var qa=[],Ha=0,Za=null,Ga=0,Va=[],Wa=0,Qa=null,Ka=1,Ya="";function Xa(e,t){qa[Ha++]=Ga,qa[Ha++]=Za,Za=e,Ga=t}function Ja(e,t,n){Va[Wa++]=Ka,Va[Wa++]=Ya,Va[Wa++]=Qa,Qa=e;var r=Ka;e=Ya;var a=32-it(r)-1;r&=~(1<<a),n+=1;var o=32-it(t)+a;if(30<o){var i=a-a%5;o=(r&(1<<i)-1).toString(32),r>>=i,a-=i,Ka=1<<32-it(t)+a|n<<a|r,Ya=o+e}else Ka=1<<o|n<<a|r,Ya=e}function eo(e){null!==e.return&&(Xa(e,1),Ja(e,1,0))}function to(e){for(;e===Za;)Za=qa[--Ha],qa[Ha]=null,Ga=qa[--Ha],qa[Ha]=null;for(;e===Qa;)Qa=Va[--Wa],Va[Wa]=null,Ya=Va[--Wa],Va[Wa]=null,Ka=Va[--Wa],Va[Wa]=null}var no=null,ro=null,ao=!1,oo=null;function io(e,t){var n=Nc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function so(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,no=e,ro=ca(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,no=e,ro=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==Qa?{id:Ka,overflow:Ya}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,no=e,ro=null,!0);default:return!1}}function lo(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function co(e){if(ao){var t=ro;if(t){var n=t;if(!so(e,t)){if(lo(e))throw Error(o(418));t=ca(n.nextSibling);var r=no;t&&so(e,t)?io(r,n):(e.flags=-4097&e.flags|2,ao=!1,no=e)}}else{if(lo(e))throw Error(o(418));e.flags=-4097&e.flags|2,ao=!1,no=e}}}function uo(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;no=e}function po(e){if(e!==no)return!1;if(!ao)return uo(e),ao=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!na(e.type,e.memoizedProps)),t&&(t=ro)){if(lo(e))throw fo(),Error(o(418));for(;t;)io(e,t),t=ca(t.nextSibling)}if(uo(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(o(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){ro=ca(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}ro=null}}else ro=no?ca(e.stateNode.nextSibling):null;return!0}function fo(){for(var e=ro;e;)e=ca(e.nextSibling)}function mo(){ro=no=null,ao=!1}function go(e){null===oo?oo=[e]:oo.push(e)}var ho=w.ReactCurrentBatchConfig;function bo(e,t){if(e&&e.defaultProps){for(var n in t=M({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var vo=Ea(null),yo=null,wo=null,ko=null;function xo(){ko=wo=yo=null}function So(e){var t=vo.current;_a(vo),e._currentValue=t}function Eo(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function _o(e,t){yo=e,ko=wo=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ws=!0),e.firstContext=null)}function Co(e){var t=e._currentValue;if(ko!==e)if(e={context:e,memoizedValue:t,next:null},null===wo){if(null===yo)throw Error(o(308));wo=e,yo.dependencies={lanes:0,firstContext:e}}else wo=wo.next=e;return t}var To=null;function jo(e){null===To?To=[e]:To.push(e)}function Ao(e,t,n,r){var a=t.interleaved;return null===a?(n.next=n,jo(t)):(n.next=a.next,a.next=n),t.interleaved=n,Lo(e,r)}function Lo(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Ro=!1;function No(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Po(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Oo(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Io(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&Al)){var a=r.pending;return null===a?t.next=t:(t.next=a.next,a.next=t),r.pending=t,Lo(e,n)}return null===(a=r.interleaved)?(t.next=t,jo(r)):(t.next=a.next,a.next=t),r.interleaved=t,Lo(e,n)}function Do(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}function Mo(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var a=null,o=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===o?a=o=i:o=o.next=i,n=n.next}while(null!==n);null===o?a=o=t:o=o.next=t}else a=o=t;return n={baseState:r.baseState,firstBaseUpdate:a,lastBaseUpdate:o,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Fo(e,t,n,r){var a=e.updateQueue;Ro=!1;var o=a.firstBaseUpdate,i=a.lastBaseUpdate,s=a.shared.pending;if(null!==s){a.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?o=c:i.next=c,i=l;var u=e.alternate;null!==u&&((s=(u=u.updateQueue).lastBaseUpdate)!==i&&(null===s?u.firstBaseUpdate=c:s.next=c,u.lastBaseUpdate=l))}if(null!==o){var d=a.baseState;for(i=0,u=c=l=null,s=o;;){var p=s.lane,f=s.eventTime;if((r&p)===p){null!==u&&(u=u.next={eventTime:f,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,g=s;switch(p=t,f=n,g.tag){case 1:if("function"==typeof(m=g.payload)){d=m.call(f,d,p);break e}d=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(p="function"==typeof(m=g.payload)?m.call(f,d,p):m))break e;d=M({},d,p);break e;case 2:Ro=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(p=a.effects)?a.effects=[s]:p.push(s))}else f={eventTime:f,lane:p,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===u?(c=u=f,l=d):u=u.next=f,i|=p;if(null===(s=s.next)){if(null===(s=a.shared.pending))break;s=(p=s).next,p.next=null,a.lastBaseUpdate=p,a.shared.pending=null}}if(null===u&&(l=d),a.baseState=l,a.firstBaseUpdate=c,a.lastBaseUpdate=u,null!==(t=a.shared.interleaved)){a=t;do{i|=a.lane,a=a.next}while(a!==t)}else null===o&&(a.shared.lanes=0);Ml|=i,e.lanes=i,e.memoizedState=d}}function zo(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],a=r.callback;if(null!==a){if(r.callback=null,r=n,"function"!=typeof a)throw Error(o(191,a));a.call(r)}}}var Bo=(new r.Component).refs;function Uo(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:M({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var $o={isMounted:function(e){return!!(e=e._reactInternals)&&$e(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),a=nc(e),o=Oo(r,a);o.tag=1,o.payload=t,null!=n&&(o.callback=n),null!==(t=Io(e,o,a))&&(rc(t,e,a,r),Do(t,e,a))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),a=Oo(n,r);a.tag=2,null!=t&&(a.callback=t),null!==(t=Io(e,a,r))&&(rc(t,e,r,n),Do(t,e,r))}};function qo(e,t,n,r,a,o,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,o,i):!t.prototype||!t.prototype.isPureReactComponent||(!lr(n,r)||!lr(a,o))}function Ho(e,t,n){var r=!1,a=Ta,o=t.contextType;return"object"==typeof o&&null!==o?o=Co(o):(a=Na(t)?La:ja.current,o=(r=null!=(r=t.contextTypes))?Ra(e,a):Ta),t=new t(n,o),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=$o,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=a,e.__reactInternalMemoizedMaskedChildContext=o),t}function Zo(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&$o.enqueueReplaceState(t,t.state,null)}function Go(e,t,n,r){var a=e.stateNode;a.props=n,a.state=e.memoizedState,a.refs=Bo,No(e);var o=t.contextType;"object"==typeof o&&null!==o?a.context=Co(o):(o=Na(t)?La:ja.current,a.context=Ra(e,o)),a.state=e.memoizedState,"function"==typeof(o=t.getDerivedStateFromProps)&&(Uo(e,t,o,n),a.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof a.getSnapshotBeforeUpdate||"function"!=typeof a.UNSAFE_componentWillMount&&"function"!=typeof a.componentWillMount||(t=a.state,"function"==typeof a.componentWillMount&&a.componentWillMount(),"function"==typeof a.UNSAFE_componentWillMount&&a.UNSAFE_componentWillMount(),t!==a.state&&$o.enqueueReplaceState(a,a.state,null),Fo(e,n,a,r),a.state=e.memoizedState),"function"==typeof a.componentDidMount&&(e.flags|=4194308)}function Vo(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(o(309));var r=n.stateNode}if(!r)throw Error(o(147,e));var a=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=a.refs;t===Bo&&(t=a.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(o(284));if(!n._owner)throw Error(o(290,e))}return e}function Wo(e,t){throw e=Object.prototype.toString.call(t),Error(o(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Qo(e){return(0,e._init)(e._payload)}function Ko(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function a(e,t){return(e=Oc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Fc(n,e.mode,r)).return=e,t):((t=a(t,n)).return=e,t)}function c(e,t,n,r){var o=n.type;return o===S?d(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===o||"object"==typeof o&&null!==o&&o.$$typeof===N&&Qo(o)===t.type)?((r=a(t,n.props)).ref=Vo(e,t,n),r.return=e,r):((r=Ic(n.type,n.key,n.props,null,e.mode,r)).ref=Vo(e,t,n),r.return=e,r)}function u(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=zc(n,e.mode,r)).return=e,t):((t=a(t,n.children||[])).return=e,t)}function d(e,t,n,r,o){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,o)).return=e,t):((t=a(t,n)).return=e,t)}function p(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Fc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case k:return(n=Ic(t.type,t.key,t.props,null,e.mode,n)).ref=Vo(e,null,t),n.return=e,n;case x:return(t=zc(t,e.mode,n)).return=e,t;case N:return p(e,(0,t._init)(t._payload),n)}if(te(t)||I(t))return(t=Dc(t,e.mode,n,null)).return=e,t;Wo(e,t)}return null}function f(e,t,n,r){var a=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==a?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case k:return n.key===a?c(e,t,n,r):null;case x:return n.key===a?u(e,t,n,r):null;case N:return f(e,t,(a=n._init)(n._payload),r)}if(te(n)||I(n))return null!==a?null:d(e,t,n,r,null);Wo(e,n)}return null}function m(e,t,n,r,a){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,a);if("object"==typeof r&&null!==r){switch(r.$$typeof){case k:return c(t,e=e.get(null===r.key?n:r.key)||null,r,a);case x:return u(t,e=e.get(null===r.key?n:r.key)||null,r,a);case N:return m(e,t,n,(0,r._init)(r._payload),a)}if(te(r)||I(r))return d(t,e=e.get(n)||null,r,a,null);Wo(t,r)}return null}function g(a,o,s,l){for(var c=null,u=null,d=o,g=o=0,h=null;null!==d&&g<s.length;g++){d.index>g?(h=d,d=null):h=d.sibling;var b=f(a,d,s[g],l);if(null===b){null===d&&(d=h);break}e&&d&&null===b.alternate&&t(a,d),o=i(b,o,g),null===u?c=b:u.sibling=b,u=b,d=h}if(g===s.length)return n(a,d),ao&&Xa(a,g),c;if(null===d){for(;g<s.length;g++)null!==(d=p(a,s[g],l))&&(o=i(d,o,g),null===u?c=d:u.sibling=d,u=d);return ao&&Xa(a,g),c}for(d=r(a,d);g<s.length;g++)null!==(h=m(d,a,g,s[g],l))&&(e&&null!==h.alternate&&d.delete(null===h.key?g:h.key),o=i(h,o,g),null===u?c=h:u.sibling=h,u=h);return e&&d.forEach((function(e){return t(a,e)})),ao&&Xa(a,g),c}function h(a,s,l,c){var u=I(l);if("function"!=typeof u)throw Error(o(150));if(null==(l=u.call(l)))throw Error(o(151));for(var d=u=null,g=s,h=s=0,b=null,v=l.next();null!==g&&!v.done;h++,v=l.next()){g.index>h?(b=g,g=null):b=g.sibling;var y=f(a,g,v.value,c);if(null===y){null===g&&(g=b);break}e&&g&&null===y.alternate&&t(a,g),s=i(y,s,h),null===d?u=y:d.sibling=y,d=y,g=b}if(v.done)return n(a,g),ao&&Xa(a,h),u;if(null===g){for(;!v.done;h++,v=l.next())null!==(v=p(a,v.value,c))&&(s=i(v,s,h),null===d?u=v:d.sibling=v,d=v);return ao&&Xa(a,h),u}for(g=r(a,g);!v.done;h++,v=l.next())null!==(v=m(g,a,h,v.value,c))&&(e&&null!==v.alternate&&g.delete(null===v.key?h:v.key),s=i(v,s,h),null===d?u=v:d.sibling=v,d=v);return e&&g.forEach((function(e){return t(a,e)})),ao&&Xa(a,h),u}return function e(r,o,i,l){if("object"==typeof i&&null!==i&&i.type===S&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case k:e:{for(var c=i.key,u=o;null!==u;){if(u.key===c){if((c=i.type)===S){if(7===u.tag){n(r,u.sibling),(o=a(u,i.props.children)).return=r,r=o;break e}}else if(u.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===N&&Qo(c)===u.type){n(r,u.sibling),(o=a(u,i.props)).ref=Vo(r,u,i),o.return=r,r=o;break e}n(r,u);break}t(r,u),u=u.sibling}i.type===S?((o=Dc(i.props.children,r.mode,l,i.key)).return=r,r=o):((l=Ic(i.type,i.key,i.props,null,r.mode,l)).ref=Vo(r,o,i),l.return=r,r=l)}return s(r);case x:e:{for(u=i.key;null!==o;){if(o.key===u){if(4===o.tag&&o.stateNode.containerInfo===i.containerInfo&&o.stateNode.implementation===i.implementation){n(r,o.sibling),(o=a(o,i.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=zc(i,r.mode,l)).return=r,r=o}return s(r);case N:return e(r,o,(u=i._init)(i._payload),l)}if(te(i))return g(r,o,i,l);if(I(i))return h(r,o,i,l);Wo(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==o&&6===o.tag?(n(r,o.sibling),(o=a(o,i)).return=r,r=o):(n(r,o),(o=Fc(i,r.mode,l)).return=r,r=o),s(r)):n(r,o)}}var Yo=Ko(!0),Xo=Ko(!1),Jo={},ei=Ea(Jo),ti=Ea(Jo),ni=Ea(Jo);function ri(e){if(e===Jo)throw Error(o(174));return e}function ai(e,t){switch(Ca(ni,t),Ca(ti,e),Ca(ei,Jo),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}_a(ei),Ca(ei,t)}function oi(){_a(ei),_a(ti),_a(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(Ca(ti,e),Ca(ei,n))}function si(e){ti.current===e&&(_a(ei),_a(ti))}var li=Ea(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var ui=[];function di(){for(var e=0;e<ui.length;e++)ui[e]._workInProgressVersionPrimary=null;ui.length=0}var pi=w.ReactCurrentDispatcher,fi=w.ReactCurrentBatchConfig,mi=0,gi=null,hi=null,bi=null,vi=!1,yi=!1,wi=0,ki=0;function xi(){throw Error(o(321))}function Si(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,a,i){if(mi=i,gi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,pi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,a),yi){i=0;do{if(yi=!1,wi=0,25<=i)throw Error(o(301));i+=1,bi=hi=null,t.updateQueue=null,pi.current=cs,e=n(r,a)}while(yi)}if(pi.current=is,t=null!==hi&&null!==hi.next,mi=0,bi=hi=gi=null,vi=!1,t)throw Error(o(300));return e}function _i(){var e=0!==wi;return wi=0,e}function Ci(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===bi?gi.memoizedState=bi=e:bi=bi.next=e,bi}function Ti(){if(null===hi){var e=gi.alternate;e=null!==e?e.memoizedState:null}else e=hi.next;var t=null===bi?gi.memoizedState:bi.next;if(null!==t)bi=t,hi=e;else{if(null===e)throw Error(o(310));e={memoizedState:(hi=e).memoizedState,baseState:hi.baseState,baseQueue:hi.baseQueue,queue:hi.queue,next:null},null===bi?gi.memoizedState=bi=e:bi=bi.next=e}return bi}function ji(e,t){return"function"==typeof t?t(e):t}function Ai(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=hi,a=r.baseQueue,i=n.pending;if(null!==i){if(null!==a){var s=a.next;a.next=i.next,i.next=s}r.baseQueue=a=i,n.pending=null}if(null!==a){i=a.next,r=r.baseState;var l=s=null,c=null,u=i;do{var d=u.lane;if((mi&d)===d)null!==c&&(c=c.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),r=u.hasEagerState?u.eagerState:e(r,u.action);else{var p={lane:d,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};null===c?(l=c=p,s=r):c=c.next=p,gi.lanes|=d,Ml|=d}u=u.next}while(null!==u&&u!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ws=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){a=e;do{i=a.lane,gi.lanes|=i,Ml|=i,a=a.next}while(a!==e)}else null===a&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Li(e){var t=Ti(),n=t.queue;if(null===n)throw Error(o(311));n.lastRenderedReducer=e;var r=n.dispatch,a=n.pending,i=t.memoizedState;if(null!==a){n.pending=null;var s=a=a.next;do{i=e(i,s.action),s=s.next}while(s!==a);sr(i,t.memoizedState)||(ws=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ri(){}function Ni(e,t){var n=gi,r=Ti(),a=t(),i=!sr(r.memoizedState,a);if(i&&(r.memoizedState=a,ws=!0),r=r.queue,Hi(Ii.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==bi&&1&bi.memoizedState.tag){if(n.flags|=2048,zi(9,Oi.bind(null,n,r,a,t),void 0,null),null===Ll)throw Error(o(349));0!=(30&mi)||Pi(n,t,a)}return a}function Pi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=gi.updateQueue)?(t={lastEffect:null,stores:null},gi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Oi(e,t,n,r){t.value=n,t.getSnapshot=r,Di(t)&&Mi(e)}function Ii(e,t,n){return n((function(){Di(t)&&Mi(e)}))}function Di(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(r){return!0}}function Mi(e){var t=Lo(e,1);null!==t&&rc(t,e,1,-1)}function Fi(e){var t=Ci();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:ji,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,gi,e),[t.memoizedState,e]}function zi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=gi.updateQueue)?(t={lastEffect:null,stores:null},gi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function Bi(){return Ti().memoizedState}function Ui(e,t,n,r){var a=Ci();gi.flags|=e,a.memoizedState=zi(1|t,n,void 0,void 0===r?null:r)}function $i(e,t,n,r){var a=Ti();r=void 0===r?null:r;var o=void 0;if(null!==hi){var i=hi.memoizedState;if(o=i.destroy,null!==r&&Si(r,i.deps))return void(a.memoizedState=zi(t,n,o,r))}gi.flags|=e,a.memoizedState=zi(1|t,n,o,r)}function qi(e,t){return Ui(8390656,8,e,t)}function Hi(e,t){return $i(2048,8,e,t)}function Zi(e,t){return $i(4,2,e,t)}function Gi(e,t){return $i(4,4,e,t)}function Vi(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Wi(e,t,n){return n=null!=n?n.concat([e]):null,$i(4,4,Vi.bind(null,t,e),n)}function Qi(){}function Ki(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Yi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&Si(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&mi)?(e.baseState&&(e.baseState=!1,ws=!0),e.memoizedState=n):(sr(n,t)||(n=gt(),gi.lanes|=n,Ml|=n,e.baseState=!0),t)}function Ji(e,t){var n=yt;yt=0!==n&&4>n?n:4,e(!0);var r=fi.transition;fi.transition={};try{e(!1),t()}finally{yt=n,fi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);if(n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e))as(t,n);else if(null!==(n=Ao(e,t,n,r))){rc(n,e,r,tc()),os(n,t,r)}}function ns(e,t,n){var r=nc(e),a={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))as(t,a);else{var o=e.alternate;if(0===e.lanes&&(null===o||0===o.lanes)&&null!==(o=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=o(i,n);if(a.hasEagerState=!0,a.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(a.next=a,jo(t)):(a.next=l.next,l.next=a),void(t.interleaved=a)}}catch(c){}null!==(n=Ao(e,t,a,r))&&(rc(n,e,r,a=tc()),os(n,t,r))}}function rs(e){var t=e.alternate;return e===gi||null!==t&&t===gi}function as(e,t){yi=vi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function os(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,vt(e,n)}}var is={readContext:Co,useCallback:xi,useContext:xi,useEffect:xi,useImperativeHandle:xi,useInsertionEffect:xi,useLayoutEffect:xi,useMemo:xi,useReducer:xi,useRef:xi,useState:xi,useDebugValue:xi,useDeferredValue:xi,useTransition:xi,useMutableSource:xi,useSyncExternalStore:xi,useId:xi,unstable_isNewReconciler:!1},ss={readContext:Co,useCallback:function(e,t){return Ci().memoizedState=[e,void 0===t?null:t],e},useContext:Co,useEffect:qi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Ui(4194308,4,Vi.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Ui(4194308,4,e,t)},useInsertionEffect:function(e,t){return Ui(4,2,e,t)},useMemo:function(e,t){var n=Ci();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Ci();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,gi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Ci().memoizedState=e},useState:Fi,useDebugValue:Qi,useDeferredValue:function(e){return Ci().memoizedState=e},useTransition:function(){var e=Fi(!1),t=e[0];return e=Ji.bind(null,e[1]),Ci().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=gi,a=Ci();if(ao){if(void 0===n)throw Error(o(407));n=n()}else{if(n=t(),null===Ll)throw Error(o(349));0!=(30&mi)||Pi(r,t,n)}a.memoizedState=n;var i={value:n,getSnapshot:t};return a.queue=i,qi(Ii.bind(null,r,i,e),[e]),r.flags|=2048,zi(9,Oi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Ci(),t=Ll.identifierPrefix;if(ao){var n=Ya;t=":"+t+"R"+(n=(Ka&~(1<<32-it(Ka)-1)).toString(32)+n),0<(n=wi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=ki++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Co,useCallback:Ki,useContext:Co,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Yi,useReducer:Ai,useRef:Bi,useState:function(){return Ai(ji)},useDebugValue:Qi,useDeferredValue:function(e){return Xi(Ti(),hi.memoizedState,e)},useTransition:function(){return[Ai(ji)[0],Ti().memoizedState]},useMutableSource:Ri,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1},cs={readContext:Co,useCallback:Ki,useContext:Co,useEffect:Hi,useImperativeHandle:Wi,useInsertionEffect:Zi,useLayoutEffect:Gi,useMemo:Yi,useReducer:Li,useRef:Bi,useState:function(){return Li(ji)},useDebugValue:Qi,useDeferredValue:function(e){var t=Ti();return null===hi?t.memoizedState=e:Xi(t,hi.memoizedState,e)},useTransition:function(){return[Li(ji)[0],Ti().memoizedState]},useMutableSource:Ri,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1};function us(e,t){try{var n="",r=t;do{n+=U(r),r=r.return}while(r);var a=n}catch(o){a="\nError generating stack: "+o.message+"\n"+o.stack}return{value:e,source:t,stack:a,digest:null}}function ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function ps(e,t){try{console.error(t.value)}catch(n){setTimeout((function(){throw n}))}}var fs="function"==typeof WeakMap?WeakMap:Map;function ms(e,t,n){(n=Oo(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Zl||(Zl=!0,Gl=r),ps(0,t)},n}function gs(e,t,n){(n=Oo(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var a=t.value;n.payload=function(){return r(a)},n.callback=function(){ps(0,t)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){ps(0,t),"function"!=typeof r&&(null===Vl?Vl=new Set([this]):Vl.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function hs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new fs;var a=new Set;r.set(t,a)}else void 0===(a=r.get(t))&&(a=new Set,r.set(t,a));a.has(n)||(a.add(n),e=Cc.bind(null,e,t,n),t.then(e,e))}function bs(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function vs(e,t,n,r,a){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Oo(-1,1)).tag=2,Io(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=a,e)}var ys=w.ReactCurrentOwner,ws=!1;function ks(e,t,n,r){t.child=null===e?Xo(t,null,n,r):Yo(t,e.child,n,r)}function xs(e,t,n,r,a){n=n.render;var o=t.ref;return _o(t,a),r=Ei(e,t,n,r,o,a),n=_i(),null===e||ws?(ao&&n&&eo(t),t.flags|=1,ks(e,t,r,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Zs(e,t,a))}function Ss(e,t,n,r,a){if(null===e){var o=n.type;return"function"!=typeof o||Pc(o)||void 0!==o.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Ic(n.type,null,r,t,t.mode,a)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=o,Es(e,t,o,r,a))}if(o=e.child,0==(e.lanes&a)){var i=o.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Zs(e,t,a)}return t.flags|=1,(e=Oc(o,r)).ref=t.ref,e.return=t,t.child=e}function Es(e,t,n,r,a){if(null!==e){var o=e.memoizedProps;if(lr(o,r)&&e.ref===t.ref){if(ws=!1,t.pendingProps=r=o,0==(e.lanes&a))return t.lanes=e.lanes,Zs(e,t,a);0!=(131072&e.flags)&&(ws=!0)}}return Ts(e,t,n,r,a)}function _s(e,t,n){var r=t.pendingProps,a=r.children,o=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},Ca(Ol,Pl),Pl|=n;else{if(0==(1073741824&n))return e=null!==o?o.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,Ca(Ol,Pl),Pl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==o?o.baseLanes:n,Ca(Ol,Pl),Pl|=r}else null!==o?(r=o.baseLanes|n,t.memoizedState=null):r=n,Ca(Ol,Pl),Pl|=r;return ks(e,t,a,n),t.child}function Cs(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,a){var o=Na(n)?La:ja.current;return o=Ra(t,o),_o(t,a),n=Ei(e,t,n,r,o,a),r=_i(),null===e||ws?(ao&&r&&eo(t),t.flags|=1,ks(e,t,n,a),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~a,Zs(e,t,a))}function js(e,t,n,r,a){if(Na(n)){var o=!0;Da(t)}else o=!1;if(_o(t,a),null===t.stateNode)Hs(e,t),Ho(t,n,r),Go(t,n,r,a),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;"object"==typeof c&&null!==c?c=Co(c):c=Ra(t,c=Na(n)?La:ja.current);var u=n.getDerivedStateFromProps,d="function"==typeof u||"function"==typeof i.getSnapshotBeforeUpdate;d||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&Zo(t,i,r,c),Ro=!1;var p=t.memoizedState;i.state=p,Fo(t,r,i,a),l=t.memoizedState,s!==r||p!==l||Aa.current||Ro?("function"==typeof u&&(Uo(t,n,u,r),l=t.memoizedState),(s=Ro||qo(t,n,s,r,p,l,c))?(d||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Po(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:bo(t.type,s),i.props=c,d=t.pendingProps,p=i.context,"object"==typeof(l=n.contextType)&&null!==l?l=Co(l):l=Ra(t,l=Na(n)?La:ja.current);var f=n.getDerivedStateFromProps;(u="function"==typeof f||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==d||p!==l)&&Zo(t,i,r,l),Ro=!1,p=t.memoizedState,i.state=p,Fo(t,r,i,a);var m=t.memoizedState;s!==d||p!==m||Aa.current||Ro?("function"==typeof f&&(Uo(t,n,f,r),m=t.memoizedState),(c=Ro||qo(t,n,c,r,p,m,l)||!1)?(u||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&p===e.memoizedState||(t.flags|=1024),r=!1)}return As(e,t,n,r,o,a)}function As(e,t,n,r,a,o){Cs(e,t);var i=0!=(128&t.flags);if(!r&&!i)return a&&Ma(t,n,!1),Zs(e,t,o);r=t.stateNode,ys.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Yo(t,e.child,null,o),t.child=Yo(t,null,s,o)):ks(e,t,s,o),t.memoizedState=r.state,a&&Ma(t,n,!0),t.child}function Ls(e){var t=e.stateNode;t.pendingContext?Oa(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Oa(0,t.context,!1),ai(e,t.containerInfo)}function Rs(e,t,n,r,a){return mo(),go(a),t.flags|=256,ks(e,t,n,r),t.child}var Ns,Ps,Os,Is,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ms(e){return{baseLanes:e,cachePool:null,transitions:null}}function Fs(e,t,n){var r,a=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),Ca(li,1&i),null===e)return co(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=a.children,e=a.fallback,s?(a=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&a)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Mc(l,a,0,null),e=Dc(e,a,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ms(n),t.memoizedState=Ds,e):zs(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,a,i,s){if(n)return 256&t.flags?(t.flags&=-257,Bs(e,t,s,r=ds(Error(o(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,a=t.mode,r=Mc({mode:"visible",children:r.children},a,0,null),(i=Dc(i,a,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Yo(t,e.child,null,s),t.child.memoizedState=Ms(s),t.memoizedState=Ds,i);if(0==(1&t.mode))return Bs(e,t,s,null);if("$!"===a.data){if(r=a.nextSibling&&a.nextSibling.dataset)var l=r.dgst;return r=l,Bs(e,t,s,r=ds(i=Error(o(419)),r,void 0))}if(l=0!=(s&e.childLanes),ws||l){if(null!==(r=Ll)){switch(s&-s){case 4:a=2;break;case 16:a=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:a=32;break;case 536870912:a=268435456;break;default:a=0}0!==(a=0!=(a&(r.suspendedLanes|s))?0:a)&&a!==i.retryLane&&(i.retryLane=a,Lo(e,a),rc(r,e,a,-1))}return hc(),Bs(e,t,s,r=ds(Error(o(421))))}return"$?"===a.data?(t.flags|=128,t.child=e.child,t=jc.bind(null,e),a._reactRetry=t,null):(e=i.treeContext,ro=ca(a.nextSibling),no=t,ao=!0,oo=null,null!==e&&(Va[Wa++]=Ka,Va[Wa++]=Ya,Va[Wa++]=Qa,Ka=e.id,Ya=e.overflow,Qa=t),t=zs(t,r.children),t.flags|=4096,t)}(e,t,l,a,r,i,n);if(s){s=a.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:a.children};return 0==(1&l)&&t.child!==i?((a=t.child).childLanes=0,a.pendingProps=c,t.deletions=null):(a=Oc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Oc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,a.return=t,a.sibling=s,t.child=a,a=s,s=t.child,l=null===(l=e.child.memoizedState)?Ms(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,a}return e=(s=e.child).sibling,a=Oc(s,{mode:"visible",children:a.children}),0==(1&t.mode)&&(a.lanes=n),a.return=t,a.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=a,t.memoizedState=null,a}function zs(e,t){return(t=Mc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Bs(e,t,n,r){return null!==r&&go(r),Yo(t,e.child,null,n),(e=zs(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Us(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Eo(e.return,t,n)}function $s(e,t,n,r,a){var o=e.memoizedState;null===o?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:a}:(o.isBackwards=t,o.rendering=null,o.renderingStartTime=0,o.last=r,o.tail=n,o.tailMode=a)}function qs(e,t,n){var r=t.pendingProps,a=r.revealOrder,o=r.tail;if(ks(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Us(e,n,t);else if(19===e.tag)Us(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(Ca(li,r),0==(1&t.mode))t.memoizedState=null;else switch(a){case"forwards":for(n=t.child,a=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(a=n),n=n.sibling;null===(n=a)?(a=t.child,t.child=null):(a=n.sibling,n.sibling=null),$s(t,!1,a,n,o);break;case"backwards":for(n=null,a=t.child,t.child=null;null!==a;){if(null!==(e=a.alternate)&&null===ci(e)){t.child=a;break}e=a.sibling,a.sibling=n,n=a,a=e}$s(t,!0,n,null,o);break;case"together":$s(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Hs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Zs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ml|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(o(153));if(null!==t.child){for(n=Oc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Oc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Gs(e,t){if(!ao)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Vs(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=14680064&a.subtreeFlags,r|=14680064&a.flags,a.return=e,a=a.sibling;else for(a=e.child;null!==a;)n|=a.lanes|a.childLanes,r|=a.subtreeFlags,r|=a.flags,a.return=e,a=a.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ws(e,t,n){var r=t.pendingProps;switch(to(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Vs(t),null;case 1:case 17:return Na(t.type)&&Pa(),Vs(t),null;case 3:return r=t.stateNode,oi(),_a(Aa),_a(ja),di(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(po(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==oo&&(sc(oo),oo=null))),Ps(e,t),Vs(t),null;case 5:si(t);var a=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Os(e,t,n,r,a),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(o(166));return Vs(t),null}if(e=ri(ei.current),po(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[pa]=t,r[fa]=i,e=0!=(1&t.mode),n){case"dialog":zr("cancel",r),zr("close",r);break;case"iframe":case"object":case"embed":zr("load",r);break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],r);break;case"source":zr("error",r);break;case"img":case"image":case"link":zr("error",r),zr("load",r);break;case"details":zr("toggle",r);break;case"input":K(r,i),zr("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},zr("invalid",r);break;case"textarea":ae(r,i),zr("invalid",r)}for(var l in ve(n,i),a=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),a=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&zr("scroll",r)}switch(n){case"input":G(r),J(r,i,!0);break;case"textarea":G(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Jr)}r=a,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===a.nodeType?a:a.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[pa]=t,e[fa]=r,Ns(e,t,!1,!1),t.stateNode=e;e:{switch(l=ye(n,r),n){case"dialog":zr("cancel",e),zr("close",e),a=r;break;case"iframe":case"object":case"embed":zr("load",e),a=r;break;case"video":case"audio":for(a=0;a<Ir.length;a++)zr(Ir[a],e);a=r;break;case"source":zr("error",e),a=r;break;case"img":case"image":case"link":zr("error",e),zr("load",e),a=r;break;case"details":zr("toggle",e),a=r;break;case"input":K(e,r),a=Q(e,r),zr("invalid",e);break;case"option":default:a=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},a=M({},r,{value:void 0}),zr("invalid",e);break;case"textarea":ae(e,r),a=re(e,r),zr("invalid",e)}for(i in ve(n,a),c=a)if(c.hasOwnProperty(i)){var u=c[i];"style"===i?he(e,u):"dangerouslySetInnerHTML"===i?null!=(u=u?u.__html:void 0)&&de(e,u):"children"===i?"string"==typeof u?("textarea"!==n||""!==u)&&pe(e,u):"number"==typeof u&&pe(e,""+u):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=u&&"onScroll"===i&&zr("scroll",e):null!=u&&y(e,i,u,l))}switch(n){case"input":G(e),J(e,r,!1);break;case"textarea":G(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+H(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof a.onClick&&(e.onclick=Jr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return Vs(t),null;case 6:if(e&&null!=t.stateNode)Is(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(o(166));if(n=ri(ni.current),ri(ei.current),po(t)){if(r=t.stateNode,n=t.memoizedProps,r[pa]=t,(i=r.nodeValue!==n)&&null!==(e=no))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[pa]=t,t.stateNode=r}return Vs(t),null;case 13:if(_a(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(ao&&null!==ro&&0!=(1&t.mode)&&0==(128&t.flags))fo(),mo(),t.flags|=98560,i=!1;else if(i=po(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(o(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(o(317));i[pa]=t}else mo(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;Vs(t),i=!1}else null!==oo&&(sc(oo),oo=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!==(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Il&&(Il=3):hc())),null!==t.updateQueue&&(t.flags|=4),Vs(t),null);case 4:return oi(),Ps(e,t),null===e&&$r(t.stateNode.containerInfo),Vs(t),null;case 10:return So(t.type._context),Vs(t),null;case 19:if(_a(li),null===(i=t.memoizedState))return Vs(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Gs(i,!1);else{if(0!==Il||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Gs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return Ca(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Ye()>ql&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Gs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!ao)return Vs(t),null}else 2*Ye()-i.renderingStartTime>ql&&1073741824!==n&&(t.flags|=128,r=!0,Gs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Ye(),t.sibling=null,n=li.current,Ca(li,r?1&n|2:1&n),t):(Vs(t),null);case 22:case 23:return pc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Pl)&&(Vs(t),6&t.subtreeFlags&&(t.flags|=8192)):Vs(t),null;case 24:case 25:return null}throw Error(o(156,t.tag))}function Qs(e,t){switch(to(t),t.tag){case 1:return Na(t.type)&&Pa(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return oi(),_a(Aa),_a(ja),di(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(_a(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(o(340));mo()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return _a(li),null;case 4:return oi(),null;case 10:return So(t.type._context),null;case 22:case 23:return pc(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ps=function(){},Os=function(e,t,n,r){var a=e.memoizedProps;if(a!==r){e=t.stateNode,ri(ei.current);var o,i=null;switch(n){case"input":a=Q(e,a),r=Q(e,r),i=[];break;case"select":a=M({},a,{value:void 0}),r=M({},r,{value:void 0}),i=[];break;case"textarea":a=re(e,a),r=re(e,r),i=[];break;default:"function"!=typeof a.onClick&&"function"==typeof r.onClick&&(e.onclick=Jr)}for(u in ve(n,r),n=null,a)if(!r.hasOwnProperty(u)&&a.hasOwnProperty(u)&&null!=a[u])if("style"===u){var l=a[u];for(o in l)l.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else"dangerouslySetInnerHTML"!==u&&"children"!==u&&"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&"autoFocus"!==u&&(s.hasOwnProperty(u)?i||(i=[]):(i=i||[]).push(u,null));for(u in r){var c=r[u];if(l=null!=a?a[u]:void 0,r.hasOwnProperty(u)&&c!==l&&(null!=c||null!=l))if("style"===u)if(l){for(o in l)!l.hasOwnProperty(o)||c&&c.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in c)c.hasOwnProperty(o)&&l[o]!==c[o]&&(n||(n={}),n[o]=c[o])}else n||(i||(i=[]),i.push(u,n)),n=c;else"dangerouslySetInnerHTML"===u?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(u,c)):"children"===u?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(u,""+c):"suppressContentEditableWarning"!==u&&"suppressHydrationWarning"!==u&&(s.hasOwnProperty(u)?(null!=c&&"onScroll"===u&&zr("scroll",e),i||l===c||(i=[])):(i=i||[]).push(u,c))}n&&(i=i||[]).push("style",n);var u=i;(t.updateQueue=u)&&(t.flags|=4)}},Is=function(e,t,n,r){n!==r&&(t.flags|=4)};var Ks=!1,Ys=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(r){_c(e,t,r)}else n.current=null}function tl(e,t,n){try{n()}catch(r){_c(e,t,r)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var a=r=r.next;do{if((a.tag&e)===e){var o=a.destroy;a.destroy=void 0,void 0!==o&&tl(t,n,o)}a=a.next}while(a!==r)}}function al(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function ol(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(t=e.stateNode)&&(delete t[pa],delete t[fa],delete t[ga],delete t[ha],delete t[ba])),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function ul(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(ul(e,t,n),e=e.sibling;null!==e;)ul(e,t,n),e=e.sibling}var dl=null,pl=!1;function fl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(ot&&"function"==typeof ot.onCommitFiberUnmount)try{ot.onCommitFiberUnmount(at,n)}catch(s){}switch(n.tag){case 5:Ys||el(n,t);case 6:var r=dl,a=pl;dl=null,fl(e,t,n),pl=a,null!==(dl=r)&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(pl?(e=dl,n=n.stateNode,8===e.nodeType?la(e.parentNode,n):1===e.nodeType&&la(e,n),$t(e)):la(dl,n.stateNode));break;case 4:r=dl,a=pl,dl=n.stateNode.containerInfo,pl=!0,fl(e,t,n),dl=r,pl=a;break;case 0:case 11:case 14:case 15:if(!Ys&&(null!==(r=n.updateQueue)&&null!==(r=r.lastEffect))){a=r=r.next;do{var o=a,i=o.destroy;o=o.tag,void 0!==i&&(0!=(2&o)||0!=(4&o))&&tl(n,t,i),a=a.next}while(a!==r)}fl(e,t,n);break;case 1:if(!Ys&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(s){_c(n,t,s)}fl(e,t,n);break;case 21:fl(e,t,n);break;case 22:1&n.mode?(Ys=(r=Ys)||null!==n.memoizedState,fl(e,t,n),Ys=r):fl(e,t,n);break;default:fl(e,t,n)}}function gl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=Ac.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function hl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var a=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:dl=l.stateNode,pl=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,pl=!0;break e}l=l.return}if(null===dl)throw Error(o(160));ml(i,s,a),dl=null,pl=!1;var c=a.alternate;null!==c&&(c.return=null),a.return=null}catch(u){_c(a,t,u)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)bl(t,e),t=t.sibling}function bl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(hl(t,e),vl(e),4&r){try{rl(3,e,e.return),al(3,e)}catch(h){_c(e,e.return,h)}try{rl(5,e,e.return)}catch(h){_c(e,e.return,h)}}break;case 1:hl(t,e),vl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(hl(t,e),vl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var a=e.stateNode;try{pe(a,"")}catch(h){_c(e,e.return,h)}}if(4&r&&null!=(a=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&Y(a,i),ye(l,s);var u=ye(l,i);for(s=0;s<c.length;s+=2){var d=c[s],p=c[s+1];"style"===d?he(a,p):"dangerouslySetInnerHTML"===d?de(a,p):"children"===d?pe(a,p):y(a,d,p,u)}switch(l){case"input":X(a,i);break;case"textarea":oe(a,i);break;case"select":var f=a._wrapperState.wasMultiple;a._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(a,!!i.multiple,m,!1):f!==!!i.multiple&&(null!=i.defaultValue?ne(a,!!i.multiple,i.defaultValue,!0):ne(a,!!i.multiple,i.multiple?[]:"",!1))}a[fa]=i}catch(h){_c(e,e.return,h)}}break;case 6:if(hl(t,e),vl(e),4&r){if(null===e.stateNode)throw Error(o(162));a=e.stateNode,i=e.memoizedProps;try{a.nodeValue=i}catch(h){_c(e,e.return,h)}}break;case 3:if(hl(t,e),vl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{$t(t.containerInfo)}catch(h){_c(e,e.return,h)}break;case 4:default:hl(t,e),vl(e);break;case 13:hl(t,e),vl(e),8192&(a=e.child).flags&&(i=null!==a.memoizedState,a.stateNode.isHidden=i,!i||null!==a.alternate&&null!==a.alternate.memoizedState||($l=Ye())),4&r&&gl(e);break;case 22:if(d=null!==n&&null!==n.memoizedState,1&e.mode?(Ys=(u=Ys)||d,hl(t,e),Ys=u):hl(t,e),vl(e),8192&r){if(u=null!==e.memoizedState,(e.stateNode.isHidden=u)&&!d&&0!=(1&e.mode))for(Js=e,d=e.child;null!==d;){for(p=Js=d;null!==Js;){switch(m=(f=Js).child,f.tag){case 0:case 11:case 14:case 15:rl(4,f,f.return);break;case 1:el(f,f.return);var g=f.stateNode;if("function"==typeof g.componentWillUnmount){r=f,n=f.return;try{t=r,g.props=t.memoizedProps,g.state=t.memoizedState,g.componentWillUnmount()}catch(h){_c(r,n,h)}}break;case 5:el(f,f.return);break;case 22:if(null!==f.memoizedState){xl(p);continue}}null!==m?(m.return=f,Js=m):xl(p)}d=d.sibling}e:for(d=null,p=e;;){if(5===p.tag){if(null===d){d=p;try{a=p.stateNode,u?"function"==typeof(i=a.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=p.stateNode,s=null!=(c=p.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=ge("display",s))}catch(h){_c(e,e.return,h)}}}else if(6===p.tag){if(null===d)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(h){_c(e,e.return,h)}}else if((22!==p.tag&&23!==p.tag||null===p.memoizedState||p===e)&&null!==p.child){p.child.return=p,p=p.child;continue}if(p===e)break e;for(;null===p.sibling;){if(null===p.return||p.return===e)break e;d===p&&(d=null),p=p.return}d===p&&(d=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:hl(t,e),vl(e),4&r&&gl(e);case 21:}}function vl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(o(160))}switch(r.tag){case 5:var a=r.stateNode;32&r.flags&&(pe(a,""),r.flags&=-33),ul(e,ll(e),a);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(o(161))}}catch(s){_c(e,e.return,s)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function yl(e,t,n){Js=e,wl(e,t,n)}function wl(e,t,n){for(var r=0!=(1&e.mode);null!==Js;){var a=Js,o=a.child;if(22===a.tag&&r){var i=null!==a.memoizedState||Ks;if(!i){var s=a.alternate,l=null!==s&&null!==s.memoizedState||Ys;s=Ks;var c=Ys;if(Ks=i,(Ys=l)&&!c)for(Js=a;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?Sl(a):null!==l?(l.return=i,Js=l):Sl(a);for(;null!==o;)Js=o,wl(o,t,n),o=o.sibling;Js=a,Ks=s,Ys=c}kl(e)}else 0!=(8772&a.subtreeFlags)&&null!==o?(o.return=a,Js=o):kl(e)}}function kl(e){for(;null!==Js;){var t=Js;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Ys||al(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Ys)if(null===n)r.componentDidMount();else{var a=t.elementType===t.type?n.memoizedProps:bo(t.type,n.memoizedProps);r.componentDidUpdate(a,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&zo(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}zo(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var u=t.alternate;if(null!==u){var d=u.memoizedState;if(null!==d){var p=d.dehydrated;null!==p&&$t(p)}}}break;default:throw Error(o(163))}Ys||512&t.flags&&ol(t)}catch(f){_c(t,t.return,f)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function xl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function Sl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{al(4,t)}catch(l){_c(t,n,l)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var a=t.return;try{r.componentDidMount()}catch(l){_c(t,a,l)}}var o=t.return;try{ol(t)}catch(l){_c(t,o,l)}break;case 5:var i=t.return;try{ol(t)}catch(l){_c(t,i,l)}}}catch(l){_c(t,t.return,l)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var El,_l=Math.ceil,Cl=w.ReactCurrentDispatcher,Tl=w.ReactCurrentOwner,jl=w.ReactCurrentBatchConfig,Al=0,Ll=null,Rl=null,Nl=0,Pl=0,Ol=Ea(0),Il=0,Dl=null,Ml=0,Fl=0,zl=0,Bl=null,Ul=null,$l=0,ql=1/0,Hl=null,Zl=!1,Gl=null,Vl=null,Wl=!1,Ql=null,Kl=0,Yl=0,Xl=null,Jl=-1,ec=0;function tc(){return 0!=(6&Al)?Ye():-1!==Jl?Jl:Jl=Ye()}function nc(e){return 0==(1&e.mode)?1:0!=(2&Al)&&0!==Nl?Nl&-Nl:null!==ho.transition?(0===ec&&(ec=gt()),ec):0!==(e=yt)?e:e=void 0===(e=window.event)?16:Kt(e.type)}function rc(e,t,n,r){if(50<Yl)throw Yl=0,Xl=null,Error(o(185));bt(e,n,r),0!=(2&Al)&&e===Ll||(e===Ll&&(0==(2&Al)&&(Fl|=n),4===Il&&lc(e,Nl)),ac(e,r),1===n&&0===Al&&0==(1&t.mode)&&(ql=Ye()+500,za&&$a()))}function ac(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,a=e.expirationTimes,o=e.pendingLanes;0<o;){var i=31-it(o),s=1<<i,l=a[i];-1===l?0!=(s&n)&&0==(s&r)||(a[i]=ft(s,t)):l<=t&&(e.expiredLanes|=s),o&=~s}}(e,t);var r=pt(e,e===Ll?Nl:0);if(0===r)null!==n&&We(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&We(n),1===t)0===e.tag?function(e){za=!0,Ua(e)}(cc.bind(null,e)):Ua(cc.bind(null,e)),ia((function(){0==(6&Al)&&$a()})),n=null;else{switch(wt(r)){case 1:n=Je;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Lc(n,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,ec=0,0!=(6&Al))throw Error(o(327));var n=e.callbackNode;if(Sc()&&e.callbackNode!==n)return null;var r=pt(e,e===Ll?Nl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=bc(e,r);else{t=r;var a=Al;Al|=2;var i=gc();for(Ll===e&&Nl===t||(Hl=null,ql=Ye()+500,fc(e,t));;)try{yc();break}catch(l){mc(e,l)}xo(),Cl.current=i,Al=a,null!==Rl?t=0:(Ll=null,Nl=0,t=Il)}if(0!==t){if(2===t&&(0!==(a=mt(e))&&(r=a,t=ic(e,a))),1===t)throw n=Dl,fc(e,0),lc(e,r),ac(e,Ye()),n;if(6===t)lc(e,r);else{if(a=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var a=n[r],o=a.getSnapshot;a=a.value;try{if(!sr(o(),a))return!1}catch(s){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(a)&&(2===(t=bc(e,r))&&(0!==(i=mt(e))&&(r=i,t=ic(e,i))),1===t))throw n=Dl,fc(e,0),lc(e,r),ac(e,Ye()),n;switch(e.finishedWork=a,e.finishedLanes=r,t){case 0:case 1:throw Error(o(345));case 2:case 5:xc(e,Ul,Hl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=$l+500-Ye())){if(0!==pt(e,0))break;if(((a=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&a;break}e.timeoutHandle=ra(xc.bind(null,e,Ul,Hl),t);break}xc(e,Ul,Hl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,a=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>a&&(a=s),r&=~i}if(r=a,10<(r=(120>(r=Ye()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*_l(r/1960))-r)){e.timeoutHandle=ra(xc.bind(null,e,Ul,Hl),r);break}xc(e,Ul,Hl);break;default:throw Error(o(329))}}}return ac(e,Ye()),e.callbackNode===n?oc.bind(null,e):null}function ic(e,t){var n=Bl;return e.current.memoizedState.isDehydrated&&(fc(e,t).flags|=256),2!==(e=bc(e,t))&&(t=Ul,Ul=n,null!==t&&sc(t)),e}function sc(e){null===Ul?Ul=e:Ul.push.apply(Ul,e)}function lc(e,t){for(t&=~zl,t&=~Fl,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&Al))throw Error(o(327));Sc();var t=pt(e,0);if(0==(1&t))return ac(e,Ye()),null;var n=bc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,fc(e,0),lc(e,t),ac(e,Ye()),n;if(6===n)throw Error(o(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,xc(e,Ul,Hl),ac(e,Ye()),null}function uc(e,t){var n=Al;Al|=1;try{return e(t)}finally{0===(Al=n)&&(ql=Ye()+500,za&&$a())}}function dc(e){null!==Ql&&0===Ql.tag&&0==(6&Al)&&Sc();var t=Al;Al|=1;var n=jl.transition,r=yt;try{if(jl.transition=null,yt=1,e)return e()}finally{yt=r,jl.transition=n,0==(6&(Al=t))&&$a()}}function pc(){Pl=Ol.current,_a(Ol)}function fc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,aa(n)),null!==Rl)for(n=Rl.return;null!==n;){var r=n;switch(to(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Pa();break;case 3:oi(),_a(Aa),_a(ja),di();break;case 5:si(r);break;case 4:oi();break;case 13:case 19:_a(li);break;case 10:So(r.type._context);break;case 22:case 23:pc()}n=n.return}if(Ll=e,Rl=e=Oc(e.current,null),Nl=Pl=t,Il=0,Dl=null,zl=Fl=Ml=0,Ul=Bl=null,null!==To){for(t=0;t<To.length;t++)if(null!==(r=(n=To[t]).interleaved)){n.interleaved=null;var a=r.next,o=n.pending;if(null!==o){var i=o.next;o.next=a,r.next=i}n.pending=r}To=null}return e}function mc(e,t){for(;;){var n=Rl;try{if(xo(),pi.current=is,vi){for(var r=gi.memoizedState;null!==r;){var a=r.queue;null!==a&&(a.pending=null),r=r.next}vi=!1}if(mi=0,bi=hi=gi=null,yi=!1,wi=0,Tl.current=null,null===n||null===n.return){Il=1,Dl=t,Rl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Nl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var u=c,d=l,p=d.tag;if(0==(1&d.mode)&&(0===p||11===p||15===p)){var f=d.alternate;f?(d.updateQueue=f.updateQueue,d.memoizedState=f.memoizedState,d.lanes=f.lanes):(d.updateQueue=null,d.memoizedState=null)}var m=bs(s);if(null!==m){m.flags&=-257,vs(m,s,l,0,t),1&m.mode&&hs(i,u,t),c=u;var g=(t=m).updateQueue;if(null===g){var h=new Set;h.add(c),t.updateQueue=h}else g.add(c);break e}if(0==(1&t)){hs(i,u,t),hc();break e}c=Error(o(426))}else if(ao&&1&l.mode){var b=bs(s);if(null!==b){0==(65536&b.flags)&&(b.flags|=256),vs(b,s,l,0,t),go(us(c,l));break e}}i=c=us(c,l),4!==Il&&(Il=2),null===Bl?Bl=[i]:Bl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,ms(0,c,t));break e;case 1:l=c;var v=i.type,y=i.stateNode;if(0==(128&i.flags)&&("function"==typeof v.getDerivedStateFromError||null!==y&&"function"==typeof y.componentDidCatch&&(null===Vl||!Vl.has(y)))){i.flags|=65536,t&=-t,i.lanes|=t,Mo(i,gs(i,l,t));break e}}i=i.return}while(null!==i)}kc(n)}catch(w){t=w,Rl===n&&null!==n&&(Rl=n=n.return);continue}break}}function gc(){var e=Cl.current;return Cl.current=is,null===e?is:e}function hc(){0!==Il&&3!==Il&&2!==Il||(Il=4),null===Ll||0==(268435455&Ml)&&0==(268435455&Fl)||lc(Ll,Nl)}function bc(e,t){var n=Al;Al|=2;var r=gc();for(Ll===e&&Nl===t||(Hl=null,fc(e,t));;)try{vc();break}catch(a){mc(e,a)}if(xo(),Al=n,Cl.current=r,null!==Rl)throw Error(o(261));return Ll=null,Nl=0,Il}function vc(){for(;null!==Rl;)wc(Rl)}function yc(){for(;null!==Rl&&!Qe();)wc(Rl)}function wc(e){var t=El(e.alternate,e,Pl);e.memoizedProps=e.pendingProps,null===t?kc(e):Rl=t,Tl.current=null}function kc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Ws(n,t,Pl)))return void(Rl=n)}else{if(null!==(n=Qs(n,t)))return n.flags&=32767,void(Rl=n);if(null===e)return Il=6,void(Rl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Rl=t);Rl=t=e}while(null!==t);0===Il&&(Il=5)}function xc(e,t,n){var r=yt,a=jl.transition;try{jl.transition=null,yt=1,function(e,t,n,r){do{Sc()}while(null!==Ql);if(0!=(6&Al))throw Error(o(327));n=e.finishedWork;var a=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(o(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var a=31-it(n),o=1<<a;t[a]=0,r[a]=-1,e[a]=-1,n&=~o}}(e,i),e===Ll&&(Rl=Ll=null,Nl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Wl||(Wl=!0,Lc(tt,(function(){return Sc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=jl.transition,jl.transition=null;var s=yt;yt=1;var l=Al;Al|=4,Tl.current=null,function(e,t){if(ea=Ht,fr(e=pr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var a=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(k){n=null;break e}var s=0,l=-1,c=-1,u=0,d=0,p=e,f=null;t:for(;;){for(var m;p!==n||0!==a&&3!==p.nodeType||(l=s+a),p!==i||0!==r&&3!==p.nodeType||(c=s+r),3===p.nodeType&&(s+=p.nodeValue.length),null!==(m=p.firstChild);)f=p,p=m;for(;;){if(p===e)break t;if(f===n&&++u===a&&(l=s),f===i&&++d===r&&(c=s),null!==(m=p.nextSibling))break;f=(p=f).parentNode}p=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(ta={focusedElem:e,selectionRange:n},Ht=!1,Js=t;null!==Js;)if(e=(t=Js).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var g=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==g){var h=g.memoizedProps,b=g.memoizedState,v=t.stateNode,y=v.getSnapshotBeforeUpdate(t.elementType===t.type?h:bo(t.type,h),b);v.__reactInternalSnapshotBeforeUpdate=y}break;case 3:var w=t.stateNode.containerInfo;1===w.nodeType?w.textContent="":9===w.nodeType&&w.documentElement&&w.removeChild(w.documentElement);break;default:throw Error(o(163))}}catch(k){_c(t,t.return,k)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}g=nl,nl=!1}(e,n),bl(n,e),mr(ta),Ht=!!ea,ta=ea=null,e.current=n,yl(n,e,a),Ke(),Al=l,yt=s,jl.transition=i}else e.current=n;if(Wl&&(Wl=!1,Ql=e,Kl=a),i=e.pendingLanes,0===i&&(Vl=null),function(e){if(ot&&"function"==typeof ot.onCommitFiberRoot)try{ot.onCommitFiberRoot(at,e,void 0,128==(128&e.current.flags))}catch(t){}}(n.stateNode),ac(e,Ye()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)a=t[n],r(a.value,{componentStack:a.stack,digest:a.digest});if(Zl)throw Zl=!1,e=Gl,Gl=null,e;0!=(1&Kl)&&0!==e.tag&&Sc(),i=e.pendingLanes,0!=(1&i)?e===Xl?Yl++:(Yl=0,Xl=e):Yl=0,$a()}(e,t,n,r)}finally{jl.transition=a,yt=r}return null}function Sc(){if(null!==Ql){var e=wt(Kl),t=jl.transition,n=yt;try{if(jl.transition=null,yt=16>e?16:e,null===Ql)var r=!1;else{if(e=Ql,Ql=null,Kl=0,0!=(6&Al))throw Error(o(331));var a=Al;for(Al|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(0!=(16&Js.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var u=l[c];for(Js=u;null!==Js;){var d=Js;switch(d.tag){case 0:case 11:case 15:rl(8,d,i)}var p=d.child;if(null!==p)p.return=d,Js=p;else for(;null!==Js;){var f=(d=Js).sibling,m=d.return;if(il(d),d===u){Js=null;break}if(null!==f){f.return=m,Js=f;break}Js=m}}}var g=i.alternate;if(null!==g){var h=g.child;if(null!==h){g.child=null;do{var b=h.sibling;h.sibling=null,h=b}while(null!==h)}}Js=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(0!=(2048&(i=Js).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var v=i.sibling;if(null!==v){v.return=i.return,Js=v;break e}Js=i.return}}var y=e.current;for(Js=y;null!==Js;){var w=(s=Js).child;if(0!=(2064&s.subtreeFlags)&&null!==w)w.return=s,Js=w;else e:for(s=y;null!==Js;){if(0!=(2048&(l=Js).flags))try{switch(l.tag){case 0:case 11:case 15:al(9,l)}}catch(x){_c(l,l.return,x)}if(l===s){Js=null;break e}var k=l.sibling;if(null!==k){k.return=l.return,Js=k;break e}Js=l.return}}if(Al=a,$a(),ot&&"function"==typeof ot.onPostCommitFiberRoot)try{ot.onPostCommitFiberRoot(at,e)}catch(x){}r=!0}return r}finally{yt=n,jl.transition=t}}return!1}function Ec(e,t,n){e=Io(e,t=ms(0,t=us(n,t),1),1),t=tc(),null!==e&&(bt(e,1,t),ac(e,t))}function _c(e,t,n){if(3===e.tag)Ec(e,e,n);else for(;null!==t;){if(3===t.tag){Ec(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===Vl||!Vl.has(r))){t=Io(t,e=gs(t,e=us(n,e),1),1),e=tc(),null!==t&&(bt(t,1,e),ac(t,e));break}}t=t.return}}function Cc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,Ll===e&&(Nl&n)===n&&(4===Il||3===Il&&(130023424&Nl)===Nl&&500>Ye()-$l?fc(e,0):zl|=n),ac(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=ut,0==(130023424&(ut<<=1))&&(ut=4194304)));var n=tc();null!==(e=Lo(e,t))&&(bt(e,t,n),ac(e,n))}function jc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Ac(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,a=e.memoizedState;null!==a&&(n=a.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(o(314))}null!==r&&r.delete(t),Tc(e,n)}function Lc(e,t){return Ve(e,t)}function Rc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nc(e,t,n,r){return new Rc(e,t,n,r)}function Pc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Oc(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Ic(e,t,n,r,a,i){var s=2;if(r=e,"function"==typeof e)Pc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case S:return Dc(n.children,a,i,t);case E:s=8,a|=8;break;case _:return(e=Nc(12,n,t,2|a)).elementType=_,e.lanes=i,e;case A:return(e=Nc(13,n,t,a)).elementType=A,e.lanes=i,e;case L:return(e=Nc(19,n,t,a)).elementType=L,e.lanes=i,e;case P:return Mc(n,a,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case C:s=10;break e;case T:s=9;break e;case j:s=11;break e;case R:s=14;break e;case N:s=16,r=null;break e}throw Error(o(130,null==e?e:typeof e,""))}return(t=Nc(s,n,t,a)).elementType=e,t.type=r,t.lanes=i,t}function Dc(e,t,n,r){return(e=Nc(7,e,r,t)).lanes=n,e}function Mc(e,t,n,r){return(e=Nc(22,e,r,t)).elementType=P,e.lanes=n,e.stateNode={isHidden:!1},e}function Fc(e,t,n){return(e=Nc(6,e,null,t)).lanes=n,e}function zc(e,t,n){return(t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Bc(e,t,n,r,a){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ht(0),this.expirationTimes=ht(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ht(0),this.identifierPrefix=r,this.onRecoverableError=a,this.mutableSourceEagerHydrationData=null}function Uc(e,t,n,r,a,o,i,s,l){return e=new Bc(e,t,n,s,l),1===t?(t=1,!0===o&&(t|=8)):t=0,o=Nc(3,null,null,t),e.current=o,o.stateNode=e,o.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},No(o),e}function $c(e){if(!e)return Ta;e:{if($e(e=e._reactInternals)!==e||1!==e.tag)throw Error(o(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Na(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(o(171))}if(1===e.tag){var n=e.type;if(Na(n))return Ia(e,n,t)}return t}function qc(e,t,n,r,a,o,i,s,l){return(e=Uc(n,r,!0,e,0,o,0,s,l)).context=$c(null),n=e.current,(o=Oo(r=tc(),a=nc(n))).callback=null!=t?t:null,Io(n,o,a),e.current.lanes=a,bt(e,a,r),ac(e,r),e}function Hc(e,t,n,r){var a=t.current,o=tc(),i=nc(a);return n=$c(n),null===t.context?t.context=n:t.pendingContext=n,(t=Oo(o,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Io(a,t,i))&&(rc(e,a,i,o),Do(e,a,i)),i}function Zc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Gc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function Vc(e,t){Gc(e,t),(e=e.alternate)&&Gc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Aa.current)ws=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ws=!1,function(e,t,n){switch(t.tag){case 3:Ls(t),mo();break;case 5:ii(t);break;case 1:Na(t.type)&&Da(t);break;case 4:ai(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,a=t.memoizedProps.value;Ca(vo,r._currentValue),r._currentValue=a;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(Ca(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Fs(e,t,n):(Ca(li,1&li.current),null!==(e=Zs(e,t,n))?e.sibling:null);Ca(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return qs(e,t,n);t.flags|=128}if(null!==(a=t.memoizedState)&&(a.rendering=null,a.tail=null,a.lastEffect=null),Ca(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,_s(e,t,n)}return Zs(e,t,n)}(e,t,n);ws=0!=(131072&e.flags)}else ws=!1,ao&&0!=(1048576&t.flags)&&Ja(t,Ga,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var a=Ra(t,ja.current);_o(t,n),a=Ei(null,t,r,e,a,n);var i=_i();return t.flags|=1,"object"==typeof a&&null!==a&&"function"==typeof a.render&&void 0===a.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Na(r)?(i=!0,Da(t)):i=!1,t.memoizedState=null!==a.state&&void 0!==a.state?a.state:null,No(t),a.updater=$o,t.stateNode=a,a._reactInternals=t,Go(t,r,e,n),t=As(null,t,r,!0,i,n)):(t.tag=0,ao&&i&&eo(t),ks(null,t,a,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(a=r._init)(r._payload),t.type=r,a=t.tag=function(e){if("function"==typeof e)return Pc(e)?1:0;if(null!=e){if((e=e.$$typeof)===j)return 11;if(e===R)return 14}return 2}(r),e=bo(r,e),a){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=js(null,t,r,e,n);break e;case 11:t=xs(null,t,r,e,n);break e;case 14:t=Ss(null,t,r,bo(r.type,e),n);break e}throw Error(o(306,r,""))}return t;case 0:return r=t.type,a=t.pendingProps,Ts(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 1:return r=t.type,a=t.pendingProps,js(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 3:e:{if(Ls(t),null===e)throw Error(o(387));r=t.pendingProps,a=(i=t.memoizedState).element,Po(e,t),Fo(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Rs(e,t,r,n,a=us(Error(o(423)),t));break e}if(r!==a){t=Rs(e,t,r,n,a=us(Error(o(424)),t));break e}for(ro=ca(t.stateNode.containerInfo.firstChild),no=t,ao=!0,oo=null,n=Xo(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(mo(),r===a){t=Zs(e,t,n);break e}ks(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&co(t),r=t.type,a=t.pendingProps,i=null!==e?e.memoizedProps:null,s=a.children,na(r,a)?s=null:null!==i&&na(r,i)&&(t.flags|=32),Cs(e,t),ks(e,t,s,n),t.child;case 6:return null===e&&co(t),null;case 13:return Fs(e,t,n);case 4:return ai(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Yo(t,null,r,n):ks(e,t,r,n),t.child;case 11:return r=t.type,a=t.pendingProps,xs(e,t,r,a=t.elementType===r?a:bo(r,a),n);case 7:return ks(e,t,t.pendingProps,n),t.child;case 8:case 12:return ks(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,a=t.pendingProps,i=t.memoizedProps,s=a.value,Ca(vo,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===a.children&&!Aa.current){t=Zs(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Oo(-1,n&-n)).tag=2;var u=i.updateQueue;if(null!==u){var d=(u=u.shared).pending;null===d?c.next=c:(c.next=d.next,d.next=c),u.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Eo(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(o(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Eo(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}ks(e,t,a.children,n),t=t.child}return t;case 9:return a=t.type,r=t.pendingProps.children,_o(t,n),r=r(a=Co(a)),t.flags|=1,ks(e,t,r,n),t.child;case 14:return a=bo(r=t.type,t.pendingProps),Ss(e,t,r,a=bo(r.type,a),n);case 15:return Es(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,a=t.pendingProps,a=t.elementType===r?a:bo(r,a),Hs(e,t),t.tag=1,Na(r)?(e=!0,Da(t)):e=!1,_o(t,n),Ho(t,r,a),Go(t,r,a,n),As(null,t,r,!0,e,n);case 19:return qs(e,t,n);case 22:return _s(e,t,n)}throw Error(o(156,t.tag))};var Wc="function"==typeof reportError?reportError:function(e){console.error(e)};function Qc(e){this._internalRoot=e}function Kc(e){this._internalRoot=e}function Yc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Jc(){}function eu(e,t,n,r,a){var o=n._reactRootContainer;if(o){var i=o;if("function"==typeof a){var s=a;a=function(){var e=Zc(i);s.call(e)}}Hc(t,i,e,a)}else i=function(e,t,n,r,a){if(a){if("function"==typeof r){var o=r;r=function(){var e=Zc(i);o.call(e)}}var i=qc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[ma]=i.current,$r(8===e.nodeType?e.parentNode:e),dc(),i}for(;a=e.lastChild;)e.removeChild(a);if("function"==typeof r){var s=r;r=function(){var e=Zc(l);s.call(e)}}var l=Uc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[ma]=l.current,$r(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,a,r);return Zc(i)}Kc.prototype.render=Qc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(o(409));Hc(e,t,null,null)},Kc.prototype.unmount=Qc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;dc((function(){Hc(null,e,null,null)})),t[ma]=null}},Kc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Pt.length&&0!==t&&t<Pt[n].priority;n++);Pt.splice(n,0,e),0===n&&Mt(e)}},kt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=dt(t.pendingLanes);0!==n&&(vt(t,1|n),ac(t,Ye()),0==(6&Al)&&(ql=Ye()+500,$a()))}break;case 13:dc((function(){var t=Lo(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),Vc(e,1)}},xt=function(e){if(13===e.tag){var t=Lo(e,134217728);if(null!==t)rc(t,e,134217728,tc());Vc(e,134217728)}},St=function(e){if(13===e.tag){var t=nc(e),n=Lo(e,t);if(null!==n)rc(n,e,t,tc());Vc(e,t)}},Et=function(){return yt},_t=function(e,t){var n=yt;try{return yt=e,t()}finally{yt=n}},xe=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var a=ka(r);if(!a)throw Error(o(90));V(r),X(r,a)}}}break;case"textarea":oe(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},je=uc,Ae=dc;var tu={usingClientEntryPoint:!1,Events:[ya,wa,ka,Ce,Te,uc]},nu={findFiberByHostInstance:va,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},ru={bundleType:nu.bundleType,version:nu.version,rendererPackageName:nu.rendererPackageName,rendererConfig:nu.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:w.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=Ze(e))?null:e.stateNode},findFiberByHostInstance:nu.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var au=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!au.isDisabled&&au.supportsFiber)try{at=au.inject(ru),ot=au}catch(ue){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=tu,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Yc(t))throw Error(o(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:x,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Yc(e))throw Error(o(299));var n=!1,r="",a=Wc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(a=t.onRecoverableError)),t=Uc(e,1,!1,null,0,n,0,r,a),e[ma]=t.current,$r(8===e.nodeType?e.parentNode:e),new Qc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(o(188));throw e=Object.keys(e).join(","),Error(o(268,e))}return e=null===(e=Ze(t))?null:e.stateNode},t.flushSync=function(e){return dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Yc(e))throw Error(o(405));var r=null!=n&&n.hydratedSources||null,a=!1,i="",s=Wc;if(null!=n&&(!0===n.unstable_strictMode&&(a=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=qc(t,null,e,1,null!=n?n:null,a,0,i,s),e[ma]=t.current,$r(e),r)for(e=0;e<r.length;e++)a=(a=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,a]:t.mutableSourceEagerHydrationData.push(n,a);return new Kc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(o(200));return eu(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(o(40));return!!e._reactRootContainer&&(dc((function(){eu(null,null,e,!1,(function(){e._reactRootContainer=null,e[ma]=null}))})),!0)},t.unstable_batchedUpdates=uc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(o(200));if(null==e||void 0===e._reactInternals)throw Error(o(38));return eu(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},745:(e,t,n)=>{"use strict";var r=n(3935);t.createRoot=r.createRoot,t.hydrateRoot=r.hydrateRoot},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}(),e.exports=n(4448)},9590:e=>{var t="undefined"!=typeof Element,n="function"==typeof Map,r="function"==typeof Set,a="function"==typeof ArrayBuffer&&!!ArrayBuffer.isView;function o(e,i){if(e===i)return!0;if(e&&i&&"object"==typeof e&&"object"==typeof i){if(e.constructor!==i.constructor)return!1;var s,l,c,u;if(Array.isArray(e)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(!o(e[l],i[l]))return!1;return!0}if(n&&e instanceof Map&&i instanceof Map){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;for(u=e.entries();!(l=u.next()).done;)if(!o(l.value[1],i.get(l.value[0])))return!1;return!0}if(r&&e instanceof Set&&i instanceof Set){if(e.size!==i.size)return!1;for(u=e.entries();!(l=u.next()).done;)if(!i.has(l.value[0]))return!1;return!0}if(a&&ArrayBuffer.isView(e)&&ArrayBuffer.isView(i)){if((s=e.length)!=i.length)return!1;for(l=s;0!=l--;)if(e[l]!==i[l])return!1;return!0}if(e.constructor===RegExp)return e.source===i.source&&e.flags===i.flags;if(e.valueOf!==Object.prototype.valueOf&&"function"==typeof e.valueOf&&"function"==typeof i.valueOf)return e.valueOf()===i.valueOf();if(e.toString!==Object.prototype.toString&&"function"==typeof e.toString&&"function"==typeof i.toString)return e.toString()===i.toString();if((s=(c=Object.keys(e)).length)!==Object.keys(i).length)return!1;for(l=s;0!=l--;)if(!Object.prototype.hasOwnProperty.call(i,c[l]))return!1;if(t&&e instanceof Element)return!1;for(l=s;0!=l--;)if(("_owner"!==c[l]&&"__v"!==c[l]&&"__o"!==c[l]||!e.$$typeof)&&!o(e[c[l]],i[c[l]]))return!1;return!0}return e!=e&&i!=i}e.exports=function(e,t){try{return o(e,t)}catch(n){if((n.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw n}}},405:(e,t,n)=>{"use strict";n.d(t,{B6:()=>Z,ql:()=>J});var r=n(7294),a=n(5697),o=n.n(a),i=n(9590),s=n.n(i),l=n(1143),c=n.n(l),u=n(6774),d=n.n(u);function p(){return p=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},p.apply(this,arguments)}function f(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,m(e,t)}function m(e,t){return m=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},m(e,t)}function g(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(a[n]=e[n]);return a}var h={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},b={rel:["amphtml","canonical","alternate"]},v={type:["application/ld+json"]},y={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},w=Object.keys(h).map((function(e){return h[e]})),k={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},x=Object.keys(k).reduce((function(e,t){return e[k[t]]=t,e}),{}),S=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},E=function(e){var t=S(e,h.TITLE),n=S(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,(function(){return t}));var r=S(e,"defaultTitle");return t||r||void 0},_=function(e){return S(e,"onChangeClientState")||function(){}},C=function(e,t){return t.filter((function(t){return void 0!==t[e]})).map((function(t){return t[e]})).reduce((function(e,t){return p({},e,t)}),{})},T=function(e,t){return t.filter((function(e){return void 0!==e[h.BASE]})).map((function(e){return e[h.BASE]})).reverse().reduce((function(t,n){if(!t.length)for(var r=Object.keys(n),a=0;a<r.length;a+=1){var o=r[a].toLowerCase();if(-1!==e.indexOf(o)&&n[o])return t.concat(n)}return t}),[])},j=function(e,t,n){var r={};return n.filter((function(t){return!!Array.isArray(t[e])||(void 0!==t[e]&&console&&"function"==typeof console.warn&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof t[e]+'"'),!1)})).map((function(t){return t[e]})).reverse().reduce((function(e,n){var a={};n.filter((function(e){for(var n,o=Object.keys(e),i=0;i<o.length;i+=1){var s=o[i],l=s.toLowerCase();-1===t.indexOf(l)||"rel"===n&&"canonical"===e[n].toLowerCase()||"rel"===l&&"stylesheet"===e[l].toLowerCase()||(n=l),-1===t.indexOf(s)||"innerHTML"!==s&&"cssText"!==s&&"itemprop"!==s||(n=s)}if(!n||!e[n])return!1;var c=e[n].toLowerCase();return r[n]||(r[n]={}),a[n]||(a[n]={}),!r[n][c]&&(a[n][c]=!0,!0)})).reverse().forEach((function(t){return e.push(t)}));for(var o=Object.keys(a),i=0;i<o.length;i+=1){var s=o[i],l=p({},r[s],a[s]);r[s]=l}return e}),[]).reverse()},A=function(e,t){if(Array.isArray(e)&&e.length)for(var n=0;n<e.length;n+=1)if(e[n][t])return!0;return!1},L=function(e){return Array.isArray(e)?e.join(""):e},R=function(e,t){return Array.isArray(e)?e.reduce((function(e,n){return function(e,t){for(var n=Object.keys(e),r=0;r<n.length;r+=1)if(t[n[r]]&&t[n[r]].includes(e[n[r]]))return!0;return!1}(n,t)?e.priority.push(n):e.default.push(n),e}),{priority:[],default:[]}):{default:e}},N=function(e,t){var n;return p({},e,((n={})[t]=void 0,n))},P=[h.NOSCRIPT,h.SCRIPT,h.STYLE],O=function(e,t){return void 0===t&&(t=!0),!1===t?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},I=function(e){return Object.keys(e).reduce((function(t,n){var r=void 0!==e[n]?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r}),"")},D=function(e,t){return void 0===t&&(t={}),Object.keys(e).reduce((function(t,n){return t[k[n]||n]=e[n],t}),t)},M=function(e,t){return t.map((function(t,n){var a,o=((a={key:n})["data-rh"]=!0,a);return Object.keys(t).forEach((function(e){var n=k[e]||e;"innerHTML"===n||"cssText"===n?o.dangerouslySetInnerHTML={__html:t.innerHTML||t.cssText}:o[n]=t[e]})),r.createElement(e,o)}))},F=function(e,t,n){switch(e){case h.TITLE:return{toComponent:function(){return n=t.titleAttributes,(a={key:e=t.title})["data-rh"]=!0,o=D(n,a),[r.createElement(h.TITLE,o,e)];var e,n,a,o},toString:function(){return function(e,t,n,r){var a=I(n),o=L(t);return a?"<"+e+' data-rh="true" '+a+">"+O(o,r)+"</"+e+">":"<"+e+' data-rh="true">'+O(o,r)+"</"+e+">"}(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return D(t)},toString:function(){return I(t)}};default:return{toComponent:function(){return M(e,t)},toString:function(){return function(e,t,n){return t.reduce((function(t,r){var a=Object.keys(r).filter((function(e){return!("innerHTML"===e||"cssText"===e)})).reduce((function(e,t){var a=void 0===r[t]?t:t+'="'+O(r[t],n)+'"';return e?e+" "+a:a}),""),o=r.innerHTML||r.cssText||"",i=-1===P.indexOf(e);return t+"<"+e+' data-rh="true" '+a+(i?"/>":">"+o+"</"+e+">")}),"")}(e,t,n)}}}},z=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,a=e.htmlAttributes,o=e.noscriptTags,i=e.styleTags,s=e.title,l=void 0===s?"":s,c=e.titleAttributes,u=e.linkTags,d=e.metaTags,p=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var m=function(e){var t=e.linkTags,n=e.scriptTags,r=e.encode,a=R(e.metaTags,y),o=R(t,b),i=R(n,v);return{priorityMethods:{toComponent:function(){return[].concat(M(h.META,a.priority),M(h.LINK,o.priority),M(h.SCRIPT,i.priority))},toString:function(){return F(h.META,a.priority,r)+" "+F(h.LINK,o.priority,r)+" "+F(h.SCRIPT,i.priority,r)}},metaTags:a.default,linkTags:o.default,scriptTags:i.default}}(e);f=m.priorityMethods,u=m.linkTags,d=m.metaTags,p=m.scriptTags}return{priority:f,base:F(h.BASE,t,r),bodyAttributes:F("bodyAttributes",n,r),htmlAttributes:F("htmlAttributes",a,r),link:F(h.LINK,u,r),meta:F(h.META,d,r),noscript:F(h.NOSCRIPT,o,r),script:F(h.SCRIPT,p,r),style:F(h.STYLE,i,r),title:F(h.TITLE,{title:l,titleAttributes:c},r)}},B=[],U=function(e,t){var n=this;void 0===t&&(t="undefined"!=typeof document),this.instances=[],this.value={setHelmet:function(e){n.context.helmet=e},helmetInstances:{get:function(){return n.canUseDOM?B:n.instances},add:function(e){(n.canUseDOM?B:n.instances).push(e)},remove:function(e){var t=(n.canUseDOM?B:n.instances).indexOf(e);(n.canUseDOM?B:n.instances).splice(t,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=z({baseTag:[],bodyAttributes:{},encodeSpecialCharacters:!0,htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},$=r.createContext({}),q=o().shape({setHelmet:o().func,helmetInstances:o().shape({get:o().func,add:o().func,remove:o().func})}),H="undefined"!=typeof document,Z=function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new U(r.props.context,t.canUseDOM),r}return f(t,e),t.prototype.render=function(){return r.createElement($.Provider,{value:this.helmetData.value},this.props.children)},t}(r.Component);Z.canUseDOM=H,Z.propTypes={context:o().shape({helmet:o().shape()}),children:o().node.isRequired},Z.defaultProps={context:{}},Z.displayName="HelmetProvider";var G=function(e,t){var n,r=document.head||document.querySelector(h.HEAD),a=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(a),i=[];return t&&t.length&&t.forEach((function(t){var r=document.createElement(e);for(var a in t)Object.prototype.hasOwnProperty.call(t,a)&&("innerHTML"===a?r.innerHTML=t.innerHTML:"cssText"===a?r.styleSheet?r.styleSheet.cssText=t.cssText:r.appendChild(document.createTextNode(t.cssText)):r.setAttribute(a,void 0===t[a]?"":t[a]));r.setAttribute("data-rh","true"),o.some((function(e,t){return n=t,r.isEqualNode(e)}))?o.splice(n,1):i.push(r)})),o.forEach((function(e){return e.parentNode.removeChild(e)})),i.forEach((function(e){return r.appendChild(e)})),{oldTags:o,newTags:i}},V=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),a=r?r.split(","):[],o=[].concat(a),i=Object.keys(t),s=0;s<i.length;s+=1){var l=i[s],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),-1===a.indexOf(l)&&a.push(l);var u=o.indexOf(l);-1!==u&&o.splice(u,1)}for(var d=o.length-1;d>=0;d-=1)n.removeAttribute(o[d]);a.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==i.join(",")&&n.setAttribute("data-rh",i.join(","))}},W=function(e,t){var n=e.baseTag,r=e.htmlAttributes,a=e.linkTags,o=e.metaTags,i=e.noscriptTags,s=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,d=e.titleAttributes;V(h.BODY,e.bodyAttributes),V(h.HTML,r),function(e,t){void 0!==e&&document.title!==e&&(document.title=L(e)),V(h.TITLE,t)}(u,d);var p={baseTag:G(h.BASE,n),linkTags:G(h.LINK,a),metaTags:G(h.META,o),noscriptTags:G(h.NOSCRIPT,i),scriptTags:G(h.SCRIPT,l),styleTags:G(h.STYLE,c)},f={},m={};Object.keys(p).forEach((function(e){var t=p[e],n=t.newTags,r=t.oldTags;n.length&&(f[e]=n),r.length&&(m[e]=p[e].oldTags)})),t&&t(),s(e,f,m)},Q=null,K=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).rendered=!1,t}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!d()(e,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var e,t,n=this.props.context,r=n.setHelmet,a=null,o=(e=n.helmetInstances.get().map((function(e){var t=p({},e.props);return delete t.context,t})),{baseTag:T(["href"],e),bodyAttributes:C("bodyAttributes",e),defer:S(e,"defer"),encode:S(e,"encodeSpecialCharacters"),htmlAttributes:C("htmlAttributes",e),linkTags:j(h.LINK,["rel","href"],e),metaTags:j(h.META,["name","charset","http-equiv","property","itemprop"],e),noscriptTags:j(h.NOSCRIPT,["innerHTML"],e),onChangeClientState:_(e),scriptTags:j(h.SCRIPT,["src","innerHTML"],e),styleTags:j(h.STYLE,["cssText"],e),title:E(e),titleAttributes:C("titleAttributes",e),prioritizeSeoTags:A(e,"prioritizeSeoTags")});Z.canUseDOM?(t=o,Q&&cancelAnimationFrame(Q),t.defer?Q=requestAnimationFrame((function(){W(t,(function(){Q=null}))})):(W(t),Q=null)):z&&(a=z(o)),r(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t}(r.Component);K.propTypes={context:q.isRequired},K.displayName="HelmetDispatcher";var Y=["children"],X=["children"],J=function(e){function t(){return e.apply(this,arguments)||this}f(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(e){return!s()(N(this.props,"helmetData"),N(e,"helmetData"))},n.mapNestedChildrenToProps=function(e,t){if(!t)return null;switch(e.type){case h.SCRIPT:case h.NOSCRIPT:return{innerHTML:t};case h.STYLE:return{cssText:t};default:throw new Error("<"+e.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(e){var t,n=e.child,r=e.arrayTypeChildren;return p({},r,((t={})[n.type]=[].concat(r[n.type]||[],[p({},e.newChildProps,this.mapNestedChildrenToProps(n,e.nestedChildren))]),t))},n.mapObjectTypeChildren=function(e){var t,n,r=e.child,a=e.newProps,o=e.newChildProps,i=e.nestedChildren;switch(r.type){case h.TITLE:return p({},a,((t={})[r.type]=i,t.titleAttributes=p({},o),t));case h.BODY:return p({},a,{bodyAttributes:p({},o)});case h.HTML:return p({},a,{htmlAttributes:p({},o)});default:return p({},a,((n={})[r.type]=p({},o),n))}},n.mapArrayTypeChildrenToProps=function(e,t){var n=p({},t);return Object.keys(e).forEach((function(t){var r;n=p({},n,((r={})[t]=e[t],r))})),n},n.warnOnInvalidChildren=function(e,t){return c()(w.some((function(t){return e.type===t})),"function"==typeof e.type?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+w.join(", ")+" are allowed. Helmet does not support rendering <"+e.type+"> elements. Refer to our API for more information."),c()(!t||"string"==typeof t||Array.isArray(t)&&!t.some((function(e){return"string"!=typeof e})),"Helmet expects a string as a child of <"+e.type+">. Did you forget to wrap your children in braces? ( <"+e.type+">{``}</"+e.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(e,t){var n=this,a={};return r.Children.forEach(e,(function(e){if(e&&e.props){var r=e.props,o=r.children,i=g(r,Y),s=Object.keys(i).reduce((function(e,t){return e[x[t]||t]=i[t],e}),{}),l=e.type;switch("symbol"==typeof l?l=l.toString():n.warnOnInvalidChildren(e,o),l){case h.FRAGMENT:t=n.mapChildrenToProps(o,t);break;case h.LINK:case h.META:case h.NOSCRIPT:case h.SCRIPT:case h.STYLE:a=n.flattenArrayTypeChildren({child:e,arrayTypeChildren:a,newChildProps:s,nestedChildren:o});break;default:t=n.mapObjectTypeChildren({child:e,newProps:t,newChildProps:s,nestedChildren:o})}}})),this.mapArrayTypeChildrenToProps(a,t)},n.render=function(){var e=this.props,t=e.children,n=g(e,X),a=p({},n),o=n.helmetData;return t&&(a=this.mapChildrenToProps(t,a)),!o||o instanceof U||(o=new U(o.context,o.instances)),o?r.createElement(K,p({},a,{context:o.value,helmetData:void 0})):r.createElement($.Consumer,null,(function(e){return r.createElement(K,p({},a,{context:e}))}))},t}(r.Component);J.propTypes={base:o().object,bodyAttributes:o().object,children:o().oneOfType([o().arrayOf(o().node),o().node]),defaultTitle:o().string,defer:o().bool,encodeSpecialCharacters:o().bool,htmlAttributes:o().object,link:o().arrayOf(o().object),meta:o().arrayOf(o().object),noscript:o().arrayOf(o().object),onChangeClientState:o().func,script:o().arrayOf(o().object),style:o().arrayOf(o().object),title:o().string,titleAttributes:o().object,titleTemplate:o().string,prioritizeSeoTags:o().bool,helmetData:o().object},J.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},J.displayName="Helmet"},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,a=n?Symbol.for("react.portal"):60106,o=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,u=n?Symbol.for("react.async_mode"):60111,d=n?Symbol.for("react.concurrent_mode"):60111,p=n?Symbol.for("react.forward_ref"):60112,f=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,g=n?Symbol.for("react.memo"):60115,h=n?Symbol.for("react.lazy"):60116,b=n?Symbol.for("react.block"):60121,v=n?Symbol.for("react.fundamental"):60117,y=n?Symbol.for("react.responder"):60118,w=n?Symbol.for("react.scope"):60119;function k(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case o:case s:case i:case f:return e;default:switch(e=e&&e.$$typeof){case c:case p:case h:case g:case l:return e;default:return t}}case a:return t}}}function x(e){return k(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=p,t.Fragment=o,t.Lazy=h,t.Memo=g,t.Portal=a,t.Profiler=s,t.StrictMode=i,t.Suspense=f,t.isAsyncMode=function(e){return x(e)||k(e)===u},t.isConcurrentMode=x,t.isContextConsumer=function(e){return k(e)===c},t.isContextProvider=function(e){return k(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return k(e)===p},t.isFragment=function(e){return k(e)===o},t.isLazy=function(e){return k(e)===h},t.isMemo=function(e){return k(e)===g},t.isPortal=function(e){return k(e)===a},t.isProfiler=function(e){return k(e)===s},t.isStrictMode=function(e){return k(e)===i},t.isSuspense=function(e){return k(e)===f},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===o||e===d||e===s||e===i||e===f||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===h||e.$$typeof===g||e.$$typeof===l||e.$$typeof===c||e.$$typeof===p||e.$$typeof===v||e.$$typeof===y||e.$$typeof===w||e.$$typeof===b)},t.typeOf=k},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8356:(e,t,n)=>{"use strict";function r(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}function a(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){return i=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},i.apply(this,arguments)}var s=n(7294),l=n(5697),c=[],u=[];function d(e){var t=e(),n={loading:!0,loaded:null,error:null};return n.promise=t.then((function(e){return n.loading=!1,n.loaded=e,e})).catch((function(e){throw n.loading=!1,n.error=e,e})),n}function p(e){var t={loading:!1,loaded:{},error:null},n=[];try{Object.keys(e).forEach((function(r){var a=d(e[r]);a.loading?t.loading=!0:(t.loaded[r]=a.loaded,t.error=a.error),n.push(a.promise),a.promise.then((function(e){t.loaded[r]=e})).catch((function(e){t.error=e}))}))}catch(r){t.error=r}return t.promise=Promise.all(n).then((function(e){return t.loading=!1,e})).catch((function(e){throw t.loading=!1,e})),t}function f(e,t){return s.createElement((n=e)&&n.__esModule?n.default:n,t);var n}function m(e,t){var d,p;if(!t.loading)throw new Error("react-loadable requires a `loading` component");var m=i({loader:null,loading:null,delay:200,timeout:null,render:f,webpack:null,modules:null},t),g=null;function h(){return g||(g=e(m.loader)),g.promise}return c.push(h),"function"==typeof m.webpack&&u.push((function(){if((0,m.webpack)().every((function(e){return void 0!==e&&void 0!==n.m[e]})))return h()})),p=d=function(t){function n(n){var r;return o(a(a(r=t.call(this,n)||this)),"retry",(function(){r.setState({error:null,loading:!0,timedOut:!1}),g=e(m.loader),r._loadModule()})),h(),r.state={error:g.error,pastDelay:!1,timedOut:!1,loading:g.loading,loaded:g.loaded},r}r(n,t),n.preload=function(){return h()};var i=n.prototype;return i.UNSAFE_componentWillMount=function(){this._loadModule()},i.componentDidMount=function(){this._mounted=!0},i._loadModule=function(){var e=this;if(this.context.loadable&&Array.isArray(m.modules)&&m.modules.forEach((function(t){e.context.loadable.report(t)})),g.loading){var t=function(t){e._mounted&&e.setState(t)};"number"==typeof m.delay&&(0===m.delay?this.setState({pastDelay:!0}):this._delay=setTimeout((function(){t({pastDelay:!0})}),m.delay)),"number"==typeof m.timeout&&(this._timeout=setTimeout((function(){t({timedOut:!0})}),m.timeout));var n=function(){t({error:g.error,loaded:g.loaded,loading:g.loading}),e._clearTimeouts()};g.promise.then((function(){return n(),null})).catch((function(e){return n(),null}))}},i.componentWillUnmount=function(){this._mounted=!1,this._clearTimeouts()},i._clearTimeouts=function(){clearTimeout(this._delay),clearTimeout(this._timeout)},i.render=function(){return this.state.loading||this.state.error?s.createElement(m.loading,{isLoading:this.state.loading,pastDelay:this.state.pastDelay,timedOut:this.state.timedOut,error:this.state.error,retry:this.retry}):this.state.loaded?m.render(this.state.loaded,this.props):null},n}(s.Component),o(d,"contextTypes",{loadable:l.shape({report:l.func.isRequired})}),p}function g(e){return m(d,e)}g.Map=function(e){if("function"!=typeof e.render)throw new Error("LoadableMap requires a `render(loaded, props)` function");return m(p,e)};var h=function(e){function t(){return e.apply(this,arguments)||this}r(t,e);var n=t.prototype;return n.getChildContext=function(){return{loadable:{report:this.props.report}}},n.render=function(){return s.Children.only(this.props.children)},t}(s.Component);function b(e){for(var t=[];e.length;){var n=e.pop();t.push(n())}return Promise.all(t).then((function(){if(e.length)return b(e)}))}o(h,"propTypes",{report:l.func.isRequired}),o(h,"childContextTypes",{loadable:l.shape({report:l.func.isRequired}).isRequired}),g.Capture=h,g.preloadAll=function(){return new Promise((function(e,t){b(c).then(e,t)}))},g.preloadReady=function(){return new Promise((function(e,t){b(u).then(e,e)}))},e.exports=g},8790:(e,t,n)=>{"use strict";n.d(t,{H:()=>s,f:()=>i});var r=n(6550),a=n(7462),o=n(7294);function i(e,t,n){return void 0===n&&(n=[]),e.some((function(e){var a=e.path?(0,r.LX)(t,e):n.length?n[n.length-1].match:r.F0.computeRootMatch(t);return a&&(n.push({route:e,match:a}),e.routes&&i(e.routes,t,n)),a})),n}function s(e,t,n){return void 0===t&&(t={}),void 0===n&&(n={}),e?o.createElement(r.rs,n,e.map((function(e,n){return o.createElement(r.AW,{key:e.key||n,path:e.path,exact:e.exact,strict:e.strict,render:function(n){return e.render?e.render((0,a.Z)({},n,{},t,{route:e})):o.createElement(e.component,(0,a.Z)({},n,t,{route:e}))}})}))):null}},3727:(e,t,n)=>{"use strict";n.d(t,{OL:()=>y,VK:()=>u,rU:()=>h});var r=n(6550),a=n(5068),o=n(7294),i=n(9318),s=n(7462),l=n(3366),c=n(8776),u=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(t=e.call.apply(e,[this].concat(r))||this).history=(0,i.lX)(t.props),t}return(0,a.Z)(t,e),t.prototype.render=function(){return o.createElement(r.F0,{history:this.history,children:this.props.children})},t}(o.Component);o.Component;var d=function(e,t){return"function"==typeof e?e(t):e},p=function(e,t){return"string"==typeof e?(0,i.ob)(e,null,null,t):e},f=function(e){return e},m=o.forwardRef;void 0===m&&(m=f);var g=m((function(e,t){var n=e.innerRef,r=e.navigate,a=e.onClick,i=(0,l.Z)(e,["innerRef","navigate","onClick"]),c=i.target,u=(0,s.Z)({},i,{onClick:function(e){try{a&&a(e)}catch(t){throw e.preventDefault(),t}e.defaultPrevented||0!==e.button||c&&"_self"!==c||function(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}(e)||(e.preventDefault(),r())}});return u.ref=f!==m&&t||n,o.createElement("a",u)}));var h=m((function(e,t){var n=e.component,a=void 0===n?g:n,u=e.replace,h=e.to,b=e.innerRef,v=(0,l.Z)(e,["component","replace","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=e.history,r=p(d(h,e.location),e.location),l=r?n.createHref(r):"",g=(0,s.Z)({},v,{href:l,navigate:function(){var t=d(h,e.location),r=(0,i.Ep)(e.location)===(0,i.Ep)(p(t));(u||r?n.replace:n.push)(t)}});return f!==m?g.ref=t||b:g.innerRef=b,o.createElement(a,g)}))})),b=function(e){return e},v=o.forwardRef;void 0===v&&(v=b);var y=v((function(e,t){var n=e["aria-current"],a=void 0===n?"page":n,i=e.activeClassName,u=void 0===i?"active":i,f=e.activeStyle,m=e.className,g=e.exact,y=e.isActive,w=e.location,k=e.sensitive,x=e.strict,S=e.style,E=e.to,_=e.innerRef,C=(0,l.Z)(e,["aria-current","activeClassName","activeStyle","className","exact","isActive","location","sensitive","strict","style","to","innerRef"]);return o.createElement(r.s6.Consumer,null,(function(e){e||(0,c.Z)(!1);var n=w||e.location,i=p(d(E,n),n),l=i.pathname,T=l&&l.replace(/([.+*?=^!:${}()[\]|/\\])/g,"\\$1"),j=T?(0,r.LX)(n.pathname,{path:T,exact:g,sensitive:k,strict:x}):null,A=!!(y?y(j,n):j),L="function"==typeof m?m(A):m,R="function"==typeof S?S(A):S;A&&(L=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return t.filter((function(e){return e})).join(" ")}(L,u),R=(0,s.Z)({},R,f));var N=(0,s.Z)({"aria-current":A&&a||null,className:L,style:R,to:i},C);return b!==v?N.ref=t||_:N.innerRef=_,o.createElement(h,N)}))}))},6550:(e,t,n)=>{"use strict";n.d(t,{AW:()=>E,F0:()=>y,LX:()=>S,TH:()=>P,k6:()=>N,rs:()=>L,s6:()=>v});var r=n(5068),a=n(7294),o=n(5697),i=n.n(o),s=n(9318),l=n(8776),c=n(7462),u=n(4779),d=n.n(u),p=(n(9864),n(3366)),f=(n(8679),1073741823),m="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:void 0!==n.g?n.g:{};var g=a.createContext||function(e,t){var n,o,s="__create-react-context-"+function(){var e="__global_unique_id__";return m[e]=(m[e]||0)+1}()+"__",l=function(e){function n(){for(var t,n,r,a=arguments.length,o=new Array(a),i=0;i<a;i++)o[i]=arguments[i];return(t=e.call.apply(e,[this].concat(o))||this).emitter=(n=t.props.value,r=[],{on:function(e){r.push(e)},off:function(e){r=r.filter((function(t){return t!==e}))},get:function(){return n},set:function(e,t){n=e,r.forEach((function(e){return e(n,t)}))}}),t}(0,r.Z)(n,e);var a=n.prototype;return a.getChildContext=function(){var e;return(e={})[s]=this.emitter,e},a.componentWillReceiveProps=function(e){if(this.props.value!==e.value){var n,r=this.props.value,a=e.value;((o=r)===(i=a)?0!==o||1/o==1/i:o!=o&&i!=i)?n=0:(n="function"==typeof t?t(r,a):f,0!==(n|=0)&&this.emitter.set(e.value,n))}var o,i},a.render=function(){return this.props.children},n}(a.Component);l.childContextTypes=((n={})[s]=i().object.isRequired,n);var c=function(t){function n(){for(var e,n=arguments.length,r=new Array(n),a=0;a<n;a++)r[a]=arguments[a];return(e=t.call.apply(t,[this].concat(r))||this).observedBits=void 0,e.state={value:e.getValue()},e.onUpdate=function(t,n){0!=((0|e.observedBits)&n)&&e.setState({value:e.getValue()})},e}(0,r.Z)(n,t);var a=n.prototype;return a.componentWillReceiveProps=function(e){var t=e.observedBits;this.observedBits=null==t?f:t},a.componentDidMount=function(){this.context[s]&&this.context[s].on(this.onUpdate);var e=this.props.observedBits;this.observedBits=null==e?f:e},a.componentWillUnmount=function(){this.context[s]&&this.context[s].off(this.onUpdate)},a.getValue=function(){return this.context[s]?this.context[s].get():e},a.render=function(){return(e=this.props.children,Array.isArray(e)?e[0]:e)(this.state.value);var e},n}(a.Component);return c.contextTypes=((o={})[s]=i().object,o),{Provider:l,Consumer:c}},h=function(e){var t=g();return t.displayName=e,t},b=h("Router-History"),v=h("Router"),y=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._pendingLocation=e}))),n}(0,r.Z)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){var e=this;this._isMounted=!0,this.unlisten&&this.unlisten(),this.props.staticContext||(this.unlisten=this.props.history.listen((function(t){e._isMounted&&e.setState({location:t})}))),this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&(this.unlisten(),this._isMounted=!1,this._pendingLocation=null)},n.render=function(){return a.createElement(v.Provider,{value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}},a.createElement(b.Provider,{children:this.props.children||null,value:this.props.history}))},t}(a.Component);a.Component;a.Component;var w={},k=1e4,x=0;function S(e,t){void 0===t&&(t={}),("string"==typeof t||Array.isArray(t))&&(t={path:t});var n=t,r=n.path,a=n.exact,o=void 0!==a&&a,i=n.strict,s=void 0!==i&&i,l=n.sensitive,c=void 0!==l&&l;return[].concat(r).reduce((function(t,n){if(!n&&""!==n)return null;if(t)return t;var r=function(e,t){var n=""+t.end+t.strict+t.sensitive,r=w[n]||(w[n]={});if(r[e])return r[e];var a=[],o={regexp:d()(e,a,t),keys:a};return x<k&&(r[e]=o,x++),o}(n,{end:o,strict:s,sensitive:c}),a=r.regexp,i=r.keys,l=a.exec(e);if(!l)return null;var u=l[0],p=l.slice(1),f=e===u;return o&&!f?null:{path:n,url:"/"===n&&""===u?"/":u,isExact:f,params:i.reduce((function(e,t,n){return e[t.name]=p[n],e}),{})}}),null)}var E=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n=e.props.location||t.location,r=e.props.computedMatch?e.props.computedMatch:e.props.path?S(n.pathname,e.props):t.match,o=(0,c.Z)({},t,{location:n,match:r}),i=e.props,s=i.children,u=i.component,d=i.render;return Array.isArray(s)&&function(e){return 0===a.Children.count(e)}(s)&&(s=null),a.createElement(v.Provider,{value:o},o.match?s?"function"==typeof s?s(o):s:u?a.createElement(u,o):d?d(o):null:"function"==typeof s?s(o):null)}))},t}(a.Component);function _(e){return"/"===e.charAt(0)?e:"/"+e}function C(e,t){if(!e)return t;var n=_(e);return 0!==t.pathname.indexOf(n)?t:(0,c.Z)({},t,{pathname:t.pathname.substr(n.length)})}function T(e){return"string"==typeof e?e:(0,s.Ep)(e)}function j(e){return function(){(0,l.Z)(!1)}}function A(){}a.Component;var L=function(e){function t(){return e.apply(this,arguments)||this}return(0,r.Z)(t,e),t.prototype.render=function(){var e=this;return a.createElement(v.Consumer,null,(function(t){t||(0,l.Z)(!1);var n,r,o=e.props.location||t.location;return a.Children.forEach(e.props.children,(function(e){if(null==r&&a.isValidElement(e)){n=e;var i=e.props.path||e.props.from;r=i?S(o.pathname,(0,c.Z)({},e.props,{path:i})):t.match}})),r?a.cloneElement(n,{location:o,computedMatch:r}):null}))},t}(a.Component);var R=a.useContext;function N(){return R(b)}function P(){return R(v).location}},5251:(e,t,n)=>{"use strict";var r=n(7294),a=Symbol.for("react.element"),o=Symbol.for("react.fragment"),i=Object.prototype.hasOwnProperty,s=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,l={key:!0,ref:!0,__self:!0,__source:!0};function c(e,t,n){var r,o={},c=null,u=null;for(r in void 0!==n&&(c=""+n),void 0!==t.key&&(c=""+t.key),void 0!==t.ref&&(u=t.ref),t)i.call(t,r)&&!l.hasOwnProperty(r)&&(o[r]=t[r]);if(e&&e.defaultProps)for(r in t=e.defaultProps)void 0===o[r]&&(o[r]=t[r]);return{$$typeof:a,type:e,key:c,ref:u,props:o,_owner:s.current}}t.Fragment=o,t.jsx=c,t.jsxs=c},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),p=Symbol.for("react.lazy"),f=Symbol.iterator;var m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,h={};function b(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}function v(){}function y(e,t,n){this.props=e,this.context=t,this.refs=h,this.updater=n||m}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},v.prototype=b.prototype;var w=y.prototype=new v;w.constructor=y,g(w,b.prototype),w.isPureReactComponent=!0;var k=Array.isArray,x=Object.prototype.hasOwnProperty,S={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function _(e,t,r){var a,o={},i=null,s=null;if(null!=t)for(a in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)x.call(t,a)&&!E.hasOwnProperty(a)&&(o[a]=t[a]);var l=arguments.length-2;if(1===l)o.children=r;else if(1<l){for(var c=Array(l),u=0;u<l;u++)c[u]=arguments[u+2];o.children=c}if(e&&e.defaultProps)for(a in l=e.defaultProps)void 0===o[a]&&(o[a]=l[a]);return{$$typeof:n,type:e,key:i,ref:s,props:o,_owner:S.current}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function j(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function A(e,t,a,o,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===o?"."+j(l,0):o,k(i)?(a="",null!=e&&(a=e.replace(T,"$&/")+"/"),A(i,t,a,"",(function(e){return e}))):null!=i&&(C(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,a+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,o=""===o?".":o+":",k(e))for(var c=0;c<e.length;c++){var u=o+j(s=e[c],c);l+=A(s,t,a,u,i)}else if(u=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=f&&e[f]||e["@@iterator"])?e:null}(e),"function"==typeof u)for(e=u.call(e),c=0;!(s=e.next()).done;)l+=A(s=s.value,t,a,u=o+j(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function L(e,t,n){if(null==e)return e;var r=[],a=0;return A(e,r,"","",(function(e){return t.call(n,e,a++)})),r}function R(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},P={transition:null},O={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:P,ReactCurrentOwner:S};t.Children={map:L,forEach:function(e,t,n){L(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return L(e,(function(){t++})),t},toArray:function(e){return L(e,(function(e){return e}))||[]},only:function(e){if(!C(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=b,t.Fragment=a,t.Profiler=i,t.PureComponent=y,t.StrictMode=o,t.Suspense=u,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=O,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var a=g({},e.props),o=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=S.current),void 0!==t.key&&(o=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)x.call(t,c)&&!E.hasOwnProperty(c)&&(a[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)a.children=r;else if(1<c){l=Array(c);for(var u=0;u<c;u++)l[u]=arguments[u+2];a.children=l}return{$$typeof:n,type:e.type,key:o,ref:i,props:a,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=_,t.createFactory=function(e){var t=_.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=C,t.lazy=function(e){return{$$typeof:p,_payload:{_status:-1,_result:e},_init:R}},t.memo=function(e,t){return{$$typeof:d,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=P.transition;P.transition={};try{e()}finally{P.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return N.current.useCallback(e,t)},t.useContext=function(e){return N.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return N.current.useDeferredValue(e)},t.useEffect=function(e,t){return N.current.useEffect(e,t)},t.useId=function(){return N.current.useId()},t.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return N.current.useMemo(e,t)},t.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},t.useRef=function(e){return N.current.useRef(e)},t.useState=function(e){return N.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return N.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},5893:(e,t,n)=>{"use strict";e.exports=n(5251)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,a=e[r];if(!(0<o(a,t)))break e;e[r]=t,e[n]=a,n=r}}function r(e){return 0===e.length?null:e[0]}function a(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,a=e.length,i=a>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,u=e[c];if(0>o(l,n))c<a&&0>o(u,l)?(e[r]=u,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<a&&0>o(u,n)))break e;e[r]=u,e[c]=n,r=c}}}return t}function o(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],u=[],d=1,p=null,f=3,m=!1,g=!1,h=!1,b="function"==typeof setTimeout?setTimeout:null,v="function"==typeof clearTimeout?clearTimeout:null,y="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var t=r(u);null!==t;){if(null===t.callback)a(u);else{if(!(t.startTime<=e))break;a(u),t.sortIndex=t.expirationTime,n(c,t)}t=r(u)}}function k(e){if(h=!1,w(e),!g)if(null!==r(c))g=!0,P(x);else{var t=r(u);null!==t&&O(k,t.startTime-e)}}function x(e,n){g=!1,h&&(h=!1,v(C),C=-1),m=!0;var o=f;try{for(w(n),p=r(c);null!==p&&(!(p.expirationTime>n)||e&&!A());){var i=p.callback;if("function"==typeof i){p.callback=null,f=p.priorityLevel;var s=i(p.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?p.callback=s:p===r(c)&&a(c),w(n)}else a(c);p=r(c)}if(null!==p)var l=!0;else{var d=r(u);null!==d&&O(k,d.startTime-n),l=!1}return l}finally{p=null,f=o,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var S,E=!1,_=null,C=-1,T=5,j=-1;function A(){return!(t.unstable_now()-j<T)}function L(){if(null!==_){var e=t.unstable_now();j=e;var n=!0;try{n=_(!0,e)}finally{n?S():(E=!1,_=null)}}else E=!1}if("function"==typeof y)S=function(){y(L)};else if("undefined"!=typeof MessageChannel){var R=new MessageChannel,N=R.port2;R.port1.onmessage=L,S=function(){N.postMessage(null)}}else S=function(){b(L,0)};function P(e){_=e,E||(E=!0,S())}function O(e,n){C=b((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){g||m||(g=!0,P(x))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return f},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(f){case 1:case 2:case 3:var t=3;break;default:t=f}var n=f;f=t;try{return e()}finally{f=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=f;f=e;try{return t()}finally{f=n}},t.unstable_scheduleCallback=function(e,a,o){var i=t.unstable_now();switch("object"==typeof o&&null!==o?o="number"==typeof(o=o.delay)&&0<o?i+o:i:o=i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:d++,callback:a,priorityLevel:e,startTime:o,expirationTime:s=o+s,sortIndex:-1},o>i?(e.sortIndex=o,n(u,e),null===r(c)&&e===r(u)&&(h?(v(C),C=-1):h=!0,O(k,o-i))):(e.sortIndex=s,n(c,e),g||m||(g=!0,P(x))),e},t.unstable_shouldYield=A,t.unstable_wrapCallback=function(e){var t=f;return function(){var n=f;f=t;try{return e.apply(this,arguments)}finally{f=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},6774:e=>{e.exports=function(e,t,n,r){var a=n?n.call(r,e,t):void 0;if(void 0!==a)return!!a;if(e===t)return!0;if("object"!=typeof e||!e||"object"!=typeof t||!t)return!1;var o=Object.keys(e),i=Object.keys(t);if(o.length!==i.length)return!1;for(var s=Object.prototype.hasOwnProperty.bind(t),l=0;l<o.length;l++){var c=o[l];if(!s(c))return!1;var u=e[c],d=t[c];if(!1===(a=n?n.call(r,u,d,c):void 0)||void 0===a&&u!==d)return!1}return!0}},6809:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>r});const r={title:"React Native Template Strong",tagline:"Quick, opinionated, documented and strong beginning for your next project",favicon:"img/favicon.ico",url:"https://svbutko.github.io",baseUrl:"/react-native-template-strong/",organizationName:"svbutko",projectName:"react-native-template-strong",onBrokenLinks:"throw",onBrokenMarkdownLinks:"warn",i18n:{defaultLocale:"en",locales:["en"],path:"i18n",localeConfigs:{}},presets:[["classic",{docs:{showLastUpdateTime:!0,sidebarPath:"./sidebars.ts",editUrl:"https://github.com/svbutko/react-native-template-strong/master/website/"},theme:{customCss:"./src/css/custom.css"}}]],themeConfig:{algolia:{appId:"XO9GJZJMTW",apiKey:"d9b09790edab8cc6a9a4a727c0e5c059",indexName:"react-native-template-strong",contextualSearch:!0,searchParameters:{},searchPagePath:"search"},navbar:{title:"React Native Template Strong",logo:{alt:"strong-logo",src:"img/logo.svg"},items:[{type:"doc",docId:"getting-started",position:"right",label:"Docs"},{to:"mission",position:"right",label:"Mission"},{to:"troubleshooting",position:"right",label:"Troubleshooting"},{to:"faq",position:"right",label:"FAQ"},{href:"https://github.com/svbutko/react-native-template-strong",label:"GitHub",position:"right"}],hideOnScroll:!1},footer:{style:"dark",links:[{title:"Docs",items:[{label:"Getting started",to:"/docs/getting-started"},{label:"Troubleshooting",to:"troubleshooting"},{label:"FAQ",to:"faq"}]},{title:"Community",items:[{label:"Discussions",href:"https://github.com/svbutko/react-native-template-strong/discussions"},{label:"Issues",href:"https://github.com/svbutko/react-native-template-strong/issues"}]},{title:"More",items:[{label:"Project Github",href:"https://github.com/svbutko/react-native-template-strong"},{label:"My Github",href:"https://github.com/svbutko"},{label:"My Twitter",href:"https://twitter.com/svbutko"}]}],copyright:"Copyright \xa9 2024 Sergei Butko (@svbutko). Built with Docusaurus."},prism:{theme:{plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},darkTheme:{plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},additionalLanguages:[],magicComments:[{className:"theme-code-block-highlighted-line",line:"highlight-next-line",block:{start:"highlight-start",end:"highlight-end"}}]},colorMode:{defaultMode:"light",disableSwitch:!1,respectPrefersColorScheme:!1},docs:{versionPersistence:"localStorage",sidebar:{hideable:!1,autoCollapseCategories:!1}},metadata:[],tableOfContents:{minHeadingLevel:2,maxHeadingLevel:3}},baseUrlIssueBanner:!0,onBrokenAnchors:"warn",onDuplicateRoutes:"warn",staticDirectories:["static"],customFields:{},plugins:[],themes:[],scripts:[],headTags:[],stylesheets:[],clientModules:[],titleDelimiter:"|",noIndex:!1,markdown:{format:"mdx",mermaid:!1,mdx1Compat:{comments:!0,admonitions:!0,headingIds:!0}}}},7462:(e,t,n)=>{"use strict";function r(){return r=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},r.apply(this,arguments)}n.d(t,{Z:()=>r})},5068:(e,t,n)=>{"use strict";function r(e,t){return r=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},r(e,t)}function a(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,r(e,t)}n.d(t,{Z:()=>a})},3366:(e,t,n)=>{"use strict";function r(e,t){if(null==e)return{};var n,r,a={},o=Object.keys(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)>=0||(a[n]=e[n]);return a}n.d(t,{Z:()=>r})},512:(e,t,n)=>{"use strict";function r(e){var t,n,a="";if("string"==typeof e||"number"==typeof e)a+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(n=r(e[t]))&&(a&&(a+=" "),a+=n)}else for(n in e)e[n]&&(a&&(a+=" "),a+=n);return a}n.d(t,{Z:()=>a});const a=function(){for(var e,t,n=0,a="",o=arguments.length;n<o;n++)(e=arguments[n])&&(t=r(e))&&(a&&(a+=" "),a+=t);return a}},2573:(e,t,n)=>{"use strict";n.d(t,{p1:()=>T,y$:()=>ee});var r,a,o,i,s,l,c,u=n(7294),d=n(512),p=Object.create,f=Object.defineProperty,m=Object.defineProperties,g=Object.getOwnPropertyDescriptor,h=Object.getOwnPropertyDescriptors,b=Object.getOwnPropertyNames,v=Object.getOwnPropertySymbols,y=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty,k=Object.prototype.propertyIsEnumerable,x=(e,t,n)=>t in e?f(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,S=(e,t)=>{for(var n in t||(t={}))w.call(t,n)&&x(e,n,t[n]);if(v)for(var n of v(t))k.call(t,n)&&x(e,n,t[n]);return e},E=(e,t)=>m(e,h(t)),_=(e,t)=>{var n={};for(var r in e)w.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&v)for(var r of v(e))t.indexOf(r)<0&&k.call(e,r)&&(n[r]=e[r]);return n},C=(r={"../../node_modules/.pnpm/prismjs@1.29.0_patch_hash=vrxx3pzkik6jpmgpayxfjunetu/node_modules/prismjs/prism.js"(e,t){var n=function(){var e=/(?:^|\s)lang(?:uage)?-([\w-]+)(?=\s|$)/i,t=0,n={},r={util:{encode:function e(t){return t instanceof a?new a(t.type,e(t.content),t.alias):Array.isArray(t)?t.map(e):t.replace(/&/g,"&").replace(/</g,"<").replace(/\u00a0/g," ")},type:function(e){return Object.prototype.toString.call(e).slice(8,-1)},objId:function(e){return e.__id||Object.defineProperty(e,"__id",{value:++t}),e.__id},clone:function e(t,n){var a,o;switch(n=n||{},r.util.type(t)){case"Object":if(o=r.util.objId(t),n[o])return n[o];for(var i in a={},n[o]=a,t)t.hasOwnProperty(i)&&(a[i]=e(t[i],n));return a;case"Array":return o=r.util.objId(t),n[o]?n[o]:(a=[],n[o]=a,t.forEach((function(t,r){a[r]=e(t,n)})),a);default:return t}},getLanguage:function(t){for(;t;){var n=e.exec(t.className);if(n)return n[1].toLowerCase();t=t.parentElement}return"none"},setLanguage:function(t,n){t.className=t.className.replace(RegExp(e,"gi"),""),t.classList.add("language-"+n)},isActive:function(e,t,n){for(var r="no-"+t;e;){var a=e.classList;if(a.contains(t))return!0;if(a.contains(r))return!1;e=e.parentElement}return!!n}},languages:{plain:n,plaintext:n,text:n,txt:n,extend:function(e,t){var n=r.util.clone(r.languages[e]);for(var a in t)n[a]=t[a];return n},insertBefore:function(e,t,n,a){var o=(a=a||r.languages)[e],i={};for(var s in o)if(o.hasOwnProperty(s)){if(s==t)for(var l in n)n.hasOwnProperty(l)&&(i[l]=n[l]);n.hasOwnProperty(s)||(i[s]=o[s])}var c=a[e];return a[e]=i,r.languages.DFS(r.languages,(function(t,n){n===c&&t!=e&&(this[t]=i)})),i},DFS:function e(t,n,a,o){o=o||{};var i=r.util.objId;for(var s in t)if(t.hasOwnProperty(s)){n.call(t,s,t[s],a||s);var l=t[s],c=r.util.type(l);"Object"!==c||o[i(l)]?"Array"!==c||o[i(l)]||(o[i(l)]=!0,e(l,n,s,o)):(o[i(l)]=!0,e(l,n,null,o))}}},plugins:{},highlight:function(e,t,n){var o={code:e,grammar:t,language:n};if(r.hooks.run("before-tokenize",o),!o.grammar)throw new Error('The language "'+o.language+'" has no grammar.');return o.tokens=r.tokenize(o.code,o.grammar),r.hooks.run("after-tokenize",o),a.stringify(r.util.encode(o.tokens),o.language)},tokenize:function(e,t){var n=t.rest;if(n){for(var r in n)t[r]=n[r];delete t.rest}var a=new s;return l(a,a.head,e),i(e,a,t,a.head,0),function(e){for(var t=[],n=e.head.next;n!==e.tail;)t.push(n.value),n=n.next;return t}(a)},hooks:{all:{},add:function(e,t){var n=r.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=r.hooks.all[e];if(n&&n.length)for(var a,o=0;a=n[o++];)a(t)}},Token:a};function a(e,t,n,r){this.type=e,this.content=t,this.alias=n,this.length=0|(r||"").length}function o(e,t,n,r){e.lastIndex=t;var a=e.exec(n);if(a&&r&&a[1]){var o=a[1].length;a.index+=o,a[0]=a[0].slice(o)}return a}function i(e,t,n,s,u,d){for(var p in n)if(n.hasOwnProperty(p)&&n[p]){var f=n[p];f=Array.isArray(f)?f:[f];for(var m=0;m<f.length;++m){if(d&&d.cause==p+","+m)return;var g=f[m],h=g.inside,b=!!g.lookbehind,v=!!g.greedy,y=g.alias;if(v&&!g.pattern.global){var w=g.pattern.toString().match(/[imsuy]*$/)[0];g.pattern=RegExp(g.pattern.source,w+"g")}for(var k=g.pattern||g,x=s.next,S=u;x!==t.tail&&!(d&&S>=d.reach);S+=x.value.length,x=x.next){var E=x.value;if(t.length>e.length)return;if(!(E instanceof a)){var _,C=1;if(v){if(!(_=o(k,S,e,b))||_.index>=e.length)break;var T=_.index,j=_.index+_[0].length,A=S;for(A+=x.value.length;T>=A;)A+=(x=x.next).value.length;if(S=A-=x.value.length,x.value instanceof a)continue;for(var L=x;L!==t.tail&&(A<j||"string"==typeof L.value);L=L.next)C++,A+=L.value.length;C--,E=e.slice(S,A),_.index-=S}else if(!(_=o(k,0,E,b)))continue;T=_.index;var R=_[0],N=E.slice(0,T),P=E.slice(T+R.length),O=S+E.length;d&&O>d.reach&&(d.reach=O);var I=x.prev;if(N&&(I=l(t,I,N),S+=N.length),c(t,I,C),x=l(t,I,new a(p,h?r.tokenize(R,h):R,y,R)),P&&l(t,x,P),C>1){var D={cause:p+","+m,reach:O};i(e,t,n,x.prev,S,D),d&&D.reach>d.reach&&(d.reach=D.reach)}}}}}}function s(){var e={value:null,prev:null,next:null},t={value:null,prev:e,next:null};e.next=t,this.head=e,this.tail=t,this.length=0}function l(e,t,n){var r=t.next,a={value:n,prev:t,next:r};return t.next=a,r.prev=a,e.length++,a}function c(e,t,n){for(var r=t.next,a=0;a<n&&r!==e.tail;a++)r=r.next;t.next=r,r.prev=t,e.length-=a}return a.stringify=function e(t,n){if("string"==typeof t)return t;if(Array.isArray(t)){var a="";return t.forEach((function(t){a+=e(t,n)})),a}var o={type:t.type,content:e(t.content,n),tag:"span",classes:["token",t.type],attributes:{},language:n},i=t.alias;i&&(Array.isArray(i)?Array.prototype.push.apply(o.classes,i):o.classes.push(i)),r.hooks.run("wrap",o);var s="";for(var l in o.attributes)s+=" "+l+'="'+(o.attributes[l]||"").replace(/"/g,""")+'"';return"<"+o.tag+' class="'+o.classes.join(" ")+'"'+s+">"+o.content+"</"+o.tag+">"},r}();t.exports=n,n.default=n}},function(){return a||(0,r[b(r)[0]])((a={exports:{}}).exports,a),a.exports}),T=((e,t,n)=>(n=null!=e?p(y(e)):{},((e,t,n,r)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let a of b(t))w.call(e,a)||a===n||f(e,a,{get:()=>t[a],enumerable:!(r=g(t,a))||r.enumerable});return e})(!t&&e&&e.__esModule?n:f(n,"default",{value:e,enumerable:!0}),e)))(C());T.languages.markup={comment:{pattern:/<!--(?:(?!<!--)[\s\S])*?-->/,greedy:!0},prolog:{pattern:/<\?[\s\S]+?\?>/,greedy:!0},doctype:{pattern:/<!DOCTYPE(?:[^>"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:[^<"'\]]|"[^"]*"|'[^']*'|<(?!!--)|<!--(?:[^-]|-(?!->))*-->)*\]\s*)?>/i,greedy:!0,inside:{"internal-subset":{pattern:/(^[^\[]*\[)[\s\S]+(?=\]>$)/,lookbehind:!0,greedy:!0,inside:null},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},punctuation:/^<!|>$|[[\]]/,"doctype-tag":/^DOCTYPE/i,name:/[^\s<>'"]+/}},cdata:{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,greedy:!0},tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"special-attr":[],"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/,inside:{punctuation:[{pattern:/^=/,alias:"attr-equals"},{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:[{pattern:/&[\da-z]{1,8};/i,alias:"named-entity"},/&#x?[\da-f]{1,8};/i]},T.languages.markup.tag.inside["attr-value"].inside.entity=T.languages.markup.entity,T.languages.markup.doctype.inside["internal-subset"].inside=T.languages.markup,T.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(T.languages.markup.tag,"addInlined",{value:function(e,t){var n;(t=((n=((n={})["language-"+t]={pattern:/(^<!\[CDATA\[)[\s\S]+?(?=\]\]>$)/i,lookbehind:!0,inside:T.languages[t]},n.cdata=/^<!\[CDATA\[|\]\]>$/i,{"included-cdata":{pattern:/<!\[CDATA\[[\s\S]*?\]\]>/i,inside:n}}))["language-"+t]={pattern:/[\s\S]+/,inside:T.languages[t]},{}))[e]={pattern:RegExp(/(<__[^>]*>)(?:<!\[CDATA\[(?:[^\]]|\](?!\]>))*\]\]>|(?!<!\[CDATA\[)[\s\S])*?(?=<\/__>)/.source.replace(/__/g,(function(){return e})),"i"),lookbehind:!0,greedy:!0,inside:n},T.languages.insertBefore("markup","cdata",t)}}),Object.defineProperty(T.languages.markup.tag,"addAttribute",{value:function(e,t){T.languages.markup.tag.inside["special-attr"].push({pattern:RegExp(/(^|["'\s])/.source+"(?:"+e+")"+/\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))/.source,"i"),lookbehind:!0,inside:{"attr-name":/^[^\s=]+/,"attr-value":{pattern:/=[\s\S]+/,inside:{value:{pattern:/(^=\s*(["']|(?!["'])))\S[\s\S]*(?=\2$)/,lookbehind:!0,alias:[t,"language-"+t],inside:T.languages[t]},punctuation:[{pattern:/^=/,alias:"attr-equals"},/"|'/]}}}})}}),T.languages.html=T.languages.markup,T.languages.mathml=T.languages.markup,T.languages.svg=T.languages.markup,T.languages.xml=T.languages.extend("markup",{}),T.languages.ssml=T.languages.xml,T.languages.atom=T.languages.xml,T.languages.rss=T.languages.xml,o=T,i={pattern:/\\[\\(){}[\]^$+*?|.]/,alias:"escape"},l="(?:[^\\\\-]|"+(s=/\\(?:x[\da-fA-F]{2}|u[\da-fA-F]{4}|u\{[\da-fA-F]+\}|0[0-7]{0,2}|[123][0-7]{2}|c[a-zA-Z]|.)/).source+")",l=RegExp(l+"-"+l),c={pattern:/(<|')[^<>']+(?=[>']$)/,lookbehind:!0,alias:"variable"},o.languages.regex={"char-class":{pattern:/((?:^|[^\\])(?:\\\\)*)\[(?:[^\\\]]|\\[\s\S])*\]/,lookbehind:!0,inside:{"char-class-negation":{pattern:/(^\[)\^/,lookbehind:!0,alias:"operator"},"char-class-punctuation":{pattern:/^\[|\]$/,alias:"punctuation"},range:{pattern:l,inside:{escape:s,"range-punctuation":{pattern:/-/,alias:"operator"}}},"special-escape":i,"char-set":{pattern:/\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},escape:s}},"special-escape":i,"char-set":{pattern:/\.|\\[wsd]|\\p\{[^{}]+\}/i,alias:"class-name"},backreference:[{pattern:/\\(?![123][0-7]{2})[1-9]/,alias:"keyword"},{pattern:/\\k<[^<>']+>/,alias:"keyword",inside:{"group-name":c}}],anchor:{pattern:/[$^]|\\[ABbGZz]/,alias:"function"},escape:s,group:[{pattern:/\((?:\?(?:<[^<>']+>|'[^<>']+'|[>:]|<?[=!]|[idmnsuxU]+(?:-[idmnsuxU]+)?:?))?/,alias:"punctuation",inside:{"group-name":c}},{pattern:/\)/,alias:"punctuation"}],quantifier:{pattern:/(?:[+*?]|\{\d+(?:,\d*)?\})[?+]?/,alias:"number"},alternation:{pattern:/\|/,alias:"keyword"}},T.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|trait)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:break|catch|continue|do|else|finally|for|function|if|in|instanceof|new|null|return|throw|try|while)\b/,boolean:/\b(?:false|true)\b/,function:/\b\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/},T.languages.javascript=T.languages.extend("clike",{"class-name":[T.languages.clike["class-name"],{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$A-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\.(?:constructor|prototype))/,lookbehind:!0}],keyword:[{pattern:/((?:^|\})\s*)catch\b/,lookbehind:!0},{pattern:/(^|[^.]|\.\.\.\s*)\b(?:as|assert(?=\s*\{)|async(?=\s*(?:function\b|\(|[$\w\xA0-\uFFFF]|$))|await|break|case|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally(?=\s*(?:\{|$))|for|from(?=\s*(?:['"]|$))|function|(?:get|set)(?=\s*(?:[#\[$\w\xA0-\uFFFF]|$))|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)\b/,lookbehind:!0}],function:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*(?:\.\s*(?:apply|bind|call)\s*)?\()/,number:{pattern:RegExp(/(^|[^\w$])/.source+"(?:"+/NaN|Infinity/.source+"|"+/0[bB][01]+(?:_[01]+)*n?/.source+"|"+/0[oO][0-7]+(?:_[0-7]+)*n?/.source+"|"+/0[xX][\dA-Fa-f]+(?:_[\dA-Fa-f]+)*n?/.source+"|"+/\d+(?:_\d+)*n/.source+"|"+/(?:\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\.\d+(?:_\d+)*)(?:[Ee][+-]?\d+(?:_\d+)*)?/.source+")"+/(?![\w$])/.source),lookbehind:!0},operator:/--|\+\+|\*\*=?|=>|&&=?|\|\|=?|[!=]==|<<=?|>>>?=?|[-+*/%&|^!=<>]=?|\.{3}|\?\?=?|\?\.?|[~:]/}),T.languages.javascript["class-name"][0].pattern=/(\b(?:class|extends|implements|instanceof|interface|new)\s+)[\w.\\]+/,T.languages.insertBefore("javascript","keyword",{regex:{pattern:RegExp(/((?:^|[^$\w\xA0-\uFFFF."'\])\s]|\b(?:return|yield))\s*)/.source+/\//.source+"(?:"+/(?:\[(?:[^\]\\\r\n]|\\.)*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}/.source+"|"+/(?:\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.|\[(?:[^[\]\\\r\n]|\\.)*\])*\])*\]|\\.|[^/\\\[\r\n])+\/[dgimyus]{0,7}v[dgimyus]{0,7}/.source+")"+/(?=(?:\s|\/\*(?:[^*]|\*(?!\/))*\*\/)*(?:$|[\r\n,.;:})\]]|\/\/))/.source),lookbehind:!0,greedy:!0,inside:{"regex-source":{pattern:/^(\/)[\s\S]+(?=\/[a-z]*$)/,lookbehind:!0,alias:"language-regex",inside:T.languages.regex},"regex-delimiter":/^\/|\/$/,"regex-flags":/^[a-z]+$/}},"function-variable":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*[=:]\s*(?:async\s*)?(?:\bfunction\b|(?:\((?:[^()]|\([^()]*\))*\)|(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/,alias:"function"},parameter:[{pattern:/(function(?:\s+(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)?\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\))/,lookbehind:!0,inside:T.languages.javascript},{pattern:/(^|[^$\w\xA0-\uFFFF])(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=>)/i,lookbehind:!0,inside:T.languages.javascript},{pattern:/(\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*=>)/,lookbehind:!0,inside:T.languages.javascript},{pattern:/((?:\b|\s|^)(?!(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|undefined|var|void|while|with|yield)(?![$\w\xA0-\uFFFF]))(?:(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*)\(\s*|\]\s*\(\s*)(?!\s)(?:[^()\s]|\s+(?![\s)])|\([^()]*\))+(?=\s*\)\s*\{)/,lookbehind:!0,inside:T.languages.javascript}],constant:/\b[A-Z](?:[A-Z_]|\dx?)*\b/}),T.languages.insertBefore("javascript","string",{hashbang:{pattern:/^#!.*/,greedy:!0,alias:"comment"},"template-string":{pattern:/`(?:\\[\s\S]|\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}|(?!\$\{)[^\\`])*`/,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$\{(?:[^{}]|\{(?:[^{}]|\{[^}]*\})*\})+\}/,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^\$\{|\}$/,alias:"punctuation"},rest:T.languages.javascript}},string:/[\s\S]+/}},"string-property":{pattern:/((?:^|[,{])[ \t]*)(["'])(?:\\(?:\r\n|[\s\S])|(?!\2)[^\\\r\n])*\2(?=\s*:)/m,lookbehind:!0,greedy:!0,alias:"property"}}),T.languages.insertBefore("javascript","operator",{"literal-property":{pattern:/((?:^|[,{])[ \t]*)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*:)/m,lookbehind:!0,alias:"property"}}),T.languages.markup&&(T.languages.markup.tag.addInlined("script","javascript"),T.languages.markup.tag.addAttribute(/on(?:abort|blur|change|click|composition(?:end|start|update)|dblclick|error|focus(?:in|out)?|key(?:down|up)|load|mouse(?:down|enter|leave|move|out|over|up)|reset|resize|scroll|select|slotchange|submit|unload|wheel)/.source,"javascript")),T.languages.js=T.languages.javascript,T.languages.actionscript=T.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|dynamic|each|else|extends|final|finally|for|function|get|if|implements|import|in|include|instanceof|interface|internal|is|namespace|native|new|null|override|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|use|var|void|while|with)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<<?|>>?>?|[!=]=?)=?|[~?@]/}),T.languages.actionscript["class-name"].alias="function",delete T.languages.actionscript.parameter,delete T.languages.actionscript["literal-property"],T.languages.markup&&T.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:T.languages.markup}}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},script:{pattern:/[\s\S]+/,alias:"language-javascript",inside:e.languages.javascript}}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(T),function(e){var t=e.languages.javadoclike={parameter:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*@(?:arg|arguments|param)\s+)\w+/m,lookbehind:!0},keyword:{pattern:/(^[\t ]*(?:\/{3}|\*|\/\*\*)\s*|\{)@[a-z][a-zA-Z-]+\b/m,lookbehind:!0},punctuation:/[{}]/};Object.defineProperty(t,"addSupport",{value:function(t,n){(t="string"==typeof t?[t]:t).forEach((function(t){var r=function(e){e.inside||(e.inside={}),e.inside.rest=n},a="doc-comment";if(o=e.languages[t]){var o,i=o[a];if((i=i||(o=e.languages.insertBefore(t,"comment",{"doc-comment":{pattern:/(^|[^\\])\/\*\*[^/][\s\S]*?(?:\*\/|$)/,lookbehind:!0,alias:"comment"}}))[a])instanceof RegExp&&(i=o[a]={pattern:i}),Array.isArray(i))for(var s=0,l=i.length;s<l;s++)i[s]instanceof RegExp&&(i[s]={pattern:i[s]}),r(i[s]);else r(i)}}))}}),t.addSupport(["java","javascript","php"],t)}(T),function(e){var t=/(?:"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n])*')/;(t=(e.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:RegExp("@[\\w-](?:"+/[^;{\s"']|\s+(?!\s)/.source+"|"+t.source+")*?"+/(?:;|(?=\s*\{))/.source),inside:{rule:/^@[\w-]+/,"selector-function-argument":{pattern:/(\bselector\s*\(\s*(?![\s)]))(?:[^()\s]|\s+(?![\s)])|\((?:[^()]|\([^()]*\))*\))+(?=\s*\))/,lookbehind:!0,alias:"selector"},keyword:{pattern:/(^|[^\w-])(?:and|not|only|or)(?![\w-])/,lookbehind:!0}}},url:{pattern:RegExp("\\burl\\((?:"+t.source+"|"+/(?:[^\\\r\n()"']|\\[\s\S])*/.source+")\\)","i"),greedy:!0,inside:{function:/^url/i,punctuation:/^\(|\)$/,string:{pattern:RegExp("^"+t.source+"$"),alias:"url"}}},selector:{pattern:RegExp("(^|[{}\\s])[^{}\\s](?:[^{};\"'\\s]|\\s+(?![\\s{])|"+t.source+")*(?=\\s*\\{)"),lookbehind:!0},string:{pattern:t,greedy:!0},property:{pattern:/(^|[^-\w\xA0-\uFFFF])(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*(?=\s*:)/i,lookbehind:!0},important:/!important\b/i,function:{pattern:/(^|[^-a-z0-9])[-a-z0-9]+(?=\()/i,lookbehind:!0},punctuation:/[(){};:,]/},e.languages.css.atrule.inside.rest=e.languages.css,e.languages.markup))&&(t.tag.addInlined("style","css"),t.tag.addAttribute("style","css"))}(T),function(e){var t=/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=(t=(e.languages.css.selector={pattern:e.languages.css.selector.pattern,lookbehind:!0,inside:t={"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+/,class:/\.[-\w]+/,id:/#[-\w]+/,attribute:{pattern:RegExp("\\[(?:[^[\\]\"']|"+t.source+")*\\]"),greedy:!0,inside:{punctuation:/^\[|\]$/,"case-sensitivity":{pattern:/(\s)[si]$/i,lookbehind:!0,alias:"keyword"},namespace:{pattern:/^(\s*)(?:(?!\s)[-*\w\xA0-\uFFFF])*\|(?!=)/,lookbehind:!0,inside:{punctuation:/\|$/}},"attr-name":{pattern:/^(\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+/,lookbehind:!0},"attr-value":[t,{pattern:/(=\s*)(?:(?!\s)[-\w\xA0-\uFFFF])+(?=\s*$)/,lookbehind:!0}],operator:/[|~*^$]?=/}},"n-th":[{pattern:/(\(\s*)[+-]?\d*[\dn](?:\s*[+-]\s*\d+)?(?=\s*\))/,lookbehind:!0,inside:{number:/[\dn]+/,operator:/[+-]/}},{pattern:/(\(\s*)(?:even|odd)(?=\s*\))/i,lookbehind:!0}],combinator:/>|\+|~|\|\|/,punctuation:/[(),]/}},e.languages.css.atrule.inside["selector-function-argument"].inside=t,e.languages.insertBefore("css","property",{variable:{pattern:/(^|[^-\w\xA0-\uFFFF])--(?!\s)[-_a-z\xA0-\uFFFF](?:(?!\s)[-\w\xA0-\uFFFF])*/i,lookbehind:!0}}),{pattern:/(\b\d+)(?:%|[a-z]+(?![\w-]))/,lookbehind:!0}),{pattern:/(^|[^\w.-])-?(?:\d+(?:\.\d+)?|\.\d+)/,lookbehind:!0});e.languages.insertBefore("css","function",{operator:{pattern:/(\s)[+\-*\/](?=\s)/,lookbehind:!0},hexcode:{pattern:/\B#[\da-f]{3,8}\b/i,alias:"color"},color:[{pattern:/(^|[^\w-])(?:AliceBlue|AntiqueWhite|Aqua|Aquamarine|Azure|Beige|Bisque|Black|BlanchedAlmond|Blue|BlueViolet|Brown|BurlyWood|CadetBlue|Chartreuse|Chocolate|Coral|CornflowerBlue|Cornsilk|Crimson|Cyan|DarkBlue|DarkCyan|DarkGoldenRod|DarkGr[ae]y|DarkGreen|DarkKhaki|DarkMagenta|DarkOliveGreen|DarkOrange|DarkOrchid|DarkRed|DarkSalmon|DarkSeaGreen|DarkSlateBlue|DarkSlateGr[ae]y|DarkTurquoise|DarkViolet|DeepPink|DeepSkyBlue|DimGr[ae]y|DodgerBlue|FireBrick|FloralWhite|ForestGreen|Fuchsia|Gainsboro|GhostWhite|Gold|GoldenRod|Gr[ae]y|Green|GreenYellow|HoneyDew|HotPink|IndianRed|Indigo|Ivory|Khaki|Lavender|LavenderBlush|LawnGreen|LemonChiffon|LightBlue|LightCoral|LightCyan|LightGoldenRodYellow|LightGr[ae]y|LightGreen|LightPink|LightSalmon|LightSeaGreen|LightSkyBlue|LightSlateGr[ae]y|LightSteelBlue|LightYellow|Lime|LimeGreen|Linen|Magenta|Maroon|MediumAquaMarine|MediumBlue|MediumOrchid|MediumPurple|MediumSeaGreen|MediumSlateBlue|MediumSpringGreen|MediumTurquoise|MediumVioletRed|MidnightBlue|MintCream|MistyRose|Moccasin|NavajoWhite|Navy|OldLace|Olive|OliveDrab|Orange|OrangeRed|Orchid|PaleGoldenRod|PaleGreen|PaleTurquoise|PaleVioletRed|PapayaWhip|PeachPuff|Peru|Pink|Plum|PowderBlue|Purple|RebeccaPurple|Red|RosyBrown|RoyalBlue|SaddleBrown|Salmon|SandyBrown|SeaGreen|SeaShell|Sienna|Silver|SkyBlue|SlateBlue|SlateGr[ae]y|Snow|SpringGreen|SteelBlue|Tan|Teal|Thistle|Tomato|Transparent|Turquoise|Violet|Wheat|White|WhiteSmoke|Yellow|YellowGreen)(?![\w-])/i,lookbehind:!0},{pattern:/\b(?:hsl|rgb)\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*\)\B|\b(?:hsl|rgb)a\(\s*\d{1,3}\s*,\s*\d{1,3}%?\s*,\s*\d{1,3}%?\s*,\s*(?:0|0?\.\d+|1)\s*\)\B/i,inside:{unit:t,number:n,function:/[\w-]+(?=\()/,punctuation:/[(),]/}}],entity:/\\[\da-f]{1,8}/i,unit:t,number:n})}(T),function(e){var t=/[*&][^\s[\]{},]+/,n=/!(?:<[\w\-%#;/?:@&=+$,.!~*'()[\]]+>|(?:[a-zA-Z\d-]*!)?[\w\-%#;/?:@&=+$.~*'()]+)?/,r="(?:"+n.source+"(?:[ \t]+"+t.source+")?|"+t.source+"(?:[ \t]+"+n.source+")?)",a=/(?:[^\s\x00-\x08\x0e-\x1f!"#%&'*,\-:>?@[\]`{|}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]|[?:-]<PLAIN>)(?:[ \t]*(?:(?![#:])<PLAIN>|:<PLAIN>))*/.source.replace(/<PLAIN>/g,(function(){return/[^\s\x00-\x08\x0e-\x1f,[\]{}\x7f-\x84\x86-\x9f\ud800-\udfff\ufffe\uffff]/.source})),o=/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\\\r\n]|\\.)*'/.source;function i(e,t){t=(t||"").replace(/m/g,"")+"m";var n=/([:\-,[{]\s*(?:\s<<prop>>[ \t]+)?)(?:<<value>>)(?=[ \t]*(?:$|,|\]|\}|(?:[\r\n]\s*)?#))/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<value>>/g,(function(){return e}));return RegExp(n,t)}e.languages.yaml={scalar:{pattern:RegExp(/([\-:]\s*(?:\s<<prop>>[ \t]+)?[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)\S[^\r\n]*(?:\2[^\r\n]+)*)/.source.replace(/<<prop>>/g,(function(){return r}))),lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:RegExp(/((?:^|[:\-,[{\r\n?])[ \t]*(?:<<prop>>[ \t]+)?)<<key>>(?=\s*:\s)/.source.replace(/<<prop>>/g,(function(){return r})).replace(/<<key>>/g,(function(){return"(?:"+a+"|"+o+")"}))),lookbehind:!0,greedy:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:i(/\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?(?:[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?))?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?/.source),lookbehind:!0,alias:"number"},boolean:{pattern:i(/false|true/.source,"i"),lookbehind:!0,alias:"important"},null:{pattern:i(/null|~/.source,"i"),lookbehind:!0,alias:"important"},string:{pattern:i(o),lookbehind:!0,greedy:!0},number:{pattern:i(/[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+(?:\.\d*)?|\.\d+)(?:e[+-]?\d+)?|\.inf|\.nan)/.source,"i"),lookbehind:!0},tag:n,important:t,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},e.languages.yml=e.languages.yaml}(T),function(e){var t=/(?:\\.|[^\\\n\r]|(?:\n|\r\n?)(?![\r\n]))/.source;function n(e){return e=e.replace(/<inner>/g,(function(){return t})),RegExp(/((?:^|[^\\])(?:\\{2})*)/.source+"(?:"+e+")")}var r=/(?:\\.|``(?:[^`\r\n]|`(?!`))+``|`[^`\r\n]+`|[^\\|\r\n`])+/.source,a=/\|?__(?:\|__)+\|?(?:(?:\n|\r\n?)|(?![\s\S]))/.source.replace(/__/g,(function(){return r})),o=/\|?[ \t]*:?-{3,}:?[ \t]*(?:\|[ \t]*:?-{3,}:?[ \t]*)+\|?(?:\n|\r\n?)/.source,i=(e.languages.markdown=e.languages.extend("markup",{}),e.languages.insertBefore("markdown","prolog",{"front-matter-block":{pattern:/(^(?:\s*[\r\n])?)---(?!.)[\s\S]*?[\r\n]---(?!.)/,lookbehind:!0,greedy:!0,inside:{punctuation:/^---|---$/,"front-matter":{pattern:/\S+(?:\s+\S+)*/,alias:["yaml","language-yaml"],inside:e.languages.yaml}}},blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},table:{pattern:RegExp("^"+a+o+"(?:"+a+")*","m"),inside:{"table-data-rows":{pattern:RegExp("^("+a+o+")(?:"+a+")*$"),lookbehind:!0,inside:{"table-data":{pattern:RegExp(r),inside:e.languages.markdown},punctuation:/\|/}},"table-line":{pattern:RegExp("^("+a+")"+o+"$"),lookbehind:!0,inside:{punctuation:/\||:?-{3,}:?/}},"table-header-row":{pattern:RegExp("^"+a+"$"),inside:{"table-header":{pattern:RegExp(r),alias:"important",inside:e.languages.markdown},punctuation:/\|/}}}},code:[{pattern:/((?:^|\n)[ \t]*\n|(?:^|\r\n?)[ \t]*\r\n?)(?: {4}|\t).+(?:(?:\n|\r\n?)(?: {4}|\t).+)*/,lookbehind:!0,alias:"keyword"},{pattern:/^```[\s\S]*?^```$/m,greedy:!0,inside:{"code-block":{pattern:/^(```.*(?:\n|\r\n?))[\s\S]+?(?=(?:\n|\r\n?)^```$)/m,lookbehind:!0},"code-language":{pattern:/^(```).+/,lookbehind:!0},punctuation:/```/}}],title:[{pattern:/\S.*(?:\n|\r\n?)(?:==+|--+)(?=[ \t]*$)/m,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:n(/\b__(?:(?!_)<inner>|_(?:(?!_)<inner>)+_)+__\b|\*\*(?:(?!\*)<inner>|\*(?:(?!\*)<inner>)+\*)+\*\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^..)[\s\S]+(?=..$)/,lookbehind:!0,inside:{}},punctuation:/\*\*|__/}},italic:{pattern:n(/\b_(?:(?!_)<inner>|__(?:(?!_)<inner>)+__)+_\b|\*(?:(?!\*)<inner>|\*\*(?:(?!\*)<inner>)+\*\*)+\*/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^.)[\s\S]+(?=.$)/,lookbehind:!0,inside:{}},punctuation:/[*_]/}},strike:{pattern:n(/(~~?)(?:(?!~)<inner>)+\2/.source),lookbehind:!0,greedy:!0,inside:{content:{pattern:/(^~~?)[\s\S]+(?=\1$)/,lookbehind:!0,inside:{}},punctuation:/~~?/}},"code-snippet":{pattern:/(^|[^\\`])(?:``[^`\r\n]+(?:`[^`\r\n]+)*``(?!`)|`[^`\r\n]+`(?!`))/,lookbehind:!0,greedy:!0,alias:["code","keyword"]},url:{pattern:n(/!?\[(?:(?!\])<inner>)+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)|[ \t]?\[(?:(?!\])<inner>)+\])/.source),lookbehind:!0,greedy:!0,inside:{operator:/^!/,content:{pattern:/(^\[)[^\]]+(?=\])/,lookbehind:!0,inside:{}},variable:{pattern:/(^\][ \t]?\[)[^\]]+(?=\]$)/,lookbehind:!0},url:{pattern:/(^\]\()[^\s)]+/,lookbehind:!0},string:{pattern:/(^[ \t]+)"(?:\\.|[^"\\])*"(?=\)$)/,lookbehind:!0}}}}),["url","bold","italic","strike"].forEach((function(t){["url","bold","italic","strike","code-snippet"].forEach((function(n){t!==n&&(e.languages.markdown[t].inside.content.inside[n]=e.languages.markdown[n])}))})),e.hooks.add("after-tokenize",(function(e){"markdown"!==e.language&&"md"!==e.language||function e(t){if(t&&"string"!=typeof t)for(var n=0,r=t.length;n<r;n++){var a,o=t[n];"code"!==o.type?e(o.content):(a=o.content[1],o=o.content[3],a&&o&&"code-language"===a.type&&"code-block"===o.type&&"string"==typeof a.content&&(a=a.content.replace(/\b#/g,"sharp").replace(/\b\+\+/g,"pp"),a="language-"+(a=(/[a-z][\w-]*/i.exec(a)||[""])[0].toLowerCase()),o.alias?"string"==typeof o.alias?o.alias=[o.alias,a]:o.alias.push(a):o.alias=[a]))}}(e.tokens)})),e.hooks.add("wrap",(function(t){if("code-block"===t.type){for(var n="",r=0,a=t.classes.length;r<a;r++){var o=t.classes[r];if(o=/language-(.+)/.exec(o)){n=o[1];break}}var c,u=e.languages[n];u?t.content=e.highlight(t.content.replace(i,"").replace(/&(\w{1,8}|#x?[\da-f]{1,8});/gi,(function(e,t){var n;return"#"===(t=t.toLowerCase())[0]?(n="x"===t[1]?parseInt(t.slice(2),16):Number(t.slice(1)),l(n)):s[t]||e})),u,n):n&&"none"!==n&&e.plugins.autoloader&&(c="md-"+(new Date).valueOf()+"-"+Math.floor(1e16*Math.random()),t.attributes.id=c,e.plugins.autoloader.loadLanguages(n,(function(){var t=document.getElementById(c);t&&(t.innerHTML=e.highlight(t.textContent,e.languages[n],n))})))}})),RegExp(e.languages.markup.tag.pattern.source,"gi")),s={amp:"&",lt:"<",gt:">",quot:'"'},l=String.fromCodePoint||String.fromCharCode;e.languages.md=e.languages.markdown}(T),T.languages.graphql={comment:/#.*/,description:{pattern:/(?:"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*")(?=\s*[a-z_])/i,greedy:!0,alias:"string",inside:{"language-markdown":{pattern:/(^"(?:"")?)(?!\1)[\s\S]+(?=\1$)/,lookbehind:!0,inside:T.languages.markdown}}},string:{pattern:/"""(?:[^"]|(?!""")")*"""|"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:false|true)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":{pattern:/\b[a-z_]\w*(?=\s*(?:\((?:[^()"]|"(?:\\.|[^\\"\r\n])*")*\))?:)/i,greedy:!0},"atom-input":{pattern:/\b[A-Z]\w*Input\b/,alias:"class-name"},scalar:/\b(?:Boolean|Float|ID|Int|String)\b/,constant:/\b[A-Z][A-Z_\d]*\b/,"class-name":{pattern:/(\b(?:enum|implements|interface|on|scalar|type|union)\s+|&\s*|:\s*|\[)[A-Z_]\w*/,lookbehind:!0},fragment:{pattern:/(\bfragment\s+|\.{3}\s*(?!on\b))[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-mutation":{pattern:/(\bmutation\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},"definition-query":{pattern:/(\bquery\s+)[a-zA-Z_]\w*/,lookbehind:!0,alias:"function"},keyword:/\b(?:directive|enum|extend|fragment|implements|input|interface|mutation|on|query|repeatable|scalar|schema|subscription|type|union)\b/,operator:/[!=|&]|\.{3}/,"property-query":/\w+(?=\s*\()/,object:/\w+(?=\s*\{)/,punctuation:/[!(){}\[\]:=,]/,property:/\w+/},T.hooks.add("after-tokenize",(function(e){if("graphql"===e.language)for(var t=e.tokens.filter((function(e){return"string"!=typeof e&&"comment"!==e.type&&"scalar"!==e.type})),n=0;n<t.length;){var r=t[n++];if("keyword"===r.type&&"mutation"===r.content){var a=[];if(d(["definition-mutation","punctuation"])&&"("===u(1).content){n+=2;var o=p(/^\($/,/^\)$/);if(-1===o)continue;for(;n<o;n++){var i=u(0);"variable"===i.type&&(f(i,"variable-input"),a.push(i.content))}n=o+1}if(d(["punctuation","property-query"])&&"{"===u(0).content&&(n++,f(u(0),"property-mutation"),0<a.length)){var s=p(/^\{$/,/^\}$/);if(-1!==s)for(var l=n;l<s;l++){var c=t[l];"variable"===c.type&&0<=a.indexOf(c.content)&&f(c,"variable-input")}}}}function u(e){return t[n+e]}function d(e,t){t=t||0;for(var n=0;n<e.length;n++){var r=u(n+t);if(!r||r.type!==e[n])return}return 1}function p(e,r){for(var a=1,o=n;o<t.length;o++){var i=t[o],s=i.content;if("punctuation"===i.type&&"string"==typeof s)if(e.test(s))a++;else if(r.test(s)&&0==--a)return o}return-1}function f(e,t){var n=e.alias;n?Array.isArray(n)||(e.alias=n=[n]):e.alias=n=[],n.push(t)}})),T.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},identifier:{pattern:/(^|[^@\\])`(?:\\[\s\S]|[^`\\]|``)*`/,greedy:!0,lookbehind:!0,inside:{punctuation:/^`|`$/}},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:COL|_INSERT)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURN(?:ING|S)?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:FALSE|NULL|TRUE)\b/i,number:/\b0x[\da-f]+\b|\b\d+(?:\.\d*)?|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|DIV|ILIKE|IN|IS|LIKE|NOT|OR|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},function(e){var t=e.languages.javascript["template-string"],n=t.pattern.source,r=t.inside.interpolation,a=r.inside["interpolation-punctuation"],o=r.pattern.source;function i(t,r){if(e.languages[t])return{pattern:RegExp("((?:"+r+")\\s*)"+n),lookbehind:!0,greedy:!0,inside:{"template-punctuation":{pattern:/^`|`$/,alias:"string"},"embedded-code":{pattern:/[\s\S]+/,alias:t}}}}function s(t,n,r){return t={code:t,grammar:n,language:r},e.hooks.run("before-tokenize",t),t.tokens=e.tokenize(t.code,t.grammar),e.hooks.run("after-tokenize",t),t.tokens}function l(t,n,i){var l=e.tokenize(t,{interpolation:{pattern:RegExp(o),lookbehind:!0}}),c=0,u={},d=(l=s(l.map((function(e){if("string"==typeof e)return e;var n,r;for(e=e.content;-1!==t.indexOf((r=c++,n="___"+i.toUpperCase()+"_"+r+"___")););return u[n]=e,n})).join(""),n,i),Object.keys(u));return c=0,function t(n){for(var o=0;o<n.length;o++){if(c>=d.length)return;var i,l,p,f,m,g,h,b=n[o];"string"==typeof b||"string"==typeof b.content?(i=d[c],-1!==(h=(g="string"==typeof b?b:b.content).indexOf(i))&&(++c,l=g.substring(0,h),m=u[i],p=void 0,(f={})["interpolation-punctuation"]=a,3===(f=e.tokenize(m,f)).length&&((p=[1,1]).push.apply(p,s(f[1],e.languages.javascript,"javascript")),f.splice.apply(f,p)),p=new e.Token("interpolation",f,r.alias,m),f=g.substring(h+i.length),m=[],l&&m.push(l),m.push(p),f&&(t(g=[f]),m.push.apply(m,g)),"string"==typeof b?(n.splice.apply(n,[o,1].concat(m)),o+=m.length-1):b.content=m)):(h=b.content,Array.isArray(h)?t(h):t([h]))}}(l),new e.Token(i,l,"language-"+i,t)}e.languages.javascript["template-string"]=[i("css",/\b(?:styled(?:\([^)]*\))?(?:\s*\.\s*\w+(?:\([^)]*\))*)*|css(?:\s*\.\s*(?:global|resolve))?|createGlobalStyle|keyframes)/.source),i("html",/\bhtml|\.\s*(?:inner|outer)HTML\s*\+?=/.source),i("svg",/\bsvg/.source),i("markdown",/\b(?:markdown|md)/.source),i("graphql",/\b(?:gql|graphql(?:\s*\.\s*experimental)?)/.source),i("sql",/\bsql/.source),t].filter(Boolean);var c={javascript:!0,js:!0,typescript:!0,ts:!0,jsx:!0,tsx:!0};function u(e){return"string"==typeof e?e:Array.isArray(e)?e.map(u).join(""):u(e.content)}e.hooks.add("after-tokenize",(function(t){t.language in c&&function t(n){for(var r=0,a=n.length;r<a;r++){var o,i,s,c=n[r];"string"!=typeof c&&(o=c.content,Array.isArray(o)?"template-string"===c.type?(c=o[1],3===o.length&&"string"!=typeof c&&"embedded-code"===c.type&&(i=u(c),c=c.alias,c=Array.isArray(c)?c[0]:c,s=e.languages[c])&&(o[1]=l(i,s,c))):t(o):"string"!=typeof o&&t([o]))}}(t.tokens)}))}(T),function(e){e.languages.typescript=e.languages.extend("javascript",{"class-name":{pattern:/(\b(?:class|extends|implements|instanceof|interface|new|type)\s+)(?!keyof\b)(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?:\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>)?/,lookbehind:!0,greedy:!0,inside:null},builtin:/\b(?:Array|Function|Promise|any|boolean|console|never|number|string|symbol|unknown)\b/}),e.languages.typescript.keyword.push(/\b(?:abstract|declare|is|keyof|readonly|require)\b/,/\b(?:asserts|infer|interface|module|namespace|type)\b(?=\s*(?:[{_$a-zA-Z\xA0-\uFFFF]|$))/,/\btype\b(?=\s*(?:[\{*]|$))/),delete e.languages.typescript.parameter,delete e.languages.typescript["literal-property"];var t=e.languages.extend("typescript",{});delete t["class-name"],e.languages.typescript["class-name"].inside=t,e.languages.insertBefore("typescript","function",{decorator:{pattern:/@[$\w\xA0-\uFFFF]+/,inside:{at:{pattern:/^@/,alias:"operator"},function:/^[\s\S]+/}},"generic-function":{pattern:/#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>(?=\s*\()/,greedy:!0,inside:{function:/^#?(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:t}}}}),e.languages.ts=e.languages.typescript}(T),function(e){var t=e.languages.javascript,n=/\{(?:[^{}]|\{(?:[^{}]|\{[^{}]*\})*\})+\}/.source,r="(@(?:arg|argument|param|property)\\s+(?:"+n+"\\s+)?)";e.languages.jsdoc=e.languages.extend("javadoclike",{parameter:{pattern:RegExp(r+/(?:(?!\s)[$\w\xA0-\uFFFF.])+(?=\s|$)/.source),lookbehind:!0,inside:{punctuation:/\./}}}),e.languages.insertBefore("jsdoc","keyword",{"optional-parameter":{pattern:RegExp(r+/\[(?:(?!\s)[$\w\xA0-\uFFFF.])+(?:=[^[\]]+)?\](?=\s|$)/.source),lookbehind:!0,inside:{parameter:{pattern:/(^\[)[$\w\xA0-\uFFFF\.]+/,lookbehind:!0,inside:{punctuation:/\./}},code:{pattern:/(=)[\s\S]*(?=\]$)/,lookbehind:!0,inside:t,alias:"language-javascript"},punctuation:/[=[\]]/}},"class-name":[{pattern:RegExp(/(@(?:augments|class|extends|interface|memberof!?|template|this|typedef)\s+(?:<TYPE>\s+)?)[A-Z]\w*(?:\.[A-Z]\w*)*/.source.replace(/<TYPE>/g,(function(){return n}))),lookbehind:!0,inside:{punctuation:/\./}},{pattern:RegExp("(@[a-z]+\\s+)"+n),lookbehind:!0,inside:{string:t.string,number:t.number,boolean:t.boolean,keyword:e.languages.typescript.keyword,operator:/=>|\.\.\.|[&|?:*]/,punctuation:/[.,;=<>{}()[\]]/}}],example:{pattern:/(@example\s+(?!\s))(?:[^@\s]|\s+(?!\s))+?(?=\s*(?:\*\s*)?(?:@\w|\*\/))/,lookbehind:!0,inside:{code:{pattern:/^([\t ]*(?:\*\s*)?)\S.*$/m,lookbehind:!0,inside:t,alias:"language-javascript"}}}}),e.languages.javadoclike.addSupport("javascript",e.languages.jsdoc)}(T),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Bb]oolean|Function|[Nn]umber|[Ss]tring|[Ss]ymbol|any|mixed|null|void)\b/,alias:"class-name"}]}),e.languages.flow["function-variable"].pattern=/(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|(?!\s)[_$a-z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*)\s*=>))/i,delete e.languages.flow.parameter,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),Array.isArray(e.languages.flow.keyword)||(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:Class|declare|opaque|type)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:Diff|Enum|Exact|Keys|ObjMap|PropertyType|Record|Shape|Subtype|Supertype|await)\b(?!\$)/,lookbehind:!0})}(T),T.languages.n4js=T.languages.extend("javascript",{keyword:/\b(?:Array|any|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),T.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),T.languages.n4jsd=T.languages.n4js,function(e){function t(e,t){return RegExp(e.replace(/<ID>/g,(function(){return/(?!\s)[_$a-zA-Z\xA0-\uFFFF](?:(?!\s)[$\w\xA0-\uFFFF])*/.source})),t)}e.languages.insertBefore("javascript","function-variable",{"method-variable":{pattern:RegExp("(\\.\\s*)"+e.languages.javascript["function-variable"].pattern.source),lookbehind:!0,alias:["function-variable","method","function","property-access"]}}),e.languages.insertBefore("javascript","function",{method:{pattern:RegExp("(\\.\\s*)"+e.languages.javascript.function.source),lookbehind:!0,alias:["function","property-access"]}}),e.languages.insertBefore("javascript","constant",{"known-class-name":[{pattern:/\b(?:(?:Float(?:32|64)|(?:Int|Uint)(?:8|16|32)|Uint8Clamped)?Array|ArrayBuffer|BigInt|Boolean|DataView|Date|Error|Function|Intl|JSON|(?:Weak)?(?:Map|Set)|Math|Number|Object|Promise|Proxy|Reflect|RegExp|String|Symbol|WebAssembly)\b/,alias:"class-name"},{pattern:/\b(?:[A-Z]\w*)Error\b/,alias:"class-name"}]}),e.languages.insertBefore("javascript","keyword",{imports:{pattern:t(/(\bimport\b\s*)(?:<ID>(?:\s*,\s*(?:\*\s*as\s+<ID>|\{[^{}]*\}))?|\*\s*as\s+<ID>|\{[^{}]*\})(?=\s*\bfrom\b)/.source),lookbehind:!0,inside:e.languages.javascript},exports:{pattern:t(/(\bexport\b\s*)(?:\*(?:\s*as\s+<ID>)?(?=\s*\bfrom\b)|\{[^{}]*\})/.source),lookbehind:!0,inside:e.languages.javascript}}),e.languages.javascript.keyword.unshift({pattern:/\b(?:as|default|export|from|import)\b/,alias:"module"},{pattern:/\b(?:await|break|catch|continue|do|else|finally|for|if|return|switch|throw|try|while|yield)\b/,alias:"control-flow"},{pattern:/\bnull\b/,alias:["null","nil"]},{pattern:/\bundefined\b/,alias:"nil"}),e.languages.insertBefore("javascript","operator",{spread:{pattern:/\.{3}/,alias:"operator"},arrow:{pattern:/=>/,alias:"operator"}}),e.languages.insertBefore("javascript","punctuation",{"property-access":{pattern:t(/(\.\s*)#?<ID>/.source),lookbehind:!0},"maybe-class-name":{pattern:/(^|[^$\w\xA0-\uFFFF])[A-Z][$\w\xA0-\uFFFF]+/,lookbehind:!0},dom:{pattern:/\b(?:document|(?:local|session)Storage|location|navigator|performance|window)\b/,alias:"variable"},console:{pattern:/\bconsole(?=\s*\.)/,alias:"class-name"}});for(var n=["function","function-variable","method","method-variable","property-access"],r=0;r<n.length;r++){var a=n[r],o=e.languages.javascript[a];a=(o="RegExp"===e.util.type(o)?e.languages.javascript[a]={pattern:o}:o).inside||{};(o.inside=a)["maybe-class-name"]=/^[A-Z][\s\S]*/}}(T),function(e){var t=e.util.clone(e.languages.javascript),n=/(?:\s|\/\/.*(?!.)|\/\*(?:[^*]|\*(?!\/))\*\/)/.source,r=/(?:\{(?:\{(?:\{[^{}]*\}|[^{}])*\}|[^{}])*\})/.source,a=/(?:\{<S>*\.{3}(?:[^{}]|<BRACES>)*\})/.source;function o(e,t){return e=e.replace(/<S>/g,(function(){return n})).replace(/<BRACES>/g,(function(){return r})).replace(/<SPREAD>/g,(function(){return a})),RegExp(e,t)}function i(t){for(var n=[],r=0;r<t.length;r++){var a=t[r],o=!1;"string"!=typeof a&&("tag"===a.type&&a.content[0]&&"tag"===a.content[0].type?"</"===a.content[0].content[0].content?0<n.length&&n[n.length-1].tagName===s(a.content[0].content[1])&&n.pop():"/>"!==a.content[a.content.length-1].content&&n.push({tagName:s(a.content[0].content[1]),openedBraces:0}):0<n.length&&"punctuation"===a.type&&"{"===a.content?n[n.length-1].openedBraces++:0<n.length&&0<n[n.length-1].openedBraces&&"punctuation"===a.type&&"}"===a.content?n[n.length-1].openedBraces--:o=!0),(o||"string"==typeof a)&&0<n.length&&0===n[n.length-1].openedBraces&&(o=s(a),r<t.length-1&&("string"==typeof t[r+1]||"plain-text"===t[r+1].type)&&(o+=s(t[r+1]),t.splice(r+1,1)),0<r&&("string"==typeof t[r-1]||"plain-text"===t[r-1].type)&&(o=s(t[r-1])+o,t.splice(r-1,1),r--),t[r]=new e.Token("plain-text",o,null,o)),a.content&&"string"!=typeof a.content&&i(a.content)}}a=o(a).source,e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=o(/<\/?(?:[\w.:-]+(?:<S>+(?:[\w.:$-]+(?:=(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s{'"/>=]+|<BRACES>))?|<SPREAD>))*<S>*\/?)?>/.source),e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:"(?:\\[\s\S]|[^\\"])*"|'(?:\\[\s\S]|[^\\'])*'|[^\s'">]+)/,e.languages.jsx.tag.inside.tag.inside["class-name"]=/^[A-Z]\w*(?:\.[A-Z]\w*)*$/,e.languages.jsx.tag.inside.comment=t.comment,e.languages.insertBefore("inside","attr-name",{spread:{pattern:o(/<SPREAD>/.source),inside:e.languages.jsx}},e.languages.jsx.tag),e.languages.insertBefore("inside","special-attr",{script:{pattern:o(/=<BRACES>/.source),alias:"language-javascript",inside:{"script-punctuation":{pattern:/^=(?=\{)/,alias:"punctuation"},rest:e.languages.jsx}}},e.languages.jsx.tag);var s=function(e){return e?"string"==typeof e?e:"string"==typeof e.content?e.content:e.content.map(s).join(""):""};e.hooks.add("after-tokenize",(function(e){"jsx"!==e.language&&"tsx"!==e.language||i(e.tokens)}))}(T),function(e){var t=e.util.clone(e.languages.typescript);(t=(e.languages.tsx=e.languages.extend("jsx",t),delete e.languages.tsx.parameter,delete e.languages.tsx["literal-property"],e.languages.tsx.tag)).pattern=RegExp(/(^|[^\w$]|(?=<\/))/.source+"(?:"+t.pattern.source+")",t.pattern.flags),t.lookbehind=!0}(T),T.languages.swift={comment:{pattern:/(^|[^\\:])(?:\/\/.*|\/\*(?:[^/*]|\/(?!\*)|\*(?!\/)|\/\*(?:[^*]|\*(?!\/))*\*\/)*\*\/)/,lookbehind:!0,greedy:!0},"string-literal":[{pattern:RegExp(/(^|[^"#])/.source+"(?:"+/"(?:\\(?:\((?:[^()]|\([^()]*\))*\)|\r\n|[^(])|[^\\\r\n"])*"/.source+"|"+/"""(?:\\(?:\((?:[^()]|\([^()]*\))*\)|[^(])|[^\\"]|"(?!""))*"""/.source+")"+/(?!["#])/.source),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\\($/,alias:"punctuation"},punctuation:/\\(?=[\r\n])/,string:/[\s\S]+/}},{pattern:RegExp(/(^|[^"#])(#+)/.source+"(?:"+/"(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|\r\n|[^#])|[^\\\r\n])*?"/.source+"|"+/"""(?:\\(?:#+\((?:[^()]|\([^()]*\))*\)|[^#])|[^\\])*?"""/.source+")\\2"),lookbehind:!0,greedy:!0,inside:{interpolation:{pattern:/(\\#+\()(?:[^()]|\([^()]*\))*(?=\))/,lookbehind:!0,inside:null},"interpolation-punctuation":{pattern:/^\)|\\#+\($/,alias:"punctuation"},string:/[\s\S]+/}}],directive:{pattern:RegExp(/#/.source+"(?:"+/(?:elseif|if)\b/.source+"(?:[ \t]*"+/(?:![ \t]*)?(?:\b\w+\b(?:[ \t]*\((?:[^()]|\([^()]*\))*\))?|\((?:[^()]|\([^()]*\))*\))(?:[ \t]*(?:&&|\|\|))?/.source+")+|"+/(?:else|endif)\b/.source+")"),alias:"property",inside:{"directive-name":/^#\w+/,boolean:/\b(?:false|true)\b/,number:/\b\d+(?:\.\d+)*\b/,operator:/!|&&|\|\||[<>]=?/,punctuation:/[(),]/}},literal:{pattern:/#(?:colorLiteral|column|dsohandle|file(?:ID|Literal|Path)?|function|imageLiteral|line)\b/,alias:"constant"},"other-directive":{pattern:/#\w+\b/,alias:"property"},attribute:{pattern:/@\w+/,alias:"atrule"},"function-definition":{pattern:/(\bfunc\s+)\w+/,lookbehind:!0,alias:"function"},label:{pattern:/\b(break|continue)\s+\w+|\b[a-zA-Z_]\w*(?=\s*:\s*(?:for|repeat|while)\b)/,lookbehind:!0,alias:"important"},keyword:/\b(?:Any|Protocol|Self|Type|actor|as|assignment|associatedtype|associativity|async|await|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic|else|enum|extension|fallthrough|fileprivate|final|for|func|get|guard|higherThan|if|import|in|indirect|infix|init|inout|internal|is|isolated|lazy|left|let|lowerThan|mutating|none|nonisolated|nonmutating|open|operator|optional|override|postfix|precedencegroup|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|set|some|static|struct|subscript|super|switch|throw|throws|try|typealias|unowned|unsafe|var|weak|where|while|willSet)\b/,boolean:/\b(?:false|true)\b/,nil:{pattern:/\bnil\b/,alias:"constant"},"short-argument":/\$\d+\b/,omit:{pattern:/\b_\b/,alias:"keyword"},number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,"class-name":/\b[A-Z](?:[A-Z_\d]*[a-z]\w*)?\b/,function:/\b[a-z_]\w*(?=\s*\()/i,constant:/\b(?:[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,operator:/[-+*/%=!<>&|^~?]+|\.[.\-+*/%=!<>&|^~?]+/,punctuation:/[{}[\]();,.:\\]/},T.languages.swift["string-literal"].forEach((function(e){e.inside.interpolation.inside=T.languages.swift})),function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[{pattern:/(?:`[^\r\n`]+`|\b\w+)(?=\s*\()/,greedy:!0},{pattern:/(\.)(?:`[^\r\n`]+`|\w+)(?=\s*\{)/,lookbehind:!0,greedy:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"];var t={"interpolation-punctuation":{pattern:/^\$\{?|\}$/,alias:"punctuation"},expression:{pattern:/[\s\S]+/,inside:e.languages.kotlin}};e.languages.insertBefore("kotlin","string",{"string-literal":[{pattern:/"""(?:[^$]|\$(?:(?!\{)|\{[^{}]*\}))*?"""/,alias:"multiline",inside:{interpolation:{pattern:/\$(?:[a-z_]\w*|\{[^{}]*\})/i,inside:t},string:/[\s\S]+/}},{pattern:/"(?:[^"\\\r\n$]|\\.|\$(?:(?!\{)|\{[^{}]*\}))*"/,alias:"singleline",inside:{interpolation:{pattern:/((?:^|[^\\])(?:\\{2})*)\$(?:[a-z_]\w*|\{[^{}]*\})/i,lookbehind:!0,inside:t},string:/[\s\S]+/}}],char:{pattern:/'(?:[^'\\\r\n]|\\(?:.|u[a-fA-F0-9]{0,4}))'/,greedy:!0}}),delete e.languages.kotlin.string,e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\b\w+@|@\w+\b/,alias:"symbol"}}),e.languages.kt=e.languages.kotlin,e.languages.kts=e.languages.kotlin}(T),T.languages.c=T.languages.extend("clike",{comment:{pattern:/\/\/(?:[^\r\n\\]|\\(?:\r\n?|\n|(?![\r\n])))*|\/\*[\s\S]*?(?:\*\/|$)/,greedy:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},"class-name":{pattern:/(\b(?:enum|struct)\s+(?:__attribute__\s*\(\([\s\S]*?\)\)\s*)?)\w+|\b[a-z]\w*_t\b/,lookbehind:!0},keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|__attribute__|asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|inline|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|typeof|union|unsigned|void|volatile|while)\b/,function:/\b[a-z_]\w*(?=\s*\()/i,number:/(?:\b0x(?:[\da-f]+(?:\.[\da-f]*)?|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:e[+-]?\d+)?)[ful]{0,4}/i,operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/}),T.languages.insertBefore("c","string",{char:{pattern:/'(?:\\(?:\r\n|[\s\S])|[^'\\\r\n]){0,32}'/,greedy:!0}}),T.languages.insertBefore("c","string",{macro:{pattern:/(^[\t ]*)#\s*[a-z](?:[^\r\n\\/]|\/(?!\*)|\/\*(?:[^*]|\*(?!\/))*\*\/|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,greedy:!0,alias:"property",inside:{string:[{pattern:/^(#\s*include\s*)<[^>]+>/,lookbehind:!0},T.languages.c.string],char:T.languages.c.char,comment:T.languages.c.comment,"macro-name":[{pattern:/(^#\s*define\s+)\w+\b(?!\()/i,lookbehind:!0},{pattern:/(^#\s*define\s+)\w+\b(?=\()/i,lookbehind:!0,alias:"function"}],directive:{pattern:/^(#\s*)[a-z]+/,lookbehind:!0,alias:"keyword"},"directive-hash":/^#/,punctuation:/##|\\(?=[\r\n])/,expression:{pattern:/\S[\s\S]*/,inside:T.languages.c}}}}),T.languages.insertBefore("c","function",{constant:/\b(?:EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|__DATE__|__FILE__|__LINE__|__TIMESTAMP__|__TIME__|__func__|stderr|stdin|stdout)\b/}),delete T.languages.c.boolean,T.languages.objectivec=T.languages.extend("c",{string:{pattern:/@?"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},keyword:/\b(?:asm|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|in|inline|int|long|register|return|self|short|signed|sizeof|static|struct|super|switch|typedef|typeof|union|unsigned|void|volatile|while)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,operator:/-[->]?|\+\+?|!=?|<<?=?|>>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete T.languages.objectivec["class-name"],T.languages.objc=T.languages.objectivec,T.languages.reason=T.languages.extend("clike",{string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|\|>|->|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:asr|land|lor|lsl|lsr|lxor|mod)\b/}),T.languages.insertBefore("reason","class-name",{char:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,greedy:!0},constructor:/\b[A-Z]\w*\b(?!\s*\.)/,label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete T.languages.reason.function,function(e){for(var t=/\/\*(?:[^*/]|\*(?!\/)|\/(?!\*)|<self>)*\*\//.source,n=0;n<2;n++)t=t.replace(/<self>/g,(function(){return t}));t=t.replace(/<self>/g,(function(){return/[^\s\S]/.source})),e.languages.rust={comment:[{pattern:RegExp(/(^|[^\\])/.source+t),lookbehind:!0,greedy:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/b?"(?:\\[\s\S]|[^\\"])*"|b?r(#*)"(?:[^"]|"(?!\1))*"\1/,greedy:!0},char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u\{(?:[\da-fA-F]_*){1,6}\}|.)|[^\\\r\n\t'])'/,greedy:!0},attribute:{pattern:/#!?\[(?:[^\[\]"]|"(?:\\[\s\S]|[^\\"])*")*\]/,greedy:!0,alias:"attr-name",inside:{string:null}},"closure-params":{pattern:/([=(,:]\s*|\bmove\s*)\|[^|]*\||\|[^|]*\|(?=\s*(?:\{|->))/,lookbehind:!0,greedy:!0,inside:{"closure-punctuation":{pattern:/^\||\|$/,alias:"punctuation"},rest:null}},"lifetime-annotation":{pattern:/'\w+/,alias:"symbol"},"fragment-specifier":{pattern:/(\$\w+:)[a-z]+/,lookbehind:!0,alias:"punctuation"},variable:/\$\w+/,"function-definition":{pattern:/(\bfn\s+)\w+/,lookbehind:!0,alias:"function"},"type-definition":{pattern:/(\b(?:enum|struct|trait|type|union)\s+)\w+/,lookbehind:!0,alias:"class-name"},"module-declaration":[{pattern:/(\b(?:crate|mod)\s+)[a-z][a-z_\d]*/,lookbehind:!0,alias:"namespace"},{pattern:/(\b(?:crate|self|super)\s*)::\s*[a-z][a-z_\d]*\b(?:\s*::(?:\s*[a-z][a-z_\d]*\s*::)*)?/,lookbehind:!0,alias:"namespace",inside:{punctuation:/::/}}],keyword:[/\b(?:Self|abstract|as|async|await|become|box|break|const|continue|crate|do|dyn|else|enum|extern|final|fn|for|if|impl|in|let|loop|macro|match|mod|move|mut|override|priv|pub|ref|return|self|static|struct|super|trait|try|type|typeof|union|unsafe|unsized|use|virtual|where|while|yield)\b/,/\b(?:bool|char|f(?:32|64)|[ui](?:8|16|32|64|128|size)|str)\b/],function:/\b[a-z_]\w*(?=\s*(?:::\s*<|\())/,macro:{pattern:/\b\w+!/,alias:"property"},constant:/\b[A-Z_][A-Z_\d]+\b/,"class-name":/\b[A-Z]\w*\b/,namespace:{pattern:/(?:\b[a-z][a-z_\d]*\s*::\s*)*\b[a-z][a-z_\d]*\s*::(?!\s*<)/,inside:{punctuation:/::/}},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(?:(?:\d(?:_?\d)*)?\.)?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:f32|f64|[iu](?:8|16|32|64|size)?))?\b/,boolean:/\b(?:false|true)\b/,punctuation:/->|\.\.=|\.{1,3}|::|[{}[\];(),:]/,operator:/[-+*\/%!^]=?|=[=>]?|&[&=]?|\|[|=]?|<<?=?|>>?=?|[@?]/},e.languages.rust["closure-params"].inside.rest=e.languages.rust,e.languages.rust.attribute.inside.string=e.languages.rust.string}(T),T.languages.go=T.languages.extend("clike",{string:{pattern:/(^|[^\\])"(?:\\.|[^"\\\r\n])*"|`[^`]*`/,lookbehind:!0,greedy:!0},keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,boolean:/\b(?:_|false|iota|nil|true)\b/,number:[/\b0(?:b[01_]+|o[0-7_]+)i?\b/i,/\b0x(?:[a-f\d_]+(?:\.[a-f\d_]*)?|\.[a-f\d_]+)(?:p[+-]?\d+(?:_\d+)*)?i?(?!\w)/i,/(?:\b\d[\d_]*(?:\.[\d_]*)?|\B\.\d[\d_]*)(?:e[+-]?[\d_]+)?i?(?!\w)/i],operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,builtin:/\b(?:append|bool|byte|cap|close|complex|complex(?:64|128)|copy|delete|error|float(?:32|64)|u?int(?:8|16|32|64)?|imag|len|make|new|panic|print(?:ln)?|real|recover|rune|string|uintptr)\b/}),T.languages.insertBefore("go","string",{char:{pattern:/'(?:\\.|[^'\\\r\n]){0,10}'/,greedy:!0}}),delete T.languages.go["class-name"],function(e){var t=/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|char8_t|class|co_await|co_return|co_yield|compl|concept|const|const_cast|consteval|constexpr|constinit|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|final|float|for|friend|goto|if|import|inline|int|int16_t|int32_t|int64_t|int8_t|long|module|mutable|namespace|new|noexcept|nullptr|operator|override|private|protected|public|register|reinterpret_cast|requires|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|uint16_t|uint32_t|uint64_t|uint8_t|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,n=/\b(?!<keyword>)\w+(?:\s*\.\s*\w+)*\b/.source.replace(/<keyword>/g,(function(){return t.source}));e.languages.cpp=e.languages.extend("c",{"class-name":[{pattern:RegExp(/(\b(?:class|concept|enum|struct|typename)\s+)(?!<keyword>)\w+/.source.replace(/<keyword>/g,(function(){return t.source}))),lookbehind:!0},/\b[A-Z]\w*(?=\s*::\s*\w+\s*\()/,/\b[A-Z_]\w*(?=\s*::\s*~\w+\s*\()/i,/\b\w+(?=\s*<(?:[^<>]|<(?:[^<>]|<[^<>]*>)*>)*>\s*::\s*\w+\s*\()/],keyword:t,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+(?:\.[\da-f']*)?|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+(?:\.[\d']*)?|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]{0,4}/i,greedy:!0},operator:/>>=?|<<=?|->|--|\+\+|&&|\|\||[?:~]|<=>|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:false|true)\b/}),e.languages.insertBefore("cpp","string",{module:{pattern:RegExp(/(\b(?:import|module)\s+)/.source+"(?:"+/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"|<[^<>\r\n]*>/.source+"|"+/<mod-name>(?:\s*:\s*<mod-name>)?|:\s*<mod-name>/.source.replace(/<mod-name>/g,(function(){return n}))+")"),lookbehind:!0,greedy:!0,inside:{string:/^[<"][\s\S]+/,operator:/:/,punctuation:/\./}},"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),e.languages.insertBefore("cpp","keyword",{"generic-function":{pattern:/\b(?!operator\b)[a-z_]\w*\s*<(?:[^<>]|<[^<>]*>)*>(?=\s*\()/i,inside:{function:/^\w+/,generic:{pattern:/<[\s\S]+/,alias:"class-name",inside:e.languages.cpp}}}}),e.languages.insertBefore("cpp","operator",{"double-colon":{pattern:/::/,alias:"punctuation"}}),e.languages.insertBefore("cpp","class-name",{"base-clause":{pattern:/(\b(?:class|struct)\s+\w+\s*:\s*)[^;{}"'\s]+(?:\s+[^;{}"'\s]+)*(?=\s*[;{])/,lookbehind:!0,greedy:!0,inside:e.languages.extend("cpp",{})}}),e.languages.insertBefore("inside","double-colon",{"class-name":/\b[a-z_]\w*\b(?!\s*::)/i},e.languages.cpp["base-clause"])}(T),T.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},"string-interpolation":{pattern:/(?:f|fr|rf)(?:("""|''')[\s\S]*?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:\{\{)*)\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}]|\{(?!\{)(?:[^{}])+\})+\})+\}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=\}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|br|rb)?("""|''')[\s\S]*?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|br|rb)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^[\t ]*)@\w+(?:\.\w+)*/m,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:_(?=\s*:)|and|as|assert|async|await|break|case|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|match|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:False|None|True)\b/,number:/\b0(?:b(?:_?[01])+|o(?:_?[0-7])+|x(?:_?[a-f0-9])+)\b|(?:\b\d+(?:_\d+)*(?:\.(?:\d+(?:_\d+)*)?)?|\B\.\d+(?:_\d+)*)(?:e[+-]?\d+(?:_\d+)*)?j?(?!\w)/i,operator:/[-+%=]=?|!=|:=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},T.languages.python["string-interpolation"].inside.interpolation.inside.rest=T.languages.python,T.languages.py=T.languages.python;((e,t)=>{for(var n in t)f(e,n,{get:t[n],enumerable:!0})})({},{dracula:()=>j,duotoneDark:()=>A,duotoneLight:()=>L,github:()=>R,jettwaveDark:()=>H,jettwaveLight:()=>Z,nightOwl:()=>N,nightOwlLight:()=>P,oceanicNext:()=>D,okaidia:()=>M,oneDark:()=>G,oneLight:()=>V,palenight:()=>F,shadesOfPurple:()=>z,synthwave84:()=>B,ultramin:()=>U,vsDark:()=>$,vsLight:()=>q});var j={plain:{color:"#F8F8F2",backgroundColor:"#282A36"},styles:[{types:["prolog","constant","builtin"],style:{color:"rgb(189, 147, 249)"}},{types:["inserted","function"],style:{color:"rgb(80, 250, 123)"}},{types:["deleted"],style:{color:"rgb(255, 85, 85)"}},{types:["changed"],style:{color:"rgb(255, 184, 108)"}},{types:["punctuation","symbol"],style:{color:"rgb(248, 248, 242)"}},{types:["string","char","tag","selector"],style:{color:"rgb(255, 121, 198)"}},{types:["keyword","variable"],style:{color:"rgb(189, 147, 249)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(98, 114, 164)"}},{types:["attr-name"],style:{color:"rgb(241, 250, 140)"}}]},A={plain:{backgroundColor:"#2a2734",color:"#9a86fd"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#6c6783"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#e09142"}},{types:["property","function"],style:{color:"#9a86fd"}},{types:["tag-id","selector","atrule-id"],style:{color:"#eeebff"}},{types:["attr-name"],style:{color:"#c4b9fe"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule","placeholder","variable"],style:{color:"#ffcc99"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#c4b9fe"}}]},L={plain:{backgroundColor:"#faf8f5",color:"#728fcb"},styles:[{types:["comment","prolog","doctype","cdata","punctuation"],style:{color:"#b6ad9a"}},{types:["namespace"],style:{opacity:.7}},{types:["tag","operator","number"],style:{color:"#063289"}},{types:["property","function"],style:{color:"#b29762"}},{types:["tag-id","selector","atrule-id"],style:{color:"#2d2006"}},{types:["attr-name"],style:{color:"#896724"}},{types:["boolean","string","entity","url","attr-value","keyword","control","directive","unit","statement","regex","atrule"],style:{color:"#728fcb"}},{types:["placeholder","variable"],style:{color:"#93abdc"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"#896724"}}]},R={plain:{color:"#393A34",backgroundColor:"#f6f8fa"},styles:[{types:["comment","prolog","doctype","cdata"],style:{color:"#999988",fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}},{types:["string","attr-value"],style:{color:"#e3116c"}},{types:["punctuation","operator"],style:{color:"#393A34"}},{types:["entity","url","symbol","number","boolean","variable","constant","property","regex","inserted"],style:{color:"#36acaa"}},{types:["atrule","keyword","attr-name","selector"],style:{color:"#00a4db"}},{types:["function","deleted","tag"],style:{color:"#d73a49"}},{types:["function-variable"],style:{color:"#6f42c1"}},{types:["tag","selector","keyword"],style:{color:"#00009f"}}]},N={plain:{color:"#d6deeb",backgroundColor:"#011627"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(99, 119, 119)",fontStyle:"italic"}},{types:["string","url"],style:{color:"rgb(173, 219, 103)"}},{types:["variable"],style:{color:"rgb(214, 222, 235)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation"],style:{color:"rgb(199, 146, 234)"}},{types:["selector","doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(255, 203, 139)"}},{types:["tag","operator","keyword"],style:{color:"rgb(127, 219, 202)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["property"],style:{color:"rgb(128, 203, 196)"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}}]},P={plain:{color:"#403f53",backgroundColor:"#FBFBFB"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)",fontStyle:"italic"}},{types:["inserted","attr-name"],style:{color:"rgb(72, 118, 214)",fontStyle:"italic"}},{types:["comment"],style:{color:"rgb(152, 159, 177)",fontStyle:"italic"}},{types:["string","builtin","char","constant","url"],style:{color:"rgb(72, 118, 214)"}},{types:["variable"],style:{color:"rgb(201, 103, 101)"}},{types:["number"],style:{color:"rgb(170, 9, 130)"}},{types:["punctuation"],style:{color:"rgb(153, 76, 195)"}},{types:["function","selector","doctype"],style:{color:"rgb(153, 76, 195)",fontStyle:"italic"}},{types:["class-name"],style:{color:"rgb(17, 17, 17)"}},{types:["tag"],style:{color:"rgb(153, 76, 195)"}},{types:["operator","property","keyword","namespace"],style:{color:"rgb(12, 150, 155)"}},{types:["boolean"],style:{color:"rgb(188, 84, 84)"}}]},O="#c5a5c5",I="#8dc891",D={plain:{backgroundColor:"#282c34",color:"#ffffff"},styles:[{types:["attr-name"],style:{color:O}},{types:["attr-value"],style:{color:I}},{types:["comment","block-comment","prolog","doctype","cdata","shebang"],style:{color:"#999999"}},{types:["property","number","function-name","constant","symbol","deleted"],style:{color:"#5a9bcf"}},{types:["boolean"],style:{color:"#ff8b50"}},{types:["tag"],style:{color:"#fc929e"}},{types:["string"],style:{color:I}},{types:["punctuation"],style:{color:I}},{types:["selector","char","builtin","inserted"],style:{color:"#D8DEE9"}},{types:["function"],style:{color:"#79b6f2"}},{types:["operator","entity","url","variable"],style:{color:"#d7deea"}},{types:["keyword"],style:{color:O}},{types:["atrule","class-name"],style:{color:"#FAC863"}},{types:["important"],style:{fontWeight:"400"}},{types:["bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["namespace"],style:{opacity:.7}}]},M={plain:{color:"#f8f8f2",backgroundColor:"#272822"},styles:[{types:["changed"],style:{color:"rgb(162, 191, 252)",fontStyle:"italic"}},{types:["deleted"],style:{color:"#f92672",fontStyle:"italic"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)",fontStyle:"italic"}},{types:["comment"],style:{color:"#8292a2",fontStyle:"italic"}},{types:["string","url"],style:{color:"#a6e22e"}},{types:["variable"],style:{color:"#f8f8f2"}},{types:["number"],style:{color:"#ae81ff"}},{types:["builtin","char","constant","function","class-name"],style:{color:"#e6db74"}},{types:["punctuation"],style:{color:"#f8f8f2"}},{types:["selector","doctype"],style:{color:"#a6e22e",fontStyle:"italic"}},{types:["tag","operator","keyword"],style:{color:"#66d9ef"}},{types:["boolean"],style:{color:"#ae81ff"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)",opacity:.7}},{types:["tag","property"],style:{color:"#f92672"}},{types:["attr-name"],style:{color:"#a6e22e !important"}},{types:["doctype"],style:{color:"#8292a2"}},{types:["rule"],style:{color:"#e6db74"}}]},F={plain:{color:"#bfc7d5",backgroundColor:"#292d3e"},styles:[{types:["comment"],style:{color:"rgb(105, 112, 152)",fontStyle:"italic"}},{types:["string","inserted"],style:{color:"rgb(195, 232, 141)"}},{types:["number"],style:{color:"rgb(247, 140, 108)"}},{types:["builtin","char","constant","function"],style:{color:"rgb(130, 170, 255)"}},{types:["punctuation","selector"],style:{color:"rgb(199, 146, 234)"}},{types:["variable"],style:{color:"rgb(191, 199, 213)"}},{types:["class-name","attr-name"],style:{color:"rgb(255, 203, 107)"}},{types:["tag","deleted"],style:{color:"rgb(255, 85, 114)"}},{types:["operator"],style:{color:"rgb(137, 221, 255)"}},{types:["boolean"],style:{color:"rgb(255, 88, 116)"}},{types:["keyword"],style:{fontStyle:"italic"}},{types:["doctype"],style:{color:"rgb(199, 146, 234)",fontStyle:"italic"}},{types:["namespace"],style:{color:"rgb(178, 204, 214)"}},{types:["url"],style:{color:"rgb(221, 221, 221)"}}]},z={plain:{color:"#9EFEFF",backgroundColor:"#2D2A55"},styles:[{types:["changed"],style:{color:"rgb(255, 238, 128)"}},{types:["deleted"],style:{color:"rgba(239, 83, 80, 0.56)"}},{types:["inserted"],style:{color:"rgb(173, 219, 103)"}},{types:["comment"],style:{color:"rgb(179, 98, 255)",fontStyle:"italic"}},{types:["punctuation"],style:{color:"rgb(255, 255, 255)"}},{types:["constant"],style:{color:"rgb(255, 98, 140)"}},{types:["string","url"],style:{color:"rgb(165, 255, 144)"}},{types:["variable"],style:{color:"rgb(255, 238, 128)"}},{types:["number","boolean"],style:{color:"rgb(255, 98, 140)"}},{types:["attr-name"],style:{color:"rgb(255, 180, 84)"}},{types:["keyword","operator","property","namespace","tag","selector","doctype"],style:{color:"rgb(255, 157, 0)"}},{types:["builtin","char","constant","function","class-name"],style:{color:"rgb(250, 208, 0)"}}]},B={plain:{backgroundColor:"linear-gradient(to bottom, #2a2139 75%, #34294f)",backgroundImage:"#34294f",color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"},styles:[{types:["comment","block-comment","prolog","doctype","cdata"],style:{color:"#495495",fontStyle:"italic"}},{types:["punctuation"],style:{color:"#ccc"}},{types:["tag","attr-name","namespace","number","unit","hexcode","deleted"],style:{color:"#e2777a"}},{types:["property","selector"],style:{color:"#72f1b8",textShadow:"0 0 2px #100c0f, 0 0 10px #257c5575, 0 0 35px #21272475"}},{types:["function-name"],style:{color:"#6196cc"}},{types:["boolean","selector-id","function"],style:{color:"#fdfdfd",textShadow:"0 0 2px #001716, 0 0 3px #03edf975, 0 0 5px #03edf975, 0 0 8px #03edf975"}},{types:["class-name","maybe-class-name","builtin"],style:{color:"#fff5f6",textShadow:"0 0 2px #000, 0 0 10px #fc1f2c75, 0 0 5px #fc1f2c75, 0 0 25px #fc1f2c75"}},{types:["constant","symbol"],style:{color:"#f92aad",textShadow:"0 0 2px #100c0f, 0 0 5px #dc078e33, 0 0 10px #fff3"}},{types:["important","atrule","keyword","selector-class"],style:{color:"#f4eee4",textShadow:"0 0 2px #393a33, 0 0 8px #f39f0575, 0 0 2px #f39f0575"}},{types:["string","char","attr-value","regex","variable"],style:{color:"#f87c32"}},{types:["parameter"],style:{fontStyle:"italic"}},{types:["entity","url"],style:{color:"#67cdcc"}},{types:["operator"],style:{color:"ffffffee"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["entity"],style:{cursor:"help"}},{types:["inserted"],style:{color:"green"}}]},U={plain:{color:"#282a2e",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(197, 200, 198)"}},{types:["string","number","builtin","variable"],style:{color:"rgb(150, 152, 150)"}},{types:["class-name","function","tag","attr-name"],style:{color:"rgb(40, 42, 46)"}}]},$={plain:{color:"#9CDCFE",backgroundColor:"#1E1E1E"},styles:[{types:["prolog"],style:{color:"rgb(0, 0, 128)"}},{types:["comment"],style:{color:"rgb(106, 153, 85)"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"rgb(86, 156, 214)"}},{types:["number","inserted"],style:{color:"rgb(181, 206, 168)"}},{types:["constant"],style:{color:"rgb(100, 102, 149)"}},{types:["attr-name","variable"],style:{color:"rgb(156, 220, 254)"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"rgb(206, 145, 120)"}},{types:["selector"],style:{color:"rgb(215, 186, 125)"}},{types:["tag"],style:{color:"rgb(78, 201, 176)"}},{types:["tag"],languages:["markup"],style:{color:"rgb(86, 156, 214)"}},{types:["punctuation","operator"],style:{color:"rgb(212, 212, 212)"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"rgb(220, 220, 170)"}},{types:["class-name"],style:{color:"rgb(78, 201, 176)"}},{types:["char"],style:{color:"rgb(209, 105, 105)"}}]},q={plain:{color:"#000000",backgroundColor:"#ffffff"},styles:[{types:["comment"],style:{color:"rgb(0, 128, 0)"}},{types:["builtin"],style:{color:"rgb(0, 112, 193)"}},{types:["number","variable","inserted"],style:{color:"rgb(9, 134, 88)"}},{types:["operator"],style:{color:"rgb(0, 0, 0)"}},{types:["constant","char"],style:{color:"rgb(129, 31, 63)"}},{types:["tag"],style:{color:"rgb(128, 0, 0)"}},{types:["attr-name"],style:{color:"rgb(255, 0, 0)"}},{types:["deleted","string"],style:{color:"rgb(163, 21, 21)"}},{types:["changed","punctuation"],style:{color:"rgb(4, 81, 165)"}},{types:["function","keyword"],style:{color:"rgb(0, 0, 255)"}},{types:["class-name"],style:{color:"rgb(38, 127, 153)"}}]},H={plain:{color:"#f8fafc",backgroundColor:"#011627"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#569CD6"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#f8fafc"}},{types:["attr-name","variable"],style:{color:"#9CDCFE"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#cbd5e1"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#D4D4D4"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#7dd3fc"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},Z={plain:{color:"#0f172a",backgroundColor:"#f1f5f9"},styles:[{types:["prolog"],style:{color:"#000080"}},{types:["comment"],style:{color:"#6A9955"}},{types:["builtin","changed","keyword","interpolation-punctuation"],style:{color:"#0c4a6e"}},{types:["number","inserted"],style:{color:"#B5CEA8"}},{types:["constant"],style:{color:"#0f172a"}},{types:["attr-name","variable"],style:{color:"#0c4a6e"}},{types:["deleted","string","attr-value","template-punctuation"],style:{color:"#64748b"}},{types:["selector"],style:{color:"#D7BA7D"}},{types:["tag"],style:{color:"#0ea5e9"}},{types:["tag"],languages:["markup"],style:{color:"#0ea5e9"}},{types:["punctuation","operator"],style:{color:"#475569"}},{types:["punctuation"],languages:["markup"],style:{color:"#808080"}},{types:["function"],style:{color:"#0e7490"}},{types:["class-name"],style:{color:"#0ea5e9"}},{types:["char"],style:{color:"#D16969"}}]},G={plain:{backgroundColor:"hsl(220, 13%, 18%)",color:"hsl(220, 14%, 71%)",textShadow:"0 1px rgba(0, 0, 0, 0.3)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(220, 10%, 40%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(220, 14%, 71%)"}},{types:["attr-name","class-name","maybe-class-name","boolean","constant","number","atrule"],style:{color:"hsl(29, 54%, 61%)"}},{types:["keyword"],style:{color:"hsl(286, 60%, 67%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(355, 65%, 65%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value"],style:{color:"hsl(95, 38%, 62%)"}},{types:["variable","operator","function"],style:{color:"hsl(207, 82%, 66%)"}},{types:["url"],style:{color:"hsl(187, 47%, 55%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(220, 14%, 71%)"}}]},V={plain:{backgroundColor:"hsl(230, 1%, 98%)",color:"hsl(230, 8%, 24%)"},styles:[{types:["comment","prolog","cdata"],style:{color:"hsl(230, 4%, 64%)"}},{types:["doctype","punctuation","entity"],style:{color:"hsl(230, 8%, 24%)"}},{types:["attr-name","class-name","boolean","constant","number","atrule"],style:{color:"hsl(35, 99%, 36%)"}},{types:["keyword"],style:{color:"hsl(301, 63%, 40%)"}},{types:["property","tag","symbol","deleted","important"],style:{color:"hsl(5, 74%, 59%)"}},{types:["selector","string","char","builtin","inserted","regex","attr-value","punctuation"],style:{color:"hsl(119, 34%, 47%)"}},{types:["variable","operator","function"],style:{color:"hsl(221, 87%, 60%)"}},{types:["url"],style:{color:"hsl(198, 99%, 37%)"}},{types:["deleted"],style:{textDecorationLine:"line-through"}},{types:["inserted"],style:{textDecorationLine:"underline"}},{types:["italic"],style:{fontStyle:"italic"}},{types:["important","bold"],style:{fontWeight:"bold"}},{types:["important"],style:{color:"hsl(230, 8%, 24%)"}}]},W=(e,t)=>{const{plain:n}=e,r=e.styles.reduce(((e,n)=>{const{languages:r,style:a}=n;return r&&!r.includes(t)||n.types.forEach((t=>{const n=S(S({},e[t]),a);e[t]=n})),e}),{});return r.root=n,r.plain=E(S({},n),{backgroundColor:void 0}),r},Q=/\r\n|\r|\n/,K=e=>{0===e.length?e.push({types:["plain"],content:"\n",empty:!0}):1===e.length&&""===e[0].content&&(e[0].content="\n",e[0].empty=!0)},Y=(e,t)=>{const n=e.length;return n>0&&e[n-1]===t?e:e.concat(t)},X=e=>{const t=[[]],n=[e],r=[0],a=[e.length];let o=0,i=0,s=[];const l=[s];for(;i>-1;){for(;(o=r[i]++)<a[i];){let e,c=t[i];const u=n[i][o];if("string"==typeof u?(c=i>0?c:["plain"],e=u):(c=Y(c,u.type),u.alias&&(c=Y(c,u.alias)),e=u.content),"string"!=typeof e){i++,t.push(c),n.push(e),r.push(0),a.push(e.length);continue}const d=e.split(Q),p=d.length;s.push({types:c,content:d[0]});for(let t=1;t<p;t++)K(s),l.push(s=[]),s.push({types:c,content:d[t]})}i--,t.pop(),n.pop(),r.pop(),a.pop()}return K(s),l},J=({children:e,language:t,code:n,theme:r,prism:a})=>{const o=t.toLowerCase(),i=((e,t)=>{const[n,r]=(0,u.useState)(W(t,e)),a=(0,u.useRef)(),o=(0,u.useRef)();return(0,u.useEffect)((()=>{t===a.current&&e===o.current||(a.current=t,o.current=e,r(W(t,e)))}),[e,t]),n})(o,r),s=(e=>(0,u.useCallback)((t=>{var n=t,{className:r,style:a,line:o}=n,i=_(n,["className","style","line"]);const s=E(S({},i),{className:(0,d.Z)("token-line",r)});return"object"==typeof e&&"plain"in e&&(s.style=e.plain),"object"==typeof a&&(s.style=S(S({},s.style||{}),a)),s}),[e]))(i),l=(e=>{const t=(0,u.useCallback)((({types:t,empty:n})=>{if(null!=e)return 1===t.length&&"plain"===t[0]?null!=n?{display:"inline-block"}:void 0:1===t.length&&null!=n?e[t[0]]:Object.assign(null!=n?{display:"inline-block"}:{},...t.map((t=>e[t])))}),[e]);return(0,u.useCallback)((e=>{var n=e,{token:r,className:a,style:o}=n,i=_(n,["token","className","style"]);const s=E(S({},i),{className:(0,d.Z)("token",...r.types,a),children:r.content,style:t(r)});return null!=o&&(s.style=S(S({},s.style||{}),o)),s}),[t])})(i),c=(({prism:e,code:t,grammar:n,language:r})=>{const a=(0,u.useRef)(e);return(0,u.useMemo)((()=>{if(null==n)return X([t]);const e={code:t,grammar:n,language:r,tokens:[]};return a.current.hooks.run("before-tokenize",e),e.tokens=a.current.tokenize(t,n),a.current.hooks.run("after-tokenize",e),X(e.tokens)}),[t,n,r])})({prism:a,language:o,code:n,grammar:a.languages[o]});return e({tokens:c,className:`prism-code language-${o}`,style:null!=i?i.root:{},getLineProps:s,getTokenProps:l})},ee=e=>(0,u.createElement)(J,E(S({},e),{prism:e.prism||T,theme:e.theme||$,code:e.code,language:e.language}))},8776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>o});var r=!0,a="Invariant failed";function o(e,t){if(!e){if(r)throw new Error(a);var n="function"==typeof t?t():t,o=n?"".concat(a,": ").concat(n):a;throw new Error(o)}}},7529:e=>{"use strict";e.exports={}},6887:e=>{"use strict";e.exports=JSON.parse('{"/react-native-template-strong/faq-c36":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"1fd605f7"},"/react-native-template-strong/mission-cc1":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"c5ed97f1"},"/react-native-template-strong/search-2ff":{"__comp":"1a4e3797","__context":{"plugin":"a7e83710"}},"/react-native-template-strong/troubleshooting-c71":{"__comp":"1f391b9e","__context":{"plugin":"b0417d48"},"content":"26509314"},"/react-native-template-strong/docs-d0f":{"__comp":"5e95c892","__context":{"plugin":"37742c1c"}},"/react-native-template-strong/docs-c29":{"__comp":"a7bd4aaa","version":"935f2afb"},"/react-native-template-strong/docs-1a9":{"__comp":"a94703ab"},"/react-native-template-strong/docs/api-274":{"__comp":"17896441","content":"5fbc5cf1"},"/react-native-template-strong/docs/app-icon-ae1":{"__comp":"17896441","content":"2f2dc1d3"},"/react-native-template-strong/docs/app-release-f60":{"__comp":"17896441","content":"b5ee907e"},"/react-native-template-strong/docs/checking-updates-815":{"__comp":"17896441","content":"e690c9e7"},"/react-native-template-strong/docs/common-constants-ed0":{"__comp":"17896441","content":"fcde09bc"},"/react-native-template-strong/docs/components/date-picker-overlay-261":{"__comp":"17896441","content":"4ff29f3f"},"/react-native-template-strong/docs/components/empty-view-a05":{"__comp":"17896441","content":"3efb1320"},"/react-native-template-strong/docs/components/flat-list-wrapper-770":{"__comp":"17896441","content":"1e5d5012"},"/react-native-template-strong/docs/components/icon-platform-1dc":{"__comp":"17896441","content":"8450a114"},"/react-native-template-strong/docs/components/image-crop-picker-button-27c":{"__comp":"17896441","content":"9bbfbce4"},"/react-native-template-strong/docs/components/loading-component-6f6":{"__comp":"17896441","content":"fab06093"},"/react-native-template-strong/docs/components/photo-taking-button-f01":{"__comp":"17896441","content":"cf5243f0"},"/react-native-template-strong/docs/components/primary-button-bf6":{"__comp":"17896441","content":"62c33f29"},"/react-native-template-strong/docs/components/primary-text-input-1fd":{"__comp":"17896441","content":"31630cdb"},"/react-native-template-strong/docs/components/radio-button-6f7":{"__comp":"17896441","content":"ff6d8346"},"/react-native-template-strong/docs/components/radio-icon-c7e":{"__comp":"17896441","content":"8a6ff679"},"/react-native-template-strong/docs/components/section-list-wrapper-b26":{"__comp":"17896441","content":"19829c28"},"/react-native-template-strong/docs/components/separator-e7f":{"__comp":"17896441","content":"9dcf257f"},"/react-native-template-strong/docs/components/toast-overlay-c46":{"__comp":"17896441","content":"e7a9e65a"},"/react-native-template-strong/docs/components/touchable-platform-4c0":{"__comp":"17896441","content":"9cf17553"},"/react-native-template-strong/docs/components/try-again-6f5":{"__comp":"17896441","content":"c2066304"},"/react-native-template-strong/docs/configs/babel-config-8a3":{"__comp":"17896441","content":"39654635"},"/react-native-template-strong/docs/configs/detox-config-a1e":{"__comp":"17896441","content":"ae8ecedf"},"/react-native-template-strong/docs/configs/eslint-config-6f4":{"__comp":"17896441","content":"08fac725"},"/react-native-template-strong/docs/configs/jest-config-260":{"__comp":"17896441","content":"5f9cf606"},"/react-native-template-strong/docs/configs/metro-config-1bf":{"__comp":"17896441","content":"91cb04fa"},"/react-native-template-strong/docs/configs/prettier-config-2bc":{"__comp":"17896441","content":"b801cfc7"},"/react-native-template-strong/docs/configs/rn-config-442":{"__comp":"17896441","content":"041eb33b"},"/react-native-template-strong/docs/configs/ts-config-c65":{"__comp":"17896441","content":"e2ad1f17"},"/react-native-template-strong/docs/dependencies-68f":{"__comp":"17896441","content":"7f85490b"},"/react-native-template-strong/docs/environments-d41":{"__comp":"17896441","content":"f2beb3a0"},"/react-native-template-strong/docs/getting-started-828":{"__comp":"17896441","content":"d589d3a7"},"/react-native-template-strong/docs/helpers/calculate-page-5f0":{"__comp":"17896441","content":"0a3d3edc"},"/react-native-template-strong/docs/helpers/color-helpers-770":{"__comp":"17896441","content":"328e254d"},"/react-native-template-strong/docs/helpers/default-key-id-extractor-088":{"__comp":"17896441","content":"84080ef2"},"/react-native-template-strong/docs/helpers/dialogs-helpers-c9e":{"__comp":"17896441","content":"43bdb0b8"},"/react-native-template-strong/docs/helpers/image-helpers-112":{"__comp":"17896441","content":"edb259cb"},"/react-native-template-strong/docs/helpers/in-app-review-helper-768":{"__comp":"17896441","content":"09318855"},"/react-native-template-strong/docs/helpers/net-info-helpers-fed":{"__comp":"17896441","content":"d95e32bd"},"/react-native-template-strong/docs/helpers/orientation-helpers-18d":{"__comp":"17896441","content":"5ed5e9d2"},"/react-native-template-strong/docs/helpers/regex-helpers-72c":{"__comp":"17896441","content":"07727b20"},"/react-native-template-strong/docs/helpers/share-helpers-653":{"__comp":"17896441","content":"0106a0c1"},"/react-native-template-strong/docs/helpers/strings-helpers-600":{"__comp":"17896441","content":"51dcefc3"},"/react-native-template-strong/docs/hooks/use-back-handler-6c7":{"__comp":"17896441","content":"aae46502"},"/react-native-template-strong/docs/hooks/use-debounce-d71":{"__comp":"17896441","content":"5d01a4f0"},"/react-native-template-strong/docs/hooks/use-event-register-153":{"__comp":"17896441","content":"2190081c"},"/react-native-template-strong/docs/hooks/use-flat-list-actions-f06":{"__comp":"17896441","content":"69e64926"},"/react-native-template-strong/docs/hooks/use-previous-768":{"__comp":"17896441","content":"11e380a5"},"/react-native-template-strong/docs/hooks/use-why-did-you-update-60b":{"__comp":"17896441","content":"5b2ba987"},"/react-native-template-strong/docs/internals/android-859":{"__comp":"17896441","content":"6222aa5d"},"/react-native-template-strong/docs/internals/ios-feb":{"__comp":"17896441","content":"fcca6dac"},"/react-native-template-strong/docs/localisation/add-language-758":{"__comp":"17896441","content":"14f2708c"},"/react-native-template-strong/docs/localisation/change-language-b0b":{"__comp":"17896441","content":"2b755825"},"/react-native-template-strong/docs/localisation/date-formatter-a03":{"__comp":"17896441","content":"ec7be5cc"},"/react-native-template-strong/docs/localisation/intl-formatter-0bd":{"__comp":"17896441","content":"2adfb7b8"},"/react-native-template-strong/docs/localisation/translations-353":{"__comp":"17896441","content":"3fdaf820"},"/react-native-template-strong/docs/navigation/actions-295":{"__comp":"17896441","content":"30b35490"},"/react-native-template-strong/docs/navigation/before-starting-9c0":{"__comp":"17896441","content":"d1e36d14"},"/react-native-template-strong/docs/navigation/default-options-f98":{"__comp":"17896441","content":"da80d167"},"/react-native-template-strong/docs/navigation/hooks-cb5":{"__comp":"17896441","content":"1a8cd603"},"/react-native-template-strong/docs/navigation/overlays-and-modals-347":{"__comp":"17896441","content":"2040cfe4"},"/react-native-template-strong/docs/navigation/pages-828":{"__comp":"17896441","content":"b1ef8e0a"},"/react-native-template-strong/docs/navigation/roots-8fc":{"__comp":"17896441","content":"bf787174"},"/react-native-template-strong/docs/pages/native-splash-88d":{"__comp":"17896441","content":"f2f008bc"},"/react-native-template-strong/docs/pages/onboarding-452":{"__comp":"17896441","content":"f49fe340"},"/react-native-template-strong/docs/pages/splash-472":{"__comp":"17896441","content":"b669beb2"},"/react-native-template-strong/docs/patches-863":{"__comp":"17896441","content":"eb838824"},"/react-native-template-strong/docs/redux/async-thunk-fa5":{"__comp":"17896441","content":"88cbf0c6"},"/react-native-template-strong/docs/redux/before-starting-f70":{"__comp":"17896441","content":"94173908"},"/react-native-template-strong/docs/redux/core-idea-309":{"__comp":"17896441","content":"201c1feb"},"/react-native-template-strong/docs/redux/hooks-385":{"__comp":"17896441","content":"e1df6725"},"/react-native-template-strong/docs/redux/slice-1bd":{"__comp":"17896441","content":"c27df6d1"},"/react-native-template-strong/docs/redux/state-5a5":{"__comp":"17896441","content":"ede50c9e"},"/react-native-template-strong/docs/redux/store-78c":{"__comp":"17896441","content":"4972ee25"},"/react-native-template-strong/docs/resources/fonts-c35":{"__comp":"17896441","content":"9a53555d"},"/react-native-template-strong/docs/resources/images-efe":{"__comp":"17896441","content":"5f847e85"},"/react-native-template-strong/docs/resources/sf-symbols-b6e":{"__comp":"17896441","content":"78a19f83"},"/react-native-template-strong/docs/resources/vector-icons-685":{"__comp":"17896441","content":"a88c1c0e"},"/react-native-template-strong/docs/structure/module-240":{"__comp":"17896441","content":"82bbd999"},"/react-native-template-strong/docs/structure/project-2a9":{"__comp":"17896441","content":"a09f8af8"},"/react-native-template-strong/docs/styles/common-sizes-78d":{"__comp":"17896441","content":"6e581f4b"},"/react-native-template-strong/docs/styles/common-styles-e28":{"__comp":"17896441","content":"1f05955d"},"/react-native-template-strong/docs/styles/component-styles-6b5":{"__comp":"17896441","content":"8e392f8e"},"/react-native-template-strong/docs/testing/detox-55c":{"__comp":"17896441","content":"3a8d2d9f"},"/react-native-template-strong/docs/testing/jest-a1d":{"__comp":"17896441","content":"527ccfd4"},"/react-native-template-strong/docs/testing/storybook-eb6":{"__comp":"17896441","content":"3c45ece2"},"/react-native-template-strong/docs/themes/colors-a7f":{"__comp":"17896441","content":"52fe9033"},"/react-native-template-strong/docs/themes/native-colors-ed6":{"__comp":"17896441","content":"3169c1c1"},"/react-native-template-strong/docs/types-b19":{"__comp":"17896441","content":"fa6c2e8e"},"/react-native-template-strong/docs/utils/list-handlers-b74":{"__comp":"17896441","content":"449809ec"},"/react-native-template-strong/docs/utils/new-state-494":{"__comp":"17896441","content":"bf3f5c43"},"/react-native-template-strong/docs/utils/serialize-query-params-f5d":{"__comp":"17896441","content":"b4a96655"},"/react-native-template-strong/docs/utils/url-openers-2cc":{"__comp":"17896441","content":"a775fdf9"},"/react-native-template-strong/docs/validations-982":{"__comp":"17896441","content":"644e2e9e"},"/react-native-template-strong/-da3":{"__comp":"1df93b7f","__context":{"plugin":"b0417d48"},"config":"5e9f5e1a"}}')}},e=>{e.O(0,[532],(()=>{return t=7221,e(e.s=t);var t}));e.O()}]); \ No newline at end of file diff --git a/assets/js/main.17deb7e1.js.LICENSE.txt b/assets/js/main.47c9f7f0.js.LICENSE.txt similarity index 74% rename from assets/js/main.17deb7e1.js.LICENSE.txt rename to assets/js/main.47c9f7f0.js.LICENSE.txt index df4ad43c..91dc8949 100644 --- a/assets/js/main.17deb7e1.js.LICENSE.txt +++ b/assets/js/main.47c9f7f0.js.LICENSE.txt @@ -1,6 +1,19 @@ /* NProgress, (c) 2013, 2014 Rico Sta. Cruz - http://ricostacruz.com/nprogress * @license MIT */ +/*! Bundled license information: + +prismjs/prism.js: + (** + * Prism: Lightweight, robust, elegant syntax highlighting + * + * @license MIT <https://opensource.org/licenses/MIT> + * @author Lea Verou <https://lea.verou.me> + * @namespace + * @public + *) +*/ + /** * @license React * react-dom.production.min.js @@ -41,25 +54,6 @@ * LICENSE file in the root directory of this source tree. */ -/** - * @license React - * use-sync-external-store-shim.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * - * @license MIT <https://opensource.org/licenses/MIT> - * @author Lea Verou <https://lea.verou.me> - * @namespace - * @public - */ - /** @license React v16.13.1 * react-is.production.min.js * diff --git a/assets/js/runtime~main.c7918995.js b/assets/js/runtime~main.c7918995.js new file mode 100644 index 00000000..8d8e49cf --- /dev/null +++ b/assets/js/runtime~main.c7918995.js @@ -0,0 +1 @@ +(()=>{"use strict";var e,f,c,a,d,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(f,c,a,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],a=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=a();void 0!==n&&(f=n)}}return f}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,a,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};f=f||[null,c({}),c([]),c(c)];for(var t=2&a&&e;"object"==typeof t&&!~f.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(d,b),d},r.d=(e,f)=>{for(var c in f)r.o(f,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:f[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,c)=>(r.f[c](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",186:"c5ed97f1",350:"2f2dc1d3",447:"3c45ece2",665:"ede50c9e",729:"d1e36d14",759:"3fdaf820",817:"07727b20",880:"8e392f8e",915:"2adfb7b8",945:"3a8d2d9f",962:"2b755825",1186:"201c1feb",1207:"5fbc5cf1",1242:"88cbf0c6",1314:"e1df6725",1357:"a09f8af8",1390:"d95e32bd",1477:"b0417d48",1486:"f2beb3a0",1721:"6e581f4b",1889:"edb259cb",1902:"a775fdf9",1984:"5ed5e9d2",2023:"fcde09bc",2188:"9cf17553",2239:"fcca6dac",2370:"11e380a5",2529:"ff6d8346",2544:"449809ec",2627:"bf3f5c43",2918:"328e254d",3085:"1f391b9e",3118:"b669beb2",3122:"c2066304",3220:"f2f008bc",3237:"1df93b7f",3286:"4ff29f3f",3427:"7f85490b",3518:"e7a9e65a",3772:"6222aa5d",3793:"31630cdb",3800:"b5ee907e",3845:"9bbfbce4",3888:"f49fe340",3922:"9a53555d",4012:"2040cfe4",4027:"08fac725",4258:"3efb1320",4368:"a94703ab",4469:"527ccfd4",4522:"1a8cd603",4697:"eb838824",4715:"041eb33b",4769:"ae8ecedf",4942:"1e5d5012",4991:"5b2ba987",5048:"da80d167",5116:"8450a114",5165:"0106a0c1",5277:"b4a96655",5389:"78a19f83",5565:"aae46502",5601:"5f847e85",5638:"5d01a4f0",5803:"1fd605f7",5887:"37742c1c",5967:"52fe9033",6235:"26509314",6243:"8a6ff679",6257:"fab06093",6394:"43bdb0b8",6638:"4972ee25",6759:"644e2e9e",6765:"94173908",7062:"5f9cf606",7102:"0a3d3edc",7162:"d589d3a7",7290:"91cb04fa",7444:"69e64926",7686:"e690c9e7",7705:"39654635",7748:"a88c1c0e",7816:"84080ef2",7831:"3169c1c1",7918:"17896441",7920:"1a4e3797",7952:"30b35490",8136:"cf5243f0",8460:"fa6c2e8e",8471:"ec7be5cc",8518:"a7bd4aaa",8608:"19829c28",8622:"b801cfc7",8842:"2190081c",8857:"a7e83710",8886:"9dcf257f",8906:"09318855",9102:"62c33f29",9117:"c27df6d1",9264:"e2ad1f17",9301:"1f05955d",9661:"5e95c892",9702:"b1ef8e0a",9709:"82bbd999",9721:"bf787174",9908:"14f2708c",9969:"51dcefc3"}[e]||e)+"."+{53:"221928ab",186:"49105c91",350:"bc9209ae",447:"48cbf5e3",665:"1818c4e1",692:"7bdb5bbe",729:"80e44583",759:"e3887165",817:"37a75e5b",880:"c4e39364",915:"a0be219a",945:"fa1b2c61",962:"f3702531",1186:"9dfc12d5",1207:"f3daa5fe",1242:"be060995",1314:"9a0719f9",1357:"f5e6e3d1",1390:"2240e801",1426:"9ae98cef",1477:"ced98287",1486:"3e2ae2a9",1721:"96f0063e",1772:"61f6592f",1889:"b9d7e83a",1902:"a062c406",1984:"ef9b58ec",2023:"a9ee9d0b",2188:"21111104",2239:"03772928",2370:"e3acd72e",2529:"7b8a532e",2544:"3e26d3c8",2627:"045e65bc",2918:"2b14dc19",3085:"e1786e1b",3118:"86b73957",3122:"5836462d",3220:"2cbfe496",3237:"658fb023",3286:"7a7c8b52",3427:"8753bb0a",3518:"0490afce",3772:"fae77e55",3793:"6aa85ab4",3800:"07edc557",3845:"8001f90e",3888:"4f3a16a3",3922:"80b7004c",4012:"489fd29d",4027:"b98e1a8b",4258:"f38a847a",4368:"5018fc8a",4469:"d1de7e13",4522:"dcfc27cd",4697:"dd21056d",4715:"43700011",4769:"433c66a5",4942:"5e888884",4991:"404c77da",5048:"6725179b",5116:"026a0590",5165:"d1be1800",5277:"ab0ff656",5389:"37d604ec",5565:"1f20f75a",5601:"d027db0e",5638:"107584d1",5803:"fcd66a2f",5887:"139248a1",5967:"01ce713c",6235:"bcbca1da",6243:"97520d5b",6257:"f3769e20",6394:"35035e38",6638:"d33960d7",6759:"fd30308e",6765:"51a4d942",6945:"8e8e2060",7062:"44f2588e",7102:"68f85f02",7162:"7490123a",7290:"5e48e87e",7444:"33ff0de6",7686:"a8a7b878",7705:"2b5d32a9",7748:"e18aba6f",7816:"cf2b77e8",7831:"5be1a012",7918:"b8f57162",7920:"1cb6e873",7952:"ca0f709c",8136:"97604f6e",8460:"7184605f",8471:"0e067126",8518:"45274bc2",8608:"c86124af",8622:"eeda6d62",8842:"637ea007",8857:"05b1cebe",8886:"aa994b3a",8894:"46125374",8906:"7eb9853a",9102:"0a26d829",9117:"d879a41e",9264:"c74488c3",9301:"007fdd68",9661:"b00730d7",9702:"4a06a167",9709:"6d0c58b6",9721:"c382d408",9908:"86c03e1f",9969:"81d45bb5"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),a={},d="website:",r.l=(e,f,c,b)=>{if(a[e])a[e].push(f);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+c){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+c),t.src=e),a[e]=[f];var l=(f,c)=>{t.onerror=t.onload=null,clearTimeout(s);var d=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),f)return f(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/react-native-template-strong/",r.gca=function(e){return e={17896441:"7918",26509314:"6235",39654635:"7705",94173908:"6765","935f2afb":"53",c5ed97f1:"186","2f2dc1d3":"350","3c45ece2":"447",ede50c9e:"665",d1e36d14:"729","3fdaf820":"759","07727b20":"817","8e392f8e":"880","2adfb7b8":"915","3a8d2d9f":"945","2b755825":"962","201c1feb":"1186","5fbc5cf1":"1207","88cbf0c6":"1242",e1df6725:"1314",a09f8af8:"1357",d95e32bd:"1390",b0417d48:"1477",f2beb3a0:"1486","6e581f4b":"1721",edb259cb:"1889",a775fdf9:"1902","5ed5e9d2":"1984",fcde09bc:"2023","9cf17553":"2188",fcca6dac:"2239","11e380a5":"2370",ff6d8346:"2529","449809ec":"2544",bf3f5c43:"2627","328e254d":"2918","1f391b9e":"3085",b669beb2:"3118",c2066304:"3122",f2f008bc:"3220","1df93b7f":"3237","4ff29f3f":"3286","7f85490b":"3427",e7a9e65a:"3518","6222aa5d":"3772","31630cdb":"3793",b5ee907e:"3800","9bbfbce4":"3845",f49fe340:"3888","9a53555d":"3922","2040cfe4":"4012","08fac725":"4027","3efb1320":"4258",a94703ab:"4368","527ccfd4":"4469","1a8cd603":"4522",eb838824:"4697","041eb33b":"4715",ae8ecedf:"4769","1e5d5012":"4942","5b2ba987":"4991",da80d167:"5048","8450a114":"5116","0106a0c1":"5165",b4a96655:"5277","78a19f83":"5389",aae46502:"5565","5f847e85":"5601","5d01a4f0":"5638","1fd605f7":"5803","37742c1c":"5887","52fe9033":"5967","8a6ff679":"6243",fab06093:"6257","43bdb0b8":"6394","4972ee25":"6638","644e2e9e":"6759","5f9cf606":"7062","0a3d3edc":"7102",d589d3a7:"7162","91cb04fa":"7290","69e64926":"7444",e690c9e7:"7686",a88c1c0e:"7748","84080ef2":"7816","3169c1c1":"7831","1a4e3797":"7920","30b35490":"7952",cf5243f0:"8136",fa6c2e8e:"8460",ec7be5cc:"8471",a7bd4aaa:"8518","19829c28":"8608",b801cfc7:"8622","2190081c":"8842",a7e83710:"8857","9dcf257f":"8886","09318855":"8906","62c33f29":"9102",c27df6d1:"9117",e2ad1f17:"9264","1f05955d":"9301","5e95c892":"9661",b1ef8e0a:"9702","82bbd999":"9709",bf787174:"9721","14f2708c":"9908","51dcefc3":"9969"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,c)=>{var a=r.o(e,f)?e[f]:void 0;if(0!==a)if(a)c.push(a[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var d=new Promise(((c,d)=>a=e[f]=[c,d]));c.push(a[2]=d);var b=r.p+r.u(f),t=new Error;r.l(b,(c=>{if(r.o(e,f)&&(0!==(a=e[f])&&(e[f]=void 0),a)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,a[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,c)=>{var a,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((f=>0!==e[f]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(f&&f(c);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},c=self.webpackChunkwebsite=self.webpackChunkwebsite||[];c.forEach(f.bind(null,0)),c.push=f.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/assets/js/runtime~main.d3db3302.js b/assets/js/runtime~main.d3db3302.js deleted file mode 100644 index 490d0674..00000000 --- a/assets/js/runtime~main.d3db3302.js +++ /dev/null @@ -1 +0,0 @@ -(()=>{"use strict";var e,f,c,a,d,b={},t={};function r(e){var f=t[e];if(void 0!==f)return f.exports;var c=t[e]={id:e,loaded:!1,exports:{}};return b[e].call(c.exports,c,c.exports,r),c.loaded=!0,c.exports}r.m=b,r.c=t,e=[],r.O=(f,c,a,d)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],a=e[i][1],d=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&d||b>=d)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,d<b&&(b=d));if(t){e.splice(i--,1);var n=a();void 0!==n&&(f=n)}}return f}d=d||0;for(var i=e.length;i>0&&e[i-1][2]>d;i--)e[i]=e[i-1];e[i]=[c,a,d]},r.n=e=>{var f=e&&e.__esModule?()=>e.default:()=>e;return r.d(f,{a:f}),f},c=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,r.t=function(e,a){if(1&a&&(e=this(e)),8&a)return e;if("object"==typeof e&&e){if(4&a&&e.__esModule)return e;if(16&a&&"function"==typeof e.then)return e}var d=Object.create(null);r.r(d);var b={};f=f||[null,c({}),c([]),c(c)];for(var t=2&a&&e;"object"==typeof t&&!~f.indexOf(t);t=c(t))Object.getOwnPropertyNames(t).forEach((f=>b[f]=()=>e[f]));return b.default=()=>e,r.d(d,b),d},r.d=(e,f)=>{for(var c in f)r.o(f,c)&&!r.o(e,c)&&Object.defineProperty(e,c,{enumerable:!0,get:f[c]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce(((f,c)=>(r.f[c](e,f),f)),[])),r.u=e=>"assets/js/"+({53:"935f2afb",186:"c5ed97f1",350:"2f2dc1d3",447:"3c45ece2",665:"ede50c9e",729:"d1e36d14",759:"3fdaf820",817:"07727b20",880:"8e392f8e",915:"2adfb7b8",945:"3a8d2d9f",962:"2b755825",1186:"201c1feb",1207:"5fbc5cf1",1242:"88cbf0c6",1314:"e1df6725",1357:"a09f8af8",1390:"d95e32bd",1477:"b0417d48",1486:"f2beb3a0",1721:"6e581f4b",1889:"edb259cb",1902:"a775fdf9",1984:"5ed5e9d2",2023:"fcde09bc",2188:"9cf17553",2239:"fcca6dac",2370:"11e380a5",2529:"ff6d8346",2544:"449809ec",2627:"bf3f5c43",2918:"328e254d",3085:"1f391b9e",3118:"b669beb2",3122:"c2066304",3220:"f2f008bc",3237:"1df93b7f",3286:"4ff29f3f",3427:"7f85490b",3518:"e7a9e65a",3772:"6222aa5d",3793:"31630cdb",3800:"b5ee907e",3845:"9bbfbce4",3888:"f49fe340",3922:"9a53555d",4012:"2040cfe4",4027:"08fac725",4258:"3efb1320",4368:"a94703ab",4469:"527ccfd4",4522:"1a8cd603",4697:"eb838824",4715:"041eb33b",4769:"ae8ecedf",4942:"1e5d5012",4991:"5b2ba987",5048:"da80d167",5116:"8450a114",5165:"0106a0c1",5277:"b4a96655",5389:"78a19f83",5565:"aae46502",5601:"5f847e85",5638:"5d01a4f0",5803:"1fd605f7",5887:"37742c1c",5967:"52fe9033",6235:"26509314",6243:"8a6ff679",6257:"fab06093",6394:"43bdb0b8",6638:"4972ee25",6759:"644e2e9e",6765:"94173908",7062:"5f9cf606",7102:"0a3d3edc",7162:"d589d3a7",7290:"91cb04fa",7444:"69e64926",7686:"e690c9e7",7705:"39654635",7748:"a88c1c0e",7816:"84080ef2",7831:"3169c1c1",7918:"17896441",7920:"1a4e3797",7952:"30b35490",8136:"cf5243f0",8460:"fa6c2e8e",8471:"ec7be5cc",8518:"a7bd4aaa",8608:"19829c28",8622:"b801cfc7",8842:"2190081c",8857:"a7e83710",8886:"9dcf257f",8906:"09318855",9102:"62c33f29",9117:"c27df6d1",9264:"e2ad1f17",9301:"1f05955d",9661:"5e95c892",9702:"b1ef8e0a",9709:"82bbd999",9721:"bf787174",9908:"14f2708c",9969:"51dcefc3"}[e]||e)+"."+{53:"221928ab",186:"2d70f298",350:"4e585ec4",447:"d7a2f459",665:"b2646eea",729:"4b661c0f",759:"e96c871d",817:"805eee28",880:"c4c03b58",915:"f980bfc3",945:"4c2de3df",962:"0a21ed1b",1186:"4a7826b0",1207:"bda21f93",1242:"e087a403",1314:"8ee2038c",1357:"43e005a7",1390:"03e80a33",1426:"a1095f54",1477:"ced98287",1486:"8ab47bb0",1721:"e7c07ac3",1772:"28750d4e",1889:"dad21e98",1902:"80e8c4c8",1984:"43ca17c1",2023:"4579637d",2188:"e4334942",2239:"121d13b6",2370:"67fdf632",2529:"a76d8393",2544:"54ca43e3",2627:"852105d2",2918:"091fb47a",3085:"6343aa54",3118:"d731353f",3122:"bc39b83f",3220:"8430308a",3237:"0c57f37a",3286:"e0c4c233",3427:"d453525b",3518:"3701b4d9",3772:"0fa28a8e",3793:"c59d12fa",3800:"a4fde704",3845:"c799d2c8",3888:"be6915ca",3922:"4fd1de70",4012:"0965aba1",4027:"a66c1f1c",4258:"4c1056c2",4368:"cdc6a653",4469:"5ba85ef3",4522:"865f64f7",4697:"b932796e",4715:"611dc025",4769:"af5ff458",4942:"a03dfdce",4991:"b5ca57fd",5048:"8f9c40c1",5116:"b3b5a4f9",5165:"1710a144",5277:"c8c98c48",5389:"15cf341a",5565:"ff8caf4a",5601:"9c9bcb38",5638:"ac8b24e7",5803:"cf33b52f",5887:"139248a1",5967:"3d26506c",6235:"b6616cc3",6243:"ae244ac5",6257:"86830fe6",6394:"26c974a0",6638:"a01aa6ad",6759:"e7333307",6765:"93646198",6945:"8e8e2060",7062:"86648ebb",7102:"ca9b72d5",7162:"6f9b2b64",7290:"db1aeebf",7444:"9bbdcea7",7686:"8de738ed",7705:"7a5acff8",7748:"1a5f6aa9",7816:"6ed75d33",7831:"fed069e7",7918:"c9a53a75",7920:"c412f7db",7952:"1a112f71",8136:"7655a082",8460:"17e6b11e",8471:"c2f58dfb",8518:"45274bc2",8608:"aeb800f3",8622:"208939b7",8705:"f0525c2d",8842:"ef8b1520",8857:"05b1cebe",8886:"9880fde7",8894:"46125374",8906:"492a5c89",9102:"90bea568",9117:"4c1825d8",9264:"ec08ace9",9301:"2196fa80",9661:"2b96eea3",9702:"fbab38ac",9709:"67be8e88",9721:"76a33336",9908:"29d255d8",9969:"56d0cc06"}[e]+".js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,f)=>Object.prototype.hasOwnProperty.call(e,f),a={},d="website:",r.l=(e,f,c,b)=>{if(a[e])a[e].push(f);else{var t,o;if(void 0!==c)for(var n=document.getElementsByTagName("script"),i=0;i<n.length;i++){var u=n[i];if(u.getAttribute("src")==e||u.getAttribute("data-webpack")==d+c){t=u;break}}t||(o=!0,(t=document.createElement("script")).charset="utf-8",t.timeout=120,r.nc&&t.setAttribute("nonce",r.nc),t.setAttribute("data-webpack",d+c),t.src=e),a[e]=[f];var l=(f,c)=>{t.onerror=t.onload=null,clearTimeout(s);var d=a[e];if(delete a[e],t.parentNode&&t.parentNode.removeChild(t),d&&d.forEach((e=>e(c))),f)return f(c)},s=setTimeout(l.bind(null,void 0,{type:"timeout",target:t}),12e4);t.onerror=l.bind(null,t.onerror),t.onload=l.bind(null,t.onload),o&&document.head.appendChild(t)}},r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.p="/react-native-template-strong/",r.gca=function(e){return e={17896441:"7918",26509314:"6235",39654635:"7705",94173908:"6765","935f2afb":"53",c5ed97f1:"186","2f2dc1d3":"350","3c45ece2":"447",ede50c9e:"665",d1e36d14:"729","3fdaf820":"759","07727b20":"817","8e392f8e":"880","2adfb7b8":"915","3a8d2d9f":"945","2b755825":"962","201c1feb":"1186","5fbc5cf1":"1207","88cbf0c6":"1242",e1df6725:"1314",a09f8af8:"1357",d95e32bd:"1390",b0417d48:"1477",f2beb3a0:"1486","6e581f4b":"1721",edb259cb:"1889",a775fdf9:"1902","5ed5e9d2":"1984",fcde09bc:"2023","9cf17553":"2188",fcca6dac:"2239","11e380a5":"2370",ff6d8346:"2529","449809ec":"2544",bf3f5c43:"2627","328e254d":"2918","1f391b9e":"3085",b669beb2:"3118",c2066304:"3122",f2f008bc:"3220","1df93b7f":"3237","4ff29f3f":"3286","7f85490b":"3427",e7a9e65a:"3518","6222aa5d":"3772","31630cdb":"3793",b5ee907e:"3800","9bbfbce4":"3845",f49fe340:"3888","9a53555d":"3922","2040cfe4":"4012","08fac725":"4027","3efb1320":"4258",a94703ab:"4368","527ccfd4":"4469","1a8cd603":"4522",eb838824:"4697","041eb33b":"4715",ae8ecedf:"4769","1e5d5012":"4942","5b2ba987":"4991",da80d167:"5048","8450a114":"5116","0106a0c1":"5165",b4a96655:"5277","78a19f83":"5389",aae46502:"5565","5f847e85":"5601","5d01a4f0":"5638","1fd605f7":"5803","37742c1c":"5887","52fe9033":"5967","8a6ff679":"6243",fab06093:"6257","43bdb0b8":"6394","4972ee25":"6638","644e2e9e":"6759","5f9cf606":"7062","0a3d3edc":"7102",d589d3a7:"7162","91cb04fa":"7290","69e64926":"7444",e690c9e7:"7686",a88c1c0e:"7748","84080ef2":"7816","3169c1c1":"7831","1a4e3797":"7920","30b35490":"7952",cf5243f0:"8136",fa6c2e8e:"8460",ec7be5cc:"8471",a7bd4aaa:"8518","19829c28":"8608",b801cfc7:"8622","2190081c":"8842",a7e83710:"8857","9dcf257f":"8886","09318855":"8906","62c33f29":"9102",c27df6d1:"9117",e2ad1f17:"9264","1f05955d":"9301","5e95c892":"9661",b1ef8e0a:"9702","82bbd999":"9709",bf787174:"9721","14f2708c":"9908","51dcefc3":"9969"}[e]||e,r.p+r.u(e)},(()=>{var e={1303:0,532:0};r.f.j=(f,c)=>{var a=r.o(e,f)?e[f]:void 0;if(0!==a)if(a)c.push(a[2]);else if(/^(1303|532)$/.test(f))e[f]=0;else{var d=new Promise(((c,d)=>a=e[f]=[c,d]));c.push(a[2]=d);var b=r.p+r.u(f),t=new Error;r.l(b,(c=>{if(r.o(e,f)&&(0!==(a=e[f])&&(e[f]=void 0),a)){var d=c&&("load"===c.type?"missing":c.type),b=c&&c.target&&c.target.src;t.message="Loading chunk "+f+" failed.\n("+d+": "+b+")",t.name="ChunkLoadError",t.type=d,t.request=b,a[1](t)}}),"chunk-"+f,f)}},r.O.j=f=>0===e[f];var f=(f,c)=>{var a,d,b=c[0],t=c[1],o=c[2],n=0;if(b.some((f=>0!==e[f]))){for(a in t)r.o(t,a)&&(r.m[a]=t[a]);if(o)var i=o(r)}for(f&&f(c);n<b.length;n++)d=b[n],r.o(e,d)&&e[d]&&e[d][0](),e[d]=0;return r.O(i)},c=self.webpackChunkwebsite=self.webpackChunkwebsite||[];c.forEach(f.bind(null,0)),c.push=f.bind(null,c.push.bind(c))})()})(); \ No newline at end of file diff --git a/docs/api/index.html b/docs/api/index.html index 235bc8b4..33c756f6 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -1,14 +1,14 @@ <!doctype html> -<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-api"> +<html lang="en" dir="ltr" class="docs-wrapper plugin-docs plugin-id-default docs-version-current docs-doc-page docs-doc-id-api" data-has-hydrated="false"> <head> <meta charset="UTF-8"> -<meta name="generator" content="Docusaurus v3.0.0-alpha.0"> -<title data-rh="true">API | React Native Template Strong - - + +API | React Native Template Strong + + -

API

Content

+

API

Content

This template was primarily made and tested with usage of fetch to communicate with API.

But it's up to you to choose what to use.

The API folder is located in src/core/api.

@@ -20,6 +20,6 @@

Additionally, there is handleFetchJsonResponse a fetch result handler to properly handle errors.

Example

-
export const ItemApi = {
async getData(): Promise<IResponseData> {
return await fetch(
`${Config.API_URL}/api/getData`,
{
method: 'GET',
headers: defaultHeaders,
},
).then(handleFetchJsonResponse);
},
};
+
export const ItemApi = {
async getData(): Promise<IResponseData> {
return await fetch(
`${Config.API_URL}/api/getData`,
{
method: 'GET',
headers: defaultHeaders,
},
).then(handleFetchJsonResponse);
},
};
\ No newline at end of file diff --git a/docs/app-icon/index.html b/docs/app-icon/index.html index 19268067..2213508c 100644 --- a/docs/app-icon/index.html +++ b/docs/app-icon/index.html @@ -1,14 +1,14 @@ - + - -App icon | React Native Template Strong - - + +App icon | React Native Template Strong + + -

App icon

Content

+

App icon

Content

There are already created icons for both Android and iOS you just need to replace them with your own assets.

Create icon assets

To create your own assets you can use this Figma icon template made by Ryan Yao.

@@ -16,6 +16,6 @@

Create ic

iOS icons location

/ios/*NameOfYourProject*/Images.assets/AppIcon.appiconset/

Android icons location

-

/android/app/src/main/res/ - mipmap folders

+

/android/app/src/main/res/ - mipmap folders

\ No newline at end of file diff --git a/docs/app-release/index.html b/docs/app-release/index.html index 42a8b9d4..74d09685 100644 --- a/docs/app-release/index.html +++ b/docs/app-release/index.html @@ -1,14 +1,14 @@ - + - -App release | React Native Template Strong - - + +App release | React Native Template Strong + + -

App release

Preparations

+ +
\ No newline at end of file diff --git a/docs/checking-updates/index.html b/docs/checking-updates/index.html index aaa5c4f7..51ecdb5b 100644 --- a/docs/checking-updates/index.html +++ b/docs/checking-updates/index.html @@ -1,14 +1,14 @@ - + - -Checking on updates | React Native Template Strong - - + +Checking on updates | React Native Template Strong + + -

Checking on updates

React Native Template Strong

+

Checking on updates

React Native Template Strong

You can compare the difference between your version of react-native-template-strong and the current one using compare in the GitHub repository releases

To know on what version of template your app was initially created open README file in your local repository, and you'll see Version.

@@ -22,6 +22,6 @@

Node modulesCheck on updates of node_modules of your own project to keep up with the latest releases by running npm run check-dependencies-updates. Check what's new and update if needed.

IDEs and Tools

-

Try to keep your primary IDEs like Android Studio, XCode, VSCode, WebStorm and tools like Flipper, Postman updated too.

+

Try to keep your primary IDEs like Android Studio, XCode, VSCode, WebStorm and tools like Flipper, Postman updated too.

\ No newline at end of file diff --git a/docs/common-constants/index.html b/docs/common-constants/index.html index bc3abc53..6e9f0231 100644 --- a/docs/common-constants/index.html +++ b/docs/common-constants/index.html @@ -1,14 +1,14 @@ - + - -Common constants | React Native Template Strong - - + +Common constants | React Native Template Strong + + -

Common constants

Content

+ +
\ No newline at end of file diff --git a/docs/components/date-picker-overlay/index.html b/docs/components/date-picker-overlay/index.html index 0181168f..571e521a 100644 --- a/docs/components/date-picker-overlay/index.html +++ b/docs/components/date-picker-overlay/index.html @@ -1,59 +1,19 @@ - + - -DatePickerOverlay | React Native Template Strong - - + +DatePickerOverlay | React Native Template Strong + + -

DatePickerOverlay

Content

+

DatePickerOverlay

Content

Do not use this component directly!

Use showDatePicker to present this component because it's linked to navigation.

Represents a date picker provided by @react-native-community/datetimepicker as modal on iOS and as overlay on Android.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
valueDateTrue-Current selected date value
minDateDateFalseUndefinedMinimum border of available dates for selection
maxDateDateFalseUndefinedMaximum border of available dates for selection
onDateChange(date: Date) => void FalseUndefinedCallback with selected date
+
NameTypeRequiredDefault valueDescription
valueDateTrue-Current selected date value
minDateDateFalseUndefinedMinimum border of available dates for selection
maxDateDateFalseUndefinedMaximum border of available dates for selection
onDateChange(date: Date) => void FalseUndefinedCallback with selected date

Usage example

-
const [selectedDate, setSelectedDate] = useState<Date>(new Date());

const onPress = useCallback(() => {
return showDatePicker({
value: selectedDate,
onDateChange: setSelectedDate,
});
}, [selectedDate, setSelectedDate]);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<PrimaryButton type={ButtonType.solid} label={"Select date"} onPress={onPress} />
<DescriptionText>{dateFromFormat(selectedDate, DateFormat.yearDateTime)}</DescriptionText>
</ScrollView>
);
+
const [selectedDate, setSelectedDate] = useState<Date>(new Date());

const onPress = useCallback(() => {
return showDatePicker({
value: selectedDate,
onDateChange: setSelectedDate,
});
}, [selectedDate, setSelectedDate]);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<PrimaryButton type={ButtonType.solid} label={"Select date"} onPress={onPress} />
<DescriptionText>{dateFromFormat(selectedDate, DateFormat.yearDateTime)}</DescriptionText>
</ScrollView>
);
\ No newline at end of file diff --git a/docs/components/empty-view/index.html b/docs/components/empty-view/index.html index dc7c4b2f..cce10dc7 100644 --- a/docs/components/empty-view/index.html +++ b/docs/components/empty-view/index.html @@ -1,45 +1,19 @@ - + - -EmptyView | React Native Template Strong - - + +EmptyView | React Native Template Strong + + -

EmptyView

Content

+

EmptyView

Content

Empty view with title and description. Used mostly in conjunction with FlatListWrapper and SectionListWrapper as ListEmptyComponent (used as default property in both of them).

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
titlestringTrue-Title message
descriptionstringTrue-Description message
+
NameTypeRequiredDefault valueDescription
titlestringTrue-Title message
descriptionstringTrue-Description message

Usage example

-
return (
<EmptyView title={"You have no items yet"} description={"All your items will be displayed here"} />
);
-
FlatListWrapper.defaultProps = {
keyExtractor: defaultKeyIdExtractor,
ListEmptyComponent: <EmptyView title={localization.empty.noData} description={localization.empty.checkThisPageLater} />,
onEndReachedThreshold: 1,
};
+
return (
<EmptyView title={"You have no items yet"} description={"All your items will be displayed here"} />
);
+
FlatListWrapper.defaultProps = {
keyExtractor: defaultKeyIdExtractor,
ListEmptyComponent: <EmptyView title={localization.empty.noData} description={localization.empty.checkThisPageLater} />,
onEndReachedThreshold: 1,
};
\ No newline at end of file diff --git a/docs/components/flat-list-wrapper/index.html b/docs/components/flat-list-wrapper/index.html index 71d231a2..c04ba853 100644 --- a/docs/components/flat-list-wrapper/index.html +++ b/docs/components/flat-list-wrapper/index.html @@ -1,52 +1,19 @@ - + - -FlatListWrapper | React Native Template Strong - - + +FlatListWrapper | React Native Template Strong + + -

FlatListWrapper

Content

+

FlatListWrapper

Content

Wrapper around FlatList which operates based on provided LoadState and shows appropriate data.

Params

Extends FlatListProps and additionally adds next properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
loadStateLoadStateTrue-Load state
tryAgain() => voidFalseUndefinedAction callback which occurs when pressing on Try Again
errorstring or nullFalselocalization.errors.listErrorTitleError text which will be shown to user in case if loadState == LoadState.error
+
NameTypeRequiredDefault valueDescription
loadStateLoadStateTrue-Load state
tryAgain() => voidFalseUndefinedAction callback which occurs when pressing on Try Again
errorstring or nullFalselocalization.errors.listErrorTitleError text which will be shown to user in case if loadState == LoadState.error

Usage example

-
  return (
<FlatListWrapper
loadState={loadState}
data={data}
error={error}
renderItem={renderItem}
ListEmptyComponent={<EmptyView title={localization.empty.orders} description={localization.empty.ordersDescription} />}
tryAgain={tryAgain}
onRefresh={pullToRefresh}
onEndReached={loadMore}
keyExtractor={orderKeyExtractor}
/>
);
+
  return (
<FlatListWrapper
loadState={loadState}
data={data}
error={error}
renderItem={renderItem}
ListEmptyComponent={<EmptyView title={localization.empty.orders} description={localization.empty.ordersDescription} />}
tryAgain={tryAgain}
onRefresh={pullToRefresh}
onEndReached={loadMore}
keyExtractor={orderKeyExtractor}
/>
);
\ No newline at end of file diff --git a/docs/components/icon-platform/index.html b/docs/components/icon-platform/index.html index d127ce51..64ee1efd 100644 --- a/docs/components/icon-platform/index.html +++ b/docs/components/icon-platform/index.html @@ -1,59 +1,19 @@ - + - -IconPlatform | React Native Template Strong - - + +IconPlatform | React Native Template Strong + + -

IconPlatform

Content

+

IconPlatform

Content

Shows provided SF Symbol for iOS or Material Icon for Android or if both aren't provided then returns null.

Params

Extends IconProps of react-native-vector-icons/Icon and SFSymbolProps of react-native-sfsymbols and omits name of both of them.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
iosNameSFSymbolsFalseUndefinedSF Symbol fron enum
androidNamestringFalseUndefinedName of Material Icon
colorColorValueFalseUndefinedColor of icon
styleTextStyle or ViewStyleFalseUndefinedStyle of icon
+
NameTypeRequiredDefault valueDescription
iosNameSFSymbolsFalseUndefinedSF Symbol fron enum
androidNamestringFalseUndefinedName of Material Icon
colorColorValueFalseUndefinedColor of icon
styleTextStyle or ViewStyleFalseUndefinedStyle of icon

Usage example

-
        <IconPlatform
iosName={SFSymbols["star.fill"]}
androidName={"star-rate"}
size={moderateScale(32)}
resizeMode={"contain"}
color={platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.primary)}
style={styles.clauseIcon}
/>
+
        <IconPlatform
iosName={SFSymbols["star.fill"]}
androidName={"star-rate"}
size={moderateScale(32)}
resizeMode={"contain"}
color={platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.primary)}
style={styles.clauseIcon}
/>
\ No newline at end of file diff --git a/docs/components/image-crop-picker-button/index.html b/docs/components/image-crop-picker-button/index.html index 84f76316..d3ed504e 100644 --- a/docs/components/image-crop-picker-button/index.html +++ b/docs/components/image-crop-picker-button/index.html @@ -1,96 +1,21 @@ - + - -ImageCropPickerButton | React Native Template Strong - - + +ImageCropPickerButton | React Native Template Strong + + -

ImageCropPickerButton

Content

+

ImageCropPickerButton

Content

Image crop picker button which provides a dialog to user to photo selection or image taking or removing existing one and also showing the result to user.

If image is not selected it will show a button with icon.

Uses PhotoTakingButton as button component.

Uses react-native-image-crop-picker for image picking.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
onImagePicked(image: CropperImage) => voidTrue-On image picked callback
onRemoveImage() => voidTrue-On remove image callback
onPickerError(error: Error) => voidFalseUndefinedCallback with error when something went wrong
imageImageURISource or nullFalseUndefinedSelected image which will be shown and used
iconImageURISourceFalseImageResources.cameraIcon which will be shown when image is not present and over the selected image
styleViewStyleFalseUndefinedStyle of button
iconStyleImageStyleFalseUndefinedStyle of icon
imageStyleImageStyleFalseUndefinedStyle of image
disabledbooleanFalseUndefinedIs button disabled
+
NameTypeRequiredDefault valueDescription
onImagePicked(image: CropperImage) => voidTrue-On image picked callback
onRemoveImage() => voidTrue-On remove image callback
onPickerError(error: Error) => voidFalseUndefinedCallback with error when something went wrong
imageImageURISource or nullFalseUndefinedSelected image which will be shown and used
iconImageURISourceFalseImageResources.cameraIcon which will be shown when image is not present and over the selected image
styleViewStyleFalseUndefinedStyle of button
iconStyleImageStyleFalseUndefinedStyle of icon
imageStyleImageStyleFalseUndefinedStyle of image
disabledbooleanFalseUndefinedIs button disabled

Usage example

-
    const [photo, setPhoto] = useState<ImageURISource | null>(null);

const onRemoveImage = useCallback(() => {
setPhoto(null);
}, [setPhoto]);

const onImagePicked = useCallback(
(nextImage) => {
setPhoto({uri: nextImage.path});
},
[setPhoto],
);

return (
<ImageCropPickerButton
image={photo}
onRemoveImage={onRemoveImage}
onImagePicked={onImagePicked}
onPickerError={console.error}
/>
);
+
    const [photo, setPhoto] = useState<ImageURISource | null>(null);

const onRemoveImage = useCallback(() => {
setPhoto(null);
}, [setPhoto]);

const onImagePicked = useCallback(
(nextImage) => {
setPhoto({uri: nextImage.path});
},
[setPhoto],
);

return (
<ImageCropPickerButton
image={photo}
onRemoveImage={onRemoveImage}
onImagePicked={onImagePicked}
onPickerError={console.error}
/>
);
\ No newline at end of file diff --git a/docs/components/loading-component/index.html b/docs/components/loading-component/index.html index ea8bf326..d37eb2ca 100644 --- a/docs/components/loading-component/index.html +++ b/docs/components/loading-component/index.html @@ -1,17 +1,17 @@ - + - -LoadingComponent | React Native Template Strong - - + +LoadingComponent | React Native Template Strong + + -

LoadingComponent

Content

+ +
  return <LoadingComponent />;
\ No newline at end of file diff --git a/docs/components/photo-taking-button/index.html b/docs/components/photo-taking-button/index.html index 61df8622..e1b38b4e 100644 --- a/docs/components/photo-taking-button/index.html +++ b/docs/components/photo-taking-button/index.html @@ -1,79 +1,18 @@ - + - -PhotoTakingButton | React Native Template Strong - - + +PhotoTakingButton | React Native Template Strong + + -

PhotoTakingButton

Content

+

PhotoTakingButton

Content

Button which is used as primary component of ImageCropPickerButton

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
onPress() => voidTrue-On press callback
backgroundImageImageURISource or null or CropperImageFalseUndefinedSelected image which will be shown and used
iconImageURISourceFalseImageResources.cameraIcon which will be shown when image is not present and over the selected image
styleViewStyleFalseUndefinedStyle of button
iconStyleImageStyleFalseUndefinedStyle of icon
imageStyleImageStyleFalseUndefinedStyle of image
disabledbooleanFalseUndefinedIs button disabled
+
NameTypeRequiredDefault valueDescription
onPress() => voidTrue-On press callback
backgroundImageImageURISource or null or CropperImageFalseUndefinedSelected image which will be shown and used
iconImageURISourceFalseImageResources.cameraIcon which will be shown when image is not present and over the selected image
styleViewStyleFalseUndefinedStyle of button
iconStyleImageStyleFalseUndefinedStyle of icon
imageStyleImageStyleFalseUndefinedStyle of image
disabledbooleanFalseUndefinedIs button disabled

Usage example

-
    return (
<PhotoTakingButton
style={style}
iconStyle={iconStyle}
imageStyle={imageStyle}
onPress={onPress}
backgroundImage={image}
icon={icon}
disabled={disabled}
/>
);
+
    return (
<PhotoTakingButton
style={style}
iconStyle={iconStyle}
imageStyle={imageStyle}
onPress={onPress}
backgroundImage={image}
icon={icon}
disabled={disabled}
/>
);
\ No newline at end of file diff --git a/docs/components/primary-button/index.html b/docs/components/primary-button/index.html index 3fca0ba3..6fe1bfac 100644 --- a/docs/components/primary-button/index.html +++ b/docs/components/primary-button/index.html @@ -1,94 +1,19 @@ - + - -PrimaryButton | React Native Template Strong - - + +PrimaryButton | React Native Template Strong + + -

PrimaryButton

Content

+

PrimaryButton

Content

Primary button of project which should be used as a button component. Provides several built-in type scenarios.

Params

Extends PressableProps and additionally adds next properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
labelstringTrue-Label of button
typeButtonTypeTrue-Button type based on which different styles will be shown
roundedbooleanFalseUndefinedShould the corners be rounded
labelstringFalseUndefinedStyle of container
iconImageURISourceFalseUndefinedCustom icon
iconStyleStyleProp<ImageStyle>FalseUndefinedCustom icon's style
platformIconPropsIIconPlatformPropsFalseUndefinedPlatform icon props which will be used if icon is not provided
labelStyleTextStyleFalseUndefinedLabel's style
isLoadingbooleanFalseUndefinedShows activity indicator
+
NameTypeRequiredDefault valueDescription
labelstringTrue-Label of button
typeButtonTypeTrue-Button type based on which different styles will be shown
roundedbooleanFalseUndefinedShould the corners be rounded
labelstringFalseUndefinedStyle of container
iconImageURISourceFalseUndefinedCustom icon
iconStyleStyleProp<ImageStyle>FalseUndefinedCustom icon's style
platformIconPropsIIconPlatformPropsFalseUndefinedPlatform icon props which will be used if icon is not provided
labelStyleTextStyleFalseUndefinedLabel's style
isLoadingbooleanFalseUndefinedShows activity indicator

Usage example

-
      <PrimaryButton type={ButtonType.solid} label={"Select date"} onPress={onPress} />
+
      <PrimaryButton type={ButtonType.solid} label={"Select date"} onPress={onPress} />
\ No newline at end of file diff --git a/docs/components/primary-text-input/index.html b/docs/components/primary-text-input/index.html index 36560a7c..132a3ec6 100644 --- a/docs/components/primary-text-input/index.html +++ b/docs/components/primary-text-input/index.html @@ -1,71 +1,17 @@ - + - -PrimaryTextInput | React Native Template Strong - - + +PrimaryTextInput | React Native Template Strong + + -

PrimaryTextInput

Content

+

PrimaryTextInput

Content

Primary text input component which should be used in project.

Params

Extends TextInputProps and additionally adds next properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
nextInputFocusRefMutableRefObject<any>FalseUndefinedIf provided then when onSubmitEditing fires focuses on next input
inputRefRef<any>FalseUndefinedReference of TextInput
containerStyleViewStyleFalseUndefinedStyle of container
labelstringFalseUndefinedStyle of container
errorstring or nullFalseUndefinedError which will be shown under the input
hintstringFalseUndefinedHint which will be shown under the input
+
NameTypeRequiredDefault valueDescription
nextInputFocusRefMutableRefObject<any>FalseUndefinedIf provided then when onSubmitEditing fires focuses on next input
inputRefRef<any>FalseUndefinedReference of TextInput
containerStyleViewStyleFalseUndefinedStyle of container
labelstringFalseUndefinedStyle of container
errorstring or nullFalseUndefinedError which will be shown under the input
hintstringFalseUndefinedHint which will be shown under the input
\ No newline at end of file diff --git a/docs/components/radio-button/index.html b/docs/components/radio-button/index.html index 8bbed0eb..43c1210d 100644 --- a/docs/components/radio-button/index.html +++ b/docs/components/radio-button/index.html @@ -1,72 +1,18 @@ - + - -RadioButton | React Native Template Strong - - + +RadioButton | React Native Template Strong + + -

RadioButton

Content

+

RadioButton

Content

Radio button component.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
isSelectedbooleanTrue-Changes the design based on selection
idstringTrue-ID of radio button item
labelstringTrue-Label of radio button
onPress(id: string, nextValue: boolean) => voidTrue-On item press callback
disabledbooleanFalseUndefinedIf disabled then not allows to select it and shows different design
IconComponentFunctionComponent<IIconComponentProps>FalseRadioIconRadio icon component
+
NameTypeRequiredDefault valueDescription
isSelectedbooleanTrue-Changes the design based on selection
idstringTrue-ID of radio button item
labelstringTrue-Label of radio button
onPress(id: string, nextValue: boolean) => voidTrue-On item press callback
disabledbooleanFalseUndefinedIf disabled then not allows to select it and shows different design
IconComponentFunctionComponent<IIconComponentProps>FalseRadioIconRadio icon component

Usage example

-
const [isSelected, setSelected] = useState<boolean>(false);

const onPress = useCallback((id, nextSelection) => {
setSelected(nextSelection);
}, []);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<RadioButton id={"0"} label={"Radio button label"} isSelected={isSelected} onPress={onPress} />
</ScrollView>
);
+
const [isSelected, setSelected] = useState<boolean>(false);

const onPress = useCallback((id, nextSelection) => {
setSelected(nextSelection);
}, []);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<RadioButton id={"0"} label={"Radio button label"} isSelected={isSelected} onPress={onPress} />
</ScrollView>
);
\ No newline at end of file diff --git a/docs/components/radio-icon/index.html b/docs/components/radio-icon/index.html index ff8dd529..9a6850f9 100644 --- a/docs/components/radio-icon/index.html +++ b/docs/components/radio-icon/index.html @@ -1,44 +1,18 @@ - + - -RadioIcon | React Native Template Strong - - + +RadioIcon | React Native Template Strong + + -

RadioIcon

Content

+

RadioIcon

Content

Simple icon component which will be used in RadioButton.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
isSelectedbooleanTrue-Changes the rendering icon design based on selection
disabledbooleanFalseUndefinedIf disabled then not allows to select it and shows different design
+
NameTypeRequiredDefault valueDescription
isSelectedbooleanTrue-Changes the rendering icon design based on selection
disabledbooleanFalseUndefinedIf disabled then not allows to select it and shows different design

Usage example

-
RadioButton.defaultProps = {
IconComponent: RadioIcon,
};
+
RadioButton.defaultProps = {
IconComponent: RadioIcon,
};
\ No newline at end of file diff --git a/docs/components/section-list-wrapper/index.html b/docs/components/section-list-wrapper/index.html index 23f6b204..66efc2a7 100644 --- a/docs/components/section-list-wrapper/index.html +++ b/docs/components/section-list-wrapper/index.html @@ -1,52 +1,19 @@ - + - -SectionListWrapper | React Native Template Strong - - + +SectionListWrapper | React Native Template Strong + + -

SectionListWrapper

Content

+

SectionListWrapper

Content

Wrapper around SectionList which operates based on provided LoadState and shows appropriate data.

Params

Extends SectionListProps and additionally adds next properties

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
loadStateLoadStateTrue-Load state
tryAgain() => voidFalseUndefinedAction callback which occurs when pressing on Try Again
errorstring or nullFalselocalization.errors.listErrorTitleError text which will be shown to user in case if loadState == LoadState.error
+
NameTypeRequiredDefault valueDescription
loadStateLoadStateTrue-Load state
tryAgain() => voidFalseUndefinedAction callback which occurs when pressing on Try Again
errorstring or nullFalselocalization.errors.listErrorTitleError text which will be shown to user in case if loadState == LoadState.error

Usage example

-
  return (
<SectionListWrapper
stickySectionHeadersEnabled={true}
sections={sections}
ListHeaderComponent={<BalanceListHeader balance={balance} />}
loadState={loadState}
renderItem={renderItem}
renderSectionHeader={renderSectionHeader}
error={error}
tryAgain={tryAgain}
onRefresh={pullToRefresh}
onEndReached={loadMore}
ListEmptyComponent={<EmptyView title={localization.empty.payment} description={localization.empty.paymentDescription} />}
/>
);
+
  return (
<SectionListWrapper
stickySectionHeadersEnabled={true}
sections={sections}
ListHeaderComponent={<BalanceListHeader balance={balance} />}
loadState={loadState}
renderItem={renderItem}
renderSectionHeader={renderSectionHeader}
error={error}
tryAgain={tryAgain}
onRefresh={pullToRefresh}
onEndReached={loadMore}
ListEmptyComponent={<EmptyView title={localization.empty.payment} description={localization.empty.paymentDescription} />}
/>
);
\ No newline at end of file diff --git a/docs/components/separator/index.html b/docs/components/separator/index.html index a92a467c..922d08b6 100644 --- a/docs/components/separator/index.html +++ b/docs/components/separator/index.html @@ -1,38 +1,19 @@ - + - -Separator | React Native Template Strong - - + +Separator | React Native Template Strong + + -

Separator

Content

+

Separator

Content

Simple separator component, primarily used with FlatListWrapper and SectionListWrapper.

Params

- - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
isFullbooleanFalsetrueShould it take whole width or have horizontal margins
+
NameTypeRequiredDefault valueDescription
isFullbooleanFalsetrueShould it take whole width or have horizontal margins

Usage example

-
FlatListWrapper.defaultProps = {
ItemSeparatorComponent: Separator,
};
-
      <Separator />
+
FlatListWrapper.defaultProps = {
ItemSeparatorComponent: Separator,
};
+
      <Separator />
\ No newline at end of file diff --git a/docs/components/toast-overlay/index.html b/docs/components/toast-overlay/index.html index 946e3434..ff503441 100644 --- a/docs/components/toast-overlay/index.html +++ b/docs/components/toast-overlay/index.html @@ -1,73 +1,19 @@ - + - -ToastOverlay | React Native Template Strong - - + +ToastOverlay | React Native Template Strong + + -

ToastOverlay

Content

+

ToastOverlay

Content

Do not use this component directly!

Use showToast to present this component because it's linked to navigation.

Represents a simple toast overlay which animatedly appears for 3 seconds with presented text and the animatedly disappears.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
textstringTrue-Text which will be shown
textStyleTextStyleFalseUndefinedStyle of text
iconImageURISourceFalseUndefinedIcon which will be shown on the lft side from message
iconStyleImageStyleFalseUndefinedIcon style
loadingbooleanFalseUndefinedShows activity indicator
locationbottom or topFalsetop on iOS, bottom on AndroidLocation of toast
+
NameTypeRequiredDefault valueDescription
textstringTrue-Text which will be shown
textStyleTextStyleFalseUndefinedStyle of text
iconImageURISourceFalseUndefinedIcon which will be shown on the lft side from message
iconStyleImageStyleFalseUndefinedIcon style
loadingbooleanFalseUndefinedShows activity indicator
locationbottom or topFalsetop on iOS, bottom on AndroidLocation of toast

Usage example

-
  const showTopToast = useCallback(() => {
showToast({
text: "Toast message text",
location: "top",
});
}, []);

const showBottomToast = useCallback(() => {
showToast({
text: "Toast message text",
location: "bottom",
});
}, []);

const showBottomToastLoading = useCallback(() => {
showToast({
text: "Loading message",
location: "bottom",
loading: true,
});
}, []);

const showBottomToastIcon = useCallback(() => {
showToast({
text: "Message with icon",
location: "bottom",
icon: ImageResources.camera,
iconStyle: {tintColor: Colors.red},
});
}, []);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<PrimaryButton type={ButtonType.solid} label={"Show top toast"} onPress={showTopToast} />
<PrimaryButton type={ButtonType.solid} label={"Show bottom toast"} onPress={showBottomToast} />
<PrimaryButton type={ButtonType.solid} label={"Show loading"} onPress={showBottomToastLoading} />
<PrimaryButton type={ButtonType.solid} label={"Show icon"} onPress={showBottomToastIcon} />
</ScrollView>
);
+
  const showTopToast = useCallback(() => {
showToast({
text: "Toast message text",
location: "top",
});
}, []);

const showBottomToast = useCallback(() => {
showToast({
text: "Toast message text",
location: "bottom",
});
}, []);

const showBottomToastLoading = useCallback(() => {
showToast({
text: "Loading message",
location: "bottom",
loading: true,
});
}, []);

const showBottomToastIcon = useCallback(() => {
showToast({
text: "Message with icon",
location: "bottom",
icon: ImageResources.camera,
iconStyle: {tintColor: Colors.red},
});
}, []);

return (
<ScrollView style={CommonStyles.flexPlatformBackground} contentContainerStyle={CommonStyles.flexColumnCenterStretch}>
<PrimaryButton type={ButtonType.solid} label={"Show top toast"} onPress={showTopToast} />
<PrimaryButton type={ButtonType.solid} label={"Show bottom toast"} onPress={showBottomToast} />
<PrimaryButton type={ButtonType.solid} label={"Show loading"} onPress={showBottomToastLoading} />
<PrimaryButton type={ButtonType.solid} label={"Show icon"} onPress={showBottomToastIcon} />
</ScrollView>
);
\ No newline at end of file diff --git a/docs/components/touchable-platform/index.html b/docs/components/touchable-platform/index.html index 6907a45a..67d601f7 100644 --- a/docs/components/touchable-platform/index.html +++ b/docs/components/touchable-platform/index.html @@ -1,46 +1,20 @@ - + - -TouchablePlatform | React Native Template Strong - - + +TouchablePlatform | React Native Template Strong + + -

TouchablePlatform

Content

+

TouchablePlatform

Content

Platform-friendly touchable button which relies on Pressable. Used in PrimaryButton and RadioButton.

Params

Extends PressableProps and additionally adds next properties

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
styleViewStyle or ViewStyle[]FalseUndefinedStyle of button
highlightColorstring or OpaqueColorValueFalsePlatformColorsIOS.quaternarySystemFill on iOS and PlatformColorsAndroid.primaryLight on AndroidHighlight color used as ripple color on Android and when pressed background color on iOS
+
NameTypeRequiredDefault valueDescription
styleViewStyle or ViewStyle[]FalseUndefinedStyle of button
highlightColorstring or OpaqueColorValueFalsePlatformColorsIOS.quaternarySystemFill on iOS and PlatformColorsAndroid.primaryLight on AndroidHighlight color used as ripple color on Android and when pressed background color on iOS

Usage example

-
    <TouchablePlatform style={styles.container} onPress={onButtonPress}>
<Text style={labelStyle} numberOfLines={1}>
{label}
</Text>
</TouchablePlatform>
+
    <TouchablePlatform style={styles.container} onPress={onButtonPress}>
<Text style={labelStyle} numberOfLines={1}>
{label}
</Text>
</TouchablePlatform>
\ No newline at end of file diff --git a/docs/components/try-again/index.html b/docs/components/try-again/index.html index 0230d071..7c5aa8a7 100644 --- a/docs/components/try-again/index.html +++ b/docs/components/try-again/index.html @@ -1,44 +1,18 @@ - + - -TryAgain | React Native Template Strong - - + +TryAgain | React Native Template Strong + + -

TryAgain

Content

+

TryAgain

Content

Simple try again screen-like message with the try again button. Used primarily in FlatListWrapper and SectionListWrapper.

Params

- - - - - - - - - - - - - - - - - - - - - - - - - - -
NameTypeRequiredDefault valueDescription
onPress() => voidFalseUndefinedOn try again press callback
errorTextstringFalselocalization.errors.unknownErrorHasOccurredError text
+
NameTypeRequiredDefault valueDescription
onPress() => voidFalseUndefinedOn try again press callback
errorTextstringFalselocalization.errors.unknownErrorHasOccurredError text

Usage example

-
  <TryAgain onPress={tryAgain} errorText={error || localization.errors.listErrorTitle} />
+
  <TryAgain onPress={tryAgain} errorText={error || localization.errors.listErrorTitle} />
\ No newline at end of file diff --git a/docs/configs/babel-config/index.html b/docs/configs/babel-config/index.html index 9320401a..9b9cb651 100644 --- a/docs/configs/babel-config/index.html +++ b/docs/configs/babel-config/index.html @@ -1,16 +1,16 @@ - + - -Babel config | React Native Template Strong - - + +Babel config | React Native Template Strong + + -

Babel config

Babel config utilizes metro-react-native-babel-preset +

+

There's also a transform of react-native-config in test environment to mock it.

\ No newline at end of file diff --git a/docs/configs/detox-config/index.html b/docs/configs/detox-config/index.html index 8210c154..5e3d3f12 100644 --- a/docs/configs/detox-config/index.html +++ b/docs/configs/detox-config/index.html @@ -1,13 +1,13 @@ - + - -Detox config | React Native Template Strong - - + +Detox config | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/configs/eslint-config/index.html b/docs/configs/eslint-config/index.html index c3d99191..6504ee61 100644 --- a/docs/configs/eslint-config/index.html +++ b/docs/configs/eslint-config/index.html @@ -1,14 +1,14 @@ - + - -ESLint config | React Native Template Strong - - + +ESLint config | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/configs/jest-config/index.html b/docs/configs/jest-config/index.html index 1af466ff..73e5ab03 100644 --- a/docs/configs/jest-config/index.html +++ b/docs/configs/jest-config/index.html @@ -1,15 +1,15 @@ - + - -Jest config | React Native Template Strong - - + +Jest config | React Native Template Strong + + -

Jest config

Jest utilizes eslint-config-react-strong +

+

It also includes ts-jest to work with Detox.

\ No newline at end of file diff --git a/docs/configs/metro-config/index.html b/docs/configs/metro-config/index.html index 991b4185..39b1832b 100644 --- a/docs/configs/metro-config/index.html +++ b/docs/configs/metro-config/index.html @@ -1,13 +1,13 @@ - + - -Metro config | React Native Template Strong - - + +Metro config | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/configs/prettier-config/index.html b/docs/configs/prettier-config/index.html index d7630aef..17a8a2b8 100644 --- a/docs/configs/prettier-config/index.html +++ b/docs/configs/prettier-config/index.html @@ -1,14 +1,14 @@ - + - -Prettier config | React Native Template Strong - - + +Prettier config | React Native Template Strong + + -

Prettier config

Prettier defines next obvious rules:

+ +
\ No newline at end of file diff --git a/docs/configs/rn-config/index.html b/docs/configs/rn-config/index.html index e390689b..98d4df49 100644 --- a/docs/configs/rn-config/index.html +++ b/docs/configs/rn-config/index.html @@ -1,13 +1,13 @@ - + - -React Native config | React Native Template Strong - - + +React Native config | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/configs/ts-config/index.html b/docs/configs/ts-config/index.html index 4ed6419f..30e06739 100644 --- a/docs/configs/ts-config/index.html +++ b/docs/configs/ts-config/index.html @@ -1,13 +1,13 @@ - + - -TypeScript config | React Native Template Strong - - + +TypeScript config | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/dependencies/index.html b/docs/dependencies/index.html index 13af8631..745ed080 100644 --- a/docs/dependencies/index.html +++ b/docs/dependencies/index.html @@ -1,57 +1,57 @@ - + - -Dependencies and scripts | React Native Template Strong - - + +Dependencies and scripts | React Native Template Strong + + -

Dependencies and scripts

Dependencies

+

Dependencies and scripts

Dependencies

This repository relies on dependencies which are needed in day-to-day development.

Every dependency is provided with types or in case if there are no types it implements in Types.

The versions are updating manually and regularly with new releases.

Build primarily with

Includes next components:

Testing made with:

Code quality covered with:

It also includes other small or utility components.

Scripts

@@ -132,6 +132,6 @@

Utility spe
  • generate-image-resources - generates image resources based on images from selected folder, check Images for more
  • prepare - if you have a git repository then it prepares scripts pre-commit and post-merge from package.json
  • npm-install-force - npm install with force to mitigate check issues with older dependencies
  • -

    +
    \ No newline at end of file diff --git a/docs/environments/index.html b/docs/environments/index.html index 6a846254..90c31786 100644 --- a/docs/environments/index.html +++ b/docs/environments/index.html @@ -1,14 +1,14 @@ - + - -Environments | React Native Template Strong - - + +Environments | React Native Template Strong + + -

    Environments

    Work with environments made possible by react-native-config.

    +

    Environments

    Work with environments made possible by react-native-config.

    Content

    The application has 4 primitive environments:

      @@ -26,7 +26,7 @@

      ContentUsage

      To use environment variables you simply need to import Config and use your parameters, like so:

      -
      import Config from "react-native-config";

      Config.ENVIRONMENT;
      +
      import Config from "react-native-config";

      Config.ENVIRONMENT;

      Change environment

      By default, .env (development) is selected environment, to change that you need to run one of the scripts from package.json @@ -38,6 +38,6 @@

      Add more
    • Define your parameter with type inside EnvironmentVariables

    After that add your parameters with values into each .env file.

    -

    To see it into action you need to rebuild the application.

    +

    To see it into action you need to rebuild the application.

    \ No newline at end of file diff --git a/docs/getting-started/index.html b/docs/getting-started/index.html index 6042d297..b746fe62 100644 --- a/docs/getting-started/index.html +++ b/docs/getting-started/index.html @@ -1,14 +1,14 @@ - + - -Getting started | React Native Template Strong - - + +Getting started | React Native Template Strong + + -

    Getting started

    Before you start

    +

    Getting started

    Before you start

    If you are new to React Native, it would be better to learn a bit about it first by checking its website and then come back here.

    To work with this template you have to install everything what's needed in order to work with React Native, @@ -16,10 +16,10 @@

    Prerequisites

    These are the versions of tools on which this template was created and tested (higher versions should be also supported):

    Usage

    -
    npx --force react-native init MyApp --template react-native-template-strong --npm
    +
    npx --force react-native init MyApp --template react-native-template-strong --npm

    After usage

    I strongly advise you to be patient, and check documentation to know about all available features.

    If you have any questions regarding any particular decision check FAQ or ask a question or create a discussion.

    -

    If you have any questions you can check the troubleshooting section.

    +

    If you have any questions you can check the troubleshooting section.

    \ No newline at end of file diff --git a/docs/helpers/calculate-page/index.html b/docs/helpers/calculate-page/index.html index 5b9c2560..a7058381 100644 --- a/docs/helpers/calculate-page/index.html +++ b/docs/helpers/calculate-page/index.html @@ -1,46 +1,20 @@ - + - -calculatePage | React Native Template Strong - - + +calculatePage | React Native Template Strong + + -

    calculatePage

    Content

    +

    calculatePage

    Content

    Used for next page calculation.

    calculatePage

    Used to calculate next page which will be requested from remote server by using calculation based on current page size and current page.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    countNumberTrue-Current total count of items
    pageSizeNumberFalse20Size of items in a page
    +
    NameTypeRequiredDefault valueDescription
    countNumberTrue-Current total count of items
    pageSizeNumberFalse20Size of items in a page

    Usage example

    -
    export async function getOrders(listLength: number, loadState: LoadState) {
    const page = loadState == LoadState.pullToRefresh || loadState == LoadState.refreshing ? 1 : calculatePage(listLength);

    return await ordersApi.getOrders({
    page: page,
    sorting: defaultOrdersSorting,
    });
    }
    +
    export async function getOrders(listLength: number, loadState: LoadState) {
    const page = loadState == LoadState.pullToRefresh || loadState == LoadState.refreshing ? 1 : calculatePage(listLength);

    return await ordersApi.getOrders({
    page: page,
    sorting: defaultOrdersSorting,
    });
    }
    \ No newline at end of file diff --git a/docs/helpers/color-helpers/index.html b/docs/helpers/color-helpers/index.html index 859282b9..5c9ba660 100644 --- a/docs/helpers/color-helpers/index.html +++ b/docs/helpers/color-helpers/index.html @@ -1,110 +1,32 @@ - + - -colorHelpers | React Native Template Strong - - + +colorHelpers | React Native Template Strong + + -

    colorHelpers

    Content

    +

    colorHelpers

    Content

    Used to select color based on platform.

    platformNativeColor

    Selects color based on platform and if at least one is provided goes it through PlatformColor otherwise returns undefined.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    iosColorPlatformColorsIOSFalseUndefinediOS color from PlatformColorsIOS
    androidColorPlatformColorsAndroidFalseUndefinedAndroid color from PlatformColorsAndroid
    +
    NameTypeRequiredDefault valueDescription
    iosColorPlatformColorsIOSFalseUndefinediOS color from PlatformColorsIOS
    androidColorPlatformColorsAndroidFalseUndefinedAndroid color from PlatformColorsAndroid

    Usage example

    -
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primary)}/>
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };
    +
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primary)}/>
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };

    platformLocalColor

    Selects color based on platform and if at least one is provided returns it otherwise returns undefined.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    iosColorColorsFalseUndefinediOS color from Colors
    androidColorColorsFalseUndefinedAndroid color from Colors
    +
    NameTypeRequiredDefault valueDescription
    iosColorColorsFalseUndefinediOS color from Colors
    androidColorColorsFalseUndefinedAndroid color from Colors

    Usage example

    -
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformLocalColor(Colors.red, Colors.green)} />
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };
    +
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformLocalColor(Colors.red, Colors.green)} />
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };

    platformMixedColor

    Selects color based on platform and if at least one is provided returns it or goes it through PlatformColor if it's type of PlatformColorsIOS or PlatformColorsAndroid otherwise returns undefined.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    iosColorColors, PlatformColorsIOSFalseUndefinediOS color from Colors or PlatformColorsIOS
    androidColorColors, PlatformColorsAndroidFalseUndefinedAndroid color from Colors or PlatformColorsAndroid
    +
    NameTypeRequiredDefault valueDescription
    iosColorColors, PlatformColorsIOSFalseUndefinediOS color from Colors or PlatformColorsIOS
    androidColorColors, PlatformColorsAndroidFalseUndefinedAndroid color from Colors or PlatformColorsAndroid

    Usage example

    -
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformMixedColor(Colors.red, PlatformColorsAndroid.primary)} />
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };
    +
    export const LoadingComponent = () => {
    return (
    <View style={CommonStyles.flexCenter}>
    <ActivityIndicator color={platformMixedColor(Colors.red, PlatformColorsAndroid.primary)} />
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    </View>
    );
    };
    \ No newline at end of file diff --git a/docs/helpers/default-key-id-extractor/index.html b/docs/helpers/default-key-id-extractor/index.html index be6eb593..19c3816e 100644 --- a/docs/helpers/default-key-id-extractor/index.html +++ b/docs/helpers/default-key-id-extractor/index.html @@ -1,37 +1,18 @@ - + - -defaultKeyIdExtractor | React Native Template Strong - - + +defaultKeyIdExtractor | React Native Template Strong + + -

    defaultKeyIdExtractor

    Content

    +

    defaultKeyIdExtractor

    Content

    Used to provide string value of id from items as key for the keyExtractor property of FlatList or SectionList.

    Used as default property in FlatListWrapper and SectionListWrapper:

    -
    FlatListWrapper.defaultProps = {
    keyExtractor: defaultKeyIdExtractor,
    };

    SectionListWrapper.defaultProps = {
    keyExtractor: defaultKeyIdExtractor,
    };
    +
    FlatListWrapper.defaultProps = {
    keyExtractor: defaultKeyIdExtractor,
    };

    SectionListWrapper.defaultProps = {
    keyExtractor: defaultKeyIdExtractor,
    };

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    itemT extends {id: string or number}--Item which has id and will be used as key
    +
    NameTypeRequiredDefault valueDescription
    itemT extends {id: string or number}--Item which has id and will be used as key
    \ No newline at end of file diff --git a/docs/helpers/dialogs-helpers/index.html b/docs/helpers/dialogs-helpers/index.html index 77148021..5131b134 100644 --- a/docs/helpers/dialogs-helpers/index.html +++ b/docs/helpers/dialogs-helpers/index.html @@ -1,131 +1,32 @@ - + - -dialogsHelpers | React Native Template Strong - - + +dialogsHelpers | React Native Template Strong + + -

    dialogsHelpers

    Content

    +

    dialogsHelpers

    Content

    Used to show dialogs, alerts and action sheets

    showActionSheet

    Shows action sheet on iOS with defined options, on Android it shows React Native's Alert with title, message and buttons.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    optionsActionSheetIOSOptionsTrue-Options which will be used to show ActionSheetIOS or Alert.alert
    onOptionSelected(optionIndex: number) => voidTrue-Handler which receives selected index of button
    +
    NameTypeRequiredDefault valueDescription
    optionsActionSheetIOSOptionsTrue-Options which will be used to show ActionSheetIOS or Alert.alert
    onOptionSelected(optionIndex: number) => voidTrue-Handler which receives selected index of button

    Usage example

    -
      const onShowActionSheetPress = useCallback(() => {
    showActionSheet(
    {
    title: "Action Sheet Title",
    options: ["Cancel", "Action 1", "Action 2"],
    cancelButtonIndex: 0,
    destructiveButtonIndex: 3,
    message: "Action Sheet Message",
    },
    (optionIndex) => {
    console.warn(`Option ${optionIndex} was pressed`);
    },
    );
    }, []);
    +
      const onShowActionSheetPress = useCallback(() => {
    showActionSheet(
    {
    title: "Action Sheet Title",
    options: ["Cancel", "Action 1", "Action 2"],
    cancelButtonIndex: 0,
    destructiveButtonIndex: 3,
    message: "Action Sheet Message",
    },
    (optionIndex) => {
    console.warn(`Option ${optionIndex} was pressed`);
    },
    );
    }, []);

    showAlert

    Shows React Native's Alert with provided parameters.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    titlestringTrue-The dialog's title. Passing empty string will hide the title
    messagestringFalseUndefinedAn optional message that appears below the dialog's title
    buttonsAlertButton[]FalseUndefinedAn optional array containing buttons configuration
    optionsAlertOptionsFalse{cancelable: true}An optional Alert configuration for the Android
    +
    NameTypeRequiredDefault valueDescription
    titlestringTrue-The dialog's title. Passing empty string will hide the title
    messagestringFalseUndefinedAn optional message that appears below the dialog's title
    buttonsAlertButton[]FalseUndefinedAn optional array containing buttons configuration
    optionsAlertOptionsFalse{cancelable: true}An optional Alert configuration for the Android

    Usage example

    -
      const onShowAlertPress = useCallback(() => {
    showAlert("Title", "Message", [
    {
    text: "Action 1",
    onPress: () => {
    console.warn("Action 1 was pressed");
    },
    style: "default",
    },
    {
    text: "Action 2",
    onPress: () => {
    console.warn("Action 2 was pressed");
    },
    style: "destructive",
    },
    ]);
    }, []);
    +
      const onShowAlertPress = useCallback(() => {
    showAlert("Title", "Message", [
    {
    text: "Action 1",
    onPress: () => {
    console.warn("Action 1 was pressed");
    },
    style: "default",
    },
    {
    text: "Action 2",
    onPress: () => {
    console.warn("Action 2 was pressed");
    },
    style: "destructive",
    },
    ]);
    }, []);

    showCommonDialog

    Shows common yes-no dialog with title and message and on yes press callback.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    titlestringTrue-The dialog's title. Passing empty string will hide the title
    messagestringTrue-The message that appears below the dialog's title
    onAcceptPress() => voidTrue-The callback from Yes pressed button
    +
    NameTypeRequiredDefault valueDescription
    titlestringTrue-The dialog's title. Passing empty string will hide the title
    messagestringTrue-The message that appears below the dialog's title
    onAcceptPress() => voidTrue-The callback from Yes pressed button

    Usage example

    -
      const onShowCommonDialogPress = useCallback(() => {
    showCommonDialog("Title", "Message", () => {
    console.warn("You pressed Yes");
    });
    }, []);
    +
      const onShowCommonDialogPress = useCallback(() => {
    showCommonDialog("Title", "Message", () => {
    console.warn("You pressed Yes");
    });
    }, []);
    \ No newline at end of file diff --git a/docs/helpers/image-helpers/index.html b/docs/helpers/image-helpers/index.html index f823f23f..03c5a6b0 100644 --- a/docs/helpers/image-helpers/index.html +++ b/docs/helpers/image-helpers/index.html @@ -1,39 +1,20 @@ - + - -imageHelpers | React Native Template Strong - - + +imageHelpers | React Native Template Strong + + -

    imageHelpers

    Content

    +

    imageHelpers

    Content

    Used to convert and apply different changes to images

    convertCropperImageToBase64

    Converts CropperImage from react-native-image-crop-picker to base64 string using mime and data.

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    imageCropperImageTrue-Picked image as result from react-native-image-crop-picker
    +
    NameTypeRequiredDefault valueDescription
    imageCropperImageTrue-Picked image as result from react-native-image-crop-picker

    Usage example

    -
      const onImagePicked = useCallback((nextImage) => {
    convertCropperImageToBase64(nextImage);
    }, []);
    +
      const onImagePicked = useCallback((nextImage) => {
    convertCropperImageToBase64(nextImage);
    }, []);
    \ No newline at end of file diff --git a/docs/helpers/in-app-review-helper/index.html b/docs/helpers/in-app-review-helper/index.html index d12325fa..c64dbc9c 100644 --- a/docs/helpers/in-app-review-helper/index.html +++ b/docs/helpers/in-app-review-helper/index.html @@ -1,53 +1,20 @@ - + - -inAppReviewHelper | React Native Template Strong - - + +inAppReviewHelper | React Native Template Strong + + -

    inAppReviewHelper

    Content

    +

    inAppReviewHelper

    Content

    Shows in-app review provided by react-native-in-app-review.

    showInAppReview

    The Google Play In-App Review API, App store rating API lets you prompt users to submit Play Store or App store ratings and reviews without the inconvenience of leaving your app or game.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    successAction() => voidFalseUndefinedSuccess action callback
    failAction(error: Error) => voidFalseUndefinedError callback with error
    onReviewNotAvailable() => voidFalseUndefinedCallback when review is not available on this device
    +
    NameTypeRequiredDefault valueDescription
    successAction() => voidFalseUndefinedSuccess action callback
    failAction(error: Error) => voidFalseUndefinedError callback with error
    onReviewNotAvailable() => voidFalseUndefinedCallback when review is not available on this device

    Usage example

    -
    import {useEffect} from "react";

    useEffect(() => {
    showInAppReview();
    }, []);
    +
    import {useEffect} from "react";

    useEffect(() => {
    showInAppReview();
    }, []);
    \ No newline at end of file diff --git a/docs/helpers/net-info-helpers/index.html b/docs/helpers/net-info-helpers/index.html index 6b8bb4bf..144993c9 100644 --- a/docs/helpers/net-info-helpers/index.html +++ b/docs/helpers/net-info-helpers/index.html @@ -1,14 +1,14 @@ - + - -netInfoHelpers | React Native Template Strong - - + +netInfoHelpers | React Native Template Strong + + -

    netInfoHelpers

    Content

    +

    netInfoHelpers

    Content

    Checks Internet connection. Made possible by react-native-netinfo.

    startListeningToNetInfo

    Starts listening to net-info changes, and if isInternetReachable is equal to false then shows alert that states that there are no Internet connection and gives user a choice to open settings.

    @@ -16,8 +16,8 @@

    star

    Shows only once.

    Don't forget to unsubscribe.

    Usage example

    -
    export function setInitialRoot() {
    Navigation.setRoot({
    root: {
    component: {
    name: Pages.splash.name,
    id: Pages.splash.id,
    options: {
    topBar: {
    visible: false,
    },
    },
    },
    },
    }).then(startListeningToNetInfo);
    }
    +
    export function setInitialRoot() {
    Navigation.setRoot({
    root: {
    component: {
    name: Pages.splash.name,
    id: Pages.splash.id,
    options: {
    topBar: {
    visible: false,
    },
    },
    },
    },
    }).then(startListeningToNetInfo);
    }

    unsubscribeFromNetInfo

    -

    Unsubscribe from listening to net-info changes.

    +

    Unsubscribe from listening to net-info changes.

    \ No newline at end of file diff --git a/docs/helpers/orientation-helpers/index.html b/docs/helpers/orientation-helpers/index.html index 8890ffdf..e04b7aaf 100644 --- a/docs/helpers/orientation-helpers/index.html +++ b/docs/helpers/orientation-helpers/index.html @@ -1,44 +1,25 @@ - + - -orientationHelpers | React Native Template Strong - - + +orientationHelpers | React Native Template Strong + + -

    orientationHelpers

    Content

    +

    orientationHelpers

    Content

    Sets and gets orientation of device. Made possible by react-native-orientation-locker and react-native-device-detection.

    getCurrentOrientation

    Gets initial orientation of device. For smartphones (with forceOnPhone equals true) it will always return PORTRAIT

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    forceOnPhoneBooleanFalseUndefinedReturns initial device orientation for smartphones too
    +
    NameTypeRequiredDefault valueDescription
    forceOnPhoneBooleanFalseUndefinedReturns initial device orientation for smartphones too

    Usage example

    -
    const [orientation, setOrientation] = useState<OrientationType>(() => getCurrentOrientation());

    useOrientationChange((changedOrientation) => {
    if (isTablet) {
    setOrientation(changedOrientation);
    }
    });
    +
    const [orientation, setOrientation] = useState<OrientationType>(() => getCurrentOrientation());

    useOrientationChange((changedOrientation) => {
    if (isTablet) {
    setOrientation(changedOrientation);
    }
    });

    setDefaultOrientation

    Locks orientation on smartphones to PORTRAIT and unlocks it for other devices.

    Usage example

    -
    export function initializeApp() {
    setDefaultOrientation();
    }
    +
    export function initializeApp() {
    setDefaultOrientation();
    }
    \ No newline at end of file diff --git a/docs/helpers/regex-helpers/index.html b/docs/helpers/regex-helpers/index.html index 1ead7aee..80fb39ce 100644 --- a/docs/helpers/regex-helpers/index.html +++ b/docs/helpers/regex-helpers/index.html @@ -1,39 +1,20 @@ - + - -regexHelpers | React Native Template Strong - - + +regexHelpers | React Native Template Strong + + -

    regexHelpers

    Content

    +

    regexHelpers

    Content

    Set of regex functions.

    isEmail

    Checks whether supplied string follows email format or not.

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    emailstringTrue-Email string
    +
    NameTypeRequiredDefault valueDescription
    emailstringTrue-Email string

    Usage example

    -
    isEmail("test@domain.com");
    +
    isEmail("test@domain.com");
    \ No newline at end of file diff --git a/docs/helpers/share-helpers/index.html b/docs/helpers/share-helpers/index.html index 92bce251..07e4299c 100644 --- a/docs/helpers/share-helpers/index.html +++ b/docs/helpers/share-helpers/index.html @@ -1,125 +1,33 @@ - + - -shareHelpers | React Native Template Strong - - + +shareHelpers | React Native Template Strong + + -

    shareHelpers

    Content

    +

    shareHelpers

    Content

    Set of share functions, made possible by react-native-share. Check the docs to learn more.

    showShareDialog

    Shows share dialog with provided options and optional callbacks.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    optionsShareOptionsTrue-Share options
    completedCallback(result: ShareOpenResult) => voidFalseUndefinedCallback when user completed share action with result parameters
    errorCallback(error: Error or unknown) => voidFalseUndefinedError callback when something went wrong or user didn't share anything
    +
    NameTypeRequiredDefault valueDescription
    optionsShareOptionsTrue-Share options
    completedCallback(result: ShareOpenResult) => voidFalseUndefinedCallback when user completed share action with result parameters
    errorCallback(error: Error or unknown) => voidFalseUndefinedError callback when something went wrong or user didn't share anything

    Usage example

    -
      const onShowShareDialogPress = useCallback(async () => {
    await showShareDialog(
    {
    showAppsToView: true,
    message: "Test message to share",
    },
    (result) => {
    console.warn("Share result: ", result);
    },
    (error) => {
    console.error("Share error: ", error);
    },
    );
    }, []);
    +
      const onShowShareDialogPress = useCallback(async () => {
    await showShareDialog(
    {
    showAppsToView: true,
    message: "Test message to share",
    },
    (result) => {
    console.warn("Share result: ", result);
    },
    (error) => {
    console.error("Share error: ", error);
    },
    );
    }, []);

    showShareSocialDialog

    Shows share to social network dialog with provided options and optional callbacks. If the app is not installed then tries to open the web page of social network.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    optionsShareSingleOptionsTrue-Share options
    completedCallback(result: ShareSingleResult) => voidFalseUndefinedCallback when user completed share action with result parameters
    errorCallback(error: Error or unknown) => voidFalseUndefinedError callback when something went wrong or user didn't share anything
    +
    NameTypeRequiredDefault valueDescription
    optionsShareSingleOptionsTrue-Share options
    completedCallback(result: ShareSingleResult) => voidFalseUndefinedCallback when user completed share action with result parameters
    errorCallback(error: Error or unknown) => voidFalseUndefinedError callback when something went wrong or user didn't share anything

    Usage example

    -
      const onShowShareSocialDialogPress = useCallback(async () => {
    await showShareSocialDialog(
    {
    social: Share.Social.TWITTER,
    title: "Share via",
    message: "Twitter test message from template",
    url: "",
    },
    (result) => {
    console.warn("Share result: ", result);
    },
    (error) => {
    console.error("Share error: ", error);
    },
    );
    }, []);
    +
      const onShowShareSocialDialogPress = useCallback(async () => {
    await showShareSocialDialog(
    {
    social: Share.Social.TWITTER,
    title: "Share via",
    message: "Twitter test message from template",
    url: "",
    },
    (result) => {
    console.warn("Share result: ", result);
    },
    (error) => {
    console.error("Share error: ", error);
    },
    );
    }, []);

    isPackageInstalled

    Checks whether the package installed, on Android uses the share check, on iOS checks using Linking.canOpenURL.

    Params

    - - - - - - - - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    androidPackageNamestringFalseUndefinedAndroid package name
    iosUrlstringFalseUndefinediOS package URI
    +
    NameTypeRequiredDefault valueDescription
    androidPackageNamestringFalseUndefinedAndroid package name
    iosUrlstringFalseUndefinediOS package URI

    Usage example

    -
    await isPackageInstalled("com.instagram.android", "instagram://");
    +
    await isPackageInstalled("com.instagram.android", "instagram://");
    \ No newline at end of file diff --git a/docs/helpers/strings-helpers/index.html b/docs/helpers/strings-helpers/index.html index e34bc374..da22f1b9 100644 --- a/docs/helpers/strings-helpers/index.html +++ b/docs/helpers/strings-helpers/index.html @@ -1,89 +1,32 @@ - + - -stringHelpers | React Native Template Strong - - + +stringHelpers | React Native Template Strong + + -

    stringHelpers

    Content

    +

    stringHelpers

    Content

    Set of string helpers

    capitalizeFirstLetter

    Capitalizes first letter of provided string. Returns a new string.

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    wordstringTrue-String which first letter will be capitalized
    +
    NameTypeRequiredDefault valueDescription
    wordstringTrue-String which first letter will be capitalized

    Usage example

    -
    capitalizeFirstLetter("test");
    +
    capitalizeFirstLetter("test");

    removeHtmlTags

    Removes HTML tags from provided string. Returns a new string.

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    textstringTrue-String which contains HTML tags
    +
    NameTypeRequiredDefault valueDescription
    textstringTrue-String which contains HTML tags

    Usage example

    -
    removeHtmlTags("<b>some text</b>");
    +
    removeHtmlTags("<b>some text</b>");

    removeEmojis

    Removes emojis from provided string. Returns a new string.

    Params

    - - - - - - - - - - - - - - - - - - - -
    NameTypeRequiredDefault valueDescription
    textstringTrue-String which contains emojis
    +
    NameTypeRequiredDefault valueDescription
    textstringTrue-String which contains emojis

    Usage example

    -
    removeEmojis("Test😄");
    +
    removeEmojis("Test😄");
    \ No newline at end of file diff --git a/docs/hooks/use-back-handler/index.html b/docs/hooks/use-back-handler/index.html index df10dbc5..4173da5c 100644 --- a/docs/hooks/use-back-handler/index.html +++ b/docs/hooks/use-back-handler/index.html @@ -1,16 +1,16 @@ - + - -useBackHandler | React Native Template Strong - - + +useBackHandler | React Native Template Strong + + -

    useBackHandler

    Content

    + +
      const backHandler = useCallback(() => {
    //Do something here
    return true;
    }, []);

    useBackHandler(backHandler);
    \ No newline at end of file diff --git a/docs/hooks/use-debounce/index.html b/docs/hooks/use-debounce/index.html index f43e42fb..220a6bd7 100644 --- a/docs/hooks/use-debounce/index.html +++ b/docs/hooks/use-debounce/index.html @@ -1,14 +1,14 @@ - + - -useDebounce | React Native Template Strong - - + +useDebounce | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/hooks/use-event-register/index.html b/docs/hooks/use-event-register/index.html index a55c9f74..8dc27da8 100644 --- a/docs/hooks/use-event-register/index.html +++ b/docs/hooks/use-event-register/index.html @@ -1,14 +1,14 @@ - + - -useEventRegister | React Native Template Strong - - + +useEventRegister | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/hooks/use-flat-list-actions/index.html b/docs/hooks/use-flat-list-actions/index.html index 11bb47ab..4f329467 100644 --- a/docs/hooks/use-flat-list-actions/index.html +++ b/docs/hooks/use-flat-list-actions/index.html @@ -1,18 +1,18 @@ - + - -useFlatListActions | React Native Template Strong - - + +useFlatListActions | React Native Template Strong + + -

    useFlatListActions

    Content

    +

    useFlatListActions

    Content

    Creates default loadMore, tryAgain and pullToRefresh request dispatches based on provided LoadState.

    Works in together with FlatlistWrapper and SectionListWrapper.

    Usage

    -
      const {data, error, loadState} = useAppSelector(({offers}) => offers);
    const {loadMore, tryAgain, pullToRefresh} = useFlatListActions(getCompanyOffers, loadState);

    return (
    <FlatListWrapper
    data={data}
    error={error}
    renderItem={renderItem}
    loadState={loadState}
    tryAgain={tryAgain}
    onRefresh={pullToRefresh}
    onEndReached={loadMore}
    />
    );
    -

    Where getCompanyOffers is AsyncThunk.

    +
      const {data, error, loadState} = useAppSelector(({offers}) => offers);
    const {loadMore, tryAgain, pullToRefresh} = useFlatListActions(getCompanyOffers, loadState);

    return (
    <FlatListWrapper
    data={data}
    error={error}
    renderItem={renderItem}
    loadState={loadState}
    tryAgain={tryAgain}
    onRefresh={pullToRefresh}
    onEndReached={loadMore}
    />
    );
    +

    Where getCompanyOffers is AsyncThunk.

    \ No newline at end of file diff --git a/docs/hooks/use-previous/index.html b/docs/hooks/use-previous/index.html index 264e3723..9363cf35 100644 --- a/docs/hooks/use-previous/index.html +++ b/docs/hooks/use-previous/index.html @@ -1,14 +1,14 @@ - + - -usePrevious | React Native Template Strong - - + +usePrevious | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/hooks/use-why-did-you-update/index.html b/docs/hooks/use-why-did-you-update/index.html index c797da35..80582748 100644 --- a/docs/hooks/use-why-did-you-update/index.html +++ b/docs/hooks/use-why-did-you-update/index.html @@ -1,14 +1,14 @@ - + - -useWhyDidYouUpdate | React Native Template Strong - - + +useWhyDidYouUpdate | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/internals/android/index.html b/docs/internals/android/index.html index 868f3ef7..66cee514 100644 --- a/docs/internals/android/index.html +++ b/docs/internals/android/index.html @@ -1,32 +1,30 @@ - + - -Android internals | React Native Template Strong - - + +Android internals | React Native Template Strong + + -

    Android internals

    Hermes

    +

    Android internals

    Hermes

    Enabled

    Proguard

    -

    By default proguard is enabled, so be careful when installing new native dependencies.

    +

    By default proguard is disabled

    Versions

    Next versions are being used:

      -
    • kotlinVersion - 1.5.31
    • -
    • buildToolsVersion - 30.0.2
    • -
    • minSdkVersion - 21
    • -
    • compileSdkVersion - 30
    • -
    • targetSdkVersion - 30
    • -
    • androidXCore - 1.6.0
    • -
    • ndkVersion - 23.0.7599858
    • +
    • kotlinVersion - 1.8.0
    • +
    • buildToolsVersion - 34.0.0
    • +
    • minSdkVersion - 24
    • +
    • compileSdkVersion - 34
    • +
    • targetSdkVersion - 34
    • +
    • ndkVersion - 25.1.8937393

    Gradle

      -
    • Gradle version is set to 7.2
    • -
    • com.android.tools.build
      - 4.2.2
    • +
    • Gradle version is set to 8.3

    Network security config

    There's a network security config which defines next addresses to be allowed:

    @@ -37,6 +35,6 @@

    Netw

    If you have troubles connecting while in debug from physical device, try to add your IP address in network_security_config.xml.

    Large heap

    -

    Large heap is enabled by default, you can disable it but practice shows that in most of the cases you need to enable it.

    +

    Large heap is enabled by default, you can disable it but practice shows that in most of the cases you need to enable it.

    \ No newline at end of file diff --git a/docs/internals/ios/index.html b/docs/internals/ios/index.html index 06687d94..3758fb01 100644 --- a/docs/internals/ios/index.html +++ b/docs/internals/ios/index.html @@ -1,26 +1,23 @@ - + - -iOS internals | React Native Template Strong - - + +iOS internals | React Native Template Strong + + -

    iOS internals

    Hermes

    +

    iOS internals

    Hermes

    Enabled

    -

    Pods

    -

    There's a pods post installation action which bumps deployment target version of each pod to 13.0 -(only RCT-Folly stays on 11.0 due to to a bug).

    Versions

    -

    Deployment target is set to 13.0 later in plans to change it to 14.0.

    +

    Deployment target is set to 13.4

    Devices

    -

    It supports iPhones and iPads

    +

    iPhones and iPads are both supported

    Orientations

    -

    All unlocked (locked in React Native by device type)

    +

    All orientations are unlocked (locked in React Native by device type)

    Flipper

    Flipper is disabled in podfile due to the fact that it increases app size and goes in production as a pod too, -you can enable it while testing but don't forget to comment it back.

    +you can enable it while testing but don't forget to comment it back.

    \ No newline at end of file diff --git a/docs/localisation/add-language/index.html b/docs/localisation/add-language/index.html index 873d774e..3b554f0b 100644 --- a/docs/localisation/add-language/index.html +++ b/docs/localisation/add-language/index.html @@ -1,14 +1,14 @@ - + - -Add language | React Native Template Strong - - + +Add language | React Native Template Strong + + -

    Add language

    Description

    +

    Add language

    Description

    To add a new language you have to do some changes in native iOS and Android code in order to show available languages in stores and in application's settings.

    And it goes without saying you have to add language in localization itself and add translation for each string already defined in other languages.

    There also should be added imports of translations for intl and dayjs to show correct strings and formats.

    @@ -16,22 +16,22 @@

    Add language in localization

    In localization.ts you can see Languages enum.

    Add your language (in our example ru) there based on its locale identifier.

    -
    export enum Languages {
    en = "en",
    ru = "ru",
    }
    +
    export enum Languages {
    en = "en",
    ru = "ru",
    }

    Then you have to open every single translation file you have stored in translations folder and add ru with every single translation string.

    For example, here's how emptyLocalization will look like:

    -
    export const emptyLocalization = {
    en: {
    noData: "No data",
    checkThisPageLater: "Check this page later",
    },
    ru: {
    noData: "Нет данных",
    checkThisPageLater: "Проверьте эту страницу позже",
    },
    };
    +
    export const emptyLocalization = {
    en: {
    noData: "No data",
    checkThisPageLater: "Check this page later",
    },
    ru: {
    noData: "Нет данных",
    checkThisPageLater: "Проверьте эту страницу позже",
    },
    };

    If you miss a string in some langauge, it will be seen as error in place where you are using this string.

    Add imports for dayjs

    Open /src/common/localization/dateFormatter.ts and the top of this file you will see already an import of English language:

    -
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/en";
    +
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/en";

    It has ESLint disable rule because unassigned imports aren't welcome.

    Add your language import here and add the disable rule comment too:

    -
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/en";
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/ru";
    +
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/en";
    // eslint-disable-next-line import/no-unassigned-import
    import "dayjs/locale/ru";

    Add imports for intl

    Open /src/common/localization/intlFormatter.ts and the top of this file you will see already an import of English language:

    -
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/en";
    +
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/en";

    Add your language the same way you did with dayjs:

    -
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/en";
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/ru";
    +
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/en";
    // eslint-disable-next-line import/no-unassigned-import
    import "intl/locale-data/jsonp/ru";

    Add language in iOS

    Open .xcworkspace file in XCode.

    We will be adding stub files without actual translations so that App Store and the application settings would see that the app has support for languages.

    @@ -41,6 +41,6 @@

    Add lang

    Add language in Android

    Open Android folder in Android Studio.

    And follow this guide.

    -

    Just add .xml strings.

    +

    Just add .xml strings.

    \ No newline at end of file diff --git a/docs/localisation/change-language/index.html b/docs/localisation/change-language/index.html index 093e4613..93be6ec0 100644 --- a/docs/localisation/change-language/index.html +++ b/docs/localisation/change-language/index.html @@ -1,14 +1,14 @@ - + - -Change language | React Native Template Strong - - + +Change language | React Native Template Strong + + -

    Change language

    There are two ways you can change language of your app.

    +

    Change language

    There are two ways you can change language of your app.

    If you correctly added languages for both Android and iOS, there will be an option in app's system settings to switch the language.

    Describe the process of changing language to user and create a button which will lead him to app's settings.

    @@ -18,6 +18,6 @@
    +and also apply it on app start every time.

    \ No newline at end of file diff --git a/docs/localisation/date-formatter/index.html b/docs/localisation/date-formatter/index.html index 70e03ae1..e82b996d 100644 --- a/docs/localisation/date-formatter/index.html +++ b/docs/localisation/date-formatter/index.html @@ -1,14 +1,14 @@ - + - -Date formatter | React Native Template Strong - - + +Date formatter | React Native Template Strong + + -

    Date formatter

    Content

    +

    Date formatter

    Content

    Contains date converters and date formatters based on current language.

    • DateFormat - enum of possible formats you can use (you can add you own)
    • @@ -21,18 +21,18 @@

    Usage

    dateFromString:

    -
    dateFromString("2021-10-01");
    //2021-10-01T00:00:00.000Z as Date
    +
    dateFromString("2021-10-01");
    //2021-10-01T00:00:00.000Z as Date

    dateFromUnknown:

    -
    dateFromUnknown(1234567891011);
    //2009-02-13T23:31:31.011Z as Date
    +
    dateFromUnknown(1234567891011);
    //2009-02-13T23:31:31.011Z as Date

    dateFromFormat:

    -
    dateFromFormat(new Date(), DateFormat.yearDateTime);
    //2021.10.04 12:13

    dateFromFormat(new Date(), DateFormat.shortMonthYear);
    //Oct 2021
    +
    dateFromFormat(new Date(), DateFormat.yearDateTime);
    //2021.10.04 12:13

    dateFromFormat(new Date(), DateFormat.shortMonthYear);
    //Oct 2021

    calendarDate:

    -
    calendarDate(new Date());
    //Today at 12:14 PM

    calendarDate(new Date(), true)
    //Today
    +
    calendarDate(new Date());
    //Today at 12:14 PM

    calendarDate(new Date(), true)
    //Today

    getUnixDate:

    -
    getUnixDate(new Date());
    //1633338938000
    +
    getUnixDate(new Date());
    //1633338938000

    getInitialDate:

    -
    getInitialDate(new Date());
    // 2021-10-04T09:16:17.565Z

    getInitialDate(null, new Date("2012-10-01"));
    //2012-10-01T00:00:00.000Z
    +
    getInitialDate(new Date());
    // 2021-10-04T09:16:17.565Z

    getInitialDate(null, new Date("2012-10-01"));
    //2012-10-01T00:00:00.000Z

    Check how it looks

    -

    You can open StoryBook and open Format -> Date Formats and Date Formats Enum stories and see how they are being applied.

    +

    You can open StoryBook and open Format -> Date Formats and Date Formats Enum stories and see how they are being applied.

    \ No newline at end of file diff --git a/docs/localisation/intl-formatter/index.html b/docs/localisation/intl-formatter/index.html index f83e4f6e..809ae9ee 100644 --- a/docs/localisation/intl-formatter/index.html +++ b/docs/localisation/intl-formatter/index.html @@ -1,14 +1,14 @@ - + - -Intl formatter | React Native Template Strong - - + +Intl formatter | React Native Template Strong + + -

    Intl formatter

    Content

    +

    Intl formatter

    Content

    intlFormatter offers formatting options for numbers, prices, percentage and currencies depending on current language.

    Next functions are available, and they format numbers based on current language (percentage sign or currency sign placement, dot or comma between decimals, how many fraction digits to show)

    @@ -20,12 +20,12 @@

    Usage

    The following results are based on English locale

    formatPercent:

    -
    formatPercent(25);
    //25%
    +
    formatPercent(25);
    //25%

    formatCurrency:

    -
    formatCurrency(10000);
    //$10,000

    formatCurrency(10000, "EUR");
    //€10,000
    +
    formatCurrency(10000);
    //$10,000

    formatCurrency(10000, "EUR");
    //€10,000

    formatDecimal:

    -
    formatDecimal(10000);
    //10,000
    -

    Check how it looks

    -

    You can open StoryBook and open Format -> Intl Formats stories and see how they are being applied.

    +
    formatDecimal(10000);
    //10,000
    +

    Check how it looks

    +

    You can open StoryBook and open Format -> Intl Formats stories and see how they are being applied.

    \ No newline at end of file diff --git a/docs/localisation/translations/index.html b/docs/localisation/translations/index.html index 031e63e4..120a97f5 100644 --- a/docs/localisation/translations/index.html +++ b/docs/localisation/translations/index.html @@ -1,28 +1,28 @@ - + - -Translations | React Native Template Strong - - + +Translations | React Native Template Strong + + -

    Translations

    Localisation is made possible by react-native-localization.

    +

    Translations

    Localisation is made possible by react-native-localization.

    Content

    Localization file are located at /src/common/localization/localization.ts.

    It has translation methods and the constant object which holds all the translations:

    -
    export const localization = {
    common: new LocalizedStrings(commonLocalization),
    errors: new LocalizedStrings(errorsLocalization),
    empty: new LocalizedStrings(emptyLocalization),
    pages: new LocalizedStrings(pagesLocalization),
    onboarding: new LocalizedStrings(onboardingLocalization),
    };
    +
    export const localization = {
    common: new LocalizedStrings(commonLocalization),
    errors: new LocalizedStrings(errorsLocalization),
    empty: new LocalizedStrings(emptyLocalization),
    pages: new LocalizedStrings(pagesLocalization),
    onboarding: new LocalizedStrings(onboardingLocalization),
    };

    Translations itself are located in /src/common/localization/translations.

    Each translation file is represented by simple constant object which holds languages as properties which hold translations strings.

    Common localization:

    -
    export const commonLocalization = {
    en: {
    search: "Search",
    selectPhoto: "Select a photo",
    takePhoto: "Take a photo",
    chooseFromLibrary: "Choose from library",
    cancel: "Cancel",
    reject: "Reject",
    delete: "Delete",
    back: "Back",
    next: "Next",
    done: "Done",
    ok: "Ok",
    continue: "Continue",
    save: "Save",
    loading: "Loading",
    photo: "Photo",
    yes: "Yes",
    no: "No",
    areYouSure: "Are you sure?",
    warning: "Warning",
    success: "Success",
    select: "Select",
    dataSuccessfullyUpdated: "Data has been successfully updated",
    settings: "Settings",
    },
    };
    +
    export const commonLocalization = {
    en: {
    search: "Search",
    selectPhoto: "Select a photo",
    takePhoto: "Take a photo",
    chooseFromLibrary: "Choose from library",
    cancel: "Cancel",
    reject: "Reject",
    delete: "Delete",
    back: "Back",
    next: "Next",
    done: "Done",
    ok: "Ok",
    continue: "Continue",
    save: "Save",
    loading: "Loading",
    photo: "Photo",
    yes: "Yes",
    no: "No",
    areYouSure: "Are you sure?",
    warning: "Warning",
    success: "Success",
    select: "Select",
    dataSuccessfullyUpdated: "Data has been successfully updated",
    settings: "Settings",
    },
    };

    It can be string or function.

    Function example:

    -
        stops: (stopsCount: number) => {
    return stopsCount + (stopsCount > 1 ? " stops" : " stop");
    },
    km: (distance: string | number) => {
    return distance + " km";
    },
    +
        stops: (stopsCount: number) => {
    return stopsCount + (stopsCount > 1 ? " stops" : " stop");
    },
    km: (distance: string | number) => {
    return distance + " km";
    },

    Usage

    Import the localization constant and use needed translation string:

    -
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    +
    <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>

    Translations structure

    The structure is pretty simple:

      @@ -41,6 +41,6 @@

      Add translat

      Then add a translation string to every language that you have.

      Default language

      By default, there's only English language present in the template.

      -

      The first language which goes in translation files is going to be the default one.

    +

    The first language which goes in translation files is going to be the default one.

    \ No newline at end of file diff --git a/docs/navigation/actions/index.html b/docs/navigation/actions/index.html index bae9ceb2..b27c869c 100644 --- a/docs/navigation/actions/index.html +++ b/docs/navigation/actions/index.html @@ -1,14 +1,14 @@ - + - -Actions | React Native Template Strong - - + +Actions | React Native Template Strong + + -

    Actions

    Content

    +

    Actions

    Content

    There are a couple basic actions which were added in addition to what React Native Navigation offers.

    These actions are located in /src/navigation/helpers/navigationActions/ts.

      @@ -19,8 +19,8 @@

      Optionally you can provide your own passProps and options.

      Usage

      Simple case:

      -
        const onFaqPress = useCallback(() => {
      navigateWithoutTabs(Pages.faq, componentId);
      }, [componentId]);
      +
        const onFaqPress = useCallback(() => {
      navigateWithoutTabs(Pages.faq, componentId);
      }, [componentId]);

      With passProps and options:

      -
        const onSuccess = useCallback(
      (confirmation: FirebaseAuthTypes.ConfirmationResult) => {
      navigateWithoutTabs<ICodeConfirmationProps>(
      Pages.confirmation,
      componentId,
      {
      phone: phone,
      formattedPhone: formattedPhone,
      confirmation: confirmation,
      },
      {
      topBar: {
      title: {
      text: localization.pages.signIn,
      },
      },
      },
      );
      },
      [phone, formattedPhone, componentId],
      );
    +
      const onSuccess = useCallback(
    (confirmation: FirebaseAuthTypes.ConfirmationResult) => {
    navigateWithoutTabs<ICodeConfirmationProps>(
    Pages.confirmation,
    componentId,
    {
    phone: phone,
    formattedPhone: formattedPhone,
    confirmation: confirmation,
    },
    {
    topBar: {
    title: {
    text: localization.pages.signIn,
    },
    },
    },
    );
    },
    [phone, formattedPhone, componentId],
    );
    \ No newline at end of file diff --git a/docs/navigation/before-starting/index.html b/docs/navigation/before-starting/index.html index caa4ad9f..53d2f562 100644 --- a/docs/navigation/before-starting/index.html +++ b/docs/navigation/before-starting/index.html @@ -1,16 +1,16 @@ - + - -Before starting | React Native Template Strong - - + +Before starting | React Native Template Strong + + -

    Before starting

    Content

    +

    Before starting

    Content

    First read about React Native Navigation, about what it can do, what it offers and then come back here to move on.

    It's important to know about it because it's one of a core components of this template and knowing it can save your time -and eliminate many questions.

    +and eliminate many questions.

    \ No newline at end of file diff --git a/docs/navigation/default-options/index.html b/docs/navigation/default-options/index.html index dbdeaa40..ac8f728f 100644 --- a/docs/navigation/default-options/index.html +++ b/docs/navigation/default-options/index.html @@ -1,21 +1,21 @@ - + - -Default options | React Native Template Strong - - + +Default options | React Native Template Strong + + -

    Default options

    Content

    +

    Default options

    Content

    Default options are being set in src/navigation/navigation.ts:

    -
    export function setDefaultOptions() {
    Navigation.setDefaultOptions({
    animations: {
    setRoot: {
    waitForRender: true,
    },
    setStackRoot: {
    waitForRender: true,
    },
    },
    layout: {
    componentBackgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    },
    topBar: {
    animate: true,
    drawBehind: !isAndroid,
    background: {
    translucent: true,
    color: platformNativeColor(undefined, PlatformColorsAndroid.navigation),
    },
    title: {
    color: platformNativeColor(undefined, PlatformColorsAndroid.onPrimaryText),
    },
    largeTitle: {
    visible: false,
    },
    scrollEdgeAppearance: {
    active: true,
    noBorder: true,
    },
    searchBar: {
    visible: false,
    hideOnScroll: true,
    hideTopBarOnFocus: true,
    obscuresBackgroundDuringPresentation: true,
    },
    hideNavBarOnFocusSearchBar: true,
    searchBarHiddenWhenScrolling: true,
    searchBarPlaceholder: localization.common.search,
    noBorder: false,
    },
    bottomTabs: {
    animate: true,
    hideShadow: false,
    translucent: true,
    animateTabSelection: true,
    preferLargeIcons: false,
    tabsAttachMode: "together",
    backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.navigation),
    ...Platform.select({
    android: {
    translucent: false,
    borderWidth: 1,
    borderColor: platformNativeColor(undefined, PlatformColorsAndroid.divider),
    },
    }),
    },
    bottomTab: {
    selectedTextColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryText),
    selectedIconColor: platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.onPrimaryText),
    textColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),
    iconColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),
    },
    statusBar: {
    backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.statusbar),
    visible: true,
    },
    });
    }
    +
    export function setDefaultOptions() {
    Navigation.setDefaultOptions({
    animations: {
    setRoot: {
    waitForRender: true,
    },
    setStackRoot: {
    waitForRender: true,
    },
    },
    layout: {
    componentBackgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    },
    topBar: {
    animate: true,
    drawBehind: !isAndroid,
    background: {
    translucent: true,
    color: platformNativeColor(undefined, PlatformColorsAndroid.navigation),
    },
    title: {
    color: platformNativeColor(undefined, PlatformColorsAndroid.onPrimaryText),
    },
    largeTitle: {
    visible: false,
    },
    scrollEdgeAppearance: {
    active: true,
    noBorder: true,
    },
    searchBar: {
    visible: false,
    hideOnScroll: true,
    hideTopBarOnFocus: true,
    obscuresBackgroundDuringPresentation: true,
    },
    hideNavBarOnFocusSearchBar: true,
    searchBarHiddenWhenScrolling: true,
    searchBarPlaceholder: localization.common.search,
    noBorder: false,
    },
    bottomTabs: {
    animate: true,
    hideShadow: false,
    translucent: true,
    animateTabSelection: true,
    preferLargeIcons: false,
    tabsAttachMode: "together",
    backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.navigation),
    ...Platform.select({
    android: {
    translucent: false,
    borderWidth: 1,
    borderColor: platformNativeColor(undefined, PlatformColorsAndroid.divider),
    },
    }),
    },
    bottomTab: {
    selectedTextColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryText),
    selectedIconColor: platformNativeColor(PlatformColorsIOS.systemBlue, PlatformColorsAndroid.onPrimaryText),
    textColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),
    iconColor: platformNativeColor(PlatformColorsIOS.secondaryLabel, PlatformColorsAndroid.onPrimaryTextOpacity),
    },
    statusBar: {
    backgroundColor: platformNativeColor(undefined, PlatformColorsAndroid.statusbar),
    visible: true,
    },
    });
    }

    Here we are setting default options which will be applied to every navigation component which will be created in application.

    So rather than changing lots of different options in pages, modals, overlays, tabs, it's more convenient to do it once and then apply needed changes to certain navigation components.

    These options are being applied ad the application's initialization:

    -
    export function initializeApp() {
    ...
    setDefaultOptions();
    ...
    }
    +
    export function initializeApp() {
    ...
    setDefaultOptions();
    ...
    }

    Options

    The options which are provided with template are very close to the stock iOS and Android applications.

    iOS

    @@ -23,6 +23,6 @@

    iOSAndroid

    Bars' background is set to follow the Material's primary color while light theme is on, and they are dark when dark theme is on.

    Bottom bar animation is present.

    -

    Status bar changes its color accordingly to theme.

    +

    Status bar changes its color accordingly to theme.

    \ No newline at end of file diff --git a/docs/navigation/hooks/index.html b/docs/navigation/hooks/index.html index 511beb36..1fb13f81 100644 --- a/docs/navigation/hooks/index.html +++ b/docs/navigation/hooks/index.html @@ -1,17 +1,17 @@ - + - -Hooks | React Native Template Strong - - + +Hooks | React Native Template Strong + + -

    Hooks

    Content

    +

    Hooks

    Content

    React Native Navigation offers its own event handling using but for convenience it's advisable to use React Native Navigation Hooks.

    It's already installed in this template.

    Check it out how it works and what it offers.

    -
    Tip

    When using navigation hooks don't use NavigationProvider and withNavigationProvider, better supply it with componentId:

    import { useNavigationComponentDidAppear } from 'react-native-navigation-hooks'

    const ExampleScreen = ({ componentId }) => {
    useNavigationComponentDidAppear(
    (e) => {
    console.warn(`${e.componentName} appeared`)
    },
    { componentId }
    )

    return <Text>Example Screen</Text>
    }
    +
    Tip

    When using navigation hooks don't use NavigationProvider and withNavigationProvider, better supply it with componentId:

    import { useNavigationComponentDidAppear } from 'react-native-navigation-hooks'

    const ExampleScreen = ({ componentId }) => {
    useNavigationComponentDidAppear(
    (e) => {
    console.warn(`${e.componentName} appeared`)
    },
    { componentId }
    )

    return <Text>Example Screen</Text>
    }
    \ No newline at end of file diff --git a/docs/navigation/overlays-and-modals/index.html b/docs/navigation/overlays-and-modals/index.html index a7b1e12c..06af23cf 100644 --- a/docs/navigation/overlays-and-modals/index.html +++ b/docs/navigation/overlays-and-modals/index.html @@ -1,14 +1,14 @@ - + - -Overlays and modals | React Native Template Strong - - + +Overlays and modals | React Native Template Strong + + -

    Overlays and modals

    Content

    +

    Overlays and modals

    Content

    Overlays and modals are being added the same way as pages.

    Pre-made components

    There are a couple of pre-made modals and overlays, they are located in src/navigation/helpers.

    @@ -17,6 +17,6 @@

    Pre-made
  • showStorybook - shows StoryBook while in debug (you can access it from dev menu by shaking your device).
  • showModal - shows modal on iOS and overlay on Android with supplied options.
  • showOnboarding - iOS only way to show onboarding when user first time launches application to show him what's available in app as overlay.
  • -

    +
    \ No newline at end of file diff --git a/docs/navigation/pages/index.html b/docs/navigation/pages/index.html index 1a225fcb..bc0062ec 100644 --- a/docs/navigation/pages/index.html +++ b/docs/navigation/pages/index.html @@ -1,16 +1,16 @@ - + - -Pages | React Native Template Strong - - + +Pages | React Native Template Strong + + -

    Pages

    Content

    +

    Pages

    Content

    Pages constants are located in src/navigation/pages.ts.

    -
    export const Pages = {
    storybook: {
    id: "STORYBOOK",
    name: "Storybook",
    },
    splash: {
    id: "SPLASH_SCREEN",
    name: "SplashScreen",
    },
    onboarding: {
    id: "ONBOARDING_SCREEN",
    name: "OnboardingScreen",
    },
    toast: {
    id: "TOAST",
    name: "ToastOverlay",
    },
    datePicker: {
    id: "DATE_PICKER",
    name: "DatePickerOverlay",
    },
    tabs: {
    id: "BOTTOM_TABS",
    name: "BottomTabs",
    },
    main: {
    id: "MAIN_SCREEN",
    name: "MainScreen",
    },
    search: {
    id: "SEARCH_SCREEN",
    name: "SearchScreen",
    },
    settings: {
    id: "SETTINGS_SCREEN",
    name: "SettingsScreen",
    },
    };
    +
    export const Pages = {
    storybook: {
    id: "STORYBOOK",
    name: "Storybook",
    },
    splash: {
    id: "SPLASH_SCREEN",
    name: "SplashScreen",
    },
    onboarding: {
    id: "ONBOARDING_SCREEN",
    name: "OnboardingScreen",
    },
    toast: {
    id: "TOAST",
    name: "ToastOverlay",
    },
    datePicker: {
    id: "DATE_PICKER",
    name: "DatePickerOverlay",
    },
    tabs: {
    id: "BOTTOM_TABS",
    name: "BottomTabs",
    },
    main: {
    id: "MAIN_SCREEN",
    name: "MainScreen",
    },
    search: {
    id: "SEARCH_SCREEN",
    name: "SearchScreen",
    },
    settings: {
    id: "SETTINGS_SCREEN",
    name: "SettingsScreen",
    },
    };

    Pages are defined as the object which contains page names as parameters which are objects with name and id.

    Here besides pages itself you add modals, overlays and other components which will be registered in navigation (i.e. registerNavigationComponent).

    registerNavigationComponent - shorthand function to simplify registration of a page.

    @@ -19,15 +19,15 @@

    Adding pagesTo add a page, simply add your own property in Pages with id and name.

    Registering pages

    All the pages are being registered in src/navigation/navigation.ts's registerComponents function which is being called at initialization of application.

    -
    export function registerComponents() {
    if (__DEV__) {
    registerNavigationComponent(Pages.storybook, StorybookUIRoot);
    }
    registerNavigationComponent(Pages.splash, Splash, true);
    registerNavigationComponent(Pages.onboarding, Onboarding);
    registerNavigationComponent(Pages.main, Main);
    registerNavigationComponent(Pages.search, Search);
    registerNavigationComponent(Pages.settings, Settings);
    registerNavigationComponent(Pages.toast, ToastOverlay);
    registerNavigationComponent(Pages.datePicker, DatePickerOverlay);
    }
    +
    export function registerComponents() {
    if (__DEV__) {
    registerNavigationComponent(Pages.storybook, StorybookUIRoot);
    }
    registerNavigationComponent(Pages.splash, Splash, true);
    registerNavigationComponent(Pages.onboarding, Onboarding);
    registerNavigationComponent(Pages.main, Main);
    registerNavigationComponent(Pages.search, Search);
    registerNavigationComponent(Pages.settings, Settings);
    registerNavigationComponent(Pages.toast, ToastOverlay);
    registerNavigationComponent(Pages.datePicker, DatePickerOverlay);
    }

    If your page or component is going to be a simple component which won't be communication with redux then you can simply register it the next way:

    -
      registerNavigationComponent(Pages.yourPage, YourPage);
    +
      registerNavigationComponent(Pages.yourPage, YourPage);

    Otherwise, add a third parameter with true:

    -
      registerNavigationComponent(Pages.yourPage, YourPage, true);
    +
      registerNavigationComponent(Pages.yourPage, YourPage, true);

    The communication with redux and usage will be explained later.

    Using pages

    Create a simple function component like so and describe its options if needed:

    -
    export const YourPage: NavigationFunctionComponent = (): JSX.Element => {
    return <ScrollView contentInsetAdjustmentBehavior={"automatic"} style={CommonStyles.flex1} />;
    };

    YourPage.options = {
    topBar: {
    largeTitle: {
    visible: true,
    },
    searchBar: {
    visible: false,
    },
    title: {
    text: localization.pages.yourPage,
    },
    },
    };
    -
    Tip

    Try to use ScrollView as your parent component in order to have the best behavior on iOS.

    +
    export const YourPage: NavigationFunctionComponent = (): JSX.Element => {
    return <ScrollView contentInsetAdjustmentBehavior={"automatic"} style={CommonStyles.flex1} />;
    };

    YourPage.options = {
    topBar: {
    largeTitle: {
    visible: true,
    },
    searchBar: {
    visible: false,
    },
    title: {
    text: localization.pages.yourPage,
    },
    },
    };
    +
    Tip

    Try to use ScrollView as your parent component in order to have the best behavior on iOS.

    \ No newline at end of file diff --git a/docs/navigation/roots/index.html b/docs/navigation/roots/index.html index 8a01d100..7a4f79dc 100644 --- a/docs/navigation/roots/index.html +++ b/docs/navigation/roots/index.html @@ -1,14 +1,14 @@ - + - -Roots | React Native Template Strong - - + +Roots | React Native Template Strong + + -

    Roots

    Content

    +

    Roots

    Content

    The root is where the application layout structure is defined. It is typically the first UI element a user interacts with.

    The root can be changed multiple times during the lifespan of the application.

    For example, if an app requires users to login, it's common to use a stack-based root and transition to either tabs- or SideMenu-based root if login is successful.

    @@ -18,6 +18,6 @@

    Starting root<

    The starting root is setInitialRoot which shows Splash.

    Switching roots

    As shown in Splash based on whether user opened application first time or second time it switches the root to tabs or onboarding:

    -
    export const Splash: NavigationFunctionComponent = () => {
    const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);

    useEffect(() => {
    if (isOnboardingVisited) {
    setTabsRoot();
    } else if (isIos) {
    setTabsRoot(showOnboarding);
    } else {
    setOnboardingRoot();
    }
    }, [isOnboardingVisited]);

    return <LoadingComponent />;
    };
    +
    export const Splash: NavigationFunctionComponent = () => {
    const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);

    useEffect(() => {
    if (isOnboardingVisited) {
    setTabsRoot();
    } else if (isIos) {
    setTabsRoot(showOnboarding);
    } else {
    setOnboardingRoot();
    }
    }, [isOnboardingVisited]);

    return <LoadingComponent />;
    };
    \ No newline at end of file diff --git a/docs/pages/native-splash/index.html b/docs/pages/native-splash/index.html index b9ec0786..11646212 100644 --- a/docs/pages/native-splash/index.html +++ b/docs/pages/native-splash/index.html @@ -1,14 +1,14 @@ - + - -Native splash | React Native Template Strong - - + +Native splash | React Native Template Strong + + -

    Native splash

    Content

    +
    +
    Tip

    Don't use text on your logos on both platforms, try to place just logos.

    \ No newline at end of file diff --git a/docs/pages/onboarding/index.html b/docs/pages/onboarding/index.html index 7282dd53..01f71d67 100644 --- a/docs/pages/onboarding/index.html +++ b/docs/pages/onboarding/index.html @@ -1,18 +1,18 @@ - + - -Onboarding | React Native Template Strong - - + +Onboarding | React Native Template Strong + + -

    Onboarding

    Content

    +

    Onboarding

    Content

    This screen is used in order to demonstrate users your app's features.

    The onboarding process is a user’s first impression of your app, and when designed correctly, increases the likelihood of successful adoption.

    At this moment there are some information regarding the template, you have to replace it.

    On iOS it imitates the Apple's onboardings and presented as modal on both iPhone and iPad.

    -

    On Android it imitates Material Design's onboarding and presented as a separated root with snap carousel (it look different on smartphones and tablets).

    +

    On Android it imitates Material Design's onboarding and presented as a separated root with snap carousel (it look different on smartphones and tablets).

    \ No newline at end of file diff --git a/docs/pages/splash/index.html b/docs/pages/splash/index.html index 9c6c1bb4..84fd2059 100644 --- a/docs/pages/splash/index.html +++ b/docs/pages/splash/index.html @@ -1,19 +1,19 @@ - + - -Splash | React Native Template Strong - - + +Splash | React Native Template Strong + + -

    Splash

    Content

    +

    Splash

    Content

    It's React Native navigation page which at this moment shows LoadingComponent.

    You can try to adjust it to show replicate the native splash, or add some animation here.

    This page is primarily used to implement initial navigation root setting by checking different parameters.

    For example, now it checks whether user opens this app first time or not in order to show him Onboarding:

    -
    export const Splash: NavigationFunctionComponent = () => {
    const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);

    useEffect(() => {
    if (isOnboardingVisited) {
    setTabsRoot();
    } else if (isIos) {
    setTabsRoot(showOnboarding);
    } else {
    setOnboardingRoot();
    }
    }, [isOnboardingVisited]);

    return <LoadingComponent />;
    };
    -

    You can also implement your checks here (e.g. is logged in or not).

    +
    export const Splash: NavigationFunctionComponent = () => {
    const isOnboardingVisited = useAppSelector((state) => state.system.isOnboardingVisited);

    useEffect(() => {
    if (isOnboardingVisited) {
    setTabsRoot();
    } else if (isIos) {
    setTabsRoot(showOnboarding);
    } else {
    setOnboardingRoot();
    }
    }, [isOnboardingVisited]);

    return <LoadingComponent />;
    };
    +

    You can also implement your checks here (e.g. is logged in or not).

    \ No newline at end of file diff --git a/docs/patches/index.html b/docs/patches/index.html index 0b71280f..b0e5b6e7 100644 --- a/docs/patches/index.html +++ b/docs/patches/index.html @@ -1,14 +1,14 @@ - + - -Patches | React Native Template Strong - - + +Patches | React Native Template Strong + + -

    Patches

    Content

    +

    Patches

    Content

    Work with patches made possible by patch-package.

    Sometimes it's needed to make changes in packages from node_modules.

    There might be an error, mistake, or you need to adjust module to your needs.

    @@ -18,7 +18,7 @@

    To handle this situation the best possible way is to make a local patch.

    Usage

    First make changes to the files of a particular package in your node_modules folder, then run

    -
    npx patch-package package-name
    -

    where package-name matches the name of the package you made changes to.

    +
    npx patch-package package-name
    +

    where package-name matches the name of the package you made changes to.

    \ No newline at end of file diff --git a/docs/redux/async-thunk/index.html b/docs/redux/async-thunk/index.html index 5d9596f3..90540b93 100644 --- a/docs/redux/async-thunk/index.html +++ b/docs/redux/async-thunk/index.html @@ -1,27 +1,27 @@ - + - -AsyncThunk | React Native Template Strong - - + +AsyncThunk | React Native Template Strong + + -

    AsyncThunk

    Content

    +

    AsyncThunk

    Content

    AsyncThunks as well as Slices are stored together for better readability and remove need to have additional imports.

    To demonstrate how to create and use it, I will be using some Orders state and ordersApi as example.

    Creation

    Creation of AsyncThunk is the same as in original documentation with usage of typed state and dispatch, with your API call do the following:

    -
    export const takeOrder = createAppAsyncThunk("orders/take", async (id: string) => {
    return await ordersApi.takeOrder(id);
    });
    +
    export const takeOrder = createAppAsyncThunk("orders/take", async (id: string) => {
    return await ordersApi.takeOrder(id);
    });

    Where "orders/take"" is name of your slice and name of your method.

    Slice handlers

    You can handle the result inline or as I like with functions, all together it looks like this:

    -
    export const takeOrder = createAppAsyncThunk("order/take", async (id: string) => {
    return await ordersApi.takeOrder(id);
    });

    function rehydrate(state: OrderState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.orders || state, {});
    }

    function orderActionPendingHandler(state: OrderState, params: ReturnType<typeof takeOrder.pending>) {
    return newState(state, {isLoading: true, error: null});
    }

    function takeOrderFulfilledHandler(state: OrderState, params: ReturnType<typeof takeOrder.fulfilled>) {
    return newState(state, {isLoading: false, error: null, order: params.payload});
    }

    function orderActionRejectedHandler(state: OrderState, params: ReturnType<typeof takeOrder.rejected>) {
    return newState(state, {isLoading: false, error: params.error.message});
    }

    export const {reducer: OrderReducer} = createSlice({
    name: "order",
    initialState: OrdersInitialState,
    extraReducers: (builder) => {
    builder
    .addCase(REHYDRATE, rehydrate)
    .addCase(takeOrder.pending, orderActionPendingHandler)
    .addCase(takeOrder.fulfilled, takeOrderFulfilledHandler)
    .addCase(takeOrder.rejected, orderActionRejectedHandler);
    },
    });
    +
    export const takeOrder = createAppAsyncThunk("order/take", async (id: string) => {
    return await ordersApi.takeOrder(id);
    });

    function rehydrate(state: OrderState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.orders || state, {});
    }

    function orderActionPendingHandler(state: OrderState, params: ReturnType<typeof takeOrder.pending>) {
    return newState(state, {isLoading: true, error: null});
    }

    function takeOrderFulfilledHandler(state: OrderState, params: ReturnType<typeof takeOrder.fulfilled>) {
    return newState(state, {isLoading: false, error: null, order: params.payload});
    }

    function orderActionRejectedHandler(state: OrderState, params: ReturnType<typeof takeOrder.rejected>) {
    return newState(state, {isLoading: false, error: params.error.message});
    }

    export const {reducer: OrderReducer} = createSlice({
    name: "order",
    initialState: OrdersInitialState,
    extraReducers: (builder) => {
    builder
    .addCase(REHYDRATE, rehydrate)
    .addCase(takeOrder.pending, orderActionPendingHandler)
    .addCase(takeOrder.fulfilled, takeOrderFulfilledHandler)
    .addCase(takeOrder.rejected, orderActionRejectedHandler);
    },
    });

    Promise result handlers

    To handle promise results in pages/components (i.e. show error toast, show error in input, show success toast etc.) we can handle it the following way:

    -
      const onTakeOrderPress = useCallback(() => {
    handlePromiseResult(dispatch(takeOrder(orderId)), localization.common.orderHasBeenSuccessfullyTaken);
    }, [dispatch, orderId]);
    -

    To check more about handlePromiseResult read more here.

    +
      const onTakeOrderPress = useCallback(() => {
    handlePromiseResult(dispatch(takeOrder(orderId)), localization.common.orderHasBeenSuccessfullyTaken);
    }, [dispatch, orderId]);
    +

    To check more about handlePromiseResult read more here.

    \ No newline at end of file diff --git a/docs/redux/before-starting/index.html b/docs/redux/before-starting/index.html index 67011c48..fdb4ff44 100644 --- a/docs/redux/before-starting/index.html +++ b/docs/redux/before-starting/index.html @@ -1,14 +1,14 @@ - + - -Before starting | React Native Template Strong - - + +Before starting | React Native Template Strong + + -

    Before starting

    Content

    +

    Before starting

    Content

    First read about Redux and Redux ToolKit, about what it can do, what they offer and then come back here to move on.

    It's important to know about them because they are core components of this template and knowing them can save your time and eliminate many questions.

    @@ -17,28 +17,28 @@

    npm uninstall @reduxjs/toolkit react-redux redux-persist @types/react-redux

    +
    npm uninstall @reduxjs/toolkit react-redux redux-persist @types/react-redux
    • Delete the src/core/store folder
    • Remove Redux usage from registerNavigationComponent
    • Change Splash screen navigation component initialization:

    From:

    -
      registerNavigationComponent(Pages.splash, Splash, true);
    +
      registerNavigationComponent(Pages.splash, Splash, true);

    To:

    -
      registerNavigationComponent(Pages.splash, Splash);
    +
      registerNavigationComponent(Pages.splash, Splash);
    • Remove usage of useAppSelector in Splash (but you have to manage now Onboarding logic your way):
    -
    export const Splash: NavigationFunctionComponent = () => {
    useEffect(() => {
    setTabsRoot();
    }, []);

    return <LoadingComponent />;
    };
    +
    export const Splash: NavigationFunctionComponent = () => {
    useEffect(() => {
    setTabsRoot();
    }, []);

    return <LoadingComponent />;
    };
    • Remove unneeded interfaces from src/types/index.ts:
    -
    export interface RehydrateAppAction extends RehydrateAction {
    payload?: RootState;
    }
    +
    export interface RehydrateAppAction extends RehydrateAction {
    payload?: RootState;
    }
    • Remove unneeded handlePromiseResult from src/common/validations/errorValidations.ts:
    -
    export function handlePromiseResult(
    promiseAction: Promise<any>,
    successMessage?: string,
    successAction?: () => void,
    processError?: (error: Error) => IErrorResult,
    setError?: (errorMessage: string) => void,
    ) {
    promiseAction
    .then(unwrapResult)
    .then(() => {
    successMessage && showToast({text: successMessage});
    successAction && successAction();
    })
    .catch((handledError: Error) => {
    processError && handleErrorPostProcessing(processError(handledError), setError);
    });
    }
    -

    That's it, you successfully removed redux from project.

    +
    export function handlePromiseResult(
    promiseAction: Promise<any>,
    successMessage?: string,
    successAction?: () => void,
    processError?: (error: Error) => IErrorResult,
    setError?: (errorMessage: string) => void,
    ) {
    promiseAction
    .then(unwrapResult)
    .then(() => {
    successMessage && showToast({text: successMessage});
    successAction && successAction();
    })
    .catch((handledError: Error) => {
    processError && handleErrorPostProcessing(processError(handledError), setError);
    });
    }
    +

    That's it, you successfully removed redux from project.

    \ No newline at end of file diff --git a/docs/redux/core-idea/index.html b/docs/redux/core-idea/index.html index b4c65f9c..6c584094 100644 --- a/docs/redux/core-idea/index.html +++ b/docs/redux/core-idea/index.html @@ -1,20 +1,20 @@ - + - -Core idea | React Native Template Strong - - + +Core idea | React Native Template Strong + + -

    Core idea

    Content

    +

    Core idea

    Content

    The core idea is to keep components as "stupid" as possible and connecting only pages to redux.

    This approach makes components easier to test and reuse and not bounding them to redux logic.

    Only in some rare cases it might be needed to connect to redux directly from components but other times it's better to provide props.

    So we're basically connecting pages where we would like to use redux, like so:

    -
      registerNavigationComponent(Pages.splash, Splash, true);
    +
      registerNavigationComponent(Pages.splash, Splash, true);

    And on the page we will be executing our logic with redux what we need and getting data from it using useAppSelector.

    -

    And passing props down the tree if needed.

    +

    And passing props down the tree if needed.

    \ No newline at end of file diff --git a/docs/redux/hooks/index.html b/docs/redux/hooks/index.html index 684889b6..21961c4b 100644 --- a/docs/redux/hooks/index.html +++ b/docs/redux/hooks/index.html @@ -1,27 +1,27 @@ - + - -Hooks | React Native Template Strong - - + +Hooks | React Native Template Strong + + -

    Hooks

    Content

    +

    Hooks

    Content

    Some hooks which are present in react-redux have been modified to utilize local store configuration.

    These are the changes that were made:

    • useDispatch becomes useAppDispatch:
    -
    export const useAppDispatch = () => useDispatch<AppDispatch>();
    +
    export const useAppDispatch = () => useDispatch<AppDispatch>();
    • useSelector becomes useAppSelector:
    -
    export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
    +
    export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector;
    • createAsyncThunk becomes createAppAsyncThunk:
    -
    export const createAppAsyncThunk = createAsyncThunk.withTypes<{
    state: RootState;
    dispatch: AppDispatch;
    }>();
    +
    export const createAppAsyncThunk = createAsyncThunk.withTypes<{
    state: RootState;
    dispatch: AppDispatch;
    }>();
    \ No newline at end of file diff --git a/docs/redux/slice/index.html b/docs/redux/slice/index.html index b7398123..dc935a6c 100644 --- a/docs/redux/slice/index.html +++ b/docs/redux/slice/index.html @@ -1,32 +1,32 @@ - + - -Slice | React Native Template Strong - - + +Slice | React Native Template Strong + + -

    Slice

    Content

    +

    Slice

    Content

    Slices as well as AsyncThunks are stored together for better readability and remove need to have additional imports.

    Creation

    Slices are created the same way as described in documentation.

    E.g. systemSlice.ts:

    -
    export const {reducer: SystemReducer} = createSlice({
    name: "system",
    initialState: SystemInitialState,
    reducers: {
    setOnboarding: onboardingHandler,
    },
    extraReducers: (builder) => {
    builder.addCase(REHYDRATE, rehydrate);
    },
    });
    +
    export const {reducer: SystemReducer} = createSlice({
    name: "system",
    initialState: SystemInitialState,
    reducers: {
    setOnboarding: onboardingHandler,
    },
    extraReducers: (builder) => {
    builder.addCase(REHYDRATE, rehydrate);
    },
    });

    In extraReducers don't forget to add the REHYDRATE case to set properly store after rehydration:

    -
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }
    +
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }

    Adding reducer to RootReducer

    To see and use our reducer, first it has to be added into RootReducer, which is constructed using combineReducers and can be found in src/core/store/rootReducer.ts.

    E.g. of adding SystemReducer into RootReducer:

    -
    export const rootReducer = combineReducers({
    system: SystemReducer,
    });
    +
    export const rootReducer = combineReducers({
    system: SystemReducer,
    });

    Parameter should be the same as name which was used in createSlice

    Case handlers

    Case handlers as you could see in example of the rehydrate case should be handled as a separate function for better readability.

    Return newState

    Even though Immer is used under the hood of the toolkit, it's still better to return newState rather than change properties directly without returning anything.

    -
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }
    +
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }
    \ No newline at end of file diff --git a/docs/redux/state/index.html b/docs/redux/state/index.html index 4d180e72..910748a9 100644 --- a/docs/redux/state/index.html +++ b/docs/redux/state/index.html @@ -1,16 +1,16 @@ - + - -State | React Native Template Strong - - + +State | React Native Template Strong + + -

    State

    Content

    +

    State

    Content

    State is defined by an interface and a constant with its initial values in a separated file.

    E.g. systemState.ts:

    -
    export interface SystemState {
    isOnboardingVisited: boolean;
    }

    export const SystemInitialState: SystemState = {
    isOnboardingVisited: false,
    };
    +
    export interface SystemState {
    isOnboardingVisited: boolean;
    }

    export const SystemInitialState: SystemState = {
    isOnboardingVisited: false,
    };
    \ No newline at end of file diff --git a/docs/redux/store/index.html b/docs/redux/store/index.html index 471864f9..faafc036 100644 --- a/docs/redux/store/index.html +++ b/docs/redux/store/index.html @@ -1,26 +1,26 @@ - + - -Store | React Native Template Strong - - + +Store | React Native Template Strong + + -

    Store

    Content

    +

    Store

    Content

    The store is defined together with redux-persist (read next about it) as reducer and disables serializableCheck of middlewares:

    -
    const store = configureStore({
    reducer: persistedReducer,
    middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
    serializableCheck: false,
    }),
    });
    +
    const store = configureStore({
    reducer: persistedReducer,
    middleware: (getDefaultMiddleware) =>
    getDefaultMiddleware({
    serializableCheck: false,
    }),
    });

    Middlewares

    This template utilizes middlewares what come together with the toolkit with addition of redux-persist to have data stored for offline usage.

    Redux-persist

    Check it out how it works.

    It's defined in src/core/store.ts near the store:

    -
    const persistConfig: PersistConfig<RootState> = {
    key: 'root',
    storage: AsyncStorage,
    version: 1,
    timeout: 1000,
    };
    +
    const persistConfig: PersistConfig<RootState> = {
    key: 'root',
    storage: AsyncStorage,
    version: 1,
    timeout: 1000,
    };

    It uses AsyncStorage as storage, if you don't like it you can change it to your own likings.

    It creates persistor:

    -
    const persistor = persistStore(store);
    +
    const persistor = persistStore(store);

    Which is being used in PersistGate of reduxProvider wrapper:

    -
    export const reduxProvider = (Component: any) => (props: any) => {
    return (
    <Provider store={store}>
    <PersistGate loading={null} persistor={persistor}>
    <Component {...props} />
    </PersistGate>
    </Provider>
    );
    };
    +
    export const reduxProvider = (Component: any) => (props: any) => {
    return (
    <Provider store={store}>
    <PersistGate loading={null} persistor={persistor}>
    <Component {...props} />
    </PersistGate>
    </Provider>
    );
    };
    \ No newline at end of file diff --git a/docs/resources/fonts/index.html b/docs/resources/fonts/index.html index 07d404e7..2125fc0a 100644 --- a/docs/resources/fonts/index.html +++ b/docs/resources/fonts/index.html @@ -1,25 +1,25 @@ - + - -Fonts | React Native Template Strong - - + +Fonts | React Native Template Strong + + -

    Fonts

    Content

    +

    Fonts

    Content

    Currently, there is only a single font which is used, and it's system. It's a system font which is used on device.

    Accessing fonts

    To access a font in your code, you need to use fonts.ts:

    -
    export const Fonts = {
    system: "System",
    };
    +
    export const Fonts = {
    system: "System",
    };

    To use it you simply can create a style and use it like this:

    -
    const styles = StyleSheet.create({
    text: {
    fontFamily: Fonts.system
    } as TextStyle
    });
    +
    const styles = StyleSheet.create({
    text: {
    fontFamily: Fonts.system
    } as TextStyle
    });

    There's also a default combination of font styles which is stored in commonStyles:

    -
    export const CommonStyles = StyleSheet.create({
    normalText: {
    fontFamily: Fonts.system,
    fontSize: CommonSizes.font.medium,
    lineHeight: CommonSizes.lineHeight.medium,
    color: platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primaryText),
    } as TextStyle,
    });
    +
    export const CommonStyles = StyleSheet.create({
    normalText: {
    fontFamily: Fonts.system,
    fontSize: CommonSizes.font.medium,
    lineHeight: CommonSizes.lineHeight.medium,
    color: platformNativeColor(PlatformColorsIOS.label, PlatformColorsAndroid.primaryText),
    } as TextStyle,
    });

    To use it you can simply call it like this:

    -
          <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>
    +
          <Text style={CommonStyles.normalText} numberOfLines={1}>
    {localization.common.loading}
    </Text>

    Adding fonts

    To add your custom fonts you need to do the following:

    +
    \ No newline at end of file diff --git a/docs/resources/images/index.html b/docs/resources/images/index.html index af19874a..488e2f56 100644 --- a/docs/resources/images/index.html +++ b/docs/resources/images/index.html @@ -1,26 +1,26 @@ - + - -Images | React Native Template Strong - - + +Images | React Native Template Strong + + -

    Images

    Before adding images

    +

    Images

    Before adding images

    There are SF Symbols and Material Vector Icons included in this project, maybe will suit your needs better rather than adding more resources.

    Adding images

    To add images, simply put your images into /resources/images folder (you can add sub-folders inside there)

    And thanks to react-native-image-resource-generator, run the following script from your package.json:

    -
    npm run generate-image-resources
    +
    npm run generate-image-resources

    It will generate src/common/ImageResources.g.ts, and also will fix some of your unacceptable names.

    File content will look similar to this:

    -
    /* eslint-disable */
    /* tslint:disable */
    import {ImageURISource} from "react-native";

    /**
    * This file is auto-generated by react-native-image-resource-generator
    * !!! DO NOT EDIT !!!
    * For more information check the documentation:
    * https://github.com/svbutko/react-native-image-resource-generator
    */

    export class ImageResources {
    static readonly camera: ImageURISource = require("../../resources/images/camera.png");
    }
    +
    /* eslint-disable */
    /* tslint:disable */
    import {ImageURISource} from "react-native";

    /**
    * This file is auto-generated by react-native-image-resource-generator
    * !!! DO NOT EDIT !!!
    * For more information check the documentation:
    * https://github.com/svbutko/react-native-image-resource-generator
    */

    export class ImageResources {
    static readonly camera: ImageURISource = require("../../resources/images/camera.png");
    }

    Accessing images

    To access the images which you added, simply call them the next way:

    -
    <Image source={ImageResources.camera} style={styles.icon} />
    +
    <Image source={ImageResources.camera} style={styles.icon} />
    \ No newline at end of file diff --git a/docs/resources/sf-symbols/index.html b/docs/resources/sf-symbols/index.html index 59873c19..c1afaf67 100644 --- a/docs/resources/sf-symbols/index.html +++ b/docs/resources/sf-symbols/index.html @@ -1,14 +1,14 @@ - + - -SF Symbols | React Native Template Strong - - + +SF Symbols | React Native Template Strong + + -

    SF Symbols

    Content

    +

    SF Symbols

    Content

    The preferable way to show icons on iOS is to use SF Symbols.

    Browsing icons

    All icons are stored as enum with names in /resources/symbols/sfSymbols. It contains mostly all the 3 100 icons.

    @@ -16,18 +16,18 @@

    Browsing icon

    Using icons in navigation

    BottomTab

    react-native-navigation currently supports SF Symbols as icon in bottomTab:

    -
    Main.options = {
    bottomTab: {
    sfSymbol: SFSymbols["app.gift"],
    sfSelectedSymbol: SFSymbols["app.gift.fill"],
    },
    };
    +
    Main.options = {
    bottomTab: {
    sfSymbol: SFSymbols["app.gift"],
    sfSelectedSymbol: SFSymbols["app.gift.fill"],
    },
    };

    It also applies same effect properties as Icon ones, like selectedIconColor or iconColor, see more properties here.

    BackButton

    SF Symbol can also be applied directly as topBar's backButton like so:

    -
    Main.options = {
    topBar: {
    backButton: {
    sfSymbol: SFSymbols["arrow.backward.circle"],
    },
    },
    };
    +
    Main.options = {
    topBar: {
    backButton: {
    sfSymbol: SFSymbols["arrow.backward.circle"],
    },
    },
    };

    Using icons as components

    Usage of SF Symbols as components made possible by react-native-sfsymbols.

    You can use it directly like so:

    -
    <SFSymbol 
    name={SFSymbol["thermometer.sun.fill"]}
    size={16}
    multicolor={false}
    />
    +
    <SFSymbol 
    name={SFSymbol["thermometer.sun.fill"]}
    size={16}
    multicolor={false}
    />

    But it will be shown only on iOS, which is not desired.

    To work with both iOS and Android, there's IconPlatform component, which shows SF Symbols on iOS and Material Icons on Android, it works next way:

    -
    <IconPlatform 
    iosName={SFSymbols["thermometer.sun.fill"]}
    androidName={"star-rate"}
    size={32}
    resizeMode={"contain"}
    style={styles.clauseIcon}
    />
    +
    <IconPlatform 
    iosName={SFSymbols["thermometer.sun.fill"]}
    androidName={"star-rate"}
    size={32}
    resizeMode={"contain"}
    style={styles.clauseIcon}
    />
    \ No newline at end of file diff --git a/docs/resources/vector-icons/index.html b/docs/resources/vector-icons/index.html index 67f8d6e0..66a42190 100644 --- a/docs/resources/vector-icons/index.html +++ b/docs/resources/vector-icons/index.html @@ -1,14 +1,14 @@ - + - -Vector icons | React Native Template Strong - - + +Vector icons | React Native Template Strong + + -

    Vector icons

    Content

    +

    Vector icons

    Content

    The preferable way to show icons on Android is to use Material Icons.

    Usage of icons in the application is made possible by react-native-vector-icons

    Browsing icons

    @@ -17,14 +17,14 @@

    Browsing icon

    Using icons in navigation

    To access icons in navigation you need to get them as PNG image/source asset.

    It can be achieved next way:

    -
    import Icon from "react-native-vector-icons/MaterialIcons";

    Main.options = {
    bottomTab: {
    icon: Icon.getImageSourceSync("person", 20),
    },
    };
    +
    import Icon from "react-native-vector-icons/MaterialIcons";

    Main.options = {
    bottomTab: {
    icon: Icon.getImageSourceSync("person", 20),
    },
    };

    To learn more check this descriptions.

    Using icons as components

    You can use it directly like so:

    -
    import Icon from "react-native-vector-icons/MaterialIcons";

    <Icon name={"person"} size={30} />
    +
    import Icon from "react-native-vector-icons/MaterialIcons";

    <Icon name={"person"} size={30} />

    But it will be shown only on Android, which is not desired.

    To work with both iOS and Android, there's IconPlatform component, which shows SF Symbols on iOS and Material Icons on Android, it works next way:

    -
    <IconPlatform 
    iosName={SFSymbols["thermometer.sun.fill"]}
    androidName={"star-rate"}
    size={32}
    resizeMode={"contain"}
    style={styles.clauseIcon}
    />
    +
    <IconPlatform 
    iosName={SFSymbols["thermometer.sun.fill"]}
    androidName={"star-rate"}
    size={32}
    resizeMode={"contain"}
    style={styles.clauseIcon}
    />
    \ No newline at end of file diff --git a/docs/structure/module/index.html b/docs/structure/module/index.html index 652089f7..492393e1 100644 --- a/docs/structure/module/index.html +++ b/docs/structure/module/index.html @@ -1,14 +1,14 @@ - + - -Module | React Native Template Strong - - + +Module | React Native Template Strong + + -

    Module

    Content

    +

    Module

    Content

    Module structure contains:

    • Screen or screens
    • @@ -17,6 +17,6 @@
    • Components used only with this module

    Example:

    -
    src



    └───modules
    │ │
    │ │
    │ │
    │ └───companyOffers
    │ │ CompanyOffers.tsx
    │ │ companyOffersSlice.ts
    │ │ companyOffersState.ts
    │ └───components
    │ │ CompanyOfferItem.tsx
    │ │ CompanyOffersHeader.tsx
    │ │
    │ └───
    +
    src



    └───modules
    │ │
    │ │
    │ │
    │ └───companyOffers
    │ │ CompanyOffers.tsx
    │ │ companyOffersSlice.ts
    │ │ companyOffersState.ts
    │ └───components
    │ │ CompanyOfferItem.tsx
    │ │ CompanyOffersHeader.tsx
    │ │
    │ └───
    \ No newline at end of file diff --git a/docs/structure/project/index.html b/docs/structure/project/index.html index 4d44e5a0..3510a514 100644 --- a/docs/structure/project/index.html +++ b/docs/structure/project/index.html @@ -1,30 +1,30 @@ - + - -Project | React Native Template Strong - - + +Project | React Native Template Strong + + -

    Project

    Content

    +

    Project

    Content

    Here you will see a brief description of each folder, to learn more about what a specific folder does continue reading documentation.

    • mocks - module mocks for tests
    • tests - jest tests
    • e2e - detox tests
    • patches - patches made with patch-package
    • -
    • resources +
    • resources
      • images - images and icons
      • fonts - fonts .ttf files
      • symbols - SF symbols which can be used on iOS
    • -
    • src +
    • src
        -
      • common +
      • common
        • components - common components (e.g. PrimaryButton.tsx)
        • helpers - different common helpers (e.g. platformNativeColor)
        • @@ -35,7 +35,7 @@
        • validations - validations, max and min length constants (e.g. phoneValidations)
      • -
      • core +
      • core
        • api - API related requests, DTOs
        • store - redux store, rootReducer, systemSlice
        • @@ -43,7 +43,7 @@
      • modules
      • -
      • navigation - pages, roots, tabs, default navigation options +
      • navigation - pages, roots, tabs, default navigation options
        • helpers - navigation actions, different overlay and modals helpers (e.g. showDatePicker)
        @@ -52,6 +52,6 @@
    • storybook - contains storybook stories
    • -
    +
    \ No newline at end of file diff --git a/docs/styles/common-sizes/index.html b/docs/styles/common-sizes/index.html index bbf8cd7b..c8f3a0e7 100644 --- a/docs/styles/common-sizes/index.html +++ b/docs/styles/common-sizes/index.html @@ -1,19 +1,19 @@ - + - -Common sizes | React Native Template Strong - - + +Common sizes | React Native Template Strong + + -

    Common sizes

    Content

    +

    Common sizes

    Content

    There are many margins, paddings, font sizes, line heights and other parameters that hold some constant number.

    CommonSizes was created to simplify and unify and fix some misleading or wrong constant numbers.

    They are located at /src/core/theme/commonSizes.ts.

    -
    export const CommonSizes = {
    font: {
    extraSmall: 11,
    extraSmallPlus: 12,
    small: 13,
    smallPlus: 15,
    medium: 17,
    mediumPlus: 20,
    large: 22,
    largePlus: 28,
    extraLarge: 34,
    extraLargePlus: 44,
    } as Readonly<ISize>,
    letterSpacing: {
    extraSmall: 0.07,
    extraSmallPlus: 0,
    small: -0.08,
    smallPlus: -0.24,
    medium: -0.41,
    mediumPlus: 0.38,
    large: 0.35,
    largePlus: 0.36,
    extraLarge: 0.37,
    extraLargePlus: 0.37,
    } as Readonly<ISize>,
    lineHeight: {
    extraSmall: 13,
    extraSmallPlus: 16,
    small: 18,
    smallPlus: 20,
    medium: 22,
    mediumPlus: 25,
    large: 28,
    largePlus: 34,
    extraLarge: 41,
    extraLargePlus: 52,
    } as Readonly<ISize>,
    spacing: {
    extraSmall: 8,
    extraSmallPlus: 10,
    small: 12,
    smallPlus: 13,
    medium: 16,
    mediumPlus: 24,
    large: 32,
    largePlus: 40,
    extraLarge: 48,
    extraLargePlus: 56,
    } as Readonly<ISize>,
    borderRadius: {
    extraSmall: 4,
    extraSmallPlus: 6,
    small: 8,
    smallPlus: 10,
    medium: 12,
    mediumPlus: 13,
    large: 14,
    largePlus: 16,
    extraLarge: 18,
    extraLargePlus: 20,
    } as Readonly<ISize>,
    };
    +
    export const CommonSizes = {
    font: {
    extraSmall: 11,
    extraSmallPlus: 12,
    small: 13,
    smallPlus: 15,
    medium: 17,
    mediumPlus: 20,
    large: 22,
    largePlus: 28,
    extraLarge: 34,
    extraLargePlus: 44,
    } as Readonly<ISize>,
    letterSpacing: {
    extraSmall: 0.07,
    extraSmallPlus: 0,
    small: -0.08,
    smallPlus: -0.24,
    medium: -0.41,
    mediumPlus: 0.38,
    large: 0.35,
    largePlus: 0.36,
    extraLarge: 0.37,
    extraLargePlus: 0.37,
    } as Readonly<ISize>,
    lineHeight: {
    extraSmall: 13,
    extraSmallPlus: 16,
    small: 18,
    smallPlus: 20,
    medium: 22,
    mediumPlus: 25,
    large: 28,
    largePlus: 34,
    extraLarge: 41,
    extraLargePlus: 52,
    } as Readonly<ISize>,
    spacing: {
    extraSmall: 8,
    extraSmallPlus: 10,
    small: 12,
    smallPlus: 13,
    medium: 16,
    mediumPlus: 24,
    large: 32,
    largePlus: 40,
    extraLarge: 48,
    extraLargePlus: 56,
    } as Readonly<ISize>,
    borderRadius: {
    extraSmall: 4,
    extraSmallPlus: 6,
    small: 8,
    smallPlus: 10,
    medium: 12,
    mediumPlus: 13,
    large: 14,
    largePlus: 16,
    extraLarge: 18,
    extraLargePlus: 20,
    } as Readonly<ISize>,
    };

    You can use, change, add or remove these constants according to your design.

    -

    Try to use them as much as possible.

    +

    Try to use them as much as possible.

    \ No newline at end of file diff --git a/docs/styles/common-styles/index.html b/docs/styles/common-styles/index.html index 4cc138a4..4dd0b167 100644 --- a/docs/styles/common-styles/index.html +++ b/docs/styles/common-styles/index.html @@ -1,18 +1,18 @@ - + - -Common styles | React Native Template Strong - - + +Common styles | React Native Template Strong + + -

    Common styles

    Content

    +

    Common styles

    Content

    There are some styles that you have to create, but they look the same, to save some time and decrease the amount of unwanted code, CommonStyles were created to solve this problem.

    They are located at /src/core/theme/commonStyles.ts.

    They hold mostly used styles like flex: 1, use them like you use any other style.

    -

    And add your own styles which are reused around your project a lot.

    +

    And add your own styles which are reused around your project a lot.

    \ No newline at end of file diff --git a/docs/styles/component-styles/index.html b/docs/styles/component-styles/index.html index 87e79c0a..b19ac799 100644 --- a/docs/styles/component-styles/index.html +++ b/docs/styles/component-styles/index.html @@ -1,24 +1,24 @@ - + - -Component styles | React Native Template Strong - - + +Component styles | React Native Template Strong + + -

    Component styles

    Content

    +

    Component styles

    Content

    Component styles are stored withing its own file at the very bottom of it

    The conventional method of creating styles for components is by using StyleSheet.create.

    Creating

    -
    const styles = StyleSheet.create({
    container: {
    padding: CommonSizes.spacing.medium,
    } as ViewStyle,
    title: {
    fontWeight: "600",
    textAlign: "center",
    marginBottom: CommonSizes.spacing.extraSmall,
    } as TextStyle,
    description: {
    textAlign: "center",
    } as TextStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    padding: CommonSizes.spacing.medium,
    } as ViewStyle,
    title: {
    fontWeight: "600",
    textAlign: "center",
    marginBottom: CommonSizes.spacing.extraSmall,
    } as TextStyle,
    description: {
    textAlign: "center",
    } as TextStyle,
    });

    Every style has to be assigned to its proper interface (ViewStyle, TextStyle, ImageStyle etc.) to have proper types and validations by TypeScript.

    Merging

    To merge styles simply use spread operator like so:

    -
    const styles = StyleSheet.create({
    container: {
    ...CommonStyles.flexCenter,
    padding: CommonSizes.spacing.medium,
    } as ViewStyle,
    title: {
    ...CommonStyles.normalText,
    fontWeight: "600",
    textAlign: "center",
    marginBottom: CommonSizes.spacing.extraSmall,
    } as TextStyle,
    description: {
    ...CommonStyles.normalText,
    textAlign: "center",
    } as TextStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    ...CommonStyles.flexCenter,
    padding: CommonSizes.spacing.medium,
    } as ViewStyle,
    title: {
    ...CommonStyles.normalText,
    fontWeight: "600",
    textAlign: "center",
    marginBottom: CommonSizes.spacing.extraSmall,
    } as TextStyle,
    description: {
    ...CommonStyles.normalText,
    textAlign: "center",
    } as TextStyle,
    });

    Usage

    Use the styles constant and appropriate parameter like so:

    -
        <View style={styles.container}>
    <Text style={styles.title}>{title}</Text>
    <Text style={styles.description}>{description}</Text>
    </View>
    +
        <View style={styles.container}>
    <Text style={styles.title}>{title}</Text>
    <Text style={styles.description}>{description}</Text>
    </View>
    \ No newline at end of file diff --git a/docs/testing/detox/index.html b/docs/testing/detox/index.html index 00b43fdb..d95a1ec9 100644 --- a/docs/testing/detox/index.html +++ b/docs/testing/detox/index.html @@ -1,14 +1,14 @@ - + - -Detox | React Native Template Strong - - + +Detox | React Native Template Strong + + -

    Detox

    Content

    +

    Detox

    Content

    Detox tests are e2e (end-to-end) tests which are testing your mobile app while running in a real device/simulator, interacting with it just like a real user.

    To learn more about Detox, check this page.

    All the tests are located in e2e.

    @@ -16,7 +16,7 @@

    Adding tests

    See how you can add tests here.

    There's already a simple test to check how well the initial running process works:

    -
    import {expect} from "detox";

    describe("Startup", () => {
    beforeAll(async () => {
    await device.launchApp();
    });

    it("Is first run", async () => {
    await expect(element(by.id("OnboardingButtonID"))).toBeVisible();
    await element(by.id("OnboardingButtonID")).tap();
    });

    it("Should show tabs", async () => {
    await expect(element(by.id("MainPageID"))).toExist();
    });
    });

    +
    import {expect} from "detox";

    describe("Startup", () => {
    beforeAll(async () => {
    await device.launchApp();
    });

    it("Is first run", async () => {
    await expect(element(by.id("OnboardingButtonID"))).toBeVisible();
    await element(by.id("OnboardingButtonID")).tap();
    });

    it("Should show tabs", async () => {
    await expect(element(by.id("MainPageID"))).toExist();
    });
    });

    Running tests

    You can run your tests in debug and release environments.

    Before running them you have to build them.

    @@ -43,8 +43,8 @@

    AndroidChanging devices

    Initially the config is using emulators to run the tests on both iOS and Android:

    -
    {
    "devices": {
    "simulator": {
    "type": "ios.simulator",
    "device": {
    "type": "iPhone 12 Pro"
    }
    },
    "emulator": {
    "type": "android.emulator",
    "device": {
    "avdName": "Pixel_5_API_30"
    }
    }
    },
    "configurations": {
    "ios.emu.debug": {
    "device": "simulator",
    "app": "ios.debug"
    },
    "ios.emu.release": {
    "device": "simulator",
    "app": "ios.release"
    },
    "android.emu.debug": {
    "device": "emulator",
    "app": "android.debug"
    },
    "android.emu.release": {
    "device": "emulator",
    "app": "android.release"
    }
    }
    }
    +
    {
    "devices": {
    "simulator": {
    "type": "ios.simulator",
    "device": {
    "type": "iPhone 12 Pro"
    }
    },
    "emulator": {
    "type": "android.emulator",
    "device": {
    "avdName": "Pixel_5_API_30"
    }
    }
    },
    "configurations": {
    "ios.emu.debug": {
    "device": "simulator",
    "app": "ios.debug"
    },
    "ios.emu.release": {
    "device": "simulator",
    "app": "ios.release"
    },
    "android.emu.debug": {
    "device": "emulator",
    "app": "android.debug"
    },
    "android.emu.release": {
    "device": "emulator",
    "app": "android.release"
    }
    }
    }

    You can change it by adding your own emulators or real devices.

    -

    Check this page to see how it can be done.

    +

    Check this page to see how it can be done.

    \ No newline at end of file diff --git a/docs/testing/jest/index.html b/docs/testing/jest/index.html index b5ec3e9d..a25a9da6 100644 --- a/docs/testing/jest/index.html +++ b/docs/testing/jest/index.html @@ -1,14 +1,14 @@ - + - -Jest | React Native Template Strong - - + +Jest | React Native Template Strong + + -

    Jest

    Content

    +

    Jest

    Content

    Jest tests are simple and target mostly API communication and methods and functions stability and correctness of execution.

    To learn more about Jest, check this page.

    All the tests are located in __tests__.

    @@ -16,9 +16,9 @@

    Adding tests

    To add a test, create a file by following previously mentioned template.

    Describe your tests like so (I'll use localization as example):

    -
    describe("Localization", () => {

    });
    +
    describe("Localization", () => {

    });

    And add tests itself:

    -
      test("Current language: EN", () => {
    expect(getLanguage()).toBe("en");
    });

    test("Current interface language: EN", () => {
    expect(getInterfaceLanguage()).toBe("en");
    });

    test("Set empty language", () => {
    setLanguage();
    expect(getLanguage()).toBe("en");
    });

    test("Set language: EN", () => {
    setLanguage(Languages.en);
    expect(getLanguage()).toBe("en");
    });
    +
      test("Current language: EN", () => {
    expect(getLanguage()).toBe("en");
    });

    test("Current interface language: EN", () => {
    expect(getInterfaceLanguage()).toBe("en");
    });

    test("Set empty language", () => {
    setLanguage();
    expect(getLanguage()).toBe("en");
    });

    test("Set language: EN", () => {
    setLanguage(Languages.en);
    expect(getLanguage()).toBe("en");
    });

    Running tests

    You can run individual tests while debugging them in your IDE or if you want to run every single described test you can simply run: npm run tests. Which will show you PASSSED and FAILED tests.

    @@ -26,13 +26,13 @@

    MocksSome dependencies or environments require you to be mocked since tests are not running in React Native environment but NodeJS.

    For these cases there is a folder called __mocks__.

    There's already a simple mock of Localization:

    -
    import LocalizedStringsCore from "react-localization";

    function getInterfaceLanguage() {
    return "en";
    }

    export default class LocalizedStrings extends LocalizedStringsCore {
    constructor(props) {
    super(props, getInterfaceLanguage);
    }
    }
    +
    import LocalizedStringsCore from "react-localization";

    function getInterfaceLanguage() {
    return "en";
    }

    export default class LocalizedStrings extends LocalizedStringsCore {
    constructor(props) {
    super(props, getInterfaceLanguage);
    }
    }

    It defines that default and used language will be English without trying to get it from the system.

    Then this mock is "imported" or better to say "mocked" in __tests__/localization.test.ts:

    -
    jest.mock("react-native-localization");
    +
    jest.mock("react-native-localization");

    Coverage

    To check how well you covered files with test you can see it using coverage.

    Run npm run tests:coverage.

    -

    The coverege folder will appear which will give you HTML pages with detailed information, also there will be a print into terminal after the command will be executed.

    +

    The coverege folder will appear which will give you HTML pages with detailed information, also there will be a print into terminal after the command will be executed.

    \ No newline at end of file diff --git a/docs/testing/storybook/index.html b/docs/testing/storybook/index.html index 6e6ff6aa..547f7b12 100644 --- a/docs/testing/storybook/index.html +++ b/docs/testing/storybook/index.html @@ -1,14 +1,14 @@ - + - -Storybook | React Native Template Strong - - + +Storybook | React Native Template Strong + + -

    Storybook

    Content

    +

    Storybook

    Content

    Storybook is a powerful frontend workshop environment tool that allows teams to design, build, and organize UI components (and even full screens!) without getting tripped up over business logic and plumbing.

    To learn more about Storybook, check this page.

    All the stories are located in storybook.

    @@ -20,17 +20,17 @@

    Adding storie

    If it's a component then you can add it to Components.stories.tsx by following the same structure defined there.

    If you'd like to create a separate stories, then create a file in the storybook/stories folder with proper naming.

    Create a stories' module (as example I will use Components:

    -
    const ComponentsStories = storiesOf("Components", module);
    +
    const ComponentsStories = storiesOf("Components", module);

    Add your stories into it:

    -
    ComponentsStories.add("PrimaryButton", () => <PrimaryButtonStories />);

    ComponentsStories.add("PrimaryTextInput", () => <PrimaryTextInputStories />);

    ComponentsStories.add("RadioButton", () => <RadioButtonStories />);
    +
    ComponentsStories.add("PrimaryButton", () => <PrimaryButtonStories />);

    ComponentsStories.add("PrimaryTextInput", () => <PrimaryTextInputStories />);

    ComponentsStories.add("RadioButton", () => <RadioButtonStories />);

    And don't forget to require it in storybook/stories.ts:

    -
    if (__DEV__) {
    require("./stories/Theme.stories");
    require("./stories/Formatter.stories");
    require("./stories/Resources.stories");
    require("./stories/Components.stories");
    require("./stories/ModalsOverlays.stories");
    require("./stories/Alerts.stories");
    }

    export {};
    +
    if (__DEV__) {
    require("./stories/Theme.stories");
    require("./stories/Formatter.stories");
    require("./stories/Resources.stories");
    require("./stories/Components.stories");
    require("./stories/ModalsOverlays.stories");
    require("./stories/Alerts.stories");
    }

    export {};

    Plugins

    There two plugins installed at this moment in this template:

    • @storybook/addon-ondevice-actions - mock onPress calls with actions that will log information in the actions tab
    • @storybook/addon-ondevice-knobs - adjust your components props in realtime
    -

    You can check this page about plugins usage.

    +

    You can check this page about plugins usage.

    \ No newline at end of file diff --git a/docs/themes/colors/index.html b/docs/themes/colors/index.html index e6335528..bbad8007 100644 --- a/docs/themes/colors/index.html +++ b/docs/themes/colors/index.html @@ -1,32 +1,32 @@ - + - -Colors | React Native Template Strong - - + +Colors | React Native Template Strong + + -

    Colors

    Content

    +

    Colors

    Content

    All your colors are stored in /src/core/theme/colors.ts as a simple enum:

    -
    export enum Colors {
    black = "#000000",
    white = "#FFFFFF",
    gray = "#F1F1F1",
    darkGray = "#262626",
    blue = "#0A60FF",
    green = "#4DAD4A",
    red = "#CE3C3E",
    transparent = "transparent",
    }
    +
    export enum Colors {
    black = "#000000",
    white = "#FFFFFF",
    gray = "#F1F1F1",
    darkGray = "#262626",
    blue = "#0A60FF",
    green = "#4DAD4A",
    red = "#CE3C3E",
    transparent = "transparent",
    }

    You can add here simple colors shared by both platforms and which will look the same in dark and light themes of your application.

    You can use this colors next way:

    1. In styles:
    -
    const styles = StyleSheet.create({
    container: {
    backgroundColor: Colors.transparent,
    } as ViewStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    backgroundColor: Colors.transparent,
    } as ViewStyle,
    });
    1. In navigation:
    -
        topBar: {
    background: {
    color: Colors.black,
    },
    title: {
    color: Colors.white,
    },
    }
    +
        topBar: {
    background: {
    color: Colors.black,
    },
    title: {
    color: Colors.white,
    },
    }

    You can also assign different colors depending on platform using platformLocalColor:

    -
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformLocalColor(Colors.black, Colors.red),
    } as ViewStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformLocalColor(Colors.black, Colors.red),
    } as ViewStyle,
    });

    In navigation, you can also set this colors to dark and light themes:

    -
        topBar: {
    background: {
    color: {
    light: Colors.white,
    dark: Colors.black,
    },
    },
    title: {
    color: {
    light: Colors.black,
    dark: Colors.white,
    },
    },
    }
    +
        topBar: {
    background: {
    color: {
    light: Colors.white,
    dark: Colors.black,
    },
    },
    title: {
    color: {
    light: Colors.black,
    dark: Colors.white,
    },
    },
    }

    But it's not preferred, continue reading next to understand why

    You probably noticed that there are two more enums in colors.ts, these are native colors, they work with dark and light themes.

    -

    Follow to the next page to see how to use and add them.

    +

    Follow to the next page to see how to use and add them.

    \ No newline at end of file diff --git a/docs/themes/native-colors/index.html b/docs/themes/native-colors/index.html index 9f1d11a9..ef68d343 100644 --- a/docs/themes/native-colors/index.html +++ b/docs/themes/native-colors/index.html @@ -1,14 +1,14 @@ - + - -Native colors | React Native Template Strong - - + +Native colors | React Native Template Strong + + -

    Native colors

    Content

    +
    +
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    <item name="primary" type="color">#61DAFB</item>
    <item name="primaryDark" type="color">#2596BE</item>
    <item name="primaryLight" type="color">#B3E5FC</item>
    <item name="background" type="color">#FFFFFF</item>
    <item name="primaryText" type="color">#212121</item>
    <item name="primaryTextOpacity" type="color">#CC212121</item>
    <item name="secondaryText" type="color">#757575</item>
    <item name="onPrimaryText" type="color">#FFFFFF</item>
    <item name="onPrimaryTextOpacity" type="color">#CCFFFFFF</item>
    <item name="divider" type="color">#BDBDBD</item>
    <item name="navigation" type="color">#61DAFB</item>
    <item name="statusbar" type="color">#0288D1</item>
    </resources>

    For both themes this colors share the same set of items (names) but can have different color values.

    In React Native they are represented as PlatformColorsAndroid enum in src/core/theme/colors.ts:

    -
    export enum PlatformColorsAndroid {
    primary = "@color/primary",
    primaryDark = "@color/primaryDark",
    primaryLight = "@color/primaryLight",
    background = "@color/background",
    primaryText = "@color/primaryText",
    primaryTextOpacity = "@color/primaryTextOpacity",
    secondaryText = "@color/secondaryText",
    onPrimaryText = "@color/onPrimaryText",
    onPrimaryTextOpacity = "@color/onPrimaryTextOpacity",
    divider = "@color/divider",
    navigation = "@color/navigation",
    statusbar = "@color/statusbar",
    }
    +
    export enum PlatformColorsAndroid {
    primary = "@color/primary",
    primaryDark = "@color/primaryDark",
    primaryLight = "@color/primaryLight",
    background = "@color/background",
    primaryText = "@color/primaryText",
    primaryTextOpacity = "@color/primaryTextOpacity",
    secondaryText = "@color/secondaryText",
    onPrimaryText = "@color/onPrimaryText",
    onPrimaryTextOpacity = "@color/onPrimaryTextOpacity",
    divider = "@color/divider",
    navigation = "@color/navigation",
    statusbar = "@color/statusbar",
    }

    Usage

    It's not enough to directly use this colors sam way as ones from Colors enum.

    You can use them in styles in multiple ways:

    1. Using PlatformColor in mix with Platform.select
    -
    const styles = StyleSheet.create({
    container: {
    ...Platform.select({
    android: {
    backgroundColor: PlatformColor(PlatformColorsAndroid.background),
    } as ViewStyle,
    }),
    } as ViewStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    ...Platform.select({
    android: {
    backgroundColor: PlatformColor(PlatformColorsAndroid.background),
    } as ViewStyle,
    }),
    } as ViewStyle,
    });
    1. Using platformNativeColor or platformMixedColor:
    -
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    } as ViewStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    } as ViewStyle,
    });
    1. To assign native colors in navigation, assign them directly, not separately:
    -
    Incorrect
        topBar: {
    background: {
    color: {
    light: PlatformColor(PlatformColorsAndroid.navigation),
    darK: PlatformColor(PlatformColorsAndroid.navigation),
    },
    },
    }
    -
    Correct
        topBar: {
    background: {
    color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),
    },
    }
    +
    Incorrect
        topBar: {
    background: {
    color: {
    light: PlatformColor(PlatformColorsAndroid.navigation),
    darK: PlatformColor(PlatformColorsAndroid.navigation),
    },
    },
    }
    +
    Correct
        topBar: {
    background: {
    color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),
    },
    }

    Add colors

    To add more native colors:

      @@ -57,7 +57,7 @@

      Nativ
    • /android/app/src/main/res/values-night/styles.xml - for dark theme

    And look like this:

    -
    <?xml version="1.0" encoding="utf-8"?>

    <resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:windowBackground">@color/background</item>
    <item name="android:statusBarColor">@color/statusbar</item>
    <item name="colorAccent">@color/primary</item>
    </style>

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_background</item>
    <item name="android:statusBarColor">@color/statusbar</item>
    </style>
    </resources>
    +
    <?xml version="1.0" encoding="utf-8"?>

    <resources>
    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <!-- Customize your theme here. -->
    <item name="android:windowBackground">@color/background</item>
    <item name="android:statusBarColor">@color/statusbar</item>
    <item name="colorAccent">@color/primary</item>
    </style>

    <style name="SplashTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@drawable/splash_background</item>
    <item name="android:statusBarColor">@color/statusbar</item>
    </style>
    </resources>

    Our app's theme is defined within style AppTheme.

    You can see that there's a colorAccent assigned to our @color/primary, this change can be seen in dialogs, alerts and other components.

    Same goes with android:statusBarColor which sets the color of status bar.

    @@ -71,16 +71,16 @@

    Usage
    const styles = StyleSheet.create({
    container: {
    ...Platform.select({
    iOS: {
    backgroundColor: PlatformColor(PlatformColorsIOS.systemBackground),
    } as ViewStyle,
    }),
    } as ViewStyle,
    });

    +
    const styles = StyleSheet.create({
    container: {
    ...Platform.select({
    iOS: {
    backgroundColor: PlatformColor(PlatformColorsIOS.systemBackground),
    } as ViewStyle,
    }),
    } as ViewStyle,
    });
    1. Using platformNativeColor or platformMixedColor:
    -
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    } as ViewStyle,
    });
    +
    const styles = StyleSheet.create({
    container: {
    backgroundColor: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.background),
    } as ViewStyle,
    });
    1. To assign native colors in navigation, assign them directly, not separately:
    -
    Incorrect
        topBar: {
    background: {
    color: {
    light: PlatformColor(PlatformColorsIOS.systemBackground),
    darK: PlatformColor(PlatformColorsIOS.systemBackground),
    },
    },
    }
    -
    Correct
        topBar: {
    background: {
    color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),
    },
    }
    +
    Incorrect
        topBar: {
    background: {
    color: {
    light: PlatformColor(PlatformColorsIOS.systemBackground),
    darK: PlatformColor(PlatformColorsIOS.systemBackground),
    },
    },
    }
    +
    Correct
        topBar: {
    background: {
    color: platformNativeColor(PlatformColorsIOS.systemBackground, PlatformColorsAndroid.navigation),
    },
    }

    Add colors

    At this moment you can't add your colors natively, but you can define your own colors in a separate enum and use DynamicColorIOS.

    But it would be better to stick to built-in colors to provide better user experience for users.

    @@ -89,6 +89,6 @@

    Nat
    • Open .xcworkspace file
    • Navigate to Images.xcassets where you'll see your app and splash icons and AccentColor which you can change
    • -

    + \ No newline at end of file diff --git a/docs/types/index.html b/docs/types/index.html index e68ff003..59637d15 100644 --- a/docs/types/index.html +++ b/docs/types/index.html @@ -1,14 +1,14 @@ - + - -Types | React Native Template Strong - - + +Types | React Native Template Strong + + -

    Types

    Own types, interfaces and enums

    +

    Types

    Own types, interfaces and enums

    There are many types, interfaces and enums which are being used in this template, they are all included in types/index.ts.

    If you have some interface, type or enum which you are going to use in different places and it's sort of global then add it in this file.

    To briefly describe what each currently existed interface/type/enum does:

    @@ -37,6 +37,6 @@

    Dependency
  • Add needed types and interfaces
  • Create proper (default or not) exports
  • -

    TypeScript uses types folder to check for additional types so after making your changes they will be seen in action immediately.

    +

    TypeScript uses types folder to check for additional types so after making your changes they will be seen in action immediately.

    \ No newline at end of file diff --git a/docs/utils/list-handlers/index.html b/docs/utils/list-handlers/index.html index 332f2546..edd04ac7 100644 --- a/docs/utils/list-handlers/index.html +++ b/docs/utils/list-handlers/index.html @@ -1,20 +1,20 @@ - + - -listHandlers | React Native Template Strong - - + +listHandlers | React Native Template Strong + + -

    listHandlers

    commonListFulfilledHandler

    +

    listHandlers

    commonListFulfilledHandler

    Used primarily in redux slices' fulfilled functions to merge or replace the current list with new data based on LoadState.

    First parameter is LoadState which comes as meta argument.

    Second parameter is array of new items which comes as payload of API call or your changes.

    Third parameter is your current state data array.

    As a result, it will produce merged or new array of data, will set error to null and will update LoadState based on the payload array size.

    Example of usage:

    -
    function ordersFulfilledHandler(state: OrdersState, payloadAction: OrdersGetPayloadAction) {
    const {data, error, loadState} = commonListFulfilledHandler(payloadAction.meta.arg, payloadAction.payload.orders, state.data);

    return newState(state, {loadState, error, data});
    }
    +
    function ordersFulfilledHandler(state: OrdersState, payloadAction: OrdersGetPayloadAction) {
    const {data, error, loadState} = commonListFulfilledHandler(payloadAction.meta.arg, payloadAction.payload.orders, state.data);

    return newState(state, {loadState, error, data});
    }
    \ No newline at end of file diff --git a/docs/utils/new-state/index.html b/docs/utils/new-state/index.html index 4a2b2dc8..f08ed69c 100644 --- a/docs/utils/new-state/index.html +++ b/docs/utils/new-state/index.html @@ -1,17 +1,17 @@ - + - -newState | React Native Template Strong - - + +newState | React Native Template Strong + + -

    newState

    Used primarily for merging redux state objects.

    +

    newState

    Used primarily for merging redux state objects.

    First parameter is your current or initial state, and second is your changes to this state.

    Result will be new merged object.

    Example usage from systemSlice.ts:

    -
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }

    function onboardingHandler(state: SystemState) {
    return newState(state, {isOnboardingVisited: true});
    }
    +
    function rehydrate(state: SystemState, rehydrateParams: RehydrateAppAction) {
    return newState(rehydrateParams.payload?.system || state, {isOnboardingVisited: rehydrateParams.payload != null});
    }

    function onboardingHandler(state: SystemState) {
    return newState(state, {isOnboardingVisited: true});
    }
    \ No newline at end of file diff --git a/docs/utils/serialize-query-params/index.html b/docs/utils/serialize-query-params/index.html index ee56a31b..7579edf6 100644 --- a/docs/utils/serialize-query-params/index.html +++ b/docs/utils/serialize-query-params/index.html @@ -1,13 +1,13 @@ - + - -serializeQueryParams | React Native Template Strong - - + +serializeQueryParams | React Native Template Strong + + - + \ No newline at end of file diff --git a/docs/utils/url-openers/index.html b/docs/utils/url-openers/index.html index 192c1e80..07eb6ea9 100644 --- a/docs/utils/url-openers/index.html +++ b/docs/utils/url-openers/index.html @@ -1,34 +1,34 @@ - + - -URL openers | React Native Template Strong - - + +URL openers | React Native Template Strong + + -

    URL openers

    PhoneUrl

    +

    URL openers

    PhoneUrl

    Opens the system phone application with provided phone number.

    If the phone won't be provided it will return null.

    Example usage:

    -
    await new PhoneUrl("37322233444").open();
    +
    await new PhoneUrl("37322233444").open();

    MapUrl

    Opens a map application or browser with latitude, longitude and address.

    Example usage:

    -
    await new MapUrl(60.59735, 27.63646, "some address").open();
    +
    await new MapUrl(60.59735, 27.63646, "some address").open();

    EmailUrl

    Opens email application with a new email to provided address.

    Example usage:

    -
    await new EmailUrl("test@mail.com").open();
    +
    await new EmailUrl("test@mail.com").open();

    HttpUrl

    Opens browser or application to handle provided web address.

    If web address doesn't start with http then https:// will be pasted before the address.

    Example usage:

    -
    await new HttpUrl("google.com").open();
    +
    await new HttpUrl("google.com").open();

    Create your own handlers

    All the previously described openers extend abstract BaseUrlOpener which uses Linking.openURL under the hood when trying to open your params.

    You can create your own class extend it from BaseUrlOpener, set your own constructor and generateUrl, like so:

    -
    export class MyParamUrl extends BaseUrlOpener {
    //Define your parameters
    constructor(private myParam: string | null) {
    super();
    }

    protected generateUrl(): string | null {
    if (this.myParam == null) {
    return null;
    } else {
    //Do some action here
    return "do something";
    }
    }
    }
    +
    export class MyParamUrl extends BaseUrlOpener {
    //Define your parameters
    constructor(private myParam: string | null) {
    super();
    }

    protected generateUrl(): string | null {
    if (this.myParam == null) {
    return null;
    } else {
    //Do some action here
    return "do something";
    }
    }
    }
    \ No newline at end of file diff --git a/docs/validations/index.html b/docs/validations/index.html index 164917bf..f6499d77 100644 --- a/docs/validations/index.html +++ b/docs/validations/index.html @@ -1,14 +1,14 @@ - + - -Validations | React Native Template Strong - - + +Validations | React Native Template Strong + + -

    Validations

    Content

    +

    Validations

    Content

    Primarily has validations for different use cases (e.g. min. password length, max. name characters etc.).

    Many of those validations can be used with PrimaryTextInput to show errors while user types, when user finished typing (left input) or when user taps on a certain button.

    These validations are located in the src/common/validations folder.

    @@ -33,7 +33,7 @@

    fullName

    Validation constants

    These constants can be used as min/max length props in text inputs or when checking certain values. They are located in validationConstants.ts and have some common values:

    -
    export const validationConstants = {
    phone: {
    minLength: 8,
    maxLength: 18,
    },
    fullName: {
    minLength: 3,
    maxLength: 64,
    },
    comment: {
    maxLength: 280,
    },
    email: {
    maxLength: 254,
    },
    licensePlate: {
    minLength: 4,
    maxLength: 10,
    },
    };
    +
    export const validationConstants = {
    phone: {
    minLength: 8,
    maxLength: 18,
    },
    fullName: {
    minLength: 3,
    maxLength: 64,
    },
    comment: {
    maxLength: 280,
    },
    email: {
    maxLength: 254,
    },
    licensePlate: {
    minLength: 4,
    maxLength: 10,
    },
    };

    Hooks

    There are a couple of hooks to use for error checking when user does certain actions. So rather than using 3rd party form dependency (forms are rare use case and for most of the time can be checked manually in React Native) it's more convenient to use this custom hooks

    @@ -41,7 +41,7 @@

    useInputError<

    Checks string value which user inputs based on supplied validation and returns error, setError, recheck.

    Used in conjunction with recheckAllValidations.

    To better demonstrate how it works, it's better to show a basic example with email and name text inputs:

    -
    export const AuthPersonalData: NavigationFunctionComponent = () => {
    const dispatch = useAppDispatch();

    const [fullName, setFullName] = useState<string>("");
    const [email, setEmail] = useState<string>("");

    const {error: emailError, recheckValue: recheckEmail} = useInputError(email, emailValidations);
    const {error: nameError, recheckValue: recheckName} = useInputError(fullName, fullNameValidations);

    const submitData = useCallback(() => {
    if (recheckAllValidations([recheckName, recheckEmail])) {
    dispatch(createProfile({email, name: fullName.trim()}));
    }
    }, [recheckName, recheckEmail, dispatch, email, fullName]);

    return (
    <SafeAreaView onTouchStart={Keyboard.dismiss} style={CommonStyles.flexWhiteBackground}>
    <PrimaryTextInput
    label={localization.common.fullName}
    value={fullName}
    onChangeText={setFullName}
    autoCompleteType={"name"}
    enablesReturnKeyAutomatically={true}
    returnKeyType={"next"}
    textContentType={"name"}
    maxLength={validationConstants.fullName.maxLength}
    error={nameError}
    />
    <PrimaryTextInput
    label={localization.common.email}
    value={email}
    onChangeText={setEmail}
    autoCompleteType={"email"}
    enablesReturnKeyAutomatically={true}
    returnKeyType={"done"}
    textContentType={"emailAddress"}
    autoCapitalize={"none"}
    blurOnSubmit={true}
    keyboardType={"email-address"}
    onSubmitEditing={submitData}
    maxLength={validationConstants.email.maxLength}
    error={emailError}
    />
    <PrimaryButton
    type={ButtonType.solid}
    label={localization.common.addData}
    onPress={submitData}
    />
    </SafeAreaView>
    );
    };
    +
    export const AuthPersonalData: NavigationFunctionComponent = () => {
    const dispatch = useAppDispatch();

    const [fullName, setFullName] = useState<string>("");
    const [email, setEmail] = useState<string>("");

    const {error: emailError, recheckValue: recheckEmail} = useInputError(email, emailValidations);
    const {error: nameError, recheckValue: recheckName} = useInputError(fullName, fullNameValidations);

    const submitData = useCallback(() => {
    if (recheckAllValidations([recheckName, recheckEmail])) {
    dispatch(createProfile({email, name: fullName.trim()}));
    }
    }, [recheckName, recheckEmail, dispatch, email, fullName]);

    return (
    <SafeAreaView onTouchStart={Keyboard.dismiss} style={CommonStyles.flexWhiteBackground}>
    <PrimaryTextInput
    label={localization.common.fullName}
    value={fullName}
    onChangeText={setFullName}
    autoCompleteType={"name"}
    enablesReturnKeyAutomatically={true}
    returnKeyType={"next"}
    textContentType={"name"}
    maxLength={validationConstants.fullName.maxLength}
    error={nameError}
    />
    <PrimaryTextInput
    label={localization.common.email}
    value={email}
    onChangeText={setEmail}
    autoCompleteType={"email"}
    enablesReturnKeyAutomatically={true}
    returnKeyType={"done"}
    textContentType={"emailAddress"}
    autoCapitalize={"none"}
    blurOnSubmit={true}
    keyboardType={"email-address"}
    onSubmitEditing={submitData}
    maxLength={validationConstants.email.maxLength}
    error={emailError}
    />
    <PrimaryButton
    type={ButtonType.solid}
    label={localization.common.addData}
    onPress={submitData}
    />
    </SafeAreaView>
    );
    };

    You can see two simple inputs and a button. While user enters certain value he will be seeing an error if it won't fit to validation.

    And before dispatching profile creation, we might recheck all validations which we had if at least one of them fails the dispatch won't happen and errors will be set.

    setError parameter which is returned from useInputError can be used in cases when we need to manually set error, for example when API returned error regarding this value (e.g. email is already taken).

    @@ -51,9 +51,9 @@

    handlePr

    Unwraps the result of promise and then if everything went without errors based on provided params shows success toast and executes success message.

    If things went the wrong way it tries to process the error using handleErrorPostProcessing.

    To better demonstrate how it works we come back to our example with email and name but this time we will modify it show error and success message if everything went right.

    -
        const processError = useCallback((newError: Error) => {
    return {message: newError.message, visualRepresentation: ErrorRepresentationType.toast}
    }, []);

    const submitData = useCallback(() => {
    if (recheckAllValidations([recheckName, recheckEmail])) {
    handlePromiseResult(
    dispatch(createProfile({email, name: fullName.trim()}))
    localization.auth.profileHasBeenSuccessfullyCreated,
    setAuthorizedRoot,
    processError
    );
    }
    }, [recheckName, recheckEmail, dispatch, email, fullName]);
    +
        const processError = useCallback((newError: Error) => {
    return {message: newError.message, visualRepresentation: ErrorRepresentationType.toast}
    }, []);

    const submitData = useCallback(() => {
    if (recheckAllValidations([recheckName, recheckEmail])) {
    handlePromiseResult(
    dispatch(createProfile({email, name: fullName.trim()}))
    localization.auth.profileHasBeenSuccessfullyCreated,
    setAuthorizedRoot,
    processError
    );
    }
    }, [recheckName, recheckEmail, dispatch, email, fullName]);

    So now if everything goes right user will see a toast with localization.auth.profileHasBeenSuccessfullyCreated and will be redirected to new root (setAuthorizedRoot). If things go wrong way there will be shown a toast with error message from server.

    -

    To better understand logic take a brief look at insides of handlePromiseResult and handleErrorPostProcessing they are simple but just need to be used once or twice to grasp how and why they do this.

    +

    To better understand logic take a brief look at insides of handlePromiseResult and handleErrorPostProcessing they are simple but just need to be used once or twice to grasp how and why they do this.

    \ No newline at end of file diff --git a/faq/index.html b/faq/index.html index 1e1da215..2ef18f0f 100644 --- a/faq/index.html +++ b/faq/index.html @@ -1,14 +1,14 @@ - + - -FAQ | React Native Template Strong - - + +FAQ | React Native Template Strong + + -

    FAQ

    +

    FAQ

    Why react-native-navigation and not react-navigation?

    There are several reasons:

      @@ -48,6 +48,6 @@

      Why and sometimes they are hard to modify to one's likings, as for me, it makes more sense to create UI components from the ground.

      Why every dependency in package.json has stable version?

      To preserve the current state and neglect issues with new versions, -I keep all dependencies stable and when there are updates I update manually (even patch fixes) to see what has been changed.

    +I keep all dependencies stable and when there are updates I update manually (even patch fixes) to see what has been changed.

    \ No newline at end of file diff --git a/index.html b/index.html index 9f92a391..04b07db5 100644 --- a/index.html +++ b/index.html @@ -1,13 +1,13 @@ - + - -Welcome | React Native Template Strong - - + +Welcome | React Native Template Strong + + -
    React Native Template Strong

    React Native Template Strong

    Quick, opinionated, documented and strong beginning for your next project

    Strong set of dependencies

    Strong set of dependencies

    Build primarily with React Native Navigation, Redux Toolkit and TypeScript. And other day-to-day useful dependencies.

    More than just a template

    More than just a template

    Keep it simple stupid, test and component driven development, documentation and guides make it easy to use.

    Together we are stronger

    Together we are stronger

    New feature, bug or issue? Participate in the development to make this template better for you and others.

    +
    React Native Template Strong

    React Native Template Strong

    Quick, opinionated, documented and strong beginning for your next project

    Strong set of dependencies

    Strong set of dependencies

    Build primarily with React Native Navigation, Redux Toolkit and TypeScript. And other day-to-day useful dependencies.

    More than just a template

    More than just a template

    Keep it simple stupid, test and component driven development, documentation and guides make it easy to use.

    Together we are stronger

    Together we are stronger

    New feature, bug or issue? Participate in the development to make this template better for you and others.

    \ No newline at end of file diff --git a/mission/index.html b/mission/index.html index bfb3c3e7..443bf4b6 100644 --- a/mission/index.html +++ b/mission/index.html @@ -1,14 +1,14 @@ - + - -Mission | React Native Template Strong - - + +Mission | React Native Template Strong + + -

    Mission

    +

    Mission

    The idea behind creation of this repository is to have next core features when creating a new project:

    • Dependencies on which almost every application relies (orientation, localization, navigation, environments .etc)
    • @@ -26,6 +26,6 @@

      I strive to make this as easy as possible using the KISS (keep it simple, stupid) approach whenever possible, and when there's a case it can't be applied I'll try to document it as good as I can.

      There's a lot of "I" in this section, but I'm eager to listen to community and open to new ideas and approaches.

      -

      I hope this template will help people with application development.

    +

    I hope this template will help people with application development.

    \ No newline at end of file diff --git a/search/index.html b/search/index.html index 01c93ddc..6df698b9 100644 --- a/search/index.html +++ b/search/index.html @@ -1,13 +1,13 @@ - + - -Search the documentation | React Native Template Strong - - + +Search the documentation | React Native Template Strong + + -

    Search the documentation

    +

    Search the documentation

    \ No newline at end of file diff --git a/troubleshooting/index.html b/troubleshooting/index.html index a3e0252c..0c5f9d86 100644 --- a/troubleshooting/index.html +++ b/troubleshooting/index.html @@ -1,14 +1,14 @@ - + - -Troubleshooting | React Native Template Strong - - + +Troubleshooting | React Native Template Strong + + -

    Troubleshooting

    +

    Troubleshooting

    npm ERR! Could not resolve dependency

    Some dependencies might have incorrect peer versions of other dependencies and NPM throws the error, in order to ignore it run npm install --force

    @@ -32,6 +32,6 @@

    Can't find your issue?

    -

    Can't find an answer to your issue? Feel free to create an issue

    +

    Can't find an answer to your issue? Feel free to create an issue

    \ No newline at end of file