diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 32bcc36b..4d7679eb 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -4,7 +4,7 @@ on: push: branches: [back/main, front/main] pull_request: - branches: [main, back/main, dev] + branches: [back/main, front/main] jobs: BE-test-and-build: @@ -49,7 +49,7 @@ jobs: with: node-version: '20' cache: 'npm' - cache-dependency-path: ./BE/package-lock.json + cache-dependency-path: ./FE/package-lock.json - name: Install dependencies working-directory: ./FE diff --git a/FE/package-lock.json b/FE/package-lock.json index 11fde835..ace223aa 100644 --- a/FE/package-lock.json +++ b/FE/package-lock.json @@ -10,9 +10,11 @@ "dependencies": { "@heroicons/react": "^2.1.5", "@tanstack/react-query": "^4.36.1", + "lottie-react": "^2.4.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.27.0", + "socket.io-client": "^4.8.1", "vite-tsconfig-paths": "^5.0.1", "zustand": "^5.0.1" }, @@ -1239,6 +1241,11 @@ "win32" ] }, + "node_modules/@socket.io/component-emitter": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==" + }, "node_modules/@tanstack/query-core": { "version": "4.36.1", "resolved": "https://registry.npmjs.org/@tanstack/query-core/-/query-core-4.36.1.tgz", @@ -2018,6 +2025,26 @@ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", "dev": true }, + "node_modules/engine.io-client": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.2.tgz", + "integrity": "sha512-TAr+NKeoVTjEVW8P3iHguO1LO6RlUz9O5Y8o7EY0fU+gY1NYqas7NN3slpFtbXEsLMHk0h90fJMfKjRkQ0qUIw==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.1.1" + } + }, + "node_modules/engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/esbuild": { "version": "0.21.5", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", @@ -2778,6 +2805,25 @@ "loose-envify": "cli.js" } }, + "node_modules/lottie-react": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/lottie-react/-/lottie-react-2.4.0.tgz", + "integrity": "sha512-pDJGj+AQlnlyHvOHFK7vLdsDcvbuqvwPZdMlJ360wrzGFurXeKPr8SiRCjLf3LrNYKANQtSsh5dz9UYQHuqx4w==", + "license": "MIT", + "dependencies": { + "lottie-web": "^5.10.2" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0" + } + }, + "node_modules/lottie-web": { + "version": "5.12.2", + "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.12.2.tgz", + "integrity": "sha512-uvhvYPC8kGPjXT3MyKMrL3JitEAmDMp30lVkuq/590Mw9ok6pWcFCwXJveo0t5uqYw1UREQHofD+jVpdjBv8wg==", + "license": "MIT" + }, "node_modules/lru-cache": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", @@ -3574,6 +3620,32 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/socket.io-client": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.1.tgz", + "integrity": "sha512-hJVXfu3E28NmzGk8o1sHhN3om52tRvwYeidbj7xKy2eIIse5IoKX3USlS6Tqt3BHAtflLIkCQBkzVrEEfWUyYQ==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.2", + "engine.io-client": "~6.6.1", + "socket.io-parser": "~4.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/socket.io-parser": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.2.4.tgz", + "integrity": "sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew==", + "dependencies": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/source-map-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", @@ -4140,6 +4212,34 @@ "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, + "node_modules/ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xmlhttprequest-ssl": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.2.tgz", + "integrity": "sha512-TEU+nJVUUnA4CYJFLvK5X9AOeH4KvDvhIfm0vV1GaQRtchnG0hgK5p8hw/xjv8cunWYCsiPCSDzObPyhEwq3KQ==", + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/yallist": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", diff --git a/FE/package.json b/FE/package.json index 0cdda5d9..17a3e821 100644 --- a/FE/package.json +++ b/FE/package.json @@ -12,9 +12,11 @@ "dependencies": { "@heroicons/react": "^2.1.5", "@tanstack/react-query": "^4.36.1", + "lottie-react": "^2.4.0", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.27.0", + "socket.io-client": "^4.8.1", "vite-tsconfig-paths": "^5.0.1", "zustand": "^5.0.1" }, diff --git a/FE/src/App.css b/FE/src/App.css index 902778b7..764b78b9 100644 --- a/FE/src/App.css +++ b/FE/src/App.css @@ -3,4 +3,6 @@ margin: 0 auto; padding: 2rem; text-align: center; + display: flex; + flex-direction: column; } diff --git a/FE/src/App.tsx b/FE/src/App.tsx index 59645bba..d3d0e74d 100644 --- a/FE/src/App.tsx +++ b/FE/src/App.tsx @@ -1,15 +1,40 @@ -import { Route, BrowserRouter as Router, Routes } from 'react-router-dom'; +import { + Outlet, + Route, + BrowserRouter as Router, + Routes, +} from 'react-router-dom'; import './App.css'; import Home from 'page/Home'; +import StocksDetail from 'page/StocksDetail'; +import Header from 'components/Header'; +import Login from 'components/Login'; +import SearchModal from './components/Search'; function App() { return ( - } /> + }> + } /> + } /> + ); } export default App; + +function Layout() { + return ( + <> +
+
+ +
+ + + + ); +} diff --git a/FE/public/Logo.png b/FE/src/assets/Logo.png similarity index 100% rename from FE/public/Logo.png rename to FE/src/assets/Logo.png diff --git a/FE/src/assets/emptyAnimation.json b/FE/src/assets/emptyAnimation.json new file mode 100644 index 00000000..5bcbecba --- /dev/null +++ b/FE/src/assets/emptyAnimation.json @@ -0,0 +1 @@ +{"v":"5.4.2","fr":60,"ip":0,"op":90,"w":620,"h":690,"nm":"Pre-comp 2","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"bottom_right 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[211.343,208.143,0],"e":[211.343,428.143,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[211.343,428.143,0],"e":[211.343,388.143,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[117.486,89.612,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[0.25,0.643],[9.638,27.694],[-0.545,1.799],[-2.253,0.087],[-49.028,-1.083],[-2.41,-2.312],[-1.521,-3.891],[-8.485,-26.666],[1.229,0.008],[53.092,-0.118]],"o":[[-10.659,-27.407],[-0.62,-1.781],[0.577,-1.904],[48.997,-1.881],[3.579,0.079],[3.17,3.04],[10.237,26.193],[0.329,1.034],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.216,-147.833],[-15.21,-153.348],[-11.12,-158.055],[136.006,-159.153],[145.395,-154.598],[152.084,-143.734],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.424,0.569],[15.558,22.754],[-0.549,0.524],[-1.831,0.039],[-48.815,-0.529],[-2.518,-1.52],[-1.695,-2.278],[-14.928,-21.952],[1.229,0.008],[53.092,-0.118]],"o":[[-16.558,-22.209],[-0.417,-0.61],[1.236,-1.18],[48.804,-1.038],[3.061,0.033],[2.559,1.544],[15.934,21.406],[0.628,0.923],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-32.223,-132.662],[-32.193,-134.793],[-27.451,-137.218],[119.002,-138.009],[127.738,-135.536],[133.603,-129.197],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[0.424,0.569],[15.558,22.754],[-0.549,0.524],[-1.831,0.039],[-48.815,-0.529],[-2.518,-1.52],[-1.695,-2.278],[-14.928,-21.952],[1.229,0.008],[53.092,-0.118]],"o":[[-16.558,-22.209],[-0.417,-0.61],[1.236,-1.18],[48.804,-1.038],[3.061,0.033],[2.559,1.544],[15.934,21.406],[0.628,0.923],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-32.223,-132.662],[-32.193,-134.793],[-27.451,-137.218],[119.002,-138.009],[127.738,-135.536],[133.603,-129.197],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.755,0.163],[22.491,4.893],[-0.583,-0.1],[-1.798,0.007],[-48.594,0.029],[-2.65,-0.445],[-1.767,-0.37],[-22.306,-4.387],[1.229,0.008],[53.092,-0.118]],"o":[[-22.5,-4.861],[-0.577,-0.125],[1.764,0.304],[48.593,-0.202],[2.699,-0.002],[1.785,0.3],[22.233,4.66],[1.199,0.236],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-51.645,-80.621],[-50.591,-79.366],[-45.198,-79.511],[100.583,-79.994],[108.666,-79.602],[113.707,-77.789],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[{"i":[[0.755,0.163],[22.491,4.893],[-0.583,-0.1],[-1.798,0.007],[-48.594,0.029],[-2.65,-0.445],[-1.767,-0.37],[-22.306,-4.387],[1.229,0.008],[53.092,-0.118]],"o":[[-22.5,-4.861],[-0.577,-0.125],[1.764,0.304],[48.593,-0.202],[2.699,-0.002],[1.785,0.3],[22.233,4.66],[1.199,0.236],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-51.645,-80.621],[-50.591,-79.366],[-45.198,-79.511],[100.583,-79.994],[108.666,-79.602],[113.707,-77.789],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.247,-0.644],[6.169,-21.714],[-1.621,-1.738],[-2.463,-0.053],[-48.247,0.874],[-2.012,1.421],[-0.72,1.893],[-6.492,22.149],[1.229,0.008],[53.092,-0.118]],"o":[[-8.129,21.216],[-0.618,2.176],[1.556,1.668],[48.242,1.039],[2.587,-0.047],[1.776,-1.254],[8.252,-21.697],[0.305,-1.04],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-7.072,-0.833],[-4.48,5.499],[1.889,8.776],[146.661,8.755],[153.766,6.024],[157.571,1.048],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[{"i":[[0.247,-0.644],[6.169,-21.714],[-1.621,-1.738],[-2.463,-0.053],[-48.247,0.874],[-2.012,1.421],[-0.72,1.893],[-6.492,22.149],[1.229,0.008],[53.092,-0.118]],"o":[[-8.129,21.216],[-0.618,2.176],[1.556,1.668],[48.242,1.039],[2.587,-0.047],[1.776,-1.254],[8.252,-21.697],[0.305,-1.04],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-7.072,-0.833],[-4.48,5.499],[1.889,8.776],[146.661,8.755],[153.766,6.024],[157.571,1.048],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.209,-0.654],[5.451,-24.026],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.734,2.328],[-5.933,24.38],[1.229,0.008],[53.092,-0.118]],"o":[[-7.558,23.588],[-0.59,2.598],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[7.579,-24.03],[0.256,-1.05],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-5.266,6.219],[-2.315,13.736],[4.282,17.811],[148.818,17.898],[155.694,14.438],[159.211,7.879],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[{"i":[[0.209,-0.654],[5.451,-24.026],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.734,2.328],[-5.933,24.38],[1.229,0.008],[53.092,-0.118]],"o":[[-7.558,23.588],[-0.59,2.598],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[7.579,-24.03],[0.256,-1.05],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-5.266,6.219],[-2.315,13.736],[4.282,17.811],[148.818,17.898],[155.694,14.438],[159.211,7.879],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.148,-0.667],[-8.331,-32.489],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[0.45,2.382],[8.874,32.748],[1.229,0.008],[53.092,-0.118]],"o":[[7.251,32.686],[0.663,2.585],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[-6.275,-33.203],[-0.283,-1.045],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[39.561,32.675],[42.512,40.192],[49.109,44.267],[193.645,44.354],[200.521,40.894],[204.038,34.335],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.97565870098,0.623621323529,0.104366167854,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[13.186,-121.197],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[91.803,91.525],"ix":3},"r":{"a":0,"k":36.852,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"bottom_right 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":149.892,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[239.343,81.393,0],"e":[239.343,301.393,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[239.343,301.393,0],"e":[239.343,261.393,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[98.474,89.612,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[0.669,0.345],[13.132,7.662],[2.349,2.068],[-2.927,0.191],[-50.571,-0.547],[-6.093,-2.696],[-4.316,-2.999],[-10.975,-8.181],[1.229,0.008],[53.092,-0.118]],"o":[[-13.598,-7.014],[-2.773,-1.618],[-2.067,-1.82],[50.434,-3.288],[6.83,0.074],[4.92,2.177],[11.291,7.846],[0.935,0.697],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-24.326,-87.334],[-32.133,-92.799],[-37.475,-98.911],[114.198,-102.339],[133.777,-97.06],[146.651,-87.982],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.747,0.188],[12.353,3.718],[3.201,1.325],[-2.289,0.161],[-51.584,1.049],[-5.74,-1.85],[-5.003,-2.301],[-10.051,-5.077],[1.229,0.008],[53.092,-0.118]],"o":[[-12.557,-3.155],[-3.35,-1.008],[-2.075,-0.859],[51.43,-3.628],[6.117,-0.124],[5.305,1.71],[10.274,4.724],[1.064,0.537],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-21.74,-75.551],[-31.537,-79.151],[-37.545,-82.094],[117.008,-89.63],[134.773,-85.599],[149.964,-79.007],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":16,"s":[{"i":[[0.747,0.188],[12.353,3.718],[3.201,1.325],[-2.289,0.161],[-51.584,1.049],[-5.74,-1.85],[-5.003,-2.301],[-10.051,-5.077],[1.229,0.008],[53.092,-0.118]],"o":[[-12.557,-3.155],[-3.35,-1.008],[-2.075,-0.859],[51.43,-3.628],[6.117,-0.124],[5.305,1.71],[10.274,4.724],[1.064,0.537],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-21.74,-75.551],[-31.537,-79.151],[-37.545,-82.094],[117.008,-89.63],[134.773,-85.599],[149.964,-79.007],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.707,-0.283],[9.564,-3.731],[1.953,-1.212],[-3.397,-0.096],[-49.861,1.406],[-5.083,1.281],[-6.291,2.258],[-7.299,3.525],[1.229,0.008],[53.092,-0.118]],"o":[[-9.521,3.814],[-2.188,0.853],[-2.77,1.719],[49.86,1.408],[5.288,-0.149],[6.535,-1.647],[7.715,-2.769],[1.076,-0.519],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-12.916,-53.343],[-19.686,-51.237],[-26.711,-44.785],[122.922,-47.209],[138.586,-49.446],[157.584,-55.946],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":17,"s":[{"i":[[0.707,-0.283],[9.564,-3.731],[1.953,-1.212],[-3.397,-0.096],[-49.861,1.406],[-5.083,1.281],[-6.291,2.258],[-7.299,3.525],[1.229,0.008],[53.092,-0.118]],"o":[[-9.521,3.814],[-2.188,0.853],[-2.77,1.719],[49.86,1.408],[5.288,-0.149],[6.535,-1.647],[7.715,-2.769],[1.076,-0.519],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-12.916,-53.343],[-19.686,-51.237],[-26.711,-44.785],[122.922,-47.209],[138.586,-49.446],[157.584,-55.946],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.289,-0.63],[10.587,-24.925],[0.029,-1.947],[-2.074,-0.06],[-50.642,0.949],[-2.605,1.76],[-1.445,3.288],[-8.597,24.745],[1.229,0.008],[53.092,-0.118]],"o":[[-11.328,24.675],[-0.776,1.826],[-0.027,1.812],[50.625,1.473],[3.293,-0.062],[3.19,-2.155],[10.612,-24.141],[0.357,-1.027],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-16.787,9.609],[-18.533,15.249],[-16.949,20.506],[135.009,19.717],[144.552,17.48],[151.303,8.711],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":18,"s":[{"i":[[0.289,-0.63],[10.587,-24.925],[0.029,-1.947],[-2.074,-0.06],[-50.642,0.949],[-2.605,1.76],[-1.445,3.288],[-8.597,24.745],[1.229,0.008],[53.092,-0.118]],"o":[[-11.328,24.675],[-0.776,1.826],[-0.027,1.812],[50.625,1.473],[3.293,-0.062],[3.19,-2.155],[10.612,-24.141],[0.357,-1.027],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-16.787,9.609],[-18.533,15.249],[-16.949,20.506],[135.009,19.717],[144.552,17.48],[151.303,8.711],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":22,"s":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.367,-0.599],[-12.262,-18.403],[-2.375,-2.331],[-2.692,-0.074],[-48.163,1.073],[-1.429,1.944],[1.167,2.11],[12.725,18.474],[1.229,0.008],[53.092,-0.118]],"o":[[11.502,18.773],[1.797,2.697],[1.79,1.757],[48.155,1.326],[2.644,-0.059],[1.45,-1.972],[-10.733,-19.414],[-0.634,-0.92],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[52.062,-9.636],[57.718,-1.684],[64.315,2.39],[208.851,2.477],[215.727,-0.983],[216.538,-7.976],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":27,"s":[{"i":[[-0.367,-0.599],[-12.262,-18.403],[-2.375,-2.331],[-2.692,-0.074],[-48.163,1.073],[-1.429,1.944],[1.167,2.11],[12.725,18.474],[1.229,0.008],[53.092,-0.118]],"o":[[11.502,18.773],[1.797,2.697],[1.79,1.757],[48.155,1.326],[2.644,-0.059],[1.45,-1.972],[-10.733,-19.414],[-0.634,-0.92],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[52.062,-9.636],[57.718,-1.684],[64.315,2.39],[208.851,2.477],[215.727,-0.983],[216.538,-7.976],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.773,-0.069],[-19.217,-1.218],[-4.041,-0.075],[-3.068,0.066],[-48.612,1.57],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.169,1.705],[4.031,0.255],[3.068,0.057],[48.631,-1.041],[0.457,-0.015],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[73.139,-60.703],[85.264,-60.561],[94.465,-60.309],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":29,"s":[{"i":[[-0.773,-0.069],[-19.217,-1.218],[-4.041,-0.075],[-3.068,0.066],[-48.612,1.57],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.169,1.705],[4.031,0.255],[3.068,0.057],[48.631,-1.041],[0.457,-0.015],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[73.139,-60.703],[85.264,-60.561],[94.465,-60.309],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[-0.777,-0.032],[-19.66,-0.5],[-4.041,-0.075],[-3.069,0.014],[-48.162,0.703],[-0.169,0.371],[0.533,-0.005],[20.288,-0.298],[1.229,0.008],[53.092,-0.118]],"o":[[19.646,0.801],[4.04,0.103],[3.068,0.057],[48.168,-0.223],[0.457,-0.007],[0.197,-0.433],[-20.29,0.171],[-1.229,0.018],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[74.516,-63.312],[86.641,-63.171],[95.842,-62.919],[240.345,-63.881],[240.721,-65.033],[241.436,-66.283],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":30}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.903937006932,0.576676013423,0.093966001623,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"bottom_right","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-210.358,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[380.355,161.774,0],"e":[380.355,381.774,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[380.355,381.774,0],"e":[380.355,341.774,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":15,"s":[98.088,89.612,100],"e":[98.088,-94.196,100]},{"t":29}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[-0.109,-0.76],[-5.613,-30.321],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[0.28,2.465],[6.015,30.617],[1.22,0.008],[53.092,-0.118]],"o":[[4.359,30.527],[0.49,2.647],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[-3.518,-31.003],[-0.235,-1.197],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[30.873,26.25],[33.824,33.768],[40.421,37.842],[184.957,37.929],[191.833,34.469],[195.35,27.91],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.518,-0.567],[23.77,-30.027],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-1.623,1.876],[-24.922,29.639],[1.22,0.008],[53.092,-0.118]],"o":[[-25.845,28.261],[-1.671,2.111],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[25.334,-29.288],[0.785,-0.934],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-61.106,20.603],[-58.155,28.121],[-51.559,32.196],[92.977,32.283],[99.854,28.823],[103.37,22.263],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":19,"s":[{"i":[[0.518,-0.567],[23.77,-30.027],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-1.623,1.876],[-24.922,29.639],[1.22,0.008],[53.092,-0.118]],"o":[[-25.845,28.261],[-1.671,2.111],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[25.334,-29.288],[0.785,-0.934],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-61.106,20.603],[-58.155,28.121],[-51.559,32.196],[92.977,32.283],[99.854,28.823],[103.37,22.263],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.277,-0.716],[14.523,-44.035],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.882,2.319],[-15.196,44.277],[1.22,0.008],[53.092,-0.118]],"o":[[-16.715,43.25],[-0.843,2.556],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[16.636,-43.756],[0.396,-1.154],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-32.893,65.419],[-29.942,72.936],[-23.345,77.011],[121.191,77.098],[128.067,73.638],[131.584,67.079],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":25,"s":[{"i":[[0.277,-0.716],[14.523,-44.035],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.882,2.319],[-15.196,44.277],[1.22,0.008],[53.092,-0.118]],"o":[[-16.715,43.25],[-0.843,2.556],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[16.636,-43.756],[0.396,-1.154],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[-32.893,65.419],[-29.942,72.936],[-23.345,77.011],[121.191,77.098],[128.067,73.638],[131.584,67.079],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.037,-0.767],[-0.173,-31.248],[-1.711,-2.078],[-2.584,-0.071],[-48.167,1.073],[-1.847,1.781],[-0.158,2.476],[0.199,31.655],[1.22,0.008],[53.092,-0.118]],"o":[[-1.522,31.211],[0.015,2.692],[1.643,1.995],[48.16,1.326],[2.565,-0.057],[1.786,-1.722],[2.019,-31.591],[-0.008,-1.22],[-53.09,-0.359],[-0.768,0.002]],"v":[[15.543,-64.979],[13.154,28.735],[16.104,36.252],[22.701,40.327],[167.237,40.414],[174.113,36.954],[177.63,30.395],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.90588241278,0.576470588235,0.094117654539,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,-0.107],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"box","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-0.138,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[310,220,0],"e":[310,440,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[310,440,0],"e":[310,400,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[114.5,111.5,0],"ix":1},"s":{"a":0,"k":[210,210,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.676,1.529],[0,0],[0,1.437],[0,0],[-2.676,-1.53],[0,0],[0,-1.436],[0,0]],"o":[[0,0],[-1.249,-0.714],[0,0],[0,-3.077],[0,0],[1.249,0.714],[0,0],[0,3.078]],"v":[[7.814,14.89],[-11.803,3.682],[-13.822,0.205],[-13.822,-11.413],[-7.814,-14.889],[11.802,-3.68],[13.822,-0.204],[13.822,11.413]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.995999983245,0.995999983245,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[67.059,135.614],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 1","np":4,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[2.16,1.318],[0,0],[-0.504,0.292],[-4.258,2.805],[0.212,0.123],[12.284,6.925]],"o":[[0,0],[0.456,-0.01],[17.4,-10.058],[-0.172,-0.191],[-6.276,-3.627],[-2.13,-1.2]],"v":[[-33.579,-39.177],[-33.4,37.332],[-32.002,36.86],[33.4,-1.005],[32.879,-1.57],[-26.565,-35.369]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.769000004787,0.681999954523,0.607999973671,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[147.882,65.668],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 2","np":4,"cix":2,"ix":2,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.213,0.123],[6.288,3.607],[12.284,6.924],[0.894,0.379],[2.252,-1.314],[1.819,-1.791],[-17.273,-10.007],[-0.95,0.549],[-17.4,10.06],[-4.258,2.805]],"o":[[-6.275,-3.627],[-5.131,-2.943],[-2.494,-1.405],[-1.22,0.528],[-14.667,8.562],[4.538,2.653],[1.046,0.606],[17.401,-10.059],[4.408,-2.549],[-0.171,-0.191]],"v":[[66.278,-1.562],[47.435,-12.418],[6.835,-35.361],[-0.379,-39.182],[-8.488,-35.245],[-66.799,-0.937],[-1.311,36.948],[1.397,36.868],[53.62,6.732],[66.799,-0.997]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"mm","mm":4,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.917999985639,0.851000019148,0.764999988032,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[114.462,65.66],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 3","np":4,"cix":2,"ix":3,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-0.005,-24.322],[1.903,1.096],[2.616,1.472],[-0.03,5.005],[0.01,9.844]],"o":[[0,0],[-2.239,0.118],[-15.611,-8.992],[-4.347,-2.446],[0.059,-9.842],[4.384,2.492]],"v":[[33.613,-38.028],[33.609,37.91],[27.456,36.222],[-27.186,4.76],[-33.583,-6.359],[-33.594,-76.364]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.995999983245,0.8,0.313999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[80.871,141.03],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 4","np":4,"cix":2,"ix":4,"mn":"ADBE Vector Group","hd":false},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0,0],[-4.147,2.385],[-0.029,-4.102],[4.338,-2.47],[10.47,-6.046],[2.548,0.242]],"o":[[0,0],[0.031,5.777],[0.036,4.968],[-7.538,4.292],[-2.117,1.223],[-0.005,-24.322]],"v":[[-33.625,-38.09],[33.024,-76.375],[33.598,-6.383],[27.179,4.728],[-26.801,35.827],[-33.629,37.848]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.987999949736,0.736999990426,0.238999998803,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[148.109,141.092],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Group 5","np":4,"cix":2,"ix":5,"mn":"ADBE Vector Group","hd":false},{"ty":"tr","p":{"a":0,"k":[114.5,111.5],"ix":2},"a":{"a":0,"k":[114.5,111.5],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"box","np":5,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"bottom_right 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"t":15}],"ix":11},"r":{"a":0,"k":-150.704,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[379.843,80.643,0],"e":[379.843,300.643,0],"to":[0,36.6666679382324,0],"ti":[0,-30,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[379.843,300.643,0],"e":[379.843,260.643,0],"to":[0,30,0],"ti":[0,6.66666650772095,0]},{"t":19}],"ix":2},"a":{"a":0,"k":[97.496,-65.355,0],"ix":1},"s":{"a":0,"k":[97.228,95.215,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[{"i":[[-0.643,-0.382],[-18.864,-10.591],[-1.644,-0.89],[-2.802,-0.07],[-48.163,1.073],[-0.716,2.224],[2.199,1.39],[17.518,9.202],[1.065,0.003],[53.092,-0.118]],"o":[[18.548,11.008],[1.627,0.914],[2.383,1.289],[48.159,1.198],[2.644,-0.059],[0.735,-2.282],[-16.56,-10.467],[-0.912,-0.479],[-53.092,-0.136],[-0.777,0.002]],"v":[[15.543,-64.979],[72.21,-33.309],[77.014,-30.466],[84.284,-26.777],[228.82,-26.69],[235.696,-30.15],[231.972,-36.474],[180.221,-65.213],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":21,"s":[{"i":[[0.015,-0.679],[-0.933,-32.194],[-1.771,-2.15],[-2.692,-0.074],[-48.163,1.073],[-1.776,1.712],[-0.093,2.413],[1.011,32.595],[1.229,0.008],[53.092,-0.118]],"o":[[-0.71,32.199],[0.077,2.648],[1.573,1.909],[48.155,1.326],[2.644,-0.059],[1.856,-1.789],[1.258,-32.589],[-0.033,-1.073],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[15.61,31.635],[18.561,39.152],[25.158,43.227],[169.694,43.314],[176.57,39.854],[180.087,33.295],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.355,-0.604],[9.063,-18.116],[-0.993,-3.498],[-2.692,-0.088],[-49.222,0.786],[-1.832,1.666],[-1.275,2.313],[-9.417,19.905],[1.229,0.008],[53.092,-0.118]],"o":[[-10.346,17.584],[-1.652,3.302],[0.648,2.283],[49.196,1.615],[2.645,-0.042],[2.036,-1.851],[10.697,-19.406],[0.469,-0.992],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.038,-11.592],[-16.469,-0.991],[-9.872,3.084],[137.815,4.075],[144.691,0.615],[149.006,-6.101],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":26,"s":[{"i":[[0.355,-0.604],[9.063,-18.116],[-0.993,-3.498],[-2.692,-0.088],[-49.222,0.786],[-1.832,1.666],[-1.275,2.313],[-9.417,19.905],[1.229,0.008],[53.092,-0.118]],"o":[[-10.346,17.584],[-1.652,3.302],[0.648,2.283],[49.196,1.615],[2.645,-0.042],[2.036,-1.851],[10.697,-19.406],[0.469,-0.992],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-14.038,-11.592],[-16.469,-0.991],[-9.872,3.084],[137.815,4.075],[144.691,0.615],[149.006,-6.101],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}],"e":[{"i":[[0.761,0.139],[18.699,4.066],[1.768,2.165],[-1.916,-0.085],[-46.459,-2.274],[-2.914,0.176],[-3.445,-0.368],[-21.965,-2.982],[1.229,0.008],[53.092,-0.118]],"o":[[-18.859,-3.457],[-2.954,-0.642],[-1.114,-1.364],[46.471,2.069],[2.917,0.143],[3.463,-0.21],[22.064,2.356],[1.215,0.165],[-53.09,-0.359],[-0.777,0.002]],"v":[[15.543,-64.979],[-40.778,-76.356],[-49.358,-79.092],[-43.68,-79.91],[95.666,-72.634],[104.429,-72.66],[114.762,-73.791],[180.598,-64.526],[177.029,-65.337],[17.754,-65.628]],"c":true}]},{"t":29}],"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.976470648074,0.623529411765,0.105882360421,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[99.101,-65.381],"ix":2},"a":{"a":0,"k":[99.101,-65.381],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":90,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":0,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[63]},{"t":21}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[287,509,0],"e":[287,449,0],"to":[0,-10,0],"ti":[0,4.66666650772095,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":15,"s":[287,449,0],"e":[287,481,0],"to":[0,-4.66666650772095,0],"ti":[0,-5.33333349227905,0]},{"t":21}],"ix":2},"a":{"a":0,"k":[119.5,119.5,0],"ix":1},"s":{"a":0,"k":[397.854,250.518,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[81.29,81.29],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":20,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"g":{"p":3,"k":{"a":0,"k":[0,0,0,0,0.95,0,0,0,1,0,0,0,0.001,0.39,0.524,0.195,0.999,0],"ix":9}},"s":{"a":0,"k":[0.074,0.267],"ix":5},"e":{"a":0,"k":[-25.662,26.134],"ix":6},"t":2,"h":{"a":0,"k":0,"ix":7},"a":{"a":0,"k":0,"ix":8},"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[125.672,140.06],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[124.899,112.74],"ix":3},"r":{"a":0,"k":-47.351,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":123,"st":0,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/FE/src/assets/noResultAnimation.json b/FE/src/assets/noResultAnimation.json new file mode 100644 index 00000000..7c0b99d8 --- /dev/null +++ b/FE/src/assets/noResultAnimation.json @@ -0,0 +1 @@ +{"v":"5.5.9","fr":60,"ip":0,"op":180,"w":426,"h":290,"nm":"search_empty","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"mouth","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":44,"s":[211,145,0],"to":[0,0.667,0],"ti":[0,-0.667,0]},{"t":69,"s":[211,149,0]}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":44,"s":[100,100,100]},{"t":68,"s":[105,105,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.5,0.25],[-1.715,0.372]],"o":[[-13.025,-6.512],[7.5,-1.625]],"v":[[-10,12.25],[-31.75,12.625]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.40784313725490196,0.4627450980392157,0.5176470588235295,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"汗","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":51,"s":[0]},{"t":95,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.667,"y":1},"o":{"x":0.333,"y":0},"t":51,"s":[248,95.252,0],"to":[0,1.5,0],"ti":[0,-1.5,0]},{"t":94,"s":[248,104.252,0]}],"ix":2},"a":{"a":0,"k":[0,-19.333,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":51,"s":[40,40,100]},{"t":95,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-9.94,0],[0,7.27],[0,0],[0,-7.27]],"o":[[9.94,0],[0,-7.27],[0,0],[0,7.27]],"v":[[0,19],[18,5.84],[0,-19],[-18,5.84]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"gf","o":{"a":0,"k":100,"ix":10},"r":1,"bm":0,"g":{"p":3,"k":{"a":0,"k":[0,0.69,0.976,1,0.5,0.714,0.954,0.997,1,0.738,0.932,0.994],"ix":9}},"s":{"a":0,"k":[0.019,-9.236],"ix":5},"e":{"a":0,"k":[10.208,19],"ix":6},"t":1,"nm":"Gradient Fill 1","mn":"ADBE Vector Graphic - G-Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"汗","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":569,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"eye","parent":1,"sr":1,"ks":{"o":{"a":0,"k":92,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-7.064,-11.347,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":3,"s":[100,20,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[100,20,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":12,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":50,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":53,"s":[100,20,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8.466,16.135],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23529411764705882,0.26666666666666666,0.29411764705882354,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"eye","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":569,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"eye","parent":1,"sr":1,"ks":{"o":{"a":0,"k":92,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[-33.767,-11.347,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":3,"s":[100,20,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":6,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":9,"s":[100,20,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":12,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":50,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":53,"s":[100,20,100]},{"t":56,"s":[100,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[8.466,16.135],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.23529411764705882,0.26666666666666666,0.29411764705882354,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"eye","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":569,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":0,"nm":"magnifier","refId":"comp_1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[213,145,0],"ix":2},"a":{"a":0,"k":[213,145,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":426,"h":290,"ip":0,"op":569,"st":0,"bm":0}]},{"id":"comp_1","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Shape Layer 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[213,145,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"st","c":{"a":0,"k":[0.40784313725490196,0.4627450980392157,0.5176470588235295,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Shape 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-5,"ix":10},"p":{"a":0,"k":[190.106,142.222,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[99.994,100.091],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[1,1,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-40,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-5,"ix":10},"p":{"a":0,"k":[192.013,142.223,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-26.81,22.62],[22.49,26.96],[26.8,-22.62],[-22.5,-26.95]],"o":[[26.81,-22.62],[-22.49,-26.96],[-26.81,22.62],[22.49,26.96]],"v":[[40.727,48.812],[48.537,-40.958],[-40.723,-48.808],[-48.533,40.952]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3764705882352941,0.596078431372549,1,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"矩形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-5,"ix":10},"p":{"a":0,"k":[268.024,226.941,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[42.094,74.507],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2980392156862745,0.49019607843137253,0.8392156862745098,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-40,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":6,"ty":4,"nm":"矩形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":-5,"ix":10},"p":{"a":0,"k":[238.933,197.25,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[24.446,44.702],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":0,"k":[0.847000002861,0.847000002861,0.847000002861,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":-40,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"矩形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_2","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"合併形狀","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":60,"s":[0]},{"t":265,"s":[360]}],"ix":10},"p":{"a":0,"k":[208,27,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[16,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[2,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 2","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078026295,0.835294008255,0.843137025833,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"合併形狀","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"合併形狀","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"t":358,"s":[360]}],"ix":10},"p":{"a":0,"k":[418,107,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[16,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[2,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 2","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078026295,0.835294008255,0.843137025833,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"合併形狀","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"合併形狀","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":5,"s":[0]},{"t":281,"s":[360]}],"ix":10},"p":{"a":0,"k":[31,196,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[16,2],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"rc","d":1,"s":{"a":0,"k":[2,18],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":0,"ix":4},"nm":"Rectangle Path 2","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"mm","mm":2,"nm":"Merge Paths 1","mn":"ADBE Vector Filter - Merge","hd":false},{"ty":"fl","c":{"a":0,"k":[0.796078026295,0.835294008255,0.843137025833,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"合併形狀","np":4,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"t":281,"s":[360]}],"ix":10},"p":{"a":0,"k":[70,33,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[24,24],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.701960980892,0.756862998009,0.776471018791,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]},{"id":"comp_3","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[306,9,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.701960980892,0.756862998009,0.776471018791,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":2,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[376,179,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960980892,0.768626987934,0.776471018791,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"橢圓形","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[8,115,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[16,16],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.701960980892,0.768626987934,0.776471018791,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"橢圓形","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":3600,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"shadow","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[191,145,0],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[70,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":30,"s":[50,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":60,"s":[70,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":90,"s":[50,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":120,"s":[70,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":150,"s":[50,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":180,"s":[70,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":210,"s":[50,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":240,"s":[70,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":270,"s":[50,100,100]},{"t":295,"s":[70,100,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[56.697,6.631],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.848757874732,0.861812935623,0.876608455882,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-9.651,124.815],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Ellipse 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":300,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":0,"nm":"main","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":0,"s":[213,145,0],"to":[0,0.833,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":30,"s":[213,150,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":60,"s":[213,145,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":90,"s":[213,150,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":120,"s":[213,145,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":150,"s":[213,150,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":180,"s":[213,145,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":210,"s":[213,150,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"t":240,"s":[213,145,0],"to":[0,0,0],"ti":[0,-0.833,0]},{"t":270,"s":[213,150,0]}],"ix":2},"a":{"a":0,"k":[213,145,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":426,"h":290,"ip":0,"op":3600,"st":0,"bm":0},{"ddd":0,"ind":3,"ty":0,"nm":"decoration1","refId":"comp_2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.981],"y":[1.128]},"o":{"x":[0.39],"y":[0.019]},"t":8,"s":[0]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":40,"s":[100]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":72,"s":[80]},{"t":73,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[213,289,0],"ix":2},"a":{"a":0,"k":[213,289,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.667],"y":[0.866,0.866,1]},"o":{"x":[0.37,0.37,0.333],"y":[-0.029,-0.029,0]},"t":0,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":40,"s":[100,100,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":72,"s":[80,80,100]},{"t":133,"s":[90,90,100]}],"ix":6}},"ao":0,"w":426,"h":290,"ip":0,"op":569,"st":0,"bm":0},{"ddd":0,"ind":4,"ty":0,"nm":"decoratio2","refId":"comp_3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":0,"s":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":41,"s":[100]},{"t":72,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[211,291,0],"ix":2},"a":{"a":0,"k":[211,291,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":0,"s":[0,0,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":43,"s":[99.442,99.442,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"t":72,"s":[84.442,84.442,100]},{"t":133,"s":[90,90,100]}],"ix":6}},"ao":0,"w":426,"h":290,"ip":0,"op":569,"st":0,"bm":0}],"markers":[{"tm":180,"cm":"1","dr":0},{"tm":3600,"cm":"2","dr":0}]} \ No newline at end of file diff --git a/FE/src/assets/searchAnimation.json b/FE/src/assets/searchAnimation.json new file mode 100644 index 00000000..171109fa --- /dev/null +++ b/FE/src/assets/searchAnimation.json @@ -0,0 +1 @@ +{"v":"5.5.7","meta":{"g":"LottieFiles AE 0.1.21","a":"","k":"","d":"","tc":"#000000"},"fr":24,"ip":0,"op":96,"w":350,"h":250,"nm":"Search","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Fields - 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,47.951,0],"to":null,"ti":null},{"t":25,"s":[176,127.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true},{"ddd":0,"ind":2,"ty":4,"nm":"Fields - 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,127.951,0],"to":null,"ti":null},{"t":25,"s":[176,197.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Glass - 1","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.74],"y":[0]},"t":0,"s":[0]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":32,"s":[92]},{"i":{"x":[0.2],"y":[1]},"o":{"x":[0.8],"y":[0]},"t":64,"s":[2.99]},{"t":98,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.2,"y":1},"o":{"x":0.74,"y":0},"t":0,"s":[288.578,98.008,0],"to":null,"ti":null},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":32,"s":[74.578,167.008,0],"to":null,"ti":null},{"i":{"x":0.2,"y":1},"o":{"x":0.8,"y":0},"t":64,"s":[249.63099999999997,165.989,0],"to":null,"ti":null},{"t":98,"s":[288.578,98.008,0]}],"ix":2},"a":{"a":0,"k":[47.578,-14.992,0],"ix":1},"s":{"a":0,"k":[200.99999999999997,200.99999999999997,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[54.493,-11.608],[56.526999999999994,-12.378],[64.563,-4.422],[65.353,-2.362],[61.005,1.938],[58.971000000000004,2.709],[50.935,-5.248],[50.145,-7.307999999999999]],"o":[[55.272000000000006,-12.379000000000001],[57.306,-11.607],[65.35300000000001,-3.639],[64.562,-1.579],[60.226,2.709],[58.192,1.938],[50.145,-6.031000000000001],[50.936,-8.091]],"v":[[54.493,-11.608],[57.306,-11.607],[64.563,-4.422],[64.562,-1.579],[61.005,1.938],[58.192,1.938],[50.935,-5.248],[50.936,-8.091]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0,0.1686,0.1686,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[47.91,-14.59],[54.804,-7.695]],"o":[[47.91,-14.59],[54.804,-7.695]],"v":[[47.91,-14.59],[54.804,-7.695]],"c":false},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"st","c":{"a":0,"k":[0,0.1686,0.1686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[22.033,22.033],"ix":2},"p":{"a":0,"k":[41.016,-21.484],"ix":3},"nm":"Ellipse Path 1","mn":"ADBE Vector Shape - Ellipse","hd":false,"_render":true},{"ty":"st","c":{"a":0,"k":[0,0.1686,0.1686,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":5,"ix":5},"lc":1,"lj":1,"ml":4,"bm":0,"nm":"Stroke 1","mn":"ADBE Vector Graphic - Stroke","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":3,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true},{"ddd":0,"ind":2,"ty":0,"nm":"Loop Container - 1","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[175,125,0],"ix":2},"a":{"a":0,"k":[175,125,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"o":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"v":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":350,"h":250,"ip":65,"op":110,"st":65,"bm":0,"completed":true,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Fields - 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,47.951,0],"to":null,"ti":null},{"t":25,"s":[176,127.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true},{"ddd":0,"ind":2,"ty":4,"nm":"Fields - 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,127.951,0],"to":null,"ti":null},{"t":25,"s":[176,197.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true}]},{"ddd":0,"ind":3,"ty":0,"nm":"Loop Container - 2","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[175,125,0],"ix":2},"a":{"a":0,"k":[175,125,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"o":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"v":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":350,"h":250,"ip":32,"op":65,"st":32,"bm":0,"completed":true,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Fields - 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,47.951,0],"to":null,"ti":null},{"t":25,"s":[176,127.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true},{"ddd":0,"ind":2,"ty":4,"nm":"Fields - 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,127.951,0],"to":null,"ti":null},{"t":25,"s":[176,197.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true}]},{"ddd":0,"ind":4,"ty":0,"nm":"Loop Container - 3","refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[175,125,0],"ix":2},"a":{"a":0,"k":[175,125,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"hasMask":true,"masksProperties":[{"inv":false,"mode":"a","pt":{"a":0,"k":{"i":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"o":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"v":[[300.914,68.5],[54,68.5],[54,180],[300.914,180]],"c":true},"ix":1},"o":{"a":0,"k":100,"ix":3},"x":{"a":0,"k":0,"ix":4},"nm":"Mask 1"}],"w":350,"h":250,"ip":0,"op":33,"st":0,"bm":0,"completed":true,"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Fields - 1","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":2,"s":[0]},{"t":8,"s":[100]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,47.951,0],"to":null,"ti":null},{"t":25,"s":[176,127.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true},{"ddd":0,"ind":2,"ty":4,"nm":"Fields - 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":14,"s":[100]},{"t":20,"s":[0]}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.23,"y":1},"o":{"x":0.77,"y":0},"t":0,"s":[176,127.951,0],"to":null,"ti":null},{"t":25,"s":[176,197.951,0]}],"ix":2},"a":{"a":0,"k":[-12,18.951,0],"ix":1},"s":{"a":0,"k":[194,194,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-38.5,14.098],[-37.113,11],[11.773,11],[14.871,12.387],[14.871,14.098],[13.484,17.195],[-35.402,17.195],[-38.5,15.809000000000001]],"o":[[-38.5,12.387],[-35.402,11],[13.484,11],[14.871,14.098],[14.871,15.809000000000001],[11.773,17.195],[-37.113,17.195],[-38.5,14.098]],"v":[[-38.5,14.098],[-35.402,11],[11.773,11],[14.871,14.098],[14.871,14.098],[11.773,17.195],[-35.402,17.195],[-38.5,14.098]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-37.113,21.777],[22.421,21.777],[25.519,23.164],[25.519,24.875],[24.131999999999998,27.973],[-35.402,27.973],[-38.5,26.586],[-38.5,24.875]],"o":[[-35.402,21.777],[24.131999999999998,21.777],[25.519,24.875],[25.519,26.586],[22.421,27.973],[-37.113,27.973],[-38.5,24.875],[-38.5,23.164]],"v":[[-35.402,21.777],[22.421,21.777],[25.519,24.875],[25.519,24.875],[22.421,27.973],[-35.402,27.973],[-38.5,24.875],[-38.5,24.875]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.97,0.97,0.97,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 2","np":2,"cix":2,"bm":0,"ix":2,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-58.605,11],[-44.5,11],[-42.5,11.895],[-42.5,26],[-43.395,28],[-57.5,28],[-59.5,27.105],[-59.5,13]],"o":[[-57.5,11],[-43.395,11],[-42.5,13],[-42.5,27.105],[-44.5,28],[-58.605,28],[-59.5,26],[-59.5,11.895]],"v":[[-57.5,11],[-44.5,11],[-42.5,13],[-42.5,26],[-44.5,28],[-57.5,28],[-59.5,26],[-59.5,13]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.5725,0.6549,0.9961,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 3","np":2,"cix":2,"bm":0,"ix":3,"mn":"ADBE Vector Group","hd":false,"_render":true},{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[-64.593,3.333],[38.241,3.333],[42.5,5.241],[42.5,30.309],[40.592999999999996,34.568],[-62.241,34.568],[-66.5,32.661],[-66.5,7.593]],"o":[[-62.241,3.333],[40.592999999999996,3.333],[42.5,7.593],[42.5,32.661],[38.241,34.568],[-64.593,34.568],[-66.5,30.309],[-66.5,5.241]],"v":[[-62.241,3.333],[38.241,3.333],[42.5,7.593],[42.5,30.309],[38.241,34.568],[-62.241,34.568],[-66.5,30.309],[-66.5,7.593]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.99,0.99,0.99,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 4","np":2,"cix":2,"bm":0,"ix":4,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":0,"op":222,"st":0,"bm":0,"completed":true}]},{"ddd":0,"ind":5,"ty":4,"nm":"Sparkle - 2","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":93,"s":[100]},{"t":103,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.81],"y":[0]},"t":78,"s":[0]},{"t":103,"s":[-180]}],"ix":10},"p":{"a":0,"k":[225.524,69.17,0],"ix":2},"a":{"a":0,"k":[32.024,-44.33,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.19,0.19,0.19],"y":[1,1,1]},"o":{"x":[0.81,0.81,0.81],"y":[0,0,0]},"t":78,"s":[0,0,100]},{"t":98,"s":[49,49,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.61,-30.16],[30.166999999999998,-30.615000000000002],[27.61,-39.6],[27.467,-39.822],[19.54,-41.99],[17.55,-43.658],[18.749,-46.326],[27.28,-48.77],[27.505,-48.919999999999995],[29.67,-56.84],[30.576,-58.325],[33.873,-58.045],[36.43,-49.06],[36.57,-48.830999999999996],[44.5,-46.67],[46.20099999999999,-45.528],[45.609,-42.499],[36.78,-39.94],[36.561,-39.787],[34.39,-31.87],[33.479,-30.357000000000003]],"o":[[31.389,-29.885],[29.83,-31.82],[27.567,-39.725],[27.34,-39.86],[18.281,-42.347],[18.131,-45.708],[19.54,-46.55],[27.408,-48.815000000000005],[27.54,-49.05],[29.895000000000003,-57.682],[32.650999999999996,-58.775],[34.21,-56.84],[36.466,-48.931000000000004],[36.7,-48.8],[45.495,-46.412],[46.269,-43.449],[44.61,-42.17],[36.656,-39.89],[36.52,-39.66],[34.173,-31.012],[32.61,-30.19]],"v":[[32.61,-30.16],[29.83,-31.82],[27.61,-39.6],[27.34,-39.86],[19.54,-41.99],[17.907,-44.917],[19.54,-46.55],[27.28,-48.77],[27.54,-49.05],[29.67,-56.84],[31.43,-58.5],[34.21,-56.84],[36.43,-49.06],[36.7,-48.8],[44.5,-46.67],[46.23,-44.5],[44.61,-42.17],[36.78,-39.94],[36.52,-39.66],[34.39,-31.87],[32.61,-30.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.344,0.4424,0.836,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":78,"op":110,"st":78,"bm":0,"completed":true},{"ddd":0,"ind":6,"ty":4,"nm":"Sparkle - 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":57,"s":[100]},{"t":73,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.81],"y":[0]},"t":42,"s":[0]},{"t":73,"s":[-180]}],"ix":10},"p":{"a":0,"k":[295.024,175.67,0],"ix":2},"a":{"a":0,"k":[32.024,-44.33,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.19,0.19,0.19],"y":[1,1,1]},"o":{"x":[0.81,0.81,0.81],"y":[0,0,0]},"t":42,"s":[0,0,100]},{"t":62,"s":[49,49,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.61,-30.16],[30.166999999999998,-30.615000000000002],[27.61,-39.6],[27.467,-39.822],[19.54,-41.99],[17.55,-43.658],[18.749,-46.326],[27.28,-48.77],[27.505,-48.919999999999995],[29.67,-56.84],[30.576,-58.325],[33.873,-58.045],[36.43,-49.06],[36.57,-48.830999999999996],[44.5,-46.67],[46.20099999999999,-45.528],[45.609,-42.499],[36.78,-39.94],[36.561,-39.787],[34.39,-31.87],[33.479,-30.357000000000003]],"o":[[31.389,-29.885],[29.83,-31.82],[27.567,-39.725],[27.34,-39.86],[18.281,-42.347],[18.131,-45.708],[19.54,-46.55],[27.408,-48.815000000000005],[27.54,-49.05],[29.895000000000003,-57.682],[32.650999999999996,-58.775],[34.21,-56.84],[36.466,-48.931000000000004],[36.7,-48.8],[45.495,-46.412],[46.269,-43.449],[44.61,-42.17],[36.656,-39.89],[36.52,-39.66],[34.173,-31.012],[32.61,-30.19]],"v":[[32.61,-30.16],[29.83,-31.82],[27.61,-39.6],[27.34,-39.86],[19.54,-41.99],[17.907,-44.917],[19.54,-46.55],[27.28,-48.77],[27.54,-49.05],[29.67,-56.84],[31.43,-58.5],[34.21,-56.84],[36.43,-49.06],[36.7,-48.8],[44.5,-46.67],[46.23,-44.5],[44.61,-42.17],[36.78,-39.94],[36.52,-39.66],[34.39,-31.87],[32.61,-30.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.344,0.4424,0.836,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":42,"op":74,"st":42,"bm":0,"completed":true},{"ddd":0,"ind":7,"ty":4,"nm":"Sparkle - 4","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"t":31,"s":[100]},{"t":47,"s":[0]}],"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.19],"y":[1]},"o":{"x":[0.81],"y":[0]},"t":16,"s":[0]},{"t":47,"s":[-180]}],"ix":10},"p":{"a":0,"k":[41.024,157.17,0],"ix":2},"a":{"a":0,"k":[32.024,-44.33,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.19,0.19,0.19],"y":[1,1,1]},"o":{"x":[0.81,0.81,0.81],"y":[0,0,0]},"t":16,"s":[0,0,100]},{"t":36,"s":[49,49,100]}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[32.61,-30.16],[30.166999999999998,-30.615000000000002],[27.61,-39.6],[27.467,-39.822],[19.54,-41.99],[17.55,-43.658],[18.749,-46.326],[27.28,-48.77],[27.505,-48.919999999999995],[29.67,-56.84],[30.576,-58.325],[33.873,-58.045],[36.43,-49.06],[36.57,-48.830999999999996],[44.5,-46.67],[46.20099999999999,-45.528],[45.609,-42.499],[36.78,-39.94],[36.561,-39.787],[34.39,-31.87],[33.479,-30.357000000000003]],"o":[[31.389,-29.885],[29.83,-31.82],[27.567,-39.725],[27.34,-39.86],[18.281,-42.347],[18.131,-45.708],[19.54,-46.55],[27.408,-48.815000000000005],[27.54,-49.05],[29.895000000000003,-57.682],[32.650999999999996,-58.775],[34.21,-56.84],[36.466,-48.931000000000004],[36.7,-48.8],[45.495,-46.412],[46.269,-43.449],[44.61,-42.17],[36.656,-39.89],[36.52,-39.66],[34.173,-31.012],[32.61,-30.19]],"v":[[32.61,-30.16],[29.83,-31.82],[27.61,-39.6],[27.34,-39.86],[19.54,-41.99],[17.907,-44.917],[19.54,-46.55],[27.28,-48.77],[27.54,-49.05],[29.67,-56.84],[31.43,-58.5],[34.21,-56.84],[36.43,-49.06],[36.7,-48.8],[44.5,-46.67],[46.23,-44.5],[44.61,-42.17],[36.78,-39.94],[36.52,-39.66],[34.39,-31.87],[32.61,-30.19]],"c":true},"ix":2},"nm":"Path 1","mn":"ADBE Vector Shape - Group","hd":false,"_render":true},{"ty":"fl","c":{"a":0,"k":[0.344,0.4424,0.836,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false,"_render":true},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform","_render":true}],"nm":"Group 1","np":2,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false,"_render":true}],"ip":16,"op":48,"st":16,"bm":0,"completed":true}],"markers":[],"__complete":true} \ No newline at end of file diff --git a/FE/src/components/Header.tsx b/FE/src/components/Header.tsx index b2b294fb..f6010ba7 100644 --- a/FE/src/components/Header.tsx +++ b/FE/src/components/Header.tsx @@ -1,17 +1,23 @@ +import { Link } from 'react-router-dom'; import useAuthStore from 'store/authStore'; import useLoginModalStore from 'store/useLoginModalStore'; +import useSearchModalStore from '../store/useSearchModalStore.ts'; +import useSearchInputStore from '../store/useSearchInputStore.ts'; +import logo from 'assets/Logo.png'; export default function Header() { const { toggleModal } = useLoginModalStore(); const { isLogin, resetToken } = useAuthStore(); + const { toggleSearchModal } = useSearchModalStore(); + const { searchInput } = useSearchInputStore(); return (
-
-
- +
+ +

JuGa

-
+
diff --git a/FE/src/components/Login/index.tsx b/FE/src/components/Login/index.tsx index fbe4e418..a0948232 100644 --- a/FE/src/components/Login/index.tsx +++ b/FE/src/components/Login/index.tsx @@ -4,12 +4,14 @@ import { ChatBubbleOvalLeftIcon } from '@heroicons/react/16/solid'; import { FormEvent, useEffect, useState } from 'react'; import { login } from 'service/auth'; import useAuthStore from 'store/authStore'; +import Overay from '../ModalOveray.tsx'; export default function Login() { const { isOpen, toggleModal } = useLoginModalStore(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const { setAccessToken } = useAuthStore(); + const [errorCode, setErrorCode] = useState(200); useEffect(() => { setEmail(''); @@ -23,6 +25,7 @@ export default function Login() { const res = await login(email, password); if ('error' in res) { + setErrorCode(res.statusCode); return; } @@ -35,6 +38,14 @@ export default function Login() { toggleModal()} />

JuGa

+

+ { + { + '401': '존재하지 않는 사용자입니다.', + '400': '잘못된 입력형식입니다.', + }[errorCode] + } +

); } - -function Overay({ onClick }: { onClick: () => void }) { - return ( -
- ); -} diff --git a/FE/src/components/ModalOveray.tsx b/FE/src/components/ModalOveray.tsx new file mode 100644 index 00000000..9e72da54 --- /dev/null +++ b/FE/src/components/ModalOveray.tsx @@ -0,0 +1,5 @@ +export default function Overay({ onClick }: { onClick: () => void }) { + return ( +
+ ); +} diff --git a/FE/src/components/Search/SearchCard.tsx b/FE/src/components/Search/SearchCard.tsx new file mode 100644 index 00000000..9b47c1d2 --- /dev/null +++ b/FE/src/components/Search/SearchCard.tsx @@ -0,0 +1,48 @@ +import { SearchDataType } from './searchDataType.ts'; +import { useNavigate } from 'react-router-dom'; +import useSearchModalStore from '../../store/useSearchModalStore.ts'; +import useSearchInputStore from '../../store/useSearchInputStore.ts'; +import { SearchCardHighLight } from './SearchCardHighlight.tsx'; + +type SearchCardProps = { + data: SearchDataType; +}; + +export default function SearchCard({ data }: SearchCardProps) { + const { code, name, market } = data; + const { isOpen, toggleSearchModal } = useSearchModalStore(); + const { searchInput } = useSearchInputStore(); + + const navigation = useNavigate(); + + const handleClick = () => { + navigation(`/stocks/${code}`); + if (isOpen) toggleSearchModal(); + }; + + return ( +
  • +
    +
    +
    + +
    +
    + {code} +
    +
    + +
    +

    + {market} +

    +
    +
    +
  • + ); +} diff --git a/FE/src/components/Search/SearchCardHighlight.tsx b/FE/src/components/Search/SearchCardHighlight.tsx new file mode 100644 index 00000000..21751aa6 --- /dev/null +++ b/FE/src/components/Search/SearchCardHighlight.tsx @@ -0,0 +1,32 @@ +type SearchCardHighLightProps = { + text: string; + highlight: string; +}; + +export const SearchCardHighLight = ({ + text, + highlight, +}: SearchCardHighLightProps) => { + if (!highlight.trim()) { + return
    {text}
    ; + } + + const parts = text.split(new RegExp(`(${highlight})`, 'gi')); + + return ( +
    + {parts.map((part, index) => + part.toLowerCase() === highlight.toLowerCase() ? ( + + {part} + + ) : ( + {part} + ), + )} +
    + ); +}; diff --git a/FE/src/components/Search/SearchHistoryItem.tsx b/FE/src/components/Search/SearchHistoryItem.tsx new file mode 100644 index 00000000..0c95e777 --- /dev/null +++ b/FE/src/components/Search/SearchHistoryItem.tsx @@ -0,0 +1,24 @@ +import { XMarkIcon } from '@heroicons/react/16/solid'; +import useSearchInputStore from '../../store/useSearchInputStore.ts'; + +type SearchHistoryItemProps = { + item: string; + onDelete: (item: string) => void; +}; + +export function SearchHistoryItem({ item, onDelete }: SearchHistoryItemProps) { + const { setSearchInput } = useSearchInputStore(); + return ( +
    + setSearchInput(item)}> + {item} + + +
    + ); +} diff --git a/FE/src/components/Search/SearchHistoryList.tsx b/FE/src/components/Search/SearchHistoryList.tsx new file mode 100644 index 00000000..caa1d7df --- /dev/null +++ b/FE/src/components/Search/SearchHistoryList.tsx @@ -0,0 +1,31 @@ +import { SearchHistoryItem } from './SearchHistoryItem.tsx'; +import { HistoryType } from './searchDataType.ts'; + +type SearchHistoryListProps = { + searchHistory: HistoryType[]; + onDeleteItem: (item: string) => void; +}; + +export function SearchHistoryList({ + searchHistory, + onDeleteItem, +}: SearchHistoryListProps) { + if (searchHistory.length === 0) return; + + return ( +
    +
    +
    최근 검색
    +
    +
    + {searchHistory.map((item: HistoryType) => ( + + ))} +
    +
    + ); +} diff --git a/FE/src/components/Search/SearchInput.tsx b/FE/src/components/Search/SearchInput.tsx new file mode 100644 index 00000000..e1ec83a0 --- /dev/null +++ b/FE/src/components/Search/SearchInput.tsx @@ -0,0 +1,35 @@ +import { MagnifyingGlassIcon } from '@heroicons/react/16/solid'; +import { useEffect, useRef } from 'react'; + +type SearchInputProps = { + value: string; + onChange: (value: string) => void; +}; + +export function SearchInput({ value, onChange }: SearchInputProps) { + const inputRef = useRef(null); + + useEffect(() => { + inputRef.current?.focus(); + }, []); + + return ( +
    + + onChange(e.target.value)} + /> +
    + ); +} diff --git a/FE/src/components/Search/SearchList.tsx b/FE/src/components/Search/SearchList.tsx new file mode 100644 index 00000000..89c0adf6 --- /dev/null +++ b/FE/src/components/Search/SearchList.tsx @@ -0,0 +1,31 @@ +import SearchCard from './SearchCard.tsx'; +import { SearchDataType } from './searchDataType.ts'; +import Lottie from 'lottie-react'; +import noResultAnimation from 'assets/noResultAnimation.json'; + +type SearchListProps = { + searchData: SearchDataType[]; +}; + +export default function SearchList({ searchData }: SearchListProps) { + if (searchData.length === 0) { + return ( +
    + +
    + 검색 결과가 없습니다. +
    +
    + ); + } + + return ( +
      + {searchData.map((data, index) => ( + + ))} +
    + ); +} diff --git a/FE/src/components/Search/index.tsx b/FE/src/components/Search/index.tsx new file mode 100644 index 00000000..0173c5b1 --- /dev/null +++ b/FE/src/components/Search/index.tsx @@ -0,0 +1,86 @@ +import { useEffect } from 'react'; +import useSearchModalStore from 'store/useSearchModalStore'; +import Overlay from 'components/ModalOveray.tsx'; +import { SearchInput } from './SearchInput'; +import { SearchHistoryList } from './SearchHistoryList'; +import SearchList from './SearchList.tsx'; +import useSearchInputStore from 'store/useSearchInputStore.ts'; +import { useDebounce } from 'utils/useDebounce.ts'; +import { useQuery } from '@tanstack/react-query'; +import { getSearchResults } from 'service/getSearchResults.ts'; +import Lottie from 'lottie-react'; +import searchAnimation from 'assets/searchAnimation.json'; +import { useSearchHistory } from './searchHistoryHook.ts'; + +export default function SearchModal() { + const { isOpen, toggleSearchModal } = useSearchModalStore(); + const { searchInput, setSearchInput } = useSearchInputStore(); + const { searchHistory, addSearchHistory, deleteSearchHistory } = + useSearchHistory(); + const shouldSearch = searchInput.trim().length >= 2; + + const { debounceValue, isDebouncing } = useDebounce( + shouldSearch ? searchInput : '', + 500, + ); + + const { data, isLoading, isFetching } = useQuery({ + queryKey: ['search', debounceValue], + queryFn: () => getSearchResults(debounceValue), + enabled: !!debounceValue && !isDebouncing, + }); + + useEffect(() => { + if (data && data.length > 0 && debounceValue && !isLoading) { + addSearchHistory(debounceValue); + } + }, [data, debounceValue]); + + if (!isOpen) return null; + + const isSearching = isLoading || isFetching || isDebouncing; + const showSearchResults = searchInput && !isSearching && data; + + return ( + <> + toggleSearchModal()} /> +
    +
    + +
    + +
    + {' '} + {!searchInput ? ( + + ) : ( +
    +
    + 검색 결과 +
    + +
    + {isSearching ? ( +
    + +
    + ) : ( + showSearchResults && + )} +
    +
    + )} +
    +
    + + ); +} diff --git a/FE/src/components/Search/searchDataType.ts b/FE/src/components/Search/searchDataType.ts new file mode 100644 index 00000000..76486c7f --- /dev/null +++ b/FE/src/components/Search/searchDataType.ts @@ -0,0 +1,11 @@ +export type SearchDataType = { + code: string; + name: string; + market: string; +}; + +export type HistoryType = { + id: string; + text: string; + timestamp: string; +}; diff --git a/FE/src/components/Search/searchHistoryHook.ts b/FE/src/components/Search/searchHistoryHook.ts new file mode 100644 index 00000000..63d1e52f --- /dev/null +++ b/FE/src/components/Search/searchHistoryHook.ts @@ -0,0 +1,48 @@ +import { useState, useEffect } from 'react'; +import { HistoryType } from './searchDataType'; + +const STORAGE_KEY = import.meta.env.VITE_STORAGE_KEY; +const MAX_HISTORY_ITEMS = import.meta.env.VITE_MAX_HISTORY_ITEMS; +export function useSearchHistory() { + const [searchHistory, setSearchHistory] = useState([]); + + useEffect(() => { + const storedHistory = localStorage.getItem(STORAGE_KEY); + if (storedHistory) { + setSearchHistory(JSON.parse(storedHistory)); + } + }, []); + + const addSearchHistory = (keyword: string) => { + if (!keyword.trim()) return; + + setSearchHistory((prev) => { + const filteredHistory = prev.filter((item) => item.text !== keyword); + const newItem: HistoryType = { + id: `${keyword}-${Date.now()}`, + text: keyword, + timestamp: new Date().toISOString(), + }; + const newHistory = [newItem, ...filteredHistory].slice( + 0, + MAX_HISTORY_ITEMS, + ); + localStorage.setItem(STORAGE_KEY, JSON.stringify(newHistory)); + return newHistory; + }); + }; + + const deleteSearchHistory = (text: string) => { + setSearchHistory((prev) => { + const newHistory = prev.filter((item) => item.text !== text); + localStorage.setItem(STORAGE_KEY, JSON.stringify(newHistory)); + return newHistory; + }); + }; + + return { + searchHistory, + addSearchHistory, + deleteSearchHistory, + }; +} diff --git a/FE/src/components/StockIndex/Card.tsx b/FE/src/components/StockIndex/Card.tsx new file mode 100644 index 00000000..b351b25d --- /dev/null +++ b/FE/src/components/StockIndex/Card.tsx @@ -0,0 +1,61 @@ +import { + ChartData, + StockIndexData, + StockIndexValue, +} from 'components/TopFive/type'; +import { useEffect, useRef, useState } from 'react'; +import { socket } from 'utils/socket.ts'; +import { drawChart } from 'utils/chart'; + +// const X_LENGTH = 79; + +type StockIndexChartProps = { + name: string; + id: 'KOSPI' | 'KOSDAQ' | 'KOSPI200' | 'KSQ150'; + initialData: StockIndexData; +}; + +export function Card({ name, id, initialData }: StockIndexChartProps) { + const { chart, value } = initialData; + const [prices, setPrices] = useState(chart); + const [stockIndexValue, setStockIndexValue] = + useState(value); + const canvasRef = useRef(null); + + const changeColor = + Number(value.diff) > 0 ? 'text-juga-red-60' : 'text-juga-blue-50'; + + socket.on(id, (stockIndex) => { + setStockIndexValue(stockIndex); + }); + + socket.on('chart', (chartData) => { + setPrices(chartData[id]); + }); + + useEffect(() => { + const canvas = canvasRef.current; + const ctx = canvas?.getContext('2d'); + if (!ctx) return; + + drawChart(ctx, prices, 79); + }, [prices]); + + return ( +
    +
    +

    {name}

    +

    {stockIndexValue.curr_value}

    +

    + {stockIndexValue.diff}({stockIndexValue.diff_rate}%) +

    +
    + +
    + ); +} diff --git a/FE/src/components/StockIndex/Chart.tsx b/FE/src/components/StockIndex/Chart.tsx deleted file mode 100644 index 2ab43205..00000000 --- a/FE/src/components/StockIndex/Chart.tsx +++ /dev/null @@ -1,49 +0,0 @@ -import { useEffect, useRef, useState } from 'react'; -import { drawChart } from 'utils/chart'; - -const X_LENGTH = 79; - -type StockIndexChartProps = { - name: string; -}; - -export function Chart({ name }: StockIndexChartProps) { - const [prices, setPrices] = useState([50, 54]); - const canvasRef = useRef(null); - - useEffect(() => { - const interval = setInterval(() => { - if (prices.length === X_LENGTH) { - clearInterval(interval); - return; - } - setPrices((prev) => [...prev, Math.floor(Math.random() * 50) + 25]); - }, 500); - - return () => clearInterval(interval); - }, [prices.length]); - - useEffect(() => { - const canvas = canvasRef.current; - const ctx = canvas?.getContext('2d'); - if (!ctx) return; - - drawChart(ctx, prices); - }, [prices]); - - return ( -
    -
    -

    {name}

    -

    2562.4

    -

    -31.55(-1.2%)

    -
    - -
    - ); -} diff --git a/FE/src/components/StockIndex/index.tsx b/FE/src/components/StockIndex/index.tsx index a5fead6b..133d04c7 100644 --- a/FE/src/components/StockIndex/index.tsx +++ b/FE/src/components/StockIndex/index.tsx @@ -1,10 +1,25 @@ -import { Chart } from './Chart'; +import { Card } from './Card.tsx'; +import { useQuery } from '@tanstack/react-query'; export default function StockIndex() { + const { data, isLoading } = useQuery({ + queryKey: ['StockIndex'], + queryFn: () => + fetch(`${import.meta.env.VITE_API_URL}/stocks/index`).then((res) => + res.json(), + ), + }); + + if (isLoading) return; + + const { KOSPI, KOSDAQ, KOSPI200, KSQ150 } = data; + return ( -
    - - +
    + + + +
    ); } diff --git a/FE/src/components/StocksDetail/Chart.tsx b/FE/src/components/StocksDetail/Chart.tsx new file mode 100644 index 00000000..5179ed1b --- /dev/null +++ b/FE/src/components/StocksDetail/Chart.tsx @@ -0,0 +1,104 @@ +import { useEffect, useRef, useState } from 'react'; +import { TiemCategory } from 'types'; +import { drawBarChart, drawCandleChart, drawLineChart } from 'utils/chart'; +import { useQuery } from '@tanstack/react-query'; +import { getStocksChartDataByCode } from 'service/stocks'; + +const categories: { label: string; value: TiemCategory }[] = [ + { label: '일', value: 'D' }, + { label: '주', value: 'W' }, + { label: '월', value: 'M' }, + { label: '년', value: 'Y' }, +]; + +type StocksDeatailChartProps = { + code: string; +}; + +export default function Chart({ code }: StocksDeatailChartProps) { + const containerRef = useRef(null); + const canvasRef = useRef(null); + const [timeCategory, setTimeCategory] = useState('D'); + + const { data, isLoading } = useQuery( + ['stocksChartData', code, timeCategory], + () => getStocksChartDataByCode(code, timeCategory), + ); + + useEffect(() => { + if (isLoading) return; + if (!data) return; + + const parent = containerRef.current; + const canvas = canvasRef.current; + + if (!canvas || !parent) return; + + const displayWidth = parent.clientWidth; + const displayHeight = parent.clientHeight; + + // 해상도 높이기 + canvas.width = displayWidth * 2; + canvas.height = displayHeight * 2; + + canvas.style.width = `${displayWidth}px`; + canvas.style.height = `${displayHeight * 0.8}px`; + + const ctx = canvas.getContext('2d'); + if (!ctx) return; + + ctx.fillStyle = 'white'; + + ctx.fillRect(0, 0, canvas.width, canvas.height); + + const padding = { + top: 20, + right: 80, + bottom: 10, + left: 20, + }; + + const chartWidth = canvas.width - padding.left - padding.right; + const chartHeight = canvas.height - padding.top - padding.bottom; + const boundary = chartHeight * 0.8; // chartHeight의 80% + + const reverseData = data.reverse(); + + const arr = reverseData.map((e) => +e.stck_oprc); + + drawLineChart(ctx, arr, 0, 0, chartWidth, boundary, padding, 0.1); + drawBarChart( + ctx, + reverseData, + 0, + boundary, + chartWidth, + chartHeight, + padding, + ); + drawCandleChart(ctx, reverseData, 0, 0, chartWidth, boundary, padding, 0.1); + }, [timeCategory, data, isLoading]); + + return ( +
    +
    +

    차트

    + +
    + +
    + ); +} diff --git a/FE/src/components/StocksDetail/Header.tsx b/FE/src/components/StocksDetail/Header.tsx new file mode 100644 index 00000000..55b26de7 --- /dev/null +++ b/FE/src/components/StocksDetail/Header.tsx @@ -0,0 +1,63 @@ +import { useQuery } from '@tanstack/react-query'; +import { getStocksByCode } from 'service/stocks'; + +type StocksDeatailHeaderProps = { + code: string; +}; + +export default function Header({ code }: StocksDeatailHeaderProps) { + const { data, isLoading } = useQuery(['stocks', code], () => + getStocksByCode(code), + ); + + if (isLoading) return; + if (!data) return; + + const { + hts_kor_isnm, + stck_prpr, + prdy_vrss, + prdy_vrss_sign, + prdy_ctrt, + hts_avls, + per, + } = data; + + const stockInfo: { label: string; value: string }[] = [ + { label: '시총', value: `${Number(hts_avls).toLocaleString()}억원` }, + { label: 'PER', value: `${per}배` }, + ]; + + const colorStyleBySign = + prdy_vrss_sign === '3' + ? '' + : prdy_vrss_sign < '3' + ? 'text-juga-red-60' + : 'text-juga-blue-40'; + + return ( +
    +
    +
    +

    {hts_kor_isnm}

    +

    {code}

    +
    +
    +

    {Number(stck_prpr).toLocaleString()}원

    +

    어제보다

    +

    + +{Number(prdy_vrss).toLocaleString()}원 ({prdy_ctrt}%) +

    +
    +
    +
    + {stockInfo.map((e, idx) => ( +
    +

    {e.label}

    +

    {e.value}

    +
    + ))} +
    +
    + ); +} diff --git a/FE/src/components/StocksDetail/PriceDataType.ts b/FE/src/components/StocksDetail/PriceDataType.ts new file mode 100644 index 00000000..b9d3302e --- /dev/null +++ b/FE/src/components/StocksDetail/PriceDataType.ts @@ -0,0 +1,18 @@ +export type PriceDataType = { + stck_cntg_hour: string; + stck_prpr: 'string'; + prdy_vrss_sign: 'string'; + cntg_vol: 'string'; + prdy_ctrt: 'string'; +}; + +export type DailyPriceDataType = { + stck_bsop_date: string; + stck_oprc: string; + stck_hgpr: string; + stck_lwpr: string; + stck_clpr: string; + acml_vol: string; + prdy_vrss_sign: string; + prdy_ctrt: string; +}; diff --git a/FE/src/components/StocksDetail/PriceSection.tsx b/FE/src/components/StocksDetail/PriceSection.tsx new file mode 100644 index 00000000..ed2edb46 --- /dev/null +++ b/FE/src/components/StocksDetail/PriceSection.tsx @@ -0,0 +1,116 @@ +import { useEffect, useRef, useState } from 'react'; +import PriceTableColumn from './PriceTableColumn.tsx'; +import PriceTableLiveCard from './PriceTableLiveCard.tsx'; +import PriceTableDayCard from './PriceTableDayCard.tsx'; +import { useParams } from 'react-router-dom'; +import { useQuery } from '@tanstack/react-query'; +import { DailyPriceDataType, PriceDataType } from './PriceDataType.ts'; +import { getTradeHistory } from 'service/getTradeHistory.ts'; + +export default function PriceSection() { + const [buttonFlag, setButtonFlag] = useState(true); + const indicatorRef = useRef(null); + const buttonRefs = useRef<(HTMLButtonElement | null)[]>([]); + const { id } = useParams(); + + const { data, isLoading } = useQuery({ + queryKey: ['detail', id, buttonFlag], + queryFn: () => getTradeHistory(id as string, buttonFlag), + refetchInterval: 1000, + cacheTime: 30000, + staleTime: 1000, + }); + + useEffect(() => { + const tmpIndex = buttonFlag ? 0 : 1; + const currentButton = buttonRefs.current[tmpIndex]; + const indicator = indicatorRef.current; + + if (currentButton && indicator) { + indicator.style.left = `${currentButton.offsetLeft}px`; + indicator.style.width = `${currentButton.offsetWidth}px`; + } + }, [buttonFlag]); + + return ( +
    +
    + 일별 · 실시간 시세 +
    +
    +
    +
    + + +
    + +
    + + + + {isLoading ? ( + + + + ) : !data ? ( + + + + ) : buttonFlag ? ( + data.map((eachData: PriceDataType, index: number) => ( + + )) + ) : ( + data.map((eachData: DailyPriceDataType, index: number) => ( + + )) + )} + +
    Loading...
    No data available
    +
    +
    +
    + ); +} diff --git a/FE/src/components/StocksDetail/PriceTableColumn.tsx b/FE/src/components/StocksDetail/PriceTableColumn.tsx new file mode 100644 index 00000000..5b8fb733 --- /dev/null +++ b/FE/src/components/StocksDetail/PriceTableColumn.tsx @@ -0,0 +1,32 @@ +type Props = { + viewMode: boolean; +}; +export default function PriceTableColumn({ viewMode }: Props) { + if (!viewMode) { + return ( + + + 일자 + 종가 + 등락률 + 거래량(주) + {/*거래대금*/} + 시가 + 고가 + 저가 + + + ); + } + return ( + + + 채결가 + 채결량(주) + 등락률 + {/*거래량(주)*/} + 시간 + + + ); +} diff --git a/FE/src/components/StocksDetail/PriceTableDayCard.tsx b/FE/src/components/StocksDetail/PriceTableDayCard.tsx new file mode 100644 index 00000000..68d5086e --- /dev/null +++ b/FE/src/components/StocksDetail/PriceTableDayCard.tsx @@ -0,0 +1,42 @@ +import { DailyPriceDataType } from './PriceDataType.ts'; + +type PriceTableDayCardProps = { + data: DailyPriceDataType; +}; + +export default function PriceTableDayCard({ data }: PriceTableDayCardProps) { + const percent = Number(data.prdy_ctrt); + const color = percent > 0 ? 'text-juga-red-60' : 'text-juga-blue-50'; + function formatTime(time: string) { + if (!time.length) return '----.--.--'; + const year = time.slice(0, 4); + const mon = time.slice(4, 6); + const day = time.slice(6, 8); + return `${year}.${mon}.${day}`; + } + return ( + + + {formatTime(data.stck_bsop_date)} + + + {Number(data.stck_clpr).toLocaleString()} + + + {percent > 0 ? `+${percent}%` : `${percent}%`} + + + {Number(data.acml_vol).toLocaleString()} + + + {Number(data.stck_oprc).toLocaleString()} + + + {Number(data.stck_hgpr).toLocaleString()} + + + {Number(data.stck_lwpr).toLocaleString()} + + + ); +} diff --git a/FE/src/components/StocksDetail/PriceTableLiveCard.tsx b/FE/src/components/StocksDetail/PriceTableLiveCard.tsx new file mode 100644 index 00000000..cbce8628 --- /dev/null +++ b/FE/src/components/StocksDetail/PriceTableLiveCard.tsx @@ -0,0 +1,30 @@ +import { PriceDataType } from './PriceDataType.ts'; + +type PriceTableLiveCardProps = { + data: PriceDataType; +}; +export default function PriceTableLiveCard({ data }: PriceTableLiveCardProps) { + const percent = Number(data.prdy_ctrt); + const color = percent > 0 ? 'text-juga-red-60' : 'text-juga-blue-50'; + function formatTime(time: string) { + const hour = time.slice(0, 2); + const min = time.slice(2, 4); + const sec = time.slice(4, 6); + return `${hour}.${min}.${sec}`; + } + return ( + + + {Number(data.stck_prpr).toLocaleString()} + + {data.cntg_vol} + + {percent > 0 ? `+${percent}` : `${percent}`} + + {/*거래량 갯수*/} + + {formatTime(data.stck_cntg_hour)} + + + ); +} diff --git a/FE/src/components/StocksDetail/TradeSection.tsx b/FE/src/components/StocksDetail/TradeSection.tsx new file mode 100644 index 00000000..64d659fe --- /dev/null +++ b/FE/src/components/StocksDetail/TradeSection.tsx @@ -0,0 +1,88 @@ +import Lottie from 'lottie-react'; +import { useEffect, useRef, useState } from 'react'; +import emptyAnimation from 'assets/emptyAnimation.json'; + +export default function TradeSection() { + const [category, setCategory] = useState<'buy' | 'sell'>('buy'); + const indicatorRef = useRef(null); + const buttonRefs = useRef<(HTMLButtonElement | null)[]>([]); + + useEffect(() => { + const idx = category === 'buy' ? 0 : 1; + const currentButton = buttonRefs.current[idx]; + const indicator = indicatorRef.current; + + if (currentButton && indicator) { + indicator.style.left = `${currentButton.offsetLeft}px`; + indicator.style.width = `${currentButton.offsetWidth}px`; + } + }, [category]); + + return ( +
    +

    주문하기

    +
    +
    + + +
    + {category === 'buy' ? ( + +
    +
    +

    매수 가격

    + +
    +
    +

    수량

    + +
    +
    + +
    + +
    +
    +

    매수 가능 금액

    +

    0원

    +
    +
    +

    총 주문 금액

    +

    0원

    +
    +
    + + + + ) : ( +
    + +
    + )} +
    + ); +} diff --git a/FE/src/components/StocksDetail/dummy.ts b/FE/src/components/StocksDetail/dummy.ts new file mode 100644 index 00000000..ec2288da --- /dev/null +++ b/FE/src/components/StocksDetail/dummy.ts @@ -0,0 +1,611 @@ +export type DummyStock = { + date: string; + open: number; + close: number; + high: number; + low: number; + volume: number; +}; + +export const dummy: DummyStock[] = [ + { + date: '2024-11-07', + open: 58000, + close: 57000, + high: 58300, + low: 57000, + volume: 13451844, + }, + { + date: '2024-11-06', + open: 56900, + close: 57500, + high: 58100, + low: 56800, + volume: 16951844, + }, + { + date: '2024-11-05', + open: 57600, + close: 57300, + high: 58000, + low: 56300, + volume: 21901844, + }, + { + date: '2024-11-04', + open: 57800, + close: 57600, + high: 58100, + low: 57200, + volume: 17291844, + }, + { + date: '2024-11-03', + open: 58600, + close: 58700, + high: 59400, + low: 58400, + volume: 15471844, + }, + { + date: '2024-10-31', + open: 59000, + close: 58300, + high: 59600, + low: 58100, + volume: 18831844, + }, + { + date: '2024-10-30', + open: 58500, + close: 59200, + high: 61200, + low: 58300, + volume: 34901844, + }, + { + date: '2024-10-29', + open: 59100, + close: 59100, + high: 59800, + low: 58600, + volume: 19181844, + }, + { + date: '2024-10-28', + open: 58000, + close: 59600, + high: 59600, + low: 57300, + volume: 27871844, + }, + { + date: '2024-10-27', + open: 55700, + close: 58100, + high: 58500, + low: 55700, + volume: 27571844, + }, + { + date: '2024-10-24', + open: 56000, + close: 55900, + high: 56900, + low: 55800, + volume: 25511844, + }, + { + date: '2024-10-23', + open: 58200, + close: 56600, + high: 58500, + low: 56600, + volume: 30701844, + }, + { + date: '2024-10-22', + open: 57500, + close: 59100, + high: 60000, + low: 57100, + volume: 27111844, + }, + { + date: '2024-10-21', + open: 58800, + close: 57700, + high: 58900, + low: 57700, + volume: 26881844, + }, + { + date: '2024-10-20', + open: 59000, + close: 59000, + high: 59600, + low: 58500, + volume: 18331844, + }, + { + date: '2024-10-17', + open: 59900, + close: 59200, + high: 60100, + low: 59100, + volume: 14171844, + }, + { + date: '2024-10-16', + open: 59400, + close: 59700, + high: 60100, + low: 59100, + volume: 23001844, + }, + { + date: '2024-10-15', + open: 59400, + close: 59500, + high: 60000, + low: 59200, + volume: 23021844, + }, + { + date: '2024-10-14', + open: 61100, + close: 61000, + high: 61400, + low: 60100, + volume: 20651844, + }, + { + date: '2024-10-13', + open: 59500, + close: 60800, + high: 61200, + low: 59400, + volume: 20371844, + }, + { + date: '2024-10-10', + open: 59100, + close: 59300, + high: 60100, + low: 59000, + volume: 28901844, + }, + { + date: '2024-10-09', + open: 60100, + close: 58900, + high: 60200, + low: 58900, + volume: 44601844, + }, + { + date: '2024-10-08', + open: 60000, + close: 60100, + high: 60500, + low: 59800, + volume: 18631844, + }, + { + date: '2024-10-07', + open: 59800, + close: 60000, + high: 60300, + low: 59500, + volume: 17651844, + }, + { + date: '2024-10-06', + open: 59500, + close: 59800, + high: 60000, + low: 59300, + volume: 16671844, + }, + { + date: '2024-10-03', + open: 59000, + close: 59200, + high: 59500, + low: 58800, + volume: 16671844, + }, + { + date: '2024-10-02', + open: 59500, + close: 59000, + high: 59800, + low: 58800, + volume: 17651844, + }, + { + date: '2024-10-01', + open: 60000, + close: 59500, + high: 60200, + low: 59300, + volume: 18631844, + }, + { + date: '2024-09-30', + open: 60500, + close: 60000, + high: 60800, + low: 59800, + volume: 19611844, + }, + { + date: '2024-09-27', + open: 61000, + close: 60500, + high: 61200, + low: 60300, + volume: 20591844, + }, + { + date: '2024-09-26', + open: 61500, + close: 61000, + high: 61800, + low: 60800, + volume: 21571844, + }, + { + date: '2024-09-25', + open: 62000, + close: 61500, + high: 62300, + low: 61300, + volume: 22551844, + }, + { + date: '2024-09-24', + open: 62500, + close: 62000, + high: 62800, + low: 61800, + volume: 23531844, + }, + { + date: '2024-09-23', + open: 63000, + close: 62500, + high: 63300, + low: 62300, + volume: 24511844, + }, + { + date: '2024-09-20', + open: 63500, + close: 63000, + high: 63800, + low: 62800, + volume: 25491844, + }, + { + date: '2024-09-19', + open: 64000, + close: 63500, + high: 64300, + low: 63300, + volume: 26471844, + }, + { + date: '2024-09-18', + open: 64500, + close: 64000, + high: 64800, + low: 63800, + volume: 27451844, + }, + { + date: '2024-09-17', + open: 65000, + close: 64500, + high: 65300, + low: 64300, + volume: 28431844, + }, + { + date: '2024-09-16', + open: 65500, + close: 65000, + high: 65800, + low: 64800, + volume: 29411844, + }, + { + date: '2024-09-13', + open: 66000, + close: 65500, + high: 66300, + low: 65300, + volume: 30391844, + }, + { + date: '2024-09-12', + open: 66500, + close: 66000, + high: 66800, + low: 65800, + volume: 31371844, + }, + { + date: '2024-09-11', + open: 67000, + close: 66500, + high: 67300, + low: 66300, + volume: 32351844, + }, + { + date: '2024-09-10', + open: 67500, + close: 67000, + high: 67800, + low: 66800, + volume: 33331844, + }, + { + date: '2024-09-09', + open: 68000, + close: 67500, + high: 68300, + low: 67300, + volume: 34311844, + }, + { + date: '2024-09-06', + open: 68500, + close: 68000, + high: 68800, + low: 67800, + volume: 35291844, + }, + { + date: '2024-09-05', + open: 69000, + close: 68500, + high: 69300, + low: 68300, + volume: 36271844, + }, + { + date: '2024-09-04', + open: 69500, + close: 69000, + high: 69800, + low: 68800, + volume: 37251844, + }, + { + date: '2024-09-03', + open: 70000, + close: 69500, + high: 70300, + low: 69300, + volume: 38231844, + }, + { + date: '2024-09-02', + open: 70500, + close: 70000, + high: 70800, + low: 69800, + volume: 39211844, + }, + { + date: '2024-08-30', + open: 71000, + close: 70500, + high: 71300, + low: 70300, + volume: 40191844, + }, + { + date: '2024-08-29', + open: 71500, + close: 71000, + high: 71800, + low: 70800, + volume: 40191844, + }, + { + date: '2024-08-28', + open: 72000, + close: 71500, + high: 72300, + low: 71300, + volume: 39171844, + }, + { + date: '2024-08-27', + open: 72500, + close: 72000, + high: 72800, + low: 71800, + volume: 38151844, + }, + { + date: '2024-08-26', + open: 73000, + close: 72500, + high: 73300, + low: 72300, + volume: 37131844, + }, + { + date: '2024-08-23', + open: 73500, + close: 73000, + high: 73800, + low: 72800, + volume: 36111844, + }, + { + date: '2024-08-22', + open: 74000, + close: 73500, + high: 74300, + low: 73300, + volume: 35091844, + }, + { + date: '2024-08-21', + open: 74500, + close: 74000, + high: 74800, + low: 73800, + volume: 34071844, + }, + { + date: '2024-08-20', + open: 75000, + close: 74500, + high: 75300, + low: 74300, + volume: 33051844, + }, + { + date: '2024-08-19', + open: 75500, + close: 75000, + high: 75800, + low: 74800, + volume: 32031844, + }, + { + date: '2024-08-16', + open: 76000, + close: 75500, + high: 76300, + low: 75300, + volume: 31011844, + }, + { + date: '2024-08-15', + open: 76500, + close: 76000, + high: 76800, + low: 75800, + volume: 29991844, + }, + { + date: '2024-08-14', + open: 77000, + close: 76500, + high: 77300, + low: 76300, + volume: 28971844, + }, + { + date: '2024-08-13', + open: 77500, + close: 77000, + high: 77800, + low: 76800, + volume: 27951844, + }, + { + date: '2024-08-12', + open: 78000, + close: 77500, + high: 78300, + low: 77300, + volume: 26931844, + }, + { + date: '2024-08-09', + open: 78500, + close: 78000, + high: 78800, + low: 77800, + volume: 25911844, + }, + { + date: '2024-08-08', + open: 79000, + close: 78500, + high: 79300, + low: 78300, + volume: 24891844, + }, + { + date: '2024-08-07', + open: 79500, + close: 79000, + high: 79800, + low: 78800, + volume: 23871844, + }, + { + date: '2024-08-06', + open: 80000, + close: 79500, + high: 80300, + low: 79300, + volume: 22851844, + }, + { + date: '2024-08-05', + open: 80500, + close: 80000, + high: 80800, + low: 79800, + volume: 21831844, + }, + { + date: '2024-08-02', + open: 81000, + close: 80500, + high: 81300, + low: 80300, + volume: 20811844, + }, + { + date: '2024-08-01', + open: 81500, + close: 81000, + high: 81800, + low: 80800, + volume: 19791844, + }, + { + date: '2024-07-31', + open: 82000, + close: 81500, + high: 82300, + low: 81300, + volume: 18771844, + }, + { + date: '2024-07-30', + open: 82500, + close: 82000, + high: 82800, + low: 81800, + volume: 17751844, + }, + { + date: '2024-07-29', + open: 83000, + close: 82500, + high: 83300, + low: 82300, + volume: 16731844, + }, + { + date: '2024-07-26', + open: 83500, + close: 83000, + high: 83800, + low: 82800, + volume: 15711844, + }, +].reverse(); diff --git a/FE/src/components/TopFive/Card.tsx b/FE/src/components/TopFive/Card.tsx index 3ca284e1..3355f272 100644 --- a/FE/src/components/TopFive/Card.tsx +++ b/FE/src/components/TopFive/Card.tsx @@ -21,21 +21,21 @@ export default function Card({ changeValue > 0 ? 'text-juga-red-60' : 'text-juga-blue-50'; return ( -
    -
    {index + 1}
    +
    +
    {index + 1}

    {name}

    - {price?.toLocaleString()} + {Number(price).toLocaleString()}

    {changeValue > 0 - ? `${changePrice}(${changeValue}%)` - : `${changePrice}(${Math.abs(changeValue)}%)`} + ? `${Number(changePrice).toLocaleString()}(${changeValue}%)` + : `${Number(changePrice).toLocaleString()}(${Math.abs(changeValue)}%)`}

    diff --git a/FE/src/components/TopFive/List.tsx b/FE/src/components/TopFive/List.tsx index cc53b801..a5690518 100644 --- a/FE/src/components/TopFive/List.tsx +++ b/FE/src/components/TopFive/List.tsx @@ -10,10 +10,8 @@ type ListProps = { export default function List({ listTitle, data, isLoading }: ListProps) { return ( -
    -
    - {listTitle} -
    +
    +
    {listTitle}
    종목
    현재가
    @@ -26,7 +24,10 @@ export default function List({ listTitle, data, isLoading }: ListProps) { )) : data.map((stock: StockData, index) => ( -
  • +
  • (buttonRefs.current[index] = el)} onClick={() => handleMarketChange(market)} - className={`relative px-2 py-2`} + className={'relative px-2 py-2'} > {market} diff --git a/FE/src/components/TopFive/TopFive.tsx b/FE/src/components/TopFive/TopFive.tsx index 90f54a63..06006305 100644 --- a/FE/src/components/TopFive/TopFive.tsx +++ b/FE/src/components/TopFive/TopFive.tsx @@ -3,6 +3,7 @@ import Nav from './Nav'; import { useSearchParams } from 'react-router-dom'; import { useQuery } from '@tanstack/react-query'; import { MarketType } from './type.ts'; +import { getTopFiveStocks } from '../../service/getTopFiveStocks.ts'; const paramsMap = { 전체: 'ALL', @@ -10,23 +11,21 @@ const paramsMap = { 코스닥: 'KOSDAQ', 코스피200: 'KOSPI200', }; - export default function TopFive() { const [searchParams] = useSearchParams(); const currentMarket = (searchParams.get('top') || '전체') as MarketType; const { data, isLoading } = useQuery({ queryKey: ['topfive', currentMarket], - queryFn: () => - fetch( - `http://223.130.151.42:3000/api/stocks/topfive?market=${paramsMap[currentMarket]}`, - ).then((res) => res.json()), + queryFn: () => getTopFiveStocks(paramsMap[currentMarket]), keepPreviousData: true, + cacheTime: 30000, + refetchInterval: 1000, }); return (