From 3bcad072ea2fbd88fa6983344aac7c68d656c118 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= Date: Tue, 23 Mar 2021 17:36:02 +0100 Subject: [PATCH 1/6] added code --- code/01-starting-setup/package.json | 38 ++++++++++++ code/01-starting-setup/public/favicon.ico | Bin 0 -> 3870 bytes code/01-starting-setup/public/index.html | 43 ++++++++++++++ code/01-starting-setup/public/logo192.png | Bin 0 -> 5347 bytes code/01-starting-setup/public/logo512.png | Bin 0 -> 9664 bytes code/01-starting-setup/public/manifest.json | 25 ++++++++ code/01-starting-setup/public/robots.txt | 3 + code/01-starting-setup/src/App.js | 9 +++ code/01-starting-setup/src/index.css | 15 +++++ code/01-starting-setup/src/index.js | 6 ++ .../package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + .../src/App.js | 12 ++++ .../src/components/ExpenseItem.js | 5 ++ .../src/index.css | 15 +++++ .../src/index.js | 6 ++ .../package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + .../src/App.js | 12 ++++ .../src/components/ExpenseItem.js | 13 ++++ .../src/index.css | 15 +++++ .../src/index.js | 6 ++ code/04-adding-basic-css-styling/package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + code/04-adding-basic-css-styling/src/App.js | 12 ++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 15 +++++ .../04-adding-basic-css-styling/src/index.css | 15 +++++ code/04-adding-basic-css-styling/src/index.js | 6 ++ code/05-outputting-dynamic-data/package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + code/05-outputting-dynamic-data/src/App.js | 12 ++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 19 ++++++ code/05-outputting-dynamic-data/src/index.css | 15 +++++ code/05-outputting-dynamic-data/src/index.js | 6 ++ code/06-passing-data-via-props/package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + code/06-passing-data-via-props/src/App.js | 53 +++++++++++++++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 15 +++++ code/06-passing-data-via-props/src/index.css | 15 +++++ code/06-passing-data-via-props/src/index.js | 6 ++ .../package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + .../src/App.js | 53 +++++++++++++++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 23 +++++++ .../src/index.css | 15 +++++ .../src/index.js | 6 ++ .../package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + .../src/App.js | 53 +++++++++++++++++ .../src/components/ExpenseDate.css | 26 ++++++++ .../src/components/ExpenseDate.js | 17 ++++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 16 +++++ .../src/index.css | 15 +++++ .../src/index.js | 6 ++ code/09-assignment-1-solution/package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + code/09-assignment-1-solution/src/App.js | 34 +++++++++++ .../src/components/ExpenseDate.css | 26 ++++++++ .../src/components/ExpenseDate.js | 17 ++++++ .../src/components/ExpenseItem.css | 56 ++++++++++++++++++ .../src/components/ExpenseItem.js | 16 +++++ .../src/components/Expenses.css | 9 +++ .../src/components/Expenses.js | 31 ++++++++++ code/09-assignment-1-solution/src/index.css | 15 +++++ code/09-assignment-1-solution/src/index.js | 6 ++ .../package.json | 38 ++++++++++++ .../public/favicon.ico | Bin 0 -> 3870 bytes .../public/index.html | 43 ++++++++++++++ .../public/logo192.png | Bin 0 -> 5347 bytes .../public/logo512.png | Bin 0 -> 9664 bytes .../public/manifest.json | 25 ++++++++ .../public/robots.txt | 3 + code/10-the-concept-of-composition/src/App.js | 34 +++++++++++ .../src/components/Card.css | 4 ++ .../src/components/Card.js | 9 +++ .../src/components/ExpenseDate.css | 26 ++++++++ .../src/components/ExpenseDate.js | 17 ++++++ .../src/components/ExpenseItem.css | 54 +++++++++++++++++ .../src/components/ExpenseItem.js | 17 ++++++ .../src/components/Expenses.css | 7 +++ .../src/components/Expenses.js | 32 ++++++++++ .../src/index.css | 15 +++++ .../src/index.js | 6 ++ 128 files changed, 2334 insertions(+) create mode 100644 code/01-starting-setup/package.json create mode 100644 code/01-starting-setup/public/favicon.ico create mode 100644 code/01-starting-setup/public/index.html create mode 100644 code/01-starting-setup/public/logo192.png create mode 100644 code/01-starting-setup/public/logo512.png create mode 100644 code/01-starting-setup/public/manifest.json create mode 100644 code/01-starting-setup/public/robots.txt create mode 100644 code/01-starting-setup/src/App.js create mode 100644 code/01-starting-setup/src/index.css create mode 100644 code/01-starting-setup/src/index.js create mode 100644 code/02-building-a-first-custom-component/package.json create mode 100644 code/02-building-a-first-custom-component/public/favicon.ico create mode 100644 code/02-building-a-first-custom-component/public/index.html create mode 100644 code/02-building-a-first-custom-component/public/logo192.png create mode 100644 code/02-building-a-first-custom-component/public/logo512.png create mode 100644 code/02-building-a-first-custom-component/public/manifest.json create mode 100644 code/02-building-a-first-custom-component/public/robots.txt create mode 100644 code/02-building-a-first-custom-component/src/App.js create mode 100644 code/02-building-a-first-custom-component/src/components/ExpenseItem.js create mode 100644 code/02-building-a-first-custom-component/src/index.css create mode 100644 code/02-building-a-first-custom-component/src/index.js create mode 100644 code/03-writing-more-complex-jsx-code/package.json create mode 100644 code/03-writing-more-complex-jsx-code/public/favicon.ico create mode 100644 code/03-writing-more-complex-jsx-code/public/index.html create mode 100644 code/03-writing-more-complex-jsx-code/public/logo192.png create mode 100644 code/03-writing-more-complex-jsx-code/public/logo512.png create mode 100644 code/03-writing-more-complex-jsx-code/public/manifest.json create mode 100644 code/03-writing-more-complex-jsx-code/public/robots.txt create mode 100644 code/03-writing-more-complex-jsx-code/src/App.js create mode 100644 code/03-writing-more-complex-jsx-code/src/components/ExpenseItem.js create mode 100644 code/03-writing-more-complex-jsx-code/src/index.css create mode 100644 code/03-writing-more-complex-jsx-code/src/index.js create mode 100644 code/04-adding-basic-css-styling/package.json create mode 100644 code/04-adding-basic-css-styling/public/favicon.ico create mode 100644 code/04-adding-basic-css-styling/public/index.html create mode 100644 code/04-adding-basic-css-styling/public/logo192.png create mode 100644 code/04-adding-basic-css-styling/public/logo512.png create mode 100644 code/04-adding-basic-css-styling/public/manifest.json create mode 100644 code/04-adding-basic-css-styling/public/robots.txt create mode 100644 code/04-adding-basic-css-styling/src/App.js create mode 100644 code/04-adding-basic-css-styling/src/components/ExpenseItem.css create mode 100644 code/04-adding-basic-css-styling/src/components/ExpenseItem.js create mode 100644 code/04-adding-basic-css-styling/src/index.css create mode 100644 code/04-adding-basic-css-styling/src/index.js create mode 100644 code/05-outputting-dynamic-data/package.json create mode 100644 code/05-outputting-dynamic-data/public/favicon.ico create mode 100644 code/05-outputting-dynamic-data/public/index.html create mode 100644 code/05-outputting-dynamic-data/public/logo192.png create mode 100644 code/05-outputting-dynamic-data/public/logo512.png create mode 100644 code/05-outputting-dynamic-data/public/manifest.json create mode 100644 code/05-outputting-dynamic-data/public/robots.txt create mode 100644 code/05-outputting-dynamic-data/src/App.js create mode 100644 code/05-outputting-dynamic-data/src/components/ExpenseItem.css create mode 100644 code/05-outputting-dynamic-data/src/components/ExpenseItem.js create mode 100644 code/05-outputting-dynamic-data/src/index.css create mode 100644 code/05-outputting-dynamic-data/src/index.js create mode 100644 code/06-passing-data-via-props/package.json create mode 100644 code/06-passing-data-via-props/public/favicon.ico create mode 100644 code/06-passing-data-via-props/public/index.html create mode 100644 code/06-passing-data-via-props/public/logo192.png create mode 100644 code/06-passing-data-via-props/public/logo512.png create mode 100644 code/06-passing-data-via-props/public/manifest.json create mode 100644 code/06-passing-data-via-props/public/robots.txt create mode 100644 code/06-passing-data-via-props/src/App.js create mode 100644 code/06-passing-data-via-props/src/components/ExpenseItem.css create mode 100644 code/06-passing-data-via-props/src/components/ExpenseItem.js create mode 100644 code/06-passing-data-via-props/src/index.css create mode 100644 code/06-passing-data-via-props/src/index.js create mode 100644 code/07-adding-normal-javascript-logic/package.json create mode 100644 code/07-adding-normal-javascript-logic/public/favicon.ico create mode 100644 code/07-adding-normal-javascript-logic/public/index.html create mode 100644 code/07-adding-normal-javascript-logic/public/logo192.png create mode 100644 code/07-adding-normal-javascript-logic/public/logo512.png create mode 100644 code/07-adding-normal-javascript-logic/public/manifest.json create mode 100644 code/07-adding-normal-javascript-logic/public/robots.txt create mode 100644 code/07-adding-normal-javascript-logic/src/App.js create mode 100644 code/07-adding-normal-javascript-logic/src/components/ExpenseItem.css create mode 100644 code/07-adding-normal-javascript-logic/src/components/ExpenseItem.js create mode 100644 code/07-adding-normal-javascript-logic/src/index.css create mode 100644 code/07-adding-normal-javascript-logic/src/index.js create mode 100644 code/08-splitting-components-into-multiple-components/package.json create mode 100644 code/08-splitting-components-into-multiple-components/public/favicon.ico create mode 100644 code/08-splitting-components-into-multiple-components/public/index.html create mode 100644 code/08-splitting-components-into-multiple-components/public/logo192.png create mode 100644 code/08-splitting-components-into-multiple-components/public/logo512.png create mode 100644 code/08-splitting-components-into-multiple-components/public/manifest.json create mode 100644 code/08-splitting-components-into-multiple-components/public/robots.txt create mode 100644 code/08-splitting-components-into-multiple-components/src/App.js create mode 100644 code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.css create mode 100644 code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.js create mode 100644 code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.css create mode 100644 code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.js create mode 100644 code/08-splitting-components-into-multiple-components/src/index.css create mode 100644 code/08-splitting-components-into-multiple-components/src/index.js create mode 100644 code/09-assignment-1-solution/package.json create mode 100644 code/09-assignment-1-solution/public/favicon.ico create mode 100644 code/09-assignment-1-solution/public/index.html create mode 100644 code/09-assignment-1-solution/public/logo192.png create mode 100644 code/09-assignment-1-solution/public/logo512.png create mode 100644 code/09-assignment-1-solution/public/manifest.json create mode 100644 code/09-assignment-1-solution/public/robots.txt create mode 100644 code/09-assignment-1-solution/src/App.js create mode 100644 code/09-assignment-1-solution/src/components/ExpenseDate.css create mode 100644 code/09-assignment-1-solution/src/components/ExpenseDate.js create mode 100644 code/09-assignment-1-solution/src/components/ExpenseItem.css create mode 100644 code/09-assignment-1-solution/src/components/ExpenseItem.js create mode 100644 code/09-assignment-1-solution/src/components/Expenses.css create mode 100644 code/09-assignment-1-solution/src/components/Expenses.js create mode 100644 code/09-assignment-1-solution/src/index.css create mode 100644 code/09-assignment-1-solution/src/index.js create mode 100644 code/10-the-concept-of-composition/package.json create mode 100644 code/10-the-concept-of-composition/public/favicon.ico create mode 100644 code/10-the-concept-of-composition/public/index.html create mode 100644 code/10-the-concept-of-composition/public/logo192.png create mode 100644 code/10-the-concept-of-composition/public/logo512.png create mode 100644 code/10-the-concept-of-composition/public/manifest.json create mode 100644 code/10-the-concept-of-composition/public/robots.txt create mode 100644 code/10-the-concept-of-composition/src/App.js create mode 100644 code/10-the-concept-of-composition/src/components/Card.css create mode 100644 code/10-the-concept-of-composition/src/components/Card.js create mode 100644 code/10-the-concept-of-composition/src/components/ExpenseDate.css create mode 100644 code/10-the-concept-of-composition/src/components/ExpenseDate.js create mode 100644 code/10-the-concept-of-composition/src/components/ExpenseItem.css create mode 100644 code/10-the-concept-of-composition/src/components/ExpenseItem.js create mode 100644 code/10-the-concept-of-composition/src/components/Expenses.css create mode 100644 code/10-the-concept-of-composition/src/components/Expenses.js create mode 100644 code/10-the-concept-of-composition/src/index.css create mode 100644 code/10-the-concept-of-composition/src/index.js diff --git a/code/01-starting-setup/package.json b/code/01-starting-setup/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/01-starting-setup/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/01-starting-setup/public/favicon.ico b/code/01-starting-setup/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/01-starting-setup/public/index.html b/code/01-starting-setup/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/01-starting-setup/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/01-starting-setup/public/logo192.png b/code/01-starting-setup/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/01-starting-setup/public/manifest.json b/code/01-starting-setup/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/01-starting-setup/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/01-starting-setup/public/robots.txt b/code/01-starting-setup/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/01-starting-setup/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/01-starting-setup/src/App.js b/code/01-starting-setup/src/App.js new file mode 100644 index 0000000000..4a194e6079 --- /dev/null +++ b/code/01-starting-setup/src/App.js @@ -0,0 +1,9 @@ +function App() { + return ( +
+

Let's get started!

+
+ ); +} + +export default App; diff --git a/code/01-starting-setup/src/index.css b/code/01-starting-setup/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/01-starting-setup/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/01-starting-setup/src/index.js b/code/01-starting-setup/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/01-starting-setup/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/02-building-a-first-custom-component/package.json b/code/02-building-a-first-custom-component/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/02-building-a-first-custom-component/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/02-building-a-first-custom-component/public/favicon.ico b/code/02-building-a-first-custom-component/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/02-building-a-first-custom-component/public/index.html b/code/02-building-a-first-custom-component/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/02-building-a-first-custom-component/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/02-building-a-first-custom-component/public/logo192.png b/code/02-building-a-first-custom-component/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/02-building-a-first-custom-component/public/manifest.json b/code/02-building-a-first-custom-component/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/02-building-a-first-custom-component/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/02-building-a-first-custom-component/public/robots.txt b/code/02-building-a-first-custom-component/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/02-building-a-first-custom-component/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/02-building-a-first-custom-component/src/App.js b/code/02-building-a-first-custom-component/src/App.js new file mode 100644 index 0000000000..264e51e726 --- /dev/null +++ b/code/02-building-a-first-custom-component/src/App.js @@ -0,0 +1,12 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/02-building-a-first-custom-component/src/components/ExpenseItem.js b/code/02-building-a-first-custom-component/src/components/ExpenseItem.js new file mode 100644 index 0000000000..790588b878 --- /dev/null +++ b/code/02-building-a-first-custom-component/src/components/ExpenseItem.js @@ -0,0 +1,5 @@ +function ExpenseItem() { + return

Expense item!

; +} + +export default ExpenseItem; diff --git a/code/02-building-a-first-custom-component/src/index.css b/code/02-building-a-first-custom-component/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/02-building-a-first-custom-component/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/02-building-a-first-custom-component/src/index.js b/code/02-building-a-first-custom-component/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/02-building-a-first-custom-component/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/03-writing-more-complex-jsx-code/package.json b/code/03-writing-more-complex-jsx-code/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/03-writing-more-complex-jsx-code/public/favicon.ico b/code/03-writing-more-complex-jsx-code/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/03-writing-more-complex-jsx-code/public/index.html b/code/03-writing-more-complex-jsx-code/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/03-writing-more-complex-jsx-code/public/logo192.png b/code/03-writing-more-complex-jsx-code/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/03-writing-more-complex-jsx-code/public/manifest.json b/code/03-writing-more-complex-jsx-code/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/03-writing-more-complex-jsx-code/public/robots.txt b/code/03-writing-more-complex-jsx-code/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/03-writing-more-complex-jsx-code/src/App.js b/code/03-writing-more-complex-jsx-code/src/App.js new file mode 100644 index 0000000000..264e51e726 --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/src/App.js @@ -0,0 +1,12 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/03-writing-more-complex-jsx-code/src/components/ExpenseItem.js b/code/03-writing-more-complex-jsx-code/src/components/ExpenseItem.js new file mode 100644 index 0000000000..1b178e39c5 --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/src/components/ExpenseItem.js @@ -0,0 +1,13 @@ +function ExpenseItem() { + return ( +
+
March 28th 2021
+
+

Car Insurance

+
$294.67
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/03-writing-more-complex-jsx-code/src/index.css b/code/03-writing-more-complex-jsx-code/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/03-writing-more-complex-jsx-code/src/index.js b/code/03-writing-more-complex-jsx-code/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/03-writing-more-complex-jsx-code/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/04-adding-basic-css-styling/package.json b/code/04-adding-basic-css-styling/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/04-adding-basic-css-styling/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/04-adding-basic-css-styling/public/favicon.ico b/code/04-adding-basic-css-styling/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/04-adding-basic-css-styling/public/index.html b/code/04-adding-basic-css-styling/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/04-adding-basic-css-styling/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/04-adding-basic-css-styling/public/logo192.png b/code/04-adding-basic-css-styling/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/04-adding-basic-css-styling/public/manifest.json b/code/04-adding-basic-css-styling/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/04-adding-basic-css-styling/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/04-adding-basic-css-styling/public/robots.txt b/code/04-adding-basic-css-styling/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/04-adding-basic-css-styling/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/04-adding-basic-css-styling/src/App.js b/code/04-adding-basic-css-styling/src/App.js new file mode 100644 index 0000000000..264e51e726 --- /dev/null +++ b/code/04-adding-basic-css-styling/src/App.js @@ -0,0 +1,12 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/04-adding-basic-css-styling/src/components/ExpenseItem.css b/code/04-adding-basic-css-styling/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/04-adding-basic-css-styling/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/04-adding-basic-css-styling/src/components/ExpenseItem.js b/code/04-adding-basic-css-styling/src/components/ExpenseItem.js new file mode 100644 index 0000000000..4ed06c3ff8 --- /dev/null +++ b/code/04-adding-basic-css-styling/src/components/ExpenseItem.js @@ -0,0 +1,15 @@ +import './ExpenseItem.css'; + +function ExpenseItem() { + return ( +
+
March 28th 2021
+
+

Car Insurance

+
$294.67
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/04-adding-basic-css-styling/src/index.css b/code/04-adding-basic-css-styling/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/04-adding-basic-css-styling/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/04-adding-basic-css-styling/src/index.js b/code/04-adding-basic-css-styling/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/04-adding-basic-css-styling/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/05-outputting-dynamic-data/package.json b/code/05-outputting-dynamic-data/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/05-outputting-dynamic-data/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/05-outputting-dynamic-data/public/favicon.ico b/code/05-outputting-dynamic-data/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/05-outputting-dynamic-data/public/index.html b/code/05-outputting-dynamic-data/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/05-outputting-dynamic-data/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/05-outputting-dynamic-data/public/logo192.png b/code/05-outputting-dynamic-data/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/05-outputting-dynamic-data/public/manifest.json b/code/05-outputting-dynamic-data/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/05-outputting-dynamic-data/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/05-outputting-dynamic-data/public/robots.txt b/code/05-outputting-dynamic-data/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/05-outputting-dynamic-data/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/05-outputting-dynamic-data/src/App.js b/code/05-outputting-dynamic-data/src/App.js new file mode 100644 index 0000000000..264e51e726 --- /dev/null +++ b/code/05-outputting-dynamic-data/src/App.js @@ -0,0 +1,12 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/05-outputting-dynamic-data/src/components/ExpenseItem.css b/code/05-outputting-dynamic-data/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/05-outputting-dynamic-data/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/05-outputting-dynamic-data/src/components/ExpenseItem.js b/code/05-outputting-dynamic-data/src/components/ExpenseItem.js new file mode 100644 index 0000000000..362371a920 --- /dev/null +++ b/code/05-outputting-dynamic-data/src/components/ExpenseItem.js @@ -0,0 +1,19 @@ +import './ExpenseItem.css'; + +function ExpenseItem() { + const expenseDate = new Date(2021, 2, 28); + const expenseTitle = 'Car Insurance'; + const expenseAmount = 294.67; + + return ( +
+
{expenseDate.toISOString()}
+
+

{expenseTitle}

+
${expenseAmount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/05-outputting-dynamic-data/src/index.css b/code/05-outputting-dynamic-data/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/05-outputting-dynamic-data/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/05-outputting-dynamic-data/src/index.js b/code/05-outputting-dynamic-data/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/05-outputting-dynamic-data/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/06-passing-data-via-props/package.json b/code/06-passing-data-via-props/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/06-passing-data-via-props/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/06-passing-data-via-props/public/favicon.ico b/code/06-passing-data-via-props/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/06-passing-data-via-props/public/index.html b/code/06-passing-data-via-props/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/06-passing-data-via-props/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/06-passing-data-via-props/public/logo192.png b/code/06-passing-data-via-props/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/06-passing-data-via-props/public/manifest.json b/code/06-passing-data-via-props/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/06-passing-data-via-props/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/06-passing-data-via-props/public/robots.txt b/code/06-passing-data-via-props/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/06-passing-data-via-props/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/06-passing-data-via-props/src/App.js b/code/06-passing-data-via-props/src/App.js new file mode 100644 index 0000000000..878e1cd3a3 --- /dev/null +++ b/code/06-passing-data-via-props/src/App.js @@ -0,0 +1,53 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + return ( +
+

Let's get started!

+ + + + +
+ ); +} + +export default App; diff --git a/code/06-passing-data-via-props/src/components/ExpenseItem.css b/code/06-passing-data-via-props/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/06-passing-data-via-props/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/06-passing-data-via-props/src/components/ExpenseItem.js b/code/06-passing-data-via-props/src/components/ExpenseItem.js new file mode 100644 index 0000000000..9de60d6b21 --- /dev/null +++ b/code/06-passing-data-via-props/src/components/ExpenseItem.js @@ -0,0 +1,15 @@ +import './ExpenseItem.css'; + +function ExpenseItem(props) { + return ( +
+
{props.date.toISOString()}
+
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/06-passing-data-via-props/src/index.css b/code/06-passing-data-via-props/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/06-passing-data-via-props/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/06-passing-data-via-props/src/index.js b/code/06-passing-data-via-props/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/06-passing-data-via-props/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/07-adding-normal-javascript-logic/package.json b/code/07-adding-normal-javascript-logic/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/07-adding-normal-javascript-logic/public/favicon.ico b/code/07-adding-normal-javascript-logic/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/07-adding-normal-javascript-logic/public/index.html b/code/07-adding-normal-javascript-logic/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/07-adding-normal-javascript-logic/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/07-adding-normal-javascript-logic/public/logo192.png b/code/07-adding-normal-javascript-logic/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/07-adding-normal-javascript-logic/public/manifest.json b/code/07-adding-normal-javascript-logic/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/07-adding-normal-javascript-logic/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/07-adding-normal-javascript-logic/public/robots.txt b/code/07-adding-normal-javascript-logic/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/07-adding-normal-javascript-logic/src/App.js b/code/07-adding-normal-javascript-logic/src/App.js new file mode 100644 index 0000000000..878e1cd3a3 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/src/App.js @@ -0,0 +1,53 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + return ( +
+

Let's get started!

+ + + + +
+ ); +} + +export default App; diff --git a/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.css b/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.js b/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.js new file mode 100644 index 0000000000..6821b40063 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/src/components/ExpenseItem.js @@ -0,0 +1,23 @@ +import './ExpenseItem.css'; + +function ExpenseItem(props) { + const month = props.date.toLocaleString('en-US', { month: 'long' }); + const day = props.date.toLocaleString('en-US', { day: '2-digit' }); + const year = props.date.getFullYear(); + + return ( +
+
+
{month}
+
{year}
+
{day}
+
+
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/07-adding-normal-javascript-logic/src/index.css b/code/07-adding-normal-javascript-logic/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/07-adding-normal-javascript-logic/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/07-adding-normal-javascript-logic/src/index.js b/code/07-adding-normal-javascript-logic/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/07-adding-normal-javascript-logic/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/08-splitting-components-into-multiple-components/package.json b/code/08-splitting-components-into-multiple-components/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/08-splitting-components-into-multiple-components/public/favicon.ico b/code/08-splitting-components-into-multiple-components/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/08-splitting-components-into-multiple-components/public/index.html b/code/08-splitting-components-into-multiple-components/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/08-splitting-components-into-multiple-components/public/logo192.png b/code/08-splitting-components-into-multiple-components/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/08-splitting-components-into-multiple-components/public/manifest.json b/code/08-splitting-components-into-multiple-components/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/08-splitting-components-into-multiple-components/public/robots.txt b/code/08-splitting-components-into-multiple-components/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/08-splitting-components-into-multiple-components/src/App.js b/code/08-splitting-components-into-multiple-components/src/App.js new file mode 100644 index 0000000000..f88ab5fa92 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/App.js @@ -0,0 +1,53 @@ +import ExpenseItem from './components/ExpenseItem'; + +function App() { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + return ( +
+

Let's get started!

+ + + + +
+ ); +} + +export default App; diff --git a/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.css b/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.css new file mode 100644 index 0000000000..d69691de84 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.css @@ -0,0 +1,26 @@ +.expense-date { + display: flex; + flex-direction: column; + width: 5.5rem; + height: 5.5rem; + border: 1px solid #ececec; + background-color: #2a2a2a; + color: white; + border-radius: 12px; + align-items: center; + justify-content: center; +} + +.expense-date__month { + font-size: 0.75rem; + font-weight: bold; +} + +.expense-date__year { + font-size: 0.75rem; +} + +.expense-date__day { + font-size: 1.5rem; + font-weight: bold; +} diff --git a/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.js b/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.js new file mode 100644 index 0000000000..ba5698cf0d --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/components/ExpenseDate.js @@ -0,0 +1,17 @@ +import './ExpenseDate.css'; + +function ExpenseDate(props) { + const month = props.date.toLocaleString('en-US', { month: 'long' }); + const day = props.date.toLocaleString('en-US', { day: '2-digit' }); + const year = props.date.getFullYear(); + + return ( +
+
{month}
+
{year}
+
{day}
+
+ ); +} + +export default ExpenseDate; diff --git a/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.css b/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.js b/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.js new file mode 100644 index 0000000000..07e4e0f98a --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/components/ExpenseItem.js @@ -0,0 +1,16 @@ +import ExpenseDate from './ExpenseDate'; +import './ExpenseItem.css'; + +function ExpenseItem(props) { + return ( +
+ +
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/08-splitting-components-into-multiple-components/src/index.css b/code/08-splitting-components-into-multiple-components/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/08-splitting-components-into-multiple-components/src/index.js b/code/08-splitting-components-into-multiple-components/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/08-splitting-components-into-multiple-components/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/09-assignment-1-solution/package.json b/code/09-assignment-1-solution/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/09-assignment-1-solution/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/09-assignment-1-solution/public/favicon.ico b/code/09-assignment-1-solution/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/09-assignment-1-solution/public/index.html b/code/09-assignment-1-solution/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/09-assignment-1-solution/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/09-assignment-1-solution/public/logo192.png b/code/09-assignment-1-solution/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 zcmZWtbyO6NvR-oO24RV%BvuJ&=?+<7=`LvyB&A_#M7mSDYw1v6DJkiYl9XjT!%$dLEBTQ8R9|wd3008in6lFF3GV-6mLi?MoP_y~}QUnaDCHI#t z7w^m$@6DI)|C8_jrT?q=f8D?0AM?L)Z}xAo^e^W>t$*Y0KlT5=@bBjT9kxb%-KNdk zeOS1tKO#ChhG7%{ApNBzE2ZVNcxbrin#E1TiAw#BlUhXllzhN$qWez5l;h+t^q#Eav8PhR2|T}y5kkflaK`ba-eoE+Z2q@o6P$)=&` z+(8}+-McnNO>e#$Rr{32ngsZIAX>GH??tqgwUuUz6kjns|LjsB37zUEWd|(&O!)DY zQLrq%Y>)Y8G`yYbYCx&aVHi@-vZ3|ebG!f$sTQqMgi0hWRJ^Wc+Ibv!udh_r%2|U) zPi|E^PK?UE!>_4`f`1k4hqqj_$+d!EB_#IYt;f9)fBOumGNyglU(ofY`yHq4Y?B%- zp&G!MRY<~ajTgIHErMe(Z8JG*;D-PJhd@RX@QatggM7+G(Lz8eZ;73)72Hfx5KDOE zkT(m}i2;@X2AT5fW?qVp?@WgN$aT+f_6eo?IsLh;jscNRp|8H}Z9p_UBO^SJXpZew zEK8fz|0Th%(Wr|KZBGTM4yxkA5CFdAj8=QSrT$fKW#tweUFqr0TZ9D~a5lF{)%-tTGMK^2tz(y2v$i%V8XAxIywrZCp=)83p(zIk6@S5AWl|Oa2hF`~~^W zI;KeOSkw1O#TiQ8;U7OPXjZM|KrnN}9arP)m0v$c|L)lF`j_rpG(zW1Qjv$=^|p*f z>)Na{D&>n`jOWMwB^TM}slgTEcjxTlUby89j1)|6ydRfWERn3|7Zd2&e7?!K&5G$x z`5U3uFtn4~SZq|LjFVrz$3iln-+ucY4q$BC{CSm7Xe5c1J<=%Oagztj{ifpaZk_bQ z9Sb-LaQMKp-qJA*bP6DzgE3`}*i1o3GKmo2pn@dj0;He}F=BgINo};6gQF8!n0ULZ zL>kC0nPSFzlcB7p41doao2F7%6IUTi_+!L`MM4o*#Y#0v~WiO8uSeAUNp=vA2KaR&=jNR2iVwG>7t%sG2x_~yXzY)7K& zk3p+O0AFZ1eu^T3s};B%6TpJ6h-Y%B^*zT&SN7C=N;g|#dGIVMSOru3iv^SvO>h4M=t-N1GSLLDqVTcgurco6)3&XpU!FP6Hlrmj}f$ zp95;b)>M~`kxuZF3r~a!rMf4|&1=uMG$;h^g=Kl;H&Np-(pFT9FF@++MMEx3RBsK?AU0fPk-#mdR)Wdkj)`>ZMl#^<80kM87VvsI3r_c@_vX=fdQ`_9-d(xiI z4K;1y1TiPj_RPh*SpDI7U~^QQ?%0&!$Sh#?x_@;ag)P}ZkAik{_WPB4rHyW#%>|Gs zdbhyt=qQPA7`?h2_8T;-E6HI#im9K>au*(j4;kzwMSLgo6u*}-K`$_Gzgu&XE)udQ zmQ72^eZd|vzI)~!20JV-v-T|<4@7ruqrj|o4=JJPlybwMg;M$Ud7>h6g()CT@wXm` zbq=A(t;RJ^{Xxi*Ff~!|3!-l_PS{AyNAU~t{h;(N(PXMEf^R(B+ZVX3 z8y0;0A8hJYp@g+c*`>eTA|3Tgv9U8#BDTO9@a@gVMDxr(fVaEqL1tl?md{v^j8aUv zm&%PX4^|rX|?E4^CkplWWNv*OKM>DxPa z!RJ)U^0-WJMi)Ksc!^ixOtw^egoAZZ2Cg;X7(5xZG7yL_;UJ#yp*ZD-;I^Z9qkP`} zwCTs0*%rIVF1sgLervtnUo&brwz?6?PXRuOCS*JI-WL6GKy7-~yi0giTEMmDs_-UX zo=+nFrW_EfTg>oY72_4Z0*uG>MnXP=c0VpT&*|rvv1iStW;*^={rP1y?Hv+6R6bxFMkxpWkJ>m7Ba{>zc_q zEefC3jsXdyS5??Mz7IET$Kft|EMNJIv7Ny8ZOcKnzf`K5Cd)&`-fTY#W&jnV0l2vt z?Gqhic}l}mCv1yUEy$%DP}4AN;36$=7aNI^*AzV(eYGeJ(Px-j<^gSDp5dBAv2#?; zcMXv#aj>%;MiG^q^$0MSg-(uTl!xm49dH!{X0){Ew7ThWV~Gtj7h%ZD zVN-R-^7Cf0VH!8O)uUHPL2mO2tmE*cecwQv_5CzWeh)ykX8r5Hi`ehYo)d{Jnh&3p z9ndXT$OW51#H5cFKa76c<%nNkP~FU93b5h-|Cb}ScHs@4Q#|}byWg;KDMJ#|l zE=MKD*F@HDBcX@~QJH%56eh~jfPO-uKm}~t7VkHxHT;)4sd+?Wc4* z>CyR*{w@4(gnYRdFq=^(#-ytb^5ESD?x<0Skhb%Pt?npNW1m+Nv`tr9+qN<3H1f<% zZvNEqyK5FgPsQ`QIu9P0x_}wJR~^CotL|n zk?dn;tLRw9jJTur4uWoX6iMm914f0AJfB@C74a;_qRrAP4E7l890P&{v<}>_&GLrW z)klculcg`?zJO~4;BBAa=POU%aN|pmZJn2{hA!d!*lwO%YSIzv8bTJ}=nhC^n}g(ld^rn#kq9Z3)z`k9lvV>y#!F4e{5c$tnr9M{V)0m(Z< z#88vX6-AW7T2UUwW`g<;8I$Jb!R%z@rCcGT)-2k7&x9kZZT66}Ztid~6t0jKb&9mm zpa}LCb`bz`{MzpZR#E*QuBiZXI#<`5qxx=&LMr-UUf~@dRk}YI2hbMsAMWOmDzYtm zjof16D=mc`^B$+_bCG$$@R0t;e?~UkF?7<(vkb70*EQB1rfUWXh$j)R2)+dNAH5%R zEBs^?N;UMdy}V};59Gu#0$q53$}|+q7CIGg_w_WlvE}AdqoS<7DY1LWS9?TrfmcvT zaypmplwn=P4;a8-%l^e?f`OpGb}%(_mFsL&GywhyN(-VROj`4~V~9bGv%UhcA|YW% zs{;nh@aDX11y^HOFXB$a7#Sr3cEtNd4eLm@Y#fc&j)TGvbbMwze zXtekX_wJqxe4NhuW$r}cNy|L{V=t#$%SuWEW)YZTH|!iT79k#?632OFse{+BT_gau zJwQcbH{b}dzKO?^dV&3nTILYlGw{27UJ72ZN){BILd_HV_s$WfI2DC<9LIHFmtyw? zQ;?MuK7g%Ym+4e^W#5}WDLpko%jPOC=aN)3!=8)s#Rnercak&b3ESRX3z{xfKBF8L z5%CGkFmGO@x?_mPGlpEej!3!AMddChabyf~nJNZxx!D&{@xEb!TDyvqSj%Y5@A{}9 zRzoBn0?x}=krh{ok3Nn%e)#~uh;6jpezhA)ySb^b#E>73e*frBFu6IZ^D7Ii&rsiU z%jzygxT-n*joJpY4o&8UXr2s%j^Q{?e-voloX`4DQyEK+DmrZh8A$)iWL#NO9+Y@!sO2f@rI!@jN@>HOA< z?q2l{^%mY*PNx2FoX+A7X3N}(RV$B`g&N=e0uvAvEN1W^{*W?zT1i#fxuw10%~))J zjx#gxoVlXREWZf4hRkgdHx5V_S*;p-y%JtGgQ4}lnA~MBz-AFdxUxU1RIT$`sal|X zPB6sEVRjGbXIP0U+?rT|y5+ev&OMX*5C$n2SBPZr`jqzrmpVrNciR0e*Wm?fK6DY& zl(XQZ60yWXV-|Ps!A{EF;=_z(YAF=T(-MkJXUoX zI{UMQDAV2}Ya?EisdEW;@pE6dt;j0fg5oT2dxCi{wqWJ<)|SR6fxX~5CzblPGr8cb zUBVJ2CQd~3L?7yfTpLNbt)He1D>*KXI^GK%<`bq^cUq$Q@uJifG>p3LU(!H=C)aEL zenk7pVg}0{dKU}&l)Y2Y2eFMdS(JS0}oZUuVaf2+K*YFNGHB`^YGcIpnBlMhO7d4@vV zv(@N}(k#REdul8~fP+^F@ky*wt@~&|(&&meNO>rKDEnB{ykAZ}k>e@lad7to>Ao$B zz<1(L=#J*u4_LB=8w+*{KFK^u00NAmeNN7pr+Pf+N*Zl^dO{LM-hMHyP6N!~`24jd zXYP|Ze;dRXKdF2iJG$U{k=S86l@pytLx}$JFFs8e)*Vi?aVBtGJ3JZUj!~c{(rw5>vuRF$`^p!P8w1B=O!skwkO5yd4_XuG^QVF z`-r5K7(IPSiKQ2|U9+`@Js!g6sfJwAHVd|s?|mnC*q zp|B|z)(8+mxXyxQ{8Pg3F4|tdpgZZSoU4P&9I8)nHo1@)9_9u&NcT^FI)6|hsAZFk zZ+arl&@*>RXBf-OZxhZerOr&dN5LW9@gV=oGFbK*J+m#R-|e6(Loz(;g@T^*oO)0R zN`N=X46b{7yk5FZGr#5&n1!-@j@g02g|X>MOpF3#IjZ_4wg{dX+G9eqS+Es9@6nC7 zD9$NuVJI}6ZlwtUm5cCAiYv0(Yi{%eH+}t)!E^>^KxB5^L~a`4%1~5q6h>d;paC9c zTj0wTCKrhWf+F#5>EgX`sl%POl?oyCq0(w0xoL?L%)|Q7d|Hl92rUYAU#lc**I&^6p=4lNQPa0 znQ|A~i0ip@`B=FW-Q;zh?-wF;Wl5!+q3GXDu-x&}$gUO)NoO7^$BeEIrd~1Dh{Tr` z8s<(Bn@gZ(mkIGnmYh_ehXnq78QL$pNDi)|QcT*|GtS%nz1uKE+E{7jdEBp%h0}%r zD2|KmYGiPa4;md-t_m5YDz#c*oV_FqXd85d@eub?9N61QuYcb3CnVWpM(D-^|CmkL z(F}L&N7qhL2PCq)fRh}XO@U`Yn<?TNGR4L(mF7#4u29{i~@k;pLsgl({YW5`Mo+p=zZn3L*4{JU;++dG9 X@eDJUQo;Ye2mwlRs?y0|+_a0zY+Zo%Dkae}+MySoIppb75o?vUW_?)>@g{U2`ERQIXV zeY$JrWnMZ$QC<=ii4X|@0H8`si75jB(ElJb00HAB%>SlLR{!zO|C9P3zxw_U8?1d8uRZ=({Ga4shyN}3 zAK}WA(ds|``G4jA)9}Bt2Hy0+f3rV1E6b|@?hpGA=PI&r8)ah|)I2s(P5Ic*Ndhn^ z*T&j@gbCTv7+8rpYbR^Ty}1AY)YH;p!m948r#%7x^Z@_-w{pDl|1S4`EM3n_PaXvK z1JF)E3qy$qTj5Xs{jU9k=y%SQ0>8E$;x?p9ayU0bZZeo{5Z@&FKX>}s!0+^>C^D#z z>xsCPvxD3Z=dP}TTOSJhNTPyVt14VCQ9MQFN`rn!c&_p?&4<5_PGm4a;WS&1(!qKE z_H$;dDdiPQ!F_gsN`2>`X}$I=B;={R8%L~`>RyKcS$72ai$!2>d(YkciA^J0@X%G4 z4cu!%Ps~2JuJ8ex`&;Fa0NQOq_nDZ&X;^A=oc1&f#3P1(!5il>6?uK4QpEG8z0Rhu zvBJ+A9RV?z%v?!$=(vcH?*;vRs*+PPbOQ3cdPr5=tOcLqmfx@#hOqX0iN)wTTO21jH<>jpmwRIAGw7`a|sl?9y9zRBh>(_%| zF?h|P7}~RKj?HR+q|4U`CjRmV-$mLW>MScKnNXiv{vD3&2@*u)-6P@h0A`eeZ7}71 zK(w%@R<4lLt`O7fs1E)$5iGb~fPfJ?WxhY7c3Q>T-w#wT&zW522pH-B%r5v#5y^CF zcC30Se|`D2mY$hAlIULL%-PNXgbbpRHgn<&X3N9W!@BUk@9g*P5mz-YnZBb*-$zMM z7Qq}ic0mR8n{^L|=+diODdV}Q!gwr?y+2m=3HWwMq4z)DqYVg0J~^}-%7rMR@S1;9 z7GFj6K}i32X;3*$SmzB&HW{PJ55kT+EI#SsZf}bD7nW^Haf}_gXciYKX{QBxIPSx2Ma? zHQqgzZq!_{&zg{yxqv3xq8YV+`S}F6A>Gtl39_m;K4dA{pP$BW0oIXJ>jEQ!2V3A2 zdpoTxG&V=(?^q?ZTj2ZUpDUdMb)T?E$}CI>r@}PFPWD9@*%V6;4Ag>D#h>!s)=$0R zRXvdkZ%|c}ubej`jl?cS$onl9Tw52rBKT)kgyw~Xy%z62Lr%V6Y=f?2)J|bZJ5(Wx zmji`O;_B+*X@qe-#~`HFP<{8$w@z4@&`q^Q-Zk8JG3>WalhnW1cvnoVw>*R@c&|o8 zZ%w!{Z+MHeZ*OE4v*otkZqz11*s!#s^Gq>+o`8Z5 z^i-qzJLJh9!W-;SmFkR8HEZJWiXk$40i6)7 zZpr=k2lp}SasbM*Nbn3j$sn0;rUI;%EDbi7T1ZI4qL6PNNM2Y%6{LMIKW+FY_yF3) zSKQ2QSujzNMSL2r&bYs`|i2Dnn z=>}c0>a}>|uT!IiMOA~pVT~R@bGlm}Edf}Kq0?*Af6#mW9f9!}RjW7om0c9Qlp;yK z)=XQs(|6GCadQbWIhYF=rf{Y)sj%^Id-ARO0=O^Ad;Ph+ z0?$eE1xhH?{T$QI>0JP75`r)U_$#%K1^BQ8z#uciKf(C701&RyLQWBUp*Q7eyn76} z6JHpC9}R$J#(R0cDCkXoFSp;j6{x{b&0yE@P7{;pCEpKjS(+1RQy38`=&Yxo%F=3y zCPeefABp34U-s?WmU#JJw23dcC{sPPFc2#J$ZgEN%zod}J~8dLm*fx9f6SpO zn^Ww3bt9-r0XaT2a@Wpw;C23XM}7_14#%QpubrIw5aZtP+CqIFmsG4`Cm6rfxl9n5 z7=r2C-+lM2AB9X0T_`?EW&Byv&K?HS4QLoylJ|OAF z`8atBNTzJ&AQ!>sOo$?^0xj~D(;kS$`9zbEGd>f6r`NC3X`tX)sWgWUUOQ7w=$TO&*j;=u%25ay-%>3@81tGe^_z*C7pb9y*Ed^H3t$BIKH2o+olp#$q;)_ zfpjCb_^VFg5fU~K)nf*d*r@BCC>UZ!0&b?AGk_jTPXaSnCuW110wjHPPe^9R^;jo3 zwvzTl)C`Zl5}O2}3lec=hZ*$JnkW#7enKKc)(pM${_$9Hc=Sr_A9Biwe*Y=T?~1CK z6eZ9uPICjy-sMGbZl$yQmpB&`ouS8v{58__t0$JP%i3R&%QR3ianbZqDs<2#5FdN@n5bCn^ZtH992~5k(eA|8|@G9u`wdn7bnpg|@{m z^d6Y`*$Zf2Xr&|g%sai#5}Syvv(>Jnx&EM7-|Jr7!M~zdAyjt*xl;OLhvW-a%H1m0 z*x5*nb=R5u><7lyVpNAR?q@1U59 zO+)QWwL8t zyip?u_nI+K$uh{y)~}qj?(w0&=SE^8`_WMM zTybjG=999h38Yes7}-4*LJ7H)UE8{mE(6;8voE+TYY%33A>S6`G_95^5QHNTo_;Ao ztIQIZ_}49%{8|=O;isBZ?=7kfdF8_@azfoTd+hEJKWE!)$)N%HIe2cplaK`ry#=pV z0q{9w-`i0h@!R8K3GC{ivt{70IWG`EP|(1g7i_Q<>aEAT{5(yD z=!O?kq61VegV+st@XCw475j6vS)_z@efuqQgHQR1T4;|-#OLZNQJPV4k$AX1Uk8Lm z{N*b*ia=I+MB}kWpupJ~>!C@xEN#Wa7V+7{m4j8c?)ChV=D?o~sjT?0C_AQ7B-vxqX30s0I_`2$in86#`mAsT-w?j{&AL@B3$;P z31G4(lV|b}uSDCIrjk+M1R!X7s4Aabn<)zpgT}#gE|mIvV38^ODy@<&yflpCwS#fRf9ZX3lPV_?8@C5)A;T zqmouFLFk;qIs4rA=hh=GL~sCFsXHsqO6_y~*AFt939UYVBSx1s(=Kb&5;j7cSowdE;7()CC2|-i9Zz+_BIw8#ll~-tyH?F3{%`QCsYa*b#s*9iCc`1P1oC26?`g<9))EJ3%xz+O!B3 zZ7$j~To)C@PquR>a1+Dh>-a%IvH_Y7^ys|4o?E%3`I&ADXfC8++hAdZfzIT#%C+Jz z1lU~K_vAm0m8Qk}K$F>|>RPK%<1SI0(G+8q~H zAsjezyP+u!Se4q3GW)`h`NPSRlMoBjCzNPesWJwVTY!o@G8=(6I%4XHGaSiS3MEBK zhgGFv6Jc>L$4jVE!I?TQuwvz_%CyO!bLh94nqK11C2W$*aa2ueGopG8DnBICVUORP zgytv#)49fVXDaR$SukloYC3u7#5H)}1K21=?DKj^U)8G;MS)&Op)g^zR2($<>C*zW z;X7`hLxiIO#J`ANdyAOJle4V%ppa*(+0i3w;8i*BA_;u8gOO6)MY`ueq7stBMJTB; z-a0R>hT*}>z|Gg}@^zDL1MrH+2hsR8 zHc}*9IvuQC^Ju)^#Y{fOr(96rQNPNhxc;mH@W*m206>Lo<*SaaH?~8zg&f&%YiOEG zGiz?*CP>Bci}!WiS=zj#K5I}>DtpregpP_tfZtPa(N<%vo^#WCQ5BTv0vr%Z{)0q+ z)RbfHktUm|lg&U3YM%lMUM(fu}i#kjX9h>GYctkx9Mt_8{@s%!K_EI zScgwy6%_fR?CGJQtmgNAj^h9B#zmaMDWgH55pGuY1Gv7D z;8Psm(vEPiwn#MgJYu4Ty9D|h!?Rj0ddE|&L3S{IP%H4^N!m`60ZwZw^;eg4sk6K{ ziA^`Sbl_4~f&Oo%n;8Ye(tiAdlZKI!Z=|j$5hS|D$bDJ}p{gh$KN&JZYLUjv4h{NY zBJ>X9z!xfDGY z+oh_Z&_e#Q(-}>ssZfm=j$D&4W4FNy&-kAO1~#3Im;F)Nwe{(*75(p=P^VI?X0GFakfh+X-px4a%Uw@fSbmp9hM1_~R>?Z8+ ziy|e9>8V*`OP}4x5JjdWp}7eX;lVxp5qS}0YZek;SNmm7tEeSF*-dI)6U-A%m6YvCgM(}_=k#a6o^%-K4{`B1+}O4x zztDT%hVb;v#?j`lTvlFQ3aV#zkX=7;YFLS$uIzb0E3lozs5`Xy zi~vF+%{z9uLjKvKPhP%x5f~7-Gj+%5N`%^=yk*Qn{`> z;xj&ROY6g`iy2a@{O)V(jk&8#hHACVDXey5a+KDod_Z&}kHM}xt7}Md@pil{2x7E~ zL$k^d2@Ec2XskjrN+IILw;#7((abu;OJii&v3?60x>d_Ma(onIPtcVnX@ELF0aL?T zSmWiL3(dOFkt!x=1O!_0n(cAzZW+3nHJ{2S>tgSK?~cFha^y(l@-Mr2W$%MN{#af8J;V*>hdq!gx=d0h$T7l}>91Wh07)9CTX zh2_ZdQCyFOQ)l(}gft0UZG`Sh2`x-w`5vC2UD}lZs*5 zG76$akzn}Xi))L3oGJ75#pcN=cX3!=57$Ha=hQ2^lwdyU#a}4JJOz6ddR%zae%#4& za)bFj)z=YQela(F#Y|Q#dp}PJghITwXouVaMq$BM?K%cXn9^Y@g43$=O)F&ZlOUom zJiad#dea;-eywBA@e&D6Pdso1?2^(pXiN91?jvcaUyYoKUmvl5G9e$W!okWe*@a<^ z8cQQ6cNSf+UPDx%?_G4aIiybZHHagF{;IcD(dPO!#=u zWfqLcPc^+7Uu#l(Bpxft{*4lv#*u7X9AOzDO z1D9?^jIo}?%iz(_dwLa{ex#T}76ZfN_Z-hwpus9y+4xaUu9cX}&P{XrZVWE{1^0yw zO;YhLEW!pJcbCt3L8~a7>jsaN{V3>tz6_7`&pi%GxZ=V3?3K^U+*ryLSb)8^IblJ0 zSRLNDvIxt)S}g30?s_3NX>F?NKIGrG_zB9@Z>uSW3k2es_H2kU;Rnn%j5qP)!XHKE zPB2mHP~tLCg4K_vH$xv`HbRsJwbZMUV(t=ez;Ec(vyHH)FbfLg`c61I$W_uBB>i^r z&{_P;369-&>23R%qNIULe=1~T$(DA`ev*EWZ6j(B$(te}x1WvmIll21zvygkS%vwG zzkR6Z#RKA2!z!C%M!O>!=Gr0(J0FP=-MN=5t-Ir)of50y10W}j`GtRCsXBakrKtG& zazmITDJMA0C51&BnLY)SY9r)NVTMs);1<=oosS9g31l{4ztjD3#+2H7u_|66b|_*O z;Qk6nalpqdHOjx|K&vUS_6ITgGll;TdaN*ta=M_YtyC)I9Tmr~VaPrH2qb6sd~=AcIxV+%z{E&0@y=DPArw zdV7z(G1hBx7hd{>(cr43^WF%4Y@PXZ?wPpj{OQ#tvc$pABJbvPGvdR`cAtHn)cSEV zrpu}1tJwQ3y!mSmH*uz*x0o|CS<^w%&KJzsj~DU0cLQUxk5B!hWE>aBkjJle8z~;s z-!A=($+}Jq_BTK5^B!`R>!MulZN)F=iXXeUd0w5lUsE5VP*H*oCy(;?S$p*TVvTxwAeWFB$jHyb0593)$zqalVlDX=GcCN1gU0 zlgU)I$LcXZ8Oyc2TZYTPu@-;7<4YYB-``Qa;IDcvydIA$%kHhJKV^m*-zxcvU4viy&Kr5GVM{IT>WRywKQ9;>SEiQD*NqplK-KK4YR`p0@JW)n_{TU3bt0 zim%;(m1=#v2}zTps=?fU5w^(*y)xT%1vtQH&}50ZF!9YxW=&7*W($2kgKyz1mUgfs zfV<*XVVIFnohW=|j+@Kfo!#liQR^x>2yQdrG;2o8WZR+XzU_nG=Ed2rK?ntA;K5B{ z>M8+*A4!Jm^Bg}aW?R?6;@QG@uQ8&oJ{hFixcfEnJ4QH?A4>P=q29oDGW;L;= z9-a0;g%c`C+Ai!UmK$NC*4#;Jp<1=TioL=t^YM)<<%u#hnnfSS`nq63QKGO1L8RzX z@MFDqs1z ztYmxDl@LU)5acvHk)~Z`RW7=aJ_nGD!mOSYD>5Odjn@TK#LY{jf?+piB5AM-CAoT_ z?S-*q7}wyLJzK>N%eMPuFgN)Q_otKP;aqy=D5f!7<=n(lNkYRXVpkB{TAYLYg{|(jtRqYmg$xH zjmq?B(RE4 zQx^~Pt}gxC2~l=K$$-sYy_r$CO(d=+b3H1MB*y_5g6WLaWTXn+TKQ|hNY^>Mp6k*$ zwkovomhu776vQATqT4blf~g;TY(MWCrf^^yfWJvSAB$p5l;jm@o#=!lqw+Lqfq>X= z$6~kxfm7`3q4zUEB;u4qa#BdJxO!;xGm)wwuisj{0y2x{R(IGMrsIzDY9LW>m!Y`= z04sx3IjnYvL<4JqxQ8f7qYd0s2Ig%`ytYPEMKI)s(LD}D@EY>x`VFtqvnADNBdeao zC96X+MxnwKmjpg{U&gP3HE}1=s!lv&D{6(g_lzyF3A`7Jn*&d_kL<;dAFx!UZ>hB8 z5A*%LsAn;VLp>3${0>M?PSQ)9s3}|h2e?TG4_F{}{Cs>#3Q*t$(CUc}M)I}8cPF6% z=+h(Kh^8)}gj(0}#e7O^FQ6`~fd1#8#!}LMuo3A0bN`o}PYsm!Y}sdOz$+Tegc=qT z8x`PH$7lvnhJp{kHWb22l;@7B7|4yL4UOOVM0MP_>P%S1Lnid)+k9{+3D+JFa#Pyf zhVc#&df87APl4W9X)F3pGS>@etfl=_E5tBcVoOfrD4hmVeTY-cj((pkn%n@EgN{0f zwb_^Rk0I#iZuHK!l*lN`ceJn(sI{$Fq6nN& zE<-=0_2WN}m+*ivmIOxB@#~Q-cZ>l136w{#TIJe478`KE7@=a{>SzPHsKLzYAyBQO zAtuuF$-JSDy_S@6GW0MOE~R)b;+0f%_NMrW(+V#c_d&U8Z9+ec4=HmOHw?gdjF(Lu zzra83M_BoO-1b3;9`%&DHfuUY)6YDV21P$C!Rc?mv&{lx#f8oc6?0?x zK08{WP65?#>(vPfA-c=MCY|%*1_<3D4NX zeVTi-JGl2uP_2@0F{G({pxQOXt_d{g_CV6b?jNpfUG9;8yle-^4KHRvZs-_2siata zt+d_T@U$&t*xaD22(fH(W1r$Mo?3dc%Tncm=C6{V9y{v&VT#^1L04vDrLM9qBoZ4@ z6DBN#m57hX7$C(=#$Y5$bJmwA$T8jKD8+6A!-IJwA{WOfs%s}yxUw^?MRZjF$n_KN z6`_bGXcmE#5e4Ym)aQJ)xg3Pg0@k`iGuHe?f(5LtuzSq=nS^5z>vqU0EuZ&75V%Z{ zYyhRLN^)$c6Ds{f7*FBpE;n5iglx5PkHfWrj3`x^j^t z7ntuV`g!9Xg#^3!x)l*}IW=(Tz3>Y5l4uGaB&lz{GDjm2D5S$CExLT`I1#n^lBH7Y zDgpMag@`iETKAI=p<5E#LTkwzVR@=yY|uBVI1HG|8h+d;G-qfuj}-ZR6fN>EfCCW z9~wRQoAPEa#aO?3h?x{YvV*d+NtPkf&4V0k4|L=uj!U{L+oLa(z#&iuhJr3-PjO3R z5s?=nn_5^*^Rawr>>Nr@K(jwkB#JK-=+HqwfdO<+P5byeim)wvqGlP-P|~Nse8=XF zz`?RYB|D6SwS}C+YQv+;}k6$-%D(@+t14BL@vM z2q%q?f6D-A5s$_WY3{^G0F131bbh|g!}#BKw=HQ7mx;Dzg4Z*bTLQSfo{ed{4}NZW zfrRm^Ca$rlE{Ue~uYv>R9{3smwATcdM_6+yWIO z*ZRH~uXE@#p$XTbCt5j7j2=86e{9>HIB6xDzV+vAo&B?KUiMP|ttOElepnl%|DPqL b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/09-assignment-1-solution/public/manifest.json b/code/09-assignment-1-solution/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/09-assignment-1-solution/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/09-assignment-1-solution/public/robots.txt b/code/09-assignment-1-solution/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/09-assignment-1-solution/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/09-assignment-1-solution/src/App.js b/code/09-assignment-1-solution/src/App.js new file mode 100644 index 0000000000..21dfc576bc --- /dev/null +++ b/code/09-assignment-1-solution/src/App.js @@ -0,0 +1,34 @@ +import Expenses from './components/Expenses'; + +function App() { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/09-assignment-1-solution/src/components/ExpenseDate.css b/code/09-assignment-1-solution/src/components/ExpenseDate.css new file mode 100644 index 0000000000..d69691de84 --- /dev/null +++ b/code/09-assignment-1-solution/src/components/ExpenseDate.css @@ -0,0 +1,26 @@ +.expense-date { + display: flex; + flex-direction: column; + width: 5.5rem; + height: 5.5rem; + border: 1px solid #ececec; + background-color: #2a2a2a; + color: white; + border-radius: 12px; + align-items: center; + justify-content: center; +} + +.expense-date__month { + font-size: 0.75rem; + font-weight: bold; +} + +.expense-date__year { + font-size: 0.75rem; +} + +.expense-date__day { + font-size: 1.5rem; + font-weight: bold; +} diff --git a/code/09-assignment-1-solution/src/components/ExpenseDate.js b/code/09-assignment-1-solution/src/components/ExpenseDate.js new file mode 100644 index 0000000000..ba5698cf0d --- /dev/null +++ b/code/09-assignment-1-solution/src/components/ExpenseDate.js @@ -0,0 +1,17 @@ +import './ExpenseDate.css'; + +function ExpenseDate(props) { + const month = props.date.toLocaleString('en-US', { month: 'long' }); + const day = props.date.toLocaleString('en-US', { day: '2-digit' }); + const year = props.date.getFullYear(); + + return ( +
+
{month}
+
{year}
+
{day}
+
+ ); +} + +export default ExpenseDate; diff --git a/code/09-assignment-1-solution/src/components/ExpenseItem.css b/code/09-assignment-1-solution/src/components/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/code/09-assignment-1-solution/src/components/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/09-assignment-1-solution/src/components/ExpenseItem.js b/code/09-assignment-1-solution/src/components/ExpenseItem.js new file mode 100644 index 0000000000..07e4e0f98a --- /dev/null +++ b/code/09-assignment-1-solution/src/components/ExpenseItem.js @@ -0,0 +1,16 @@ +import ExpenseDate from './ExpenseDate'; +import './ExpenseItem.css'; + +function ExpenseItem(props) { + return ( +
+ +
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/09-assignment-1-solution/src/components/Expenses.css b/code/09-assignment-1-solution/src/components/Expenses.css new file mode 100644 index 0000000000..2a3c9d0fbd --- /dev/null +++ b/code/09-assignment-1-solution/src/components/Expenses.css @@ -0,0 +1,9 @@ +.expenses { + padding: 1rem; + background-color: rgb(31, 31, 31); + margin: 2rem auto; + width: 50rem; + max-width: 95%; + border-radius: 12px; + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); +} diff --git a/code/09-assignment-1-solution/src/components/Expenses.js b/code/09-assignment-1-solution/src/components/Expenses.js new file mode 100644 index 0000000000..6bd58d5710 --- /dev/null +++ b/code/09-assignment-1-solution/src/components/Expenses.js @@ -0,0 +1,31 @@ +import ExpenseItem from './ExpenseItem'; +import './Expenses.css'; + +function Expenses(props) { + return ( +
+ + + + +
+ ); +} + +export default Expenses; diff --git a/code/09-assignment-1-solution/src/index.css b/code/09-assignment-1-solution/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/09-assignment-1-solution/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/09-assignment-1-solution/src/index.js b/code/09-assignment-1-solution/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/09-assignment-1-solution/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); diff --git a/code/10-the-concept-of-composition/package.json b/code/10-the-concept-of-composition/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/10-the-concept-of-composition/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/10-the-concept-of-composition/public/favicon.ico b/code/10-the-concept-of-composition/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 zcma);c{J4h9>;%nil|2-o+rCuEF-(I%-F}ijC~o(k~HKAkr0)!FCj~d>`RtpD?8b; zXOC1OD!V*IsqUwzbMF1)-gEDD=A573Z-&G7^LoAC9|WO7Xc0Cx1g^Zu0u_SjAPB
3vGa^W|sj)80f#V0@M_CAZTIO(t--xg= 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/10-the-concept-of-composition/public/index.html b/code/10-the-concept-of-composition/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/10-the-concept-of-composition/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +
+ + + diff --git a/code/10-the-concept-of-composition/public/logo192.png b/code/10-the-concept-of-composition/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/10-the-concept-of-composition/public/manifest.json b/code/10-the-concept-of-composition/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/10-the-concept-of-composition/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/10-the-concept-of-composition/public/robots.txt b/code/10-the-concept-of-composition/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/10-the-concept-of-composition/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/10-the-concept-of-composition/src/App.js b/code/10-the-concept-of-composition/src/App.js new file mode 100644 index 0000000000..21dfc576bc --- /dev/null +++ b/code/10-the-concept-of-composition/src/App.js @@ -0,0 +1,34 @@ +import Expenses from './components/Expenses'; + +function App() { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/10-the-concept-of-composition/src/components/Card.css b/code/10-the-concept-of-composition/src/components/Card.css new file mode 100644 index 0000000000..166cffe458 --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/Card.css @@ -0,0 +1,4 @@ +.card { + border-radius: 12px; + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); +} diff --git a/code/10-the-concept-of-composition/src/components/Card.js b/code/10-the-concept-of-composition/src/components/Card.js new file mode 100644 index 0000000000..2615acdd3c --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/Card.js @@ -0,0 +1,9 @@ +import './Card.css'; + +function Card(props) { + const classes = 'card ' + props.className; + + return
{props.children}
; +} + +export default Card; diff --git a/code/10-the-concept-of-composition/src/components/ExpenseDate.css b/code/10-the-concept-of-composition/src/components/ExpenseDate.css new file mode 100644 index 0000000000..d69691de84 --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/ExpenseDate.css @@ -0,0 +1,26 @@ +.expense-date { + display: flex; + flex-direction: column; + width: 5.5rem; + height: 5.5rem; + border: 1px solid #ececec; + background-color: #2a2a2a; + color: white; + border-radius: 12px; + align-items: center; + justify-content: center; +} + +.expense-date__month { + font-size: 0.75rem; + font-weight: bold; +} + +.expense-date__year { + font-size: 0.75rem; +} + +.expense-date__day { + font-size: 1.5rem; + font-weight: bold; +} diff --git a/code/10-the-concept-of-composition/src/components/ExpenseDate.js b/code/10-the-concept-of-composition/src/components/ExpenseDate.js new file mode 100644 index 0000000000..ba5698cf0d --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/ExpenseDate.js @@ -0,0 +1,17 @@ +import './ExpenseDate.css'; + +function ExpenseDate(props) { + const month = props.date.toLocaleString('en-US', { month: 'long' }); + const day = props.date.toLocaleString('en-US', { day: '2-digit' }); + const year = props.date.getFullYear(); + + return ( +
+
{month}
+
{year}
+
{day}
+
+ ); +} + +export default ExpenseDate; diff --git a/code/10-the-concept-of-composition/src/components/ExpenseItem.css b/code/10-the-concept-of-composition/src/components/ExpenseItem.css new file mode 100644 index 0000000000..aba2913253 --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/ExpenseItem.css @@ -0,0 +1,54 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.5rem; + margin: 1rem 0; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/10-the-concept-of-composition/src/components/ExpenseItem.js b/code/10-the-concept-of-composition/src/components/ExpenseItem.js new file mode 100644 index 0000000000..cdc6cee206 --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/ExpenseItem.js @@ -0,0 +1,17 @@ +import ExpenseDate from './ExpenseDate'; +import Card from './Card'; +import './ExpenseItem.css'; + +function ExpenseItem(props) { + return ( + + +
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/10-the-concept-of-composition/src/components/Expenses.css b/code/10-the-concept-of-composition/src/components/Expenses.css new file mode 100644 index 0000000000..9b05ca92dc --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/Expenses.css @@ -0,0 +1,7 @@ +.expenses { + padding: 1rem; + background-color: rgb(31, 31, 31); + margin: 2rem auto; + width: 50rem; + max-width: 95%; +} diff --git a/code/10-the-concept-of-composition/src/components/Expenses.js b/code/10-the-concept-of-composition/src/components/Expenses.js new file mode 100644 index 0000000000..c42f88321d --- /dev/null +++ b/code/10-the-concept-of-composition/src/components/Expenses.js @@ -0,0 +1,32 @@ +import ExpenseItem from './ExpenseItem'; +import Card from './Card'; +import './Expenses.css'; + +function Expenses(props) { + return ( + + + + + + + ); +} + +export default Expenses; diff --git a/code/10-the-concept-of-composition/src/index.css b/code/10-the-concept-of-composition/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/10-the-concept-of-composition/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/10-the-concept-of-composition/src/index.js b/code/10-the-concept-of-composition/src/index.js new file mode 100644 index 0000000000..d59d0ce18d --- /dev/null +++ b/code/10-the-concept-of-composition/src/index.js @@ -0,0 +1,6 @@ +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); From 82a112e571ff7e728452b8002e0a4eb7a5e470de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= Date: Tue, 23 Mar 2021 17:36:38 +0100 Subject: [PATCH 2/6] added slides --- slides/slides.pdf | Bin 0 -> 407007 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 slides/slides.pdf diff --git a/slides/slides.pdf b/slides/slides.pdf new file mode 100644 index 0000000000000000000000000000000000000000..01c2ca8ae3ac33647b0190f2cc7f5c9524b14efb GIT binary patch literal 407007 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 z z0I1tpz*I{P)oA-rEfMtc#WQ3P(3gMAZ@AZdFkg?^b>H5w@Ev!*SHY4N4<=vOT#iE6 zb^L_@M$dJ^q&e6$7R==SX)OOUTm$AoUuIAHeD^k};6Yio%2b!!yp*t&M284;3!bW_ zYW@H}b@KkfQjUN#XrBP2>hssd;UTK`t|_?}(u{rJ_>8+wl3_EX@0mv>6lVe~uKsNQ z%v*HHj*i*&GQP_znpwuMai5A{_nyqn9B)^JUU2~oKFnz5pr<}{0+Ok{x;}?khcXlQ zR_cLuxbntSks2(wjmI=yUz=Ay7~V=3GhCFaMNe>nUuGJwVd!SsC@P|6-*~MrRl}Jw zq&Rf=={MAfn)mO!0In-cNPHDO6T~-aAJ_^J|HD!&n{&I4+rJsN(N{k%V-vHz_VEI;tds%>{GU0B@q}A=@3N95$8G9!nPiLR4U<@5WEktlu zVqjr1_g+H$h{5W?oY?V5u(6!zsS{|HP96DXpE{n$B(edBE0hEYL8)YI@m6KFbbDBP zd;7`r3xR$Om&@4{F@(Hd$_yp$V}*WArZN{A82W_Xlq~CLOHLeATm?l&=-7WJvS<R6(<#{2Eai zBp2+t8<{XDn8ZLU=1hpLmA~OFfB_1plNr4jvngvei{dg1wlerIh~!qppOYSMb#Xe0 z%bU}aai4U(8?S1+tnF&Wy@-QEs7>--2!4pw@Ze$w)uY> zSj5@}qRs{J8b6Tt z@@8@$RAUT>>LsD9*s{!c$?t;^Zgd||SLFm--zz11q?W@4djo^}9d%@??NdD}7~g>GgGf9Ne5?<;zm zIu`(VNtgVKpgL&>t1_~d(k)1GFvDKEB1C-uf463-peDL93+c9!sftxkH+;CYI^4@W zPgtMYhA81e^qp74+-ONOaQk`gWVFbrsMd@~>1a7~Jec`uQnj8wJ;G?vC^4S5o_lEvTfyd7FO1%zC+F&pLUDW#>63!VRX-;Ak4)<3lA5Y zi6dyIz^d`CSlt928C_SDpfu5njNRNpwg%xN_FwS^QQ>y{z(6)ix~68|4>O(C$msBV zK*mP!3(7d<4}->wjSFB$YAU$e)_zZE;O85kIaE@c)_|mI_Qv`g$kKDT4$)W=g&m46EHY1 z@Mpoq4fnTKFfyK+-U|D_0zvX4I19=`Usb&Py#Y$^Al3DiqLS{pP67mze-jPAbm9fl z^*0+x6k8VBo*MJTpqI0lUEJQ5tcMKXu`Mu2jTY6SlA%y)VNe1(YhJwk9-%18n5<|T zMEHgMiJcgiVm(kZ(DVp4TY(yzHa}YXOXi&EY$E4fiPZz3T^;%F4&fuQz91lqX!t^j zo#webR+j$osXPhJeY#iYGY}J=CeYAxj)IGpr8Q_~IJK;y<;iLtg%}`3o?Y}l_B6d&q>-vLD{5Q1)ugs1>B?Z=Suk^7h8 zgPH%w;AZhk(+ZSmwJllvOx5~Yya(TenC zEccYBsFyWY7c{kUyZ0djou8yN&JnY2;OoI!Fz!V!RuDwpXW_}xP%L+pmVP4-dHKKg z0Hi2w3m!Ym<+iHi?mZ2SZ9U8jj)AdR#uqnHT?JK`_wtqT;24R!lHOxyk5QzDvc~o! z`Evl|B;U`Jy4HrsIRlA5U>z70k)w}<%t7*5$@^vV$5Wd@;nt+j-o*5J|6i>my5H0F zQ*R1c{J2{_(e0lR_xNEtTbe-eZVkq8VE!c~4(JHJ*twQ~`r`Z`0SSXbq#`|l97}`n zzM{GU9oRAuF@*Vqc)Q>4pC*TkUA`1e8xt8h?E0wn&500p*^2LXk$O#d?KUQb5NM@3 zc+#O-+ML?Kze9<#N-a);3r<$P!y zTQRMlP3*m!V{stwJ`57X(=aUu^4 zlcM@Jm@N*V0hr}z6ny>r(MWMd6Ltx^{b^-t1j%LwN`*k)+X2)5{-s)PlHug}o}gD&s+ETYTq+8|WB8bG7Dj z_-^;9RIZYO$Ulk7JTb=@raFQ0E3Q)U|ImU^6v0M%Nk_t6Pm<34(azbEVoXdttj~Jf0+WsCDXT6w6Y0tVPWoBGTCB2 zLzP1y9lftZQRVMF1W|MKgln%3``SCq0o{1(f7fp0t4+La!8f1fGid@S2}gn(BX&`9 ztzjxEDk~?0R5&l8xLTpi3{(QFTJ^%2V9gddYvLq>M(<6WV@fU>AaYq_Y{k$uwj~b8 zS8Y=%V~kE<3`~Y08BR0Qt}tKX4eE1tX`FYJVmBvqbM-km9L)A7ZLOz#8^QsY+4>T( zeG?ZAISFq_v}fp;0;uaguEWJi!pob6I*D_Gty&NFv0*}MlhtF$LpJL3 zC!kg^u{>2{kRNkxYzaE^LubkBtOyAK;H65q-Vnp?y7FGCM~ZZTky7F>vglQ)iUy4r zr+oHO)^2uCY<`l66dR6$K-o8P?weHcfxcevG+G}MNuePrSYI|>9 z>$j7@8pQbD=*uKq$x&(YRA{aqfP{Uttob(psQ4kb< zknN_I>H+yWr8|&Ie}&0n!cMkGN2m)gVS8yMf;E3PrA>Ic-(H4 zJ`u!Puke%VIfYTaC}-%+#AZ>;Z^qa%kOAUmE^7%f*Ga}8jRebOGcm(L32Zv`rN?d| zoP4BwxUY!2z&I_~{lzf>>!zVzW&vyK61y~VAwAw&Bosw^qT~MRl7L+rYClan%K-fL zss7hVH@iZ_zmw)N-cN@fH7;*Bpg_Kv~F3yC5>qTyCHWdt-GmDAs~c zBler<@bIwt63p!9h1)$VXI++u?<8l6j6578O?PH#A7Z+cT?;C#Kzt*l2o$^3p9+~o zlvfYFpMn0LAwop9KTy6fwX6X`W1fS`eB{Gy){9-_6-6GODcu+Qv%ap{-wX!Ur7%5W zmK@c6r%!5cbnf!Jrh4X3JERh02#DMzP=W1^7~y30*$X{ezG-m0r=bJAi+g-xT6t7+ z<#S09XB1%9kGBGK5laZn62dvj(0wrdVhtszwfqF5=#U-_Xc%OXXkc%&WM^j!IL@-5 zl3UL9Gtc#7f3-x{W>C@GPJVb(j;c?zz^7Tu&!ZZ?9xwcDd`hr6#|#Fylv;f)vEeY+ z8P7K+nAr9|RsmSLs58VAWHt64tCQqZHG3Zy=pNvMb^ZK%;k0wJv!fNwtOmP41-#eu z5US_)(+?CyFr9d@iuE=A4EV1w96}Jl#C;&AzPYzo?m=B`%k@=x%`1i5Q}b98r+^1H zbl*Z5={;(~KQOWDf+#$g0)jd(0Yjsw%ZYSaHl-*DE(WeB0lV(5DB6tApEZ#&D>~Bv zT8oQ|Q99BfMIUBe-xQ#ezIkaubG3JAAEC#dDh5xV%IpI*5V%M4=MH>Q=Q&po75idm zsU{m8^7@4S7`4AtA9}{L0gE)zJ--tWx8Lq!vdX~K2ifM^7_NBuhIpi+k5vmC@n(%Y zZ8|YGusgo<7x2(@xb+2~1=Z&CEpKOgCCLYlC7A~|4=*s;QO1Pb9MVCCXzS>(#>yU- z`L+DBtVd<0MyTo1e_lE>-9>ZVEuj6@b-ov{` z%g)|7k8ZvMcH@ePZw*h7jUD-@{nudk_3tzWvZZ{PCa{Cn!u}6Q^xIJt(sf7+b=Hvv zrF*}d>t0m6%%hTKh5z_0<4{L*2Jy-nX;{72yWvlLD1|0cpQBJY-w}WRK`?wS(RH-C zuU;Q1c?xuuvVF5D-10$B@PMwaV1<_uVWn24$H4vK{B8EOJ86*uDAZyqv=4mP! zbZ~|zXK_MaT7>4QEx%Z0%_`pE3qt^=STJgIkh4qc1AWzmkVq9eUQiV^CJXFQlddO6 zqrV%wQd=~N9 z7{%c8yQ`=}L^_R`%|{MeY||4Guqyi{=t}mus0aqdXlf=9!+~Yv1O(IZTs!0ps3!u2 zKF~A`VGku#R5A}6^RP+KY>}u1Kuk3SQLH3+ruwWGO8sskvpKhHD+tQSneegpr~B1v z$}MycNC=$qM3X0zbgVcVbBSlhnb0Qv2eDa%7^;oknUFUe0dae8;rCDCOjQVB>TaxAQW%ATjEq|m z%T!Npe7xmhFI)cRSu-w^Jvm-9bkiIv$^KCtUXhJalK1YS~_l($^R0)@aaWg2z?yu%r3pjv3 zWc$6VA*!mXEquNJZ1@=oVg_R<1#Dir3_&VEHQO!LU_$4U5lnT8`anfS-RPMCj?EK9 zvnxpsXvB%{bm2<`>b=&>CD-;2#y-o5Own7jrAltbrFxwExmEj)5FmF~mqO)EZm;UnQ z%ZJ1VorCTF*kA|m)eBl-PC}gK#n`Lx zvgqrsdX)W3XvA?WB%Zqyk>@-K@Jn`eOjfj=N)$dk$f&`pD@t~f{kZnw=;||1A?hDNxN>=U{aOnOMJS zDB@UlKvQ0P+=Kdi(NO zqPgn^zS4x~enMrfI(Li9|Ewa_&4igburATsQ?=>8Ql}^;i!8~+E<8RL7vM~UuoPZ2 zRR+N=%hpO3FPGy*yYFwm<(76iB7FcOKm3<|XeXCB+2N#m4A6+xr!A7vp=n@J0`8;a zVX_`i5)}uWb9_de8{HvbTq*nx*$n*lL{kqgC{IO>^9l{!qq>ridSsh2vtUq0rY2iD zH%)Wg%OjXHY4w4hEWC^0qwp{#(75#pXVSlp!nI-;^S^vi6?OO5W2A=uIawDf<3U4C zuOw;fEs7F|Q=)=rMWamVO~fU1Eh-t0g~;hwM5s!3!Km``a?D1JuD-e4B58sw?2;I9 z1jLz`Kd>_r^txwzPrT@htIN1t!I3%>sFo zb&YgFZHZBFi6MCk<}rUqCBn?D5wr0pw)S1uewU>vvOR3<&{W+28k&vKUVKk0FyuUB zW)%>4E6Y_qD2!G^O)Yj5p?oh1Utl=^S>#0!jG}9guR87?UjV8)K?r4&=@Vd)-P>h} z*(R{u&1yZh`yvAk`%X!2zuw)GE63pQYADc8+e`%JCJdU}9GVyrGx|wUX8rcr?8qC1 z`7IxKwt5$h98f??DP>d>uPq6B`r!wB8i73YJ4C$eSF|@IFk-K`+KlYdzDiK^g^#GKF^+Vi%*s z^LL<&d<^3}bUF933gF(JYt=h)@<~5$v^W3bHm&H=MX?*r)a|z%ukDTVdS|XDL>C`l z&tw}Gp=D(oY+!5#Fkx!RFsg@Ve_Ns9C9=)0C;621fO5p>7<8=sHq6&AJ#HOlfB%{0 zo!Vv9|K2X=?KA5t6S$N*+zxk;KG|%!1J8+O|K}{ceK0jr=~|Fr|5$fzD!9{p##>n> zgL&XwQ(&$8LYBiEzDvqzs9nQ;NYAwuBIbJV!gz1m5VRbI0(lUB?xpIem(&@APJd}+ zOZ9IM)*l5GE+C{3J7u(ePxrRNyY28e+?`;g(e|&&uF_+mz==KT8m>|7V3+zl+8;+% zsR^Lj;tYd35vmLHKD>fMr9NWti3b$fVDLOLEhpLVOgGiV&9fht5DEd3wm}t(@>^7$ zzGng|k;0ik1T8=J-Y823sOUF!q@|^=r|aVIfi95vzNiwvzSlK%eB>%%JoO=obYF#% zVq8uS8$mjBos8~qsX5NAVIH(Ikof7b8#D$}385e|KYN@~g}I#Gg=#3YK*Nt~!odv! zPW~?|v{Vl%HHWdqgshv>IAkQg;JG=54^5K=>hmN2IsdOG_qzz$Y!MWQl5Uhfesbl7e`m(tkM;f2C?%KqczcjE_Im=vxbS9Gqn zAv%2zGpukgdh_8G#pa<^hw^dUt*fou@#yw9Ck=F;`aJN(&lugvzNt=z#h=!d9(0E& zZ_;i`kn}DWw|^>GLR+$i-nqBa<@AyCN7Pq(*B#iZ4l}e)U_skT zG;vk>_#>F=+J3|ua$Yr!V}NWJK@Rz%n1ht`rBu&uSkIh(8>tLM0z zvKEQDl9;&IQ>VV!8#~SF;GW~-PN0sNIR_>M^Et3DM|Je?Ci2{s;39CwD~rZ*n%ctV zI$}u@!A`Yaqb1dJpo)luI_y7ae*a4fMEe9>0Q{dg56! zN7K7em^;dU7pU-kbq6KsNiYEcx}(nbuL>2NCUzyTrrX6^HLAg()cN>4aDp`P$qi-n zOilH(Kn~GhVY2PsF04dM^Sx$kWQC~P^YR+!{4&Y*8XBZvrD1sN5~5q|82*1|qVJ6} zDMx)keKRvd`FVX>Y69(ynqh~}B*Q4n3k&ZHR_Y_8)6?m3y9EW5W`S$%o09dSqpgTw z!bfaVSDd}pTeOZ0fnchzbaE5*6%c(3My109od9Xk^x7>rv=A?<4p9ysfrFv? zOg`>}l9yIsiMo?2enDip2oCpK#-@N`Kb32$?SG6;u39hucF|fQU2L8+NNzLu)ZEv) zJC<)4|H^9yqDD2RZR88qrNO+2$!{ZV6YG~NdVi%e^xM7SWlLdr8GA+|~E4~0U{|dVq zDi5{KmsW|oeRNfV7bIa~SB?*ok4X}7>Y{i5gr!#!2OaSe@Xvb}$9GEhDIC4d8(ij! zf-p4j$n$PI*#VT?UlRoP5#S`kdG85mMp0Be;(xP*_^At{g9_4KDTgy7TM_%DfaJzm z-->D*6jap7Gb`t7d_=z7I|J&nHx)iyjc#SoIT_PPG0X>!5BfSx5Wheq94H{n^a!3^ zpf4jPup!OW)EefqU6S1DYH*!tVABSL&`|7h&->JKPk#2sYh7w5cY24-S=W4~Rdcq< zq4_Ztx+JF5Yv*flc_8TR>XwaGv;s17LH zt2%W92t;Kg3fQPY>RavM+z*UZvi=P;Cd5a@&p>i|dR&~_E!BJE^vmf~zSt5^pFj}F&ow7Vm(ldz|T%(_;fxmZu2c{J+?&*pysTB)gg7ISo!9vcX9 z0{h=E$?F<0Gcvv#og~fA1QfA%=(rlsC|O^;FqssYD)k*`g@BZR=@<|~k813W&3X&~ z=-HPn#H!e--vkZW49R_8tw(4Qm}uD}Lf)U?%%u8jSvMevL4Qb%m?`UE;v|1>Z8O-V z{f&X2c_#K^GNr(k3m10u`rG2-;!rckUXA?5x(1VCWRpg6Fef>%h5nhsZYUNX9RyyJ zf2^yu`WB^$OZe)%G?*#>6{CCt(V5Q4Ws@GV!CK>DtF0;*w?iRl5N4UUZ&RRg4yeGu zz|0k|pYQSBkNWsV2}qV^Dko*@9N)+pQ2v?PL-!Y2KnvjS4;1%ssAA_fJvOS_0w3AE z$PTQM6JCo}Y+iNW@p^?_4LvJsuZA^<-HJFl`ntj|=nYnT?I|oeZ zXv@9{ zE@!jcggbERdOm2H78J1a9EhI}0n!N3`hp~3)Bd=lh{t3#Jf>op{i0h7_SI-d?fYbr z9TCy}Ez&2A#h{xk+>es~g?Mo6kFucw+P)56gP|eMK*9~6Bu90PeYJ^LuFM?3t9&uF z-IS|b>BN`RXG0w7Z*Qr3~e~*pw z+ZDCnIUN7D9?~|%UUdSvT19_eUS|FVZE_!o%;;koShK?Zu|?2Lc9#hED}WvK!Rwhv zJ|h`fLj6vi+{9Tl2R#EzobZ!XI8fxsZ0q$~j*gC^5Q-F$2Y}o#9-W>}=plW(%R%=Y zD?y{?N{YY3quaOdp}SIj%s@8KP#7AnC5fONN5zgdLjKR}z{P0V!C8XyKdPRq%#~e- zEUCekT_?9d{foJviqjJE@`dDLRt9Fnj^23uRf+y| ztx_7?_Y)7tP0<7T8d!D`1o}K}fnkjt0w{UDXV2o}7!tQ|C)3>#ThKuN%j)8*H z7(NByDVU@LTrskm8_=Y(FR7zI1i#Pa)A5}jXT1%sdXsickAeoCKvT)-SWges%Wp$% zL@kK)UwIr{D_L#Na1uh6{h8*lQ{m1$;3l2s`){u##5RqyEtGP=85pVfFUzJGA(bWU8ra{;_Q-E%K|Pn1W5A&^8* z!{@W`W~l?oR84zZTln%f^Fh3v!8=r!!wP;6I=D%x?YMIzXX+}j^Xy6@pqz$#L>qX? zE7mU|@=BAM)6v&sTM-~J)aN$S#&Q1>2#>tPS9o?<9xrz@ zn!(|4Zs@7jihf!}G~}Jfhir~J(ZXa+AQ~vF%(&A8`lo)TeFW0CNxrL1))t%6N8AF; zWd_tZYkYLoddWg92yS>{aoMvpT3tyZo~Wc)LND7`{x4B$&^SShEJp5hkircsuEJ3* zS6h(*+MTRr<22OpK9q9PXYbmI2ba6g^H5*I+g{$e{&@OefK2+oH0)s9mOLE@Bt?_S z^M;-1Zc~4wM>cV4%;EpDT`OZ{imL*j6$`9H7+Hg=w7WX86l}scOkOhdHPF@FoBHfj zHzP0dT+usJHHb|e$EO)fVGZt(;A$q^0fOP`?3c-_%piyHK+b=puepdIpRJv6t{)0| z0;8m$P3|NHfLFKBTSxFOdjx%FuLGXOd_pCi@xWHmxPD*ldy^%0Z0VgPnffzJm|wu& zGUf4Vl|^4V$?7-rn|KlyQyaqALDcn_$Mo`L-q*GiGtz9|v9+rdeq`m>cIlxoO_T;- z0QnyFZS>yvG+zmsY9Me54h}Z&`hv0ehcziVO(o5VaBXS7#6`^Pe z)??FoEtSY?Lpd36-u>m0ZUuf3ZOz-%WPe;uVPQ?e3*}?bcY{i*_T1Kujd z5+a*~2Yu-+$5n_YrI@#H99JGZ?xd%y*IL|C56|jHbhVOS$(`Fv0qGD{KMLZ*YgI+5 zRXug5t@%5lMofG>aMtZnl2S5HUl31m@wkFh{!Vp5TO9D1K|WIlK(>nsxzmd)F|v^g zhr{AIP1*<!hnx+kd(Sc>n|q;7#+~y8`chN&E{1EuRGWrYiDjjeLKYxNgjLRe z3iu@4+14y|l7)^VQW{>Ef1Nl#fc0#J5~czn;1w%H`}pD?c|^PV~q# zTiQ=wrW-2}5%U<_?2v8C3i>YWL5Xxs7t85EwRQ*hZItVoVFDcHIsfsE0zZeg&TVRn zlfC-dnDD{^+{Koj;57VlxQyAoG~rzUg6RUd3Gx9T%JrZ4x zduG5tCdxchig^HT@=#a*Js(?eF(PK8fSKAZF!&BMPDJ&u>44OFeSy=bu$ICDnb{gJ zqnzpEA(g~XQ~-ws9C;d||Jfe~VS%!*)1Xip88N%FwBOR7aBs_2I`0$B5+YX10rmOw zT`O06lx!s+Cr~pr->j=R()re?xjipMKq{TdpRI!{PPn%Q96-a};fYsGv zrl2Al8WQve?ZN%HVWex|zDtF;fr9S6tdafffR3c4iV7r?YxmZdhSzT8j%Fa|_8hFE z!wal2waGjtfgE>4H8WP3XFb#D*&=`2o`yIuZxMs7^=tSms+6sM6^5u=tsmMykTM0d znebP$ZWvL9QtPLGnP7O6k&(QPPCO_)=I=PqaB43(!F9#IbTM}%FRISv>}=d1mX8ry z8!oD^)1$%WF_#MiEVmxRE*#Wd`qZtE!tPD)ey8pPC}>@YvpWSQ^ej6N`a z27fozpm70+mq%K5a{Xk7i%kL!Zr@sKjoXvIgU65pz+EqTZ9z!)|4xC$ zsCe&|gFsH$1>gDj|Cwk|1&^{q9Jn7;da^dX%YjiHs(HVuq2m^x?kXJcf?D4KXbmFw zn1bNzfHSO(%>r#haKE1ZT1D70(&BAc&V8Up;4kbcfYGO#!47=QlpYk2fzg(Si~hem zdVIL%6BDr=v{3%({z$(TTjL^UEJwxM`yU(*b4&S^Y#0%%pVvALdvE_dF4|#RS5}`x zilLh52w#ssZaL)Tvb%6L{8agi%Xe>u%Mkd!XnlSAba+Z-(r9*}EMH!p%^|hxi1Sj- za*(v5h>1qXg!=W$yaajde14QR>-#7V3*V|U4#~F)ne=xPcs>X9l~=hZwdzK5iHX4v zs!Ar!M6A%2gSprv(>zxZl1bgTR5pc@FG9pI-^FN7&r4)xv$LJvz@%gz#PSRwdfUrH zGrunKq7*>n8ZCOk=U}7RoALo;{=74S?!wDc7hZ}FlcdN|dVeW*Ss|y&`XH}?roWPG zXS7X9@BpgbbmZklm$(W3@4;|`w|!JhjC8@V>}5$yy=xDClpqOu5C*zDuj2xy5zoBV zs|SX#DUmew>zLe0pViqy3Y3G)SDgg5#kny3v!1bc$q=c0yN{YK7*T zJnScDMQM#|GJDOpG-meNyAN=i3yG+W^w?)I*Y7N7iCp$r56JOXaxm4a zH`$yqHkLa{^wm3oUISW&323!P;n~wyPMyAT!INNXq23@G5X&hl0}R1J{=0~d%gT$d zP#Hme3!%(ROa}wsjxc?blL`gLh@g@I3`g{hG!}{LKbv|GN@@nW1jHi4%vmtufu|U4 zM|+uH{CgMZXCL_lB{+#~E!O_;a>0aL0u@U6@2sx>ASjjpAukbb`Mzc6RL5N0k&g4Oaz++1nO_{@xe^m=c=}r{*YHhnjn#Kg$1D`-9GPYFX-9{N78`zJg8ZFg^ARkij>g>U)p47v7w7ApU`CC0?H*~Im#_jn`3 zXKScMX6GTbp%Ec|yxUi{&(8O~sbNt}5|+t`;ZZgbzAd7iREQyOX zA{C;hhHWowb$Iaa(KNZ<8U!jPi^^xjiL%YUxe>dSp{pr)ftyr&k^Y_dic=TO*(w9_ zAp-@N*OsyeT8BA3$8m4wwWKw-MUwxc=#e-78-e(;M*ykOe`C9f&@&~2IpCFZ&vU?D$ z;VY!oNKX`n$%0H#@7C4jUyT9Yw|KP_<_G>c&W4@0y*a*)tvF@B<4`VJc*?@B=wB+M z_WE`LRiAKWWEZZe8MY}4tfm!QJSJHH@BMPgSvlLy>YB$Dk1Gz0%Y?eC8Vxm$OP3y8 zx+wE_ZL_wB(pt^7SN?s7(d*P22lV?IDTNB^y;DT8_@i*jw~#?RS@gh!QC}@pCGoz? z^4Bl#7zQIBT;qh9zJ}#emSsg>eYFnM7@HdVdyOFjmT9ixt%MssnsF9>DNOZ zoLWK{6~xzJp_D%mW{65QZ=oJ={_e3r={XvDJIypEJVm zy4wpbxVCc2{>3-gl>2DIU-aQ+BfrPy#Lg*bZnifpD1+t z&V>a7lKI-gA^D$skoWb^mvtg{!1oekRD2FoeAo}3mERRf5_K8q@831~juQMhbmgDn zgx>8oBJ=ZuiCq*hXK!2!k^KG<(!8eAHOy|wO@8>J*xQNIbye4c!M#m0UA;kD{hqgb zLcm#u9>hySAXFr4pAUVAr6`rk;Ea{q+7o-8kfz=s4*e0uvSm2Dl>XxI zj34X^mRun(lw)@~OMRjU-RQRwI9z}i5I5Z?`=;~n1-$*DFUWuH41~C+_GUwK_236S z^SU2UX(*fAO`UrSp^dY0LE9HwS&RIl^pDs0)U%?B_!ZB4+}D-7a+Gfbe3CZbErn9q zEQmZ^jqSaTfRMBhy^rq?pA_6VIdbBUVb~CAF$G9G7sqx?fTLP2^ha6Xdu%P8ih)f_ z#>1|Tj!QC%J@=dd)3&welLzw%J#ehW2EWGE8hQB!u-`oW5yCz(%`fnzYX_37{~?~o z_iEq~sx^YV-f-HsS6bu5+4z2!=Oa&2Q%gg1Qc`dBjZ*H_L0G8Hk~;>o$C6XjyRnpe zV6&wn&K(beSZX2hvz@n}Aam0*rmtV7so#A!RO!W)(rN5rw>t$7&Yb2W@UW2l6=l-~ z(9A7Mw`)`K*hYW5ePByj7Z{~y52ykw+Hp_$cTAt-K)lA z$waJKWbbKvp||POcBSvE4>U#@*nHSrxluZ0Sx_r>e zw(hDFR_*nw=61#Q-0u^gVMC zY!i)?a-nf|6RvL=3@`);1WaCWsnj#RbZMN`VuCNt{nAv+$!zP~-|O*;q?idgXq&x7g@0o)^R zXh%F zl0EYpuBMiJvekJiIag&hlppGJKIp+(#S)vxA^tt5r3nzT1Uef2P992UQ>U^Mv{)_f zdvGY`wIy9AY3xBz`y3QCk%5Eiz0CCD+;8W+F3E7^+k#a6CMfw!&C#b1qGJhr5W)m2 z=S$%odY3PW@ZZ0m();{QITrshj4f{hyfg5*`ZhSYIIsJQO-q* zlPpN%ejxosE^33^P|tQ?V89~K`*bz>DGB_q;O*^mg42oi+zC_O`zub%d#~-I)$g4D z2x*;TxFEuB_bXLCa0jxqw8S&YtXigCpfA71fRFmtiF^h8X_nd^?WfaZ5l38&Dlg9K zAIwRxC9Rz|Ng!7E5_z4zp*J4i+4YfJdm-vy#yIeN3tSuXV`Nq#(5p`~uu5U`9 z3DiR=KjQM-To%2r%3lls|7jzBTQD2{D!! zzlo`A`n3G6Xp8>B&#bPkC;!CO=ECnGTZ7;;Lkrd=^bJQEUZ)>kKDTjN{D(H7$hUjg z0e=EPR7Xe0%dg+MyYOFv=sUiMA1*NI`(Tu>`WD}nxTc?fG*66moW6R^qE z+}wl9$zI(2&fgaJ@4*5c6gC9*vs5zXtuul{+$|;YKex#$tc;|Wu_SJHh06(|2ubL7 z$K!mv%(=-Id@kV8SxRPlDUWBciDUbS6Sp0}MCy6z7mvuT?g$G;+(_NHQ!q@}YtJbK zqG)#{J@PP=>aV2X{}J}qVO4KW`|vr4g1JGEmQo36>DVCMf+C&Ljg-Kq#Eo<)NOyyD zH;B?8(%lGbLUJQW{?-S4&iOv?_dVzF;vX+BT%R>-&CESB_sojNc8+7jNbp$dCgy7$ zwCy{~MU2yjlZU;Ndu(IY{gg0MF6M*OvfJF}w~s4pZBBvZPmFFq5Jh=Dg4Ue8IysoaFG~>Apn$vF5x>dh*N!v~G+aZ{Om%P$P&|~E^*18(a@?5Yo$+bzTeh=tNWaiF zF-EUG1%?I}oPK1Fn~WA(NLB8EELBG$o=Ev?)9%Vax!A-c`DG|4IitajUG06p`5{$3 zJ-C`_R9oSDL&Fu|;cdctfpn~|2&yX?1IYZECgltv)^wT{R`hI3AR&^~8NsN}F?Gr1 zH(U&Q-4;WQ?XQv>@x<<#<>1|cffOtk%-Fyo-UUMWkv?9~puvhQFBD6?#Y|Pt2^JE> zb8gjop&dh+K)$ZZyw9*ayf$QY*jMhI8PSVkpN52Cl z3a>sny0i}0#m+l?-3QUxXDVTgbL%Wl5$M&t>>gfrR6GR&mC{#c_HrixPmR)l4InsHl;fcrvL$u(nZZ`aJmF5XoS;IkOT!a!s;U?kD&R?uSGcy{Fv>Gxu z!dv@z1BqGhC%nj3M8F}-dl9{f@K9LIG$e#@n~1Cf%$GOD+aEk}!+a`Tmm{K|D$rg- zWRyaY11$6!TL5qa(YAWx^1m{ch{l?eox`8j37M{O#%oX+u^y^Stp$q@&@}f#%RK%n zZ!23!`xl)1!)PA+9pG4Dp_~U=TaFRx!s)UC!wT~vFlH%_>SDiJy!`z9kF9Q2g0G^w zUj#B`hdf1&EAg^jX-527gDF62!=yK|#vcqJzl|(sg#>2W6R_)H*J9Qu{vFLz#fSF9 z^NO}Hpl3aq>4+@9+@^BrGL6&G4)bs@W4>F$lgsXX@~1fR4{S`o*F1uLg16l2%Ug>D z>Bi<#MG;%iLYw+&(m*(`QQ|3VeN7Sua2MD4MmAx8FY>|v-ea!iZ%J7T@*#nzW{x1d zHh5bmZ)4VeIxrtJnBL*glj1IRRZ#({iR1SY55 zSCB-P#E*qrrP{|;=5n{`l{!RsOR}2ThOq$r!uf11{hv#MeSsH1#M=0IxmM2#+u!{l ze!O~!4L4;h8kA@IZU`(29KqqOjd8xSH?RE$r71AU)rG#92bAtdb!1>2fxFETEj~z< z@GyxS-@XZEY$SKP_R8s_DG^VM=IVPm#;bw=r1_c36G$&hW5p$x2g~2<#T!^2l1o z5RzYZ;I=*yVryryi)#Hg`t*;#VojXSzfj;Uj;w_QqPu%{v}OLt2=_L(Ml0Vg#OVpx z$c`0WuCtkGzFVR=P;H5$Hi6*9(?g?^sP!>cXx$?v>x_gv;CP>A{D zFL4G2NburV$)o?5@Xq%GMi@}t-K;_t!!L(3(s)yT7r?#>=ix_8yt&4=3|fx)ajb48 zonJl5kXxBBjJ9q*O_Ko2<-luf=LTvxFbXSU5P9fW?Qi=u=p~v0Rh(Eq*dsyT4CzZUavbpi>A+C|W8 zB-6%FF~=wqxST_^BS2nZ{gym0s6MMWtfx9Ft8Mek?ZDFM|RS;AKoVqd@TxVJ<%Ls z$c5vn>Vp?{RhUL#|HSwE}*D1X)MX$qEAT*Lsw{UM~j^)s5_H2Z@5{5@CE zQnLQsYk#frDOUK{T1!<`k~SWMc~eVaMcQ2kSK+C}y-0i7<2o}wptQcdoB1~`_EF?{ z=5dJK%V(2WZuO>Kl{SKi?3$qIRC>Jm2u!A07d^T&AGFQp&{H|%;fh`BO&6=9{I}ii zeIgA?tyy>kR4btz1TXyGrT779B^G{5sjSSXEFsdIuKu;epBwk*b&sH^_-f$T&#?!; zZg7feiCs4+cfJI&k4#>G7#uE$VQG`oFi3VUj>sVoX060* z#o@QD+q2iC%h)X&5S(e>;JmGG>Uz2Utz|Mhy2=qCNogHp&WLF!K-J3W!bin$QHKES(`COkd-Xn5v_fq^Zoj|jU zEK}-_U{FPQFBqh5d~6pOdUMZ+XRb0faIhM0dG*>#JQ%j|w)f|?54X;vpS`_3bm5tj zwtZfvnrovLuq%#mXOH^nVnNgS8?T#_dL&FTE7ls*(&g}<0^?SHc6#JtsZXKx-r}0* zMUb*ZJNrdozKszYZMEV@D;9j>n5~=V1PWaRFJe6RZd_6KYF!ng~u-Jd@8c24R zVLp8L5cOsK`jXvRfPeo=lgHxDYr9toI#%zW!V=ZEPksg+Y{#RJ6mDC>&?(9Ohe3EH za|kBRta!JH2iLPP*cK_h$WG}yStTX79FcveIL@4y3VRdSp1(H;3W4YsKlhE1Rzvu% zXAU_(19di3*H1cQI1h#C_mVT@okTsJkx9a!_p#1**7qMK;Wcd6kD^qo9ue_`hs)g3 zWaGOM%{t+tWt90qZfRNtOHQi&bhUjJMI2E9$Z3kmQnInVKi#WzSR5OckN6=#>`T55 zkk~8CxOeQ|6UBIq+%4}PpI2dEl zFw@?Ptgo*JzeERs|0i9{X5L6N8y7uWQ;qe>8DXJMaBv_0y ze&t;4Gav>tx&hoeHP@dx?sdKVm!*4cqvYRc2Z~W94xi`SMmp&iATT|C$8mTRi_~O* zx3aSGDA#=s>-?<1$QhBdjc<%Sr3H!l6VbG3vIxEhe@3{X6+1ck1c~!3L`B7Pw zi#M{T8Zc$c>P0?0DP;O9$!}M_2u1f;{hod{qzeew8iF-5pSG z5S?aFgvtkvI6TfDqm$nW1 znhNrEV(t7_>Q(>aM!KmW0D*bsow(E?;p#5c6=KZs8>?^VSy&93DY|=lZn+dbz6>tM zvB)f#&YcM>(zT9t>fjk}P%ii)UbqGYl_6GCb`3%YNr5|RO(+(fI#g8a-C#UK;os(i z=&Sd9R9zIacB&|W{f5%6J&`%KthW`SD=cS|u_GwhKgFJ4x#2Lwb`JCW%%H()hlFPZ z5#>-!=|yap4{{FZi4TGBE4C%s-kY$1U#J-i`*{PRBk@A5>f7TwR5Drn=Rq$d6S&vA zZ!-GE>Cj@LyP5t``&3tRFulnw+f@iNjkB`)d6Rf-slVU7bO)rliQrzKK6Oawxfx5c zwqrW>rY}$mZ{DqMcj`)@v;^GwqkLuMLwkJ=QCI^o9%(jXPZ7!gxzy7h`m}GS0A|G8 zauIPD+z99%z!sKLZ5DxXE#^3e=gM3|#p{AGg?*Kb0_O+zy2CKlbKA4VqoCZe&ho-y z704D|gPVqJv_0NF`mW6m0&n9wp#v~@!@JJlKW{#`j1Sn@0R-oD8bJf!@Qe`4*U-Q| zh0i9nSS!VTy3x}UobN+`;#mLd5Nhg?CdY!eyV9Af4vw*%jX#%O zo*Ww^-U;!#22MXH>{DNwG+MTs zF$je}fkq#pZBFLxkmUwpR!Z;d3!i^HKvEwhTb0_Gzx60mZ{2HJV0v(Q+t#6{yu3Uw zgi4@v-Mj4YCd8{|n;EqmlJb81?!Xn;1x2Zu{5MCwCJG9~KsrdQ*nbXa;O7p2J@z6+Wm4WNu z7+q7@>OcRzJ%GxSjrBd!?Fn9ZdMfKu&MA4-Dc@f17<^DasVL?fpOA33m%!H^=MOJR zoY8t$?i0)zK4-oB?#9eO~|zS(2ayU@lkbWb;rTe2{n8VCQOjnvEPKgA3XZGYQ7%AUJ_a^mgYODK(Y@q89%#kR7j z9U3lARY5#>C?|VTW|jk@!;c@Yl=aP#0cGmNM7X-H=>CEyh`?H9fT|vXnj|QK=8(I+ zv?h>+1-z@xdqv39UP4PUz<=d0FZGA*26lD~c8}~bB z19w*9Vc;qME{}ODdjNI8`$)V+t}Km%DY*$He*H?SQr~}U;V~r*Nr8g3)FI1? z5{})Q6s(q0Wm|kv@x1C-U>U%;l*w1#Z~!fzL*~Z)nrpdhO}SNSy)HA{Ssev1*m~?5 zLa{+g^ka^pg{|FVWM3e`4Y90LryGA^aj(a699l_Q@G2_T{tlHop>|$`cAW?h|5789 zzIS>fcsS(uE?ltv?xmo1RUI4#HH{M-mBSnmMY_1M-X+02R$-A`gZT@}KHOKnE{kAB|vdM)@4CqcLNRq*LZ zKrnAccw2(y`|YvUS$%Kzn&-2XYg1KP;WhCf0q*V&FaD)>1%r~3$_vVVw+*$F-WU$) zs0bGS+3+lC_j2*cr0D=xJU-Xqxp!0i^A2<3DJ-cZb} zoQ;ZIQlFq1Vy*a>v%1Q8ioqP!r&^l#(E_FRQEjwW1sT z_K}a{`7x|$jHUTjQN;#Hn$KBBufV0IIVP+X3FTZI)jb^W*S=pu#DP2TIsUPPL@Su| zi;H^S8+z)rF)3{mW>coDd%Fo$$)__MzB&^@8X*h65||?<0dlHmEuYDTyO4n7qQ|+d zc)g?qCwRsE(qA#yYaS=eak=g=;OkCL_Qx%~Dbty61;8`r1!7uOB7O35I;0)WCG?W2 zcW@BhCUnZyyO5%L92g-V)oI~2S(-UKPR0b{N|Bg`M)~SdE1b59_G~Qq8j5dS`YXb@ zL!IW6DKrK~R3sJ-S0*vei8p>6e@Qx=aCfs&#VGLu3&9=HWZapf-6-|A>Hc?V%yJ1& z-^niDfKmlc7+0@eh4}NA;P*qO8#@f`3hOFABo!o?aE6q_y5E`GDvFWUmB?4?ab?pa zcq0_M0U_M52%QXTq7e%ZZeXu+-5SPw2ck$Q<>`evndSd3{iW!WNoB!3@2f}R9Y^AC z$+dKnRcME!R_+yrFDP93vk~u|?(Lo=p`=q)A%lVxF7G)gqHN;2JK2{(6FLdn%onupSS@XRT0c;hH z-zKzOni40JTJYfeYE#5mcu3`ASlE8xwITXjmW4q_Al1%$L0nKzG$0YPi$xCLS?x@>r!@PRq{19g4K4JYJ@M8q_nTP3A zp%Y@jSw3U+mcXt=8DBvD-dT&1!kD9i1dg)xplutRO%o zgR$1w^5KuuLf}KhmXh#dX}qY+=6F_8JJ1Uu0W*)eIK?E z=VJGxS1M~Te#1p-5*UBm<@4h4AJ{m{w!Sb#O@iiKY-}e9>Wx92$+yJ!xu>duOtQIoKeho~;k+7Q!&qM?jr*n0 zPm*PVGOuFQqco2-1kY;zlh>uZ;WLY)E#qhUxLIhj%)d?@bZcK)%O3(+a3f7J ze49rg#v|k=VSIKa4UpPAidjQ%sjCHudZ@_@t;a_MnhLCw5klGuet>CoW5u&nuU5mF zzq%}x+r>+-EB4T3PcKeb`va&_ngI-lf?TV|{gg(8yOkpy>bHQD8=#WXQ;*bIeKB!p07oU(bY+3EQhccP)l%6 ztya@Hc`!AeF|FTS$+76+s;>M+E~8xk@FOq#7R#fn4&5<*PdN=79bNY4J3(N+kaXS4 z%cuIs5c`Tj9~d>Gen}fA2-G%K_RhA)%`NPM>OFm)`v#7SvmRP?x|9OVJ0|({B>Rsz+pgHw8OJW zfst`OoeDiPsC!Hz>NCV?Be9K+RyM@~H~87XjfEz$s?_qk8XMgw;Xi8Qyr3<3t)+Rx!~VJ1B2ba=BcSZ z340DJs3x}*Y1nIWij(D9r0wIK0qmTAy(kB16eoVuWV!YJ#))_Yx_B%DC-ph8f&^2xZFj+0^tR@eR)^ijv#f6!9_o0s+9bHx zZEm)wXKT@OA8^6Gzn4_|v9TT#@!oWOonqud8*rZhhkc;Og&7&Kos*TA%H7tFK5&Z7 zxGr;<6B9!h8<2UY%d?uyNh)(10t5+uOw~ql_Ff)8X!gfLcP<;JPt@33u4RrNWx1N9 zVxA2z{wbNV=_o}U)F8kAO4fGj1IQjX9xt+}|LejTQ97yIlFAzEni44CJlLDpESSky z_1EH=5NiPkt)0&f)zIhxh0-fEk4Y&&ZBpkK;9N``%4s@P7))#p-s%u5=EdF2 zQuWhAH=ws(pE9OZtj(Cy(+2`{=JBI^if(5)_729aJ`WJkDq1Q_kMwHnDhWWV0afNIx0Q1N=!2z))(SkrOV47VW!D<=VUrwxp2!OSI6LZ#MTKQyxqK#Qg@&1yF#qPnNB!+_six$K#nLKpK76EVCfsp z!2X-K1No5B7a#NLB+_ho7W@cdLrd8_`uGg#l%Ht-fTNUQuZ$WjnMrN8h`AK;-*Prz zZgQTgar`nwx;-zs)_gdN$vc9@;z0U59MD^;at@kge8|^PD82Gp+1%ot+rioapCm5~ zx)jZYLC@^$oS2$|$J;gsQam?KG?l;>S-CZ{Yt?eC`i=A-h~7YQj?v-tyQ>9c(3;sf zIWKP73bPgz7E%;U`w;@GrKU;SPGG5T+L(>~o}K{f?fn}|s>o-<6!I-jU!(b`Cte^= zPd!v>VJ2iXdW#Q8YVo~7FZA`j+=af%MMUf~=>F<_*^0~3@HF;N5>Mob)P9keOY$3e z)2okRh+(AWjbUYJp&zl_^Rw)hdXHkx#jIYtk@VxC(>meZ=s9AkY-&X`J@x5qb$Q8Z zQ)Jl0P5LkHdd-1gxC*$p|03s^lMN?d_7LZ7rw1LI`i*p+g?gqD*fLRGf1s01e%(XQ z26$7v8V=$)xIv2k`Lo2Q>M?2Qlf{4wyErj#G=PkH3#chQ1-2;RK({sICP$PdQ~aYz zEQz{@gG0x61a4=?=Tq$`O^bf#(Hqi@)uheN^eUx^II0#%n1Hp z0tZuYD0+D2#g&YY+3x)e1RKXLf@B>j6tdSOh8t!Bt^OGE$l#`}7nh3i`QnBdS>xOU zY9pB)*;thiv-k_vgipWS_0oBBCThR^xy=9G{9Uet78Z{t^ZmIXQNp}BF@q@TE!+#W z4g0OOIVC%SU<4nu>*%OQbJ2jXR8;;rnIdvl*8^B+5=4>XbPz69(hDT$(k_L>4Gm%a z;z+u!|4Q1co?&1(!e}#Y1047;78ZW-OBY0jwc?gl_%SFPw@sBJ_0`h5fE1dCEui!&=vNouRrdjpqromGWw{=!5u8}%lF>sZmnlaX>#PrpEdr)-MH-FX&zFaM)$0V(Z1NZaO9TN|p% z{`dwVL@glv#J$kJ-05VN}dtLqeG|w^3!=c zGm(}=1{-w$KCP}2#*CwTuL!$U5h?IAD);8_FKc=Eo4{G@-qJ2D!3&;}6~1RVSb|MW-%8JQ$kblg>8Zi>IU>+g2 zkKgP8IYZ8>%S}}&DNWTr<0A^u%WCI|NkVyhqc}TI9f>srQ{1|FW|AUOz@9e%>;-5b z-U$^Okzl&6bM4uMys0D4k#RRMJ;M>Gaes$a?uk)48@&O?hGSz0TpaZ{nzm-iJe0S` z>Ft63O>5vLZx2DMev35$3Vwud+kmQe44FlW+`i(n;?_JrZN)sM9-9fRYgIYb`hV=$ z>BsmYw62Qw>O?Qnjzv89!0j?}7TR(;)*ki2=MxKy@;0*NS~wh@*TjU~3c`*a&cOzc z91EXvxNwag+P!npV^MB-PY=Db(o`AzU?L#P6iC|@w8IsTPw{T{a)L`XT95x1m+{70_eUQjEMvIX^(MUzj)j3-cELzNF-AqVXgSx@RFd+l_>qunOtQEL31FzT&PFC2--wuz*=4!)p;@5r7cx(LV!@%8;eXIw^ zk4~r647;UX(&V_G074Bw5L2Z8CzTFG-3Urqh~5bCu$|V#W*Ty5sj6 zCzLx*e$;4nc?9UzbQUiGkF+;|H4uCT_s!1ooQQS>C<_V-J$`VI}OE z>zc^>3HGa*nzbAu)u=K5yaG-ihIko1DiEU)-GcpK3mCQ%Xz5MRA@BOhp`q5g$auN?@%__KL2j`kGKFp ztl^H-sSz&rn?*7OCGpU8&3hD?^)-&ZBmD9Xbng86jt5*!CCNV?J|LmG zaSEPp#**DJzXf~%BmiYhUbNmcsrHrNl-5NR9UXEDwd-$+$1Gpvq_?(V4G*hLw08a6 zNj8mwauPLneFJ5j8&J~W87}>KY!{c!s`Xn9Q4sFgio)Vb1op>Qc;bMELhX zq{*-hFmarO?iu&xksrJAZQR#1!InD&(eD?%OxKGk@Ba>lXf6!wb%jV@P*|9Nqm}Y;1Qc1a-?BE}3c57KeC-fj}EP=Tj{^PfST!dXm!M5$n z;K4o6w;GQ{RV?Wsywgb9m9=b?MI+zyL?IzEmaO2cnSuu{bTlSWpK;YzT5$7zFR}np zRM}iZU0iA%*{Zl;w+4zk#*p9y?Y{fT-sBYQVeACGL&XL1;gGw6no%H9VWS1(N9ma4 zKZh5GL7A+}+$m~Zlmb#y^6Mhh7pTba0u@zn8M^Se9TY*LD-Cb0A6KO7C~VUWGS5>S z42V98d&rUPGnRi=UpHAo_qEsppXIg=6om@IUS%>yr)2FP1OFAmnFk;uRAcXCVdfqk zHW{zU96QRYO~p1lZt6M-uqvH%ILFASZ5h!NDyop4UtmtMNqMd0w|`XPI#7dzjK@-2 zTip$Kdl>ILcsuDJiIiAU!F20PWU{6*=b839JNFUPvW4OMyqhUl+Tw~f#a8YT(iel*Z!(*GIgCXrO?3 zfc^Vpd^_wOIWaFJH%eNRND>I=-Hn*DVnionv-d@_bMki7$9#U2Vc&DZQKxP}U}(!) zeMc7yeo%?%)tiYvlc@BX{&>XVKv<&pN+~hkXovg~aa2 z8divV`spBlg7lb0>@anOulT;XdWgMmkswNX&$4f#rZkE3Tc(roHu8?e zPebzxLD6_ogAD)8a};<#r#^lS*`^t=ncJN%s?+EJ&z-7wG3KQrab>u^@;mt`bzzKd zg)bU{*A_R(>oVLtRa&==$?i%E(r0{4X6|}Ms9+VH<19*Iyy7#-2s)B8h(SYgZ#W?0 z5&Cu<=LHtiHkopiTq&a@`UVx(%HdThoi&eyE26M`(X+qyLiErgw>y8jj@N#D;M60P zB?>*E0pR~v_O7daqnhecSQlB~#}|bNr)Wmn%BfdzwOBUv{1Ii9k%6xl`r$%S8W~*m zEzt}WL9rG@eZzH4XCmnePyEgX=5KV_#q(prQBPs3mKM(_)HFpmyNyd@IFms@QdbwR zbEX?(qM>>pBzr_qP5W3MN-g$4H(!%MS72kRLW<~VD|bVaxsy$z`V+s_=}r;83rmCf z+tPe7NdE=oF>QzB{}D5ZUX)i`>Btplmda{V7dbC zHrBUSe4t%NKo@<}pf3}nm45_0^1%YmtDN#5r3CtU8X+mI?S|{ve11x02zS z(NI~uX?Bnixci(*p2wG94VgHM1(H2-r*;DZh)TkyyWr{q>>kgLSS;;V`Vl7!T-f@F z(X(@=Kh$vz#SR<<UZ-O#szYjd{Gh)UcH%_LRR7% z?0C;`-q9G}Q#+x;>&+dyN-a~%ojwY$Wkq+ZeDy)Sn+3}+4LnTA9J<|ojv5wHR( zLDP&n^f4f>D{|J;18AOBj79n9eu01R(3Qavq;-;6VnfyD8E(G4K0w>gD+I<%=e^or zidpnFUC(Ds2eb&l%o3x#aPs_ek>TK}s%h{+AI7g1H<~d%SJevDXPi-L_6sGZVl}l# zHTlL;FP;eZ*^^s8R9$0dq*-V1A$L%xW-Q+)m>5oH%%|Jq`dpO-VEsFAhsF=U8zuII z>6IVevhQ)(N9HpqRqSK67(bmb2At4z#8!sUW%lq^*R<8dQ!sN33NF4VUi-&0lME$y z+@EC<7c!d+l(l`1y-etcYnRG5=buSD{mw`Cu#tpeNZbrtS_r*x36xETv19?Nwo0HM zxK2E$+WbcgNiT-gF(5PdH)j3qIE;*h5F|%n&Gl+zrQh15A-T?BUPg%O*9ub$ev{ zXwctSBvDF9v^iNlP@g#ctf5cEK%28=I5%7ornAn*^MoLRgj#bw3-_5Ec)0w%r@2_ zZZo5?DswNLind@f8#H-mf9+op9!jUMU$9Ll2dyCD2Qf>7~aw!JGkKn11KO z@148XU8%4|$?h!j1ZTNPZd%Y)hI*QW_S`<5P30)3az%JlNG6iwwGjK{5!@)-9#9ba zQ4Ibb^+tHnO=HH9-B9$EAY?4YCRG`xrW$P;cnDEX&v%mO_uX?UUj z``tYPUWynFcLt0Vql`c9DS!PqtKbmw&#Io{dn=2_zZ zA-iSGnZrm)T5`O`JXt|wF;m{1BhYqFa(%FdeuCh+GmzdkNDLU4>)`~obdZzhuCi?> zw8RkH>q%)jOt!y&8P}~yjEouaZB--Gz14u)X@#~|*BiWnhseunYpxm{9qG;(4v_|Y zLPErrOru?&Yf8+Kn$*{b6u)1LA z69F3Q?l{IJ3(47!*t!SzPJaO^HKF<{&Dob{tz6Zh$s}Uv4M^H$B_g1W>zdIOaV)A8 z6#_1}kf%Wpu3K*n%@2!A66hP}Ax@NcgFMSTdS!roZH0}Eol~8R;o-bIMBNG81Lf6v zRDht+0FZdJ~jrD+DgE?R%qhaGED9?ZtZp{tupxO;glOZkm1= zU@#g)&YQH(aN%vN&iMzvHN%6kAj!X@np6_7rO)2k zo~yDv4PNeLq+U0l#DYmHaimd9BmqhoC2Rs$Gu7m*cDc3S`xZ1UVW!v&1Uhe2FAI3Q zfYUHX)AuNSEq0VI-IqT*e$e@iQ0`2I21O70^DF4G#vMPpvA{sb+FHhC`!M3#0q9v= z#Pw^kp~0O0qBu~#3{sqUUYFy-Ra=Mql7Qoiw@Y(6+3tKJk>80K`b@?rKet9H1ZV_D zIW+UX6_w$?P-5!||CNjX@JbvVYJGcxkixKCd)Ti$>fWv7jdJo@e@9?sx3igRXB# zfm++dPVBCtDV1Qu@*X)UqxZmKfT<0P&ztQ6?OFkqA%l4<*@r`Kb0Qb@@2XSG$$G0% z9OvRc8s+|eGxmB~TAIL5;!uBx1dVgZRgXPfdEVgPgFlf;4e^o|=OvH^rP+YbJK@l% z_KuYORbJcaEZa8J22`0`ghm{__jviIwUqfJjb_?XuiEzfT zh>jJ8or=S(aS^QhfVO7fyB$q8S4d5L`nK&OLhg8Zs9fJO&%Jb`Fo5TS#hV_-D$oui z5-QxIht{t;Fta*WfZW_%bb1S{c`gGlZ1gbSPXp zG^rOq0#-fWpu{~_D^6V8o(HX0S%=uteMp>Q#mCRD9*nZ8yDMW-O-*7E$(OC0bK} z#|%lyGnersl<7eo=OeQg4V;I=#)_mRgW_fk4~YZsfgw+n${BULM z59VgKj{=Hy%f25YkZSL3r;7;vN8%hS_F{z8b${f4tIBe6aKNllwLei+d6eo0N=20g zGGRgZ@tbT-^F!#Q!YHJ8SXY6T4xjlpxRfa9p*6X=R?2j<`ni~};v&^U4A5;9 zIP=UEBwVHjJvEfqrZwv_CLIRky*7pz&+-aCd2cW1a7C%}hcANc;)v8otQii16YZ-D znB$x7o2~$T4UhTss{>JvKbU8}P+qa$%KN3=ZVyRu{3(uNAKj4GJQ78iD+1FWp%XXq zV^@wO)L2sZr2#jvg@%YjT5S7@Ya!k@iZp=nCT}mY7kLX#hrw+5u&hA(B-X!J&>6h? zh?$}~5U8j;gMC9~HK3$UaZJZlk{C_4D_Hr`*tOD(CH28;sx|BURpa!2Q!3 zGKNz~`)gfy{+n>tO{x}|O95uSLg(%DT@F$HXUZZ@tt*rB zj!e6r>Q{+hh%@~r(e#Ie#X2{ zU%}M5a)+N9+Fe$!#ZCYr14Oibc8WOm>QAq_if6l59{WmesU%N=0i zgUcH0#>%{u<}f8ly%pmxLULs=?*t@SP}^ET>ow|6%5{(ecTY2x*l!=iq+4hHh4W9)oSm&){ytEVLJ>Y+=m~W zP#EMuA;#k3;<<|%&eyCT8it>2_&jv9jm=PBX9z)gV8ET-dGiK`!)+$sMa9KzOe@!A z_}#NY_U5jL`<>)Ye_Tyue$@)v9yApSoC8_QuD@Z<2>c>$RUe@E=Ju*^`Ind3T-*#a zoe5c$_}kBDA%w;)B)S5ux51CwwuBc5E%gGS)x9vR=5yMJ=N8&n$yrFf#oYPy-Vtxo z{yFcD> zh}bj7L2%Y%tDK!7EP}19VgWz5O`VTwigNW?4Yr`OS(mUpT5mesDveK0~YO zrPq+37gq!5XQ)#ig1amIuyky~4`ic2;A~^v4NIrp%x7-hqyjDEUK`)E&hqxQkN7O| zEuL9wI{eHBt;wKcGVlXHWf6y9h}nKqvu0g%_cd|jmfMODabid?knA#3gP z6iSS0(WDIjAs#_FA_=}quAE~DU%so?lqCuv@I3;^oU;?y+3)?&SGzMC{MznW8?JwV(@=g_T?_ocg2la4!>NqTbmvu?nT}J{j|)9ADO>q zv*Fi*@=-gSFLY>9kf?F%^L3JP$7)Um-E3wVz;f_->WeX+R~b_Z;=O8z+rgo`%is1> z0OtIcm6l_l z&26K&?9SSEBsgBNT&Dl+uVv5ub*9&cMJq5EnWR9=+C59)1km+Ac+(CB9}ME&zJzO| zzrs=OVQ$glKo~|s(Sjg5mm!FG%m;@TRXikWjK(-*(?(T;b`5W+R&mwP0kYIHY#2d=*7fvX&ns%rvpFF3WTCu^qO9ro<#w_>PE zJ&zW6Td@K%R9&g)hRb)D?{f-nOxMQ^z479Lrgn0eui04~S5 zVXh%VE-7(NuW zicmDAw(ZVzv>N9gCk8ZYfji!(axC-fW2Gdz%2Apt9nzbzfp<4yKcg-?(Z5R9+jkG} zlk|j|A-2jhQ-4?G@NplbnCKY)U94cfTlQS%;_!I9bfX1+$|5yl#dm)>E`Vt_Yuy?| z{r?jmX8YkP9IM_0v)UjhURC_5g6kyHr<(bTUu&D|Ml~(=NsLZ&oJ~W{Q_Uz%pJU6~ zgK&N&!vQ21;pu*;W* z6rr8_m5Q`#Y5d5d7WUb%-F|CUcsO~vzim>eqz?DLiArXaMlMHBLqegs{Ix8u6nH?_Bty{5S8S#7q;lnX2blL}kTb5b zGdcfeES$#twPW=jNWu^}R?1?g*%e zt@iY3lX(**(LNe&3f+9Tyz**TPUO;OsawJzLg+=3+F4DFJ*XbgLin{xj=ixF-1>A0 zGFRocwi#9@&$m@Uzjl5celfd}2%OH?7a6#7ZQcN?2)iBqs8mNL{;P(Nl93I9Z?hQp zj?N+!f!R$r;Zo7AhBY%dLOK=@wWr2Jgt-8$xN_QO=E~C->Jc?OLnQ(f2-egEd94xT za!m=|0jH&SIQ!w1i zIBFw*dwU~9V=a~gpmcABZpeZ&U|zkj z;O~E1@TL!oKfr_==-d3IkNQ?El{BqTmRr7~sz5Nq|f!7`_16 z!(0PU>w8+0K~D&T2(e6hkt|M8)ef-W(129T8e034xUa^+*J>vbdRD=X@*mwxpHw)b zRVx73<0g{n*=fi~=24Pz40Jxj!^0&cPrnRpF-3}|ZWr1A&wR)Wiyg<*^+H=ap@Mt4 z)|G)h1&erG3DwlHvRab&F$}{bXncgF;eh%))iTccOzXQARyh{AgLhTARS6KNJw|bd!p|Dd+*wJSm$-d%pAuYGvi)w%uDs38Ol7g=v7@wHe9%t>FW>tekL!x2(njobG?- zbEnx}qc@*5?wP%HXnLDXu?m_OAw_Tx4yWl4<*+YQ(iy$=jO7&H*}7ME-#a)dDXD2E z=O$2lM=T+E$xV~=knqKEv~tl<(wu_+#2ik7y`$b_W-~_+h&64-M{1&KkHQz3m$%>yg%*I6pmX^ zSpj+em{;`mLB}*5t`9x}7oG+#)t$ww!29h41Eqd1^W@3c(1-8LG5}n4qDr@#h3dw_ z3YgAB0%pF#3nqIe)WFhzI2ynegVfK>`GYRSGNAw~cH+MN^}FcvWd;W>^cHID4+=?h8_MJ0k>Cmc?^Z;WR$HU- zs%+tke6IVtnC={n!9YQ7;VqxKS3Q_)wl`RjSOvOF06|LV6KdPJoYNC9kyGAASg&x$YJ&wl>jWhh%fE4Az#pqaMBcY#<8?%If7X5ZVbIUd_Q06E z8rV@Xr(1pc@R&sCs&4jjnBr9($d})f^V&7msm`gXd$;94ufj2w388e-VL#4L5C=Wo zkNq^)!!tcSk2gksA3UJjeVhYR_pCLQ%=UUghuK&_^0>MUPcxR0UUx2g%;ne(Qhg~~ za9u&WhtXCxqAst|-*?5>>%skDqbUBcQPU4zqu*yL?-zMQ({;DU z%ijkO=5LAW`s^j2=Ea~8{YkYUQT$G|eMkIe?|QH-cE8a44zZoGK2;60*6*)$9GU5l z7u#ag;@7&n*ht@&YB%b<}hkaUq;dEC8FtDqD}Y6+8Ma8?w@3bej30JAk8UO z&V&HDTNnapPMs=cu2Wp}d&yO&gP*|s!xR$EXN=OHUMl0|y$N%R2Nr*4Fg}QJDd{T^N0w%up7>h?k~$KzGl0HL zx(e}qXNMrxU_^zcrQQp{tyNTTEHWGhi|qyurT#NBXZa$EDIN3)rsN~$J|}bFsCf2` z93a$5{;34cdOGifrC_}KN{27H86Othw?1KQZCjRmX5%uh6|16OQRZ>_|l^&;OXAv8=lZ$UTIq}Vdo5FER z;7xRr%$Q7w=_v=f4e!JE@87?_yLxbwW%{No?xKo}W6-NMb3;BfFC<%aY?|soBzF@@ zk^()2U^Hl{I`b+2$znO;tatwzlovshOMioDY16b|NMzl8RoNxcu-hiNA< z8%h%p-e@m*!oYyv%Avi%QUeqhR(1-e;vivsadIhq;Wv_Q&Zwy2R4+}C-3vx~wVAgr z&F6Zy-k%Z+mdjrSLCA0OV)-JBDZQko-I>memYP3F=nXIZe452KEDiC2v9L(&w`aRX z_um27cO(SvzWi^+Tc~ll|gI+D0S;|gcm2cv6SYEzLwr5`Mm}Z++AQS{RPpE=K zxdhHy#ggaobO%;a@v9OMxKcTsG6*OmyV5fms6(g%+LbTKULEz7BrFU~3Vf;79p)HB z4Rv~TV46tF$=&30jQwXt#d{i!8jWX_^;J=puRE(lDws92ir1`hhBt|^gA4?}UTzjkkvSST z)1gRuKI!~6%wzy7>x0Y&<3jG!Px8>vV3hL24b1KSFqJ8~Z=lt&kkM6VeiJ{9i0D<$ zhjYD{yBc`^Z_Za)y`}j4STGj=Wp98^M301qUeq_#R9Ix{@@1)I8NNJV?dS>hJ9Sb> zNk1B&*}Q`JE2nwekSpPRpVL&m#pbQ5oYjnCeZ51JaZwSR_cuG2CNpbo&Pi1WZE>}O z@?l`yFkVVa&i()YaKw(`#nm#j7tIYrS2&Cz()hk<6?~U|>cLS`33E_nD^)5qD1v-c z*l|92MMWuHvLf5Ts|7yc0k$rz?1RMTkH2*p%4{BmKi|c#5`Cv@^=7hrEK%UY=1hi= z)k_6ZjD)0V$D_85t)dWO)NT*k5iz`v;Tb3$Ief7OO~UUU;Kn$osqHJAFsUoJBjLuh z-EyL2bs~(Ex2Y~8q7H3~aK<()#T@&iV|*31*^vyKqEirA&D+D&5K=UUsixY-p| z)JD877;eC$jUh`Djq*}gDHx1!U0KkQ)(o@qhuLH<`h+jgFOs(X^pr&r)T>VrovIp_ zN>hTSU8Jr)j+h@MB7e{-g`o~`(ER=^TL|p8*-RmB8UdwrP@zPRKc1EP2stG(nCuGB7BqA1aC{YE*irLnl&hxAs^l&B?q_f zY#aph%=t-a|KyYPthik+4mn3 zykfdV^0V)Uqy6u9?*i0BM1Z?jPRG4*BBmLY_DrCT{4$ZS?ZzJkmx-K2cp_L23h6du z%f#?#Y-BtNn^42uDdixhi-_0Ma|?5`^Q(Q*ipoPYJ`>MaJV{hEgTcq2@!;gJgrsNu z)UW^>rjJDaGfhifclVo6){-R394u#uKzFnrFhZrgz6XlVyR+}TUpZAdftecB2WkYhOUXYH5gdP&O! zy#<{l4TN@Cb(x%u{_ z%mCeM8NM#(e9-M8Vq#6|dCVXRPy0ZSE^2Yq0GHXQ->A2nXzxg(j}Eu;3S{S%Z~4k9 zV&hXBSFbv>JXk%4gw>Db&o{QL+;~`gHDIeeJw0f4BYF2~3k!RU@>%FH&CYVj)P`cO z7n7cT*`b9??ol7)X)80#x^xcMweFu*Op4py+qy<2xHeZ)!}~>!eyc$nAqC9c%eDiV z-`0+1(HcIo7F24>M&$^C2IAe@!xX_MN4KJ8A+?J6qdi}d&)vOC_Z~}QvV{5GD0z4` zkl=U!Zpagbp4Ha@@`G0i{w}_{X^LlLp`p%WhBEcTK0Eyl7ctOaF{=Rz~+)LmQufZw{gRn_KY4hUxiF zyD2xBhmKQ5@w{Z$i)!9unh$68CI^RHWqAp*Akfa{L{jn3ef6au3QaTuPK6ZZlqir;pc; z76NMg*ldKyXPYZu9QtoLnIHM*SK~*xAZ<3dVV3qT49Ojz?zcGHf&f`^{XwM(u;lC< zPy7DZ@fH#!a))=Y1VN;QGuPK1vgws;O;gCFci{qol+!mEU%`}e_lKk$CH+(+!g!%7 z95T-WOx|dQea`qyh#N!mzOz;Tm!o2-1`KCVISLvR9Z6^FhrOfH6Mtt6FzdY$-MRKN zQ$*#{cPXZF9*qKfY6H|LCdi_gg-hw6?UNT6cdF^p71gGqs=6#}Ws^>MA^Z$}lTqBe zL{4F8E$eXA*}{vM)ZWgH{TI^mTNg>@BwP@hk_YYm^JWLSdM0NdkPqzF*s?$adA3K@pTZ9>8H`J^x*tjSnraPq=L3 ziKQ@HsqONIOvdXBew?qu<)v~pC1Hpdrmu0)>-_~A>I}uEN~9X7ZTsOId#K~T-fHHG zr*N7KCfIaPxPHlgV9qtojm&WDFQJA!=M?Sne8-e*uetxdGaKpZ5nU>T7hE+V_L8QJ7=T>ttF^IF&Gp(Xv%3PM2CF_>C%C&uR&%^38^ zenQ9F6VyE2G9^7W5>f6*8hwrNA^e)*-i`xqV=Hv+07p%4I9!&Fyr_K;n|?VDrU*%|0;G=V?-NPdd*xN(}!*Zv)su zYv>3ZsC-H_K(0=dC;z%iP~f^MNoq3BfVjD${xjn~VR=nY+oT09-V#N71JN&}q8A>A zKYPG5v852k(r-OIt<6(XiVx}EFAk>{^*mQ5rNzAnuDa1PDy-#RndPA&p@k-(IX%hf zt<9zXrhgdt1Z%H)eZGm9;Y9(7rKzc@fx!w$Q@Ad+z{IA+<>*D8YJ^9GL^|*Jo@Ax+ z79~H~eoFe?_d(GR-CrUho|X9$>CFXxN6I_ilOlM^g+| zk(!Ujf{NASq0q-ijU6I7oR&%tXQH_uuF?3q7cn0D>(XTiry|keE#V*94R!cnb|!&2dz*-qINHLuIs+_Clj zZ-LzVDBFKO1r#20t@#o$wVd&vmvwEi3-U20{tl;wj^Mi(Yf<+g{?_L@yl!his)_<` z+bhDYtKO`iyKgALB&XC9+q*>vu7Fst^7hQ=6)q=Albm2D*d~O~+4OE4c;p?fLStZuL&ieR69y zr)M48XHvEe@v9lE^aaqO9efri zW!w4%!XiZCMv#B{%+SS)^m=iZL8K8md*s>j$I;PfP}q3SLjT~ClA=&H?np0KDPS7S zwP9rSXyRMnZ&NoD{?%`$Z&u(*Ntj*xI*sRg;_w&NHMwgGb1fT=sa9E4Nl3*HceEd_ zz*fjlBYdSUuXSB}hVJB7=Qk$|dL(t#%)86Tm@EeGtpfU`le3}R9{pT+X8P$Doa}c4 zhD_^312m1MmlKJFY4VHEIBFBbt7TqLh-=f~&ov!=o+h!iq?y(&VM2Wmg?x}r(^_h& z9Z3qbMWgcf|z$NDBSX{HwA9pSyyDZhwAW8y zxOO$(yz%o_@ysSxE-UEa6gdgGQ%j_d3y|!>+@`QpdK0f_-CJEok284QilX<3ZKB!; z@$vh}>OeD8{DLIJyB+gbh8LEF39vX%bkWZ?i_1WV^tI&cdGWB z0+SVsyI0V|o5lBE{A#r^;uHk9huNcOrK7TL8un8_Wd_GN{)Y?vg`)&5dd$Utcv&G~ zQsG-o~Do-!lpa)E>n)p>^{Ok;2<+3)Oa541z_ zU!EdJANkNUH;w<)+6h!k3NbOxd)cdSAiNYOlu+Rb8pVRCFrV$j6&E@$Pqq%e?!M91 z*TO*=69RZ5^L+6DT{uAh7(_p8q|vvnqf}5<4F2_IFikdRC3r9K2eVRG#Gv$_2yU1k z#&B1Gygh@`Nrtg@m3`-S3VHhk34T$#>QKFcAJ?2%H$1iE0+g{!K@{IE18QCXOxTXs zb}uAHaGjxw*M{8(ARjn|0|eF`kVv74Py_48J2Cy$a-t*5Ns(SpmwpMZ|nL|Md5g zv_!W^QU7MZB^`6pWTd4d=lr%y8-DI~F@3DT7aNT9Bhw_t@UqpeM#msH=L4BKA0Oe6tx}8}Lha7cq2BW(srTU+eBQU$TV>5&0HI9_Iuz_#&o{Wa2Gvi8 z=ICQ9P`{9i-LOjSiq@!%D2a@k&ZfmbK(?WX1AI6{Zu{QB@V^3qEg$NGlCV zvYS0%GXCQ-t^T-7DjubwcujlcN{vXZWD?rL8~^h?F@>lm4rFTzO^&ySq=%Fd{33jQ zyOcp%a=JFro15nRvZ}rCx_LNj8hYb6Yua<`0ThkjXEobAb~Sc5KYco=mh*dfqkAU} zy6W%e>xbGJjXGXa*ILbRk79M4q5k(}fJ?{>mT{wuH}^)U+dEnN(7)Wf zWO@xiy{kAP5E^|=>=%x{Z98V;|EY6#IgtRjKD_uAF?Xe`>j37Tn}Xkc&5^@MRYT#u zdYyhh0PN$OpQVBL`NC%9kLpKKjVmxv^=M;l{I>(kPxybP-yY`=Vh}X*C4hc@5K@o* zRx~2+f@XJwTjFPUMu1Sg{#FGzH=sDOW~1}k4tVgRyMq%0`Qf&i%$KWH;x8A%GsY_) za}jaop{CZuo^PV3;>6Wi-OuJ+p7R>E>$H&xE1=&UId}&>eSpjP$D>vwr@Vbb@Ciay zGji+EvA)-Q=Ve$!t`W;|)4nNta>+U|^dKB-gnW!r9pB-t69uWghQ>^=L`XVu^n+P! zmv%Is1X&t+d3k$?Cm1qd3MH zh97iCOF!}yk7OmgXUxw!df!XsGAf6he;sJ99M3=6AEGvyDDeG~IFQMKDNpzl^?#NV zvg0N=!uUAbwQW+q_$xnM+!>|vGGMWWVRV4Tf4a%Cz=i+h^&*6}Bg;k^h=iJ&a5dHEVZah;L+9aSSorOaGzDk}y;h$uAPMY43I9OC4#*w$37egyr z;Wp2v6hZA*y4^440;HANWwa#1xGTuAnVUHN@(Cd!Av!mkYGsY5gtw`cQ7;yOyCgxK zy;un?T9fRAOymLL5WR#mq&zzR()ni7Y}hJ2{)z0F!=Uqi@qKgpdy-&=oh;g2Jfs`7 z7xs_!wI%xl77Qgf2~J60fCKE;U4X_=%ZC&v6$$T9|ALlEc8Z3Fg#kN;%Sicvhe(7# zP(3vi`m|JeFo|mm6x5FZ75mip@7ddEhdN8h*UNa#Eo8IBgwi?7{uZ3d>yR3J$T(rW z$}h+g-1YmYoQ?-J{OhHqEZ11@)ZkJ@f#pcS>9YUz-pLO*T<9VxYCpOMjX8d^7RKFK zKlwJ>QD{CuV^sO*dNJ#(=j!{+)_@O>nQ%c(ZRNQp(z7D9pX=)@Wr6P%x;i@#n0?pn z>2U6L;+Qq|A;;B5xlv@A@r5iPqUHb6>6+C(sZ~~Y(VB+nDc`s|znr5>)+R2`o&3R3 z=$;$ON&Bcj`ar$^PoO?c^E*(Nw9ZKbolcu6>k$&u^SeF8khdYo@GTgsR0)jOoY>3z zDQ9~N@_fNeq^z*vn>g>^zdv7b3hxDGbP^Y5jj?-6%ND8(D-*}mO4iY>il?DQJ2}1u zHim~N;tO)tWe7&E*M9gEvNkEH>)?X-oxrbW%Wn~>3r%to{%I0^Qv+#4g$|P?q@eHG zg&jQ4Q~Fo-MGqfRBQZW22*s8TVB-G?D7#ok_}Bbc@bh4*W3qK!VN;XWlOna4*jT&3 z;P=nWdoMN1bzyD~Ju<%xPbV49m?~%-v_@-$b-zJy!p(kHV%OfU&TqI`{pLK)D7W&c z<3dNVyT$#lt7d~)r(e<3?i8gIyD#YR+q;;a#Xt3jhh2m)Mt2^54e}%AH=Nvwyk9{k zJnJ zi*gWoKRG8loII2^umvOt?SUfz16cBNbI}C9va_?>LJ1QtUFO|Pln}dwrQiX*n%w$s z=wjsov{`f~Q6WNGiw9$R9ikUfZj+c<|I(>*gF2;b*+xc z!EIKQE8q>H!s7^VeZUL!(f{KJ;L4fQOsr%+JLeSGdD-40Ie@x^n@tqm#h5bJ27w?` z3i8++-iW%;At!+kas00n4MP6?Vn_)Kk3g^p;L!DChFafuP%LBkxRDM;ojH6#F*Wp^ z?3_k~HlZm!D=%S9?TX6HFNVYr&(!XS!qQVRbL4AV3hKlKHcne=knSY)QC&r zoWmG$1J$lMa3TNa<=d_r+85Xo@kpna(}#jaQZ<;WR1G?b;qOrENut251LvV2yBObm zO?^AvFsf|nd(ryk*B>bPMf_az(OAs|r=`@5x}B1A21eRZt3L$n?m|@wl~efRSO2sG zzk_yBN+)y;y~VdLQTIIzt!3lslXZjhb{pouhG`!9zb9jQiH1(a6wl{&NCj;5ecWIK z&r-MXb$AKe&X2(fDoyGG+z=hL;v+) z9YQ<(_IQ7EAGwHCJh6=CVA1X&;RC^2qG_qDbZBU+Ly!Q56y#$kfQ59F4?2bS@zxBA zLqB~&u0G*&8YA0&nl^38KhGlBN%MmTiqx|l?&slyrppRl1-n;EyBtv84W$2BdC8xBPZS>`}ZhnP#;P5AIsOe}Z zvxrUOu3rh#pO8F9w8sl`DDLmqEfT`!ybymB-6g*XUW!eZOA|Zi?5ysF;;I&d`O~6B zh{b3}AbUIuU5DuXK}tmaK1lNWnE}gX(mG`6a8`U45|u@OA7wjqA89fQ+9e!Q3BpN6 zd$;Li5hZ$%k_n6SOW}0fcU?0tB$JvEj5eE^zTP8uXw8pP&ycY8RF5A53kv()9t+AI4jS zrt5_;wL9>k5E)<;GwW47)B9=WXt@$)qViUFq1XHE2BfX6unv?<K`Llv<7saLt|PHE|K^iuXH>np?@X-f=37QVc^Y*E(e ze6~9W^gF51{@+;HVQ3apTJXT!q!u^~Wi>TGxuQ39L`EDr{Zge9ocx$os*jx`CThqh_ewg-A)^ZwX|6gApr{YGT+|!u(qQ!|O33p-QQ&oXd}HNZF-( z-@19MhwA&CGW9Af)u5lCBRearr<7+0HT-Ig^k3fFYqp%?I2S?Dv5@MH@04w^LKdPQ z0;nT1JDZZ3+3FjD*o}#bUbT~043Kk9Uz1z1m`~|$n~jDR9s8HXTF*{HL{{6sA1E7(?4n9eTfi_r2}0Wb5XMj`>yK>@MU^*{nm9^c6i)8;+VL zjE-Ziy}&PJlZs?aFo?h@YAzgefIjXanaL_Z z_5Zx5g@bIP@{vbCh&1N%@)8hnN7)gAPe>dAtowkqv9w;kO(EoJVA8wsUY_k8A=ZuFF50ZQwl`$gr^&-&9N}3q!7;FZ2_w_{IUtij#bLzj| zoaeVU7k?tPc?V$W`QR&m4^n1CXhAhu)|fzANJj*tlBY+*K?)8XHa0eo&3u3TaO6ub zTzMzhx2M~+OF=}vy}ge$IdY)2c2b2-DkWB0c~-BgL#pusX2rIEPasy#BnyzWyG!Xf zf6yk8P8X8n5Oo$!k=pe?+yWjZIWIzAj;5?Y`X&~s}Z2_K~}=^Y)(QeP>e4SMEW#IJ`Kdj0P+PTn{;n& zlAj!DURhdLWLf#wU1w-|?5h_`-;gU8H43thfA<%<1S~vxs?0l$Z|iV{-Z=^T=&yVK zSd=$^U>%ix&aK`<C~4lzjEV&vbqXX zCsL+TfGv#{d$9J^`=nUs!`>iULa5Q#wXtf@)SYTZ+`niIVssxA533Z{aUBWJXaR$I z_Y>>%Ej=?cb*forankT=p3ssob!0Q~$oO&A;9&xN$ z%pnXvvXYlL>k`cLd=pXFISwtgplQ!FXmb1RZJFdca%iFt3Q`Nn00!s{0(kYT?CjL^ zu2PSacIRxg>qQ!2PcOE5@7&CKanH^TqGL9wt8aMu%lk$ww5hu9;*o|6@?q%V|1m%`s=m=gO{)!!-Crfo6#>uC z(D3VdN7uX1_ejObsaG?()MYiRPG9mgG_Wm+5S&y<0|vx^Sf*;EZe()ip6Q|Xd{Qf9 z$pJz`ZEX2TxKr=DGw*JGZ$y;-4}7NQ?F@{NGdAsre*&BqSL*nso5+k4l^l${)*jC1 z&f6_#IygAzFWug_RAmhA45*ytO5V;Rcn#-Z_Zf6XVcJhIY$C=`!iV
+ + + diff --git a/code/11-finished/public/logo192.png b/code/11-finished/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fc44b0a3796c0e0a64c3d858ca038bd4570465d9 GIT binary patch literal 5347 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN literal 0 HcmV?d00001 diff --git a/code/11-finished/public/manifest.json b/code/11-finished/public/manifest.json new file mode 100644 index 0000000000..080d6c77ac --- /dev/null +++ b/code/11-finished/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/code/11-finished/public/robots.txt b/code/11-finished/public/robots.txt new file mode 100644 index 0000000000..e9e57dc4d4 --- /dev/null +++ b/code/11-finished/public/robots.txt @@ -0,0 +1,3 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * +Disallow: diff --git a/code/11-finished/src/App.js b/code/11-finished/src/App.js new file mode 100644 index 0000000000..c7b17821a7 --- /dev/null +++ b/code/11-finished/src/App.js @@ -0,0 +1,43 @@ +import React from 'react'; + +import Expenses from './components/Expenses/Expenses'; + +const App = () => { + const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; + + // return React.createElement( + // 'div', + // {}, + // React.createElement('h2', {}, "Let's get started!"), + // React.createElement(Expenses, { items: expenses }) + // ); + + return ( +
+

Let's get started!

+ +
+ ); +} + +export default App; diff --git a/code/11-finished/src/components/Expenses/ExpenseDate.css b/code/11-finished/src/components/Expenses/ExpenseDate.css new file mode 100644 index 0000000000..d69691de84 --- /dev/null +++ b/code/11-finished/src/components/Expenses/ExpenseDate.css @@ -0,0 +1,26 @@ +.expense-date { + display: flex; + flex-direction: column; + width: 5.5rem; + height: 5.5rem; + border: 1px solid #ececec; + background-color: #2a2a2a; + color: white; + border-radius: 12px; + align-items: center; + justify-content: center; +} + +.expense-date__month { + font-size: 0.75rem; + font-weight: bold; +} + +.expense-date__year { + font-size: 0.75rem; +} + +.expense-date__day { + font-size: 1.5rem; + font-weight: bold; +} diff --git a/code/11-finished/src/components/Expenses/ExpenseDate.js b/code/11-finished/src/components/Expenses/ExpenseDate.js new file mode 100644 index 0000000000..0b307c24ad --- /dev/null +++ b/code/11-finished/src/components/Expenses/ExpenseDate.js @@ -0,0 +1,19 @@ +import React from 'react'; + +import './ExpenseDate.css'; + +const ExpenseDate = (props) => { + const month = props.date.toLocaleString('en-US', { month: 'long' }); + const day = props.date.toLocaleString('en-US', { day: '2-digit' }); + const year = props.date.getFullYear(); + + return ( +
+
{month}
+
{year}
+
{day}
+
+ ); +}; + +export default ExpenseDate; diff --git a/code/11-finished/src/components/Expenses/ExpenseItem.css b/code/11-finished/src/components/Expenses/ExpenseItem.css new file mode 100644 index 0000000000..aba2913253 --- /dev/null +++ b/code/11-finished/src/components/Expenses/ExpenseItem.css @@ -0,0 +1,54 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.5rem; + margin: 1rem 0; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/code/11-finished/src/components/Expenses/ExpenseItem.js b/code/11-finished/src/components/Expenses/ExpenseItem.js new file mode 100644 index 0000000000..b180c46841 --- /dev/null +++ b/code/11-finished/src/components/Expenses/ExpenseItem.js @@ -0,0 +1,19 @@ +import React from 'react'; + +import ExpenseDate from './ExpenseDate'; +import Card from '../UI/Card'; +import './ExpenseItem.css'; + +const ExpenseItem = (props) => { + return ( + + +
+

{props.title}

+
${props.amount}
+
+
+ ); +} + +export default ExpenseItem; diff --git a/code/11-finished/src/components/Expenses/Expenses.css b/code/11-finished/src/components/Expenses/Expenses.css new file mode 100644 index 0000000000..9b05ca92dc --- /dev/null +++ b/code/11-finished/src/components/Expenses/Expenses.css @@ -0,0 +1,7 @@ +.expenses { + padding: 1rem; + background-color: rgb(31, 31, 31); + margin: 2rem auto; + width: 50rem; + max-width: 95%; +} diff --git a/code/11-finished/src/components/Expenses/Expenses.js b/code/11-finished/src/components/Expenses/Expenses.js new file mode 100644 index 0000000000..7128bcf77a --- /dev/null +++ b/code/11-finished/src/components/Expenses/Expenses.js @@ -0,0 +1,34 @@ +import React from 'react'; + +import ExpenseItem from './ExpenseItem'; +import Card from '../UI/Card'; +import './Expenses.css'; + +const Expenses = (props) => { + return ( + + + + + + + ); +} + +export default Expenses; diff --git a/code/11-finished/src/components/UI/Card.css b/code/11-finished/src/components/UI/Card.css new file mode 100644 index 0000000000..166cffe458 --- /dev/null +++ b/code/11-finished/src/components/UI/Card.css @@ -0,0 +1,4 @@ +.card { + border-radius: 12px; + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); +} diff --git a/code/11-finished/src/components/UI/Card.js b/code/11-finished/src/components/UI/Card.js new file mode 100644 index 0000000000..841fb93fa3 --- /dev/null +++ b/code/11-finished/src/components/UI/Card.js @@ -0,0 +1,11 @@ +import React from 'react'; + +import './Card.css'; + +const Card = (props) => { + const classes = 'card ' + props.className; + + return
{props.children}
; +}; + +export default Card; diff --git a/code/11-finished/src/index.css b/code/11-finished/src/index.css new file mode 100644 index 0000000000..72399cc5c6 --- /dev/null +++ b/code/11-finished/src/index.css @@ -0,0 +1,15 @@ +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;700&display=swap'); + +* { + box-sizing: border-box; +} + +html { + font-family: 'Noto Sans JP', sans-serif; +} + +body { + margin: 0; + background-color: #3f3f3f; +} + diff --git a/code/11-finished/src/index.js b/code/11-finished/src/index.js new file mode 100644 index 0000000000..9eac967ab4 --- /dev/null +++ b/code/11-finished/src/index.js @@ -0,0 +1,7 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; + +import './index.css'; +import App from './App'; + +ReactDOM.render(, document.getElementById('root')); From b0b251e0d3c9fd2dd91bfa00a63b48dcc552df6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= Date: Fri, 17 Dec 2021 16:37:10 +0100 Subject: [PATCH 5/6] updated to React 18 --- code/01-starting-setup/package.json | 4 ++-- code/01-starting-setup/src/index.js | 3 ++- code/02-building-a-first-custom-component/package.json | 4 ++-- code/02-building-a-first-custom-component/src/index.js | 3 ++- code/03-writing-more-complex-jsx-code/package.json | 4 ++-- code/03-writing-more-complex-jsx-code/src/index.js | 3 ++- code/04-adding-basic-css-styling/package.json | 4 ++-- code/04-adding-basic-css-styling/src/index.js | 3 ++- code/05-outputting-dynamic-data/package.json | 4 ++-- code/05-outputting-dynamic-data/src/index.js | 3 ++- code/06-passing-data-via-props/package.json | 4 ++-- code/06-passing-data-via-props/src/index.js | 3 ++- code/07-adding-normal-javascript-logic/package.json | 4 ++-- code/07-adding-normal-javascript-logic/src/index.js | 3 ++- .../package.json | 4 ++-- .../src/index.js | 3 ++- code/09-assignment-1-solution/package.json | 4 ++-- code/09-assignment-1-solution/src/index.js | 3 ++- code/10-the-concept-of-composition/package.json | 4 ++-- code/10-the-concept-of-composition/src/index.js | 3 ++- code/11-finished/package.json | 4 ++-- code/11-finished/src/index.js | 3 ++- 22 files changed, 44 insertions(+), 33 deletions(-) diff --git a/code/01-starting-setup/package.json b/code/01-starting-setup/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/01-starting-setup/package.json +++ b/code/01-starting-setup/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/01-starting-setup/src/index.js b/code/01-starting-setup/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/01-starting-setup/src/index.js +++ b/code/01-starting-setup/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/02-building-a-first-custom-component/package.json b/code/02-building-a-first-custom-component/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/02-building-a-first-custom-component/package.json +++ b/code/02-building-a-first-custom-component/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/02-building-a-first-custom-component/src/index.js b/code/02-building-a-first-custom-component/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/02-building-a-first-custom-component/src/index.js +++ b/code/02-building-a-first-custom-component/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/03-writing-more-complex-jsx-code/package.json b/code/03-writing-more-complex-jsx-code/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/03-writing-more-complex-jsx-code/package.json +++ b/code/03-writing-more-complex-jsx-code/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/03-writing-more-complex-jsx-code/src/index.js b/code/03-writing-more-complex-jsx-code/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/03-writing-more-complex-jsx-code/src/index.js +++ b/code/03-writing-more-complex-jsx-code/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/04-adding-basic-css-styling/package.json b/code/04-adding-basic-css-styling/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/04-adding-basic-css-styling/package.json +++ b/code/04-adding-basic-css-styling/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/04-adding-basic-css-styling/src/index.js b/code/04-adding-basic-css-styling/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/04-adding-basic-css-styling/src/index.js +++ b/code/04-adding-basic-css-styling/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/05-outputting-dynamic-data/package.json b/code/05-outputting-dynamic-data/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/05-outputting-dynamic-data/package.json +++ b/code/05-outputting-dynamic-data/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/05-outputting-dynamic-data/src/index.js b/code/05-outputting-dynamic-data/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/05-outputting-dynamic-data/src/index.js +++ b/code/05-outputting-dynamic-data/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/06-passing-data-via-props/package.json b/code/06-passing-data-via-props/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/06-passing-data-via-props/package.json +++ b/code/06-passing-data-via-props/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/06-passing-data-via-props/src/index.js b/code/06-passing-data-via-props/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/06-passing-data-via-props/src/index.js +++ b/code/06-passing-data-via-props/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/07-adding-normal-javascript-logic/package.json b/code/07-adding-normal-javascript-logic/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/07-adding-normal-javascript-logic/package.json +++ b/code/07-adding-normal-javascript-logic/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/07-adding-normal-javascript-logic/src/index.js b/code/07-adding-normal-javascript-logic/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/07-adding-normal-javascript-logic/src/index.js +++ b/code/07-adding-normal-javascript-logic/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/08-splitting-components-into-multiple-components/package.json b/code/08-splitting-components-into-multiple-components/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/08-splitting-components-into-multiple-components/package.json +++ b/code/08-splitting-components-into-multiple-components/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/08-splitting-components-into-multiple-components/src/index.js b/code/08-splitting-components-into-multiple-components/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/08-splitting-components-into-multiple-components/src/index.js +++ b/code/08-splitting-components-into-multiple-components/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/09-assignment-1-solution/package.json b/code/09-assignment-1-solution/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/09-assignment-1-solution/package.json +++ b/code/09-assignment-1-solution/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/09-assignment-1-solution/src/index.js b/code/09-assignment-1-solution/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/09-assignment-1-solution/src/index.js +++ b/code/09-assignment-1-solution/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/10-the-concept-of-composition/package.json b/code/10-the-concept-of-composition/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/10-the-concept-of-composition/package.json +++ b/code/10-the-concept-of-composition/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/10-the-concept-of-composition/src/index.js b/code/10-the-concept-of-composition/src/index.js index d59d0ce18d..e4d0924dc0 100644 --- a/code/10-the-concept-of-composition/src/index.js +++ b/code/10-the-concept-of-composition/src/index.js @@ -3,4 +3,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); diff --git a/code/11-finished/package.json b/code/11-finished/package.json index 21f2dd39f2..b16a8faa39 100644 --- a/code/11-finished/package.json +++ b/code/11-finished/package.json @@ -6,8 +6,8 @@ "@testing-library/jest-dom": "^5.11.6", "@testing-library/react": "^11.2.2", "@testing-library/user-event": "^12.5.0", - "react": "^17.0.1", - "react-dom": "^17.0.1", + "react": "^18.0.0", + "react-dom": "^18.0.0", "react-scripts": "4.0.1", "web-vitals": "^0.2.4" }, diff --git a/code/11-finished/src/index.js b/code/11-finished/src/index.js index 9eac967ab4..a2a3af7b3d 100644 --- a/code/11-finished/src/index.js +++ b/code/11-finished/src/index.js @@ -4,4 +4,5 @@ import ReactDOM from 'react-dom'; import './index.css'; import App from './App'; -ReactDOM.render(, document.getElementById('root')); +const root = ReactDOM.createRoot(document.getElementById('root')); +root.render(); From 98ccb323c4b503ff3a545bd9f4b5e981cd85fe55 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= <28806196+maxschwarzmueller@users.noreply.github.com> Date: Fri, 25 Mar 2022 17:06:35 +0100 Subject: [PATCH 6/6] updated code attachments to v18 --- code/01-starting-setup/src/index.js | 2 +- code/02-building-a-first-custom-component/src/index.js | 2 +- code/03-writing-more-complex-jsx-code/src/index.js | 2 +- code/04-adding-basic-css-styling/src/index.js | 2 +- code/05-outputting-dynamic-data/src/index.js | 2 +- code/06-passing-data-via-props/src/index.js | 2 +- code/07-adding-normal-javascript-logic/src/index.js | 2 +- .../src/index.js | 2 +- code/09-assignment-1-solution/src/index.js | 2 +- code/10-the-concept-of-composition/src/index.js | 2 +- code/11-finished/src/index.js | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/code/01-starting-setup/src/index.js b/code/01-starting-setup/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/01-starting-setup/src/index.js +++ b/code/01-starting-setup/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/02-building-a-first-custom-component/src/index.js b/code/02-building-a-first-custom-component/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/02-building-a-first-custom-component/src/index.js +++ b/code/02-building-a-first-custom-component/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/03-writing-more-complex-jsx-code/src/index.js b/code/03-writing-more-complex-jsx-code/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/03-writing-more-complex-jsx-code/src/index.js +++ b/code/03-writing-more-complex-jsx-code/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/04-adding-basic-css-styling/src/index.js b/code/04-adding-basic-css-styling/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/04-adding-basic-css-styling/src/index.js +++ b/code/04-adding-basic-css-styling/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/05-outputting-dynamic-data/src/index.js b/code/05-outputting-dynamic-data/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/05-outputting-dynamic-data/src/index.js +++ b/code/05-outputting-dynamic-data/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/06-passing-data-via-props/src/index.js b/code/06-passing-data-via-props/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/06-passing-data-via-props/src/index.js +++ b/code/06-passing-data-via-props/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/07-adding-normal-javascript-logic/src/index.js b/code/07-adding-normal-javascript-logic/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/07-adding-normal-javascript-logic/src/index.js +++ b/code/07-adding-normal-javascript-logic/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/08-splitting-components-into-multiple-components/src/index.js b/code/08-splitting-components-into-multiple-components/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/08-splitting-components-into-multiple-components/src/index.js +++ b/code/08-splitting-components-into-multiple-components/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/09-assignment-1-solution/src/index.js b/code/09-assignment-1-solution/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/09-assignment-1-solution/src/index.js +++ b/code/09-assignment-1-solution/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/10-the-concept-of-composition/src/index.js b/code/10-the-concept-of-composition/src/index.js index e4d0924dc0..778ec1ba20 100644 --- a/code/10-the-concept-of-composition/src/index.js +++ b/code/10-the-concept-of-composition/src/index.js @@ -1,4 +1,4 @@ -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App'; diff --git a/code/11-finished/src/index.js b/code/11-finished/src/index.js index a2a3af7b3d..9065e05326 100644 --- a/code/11-finished/src/index.js +++ b/code/11-finished/src/index.js @@ -1,5 +1,5 @@ import React from 'react'; -import ReactDOM from 'react-dom'; +import ReactDOM from 'react-dom/client'; import './index.css'; import App from './App';

{9QEw+Ln_x;=#E>P$QEyNb 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%0A%cC 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 EQ(h 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 Y75EDG<4X*f4a@}wqteibD@vgLKU1xYNdN!< literal 0 HcmV?d00001 From 698ff93813871e92c485667dab96ac9a6b1b3cc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= Date: Wed, 24 Mar 2021 11:45:30 +0100 Subject: [PATCH 3/6] added extra code --- extra-files/ExpenseDate.css | 26 +++++++++++++++++ extra-files/ExpenseItem.css | 56 +++++++++++++++++++++++++++++++++++++ extra-files/Expenses.css | 9 ++++++ extra-files/expenses.txt | 21 ++++++++++++++ 4 files changed, 112 insertions(+) create mode 100644 extra-files/ExpenseDate.css create mode 100644 extra-files/ExpenseItem.css create mode 100644 extra-files/Expenses.css create mode 100644 extra-files/expenses.txt diff --git a/extra-files/ExpenseDate.css b/extra-files/ExpenseDate.css new file mode 100644 index 0000000000..d69691de84 --- /dev/null +++ b/extra-files/ExpenseDate.css @@ -0,0 +1,26 @@ +.expense-date { + display: flex; + flex-direction: column; + width: 5.5rem; + height: 5.5rem; + border: 1px solid #ececec; + background-color: #2a2a2a; + color: white; + border-radius: 12px; + align-items: center; + justify-content: center; +} + +.expense-date__month { + font-size: 0.75rem; + font-weight: bold; +} + +.expense-date__year { + font-size: 0.75rem; +} + +.expense-date__day { + font-size: 1.5rem; + font-weight: bold; +} diff --git a/extra-files/ExpenseItem.css b/extra-files/ExpenseItem.css new file mode 100644 index 0000000000..22eabe9e80 --- /dev/null +++ b/extra-files/ExpenseItem.css @@ -0,0 +1,56 @@ +.expense-item { + display: flex; + justify-content: space-between; + align-items: center; + box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25); + padding: 0.5rem; + margin: 1rem 0; + border-radius: 12px; + background-color: #4b4b4b; +} + +.expense-item__description { + display: flex; + flex-direction: column; + gap: 1rem; + align-items: flex-end; + flex-flow: column-reverse; + justify-content: flex-start; + flex: 1; +} + +.expense-item h2 { + color: #3a3a3a; + font-size: 1rem; + flex: 1; + margin: 0 1rem; + color: white; +} + +.expense-item__price { + font-size: 1rem; + font-weight: bold; + color: white; + background-color: #40005d; + border: 1px solid white; + padding: 0.5rem; + border-radius: 12px; +} + +@media (min-width: 580px) { + .expense-item__description { + flex-direction: row; + align-items: center; + justify-content: flex-start; + flex: 1; + } + + .expense-item__description h2 { + font-size: 1.25rem; + } + + .expense-item__price { + font-size: 1.25rem; + padding: 0.5rem 1.5rem; + } +} \ No newline at end of file diff --git a/extra-files/Expenses.css b/extra-files/Expenses.css new file mode 100644 index 0000000000..2a3c9d0fbd --- /dev/null +++ b/extra-files/Expenses.css @@ -0,0 +1,9 @@ +.expenses { + padding: 1rem; + background-color: rgb(31, 31, 31); + margin: 2rem auto; + width: 50rem; + max-width: 95%; + border-radius: 12px; + box-shadow: 0 1px 8px rgba(0, 0, 0, 0.25); +} diff --git a/extra-files/expenses.txt b/extra-files/expenses.txt new file mode 100644 index 0000000000..ec90c0623f --- /dev/null +++ b/extra-files/expenses.txt @@ -0,0 +1,21 @@ +const expenses = [ + { + id: 'e1', + title: 'Toilet Paper', + amount: 94.12, + date: new Date(2020, 7, 14), + }, + { id: 'e2', title: 'New TV', amount: 799.49, date: new Date(2021, 2, 12) }, + { + id: 'e3', + title: 'Car Insurance', + amount: 294.67, + date: new Date(2021, 2, 28), + }, + { + id: 'e4', + title: 'New Desk (Wooden)', + amount: 450, + date: new Date(2021, 5, 12), + }, + ]; \ No newline at end of file From 1428b6eca596f1da08ed102d0a9e99c2d9f843ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maximilian=20Schwarzm=C3=BCller?= Date: Wed, 14 Apr 2021 00:53:21 +0200 Subject: [PATCH 4/6] added finished code snapshot --- code/11-finished/package.json | 38 ++++++++++++ code/11-finished/public/favicon.ico | Bin 0 -> 3870 bytes code/11-finished/public/index.html | 43 ++++++++++++++ code/11-finished/public/logo192.png | Bin 0 -> 5347 bytes code/11-finished/public/logo512.png | Bin 0 -> 9664 bytes code/11-finished/public/manifest.json | 25 ++++++++ code/11-finished/public/robots.txt | 3 + code/11-finished/src/App.js | 43 ++++++++++++++ .../src/components/Expenses/ExpenseDate.css | 26 +++++++++ .../src/components/Expenses/ExpenseDate.js | 19 ++++++ .../src/components/Expenses/ExpenseItem.css | 54 ++++++++++++++++++ .../src/components/Expenses/ExpenseItem.js | 19 ++++++ .../src/components/Expenses/Expenses.css | 7 +++ .../src/components/Expenses/Expenses.js | 34 +++++++++++ code/11-finished/src/components/UI/Card.css | 4 ++ code/11-finished/src/components/UI/Card.js | 11 ++++ code/11-finished/src/index.css | 15 +++++ code/11-finished/src/index.js | 7 +++ 18 files changed, 348 insertions(+) create mode 100644 code/11-finished/package.json create mode 100644 code/11-finished/public/favicon.ico create mode 100644 code/11-finished/public/index.html create mode 100644 code/11-finished/public/logo192.png create mode 100644 code/11-finished/public/logo512.png create mode 100644 code/11-finished/public/manifest.json create mode 100644 code/11-finished/public/robots.txt create mode 100644 code/11-finished/src/App.js create mode 100644 code/11-finished/src/components/Expenses/ExpenseDate.css create mode 100644 code/11-finished/src/components/Expenses/ExpenseDate.js create mode 100644 code/11-finished/src/components/Expenses/ExpenseItem.css create mode 100644 code/11-finished/src/components/Expenses/ExpenseItem.js create mode 100644 code/11-finished/src/components/Expenses/Expenses.css create mode 100644 code/11-finished/src/components/Expenses/Expenses.js create mode 100644 code/11-finished/src/components/UI/Card.css create mode 100644 code/11-finished/src/components/UI/Card.js create mode 100644 code/11-finished/src/index.css create mode 100644 code/11-finished/src/index.js diff --git a/code/11-finished/package.json b/code/11-finished/package.json new file mode 100644 index 0000000000..21f2dd39f2 --- /dev/null +++ b/code/11-finished/package.json @@ -0,0 +1,38 @@ +{ + "name": "react-complete-guide", + "version": "0.1.0", + "private": true, + "dependencies": { + "@testing-library/jest-dom": "^5.11.6", + "@testing-library/react": "^11.2.2", + "@testing-library/user-event": "^12.5.0", + "react": "^17.0.1", + "react-dom": "^17.0.1", + "react-scripts": "4.0.1", + "web-vitals": "^0.2.4" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": [ + "react-app", + "react-app/jest" + ] + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/code/11-finished/public/favicon.ico b/code/11-finished/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..a11777cc471a4344702741ab1c8a588998b1311a GIT binary patch literal 3870 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 baj7?x%VD!5Cxk2YbYLNVeiXvvpMCWYo=by@ literal 0 HcmV?d00001 diff --git a/code/11-finished/public/index.html b/code/11-finished/public/index.html new file mode 100644 index 0000000000..aa069f27cb --- /dev/null +++ b/code/11-finished/public/index.html @@ -0,0 +1,43 @@ + + + + + + + + + + + + + React App + + + +