├── .babelrc
├── .eslintrc.json
├── .github
└── workflows
│ └── linters.yml
├── .gitignore
├── .stylelintrc.json
├── MIT.md
├── Math-magician-react.png
├── README.md
├── build
├── asset-manifest.json
├── index.html
└── static
│ ├── css
│ ├── main.82a54599.css
│ └── main.82a54599.css.map
│ └── js
│ ├── 787.d4ded463.chunk.js
│ ├── 787.d4ded463.chunk.js.map
│ ├── main.ee9d1ec6.js
│ ├── main.ee9d1ec6.js.LICENSE.txt
│ └── main.ee9d1ec6.js.map
├── package-lock.json
├── package.json
├── public
└── index.html
└── src
├── Pages
├── Home.js
├── NavBar.js
└── Quotes.js
├── __test__
├── DisplayScreen.test.js
├── __snapshots__
│ ├── DisplayScreen.test.js.snap
│ ├── calculator.test.js.snap
│ ├── numericKeys.test.js.snap
│ └── operatorKeys.test.js.snap
├── button.test.js
├── calculator.test.js
├── numericKeys.test.js
└── operatorKeys.test.js
├── app.js
├── components
├── calculator.js
├── displayScreen.js
├── logic
│ ├── calculate.js
│ ├── logic.test.js
│ └── operate.js
├── numericKeys.js
└── operatorkeys.js
├── index.css
├── index.js
├── reportWebVitals.js
├── setupTests.js
└── style.css
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | "@babel/preset-react"
4 | ],
5 | "plugins": ["@babel/plugin-syntax-jsx"]
6 | }
--------------------------------------------------------------------------------
/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "env": {
3 | "browser": true,
4 | "es6": true,
5 | "jest": true
6 | },
7 | "parser": "@babel/eslint-parser",
8 | "parserOptions": {
9 | "ecmaFeatures": {
10 | "jsx": true
11 | },
12 | "ecmaVersion": 2018,
13 | "sourceType": "module"
14 | },
15 | "extends": ["airbnb", "plugin:react/recommended"],
16 | "plugins": ["react"],
17 | "rules": {
18 | "react/jsx-filename-extension": ["warn", { "extensions": [".js", ".jsx"] }],
19 | "react/react-in-jsx-scope": "off",
20 | "import/no-unresolved": "off",
21 | "no-shadow": "off"
22 | },
23 | "ignorePatterns": [
24 | "dist/",
25 | "build/"
26 | ]
27 | }
28 |
--------------------------------------------------------------------------------
/.github/workflows/linters.yml:
--------------------------------------------------------------------------------
1 | name: Linters
2 |
3 | on: pull_request
4 |
5 | env:
6 | FORCE_COLOR: 1
7 |
8 | jobs:
9 | eslint:
10 | name: ESLint
11 | runs-on: ubuntu-18.04
12 | steps:
13 | - uses: actions/checkout@v2
14 | - uses: actions/setup-node@v1
15 | with:
16 | node-version: "12.x"
17 | - name: Setup ESLint
18 | run: |
19 | npm install --save-dev eslint@7.x eslint-config-airbnb@18.x eslint-plugin-import@2.x eslint-plugin-jsx-a11y@6.x eslint-plugin-react@7.x eslint-plugin-react-hooks@4.x @babel/eslint-parser@7.x @babel/core@7.x @babel/plugin-syntax-jsx@7.x @babel/preset-env@7.x @babel/preset-react@7.x
20 | [ -f .eslintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.eslintrc.json
21 | [ -f .babelrc ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.babelrc
22 | - name: ESLint Report
23 | run: npx eslint .
24 | stylelint:
25 | name: Stylelint
26 | runs-on: ubuntu-18.04
27 | steps:
28 | - uses: actions/checkout@v2
29 | - uses: actions/setup-node@v1
30 | with:
31 | node-version: "12.x"
32 | - name: Setup Stylelint
33 | run: |
34 | npm install --save-dev stylelint@13.x stylelint-scss@3.x stylelint-config-standard@21.x stylelint-csstree-validator@1.x
35 | [ -f .stylelintrc.json ] || wget https://raw.githubusercontent.com/microverseinc/linters-config/master/react-redux/.stylelintrc.json
36 | - name: Stylelint Report
37 | run: npx stylelint "**/*.{css,scss}"
38 | nodechecker:
39 | name: node_modules checker
40 | runs-on: ubuntu-18.04
41 | steps:
42 | - uses: actions/checkout@v2
43 | - name: Check node_modules existence
44 | run: |
45 | if [ -d "node_modules/" ]; then echo -e "\e[1;31mThe node_modules/ folder was pushed to the repo. Please remove it from the GitHub repository and try again."; echo -e "\e[1;32mYou can set up a .gitignore file with this folder included on it to prevent this from happening in the future." && exit 1; fi
46 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | # dependencies
4 | /node_modules
5 | /.pnp
6 | .pnp.js
7 |
8 | # testing
9 | /coverage
10 |
11 | # production
12 |
13 |
14 | # misc
15 | .DS_Store
16 | .env.local
17 | .env.development.local
18 | .env.test.local
19 | .env.production.local
20 |
21 | npm-debug.log*
22 | yarn-debug.log*
23 | yarn-error.log*
24 |
--------------------------------------------------------------------------------
/.stylelintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["stylelint-config-standard"],
3 | "plugins": ["stylelint-scss", "stylelint-csstree-validator"],
4 | "rules": {
5 | "at-rule-no-unknown": [
6 | true,
7 | {
8 | "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
9 | }
10 | ],
11 | "scss/at-rule-no-unknown": [
12 | true,
13 | {
14 | "ignoreAtRules": ["tailwind", "apply", "variants", "responsive", "screen"]
15 | }
16 | ],
17 | "csstree/validator": true
18 | },
19 | "ignoreFiles": ["build/**", "dist/**", "**/reset*.css", "**/bootstrap*.css", "**/*.js", "**/*.jsx"]
20 | }
21 |
--------------------------------------------------------------------------------
/MIT.md:
--------------------------------------------------------------------------------
1 | ## Copyright 2021, OKECHUKWU PROMISE
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy of this web app and associated documentation files, to deal in the web app without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the web app, and to permit persons to whom the web app is furnished to do so, subject to the following conditions:
4 |
5 | The above copyright notice and this permission notice shall be included in all copies or substantial portions of the web app.
6 |
7 | THE WEB APP IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE WEB APP OR THE USE OR OTHER DEALINGS IN THE WEB APP.
8 |
--------------------------------------------------------------------------------
/Math-magician-react.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/PromzzyKoncepts/Math-Magician/94721cbfbc5ca83917f4f204ae142325f75ba391/Math-magician-react.png
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | 
2 |
3 | # Math Magician
4 |
5 | > A basic calculator built with react that solves simple arithmetic problems with basic operators.
6 |
7 | ## Built With
8 |
9 | - ReactJs and CSS3.
10 | - React app setup.
11 | - Webpack, jest, and babel.
12 |
13 | ## Live Demo
14 |
15 | [Live Demo Link](https://mathmag.netlify.app)
16 |
17 |
.
18 |
19 | ## Getting Started
20 |
21 | To get a local copy up and running follow these simple example steps.
22 |
23 | ### Prerequisites
24 |
25 | Node.js
26 |
27 | ### Setup
28 |
29 | To get a local copy up and running you'll need to have [NodeJS](https://nodejs.org/en/download/) installed on your local machine.
30 |
31 | ### Install
32 |
33 | After installing NodeJS please follow the next steps...
34 |
35 | ### Usage
36 |
37 | ```bash
38 |
39 | npm i
40 |
41 | ```
42 |
43 | -- for installing dev dependecies.
44 |
45 | ```bash
46 |
47 | npm run build
48 |
49 | ```
50 |
51 | -- to run the project.
52 |
53 | ### Testing
54 |
55 | ```bash
56 |
57 | npm run start
58 |
59 | ```
60 |
61 | ### Deployment
62 |
63 | ```bash
64 |
65 | npm run deploy
66 |
67 | ```
68 |
69 | ## Authors
70 |
71 | 👤 **PROMISE OKECHUKWU**
72 |
73 | - GitHub: [@promzzykoncepts](https://github.com/PromzzyKoncepts)
74 | - Twitter: [@promzzy](https://twitter.com/prOmzzy)
75 | - LinkedIn: [promiseokechukwu](https://linkedin.com/in/promiseokechukwu)
76 |
77 | ## 🤝 Contributing
78 |
79 | Contributions, issues, and feature requests are welcome!
80 |
81 | Feel free to check the [issues page](../../issues/).
82 |
83 | ## Show your support
84 |
85 | Give a ⭐️ if you like this project!
86 |
87 | ## Acknowledgments
88 |
89 | - You for viewing this repo and dropping a ⭐️.
90 | - Microverse for their Calculate and Operate.js files.
91 | - etc
92 |
93 | ## 📝 License
94 |
95 | This project is [MIT](./MIT.md) licensed.
96 |
--------------------------------------------------------------------------------
/build/asset-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "files": {
3 | "main.css": "/static/css/main.82a54599.css",
4 | "main.js": "/static/js/main.ee9d1ec6.js",
5 | "static/js/787.d4ded463.chunk.js": "/static/js/787.d4ded463.chunk.js",
6 | "index.html": "/index.html",
7 | "main.82a54599.css.map": "/static/css/main.82a54599.css.map",
8 | "main.ee9d1ec6.js.map": "/static/js/main.ee9d1ec6.js.map",
9 | "787.d4ded463.chunk.js.map": "/static/js/787.d4ded463.chunk.js.map"
10 | },
11 | "entrypoints": [
12 | "static/css/main.82a54599.css",
13 | "static/js/main.ee9d1ec6.js"
14 | ]
15 | }
--------------------------------------------------------------------------------
/build/index.html:
--------------------------------------------------------------------------------
1 |
React App
--------------------------------------------------------------------------------
/build/static/css/main.82a54599.css:
--------------------------------------------------------------------------------
1 | @import url(https://fonts.googleapis.com/css2?family=Crete+Round&family=Inter:wght@400;500;600;700;800&family=Poppins&family=Roboto:wght@700&display=swap);*{box-sizing:border-box;font-family:Inter,sans-serif;margin:0;padding:0}html{font-size:calc(15px + .39063vw)}.calculator-container{align-items:center;display:flex;height:100vh;justify-content:center}.calc-container{border-radius:10px;box-shadow:0 3px 6px 0 rgba(0,0,0,.15),0 2px 4px 0 rgba(0,0,0,.12);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:repeat(6,minmax(0,1fr));margin:0 auto;max-inline-size:22rem;overflow:hidden;width:80%}.displayscreen-cont{background:#424c52 none repeat scroll 0 0;color:#fff;grid-column:1/5;grid-row:1/2;width:100%}.display-screen{border:none;color:#fff;font-size:2rem;outline:none;padding:12px 4px;text-align:end;width:150px}.btn{background-color:#e0e0e0;border:.01px solid #ccc;font-size:1.1rem;outline:none;padding:10px 0;transition:.05s ease-in-out}.btn:active{background-color:#c7c7c7}.btn-top{grid-row:2/3}.btn-side{background-color:#f5913e;grid-column:4/5}.btn-side:active{background-color:#f2740d}.numbers{display:grid;grid-column:1/4;grid-row:3/7;grid-template-columns:repeat(3,minmax(0,1fr))}.col-span-2{grid-column:1/3}
2 | /*# sourceMappingURL=main.82a54599.css.map*/
--------------------------------------------------------------------------------
/build/static/css/main.82a54599.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"static/css/main.82a54599.css","mappings":"2JAEA,EAGE,qBAAsB,CACtB,4BAAgC,CAFhC,QAAS,CADT,SAIF,CAEA,KACE,+BACF,CAEA,sBAEE,kBAAmB,CADnB,YAAa,CAGb,YAAa,CADb,sBAEF,CAEA,gBAOE,kBAAmB,CAEnB,kEAEiC,CARjC,YAAa,CACb,6CAAgD,CAChD,0CAA6C,CAH7C,aAAc,CAId,qBAAsB,CAEtB,eAAgB,CAPhB,SAWF,CAEA,oBAIE,yCAAoD,CACpD,UAAW,CAJX,eAAiB,CACjB,YAAe,CACf,UAGF,CAEA,gBAME,WAAY,CADZ,UAAW,CAFX,cAAe,CAIf,YAAa,CALb,gBAAiB,CAEjB,cAAe,CAHf,WAOF,CAEA,KACE,wBAAyB,CAEzB,uBAAoC,CAGpC,gBAAiB,CAFjB,YAAa,CAFb,cAAe,CAGf,2BAEF,CAEA,YACE,wBACF,CAEA,SACE,YACF,CAEA,UACE,wBAAyB,CACzB,eACF,CAEA,iBACE,wBACF,CAEA,SAGE,YAAa,CAFb,eAAiB,CACjB,YAAc,CAEd,6CACF,CAEA,YACE,eACF","sources":["style.css"],"sourcesContent":["@import url('https://fonts.googleapis.com/css2?family=Crete+Round&family=Inter:wght@400;500;600;700;800&family=Poppins&family=Roboto:wght@700&display=swap');\r\n\r\n* {\r\n padding: 0;\r\n margin: 0;\r\n box-sizing: border-box;\r\n font-family: \"Inter\", sans-serif;\r\n}\r\n\r\nhtml {\r\n font-size: calc(15px + 0.390625vw);\r\n}\r\n\r\n.calculator-container {\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n height: 100vh;\r\n}\r\n\r\n.calc-container {\r\n width: 80%;\r\n margin: 0 auto;\r\n display: grid;\r\n grid-template-columns: repeat(4, minmax(0, 1fr));\r\n grid-template-rows: repeat(6, minmax(0, 1fr));\r\n max-inline-size: 22rem;\r\n border-radius: 10px;\r\n overflow: hidden;\r\n box-shadow:\r\n 0 3px 6px 0 rgba(0, 0, 0, 0.15),\r\n 0 2px 4px 0 rgba(0, 0, 0, 0.12);\r\n}\r\n\r\n.displayscreen-cont {\r\n grid-column: 1/ 5;\r\n grid-row: 1 / 2;\r\n width: 100%;\r\n background: rgb(66, 76, 82) none repeat scroll 0% 0%;\r\n color: #fff;\r\n}\r\n\r\n.display-screen {\r\n width: 150px;\r\n padding: 12px 4px;\r\n font-size: 2rem;\r\n text-align: end;\r\n color: #fff;\r\n border: none;\r\n outline: none;\r\n}\r\n\r\n.btn {\r\n background-color: #e0e0e0;\r\n padding: 10px 0;\r\n border: 0.01px solid hsl(0, 0%, 80%);\r\n outline: none;\r\n transition: 0.05s ease-in-out;\r\n font-size: 1.1rem;\r\n}\r\n\r\n.btn:active {\r\n background-color: hsl(0, 0%, 78%);\r\n}\r\n\r\n.btn-top {\r\n grid-row: 2 / 3;\r\n}\r\n\r\n.btn-side {\r\n background-color: #f5913e;\r\n grid-column: 4/ 5;\r\n}\r\n\r\n.btn-side:active {\r\n background-color: hsl(27, 90%, 50%);\r\n}\r\n\r\n.numbers {\r\n grid-column: 1/ 4;\r\n grid-row: 3/ 7;\r\n display: grid;\r\n grid-template-columns: repeat(3, minmax(0, 1fr));\r\n}\r\n\r\n.col-span-2 {\r\n grid-column: 1 / 3;\r\n}\r\n"],"names":[],"sourceRoot":""}
--------------------------------------------------------------------------------
/build/static/js/787.d4ded463.chunk.js:
--------------------------------------------------------------------------------
1 | "use strict";(self.webpackChunkmath_magicians=self.webpackChunkmath_magicians||[]).push([[787],{787:function(e,t,n){n.r(t),n.d(t,{getCLS:function(){return y},getFCP:function(){return g},getFID:function(){return C},getLCP:function(){return P},getTTFB:function(){return D}});var i,r,a,o,u=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:"v2-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},c=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if("first-input"===e&&!("PerformanceEventTiming"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},f=function(e,t){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(e(i),t&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},s=function(e){addEventListener("pageshow",(function(t){t.persisted&&e(t)}),!0)},m=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},v=-1,p=function(){return"hidden"===document.visibilityState?0:1/0},d=function(){f((function(e){var t=e.timeStamp;v=t}),!0)},l=function(){return v<0&&(v=p(),d(),s((function(){setTimeout((function(){v=p(),d()}),0)}))),{get firstHiddenTime(){return v}}},g=function(e,t){var n,i=l(),r=u("FCP"),a=function(e){"first-contentful-paint"===e.name&&(f&&f.disconnect(),e.startTime-1&&e(t)},r=u("CLS",0),a=0,o=[],v=function(e){if(!e.hadRecentInput){var t=o[0],i=o[o.length-1];a&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(a+=e.value,o.push(e)):(a=e.value,o=[e]),a>r.value&&(r.value=a,r.entries=o,n())}},p=c("layout-shift",v);p&&(n=m(i,r,t),f((function(){p.takeRecords().map(v),n(!0)})),s((function(){a=0,T=-1,r=u("CLS",0),n=m(i,r,t)})))},E={passive:!0,capture:!0},w=new Date,L=function(e,t){i||(i=t,r=e,a=new Date,F(removeEventListener),S())},S=function(){if(r>=0&&r1e12?new Date:performance.now())-e.timeStamp;"pointerdown"==e.type?function(e,t){var n=function(){L(e,t),r()},i=function(){r()},r=function(){removeEventListener("pointerup",n,E),removeEventListener("pointercancel",i,E)};addEventListener("pointerup",n,E),addEventListener("pointercancel",i,E)}(t,e):L(t,e)}},F=function(e){["mousedown","keydown","touchstart","pointerdown"].forEach((function(t){return e(t,b,E)}))},C=function(e,t){var n,a=l(),v=u("FID"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},"complete"===document.readyState?setTimeout(t,0):addEventListener("load",(function(){return setTimeout(t,0)}))}}}]);
2 | //# sourceMappingURL=787.d4ded463.chunk.js.map
--------------------------------------------------------------------------------
/build/static/js/787.d4ded463.chunk.js.map:
--------------------------------------------------------------------------------
1 | {"version":3,"file":"static/js/787.d4ded463.chunk.js","mappings":"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","sources":["../node_modules/web-vitals/dist/web-vitals.js"],"sourcesContent":["var e,t,n,i,r=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v2-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},a=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){if(\"first-input\"===e&&!(\"PerformanceEventTiming\"in self))return;var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},u=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},c=function(e,t,n){var i;return function(r){t.value>=0&&(r||n)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=-1,s=function(){return\"hidden\"===document.visibilityState?0:1/0},m=function(){o((function(e){var t=e.timeStamp;f=t}),!0)},v=function(){return f<0&&(f=s(),m(),u((function(){setTimeout((function(){f=s(),m()}),0)}))),{get firstHiddenTime(){return f}}},d=function(e,t){var n,i=v(),o=r(\"FCP\"),f=function(e){\"first-contentful-paint\"===e.name&&(m&&m.disconnect(),e.startTime-1&&e(t)},f=r(\"CLS\",0),s=0,m=[],v=function(e){if(!e.hadRecentInput){var t=m[0],i=m[m.length-1];s&&e.startTime-i.startTime<1e3&&e.startTime-t.startTime<5e3?(s+=e.value,m.push(e)):(s=e.value,m=[e]),s>f.value&&(f.value=s,f.entries=m,n())}},h=a(\"layout-shift\",v);h&&(n=c(i,f,t),o((function(){h.takeRecords().map(v),n(!0)})),u((function(){s=0,l=-1,f=r(\"CLS\",0),n=c(i,f,t)})))},T={passive:!0,capture:!0},y=new Date,g=function(i,r){e||(e=r,t=i,n=new Date,w(removeEventListener),E())},E=function(){if(t>=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){g(e,t),r()},i=function(){r()},r=function(){removeEventListener(\"pointerup\",n,T),removeEventListener(\"pointercancel\",i,T)};addEventListener(\"pointerup\",n,T),addEventListener(\"pointercancel\",i,T)}(t,e):g(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,S,T)}))},L=function(n,f){var s,m=v(),d=r(\"FID\"),p=function(e){e.startTimeperformance.now())return;n.entries=[t],e(n)}catch(e){}},\"complete\"===document.readyState?setTimeout(t,0):addEventListener(\"load\",(function(){return setTimeout(t,0)}))};export{h as getCLS,d as getFCP,L as getFID,F as getLCP,P as getTTFB};\n"],"names":["e","t","n","i","r","name","value","delta","entries","id","concat","Date","now","Math","floor","random","a","PerformanceObserver","supportedEntryTypes","includes","self","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","u","persisted","c","f","s","m","timeStamp","v","setTimeout","firstHiddenTime","d","disconnect","startTime","push","window","performance","getEntriesByName","requestAnimationFrame","p","l","h","hadRecentInput","length","takeRecords","T","passive","capture","y","g","w","E","entryType","target","cancelable","processingStart","forEach","S","L","b","F","once","P","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"sourceRoot":""}
--------------------------------------------------------------------------------
/build/static/js/main.ee9d1ec6.js:
--------------------------------------------------------------------------------
1 | /*! For license information please see main.ee9d1ec6.js.LICENSE.txt */
2 | !function(){"use strict";var e={463:function(e,n,t){var r=t(791),l=t(296);function a(e){for(var n="https://reactjs.org/docs/error-decoder.html?invariant="+e,t=1;tn}return!1}(n,t,l,r)&&(t=null),r||null===l?function(e){return!!f.call(h,e)||!f.call(p,e)&&(d.test(e)?h[e]=!0:(p[e]=!0,!1))}(n)&&(null===t?e.removeAttribute(n):e.setAttribute(n,""+t)):l.mustUseProperty?e[l.propertyName]=null===t?3!==l.type&&"":t:(n=l.attributeName,r=l.attributeNamespace,null===t?e.removeAttribute(n):(t=3===(l=l.type)||4===l&&!0===t?"":""+t,r?e.setAttributeNS(r,n,t):e.setAttribute(n,t))))}"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 n=e.replace(g,y);v[n]=new m(n,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var n=e.replace(g,y);v[n]=new m(n,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var n=e.replace(g,y);v[n]=new m(n,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){v[e]=new m(e,1,!1,e.toLowerCase(),null,!1,!1)})),v.xlinkHref=new m("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){v[e]=new m(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"),C=Symbol.for("react.profiler"),_=Symbol.for("react.provider"),N=Symbol.for("react.context"),P=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),T=Symbol.for("react.suspense_list"),L=Symbol.for("react.memo"),O=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var R=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var M=Symbol.iterator;function F(e){return null===e||"object"!==typeof e?null:"function"===typeof(e=M&&e[M]||e["@@iterator"])?e:null}var D,I=Object.assign;function j(e){if(void 0===D)try{throw Error()}catch(t){var n=t.stack.trim().match(/\n( *(at )?)/);D=n&&n[1]||""}return"\n"+D+e}var U=!1;function A(e,n){if(!e||U)return"";U=!0;var t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(n)if(n=function(){throw Error()},Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),"object"===typeof Reflect&&Reflect.construct){try{Reflect.construct(n,[])}catch(s){var r=s}Reflect.construct(e,[],n)}else{try{n.call()}catch(s){r=s}e.call(n.prototype)}else{try{throw Error()}catch(s){r=s}e()}}catch(s){if(s&&r&&"string"===typeof s.stack){for(var l=s.stack.split("\n"),a=r.stack.split("\n"),o=l.length-1,u=a.length-1;1<=o&&0<=u&&l[o]!==a[u];)u--;for(;1<=o&&0<=u;o--,u--)if(l[o]!==a[u]){if(1!==o||1!==u)do{if(o--,0>--u||l[o]!==a[u]){var i="\n"+l[o].replace(" at new "," at ");return e.displayName&&i.includes("")&&(i=i.replace("",e.displayName)),i}}while(1<=o&&0<=u);break}}}finally{U=!1,Error.prepareStackTrace=t}return(e=e?e.displayName||e.name:"")?j(e):""}function V(e){switch(e.tag){case 5:return j(e.type);case 16:return j("Lazy");case 13:return j("Suspense");case 19:return j("SuspenseList");case 0:case 2:case 15:return e=A(e.type,!1);case 11:return e=A(e.type.render,!1);case 1:return e=A(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 C:return"Profiler";case E:return"StrictMode";case z:return"Suspense";case T:return"SuspenseList"}if("object"===typeof e)switch(e.$$typeof){case N:return(e.displayName||"Context")+".Consumer";case _:return(e._context.displayName||"Context")+".Provider";case P:var n=e.render;return(e=e.displayName)||(e=""!==(e=n.displayName||n.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case L:return null!==(n=e.displayName||null)?n:$(e.type)||"Memo";case O:n=e._payload,e=e._init;try{return $(e(n))}catch(t){}}return null}function B(e){var n=e.type;switch(e.tag){case 24:return"Cache";case 9:return(n.displayName||"Context")+".Consumer";case 10:return(n._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=n.render).displayName||e.name||"",n.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return n;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return $(n);case 8:return n===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 n)return n.displayName||n.name||null;if("string"===typeof n)return n}return null}function H(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function W(e){var n=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===n||"radio"===n)}function Q(e){e._valueTracker||(e._valueTracker=function(e){var n=W(e)?"checked":"value",t=Object.getOwnPropertyDescriptor(e.constructor.prototype,n),r=""+e[n];if(!e.hasOwnProperty(n)&&"undefined"!==typeof t&&"function"===typeof t.get&&"function"===typeof t.set){var l=t.get,a=t.set;return Object.defineProperty(e,n,{configurable:!0,get:function(){return l.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,n,{enumerable:t.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[n]}}}}(e))}function q(e){if(!e)return!1;var n=e._valueTracker;if(!n)return!0;var t=n.getValue(),r="";return e&&(r=W(e)?e.checked?"true":"false":e.value),(e=r)!==t&&(n.setValue(e),!0)}function K(e){if("undefined"===typeof(e=e||("undefined"!==typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(n){return e.body}}function Y(e,n){var t=n.checked;return I({},n,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=t?t:e._wrapperState.initialChecked})}function X(e,n){var t=null==n.defaultValue?"":n.defaultValue,r=null!=n.checked?n.checked:n.defaultChecked;t=H(null!=n.value?n.value:t),e._wrapperState={initialChecked:r,initialValue:t,controlled:"checkbox"===n.type||"radio"===n.type?null!=n.checked:null!=n.value}}function G(e,n){null!=(n=n.checked)&&b(e,"checked",n,!1)}function Z(e,n){G(e,n);var t=H(n.value),r=n.type;if(null!=t)"number"===r?(0===t&&""===e.value||e.value!=t)&&(e.value=""+t):e.value!==""+t&&(e.value=""+t);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");n.hasOwnProperty("value")?ee(e,n.type,t):n.hasOwnProperty("defaultValue")&&ee(e,n.type,H(n.defaultValue)),null==n.checked&&null!=n.defaultChecked&&(e.defaultChecked=!!n.defaultChecked)}function J(e,n,t){if(n.hasOwnProperty("value")||n.hasOwnProperty("defaultValue")){var r=n.type;if(!("submit"!==r&&"reset"!==r||void 0!==n.value&&null!==n.value))return;n=""+e._wrapperState.initialValue,t||n===e.value||(e.value=n),e.defaultValue=n}""!==(t=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==t&&(e.name=t)}function ee(e,n,t){"number"===n&&K(e.ownerDocument)===e||(null==t?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+t&&(e.defaultValue=""+t))}var ne=Array.isArray;function te(e,n,t,r){if(e=e.options,n){n={};for(var l=0;l"+n.valueOf().toString()+"",n=se.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;n.firstChild;)e.appendChild(n.firstChild)}},"undefined"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,n,t,r){MSApp.execUnsafeLocalFunction((function(){return ce(e,n)}))}:ce);function de(e,n){if(n){var t=e.firstChild;if(t&&t===e.lastChild&&3===t.nodeType)return void(t.nodeValue=n)}e.textContent=n}var pe={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},he=["Webkit","ms","Moz","O"];function me(e,n,t){return null==n||"boolean"===typeof n||""===n?"":t||"number"!==typeof n||0===n||pe.hasOwnProperty(e)&&pe[e]?(""+n).trim():n+"px"}function ve(e,n){for(var t in e=e.style,n)if(n.hasOwnProperty(t)){var r=0===t.indexOf("--"),l=me(t,n[t],r);"float"===t&&(t="cssFloat"),r?e.setProperty(t,l):e[t]=l}}Object.keys(pe).forEach((function(e){he.forEach((function(n){n=n+e.charAt(0).toUpperCase()+e.substring(1),pe[n]=pe[e]}))}));var ge=I({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 ye(e,n){if(n){if(ge[e]&&(null!=n.children||null!=n.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=n.dangerouslySetInnerHTML){if(null!=n.children)throw Error(a(60));if("object"!==typeof n.dangerouslySetInnerHTML||!("__html"in n.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=n.style&&"object"!==typeof n.style)throw Error(a(62))}}function be(e,n){if(-1===e.indexOf("-"))return"string"===typeof n.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 Ce(e){if(e=bl(e)){if("function"!==typeof Se)throw Error(a(280));var n=e.stateNode;n&&(n=kl(n),Se(e.stateNode,e.type,n))}}function _e(e){xe?Ee?Ee.push(e):Ee=[e]:xe=e}function Ne(){if(xe){var e=xe,n=Ee;if(Ee=xe=null,Ce(e),n)for(e=0;e>>=0)?32:31-(un(e)/sn|0)|0},un=Math.log,sn=Math.LN2;var cn=64,fn=4194304;function dn(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 pn(e,n){var t=e.pendingLanes;if(0===t)return 0;var r=0,l=e.suspendedLanes,a=e.pingedLanes,o=268435455&t;if(0!==o){var u=o&~l;0!==u?r=dn(u):0!==(a&=o)&&(r=dn(a))}else 0!==(o=t&~l)?r=dn(o):0!==a&&(r=dn(a));if(0===r)return 0;if(0!==n&&n!==r&&0===(n&l)&&((l=r&-r)>=(a=n&-n)||16===l&&0!==(4194240&a)))return n;if(0!==(4&r)&&(r|=16&t),0!==(n=e.entangledLanes))for(e=e.entanglements,n&=r;0t;t++)n.push(e);return n}function yn(e,n,t){e.pendingLanes|=n,536870912!==n&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[n=31-on(n)]=t}function bn(e,n){var t=e.entangledLanes|=n;for(e=e.entanglements;t;){var r=31-on(t),l=1<=Ft),jt=String.fromCharCode(32),Ut=!1;function At(e,n){switch(e){case"keyup":return-1!==Rt.indexOf(n.keyCode);case"keydown":return 229!==n.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Vt(e){return"object"===typeof(e=e.detail)&&"data"in e?e.data:null}var $t=!1;var Bt={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 Ht(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===n?!!Bt[e.type]:"textarea"===n}function Wt(e,n,t,r){_e(r),0<(n=Qr(n,"onChange")).length&&(t=new ct("onChange","change",null,t,r),e.push({event:t,listeners:n}))}var Qt=null,qt=null;function Kt(e){jr(e,0)}function Yt(e){if(q(wl(e)))return e}function Xt(e,n){if("change"===e)return n}var Gt=!1;if(c){var Zt;if(c){var Jt="oninput"in document;if(!Jt){var er=document.createElement("div");er.setAttribute("oninput","return;"),Jt="function"===typeof er.oninput}Zt=Jt}else Zt=!1;Gt=Zt&&(!document.documentMode||9=n)return{node:r,offset:n-e};e=t}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=sr(r)}}function fr(e,n){return!(!e||!n)&&(e===n||(!e||3!==e.nodeType)&&(n&&3===n.nodeType?fr(e,n.parentNode):"contains"in e?e.contains(n):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(n))))}function dr(){for(var e=window,n=K();n instanceof e.HTMLIFrameElement;){try{var t="string"===typeof n.contentWindow.location.href}catch(r){t=!1}if(!t)break;n=K((e=n.contentWindow).document)}return n}function pr(e){var n=e&&e.nodeName&&e.nodeName.toLowerCase();return n&&("input"===n&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===n||"true"===e.contentEditable)}function hr(e){var n=dr(),t=e.focusedElem,r=e.selectionRange;if(n!==t&&t&&t.ownerDocument&&fr(t.ownerDocument.documentElement,t)){if(null!==r&&pr(t))if(n=r.start,void 0===(e=r.end)&&(e=n),"selectionStart"in t)t.selectionStart=n,t.selectionEnd=Math.min(e,t.value.length);else if((e=(n=t.ownerDocument||document)&&n.defaultView||window).getSelection){e=e.getSelection();var l=t.textContent.length,a=Math.min(r.start,l);r=void 0===r.end?a:Math.min(r.end,l),!e.extend&&a>r&&(l=r,r=a,a=l),l=cr(t,a);var o=cr(t,r);l&&o&&(1!==e.rangeCount||e.anchorNode!==l.node||e.anchorOffset!==l.offset||e.focusNode!==o.node||e.focusOffset!==o.offset)&&((n=n.createRange()).setStart(l.node,l.offset),e.removeAllRanges(),a>r?(e.addRange(n),e.extend(o.node,o.offset)):(n.setEnd(o.node,o.offset),e.addRange(n)))}for(n=[],e=t;e=e.parentNode;)1===e.nodeType&&n.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"===typeof t.focus&&t.focus(),t=0;t=document.documentMode,vr=null,gr=null,yr=null,br=!1;function wr(e,n,t){var r=t.window===t?t.document:9===t.nodeType?t:t.ownerDocument;br||null==vr||vr!==K(r)||("selectionStart"in(r=vr)&&pr(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},yr&&ir(yr,r)||(yr=r,0<(r=Qr(gr,"onSelect")).length&&(n=new ct("onSelect","select",null,n,t),e.push({event:n,listeners:r}),n.target=vr)))}function kr(e,n){var t={};return t[e.toLowerCase()]=n.toLowerCase(),t["Webkit"+e]="webkit"+n,t["Moz"+e]="moz"+n,t}var Sr={animationend:kr("Animation","AnimationEnd"),animationiteration:kr("Animation","AnimationIteration"),animationstart:kr("Animation","AnimationStart"),transitionend:kr("Transition","TransitionEnd")},xr={},Er={};function Cr(e){if(xr[e])return xr[e];if(!Sr[e])return e;var n,t=Sr[e];for(n in t)if(t.hasOwnProperty(n)&&n in Er)return xr[e]=t[n];return e}c&&(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 _r=Cr("animationend"),Nr=Cr("animationiteration"),Pr=Cr("animationstart"),zr=Cr("transitionend"),Tr=new Map,Lr="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 Or(e,n){Tr.set(e,n),i(n,[e])}for(var Rr=0;Rrxl||(e.current=Sl[xl],Sl[xl]=null,xl--)}function _l(e,n){xl++,Sl[xl]=e.current,e.current=n}var Nl={},Pl=El(Nl),zl=El(!1),Tl=Nl;function Ll(e,n){var t=e.type.contextTypes;if(!t)return Nl;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===n)return r.__reactInternalMemoizedMaskedChildContext;var l,a={};for(l in t)a[l]=n[l];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=n,e.__reactInternalMemoizedMaskedChildContext=a),a}function Ol(e){return null!==(e=e.childContextTypes)&&void 0!==e}function Rl(){Cl(zl),Cl(Pl)}function Ml(e,n,t){if(Pl.current!==Nl)throw Error(a(168));_l(Pl,n),_l(zl,t)}function Fl(e,n,t){var r=e.stateNode;if(n=n.childContextTypes,"function"!==typeof r.getChildContext)return t;for(var l in r=r.getChildContext())if(!(l in n))throw Error(a(108,B(e)||"Unknown",l));return I({},t,r)}function Dl(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Nl,Tl=Pl.current,_l(Pl,e),_l(zl,zl.current),!0}function Il(e,n,t){var r=e.stateNode;if(!r)throw Error(a(169));t?(e=Fl(e,n,Tl),r.__reactInternalMemoizedMergedChildContext=e,Cl(zl),Cl(Pl),_l(Pl,e)):Cl(zl),_l(zl,t)}var jl=null,Ul=!1,Al=!1;function Vl(e){null===jl?jl=[e]:jl.push(e)}function $l(){if(!Al&&null!==jl){Al=!0;var e=0,n=wn;try{var t=jl;for(wn=1;e>=o,l-=o,Xl=1<<32-on(n)+l|t<m?(v=f,f=null):v=f.sibling;var g=p(l,f,u[m],i);if(null===g){null===f&&(f=v);break}e&&f&&null===g.alternate&&n(l,f),a=o(g,a,m),null===c?s=g:c.sibling=g,c=g,f=v}if(m===u.length)return t(l,f),la&&Zl(l,m),s;if(null===f){for(;mv?(g=m,m=null):g=m.sibling;var b=p(l,m,y.value,s);if(null===b){null===m&&(m=g);break}e&&m&&null===b.alternate&&n(l,m),u=o(b,u,v),null===f?c=b:f.sibling=b,f=b,m=g}if(y.done)return t(l,m),la&&Zl(l,v),c;if(null===m){for(;!y.done;v++,y=i.next())null!==(y=d(l,y.value,s))&&(u=o(y,u,v),null===f?c=y:f.sibling=y,f=y);return la&&Zl(l,v),c}for(m=r(l,m);!y.done;v++,y=i.next())null!==(y=h(m,l,v,y.value,s))&&(e&&null!==y.alternate&&m.delete(null===y.key?v:y.key),u=o(y,u,v),null===f?c=y:f.sibling=y,f=y);return e&&m.forEach((function(e){return n(l,e)})),la&&Zl(l,v),c}return function e(r,a,o,i){if("object"===typeof o&&null!==o&&o.type===x&&null===o.key&&(o=o.props.children),"object"===typeof o&&null!==o){switch(o.$$typeof){case k:e:{for(var s=o.key,c=a;null!==c;){if(c.key===s){if((s=o.type)===x){if(7===c.tag){t(r,c.sibling),(a=l(c,o.props.children)).return=r,r=a;break e}}else if(c.elementType===s||"object"===typeof s&&null!==s&&s.$$typeof===O&&Ka(s)===c.type){t(r,c.sibling),(a=l(c,o.props)).ref=Qa(r,c,o),a.return=r,r=a;break e}t(r,c);break}n(r,c),c=c.sibling}o.type===x?((a=Fs(o.props.children,r.mode,i,o.key)).return=r,r=a):((i=Ms(o.type,o.key,o.props,null,r.mode,i)).ref=Qa(r,a,o),i.return=r,r=i)}return u(r);case S:e:{for(c=o.key;null!==a;){if(a.key===c){if(4===a.tag&&a.stateNode.containerInfo===o.containerInfo&&a.stateNode.implementation===o.implementation){t(r,a.sibling),(a=l(a,o.children||[])).return=r,r=a;break e}t(r,a);break}n(r,a),a=a.sibling}(a=js(o,r.mode,i)).return=r,r=a}return u(r);case O:return e(r,a,(c=o._init)(o._payload),i)}if(ne(o))return m(r,a,o,i);if(F(o))return v(r,a,o,i);qa(r,o)}return"string"===typeof o&&""!==o||"number"===typeof o?(o=""+o,null!==a&&6===a.tag?(t(r,a.sibling),(a=l(a,o)).return=r,r=a):(t(r,a),(a=Is(o,r.mode,i)).return=r,r=a),u(r)):t(r,a)}}var Xa=Ya(!0),Ga=Ya(!1),Za={},Ja=El(Za),eo=El(Za),no=El(Za);function to(e){if(e===Za)throw Error(a(174));return e}function ro(e,n){switch(_l(no,n),_l(eo,e),_l(Ja,Za),e=n.nodeType){case 9:case 11:n=(n=n.documentElement)?n.namespaceURI:ie(null,"");break;default:n=ie(n=(e=8===e?n.parentNode:n).namespaceURI||null,e=e.tagName)}Cl(Ja),_l(Ja,n)}function lo(){Cl(Ja),Cl(eo),Cl(no)}function ao(e){to(no.current);var n=to(Ja.current),t=ie(n,e.type);n!==t&&(_l(eo,e),_l(Ja,t))}function oo(e){eo.current===e&&(Cl(Ja),Cl(eo))}var uo=El(0);function io(e){for(var n=e;null!==n;){if(13===n.tag){var t=n.memoizedState;if(null!==t&&(null===(t=t.dehydrated)||"$?"===t.data||"$!"===t.data))return n}else if(19===n.tag&&void 0!==n.memoizedProps.revealOrder){if(0!==(128&n.flags))return n}else if(null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return null;n=n.return}n.sibling.return=n.return,n=n.sibling}return null}var so=[];function co(){for(var e=0;et?t:4,e(!0);var r=po.transition;po.transition={};try{e(!1),n()}finally{wn=t,po.transition=r}}function eu(){return No().memoizedState}function nu(e,n,t){var r=ns(e);if(t={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null},ru(e))lu(n,t);else if(null!==(t=Pa(e,n,t,r))){ts(t,e,r,es()),au(t,n,r)}}function tu(e,n,t){var r=ns(e),l={lane:r,action:t,hasEagerState:!1,eagerState:null,next:null};if(ru(e))lu(n,l);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=n.lastRenderedReducer))try{var o=n.lastRenderedState,u=a(o,t);if(l.hasEagerState=!0,l.eagerState=u,ur(u,o)){var i=n.interleaved;return null===i?(l.next=l,Na(n)):(l.next=i.next,i.next=l),void(n.interleaved=l)}}catch(s){}null!==(t=Pa(e,n,l,r))&&(ts(t,e,r,l=es()),au(t,n,r))}}function ru(e){var n=e.alternate;return e===mo||null!==n&&n===mo}function lu(e,n){bo=yo=!0;var t=e.pending;null===t?n.next=n:(n.next=t.next,t.next=n),e.pending=n}function au(e,n,t){if(0!==(4194240&t)){var r=n.lanes;t|=r&=e.pendingLanes,n.lanes=t,bn(e,t)}}var ou={readContext:Ca,useCallback:So,useContext:So,useEffect:So,useImperativeHandle:So,useInsertionEffect:So,useLayoutEffect:So,useMemo:So,useReducer:So,useRef:So,useState:So,useDebugValue:So,useDeferredValue:So,useTransition:So,useMutableSource:So,useSyncExternalStore:So,useId:So,unstable_isNewReconciler:!1},uu={readContext:Ca,useCallback:function(e,n){return _o().memoizedState=[e,void 0===n?null:n],e},useContext:Ca,useEffect:Bo,useImperativeHandle:function(e,n,t){return t=null!==t&&void 0!==t?t.concat([e]):null,Vo(4194308,4,qo.bind(null,n,e),t)},useLayoutEffect:function(e,n){return Vo(4194308,4,e,n)},useInsertionEffect:function(e,n){return Vo(4,2,e,n)},useMemo:function(e,n){var t=_o();return n=void 0===n?null:n,e=e(),t.memoizedState=[e,n],e},useReducer:function(e,n,t){var r=_o();return n=void 0!==t?t(n):n,r.memoizedState=r.baseState=n,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:n},r.queue=e,e=e.dispatch=nu.bind(null,mo,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},_o().memoizedState=e},useState:jo,useDebugValue:Yo,useDeferredValue:function(e){return _o().memoizedState=e},useTransition:function(){var e=jo(!1),n=e[0];return e=Jo.bind(null,e[1]),_o().memoizedState=e,[n,e]},useMutableSource:function(){},useSyncExternalStore:function(e,n,t){var r=mo,l=_o();if(la){if(void 0===t)throw Error(a(407));t=t()}else{if(t=n(),null===zi)throw Error(a(349));0!==(30&ho)||Ro(r,n,t)}l.memoizedState=t;var o={value:t,getSnapshot:n};return l.queue=o,Bo(Fo.bind(null,r,o,e),[e]),r.flags|=2048,Uo(9,Mo.bind(null,r,o,t,n),void 0,null),t},useId:function(){var e=_o(),n=zi.identifierPrefix;if(la){var t=Gl;n=":"+n+"R"+(t=(Xl&~(1<<32-on(Xl)-1)).toString(32)+t),0<(t=wo++)&&(n+="H"+t.toString(32)),n+=":"}else n=":"+n+"r"+(t=ko++).toString(32)+":";return e.memoizedState=n},unstable_isNewReconciler:!1},iu={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Ho,useImperativeHandle:Ko,useInsertionEffect:Wo,useLayoutEffect:Qo,useMemo:Go,useReducer:zo,useRef:Ao,useState:function(){return zo(Po)},useDebugValue:Yo,useDeferredValue:function(e){return Zo(No(),vo.memoizedState,e)},useTransition:function(){return[zo(Po)[0],No().memoizedState]},useMutableSource:Lo,useSyncExternalStore:Oo,useId:eu,unstable_isNewReconciler:!1},su={readContext:Ca,useCallback:Xo,useContext:Ca,useEffect:Ho,useImperativeHandle:Ko,useInsertionEffect:Wo,useLayoutEffect:Qo,useMemo:Go,useReducer:To,useRef:Ao,useState:function(){return To(Po)},useDebugValue:Yo,useDeferredValue:function(e){var n=No();return null===vo?n.memoizedState=e:Zo(n,vo.memoizedState,e)},useTransition:function(){return[To(Po)[0],No().memoizedState]},useMutableSource:Lo,useSyncExternalStore:Oo,useId:eu,unstable_isNewReconciler:!1};function cu(e,n){try{var t="",r=n;do{t+=V(r),r=r.return}while(r);var l=t}catch(a){l="\nError generating stack: "+a.message+"\n"+a.stack}return{value:e,source:n,stack:l,digest:null}}function fu(e,n,t){return{value:e,source:null,stack:null!=t?t:null,digest:null!=n?n:null}}function du(e,n){try{console.error(n.value)}catch(t){setTimeout((function(){throw t}))}}var pu="function"===typeof WeakMap?WeakMap:Map;function hu(e,n,t){(t=Ra(-1,t)).tag=3,t.payload={element:null};var r=n.value;return t.callback=function(){Hi||(Hi=!0,Wi=r),du(0,n)},t}function mu(e,n,t){(t=Ra(-1,t)).tag=3;var r=e.type.getDerivedStateFromError;if("function"===typeof r){var l=n.value;t.payload=function(){return r(l)},t.callback=function(){du(0,n)}}var a=e.stateNode;return null!==a&&"function"===typeof a.componentDidCatch&&(t.callback=function(){du(0,n),"function"!==typeof r&&(null===Qi?Qi=new Set([this]):Qi.add(this));var e=n.stack;this.componentDidCatch(n.value,{componentStack:null!==e?e:""})}),t}function vu(e,n,t){var r=e.pingCache;if(null===r){r=e.pingCache=new pu;var l=new Set;r.set(n,l)}else void 0===(l=r.get(n))&&(l=new Set,r.set(n,l));l.has(t)||(l.add(t),e=Cs.bind(null,e,n,t),n.then(e,e))}function gu(e){do{var n;if((n=13===e.tag)&&(n=null===(n=e.memoizedState)||null!==n.dehydrated),n)return e;e=e.return}while(null!==e);return null}function yu(e,n,t,r,l){return 0===(1&e.mode)?(e===n?e.flags|=65536:(e.flags|=128,t.flags|=131072,t.flags&=-52805,1===t.tag&&(null===t.alternate?t.tag=17:((n=Ra(-1,1)).tag=2,Ma(t,n,1))),t.lanes|=1),e):(e.flags|=65536,e.lanes=l,e)}var bu=w.ReactCurrentOwner,wu=!1;function ku(e,n,t,r){n.child=null===e?Ga(n,null,t,r):Xa(n,e.child,t,r)}function Su(e,n,t,r,l){t=t.render;var a=n.ref;return Ea(n,l),r=Eo(e,n,t,r,a,l),t=Co(),null===e||wu?(la&&t&&ea(n),n.flags|=1,ku(e,n,r,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,Hu(e,n,l))}function xu(e,n,t,r,l){if(null===e){var a=t.type;return"function"!==typeof a||Os(a)||void 0!==a.defaultProps||null!==t.compare||void 0!==t.defaultProps?((e=Ms(t.type,null,r,n,n.mode,l)).ref=n.ref,e.return=n,n.child=e):(n.tag=15,n.type=a,Eu(e,n,a,r,l))}if(a=e.child,0===(e.lanes&l)){var o=a.memoizedProps;if((t=null!==(t=t.compare)?t:ir)(o,r)&&e.ref===n.ref)return Hu(e,n,l)}return n.flags|=1,(e=Rs(a,r)).ref=n.ref,e.return=n,n.child=e}function Eu(e,n,t,r,l){if(null!==e){var a=e.memoizedProps;if(ir(a,r)&&e.ref===n.ref){if(wu=!1,n.pendingProps=r=a,0===(e.lanes&l))return n.lanes=e.lanes,Hu(e,n,l);0!==(131072&e.flags)&&(wu=!0)}}return Nu(e,n,t,r,l)}function Cu(e,n,t){var r=n.pendingProps,l=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0===(1&n.mode))n.memoizedState={baseLanes:0,cachePool:null,transitions:null},_l(Ri,Oi),Oi|=t;else{if(0===(1073741824&t))return e=null!==a?a.baseLanes|t:t,n.lanes=n.childLanes=1073741824,n.memoizedState={baseLanes:e,cachePool:null,transitions:null},n.updateQueue=null,_l(Ri,Oi),Oi|=e,null;n.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:t,_l(Ri,Oi),Oi|=r}else null!==a?(r=a.baseLanes|t,n.memoizedState=null):r=t,_l(Ri,Oi),Oi|=r;return ku(e,n,l,t),n.child}function _u(e,n){var t=n.ref;(null===e&&null!==t||null!==e&&e.ref!==t)&&(n.flags|=512,n.flags|=2097152)}function Nu(e,n,t,r,l){var a=Ol(t)?Tl:Pl.current;return a=Ll(n,a),Ea(n,l),t=Eo(e,n,t,r,a,l),r=Co(),null===e||wu?(la&&r&&ea(n),n.flags|=1,ku(e,n,t,l),n.child):(n.updateQueue=e.updateQueue,n.flags&=-2053,e.lanes&=~l,Hu(e,n,l))}function Pu(e,n,t,r,l){if(Ol(t)){var a=!0;Dl(n)}else a=!1;if(Ea(n,l),null===n.stateNode)Bu(e,n),Ba(n,t,r),Wa(n,t,r,l),r=!0;else if(null===e){var o=n.stateNode,u=n.memoizedProps;o.props=u;var i=o.context,s=t.contextType;"object"===typeof s&&null!==s?s=Ca(s):s=Ll(n,s=Ol(t)?Tl:Pl.current);var c=t.getDerivedStateFromProps,f="function"===typeof c||"function"===typeof o.getSnapshotBeforeUpdate;f||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==r||i!==s)&&Ha(n,o,r,s),Ta=!1;var d=n.memoizedState;o.state=d,Ia(n,r,o,l),i=n.memoizedState,u!==r||d!==i||zl.current||Ta?("function"===typeof c&&(Aa(n,t,c,r),i=n.memoizedState),(u=Ta||$a(n,t,u,r,d,i,s))?(f||"function"!==typeof o.UNSAFE_componentWillMount&&"function"!==typeof o.componentWillMount||("function"===typeof o.componentWillMount&&o.componentWillMount(),"function"===typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount()),"function"===typeof o.componentDidMount&&(n.flags|=4194308)):("function"===typeof o.componentDidMount&&(n.flags|=4194308),n.memoizedProps=r,n.memoizedState=i),o.props=r,o.state=i,o.context=s,r=u):("function"===typeof o.componentDidMount&&(n.flags|=4194308),r=!1)}else{o=n.stateNode,Oa(e,n),u=n.memoizedProps,s=n.type===n.elementType?u:va(n.type,u),o.props=s,f=n.pendingProps,d=o.context,"object"===typeof(i=t.contextType)&&null!==i?i=Ca(i):i=Ll(n,i=Ol(t)?Tl:Pl.current);var p=t.getDerivedStateFromProps;(c="function"===typeof p||"function"===typeof o.getSnapshotBeforeUpdate)||"function"!==typeof o.UNSAFE_componentWillReceiveProps&&"function"!==typeof o.componentWillReceiveProps||(u!==f||d!==i)&&Ha(n,o,r,i),Ta=!1,d=n.memoizedState,o.state=d,Ia(n,r,o,l);var h=n.memoizedState;u!==f||d!==h||zl.current||Ta?("function"===typeof p&&(Aa(n,t,p,r),h=n.memoizedState),(s=Ta||$a(n,t,s,r,d,h,i)||!1)?(c||"function"!==typeof o.UNSAFE_componentWillUpdate&&"function"!==typeof o.componentWillUpdate||("function"===typeof o.componentWillUpdate&&o.componentWillUpdate(r,h,i),"function"===typeof o.UNSAFE_componentWillUpdate&&o.UNSAFE_componentWillUpdate(r,h,i)),"function"===typeof o.componentDidUpdate&&(n.flags|=4),"function"===typeof o.getSnapshotBeforeUpdate&&(n.flags|=1024)):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),n.memoizedProps=r,n.memoizedState=h),o.props=r,o.state=h,o.context=i,r=s):("function"!==typeof o.componentDidUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=4),"function"!==typeof o.getSnapshotBeforeUpdate||u===e.memoizedProps&&d===e.memoizedState||(n.flags|=1024),r=!1)}return zu(e,n,t,r,a,l)}function zu(e,n,t,r,l,a){_u(e,n);var o=0!==(128&n.flags);if(!r&&!o)return l&&Il(n,t,!1),Hu(e,n,a);r=n.stateNode,bu.current=n;var u=o&&"function"!==typeof t.getDerivedStateFromError?null:r.render();return n.flags|=1,null!==e&&o?(n.child=Xa(n,e.child,null,a),n.child=Xa(n,null,u,a)):ku(e,n,u,a),n.memoizedState=r.state,l&&Il(n,t,!0),n.child}function Tu(e){var n=e.stateNode;n.pendingContext?Ml(0,n.pendingContext,n.pendingContext!==n.context):n.context&&Ml(0,n.context,!1),ro(e,n.containerInfo)}function Lu(e,n,t,r,l){return pa(),ha(l),n.flags|=256,ku(e,n,t,r),n.child}var Ou,Ru,Mu,Fu={dehydrated:null,treeContext:null,retryLane:0};function Du(e){return{baseLanes:e,cachePool:null,transitions:null}}function Iu(e,n,t){var r,l=n.pendingProps,o=uo.current,u=!1,i=0!==(128&n.flags);if((r=i)||(r=(null===e||null!==e.memoizedState)&&0!==(2&o)),r?(u=!0,n.flags&=-129):null!==e&&null===e.memoizedState||(o|=1),_l(uo,1&o),null===e)return sa(n),null!==(e=n.memoizedState)&&null!==(e=e.dehydrated)?(0===(1&n.mode)?n.lanes=1:"$!"===e.data?n.lanes=8:n.lanes=1073741824,null):(i=l.children,e=l.fallback,u?(l=n.mode,u=n.child,i={mode:"hidden",children:i},0===(1&l)&&null!==u?(u.childLanes=0,u.pendingProps=i):u=Ds(i,l,0,null),e=Fs(e,l,t,null),u.return=n,e.return=n,u.sibling=e,n.child=u,n.child.memoizedState=Du(t),n.memoizedState=Fu,e):ju(n,i));if(null!==(o=e.memoizedState)&&null!==(r=o.dehydrated))return function(e,n,t,r,l,o,u){if(t)return 256&n.flags?(n.flags&=-257,Uu(e,n,u,r=fu(Error(a(422))))):null!==n.memoizedState?(n.child=e.child,n.flags|=128,null):(o=r.fallback,l=n.mode,r=Ds({mode:"visible",children:r.children},l,0,null),(o=Fs(o,l,u,null)).flags|=2,r.return=n,o.return=n,r.sibling=o,n.child=r,0!==(1&n.mode)&&Xa(n,e.child,null,u),n.child.memoizedState=Du(u),n.memoizedState=Fu,o);if(0===(1&n.mode))return Uu(e,n,u,null);if("$!"===l.data){if(r=l.nextSibling&&l.nextSibling.dataset)var i=r.dgst;return r=i,Uu(e,n,u,r=fu(o=Error(a(419)),r,void 0))}if(i=0!==(u&e.childLanes),wu||i){if(null!==(r=zi)){switch(u&-u){case 4:l=2;break;case 16:l=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:l=32;break;case 536870912:l=268435456;break;default:l=0}0!==(l=0!==(l&(r.suspendedLanes|u))?0:l)&&l!==o.retryLane&&(o.retryLane=l,za(e,l),ts(r,e,l,-1))}return ms(),Uu(e,n,u,r=fu(Error(a(421))))}return"$?"===l.data?(n.flags|=128,n.child=e.child,n=Ns.bind(null,e),l._reactRetry=n,null):(e=o.treeContext,ra=sl(l.nextSibling),ta=n,la=!0,aa=null,null!==e&&(ql[Kl++]=Xl,ql[Kl++]=Gl,ql[Kl++]=Yl,Xl=e.id,Gl=e.overflow,Yl=n),(n=ju(n,r.children)).flags|=4096,n)}(e,n,i,l,r,o,t);if(u){u=l.fallback,i=n.mode,r=(o=e.child).sibling;var s={mode:"hidden",children:l.children};return 0===(1&i)&&n.child!==o?((l=n.child).childLanes=0,l.pendingProps=s,n.deletions=null):(l=Rs(o,s)).subtreeFlags=14680064&o.subtreeFlags,null!==r?u=Rs(r,u):(u=Fs(u,i,t,null)).flags|=2,u.return=n,l.return=n,l.sibling=u,n.child=l,l=u,u=n.child,i=null===(i=e.child.memoizedState)?Du(t):{baseLanes:i.baseLanes|t,cachePool:null,transitions:i.transitions},u.memoizedState=i,u.childLanes=e.childLanes&~t,n.memoizedState=Fu,l}return e=(u=e.child).sibling,l=Rs(u,{mode:"visible",children:l.children}),0===(1&n.mode)&&(l.lanes=t),l.return=n,l.sibling=null,null!==e&&(null===(t=n.deletions)?(n.deletions=[e],n.flags|=16):t.push(e)),n.child=l,n.memoizedState=null,l}function ju(e,n){return(n=Ds({mode:"visible",children:n},e.mode,0,null)).return=e,e.child=n}function Uu(e,n,t,r){return null!==r&&ha(r),Xa(n,e.child,null,t),(e=ju(n,n.pendingProps.children)).flags|=2,n.memoizedState=null,e}function Au(e,n,t){e.lanes|=n;var r=e.alternate;null!==r&&(r.lanes|=n),xa(e.return,n,t)}function Vu(e,n,t,r,l){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:n,rendering:null,renderingStartTime:0,last:r,tail:t,tailMode:l}:(a.isBackwards=n,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=t,a.tailMode=l)}function $u(e,n,t){var r=n.pendingProps,l=r.revealOrder,a=r.tail;if(ku(e,n,r.children,t),0!==(2&(r=uo.current)))r=1&r|2,n.flags|=128;else{if(null!==e&&0!==(128&e.flags))e:for(e=n.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Au(e,t,n);else if(19===e.tag)Au(e,t,n);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===n)break e;for(;null===e.sibling;){if(null===e.return||e.return===n)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(_l(uo,r),0===(1&n.mode))n.memoizedState=null;else switch(l){case"forwards":for(t=n.child,l=null;null!==t;)null!==(e=t.alternate)&&null===io(e)&&(l=t),t=t.sibling;null===(t=l)?(l=n.child,n.child=null):(l=t.sibling,t.sibling=null),Vu(n,!1,l,t,a);break;case"backwards":for(t=null,l=n.child,n.child=null;null!==l;){if(null!==(e=l.alternate)&&null===io(e)){n.child=l;break}e=l.sibling,l.sibling=t,t=l,l=e}Vu(n,!0,t,null,a);break;case"together":Vu(n,!1,null,null,void 0);break;default:n.memoizedState=null}return n.child}function Bu(e,n){0===(1&n.mode)&&null!==e&&(e.alternate=null,n.alternate=null,n.flags|=2)}function Hu(e,n,t){if(null!==e&&(n.dependencies=e.dependencies),Di|=n.lanes,0===(t&n.childLanes))return null;if(null!==e&&n.child!==e.child)throw Error(a(153));if(null!==n.child){for(t=Rs(e=n.child,e.pendingProps),n.child=t,t.return=n;null!==e.sibling;)e=e.sibling,(t=t.sibling=Rs(e,e.pendingProps)).return=n;t.sibling=null}return n.child}function Wu(e,n){if(!la)switch(e.tailMode){case"hidden":n=e.tail;for(var t=null;null!==n;)null!==n.alternate&&(t=n),n=n.sibling;null===t?e.tail=null:t.sibling=null;break;case"collapsed":t=e.tail;for(var r=null;null!==t;)null!==t.alternate&&(r=t),t=t.sibling;null===r?n||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function Qu(e){var n=null!==e.alternate&&e.alternate.child===e.child,t=0,r=0;if(n)for(var l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=14680064&l.subtreeFlags,r|=14680064&l.flags,l.return=e,l=l.sibling;else for(l=e.child;null!==l;)t|=l.lanes|l.childLanes,r|=l.subtreeFlags,r|=l.flags,l.return=e,l=l.sibling;return e.subtreeFlags|=r,e.childLanes=t,n}function qu(e,n,t){var r=n.pendingProps;switch(na(n),n.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return Qu(n),null;case 1:case 17:return Ol(n.type)&&Rl(),Qu(n),null;case 3:return r=n.stateNode,lo(),Cl(zl),Cl(Pl),co(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(fa(n)?n.flags|=4:null===e||e.memoizedState.isDehydrated&&0===(256&n.flags)||(n.flags|=1024,null!==aa&&(os(aa),aa=null))),Qu(n),null;case 5:oo(n);var l=to(no.current);if(t=n.type,null!==e&&null!=n.stateNode)Ru(e,n,t,r),e.ref!==n.ref&&(n.flags|=512,n.flags|=2097152);else{if(!r){if(null===n.stateNode)throw Error(a(166));return Qu(n),null}if(e=to(Ja.current),fa(n)){r=n.stateNode,t=n.type;var o=n.memoizedProps;switch(r[dl]=n,r[pl]=o,e=0!==(1&n.mode),t){case"dialog":Ur("cancel",r),Ur("close",r);break;case"iframe":case"object":case"embed":Ur("load",r);break;case"video":case"audio":for(l=0;l<\/script>",e=e.removeChild(e.firstChild)):"string"===typeof r.is?e=i.createElement(t,{is:r.is}):(e=i.createElement(t),"select"===t&&(i=e,r.multiple?i.multiple=!0:r.size&&(i.size=r.size))):e=i.createElementNS(e,t),e[dl]=n,e[pl]=r,Ou(e,n),n.stateNode=e;e:{switch(i=be(t,r),t){case"dialog":Ur("cancel",e),Ur("close",e),l=r;break;case"iframe":case"object":case"embed":Ur("load",e),l=r;break;case"video":case"audio":for(l=0;l$i&&(n.flags|=128,r=!0,Wu(o,!1),n.lanes=4194304)}else{if(!r)if(null!==(e=io(i))){if(n.flags|=128,r=!0,null!==(t=e.updateQueue)&&(n.updateQueue=t,n.flags|=4),Wu(o,!0),null===o.tail&&"hidden"===o.tailMode&&!i.alternate&&!la)return Qu(n),null}else 2*Ge()-o.renderingStartTime>$i&&1073741824!==t&&(n.flags|=128,r=!0,Wu(o,!1),n.lanes=4194304);o.isBackwards?(i.sibling=n.child,n.child=i):(null!==(t=o.last)?t.sibling=i:n.child=i,o.last=i)}return null!==o.tail?(n=o.tail,o.rendering=n,o.tail=n.sibling,o.renderingStartTime=Ge(),n.sibling=null,t=uo.current,_l(uo,r?1&t|2:1&t),n):(Qu(n),null);case 22:case 23:return fs(),r=null!==n.memoizedState,null!==e&&null!==e.memoizedState!==r&&(n.flags|=8192),r&&0!==(1&n.mode)?0!==(1073741824&Oi)&&(Qu(n),6&n.subtreeFlags&&(n.flags|=8192)):Qu(n),null;case 24:case 25:return null}throw Error(a(156,n.tag))}function Ku(e,n){switch(na(n),n.tag){case 1:return Ol(n.type)&&Rl(),65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 3:return lo(),Cl(zl),Cl(Pl),co(),0!==(65536&(e=n.flags))&&0===(128&e)?(n.flags=-65537&e|128,n):null;case 5:return oo(n),null;case 13:if(Cl(uo),null!==(e=n.memoizedState)&&null!==e.dehydrated){if(null===n.alternate)throw Error(a(340));pa()}return 65536&(e=n.flags)?(n.flags=-65537&e|128,n):null;case 19:return Cl(uo),null;case 4:return lo(),null;case 10:return Sa(n.type._context),null;case 22:case 23:return fs(),null;default:return null}}Ou=function(e,n){for(var t=n.child;null!==t;){if(5===t.tag||6===t.tag)e.appendChild(t.stateNode);else if(4!==t.tag&&null!==t.child){t.child.return=t,t=t.child;continue}if(t===n)break;for(;null===t.sibling;){if(null===t.return||t.return===n)return;t=t.return}t.sibling.return=t.return,t=t.sibling}},Ru=function(e,n,t,r){var l=e.memoizedProps;if(l!==r){e=n.stateNode,to(Ja.current);var a,o=null;switch(t){case"input":l=Y(e,l),r=Y(e,r),o=[];break;case"select":l=I({},l,{value:void 0}),r=I({},r,{value:void 0}),o=[];break;case"textarea":l=re(e,l),r=re(e,r),o=[];break;default:"function"!==typeof l.onClick&&"function"===typeof r.onClick&&(e.onclick=Jr)}for(c in ye(t,r),t=null,l)if(!r.hasOwnProperty(c)&&l.hasOwnProperty(c)&&null!=l[c])if("style"===c){var i=l[c];for(a in i)i.hasOwnProperty(a)&&(t||(t={}),t[a]="")}else"dangerouslySetInnerHTML"!==c&&"children"!==c&&"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&"autoFocus"!==c&&(u.hasOwnProperty(c)?o||(o=[]):(o=o||[]).push(c,null));for(c in r){var s=r[c];if(i=null!=l?l[c]:void 0,r.hasOwnProperty(c)&&s!==i&&(null!=s||null!=i))if("style"===c)if(i){for(a in i)!i.hasOwnProperty(a)||s&&s.hasOwnProperty(a)||(t||(t={}),t[a]="");for(a in s)s.hasOwnProperty(a)&&i[a]!==s[a]&&(t||(t={}),t[a]=s[a])}else t||(o||(o=[]),o.push(c,t)),t=s;else"dangerouslySetInnerHTML"===c?(s=s?s.__html:void 0,i=i?i.__html:void 0,null!=s&&i!==s&&(o=o||[]).push(c,s)):"children"===c?"string"!==typeof s&&"number"!==typeof s||(o=o||[]).push(c,""+s):"suppressContentEditableWarning"!==c&&"suppressHydrationWarning"!==c&&(u.hasOwnProperty(c)?(null!=s&&"onScroll"===c&&Ur("scroll",e),o||i===s||(o=[])):(o=o||[]).push(c,s))}t&&(o=o||[]).push("style",t);var c=o;(n.updateQueue=c)&&(n.flags|=4)}},Mu=function(e,n,t,r){t!==r&&(n.flags|=4)};var Yu=!1,Xu=!1,Gu="function"===typeof WeakSet?WeakSet:Set,Zu=null;function Ju(e,n){var t=e.ref;if(null!==t)if("function"===typeof t)try{t(null)}catch(r){Es(e,n,r)}else t.current=null}function ei(e,n,t){try{t()}catch(r){Es(e,n,r)}}var ni=!1;function ti(e,n,t){var r=n.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var l=r=r.next;do{if((l.tag&e)===e){var a=l.destroy;l.destroy=void 0,void 0!==a&&ei(n,t,a)}l=l.next}while(l!==r)}}function ri(e,n){if(null!==(n=null!==(n=n.updateQueue)?n.lastEffect:null)){var t=n=n.next;do{if((t.tag&e)===e){var r=t.create;t.destroy=r()}t=t.next}while(t!==n)}}function li(e){var n=e.ref;if(null!==n){var t=e.stateNode;e.tag,e=t,"function"===typeof n?n(e):n.current=e}}function ai(e){var n=e.alternate;null!==n&&(e.alternate=null,ai(n)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&(null!==(n=e.stateNode)&&(delete n[dl],delete n[pl],delete n[ml],delete n[vl],delete n[gl])),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 oi(e){return 5===e.tag||3===e.tag||4===e.tag}function ui(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||oi(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 ii(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?8===t.nodeType?t.parentNode.insertBefore(e,n):t.insertBefore(e,n):(8===t.nodeType?(n=t.parentNode).insertBefore(e,t):(n=t).appendChild(e),null!==(t=t._reactRootContainer)&&void 0!==t||null!==n.onclick||(n.onclick=Jr));else if(4!==r&&null!==(e=e.child))for(ii(e,n,t),e=e.sibling;null!==e;)ii(e,n,t),e=e.sibling}function si(e,n,t){var r=e.tag;if(5===r||6===r)e=e.stateNode,n?t.insertBefore(e,n):t.appendChild(e);else if(4!==r&&null!==(e=e.child))for(si(e,n,t),e=e.sibling;null!==e;)si(e,n,t),e=e.sibling}var ci=null,fi=!1;function di(e,n,t){for(t=t.child;null!==t;)pi(e,n,t),t=t.sibling}function pi(e,n,t){if(an&&"function"===typeof an.onCommitFiberUnmount)try{an.onCommitFiberUnmount(ln,t)}catch(u){}switch(t.tag){case 5:Xu||Ju(t,n);case 6:var r=ci,l=fi;ci=null,di(e,n,t),fi=l,null!==(ci=r)&&(fi?(e=ci,t=t.stateNode,8===e.nodeType?e.parentNode.removeChild(t):e.removeChild(t)):ci.removeChild(t.stateNode));break;case 18:null!==ci&&(fi?(e=ci,t=t.stateNode,8===e.nodeType?il(e.parentNode,t):1===e.nodeType&&il(e,t),Bn(e)):il(ci,t.stateNode));break;case 4:r=ci,l=fi,ci=t.stateNode.containerInfo,fi=!0,di(e,n,t),ci=r,fi=l;break;case 0:case 11:case 14:case 15:if(!Xu&&(null!==(r=t.updateQueue)&&null!==(r=r.lastEffect))){l=r=r.next;do{var a=l,o=a.destroy;a=a.tag,void 0!==o&&(0!==(2&a)||0!==(4&a))&&ei(t,n,o),l=l.next}while(l!==r)}di(e,n,t);break;case 1:if(!Xu&&(Ju(t,n),"function"===typeof(r=t.stateNode).componentWillUnmount))try{r.props=t.memoizedProps,r.state=t.memoizedState,r.componentWillUnmount()}catch(u){Es(t,n,u)}di(e,n,t);break;case 21:di(e,n,t);break;case 22:1&t.mode?(Xu=(r=Xu)||null!==t.memoizedState,di(e,n,t),Xu=r):di(e,n,t);break;default:di(e,n,t)}}function hi(e){var n=e.updateQueue;if(null!==n){e.updateQueue=null;var t=e.stateNode;null===t&&(t=e.stateNode=new Gu),n.forEach((function(n){var r=Ps.bind(null,e,n);t.has(n)||(t.add(n),n.then(r,r))}))}}function mi(e,n){var t=n.deletions;if(null!==t)for(var r=0;rl&&(l=u),r&=~o}if(r=l,10<(r=(120>(r=Ge()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*Ei(r/1960))-r)){e.timeoutHandle=rl(ks.bind(null,e,Ai,Bi),r);break}ks(e,Ai,Bi);break;default:throw Error(a(329))}}}return rs(e,Ge()),e.callbackNode===t?ls.bind(null,e):null}function as(e,n){var t=Ui;return e.current.memoizedState.isDehydrated&&(ds(e,n).flags|=256),2!==(e=vs(e,n))&&(n=Ai,Ai=t,null!==n&&os(n)),e}function os(e){null===Ai?Ai=e:Ai.push.apply(Ai,e)}function us(e,n){for(n&=~ji,n&=~Ii,e.suspendedLanes|=n,e.pingedLanes&=~n,e=e.expirationTimes;0e?16:e,null===Ki)var r=!1;else{if(e=Ki,Ki=null,Yi=0,0!==(6&Pi))throw Error(a(331));var l=Pi;for(Pi|=4,Zu=e.current;null!==Zu;){var o=Zu,u=o.child;if(0!==(16&Zu.flags)){var i=o.deletions;if(null!==i){for(var s=0;sGe()-Vi?ds(e,0):ji|=t),rs(e,n)}function _s(e,n){0===n&&(0===(1&e.mode)?n=1:(n=fn,0===(130023424&(fn<<=1))&&(fn=4194304)));var t=es();null!==(e=za(e,n))&&(yn(e,n,t),rs(e,t))}function Ns(e){var n=e.memoizedState,t=0;null!==n&&(t=n.retryLane),_s(e,t)}function Ps(e,n){var t=0;switch(e.tag){case 13:var r=e.stateNode,l=e.memoizedState;null!==l&&(t=l.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(n),_s(e,t)}function zs(e,n){return qe(e,n)}function Ts(e,n,t,r){this.tag=e,this.key=t,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=n,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 Ls(e,n,t,r){return new Ts(e,n,t,r)}function Os(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Rs(e,n){var t=e.alternate;return null===t?((t=Ls(e.tag,n,e.key,e.mode)).elementType=e.elementType,t.type=e.type,t.stateNode=e.stateNode,t.alternate=e,e.alternate=t):(t.pendingProps=n,t.type=e.type,t.flags=0,t.subtreeFlags=0,t.deletions=null),t.flags=14680064&e.flags,t.childLanes=e.childLanes,t.lanes=e.lanes,t.child=e.child,t.memoizedProps=e.memoizedProps,t.memoizedState=e.memoizedState,t.updateQueue=e.updateQueue,n=e.dependencies,t.dependencies=null===n?null:{lanes:n.lanes,firstContext:n.firstContext},t.sibling=e.sibling,t.index=e.index,t.ref=e.ref,t}function Ms(e,n,t,r,l,o){var u=2;if(r=e,"function"===typeof e)Os(e)&&(u=1);else if("string"===typeof e)u=5;else e:switch(e){case x:return Fs(t.children,l,o,n);case E:u=8,l|=8;break;case C:return(e=Ls(12,t,n,2|l)).elementType=C,e.lanes=o,e;case z:return(e=Ls(13,t,n,l)).elementType=z,e.lanes=o,e;case T:return(e=Ls(19,t,n,l)).elementType=T,e.lanes=o,e;case R:return Ds(t,l,o,n);default:if("object"===typeof e&&null!==e)switch(e.$$typeof){case _:u=10;break e;case N:u=9;break e;case P:u=11;break e;case L:u=14;break e;case O:u=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(n=Ls(u,t,n,l)).elementType=e,n.type=r,n.lanes=o,n}function Fs(e,n,t,r){return(e=Ls(7,e,r,n)).lanes=t,e}function Ds(e,n,t,r){return(e=Ls(22,e,r,n)).elementType=R,e.lanes=t,e.stateNode={isHidden:!1},e}function Is(e,n,t){return(e=Ls(6,e,null,n)).lanes=t,e}function js(e,n,t){return(n=Ls(4,null!==e.children?e.children:[],e.key,n)).lanes=t,n.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},n}function Us(e,n,t,r,l){this.tag=n,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=gn(0),this.expirationTimes=gn(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gn(0),this.identifierPrefix=r,this.onRecoverableError=l,this.mutableSourceEagerHydrationData=null}function As(e,n,t,r,l,a,o,u,i){return e=new Us(e,n,t,u,i),1===n?(n=1,!0===a&&(n|=8)):n=0,a=Ls(3,null,null,n),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:t,cache:null,transitions:null,pendingSuspenseBoundaries:null},La(a),e}function Vs(e,n,t){var r=3>>1,l=e[r];if(!(0>>1;ra(i,t))sa(c,i)?(e[r]=c,e[s]=t,r=s):(e[r]=i,e[u]=t,r=u);else{if(!(sa(c,t)))break e;e[r]=c,e[s]=t,r=s}}}return n}function a(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"===typeof performance&&"function"===typeof performance.now){var o=performance;n.unstable_now=function(){return o.now()}}else{var u=Date,i=u.now();n.unstable_now=function(){return u.now()-i}}var s=[],c=[],f=1,d=null,p=3,h=!1,m=!1,v=!1,g="function"===typeof setTimeout?setTimeout:null,y="function"===typeof clearTimeout?clearTimeout:null,b="undefined"!==typeof setImmediate?setImmediate:null;function w(e){for(var n=r(c);null!==n;){if(null===n.callback)l(c);else{if(!(n.startTime<=e))break;l(c),n.sortIndex=n.expirationTime,t(s,n)}n=r(c)}}function k(e){if(v=!1,w(e),!m)if(null!==r(s))m=!0,R(S);else{var n=r(c);null!==n&&M(k,n.startTime-e)}}function S(e,t){m=!1,v&&(v=!1,y(_),_=-1),h=!0;var a=p;try{for(w(t),d=r(s);null!==d&&(!(d.expirationTime>t)||e&&!z());){var o=d.callback;if("function"===typeof o){d.callback=null,p=d.priorityLevel;var u=o(d.expirationTime<=t);t=n.unstable_now(),"function"===typeof u?d.callback=u:d===r(s)&&l(s),w(t)}else l(s);d=r(s)}if(null!==d)var i=!0;else{var f=r(c);null!==f&&M(k,f.startTime-t),i=!1}return i}finally{d=null,p=a,h=!1}}"undefined"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var x,E=!1,C=null,_=-1,N=5,P=-1;function z(){return!(n.unstable_now()-Pe||125o?(e.sortIndex=a,t(c,e),null===r(s)&&e===r(c)&&(v?(y(_),_=-1):v=!0,M(k,a-o))):(e.sortIndex=u,t(s,e),m||h||(m=!0,R(S))),e},n.unstable_shouldYield=z,n.unstable_wrapCallback=function(e){var n=p;return function(){var t=p;p=n;try{return e.apply(this,arguments)}finally{p=t}}}},296:function(e,n,t){e.exports=t(813)}},n={};function t(r){var l=n[r];if(void 0!==l)return l.exports;var a=n[r]={exports:{}};return e[r](a,a.exports,t),a.exports}t.m=e,t.d=function(e,n){for(var r in n)t.o(n,r)&&!t.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:n[r]})},t.f={},t.e=function(e){return Promise.all(Object.keys(t.f).reduce((function(n,r){return t.f[r](e,n),n}),[]))},t.u=function(e){return"static/js/"+e+".d4ded463.chunk.js"},t.miniCssF=function(e){},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},function(){var e={},n="math-magicians:";t.l=function(r,l,a,o){if(e[r])e[r].push(l);else{var u,i;if(void 0!==a)for(var s=document.getElementsByTagName("script"),c=0;ce.length)&&(n=e.length);for(var t=0,r=new Array(n);t=5||2===t&&(l[0]>5||5===l[0]&&(r||l[1]!==w))),l.length=1,r?(e.e=e.e-n+1,l[0]=1):l[0]=e.e=0;else if(n=5||2===t&&(l[n]>5||5===l[n]&&(r||l[n+1]!==w||1&l[n-1]))||3===t&&(r||!!l[0]),l.length=n,r)for(;++l[--n]>9;)if(l[n]=0,0===n){++e.e,l.unshift(1);break}for(n=l.length;!l[--n];)l.pop()}return e}function x(e,n,t){var r=e.e,l=e.c.join(""),a=l.length;if(n)l=l.charAt(0)+(a>1?"."+l.slice(1):"")+(r<0?"e":"e+")+r;else if(r<0){for(;++r;)l="0"+l;l="0."+l}else if(r>0)if(++r>a)for(r-=a;r--;)l+="0";else r1&&(l=l.charAt(0)+"."+l.slice(1));return e.s<0&&t?"-"+l:l}b.abs=function(){var e=new this.constructor(this);return e.s=1,e},b.cmp=function(e){var n,t=this,r=t.c,l=(e=new t.constructor(e)).c,a=t.s,o=e.s,u=t.e,i=e.e;if(!r[0]||!l[0])return r[0]?a:l[0]?-o:0;if(a!=o)return a;if(n=a<0,u!=i)return u>i^n?1:-1;for(o=(u=r.length)<(i=l.length)?u:i,a=-1;++al[a]^n?1:-1;return u==i?0:u>i^n?1:-1},b.div=function(e){var n=this,t=n.constructor,r=n.c,l=(e=new t(e)).c,a=n.s==e.s?1:-1,o=t.DP;if(o!==~~o||o<0||o>p)throw Error(g);if(!l[0])throw Error(y);if(!r[0])return e.s=a,e.c=[e.e=0],e;var u,i,s,c,f,d=l.slice(),h=u=l.length,m=r.length,v=r.slice(0,u),b=v.length,k=e,x=k.c=[],E=0,C=o+(k.e=n.e-e.e)+1;for(k.s=a,a=C<0?0:C,d.unshift(0);b++b?1:-1;else for(f=-1,c=0;++fv[f]?1:-1;break}if(!(c<0))break;for(i=b==u?l:d;b;){if(v[--b]C&&S(k,C,t.RM,v[0]!==w),k},b.eq=function(e){return 0===this.cmp(e)},b.gt=function(e){return this.cmp(e)>0},b.gte=function(e){return this.cmp(e)>-1},b.lt=function(e){return this.cmp(e)<0},b.lte=function(e){return this.cmp(e)<1},b.minus=b.sub=function(e){var n,t,r,l,a=this,o=a.constructor,u=a.s,i=(e=new o(e)).s;if(u!=i)return e.s=-i,a.plus(e);var s=a.c.slice(),c=a.e,f=e.c,d=e.e;if(!s[0]||!f[0])return f[0]?e.s=-i:s[0]?e=new o(a):e.s=1,e;if(u=c-d){for((l=u<0)?(u=-u,r=s):(d=c,r=f),r.reverse(),i=u;i--;)r.push(0);r.reverse()}else for(t=((l=s.length0)for(;i--;)s[n++]=0;for(i=n;t>u;){if(s[--t]0?(i=o,r=s):(n=-n,r=u),r.reverse();n--;)r.push(0);r.reverse()}for(u.length-s.length<0&&(r=s,s=u,u=r),n=s.length,t=0;n;u[n]%=10)t=(u[--n]=u[n]+s[n]+t)/10|0;for(t&&(u.unshift(t),++i),n=u.length;0===u[--n];)u.pop();return e.c=u,e.e=i,e},b.pow=function(e){var n=this,t=new n.constructor("1"),r=t,l=e<0;if(e!==~~e||e<-1e6||e>h)throw Error(v+"exponent");for(l&&(e=-e);1&e&&(r=r.times(n)),e>>=1;)n=n.times(n);return l?t.div(r):r},b.prec=function(e,n){if(e!==~~e||e<1||e>p)throw Error(v+"precision");return S(new this.constructor(this),e,n)},b.round=function(e,n){if(e===w)e=0;else if(e!==~~e||e<-p||e>p)throw Error(g);return S(new this.constructor(this),e+this.e+1,n)},b.sqrt=function(){var e,n,t,r=this,l=r.constructor,a=r.s,o=r.e,u=new l("0.5");if(!r.c[0])return new l(r);if(a<0)throw Error(m+"No square root");0===(a=Math.sqrt(r+""))||a===1/0?((n=r.c.join("")).length+o&1||(n+="0"),o=((o+1)/2|0)-(o<0||1&o),e=new l(((a=Math.sqrt(n))==1/0?"5e":(a=a.toExponential()).slice(0,a.indexOf("e")+1))+o)):e=new l(a+""),o=e.e+(l.DP+=4);do{t=e,e=u.times(t.plus(r.div(t)))}while(t.c.slice(0,o).join("")!==e.c.slice(0,o).join(""));return S(e,(l.DP-=4)+e.e+1,l.RM)},b.times=b.mul=function(e){var n,t=this,r=t.constructor,l=t.c,a=(e=new r(e)).c,o=l.length,u=a.length,i=t.e,s=e.e;if(e.s=t.s==e.s?1:-1,!l[0]||!a[0])return e.c=[e.e=0],e;for(e.e=i+s,oi;)u=n[s]+a[i]*l[s-i-1]+u,n[s--]=u%10,u=u/10|0;n[s]=u}for(u?++e.e:n.shift(),i=n.length;!n[--i];)n.pop();return e.c=n,e},b.toExponential=function(e,n){var t=this,r=t.c[0];if(e!==w){if(e!==~~e||e<0||e>p)throw Error(g);for(t=S(new t.constructor(t),++e,n);t.c.lengthp)throw Error(g);for(e=e+(t=S(new t.constructor(t),e+t.e+1,n)).e+1;t.c.length=n.PE,!!e.c[0])},b.toNumber=function(){var e=Number(x(this,!0,!0));if(!0===this.constructor.strict&&!this.eq(e.toString()))throw Error(m+"Imprecise conversion");return e},b.toPrecision=function(e,n){var t=this,r=t.constructor,l=t.c[0];if(e!==w){if(e!==~~e||e<1||e>p)throw Error(v+"precision");for(t=S(new r(t),e,n);t.c.length=r.PE,!!l)},b.valueOf=function(){var e=this,n=e.constructor;if(!0===n.strict)throw Error(m+"valueOf disallowed");return x(e,e.e<=n.NE||e.e>=n.PE,!0)};var E=function e(){function n(t){var r=this;if(!(r instanceof n))return t===w?e():new n(t);if(t instanceof n)r.s=t.s,r.e=t.e,r.c=t.c.slice();else{if("string"!==typeof t){if(!0===n.strict&&"bigint"!==typeof t)throw TypeError(v+"value");t=0===t&&1/t<0?"-0":String(t)}!function(e,n){var t,r,l;if(!k.test(n))throw Error(v+"number");e.s="-"==n.charAt(0)?(n=n.slice(1),-1):1,(t=n.indexOf("."))>-1&&(n=n.replace(".",""));(r=n.search(/e/i))>0?(t<0&&(t=r),t+=+n.slice(r+1),n=n.substring(0,r)):t<0&&(t=n.length);for(l=n.length,r=0;r0&&"0"==n.charAt(--l););for(e.e=t-r-1,e.c=[],t=0;r<=l;)e.c[t++]=+n.charAt(r++)}}(r,t)}r.constructor=n}return n.prototype=b,n.DP=20,n.RM=1,n.NE=-7,n.PE=21,n.strict=false,n.roundDown=0,n.roundHalfUp=1,n.roundHalfEven=2,n.roundUp=3,n}(),C=E;function _(e,n,t){var r=C(e),l=C(n);if("+"===t)return r.plus(l).toString();if("-"===t)return r.minus(l).toString();if("x"===t)return r.times(l).toString();if("\xf7"===t)try{return r.div(l).toString()}catch(a){return"Can't divide by 0."}if("%"===t)try{return r.mod(l).toString()}catch(a){return"Can't find modulo as can't divide by 0."}throw Error("Unknown operation '".concat(t,"'"))}function N(e,n){return"AC"===n?{total:null,next:null,operation:null}:n.match(/[0-9]+/)?"0"===n&&"0"===e.next?{}:e.operation?e.next&&"0"!==e.next?d(d({},e),{},{next:e.next+n}):d(d({},e),{},{next:n}):e.next&&"0"!==e.next?{next:e.next+n,total:null}:{next:n,total:null}:"."===n?e.next?e.next.includes(".")?d({},e):d(d({},e),{},{next:"".concat(e.next,".")}):e.operation?d(d({},e),{},{next:"0."}):e.total?e.total.includes(".")?{}:d(d({},e),{},{next:"".concat(e.total,".")}):d(d({},e),{},{next:"0."}):"="===n?e.next&&e.operation?{total:_(e.total,e.next,e.operation),next:null,operation:null}:{}:"+/-"===n?e.next?d(d({},e),{},{next:(-1*parseFloat(e.next)).toString()}):e.total?d(d({},e),{},{total:(-1*parseFloat(e.total)).toString()}):{}:e.next||!e.total||e.operation?e.operation?e.total&&!e.next?d(d({},e),{},{operation:n}):e.total?{total:_(e.total,e.next,e.operation),next:null,operation:n}:{total:0,operation:n}:e.next?{total:e.next,next:null,operation:n}:{operation:n}:d(d({},e),{},{operation:n})}var P=function(){var n=a((0,e.useState)({obj:{total:null,next:null,operation:null}}),2),t=n[0],r=n[1],l=function(e){var n=t.obj;r({obj:N(n,e.target.textContent)})},c=t.obj,f=c.total,d=c.next,p=c.operation;return(0,o.jsxs)("div",{className:"calc-container",children:[(0,o.jsx)(u,{next:d,total:f,operation:p}),(0,o.jsx)(s,{handleClick:l}),(0,o.jsx)(i,{handleClick:l})]})},z=function(){return(0,o.jsx)("div",{className:"calculator-container",children:(0,o.jsx)(P,{})})};n.createRoot(document.getElementById("root")).render((0,o.jsx)(e.StrictMode,{children:(0,o.jsx)("div",{children:(0,o.jsx)(z,{})})})),r()}()}();
3 | //# sourceMappingURL=main.ee9d1ec6.js.map
--------------------------------------------------------------------------------
/build/static/js/main.ee9d1ec6.js.LICENSE.txt:
--------------------------------------------------------------------------------
1 | /**
2 | * @license React
3 | * react-dom.production.min.js
4 | *
5 | * Copyright (c) Facebook, Inc. and its affiliates.
6 | *
7 | * This source code is licensed under the MIT license found in the
8 | * LICENSE file in the root directory of this source tree.
9 | */
10 |
11 | /**
12 | * @license React
13 | * react-jsx-runtime.production.min.js
14 | *
15 | * Copyright (c) Facebook, Inc. and its affiliates.
16 | *
17 | * This source code is licensed under the MIT license found in the
18 | * LICENSE file in the root directory of this source tree.
19 | */
20 |
21 | /**
22 | * @license React
23 | * react.production.min.js
24 | *
25 | * Copyright (c) Facebook, Inc. and its affiliates.
26 | *
27 | * This source code is licensed under the MIT license found in the
28 | * LICENSE file in the root directory of this source tree.
29 | */
30 |
31 | /**
32 | * @license React
33 | * scheduler.production.min.js
34 | *
35 | * Copyright (c) Facebook, Inc. and its affiliates.
36 | *
37 | * This source code is licensed under the MIT license found in the
38 | * LICENSE file in the root directory of this source tree.
39 | */
40 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "math-magicians",
3 | "version": "0.1.0",
4 | "private": true,
5 | "dependencies": {
6 | "@testing-library/jest-dom": "^5.16.5",
7 | "@testing-library/user-event": "^13.5.0",
8 | "big.js": "^6.2.1",
9 | "bootstrap": "^5.2.0",
10 | "react": "^18.2.0",
11 | "react-bootstrap": "^2.5.0",
12 | "react-dom": "^18.2.0",
13 | "react-router-dom": "^6.4.0",
14 | "react-scripts": "5.0.1",
15 | "react-test-renderer": "^18.2.0",
16 | "web-vitals": "^2.1.4"
17 | },
18 | "scripts": {
19 | "start": "react-scripts start",
20 | "build": "react-scripts build",
21 | "test": "react-scripts test",
22 | "eject": "react-scripts eject",
23 | "deploy": "gh-pages -d build/"
24 | },
25 | "eslintConfig": {
26 | "extends": [
27 | "react-app",
28 | "react-app/jest"
29 | ]
30 | },
31 | "browserslist": {
32 | "production": [
33 | ">0.2%",
34 | "not dead",
35 | "not op_mini all"
36 | ],
37 | "development": [
38 | "last 1 chrome version",
39 | "last 1 firefox version",
40 | "last 1 safari version"
41 | ]
42 | },
43 | "devDependencies": {
44 | "@babel/core": "^7.19.0",
45 | "@babel/eslint-parser": "^7.18.9",
46 | "@babel/plugin-syntax-jsx": "^7.18.6",
47 | "@babel/preset-env": "^7.19.0",
48 | "@babel/preset-react": "^7.18.6",
49 | "@testing-library/react": "^13.4.0",
50 | "eslint": "^7.32.0",
51 | "eslint-config-airbnb": "^18.2.1",
52 | "eslint-plugin-import": "^2.26.0",
53 | "eslint-plugin-jsx-a11y": "^6.6.1",
54 | "eslint-plugin-react": "^7.31.7",
55 | "eslint-plugin-react-hooks": "^4.6.0",
56 | "gh-pages": "^4.0.0",
57 | "jest": "^27.5.1",
58 | "react-test-renderer": "^18.2.0",
59 | "stylelint": "^13.13.1",
60 | "stylelint-config-standard": "^21.0.0",
61 | "stylelint-csstree-validator": "^1.9.0",
62 | "stylelint-scss": "^3.21.0"
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | React App
28 |
29 |
30 |
31 |
32 |
42 |
43 |
44 |
--------------------------------------------------------------------------------
/src/Pages/Home.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const HomeStyle = {
4 | width: '70%',
5 | margin: 'auto',
6 | transform: 'translateY(120px)',
7 | textAlign: 'justify',
8 | };
9 |
10 | const HeaderStyle = {
11 | textAlign: 'center',
12 | margin: '20px',
13 | color: '#f5913e',
14 | };
15 |
16 | const Home = () => (
17 | <>
18 |
19 |
20 | Welcome to Our Page
21 |
22 |
23 | Lorem ipsum dolor sit amet consectetur adipisicing elit.
24 | Vitae consectetur amet beatae. Porro, dignissimos,
25 | facere consequatur commodi autem laborum quibusdam aliquid
26 | officia consectetur nemo voluptates illo, pariatur necessitatibus
27 | veniam illum sapiente. Quibusdam velit cupiditate sit molestias,
28 | aliquid doloribus tenetur beatae, dicta a animi praesentium impedit
29 | excepturi aliquam? Dolor adipisci perspiciatis nobis voluptas
30 | praesentium magni rem nulla ipsa accusantium omnis velit illum
31 | nam qui reiciendis possimus, cupiditate officia illo vero! Provident.
32 |
33 |
34 | >
35 | );
36 | export default Home;
37 |
--------------------------------------------------------------------------------
/src/Pages/NavBar.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Link } from 'react-router-dom';
3 |
4 | const HeaderStyle = {
5 | color: 'bisque',
6 | };
7 |
8 | const NavBar = () => (
9 | <>
10 |
21 | >
22 | );
23 |
24 | export default NavBar;
25 |
--------------------------------------------------------------------------------
/src/Pages/Quotes.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const quoteStyle = {
4 | width: '70%',
5 | margin: 'auto',
6 | transform: 'translateY(120px)',
7 | textAlign: 'justify',
8 | };
9 |
10 | const Quote = () => (
11 | <>
12 |
13 |
14 | Mathematics are the result of mysterious powers
15 | which no one understands, and which the unconscious
16 | recognition of beauty must play an important part.
17 | Out of an infinity of designs a mathematician chooses
18 | one pattern for beauty’s sake and pulls it down to earth.
19 |
20 |
21 | — Marston Morse,
22 | American mathematician
23 |
24 |
25 |
26 | >
27 | );
28 | export default Quote;
29 |
--------------------------------------------------------------------------------
/src/__test__/DisplayScreen.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import DisplayScreen from '../components/displayScreen';
4 |
5 | it('renders DisplayScreen correctly', () => {
6 | const tree = renderer.create();
7 | expect(tree).toMatchSnapshot();
8 | });
9 |
--------------------------------------------------------------------------------
/src/__test__/__snapshots__/DisplayScreen.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`renders DisplayScreen correctly 1`] = `
4 |
7 |
10 |
11 | `;
12 |
--------------------------------------------------------------------------------
/src/__test__/__snapshots__/calculator.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`renders Calculator correctly 1`] = `
4 |
7 |
10 |
13 |
14 |
21 |
28 |
35 |
42 |
49 |
56 |
63 |
70 |
73 |
81 |
89 |
97 |
105 |
113 |
121 |
129 |
137 |
145 |
153 |
161 |
162 |
163 | `;
164 |
--------------------------------------------------------------------------------
/src/__test__/__snapshots__/numericKeys.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`renders NumericKeys correctly 1`] = `
4 |
7 |
14 |
21 |
28 |
35 |
42 |
49 |
56 |
63 |
70 |
77 |
84 |
85 | `;
86 |
--------------------------------------------------------------------------------
/src/__test__/__snapshots__/operatorKeys.test.js.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`renders NumericKeys correctly 1`] = `
4 | Array [
5 | ,
11 | ,
17 | ,
23 | ,
29 | ,
35 | ,
41 | ,
47 | ,
53 | ]
54 | `;
55 |
--------------------------------------------------------------------------------
/src/__test__/button.test.js:
--------------------------------------------------------------------------------
1 | import { screen, fireEvent, render } from '@testing-library/react';
2 | import NumberKeys from '../components/numericKeys';
3 |
4 | test('Testing onClick events', () => {
5 | render();
6 | const fireOne = screen.getByTestId('one');
7 | fireEvent.click(fireOne);
8 | expect(screen.getByTestId('one')).toHaveTextContent(1);
9 | });
10 | test('Testing onClick events', () => {
11 | render();
12 | const fireFullStop = screen.getByTestId('full-stop');
13 | fireEvent.click(fireFullStop);
14 | expect(screen.getByTestId('full-stop')).toHaveTextContent('.');
15 | });
16 |
17 | test('Testing onClick events', () => {
18 | render();
19 | const fireFullStop = screen.getByTestId('five');
20 | fireEvent.click(fireFullStop);
21 | expect(screen.getByTestId('five')).toHaveTextContent('5');
22 | });
23 | test('Testing onClick events', () => {
24 | render();
25 | const fireFullStop = screen.getByTestId('four');
26 | fireEvent.click(fireFullStop);
27 | expect(screen.getByTestId('four')).toHaveTextContent(4);
28 | });
29 | test('Testing onClick events', () => {
30 | render();
31 | const fireFullStop = screen.getByTestId('three');
32 | fireEvent.click(fireFullStop);
33 | expect(screen.getByTestId('three')).toHaveTextContent('3');
34 | });
35 |
--------------------------------------------------------------------------------
/src/__test__/calculator.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import Calculator from '../components/calculator';
4 |
5 | it('renders Calculator correctly', () => {
6 | const tree = renderer.create();
7 | expect(tree).toMatchSnapshot();
8 | });
9 |
--------------------------------------------------------------------------------
/src/__test__/numericKeys.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import NumberKeys from '../components/numericKeys';
4 |
5 | it('renders NumericKeys correctly', () => {
6 | const tree = renderer.create();
7 | expect(tree).toMatchSnapshot();
8 | });
9 |
--------------------------------------------------------------------------------
/src/__test__/operatorKeys.test.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import renderer from 'react-test-renderer';
3 | import OperatorKeys from '../components/operatorkeys';
4 |
5 | it('renders NumericKeys correctly', () => {
6 | const tree = renderer.create();
7 | expect(tree).toMatchSnapshot();
8 | });
9 |
--------------------------------------------------------------------------------
/src/app.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Route, Routes } from 'react-router-dom';
3 | import Calculator from './components/calculator';
4 | import Home from './Pages/Home';
5 | import Quote from './Pages/Quotes';
6 | import NavBar from './Pages/NavBar';
7 |
8 | const App = () => (
9 | <>
10 |
11 |
12 | } />
13 | } />
14 | } />
15 |
16 | >
17 | );
18 |
19 | export default App;
20 |
--------------------------------------------------------------------------------
/src/components/calculator.js:
--------------------------------------------------------------------------------
1 | // import { render } from '@testing-library/react';
2 | import React, { useState } from 'react';
3 | import DisplayScreen from './displayScreen';
4 | import NumericKeys from './numericKeys';
5 | import OperatorKeys from './operatorkeys';
6 | import calculate from './logic/calculate';
7 |
8 | const Calculator = () => {
9 | const [state, setState] = useState({
10 | obj: {
11 | total: null,
12 | next: null,
13 | operation: null,
14 | },
15 | });
16 |
17 | const handleClick = (event) => {
18 | const { obj } = state;
19 | setState({ obj: calculate(obj, event.target.textContent) });
20 | };
21 | const { obj } = state;
22 | const { total, next, operation } = obj;
23 | return (
24 |
25 |
26 |
27 |
28 |
29 | );
30 | };
31 | export default Calculator;
32 |
--------------------------------------------------------------------------------
/src/components/displayScreen.js:
--------------------------------------------------------------------------------
1 | /*eslint-disable*/
2 | import React from 'react';
3 |
4 | const DisplayScreen = (props) => {
5 | const { total, next, operation } = props;
6 | return (
7 |
8 |
9 | {total}
10 | {operation}
11 | {next}
12 |
13 |
14 | );
15 | }
16 |
17 | export default DisplayScreen;
18 |
--------------------------------------------------------------------------------
/src/components/logic/calculate.js:
--------------------------------------------------------------------------------
1 | import operate from './operate';
2 |
3 | function isNumber(item) {
4 | return !!item.match(/[0-9]+/);
5 | }
6 |
7 | /**
8 | * Given a button name and a calculator data object, return an updated
9 | * calculator data object.
10 | *
11 | * Calculator data object contains:
12 | * total:s the running total
13 | * next:String the next number to be operated on with the total
14 | * operation:String +, -, etc.
15 | */
16 | export default function calculate(obj, buttonName) {
17 | if (buttonName === 'AC') {
18 | return {
19 | total: null,
20 | next: null,
21 | operation: null,
22 | };
23 | }
24 |
25 | if (isNumber(buttonName)) {
26 | if (buttonName === '0' && obj.next === '0') {
27 | return {};
28 | }
29 | // If there is an operation, update next
30 | if (obj.operation) {
31 | if (obj.next && obj.next !== '0') {
32 | return { ...obj, next: obj.next + buttonName };
33 | }
34 | return { ...obj, next: buttonName };
35 | }
36 | // If there is no operation, update next and clear the value
37 | if (obj.next && obj.next !== '0') {
38 | return {
39 | next: obj.next + buttonName,
40 | total: null,
41 | };
42 | }
43 | return {
44 | next: buttonName,
45 | total: null,
46 | };
47 | }
48 |
49 | if (buttonName === '.') { // . =>
50 | if (obj.next) {
51 | if (obj.next.includes('.')) { // 0
52 | return { ...obj };
53 | }
54 | return { ...obj, next: `${obj.next}.` };
55 | }
56 | if (obj.operation) { // 0.7 *
57 | return { ...obj, next: '0.' };
58 | }
59 | if (obj.total) { // 0
60 | if (obj.total.includes('.')) {
61 | return {};
62 | }
63 | return { ...obj, next: `${obj.total}.` };
64 | }
65 | return { ...obj, next: '0.' };
66 | }
67 |
68 | if (buttonName === '=') {
69 | if (obj.next && obj.operation) {
70 | return {
71 | total: operate(obj.total, obj.next, obj.operation),
72 | next: null,
73 | operation: null,
74 | };
75 | }
76 | // '=' with no operation, nothing to do
77 | return {};
78 | }
79 |
80 | if (buttonName === '+/-') {
81 | if (obj.next) {
82 | return { ...obj, next: (-1 * parseFloat(obj.next)).toString() };
83 | }
84 | if (obj.total) {
85 | return { ...obj, total: (-1 * parseFloat(obj.total)).toString() };
86 | }
87 | return {};
88 | }
89 |
90 | // User pressed an operation after pressing '='
91 | if (!obj.next && obj.total && !obj.operation) {
92 | return { ...obj, operation: buttonName };
93 | }
94 |
95 | // User pressed an operation button and there is an existing operation
96 | if (obj.operation) {
97 | if (obj.total && !obj.next) {
98 | return { ...obj, operation: buttonName };
99 | }
100 |
101 | if (!obj.total) {
102 | return { total: 0, operation: buttonName };
103 | }
104 |
105 | return {
106 | total: operate(obj.total, obj.next, obj.operation),
107 | next: null,
108 | operation: buttonName,
109 | };
110 | }
111 |
112 | // no operation yet, but the user typed one
113 |
114 | // The user hasn't typed a number yet, just save the operation
115 | if (!obj.next) {
116 | return { operation: buttonName };
117 | }
118 |
119 | // save the operation and shift 'next' into 'total'
120 | return {
121 | total: obj.next,
122 | next: null,
123 | operation: buttonName,
124 | };
125 | }
126 |
--------------------------------------------------------------------------------
/src/components/logic/logic.test.js:
--------------------------------------------------------------------------------
1 | import calculate from './calculate';
2 | import operate from './operate';
3 |
4 | describe('Testing logic components', () => {
5 | test('Test the calculator logic', () => {
6 | const data = {
7 | total: 4,
8 | next: 6,
9 | operation: null,
10 | };
11 | const value = { total: 6, next: null, operation: '+' };
12 | expect(calculate(data, '+')).toEqual(value);
13 | });
14 | test('Test subtraction with operator', () => {
15 | expect(operate(10, 4, '-')).toBe('6');
16 | });
17 | test('Test mupltiplication with operator', () => {
18 | expect(operate(8, 4, 'x')).toBe('32');
19 | });
20 | test('Test division with operator', () => {
21 | expect(operate(8, 4, '÷')).toBe('2');
22 | });
23 | });
24 |
--------------------------------------------------------------------------------
/src/components/logic/operate.js:
--------------------------------------------------------------------------------
1 | import Big from 'big.js';
2 |
3 | export default function operate(numberOne, numberTwo, operation) {
4 | const one = Big(numberOne);
5 | const two = Big(numberTwo);
6 | if (operation === '+') {
7 | return one.plus(two).toString();
8 | }
9 | if (operation === '-') {
10 | return one.minus(two).toString();
11 | }
12 | if (operation === 'x') {
13 | return one.times(two).toString();
14 | }
15 | if (operation === '÷') {
16 | try {
17 | return one.div(two).toString();
18 | } catch (err) {
19 | return "Can't divide by 0.";
20 | }
21 | }
22 | if (operation === '%') {
23 | try {
24 | return one.mod(two).toString();
25 | } catch (err) {
26 | return "Can't find modulo as can't divide by 0.";
27 | }
28 | }
29 | throw Error(`Unknown operation '${operation}'`);
30 | }
31 |
--------------------------------------------------------------------------------
/src/components/numericKeys.js:
--------------------------------------------------------------------------------
1 | /*eslint-disable*/
2 |
3 | import React from 'react';
4 |
5 | const NumberKeys = (props) => {
6 |
7 | const { handleClick } = props;
8 | return (
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | );
23 | }
24 |
25 | export default NumberKeys;
26 |
--------------------------------------------------------------------------------
/src/components/operatorkeys.js:
--------------------------------------------------------------------------------
1 | /*eslint-disable*/
2 | import React from 'react';
3 |
4 | const OperatorKeys = (props) => {
5 | const { handleClick } = props;
6 | return (
7 | <>
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 | >
17 | );
18 | };
19 | export default OperatorKeys;
20 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | body {
2 | margin: 0;
3 | font-family:
4 | -apple-system,
5 | BlinkMacSystemFont,
6 | 'Segoe UI',
7 | 'Roboto',
8 | 'Oxygen',
9 | 'Ubuntu',
10 | 'Cantarell',
11 | 'Fira Sans',
12 | 'Droid Sans',
13 | 'Helvetica Neue',
14 | sans-serif;
15 | -webkit-font-smoothing: antialiased;
16 | -moz-osx-font-smoothing: grayscale;
17 | }
18 |
19 | code {
20 | font-family:
21 | source-code-pro,
22 | Menlo,
23 | Monaco,
24 | Consolas,
25 | 'Courier New',
26 | monospace;
27 | }
28 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ReactDOM from 'react-dom/client';
3 | import { BrowserRouter } from 'react-router-dom';
4 | import './style.css';
5 | import reportWebVitals from './reportWebVitals';
6 | import App from './app';
7 |
8 | const root = ReactDOM.createRoot(document.getElementById('root'));
9 | root.render(
10 |
11 |
12 |
13 |
14 | ,
15 | );
16 |
17 | reportWebVitals();
18 |
--------------------------------------------------------------------------------
/src/reportWebVitals.js:
--------------------------------------------------------------------------------
1 | const reportWebVitals = (onPerfEntry) => {
2 | if (onPerfEntry && onPerfEntry instanceof Function) {
3 | import('web-vitals').then(({
4 | getCLS, getFID, getFCP, getLCP, getTTFB,
5 | }) => {
6 | getCLS(onPerfEntry);
7 | getFID(onPerfEntry);
8 | getFCP(onPerfEntry);
9 | getLCP(onPerfEntry);
10 | getTTFB(onPerfEntry);
11 | });
12 | }
13 | };
14 |
15 | export default reportWebVitals;
16 |
--------------------------------------------------------------------------------
/src/setupTests.js:
--------------------------------------------------------------------------------
1 | // jest-dom adds custom jest matchers for asserting on DOM nodes.
2 | // allows you to do things like:
3 | // expect(element).toHaveTextContent(/react/i)
4 | // learn more: https://github.com/testing-library/jest-dom
5 | import '@testing-library/jest-dom';
6 |
--------------------------------------------------------------------------------
/src/style.css:
--------------------------------------------------------------------------------
1 | @import url('https://fonts.googleapis.com/css2?family=Crete+Round&family=Inter:wght@400;500;600;700;800&family=Poppins&family=Roboto:wght@700&display=swap');
2 |
3 | * {
4 | padding: 0;
5 | margin: 0;
6 | box-sizing: border-box;
7 | font-family: "Inter", sans-serif;
8 | }
9 |
10 | html {
11 | font-size: calc(15px + 0.390625vw);
12 | }
13 |
14 | .calculator-container {
15 | display: flex;
16 | align-items: center;
17 | justify-content: center;
18 | height: 100vh;
19 | }
20 |
21 | .calc-container {
22 | width: 80%;
23 | margin: 5rem auto;
24 | display: grid;
25 | grid-template-columns: repeat(4, minmax(0, 1fr));
26 | grid-template-rows: repeat(6, minmax(0, 1fr));
27 | max-inline-size: 22rem;
28 | border-radius: 10px;
29 | overflow: hidden;
30 | box-shadow:
31 | 0 3px 8px 0 rgba(0, 0, 0, 0.15),
32 | 0 2px 6px 0 rgba(0, 0, 0, 0.12);
33 | }
34 |
35 | .displayscreen-cont {
36 | grid-column: 1/ 5;
37 | grid-row: 1 / 2;
38 | width: 100%;
39 | background: rgb(66, 76, 82) none repeat scroll 0% 0%;
40 | color: #fff;
41 | }
42 |
43 | .display-screen {
44 | width: 150px;
45 | padding: 12px 4px;
46 | font-size: 2rem;
47 | text-align: end;
48 | color: #fff;
49 | border: none;
50 | outline: none;
51 | }
52 |
53 | .btn {
54 | background-color: #e0e0e0;
55 | padding: 10px 0;
56 | border: 0.01px solid hsl(0, 0%, 80%);
57 | outline: none;
58 | transition: 0.05s ease-in-out;
59 | font-size: 1.1rem;
60 | }
61 |
62 | .btn:active {
63 | background-color: hsl(0, 0%, 78%);
64 | }
65 |
66 | .btn-top {
67 | grid-row: 2 / 3;
68 | }
69 |
70 | .btn-side {
71 | background-color: #f5913e;
72 | grid-column: 4/ 5;
73 | }
74 |
75 | .btn-side:active {
76 | background-color: hsl(27, 90%, 50%);
77 | }
78 |
79 | .numbers {
80 | grid-column: 1/ 4;
81 | grid-row: 3/ 7;
82 | display: grid;
83 | grid-template-columns: repeat(3, minmax(0, 1fr));
84 | }
85 |
86 | .col-span-2 {
87 | grid-column: 1 / 3;
88 | }
89 |
90 | .nav-container {
91 | padding: 20px;
92 | background-color: #424c52;
93 | display: flex;
94 | justify-content: space-between;
95 | box-shadow: 0 0 8px #424c52;
96 | }
97 |
98 | ul {
99 | display: flex;
100 | list-style: none;
101 | gap: 10px;
102 | }
103 |
104 | .link a {
105 | text-decoration: none;
106 | color: bisque;
107 | }
108 |
109 | .link a:hover {
110 | text-decoration: none;
111 | color: #f5913e;
112 | }
113 |
--------------------------------------------------------------------------------