├── react-textra ├── robots.txt ├── favicon.ico ├── logo192.png ├── logo512.png ├── react-app-project │ ├── build │ │ ├── robots.txt │ │ ├── favicon.ico │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ ├── asset-manifest.json │ │ ├── static │ │ │ ├── js │ │ │ │ ├── 2.7a22ad55.chunk.js.LICENSE.txt │ │ │ │ ├── runtime-main.9bdcaf34.js │ │ │ │ ├── main.0f0f784f.chunk.js │ │ │ │ ├── 3.f770b608.chunk.js │ │ │ │ ├── main.0f0f784f.chunk.js.map │ │ │ │ ├── 3.f770b608.chunk.js.map │ │ │ │ └── runtime-main.9bdcaf34.js.map │ │ │ ├── css │ │ │ │ ├── main.1998aa6d.chunk.css │ │ │ │ └── main.1998aa6d.chunk.css.map │ │ │ └── media │ │ │ │ └── logo.6ce24c58.svg │ │ └── index.html │ ├── public │ │ ├── robots.txt │ │ ├── favicon.ico │ │ ├── logo192.png │ │ ├── logo512.png │ │ ├── manifest.json │ │ └── index.html │ ├── .gitignore │ ├── src │ │ ├── setupTests.js │ │ ├── App.test.js │ │ ├── reportWebVitals.js │ │ ├── index.css │ │ ├── index.js │ │ ├── App.css │ │ ├── logo.svg │ │ ├── App.js │ │ └── Textra.js │ ├── package.json │ └── README.md ├── .editorconfig ├── .gitignore ├── manifest.json ├── asset-manifest.json ├── static │ ├── js │ │ ├── 2.7a22ad55.chunk.js.LICENSE.txt │ │ ├── runtime-main.9bdcaf34.js │ │ ├── main.0f0f784f.chunk.js │ │ ├── 3.f770b608.chunk.js │ │ ├── main.0f0f784f.chunk.js.map │ │ ├── 3.f770b608.chunk.js.map │ │ └── runtime-main.9bdcaf34.js.map │ ├── css │ │ ├── main.1998aa6d.chunk.css │ │ └── main.1998aa6d.chunk.css.map │ └── media │ │ └── logo.6ce24c58.svg └── index.html ├── vue-progress-scroll ├── img.jpg ├── vue-progress-scroll.js └── index.html ├── triangles ├── index.html └── Triangles.js ├── progress-scroll ├── progress-scroll.js └── index.html ├── lang-detect └── index.html └── textra ├── index.html └── textra.js /react-textra/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /react-textra/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/favicon.ico -------------------------------------------------------------------------------- /react-textra/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/logo192.png -------------------------------------------------------------------------------- /react-textra/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/logo512.png -------------------------------------------------------------------------------- /vue-progress-scroll/img.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/vue-progress-scroll/img.jpg -------------------------------------------------------------------------------- /react-textra/react-app-project/build/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /react-textra/react-app-project/public/robots.txt: -------------------------------------------------------------------------------- 1 | # https://www.robotstxt.org/robotstxt.html 2 | User-agent: * 3 | Disallow: 4 | -------------------------------------------------------------------------------- /react-textra/react-app-project/build/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/build/favicon.ico -------------------------------------------------------------------------------- /react-textra/react-app-project/build/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/build/logo192.png -------------------------------------------------------------------------------- /react-textra/react-app-project/build/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/build/logo512.png -------------------------------------------------------------------------------- /react-textra/react-app-project/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/public/favicon.ico -------------------------------------------------------------------------------- /react-textra/react-app-project/public/logo192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/public/logo192.png -------------------------------------------------------------------------------- /react-textra/react-app-project/public/logo512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/hosein2398/hosein2398.github.io/master/react-textra/react-app-project/public/logo512.png -------------------------------------------------------------------------------- /react-textra/.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | indent_style = space 5 | indent_size = 2 6 | end_of_line = lf 7 | charset = utf-8 8 | trim_trailing_whitespace = true 9 | insert_final_newline = true -------------------------------------------------------------------------------- /react-textra/react-app-project/.gitignore: -------------------------------------------------------------------------------- 1 | *.log 2 | .DS_Store 3 | /node_modules 4 | /test/fixtures/node_modules 5 | .rpt2_cache 6 | /lib 7 | /dist 8 | /types 9 | /docs/api 10 | require-trace.trace 11 | .directory -------------------------------------------------------------------------------- /react-textra/react-app-project/src/setupTests.js: -------------------------------------------------------------------------------- 1 | // jest-dom adds custom jest matchers for asserting on DOM nodes. 2 | // allows you to do things like: 3 | // expect(element).toHaveTextContent(/react/i) 4 | // learn more: https://github.com/testing-library/jest-dom 5 | import '@testing-library/jest-dom'; 6 | -------------------------------------------------------------------------------- /react-textra/react-app-project/src/App.test.js: -------------------------------------------------------------------------------- 1 | import { render, screen } from '@testing-library/react'; 2 | import App from './App'; 3 | 4 | test('renders learn react link', () => { 5 | render(); 6 | const linkElement = screen.getByText(/learn react/i); 7 | expect(linkElement).toBeInTheDocument(); 8 | }); 9 | -------------------------------------------------------------------------------- /react-textra/.gitignore: -------------------------------------------------------------------------------- 1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files. 2 | 3 | # dependencies 4 | /node_modules 5 | /.pnp 6 | .pnp.js 7 | 8 | # testing 9 | /coverage 10 | 11 | # production 12 | /build 13 | 14 | # misc 15 | .DS_Store 16 | .env.local 17 | .env.development.local 18 | .env.test.local 19 | .env.production.local 20 | 21 | npm-debug.log* 22 | yarn-debug.log* 23 | yarn-error.log* 24 | -------------------------------------------------------------------------------- /react-textra/react-app-project/src/reportWebVitals.js: -------------------------------------------------------------------------------- 1 | const reportWebVitals = onPerfEntry => { 2 | if (onPerfEntry && onPerfEntry instanceof Function) { 3 | import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { 4 | getCLS(onPerfEntry) 5 | getFID(onPerfEntry) 6 | getFCP(onPerfEntry) 7 | getLCP(onPerfEntry) 8 | getTTFB(onPerfEntry) 9 | }) 10 | } 11 | } 12 | 13 | export default reportWebVitals 14 | -------------------------------------------------------------------------------- /react-textra/react-app-project/src/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 4 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 5 | sans-serif; 6 | -webkit-font-smoothing: antialiased; 7 | -moz-osx-font-smoothing: grayscale; 8 | } 9 | 10 | code { 11 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New', 12 | monospace; 13 | } 14 | -------------------------------------------------------------------------------- /react-textra/react-app-project/src/index.js: -------------------------------------------------------------------------------- 1 | import React from 'react' 2 | import ReactDOM from 'react-dom' 3 | import './index.css' 4 | import App from './App' 5 | import reportWebVitals from './reportWebVitals' 6 | 7 | ReactDOM.render( 8 | 9 | 10 | , 11 | document.getElementById('root') 12 | ) 13 | 14 | // If you want to start measuring performance in your app, pass a function 15 | // to log results (for example: reportWebVitals(console.log)) 16 | // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals 17 | reportWebVitals() 18 | -------------------------------------------------------------------------------- /react-textra/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /react-textra/react-app-project/build/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /react-textra/react-app-project/public/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "short_name": "React App", 3 | "name": "Create React App Sample", 4 | "icons": [ 5 | { 6 | "src": "favicon.ico", 7 | "sizes": "64x64 32x32 24x24 16x16", 8 | "type": "image/x-icon" 9 | }, 10 | { 11 | "src": "logo192.png", 12 | "type": "image/png", 13 | "sizes": "192x192" 14 | }, 15 | { 16 | "src": "logo512.png", 17 | "type": "image/png", 18 | "sizes": "512x512" 19 | } 20 | ], 21 | "start_url": ".", 22 | "display": "standalone", 23 | "theme_color": "#000000", 24 | "background_color": "#ffffff" 25 | } 26 | -------------------------------------------------------------------------------- /react-textra/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "main.css": "/static/css/main.1998aa6d.chunk.css", 4 | "main.js": "/static/js/main.0f0f784f.chunk.js", 5 | "main.js.map": "/static/js/main.0f0f784f.chunk.js.map", 6 | "runtime-main.js": "/static/js/runtime-main.9bdcaf34.js", 7 | "runtime-main.js.map": "/static/js/runtime-main.9bdcaf34.js.map", 8 | "static/js/2.7a22ad55.chunk.js": "/static/js/2.7a22ad55.chunk.js", 9 | "static/js/2.7a22ad55.chunk.js.map": "/static/js/2.7a22ad55.chunk.js.map", 10 | "static/js/3.f770b608.chunk.js": "/static/js/3.f770b608.chunk.js", 11 | "static/js/3.f770b608.chunk.js.map": "/static/js/3.f770b608.chunk.js.map", 12 | "index.html": "/index.html", 13 | "static/css/main.1998aa6d.chunk.css.map": "/static/css/main.1998aa6d.chunk.css.map", 14 | "static/js/2.7a22ad55.chunk.js.LICENSE.txt": "/static/js/2.7a22ad55.chunk.js.LICENSE.txt", 15 | "static/media/logo.6ce24c58.svg": "/static/media/logo.6ce24c58.svg" 16 | }, 17 | "entrypoints": [ 18 | "static/js/runtime-main.9bdcaf34.js", 19 | "static/js/2.7a22ad55.chunk.js", 20 | "static/css/main.1998aa6d.chunk.css", 21 | "static/js/main.0f0f784f.chunk.js" 22 | ] 23 | } -------------------------------------------------------------------------------- /react-textra/react-app-project/build/asset-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "main.css": "/static/css/main.1998aa6d.chunk.css", 4 | "main.js": "/static/js/main.0f0f784f.chunk.js", 5 | "main.js.map": "/static/js/main.0f0f784f.chunk.js.map", 6 | "runtime-main.js": "/static/js/runtime-main.9bdcaf34.js", 7 | "runtime-main.js.map": "/static/js/runtime-main.9bdcaf34.js.map", 8 | "static/js/2.7a22ad55.chunk.js": "/static/js/2.7a22ad55.chunk.js", 9 | "static/js/2.7a22ad55.chunk.js.map": "/static/js/2.7a22ad55.chunk.js.map", 10 | "static/js/3.f770b608.chunk.js": "/static/js/3.f770b608.chunk.js", 11 | "static/js/3.f770b608.chunk.js.map": "/static/js/3.f770b608.chunk.js.map", 12 | "index.html": "/index.html", 13 | "static/css/main.1998aa6d.chunk.css.map": "/static/css/main.1998aa6d.chunk.css.map", 14 | "static/js/2.7a22ad55.chunk.js.LICENSE.txt": "/static/js/2.7a22ad55.chunk.js.LICENSE.txt", 15 | "static/media/logo.6ce24c58.svg": "/static/media/logo.6ce24c58.svg" 16 | }, 17 | "entrypoints": [ 18 | "static/js/runtime-main.9bdcaf34.js", 19 | "static/js/2.7a22ad55.chunk.js", 20 | "static/css/main.1998aa6d.chunk.css", 21 | "static/js/main.0f0f784f.chunk.js" 22 | ] 23 | } -------------------------------------------------------------------------------- /react-textra/static/js/2.7a22ad55.chunk.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | object-assign 3 | (c) Sindre Sorhus 4 | @license MIT 5 | */ 6 | 7 | /** @license React v0.20.2 8 | * scheduler.production.min.js 9 | * 10 | * Copyright (c) Facebook, Inc. and its affiliates. 11 | * 12 | * This source code is licensed under the MIT license found in the 13 | * LICENSE file in the root directory of this source tree. 14 | */ 15 | 16 | /** @license React v17.0.2 17 | * react-dom.production.min.js 18 | * 19 | * Copyright (c) Facebook, Inc. and its affiliates. 20 | * 21 | * This source code is licensed under the MIT license found in the 22 | * LICENSE file in the root directory of this source tree. 23 | */ 24 | 25 | /** @license React v17.0.2 26 | * react-jsx-runtime.production.min.js 27 | * 28 | * Copyright (c) Facebook, Inc. and its affiliates. 29 | * 30 | * This source code is licensed under the MIT license found in the 31 | * LICENSE file in the root directory of this source tree. 32 | */ 33 | 34 | /** @license React v17.0.2 35 | * react.production.min.js 36 | * 37 | * Copyright (c) Facebook, Inc. and its affiliates. 38 | * 39 | * This source code is licensed under the MIT license found in the 40 | * LICENSE file in the root directory of this source tree. 41 | */ 42 | -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/js/2.7a22ad55.chunk.js.LICENSE.txt: -------------------------------------------------------------------------------- 1 | /* 2 | object-assign 3 | (c) Sindre Sorhus 4 | @license MIT 5 | */ 6 | 7 | /** @license React v0.20.2 8 | * scheduler.production.min.js 9 | * 10 | * Copyright (c) Facebook, Inc. and its affiliates. 11 | * 12 | * This source code is licensed under the MIT license found in the 13 | * LICENSE file in the root directory of this source tree. 14 | */ 15 | 16 | /** @license React v17.0.2 17 | * react-dom.production.min.js 18 | * 19 | * Copyright (c) Facebook, Inc. and its affiliates. 20 | * 21 | * This source code is licensed under the MIT license found in the 22 | * LICENSE file in the root directory of this source tree. 23 | */ 24 | 25 | /** @license React v17.0.2 26 | * react-jsx-runtime.production.min.js 27 | * 28 | * Copyright (c) Facebook, Inc. and its affiliates. 29 | * 30 | * This source code is licensed under the MIT license found in the 31 | * LICENSE file in the root directory of this source tree. 32 | */ 33 | 34 | /** @license React v17.0.2 35 | * react.production.min.js 36 | * 37 | * Copyright (c) Facebook, Inc. and its affiliates. 38 | * 39 | * This source code is licensed under the MIT license found in the 40 | * LICENSE file in the root directory of this source tree. 41 | */ 42 | -------------------------------------------------------------------------------- /react-textra/react-app-project/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "react-textra-tests", 3 | "version": "0.1.0", 4 | "private": true, 5 | "dependencies": { 6 | "@testing-library/jest-dom": "^5.11.4", 7 | "@testing-library/react": "^11.1.0", 8 | "@testing-library/user-event": "^12.1.10", 9 | "react": "^17.0.2", 10 | "react-dom": "^17.0.2", 11 | "react-scripts": "4.0.3", 12 | "react-syntax-highlighter": "^15.4.3", 13 | "react-textra": "file:../react-textra-lib", 14 | "web-vitals": "^1.0.1" 15 | }, 16 | "scripts": { 17 | "start": "react-scripts start", 18 | "build": "react-scripts build", 19 | "test": "react-scripts test", 20 | "eject": "react-scripts eject", 21 | "lint": "eslint ./src/*.js", 22 | "fix": "eslint ./src/*.js --fix" 23 | }, 24 | "eslintConfig": { 25 | "extends": [ 26 | "standard", 27 | "react-app", 28 | "react-app/jest" 29 | ] 30 | }, 31 | "browserslist": { 32 | "production": [ 33 | ">0.2%", 34 | "not dead", 35 | "not op_mini all" 36 | ], 37 | "development": [ 38 | "last 1 chrome version", 39 | "last 1 firefox version", 40 | "last 1 safari version" 41 | ] 42 | }, 43 | "devDependencies": { 44 | "eslint-config-standard": "^16.0.2", 45 | "eslint-plugin-import": "^2.22.1", 46 | "eslint-plugin-node": "^11.1.0", 47 | "eslint-plugin-promise": "^5.1.0" 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /react-textra/static/css/main.1998aa6d.chunk.css: -------------------------------------------------------------------------------- 1 | body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700}.flex{min-height:100vh;background-color:#3c224a;color:#faebd7;display:flex}.flex .flex-item{flex:0.5 1;display:flex;align-items:center;justify-content:center}.title{font-size:66px}.button,.detail{font-size:24px}.button{padding:10px 20px;text-decoration:none;display:inline-block;border-radius:10px;color:#faebd7;box-shadow:-2px 2px 0 3px #e8e8e8;margin-top:40px}.code-wrapper{text-align:left;box-shadow:-7px 7px 25px 0 rgba(28,28,28,.49019607843137253);margin-top:50px}.select-wrapper{margin-top:120px}.select-wrapper pre{padding:20px 160px 20px 20px!important;border-radius:10px}.textra-wrapper{text-align:center;font-size:45px;min-width:300px}.select{height:50px;background:#faebd7;width:150px;padding:10px;border-radius:8px;margin-left:16px;border:none;box-shadow:-7px 7px 25px 0 rgba(28,28,28,.49019607843137253)}.select option{font-weight:700;padding:5px}.chooseText{font-size:24px}@media screen and (max-width:850px){.flex .flex-item{flex:1 1;margin:100px 0}.flex{flex-wrap:wrap;flex-direction:column}}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} 2 | /*# sourceMappingURL=main.1998aa6d.chunk.css.map */ -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/css/main.1998aa6d.chunk.css: -------------------------------------------------------------------------------- 1 | body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto","Oxygen","Ubuntu","Cantarell","Fira Sans","Droid Sans","Helvetica Neue",sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,"Courier New",monospace}.App{text-align:center}.App-logo{height:40vmin;pointer-events:none}@media (prefers-reduced-motion:no-preference){.App-logo{animation:App-logo-spin 20s linear infinite}}.App-header{display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:700}.flex{min-height:100vh;background-color:#3c224a;color:#faebd7;display:flex}.flex .flex-item{flex:0.5 1;display:flex;align-items:center;justify-content:center}.title{font-size:66px}.button,.detail{font-size:24px}.button{padding:10px 20px;text-decoration:none;display:inline-block;border-radius:10px;color:#faebd7;box-shadow:-2px 2px 0 3px #e8e8e8;margin-top:40px}.code-wrapper{text-align:left;box-shadow:-7px 7px 25px 0 rgba(28,28,28,.49019607843137253);margin-top:50px}.select-wrapper{margin-top:120px}.select-wrapper pre{padding:20px 160px 20px 20px!important;border-radius:10px}.textra-wrapper{text-align:center;font-size:45px;min-width:300px}.select{height:50px;background:#faebd7;width:150px;padding:10px;border-radius:8px;margin-left:16px;border:none;box-shadow:-7px 7px 25px 0 rgba(28,28,28,.49019607843137253)}.select option{font-weight:700;padding:5px}.chooseText{font-size:24px}@media screen and (max-width:850px){.flex .flex-item{flex:1 1;margin:100px 0}.flex{flex-wrap:wrap;flex-direction:column}}.App-link{color:#61dafb}@keyframes App-logo-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}} 2 | /*# sourceMappingURL=main.1998aa6d.chunk.css.map */ -------------------------------------------------------------------------------- /react-textra/react-app-project/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 12 | 13 | 17 | 18 | 27 | React App 28 | 29 | 30 | 31 |
32 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /react-textra/static/js/runtime-main.9bdcaf34.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(t){for(var n,a,i=t[0],c=t[1],l=t[2],f=0,p=[];f"})}),Object(d.jsx)("div",{children:Object(d.jsx)("a",{href:"https://github.com/hosein2398/react-textra",className:"button",children:"Go to docs"})})]})}),Object(d.jsx)("div",{className:"flex-item",children:Object(d.jsxs)("div",{children:[Object(d.jsx)("div",{className:"textra-wrapper",children:Object(d.jsx)(j.a,{effect:c,data:["Swell","Becoming","Nifty","Pleasant","Kind","Charming","Winsome","Simpatico","Favorable"]})}),Object(d.jsx)("div",{className:"select-wrapper",children:Object(d.jsxs)("div",{children:[Object(d.jsx)("span",{className:"chooseText",children:"Choose an effect:"}),Object(d.jsxs)("select",{className:"select",onChange:function(e){console.log(e.target.value),n(e.target.value)},children:[Object(d.jsx)("option",{value:"rightLeft",children:"rightLeft"}),Object(d.jsx)("option",{value:"leftRight",children:"leftRight"}),Object(d.jsx)("option",{value:"topDown",children:"topDown"}),Object(d.jsx)("option",{value:"downTop",children:"downTop"}),Object(d.jsx)("option",{value:"flash",children:"flash"}),Object(d.jsx)("option",{value:"flip",children:"flip"}),Object(d.jsx)("option",{value:"scale",children:"scale"}),Object(d.jsx)("option",{value:"press",children:"press"})]})]})})]})})]})})},x=function(e){e&&e instanceof Function&&c.e(3).then(c.bind(null,246)).then((function(t){var c=t.getCLS,s=t.getFID,n=t.getFCP,a=t.getLCP,i=t.getTTFB;c(e),s(e),n(e),a(e),i(e)}))};i.a.render(Object(d.jsx)(n.a.StrictMode,{children:Object(d.jsx)(h,{})}),document.getElementById("root")),x()}},[[241,1,2]]]); 2 | //# sourceMappingURL=main.0f0f784f.chunk.js.map -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/js/main.0f0f784f.chunk.js: -------------------------------------------------------------------------------- 1 | (this["webpackJsonpreact-textra-tests"]=this["webpackJsonpreact-textra-tests"]||[]).push([[0],{19:function(e,t,c){},20:function(e,t,c){},241:function(e,t,c){"use strict";c.r(t);var s=c(0),n=c.n(s),a=c(8),i=c.n(a),l=(c(19),c(13)),o=c(245),r=c(244),j=c(14),d=(c.p,c(20),c(1));var h=function(){var e=Object(s.useState)("rightLeft"),t=Object(l.a)(e,2),c=t[0],n=t[1];return console.log(c),Object(d.jsx)("div",{className:"App",children:Object(d.jsxs)("div",{className:"flex",children:[Object(d.jsx)("div",{className:"flex-item",children:Object(d.jsxs)("div",{children:[Object(d.jsx)("h1",{className:"title",children:"react-textra"}),Object(d.jsx)("p",{className:"detail",children:"Slide your text in React application easily"}),Object(d.jsx)("div",{className:"code-wrapper",children:Object(d.jsx)(o.a,{language:"jsx",style:r.a,children:""})}),Object(d.jsx)("div",{children:Object(d.jsx)("a",{href:"https://github.com/hosein2398/react-textra",className:"button",children:"Go to docs"})})]})}),Object(d.jsx)("div",{className:"flex-item",children:Object(d.jsxs)("div",{children:[Object(d.jsx)("div",{className:"textra-wrapper",children:Object(d.jsx)(j.a,{effect:c,data:["Swell","Becoming","Nifty","Pleasant","Kind","Charming","Winsome","Simpatico","Favorable"]})}),Object(d.jsx)("div",{className:"select-wrapper",children:Object(d.jsxs)("div",{children:[Object(d.jsx)("span",{className:"chooseText",children:"Choose an effect:"}),Object(d.jsxs)("select",{className:"select",onChange:function(e){console.log(e.target.value),n(e.target.value)},children:[Object(d.jsx)("option",{value:"rightLeft",children:"rightLeft"}),Object(d.jsx)("option",{value:"leftRight",children:"leftRight"}),Object(d.jsx)("option",{value:"topDown",children:"topDown"}),Object(d.jsx)("option",{value:"downTop",children:"downTop"}),Object(d.jsx)("option",{value:"flash",children:"flash"}),Object(d.jsx)("option",{value:"flip",children:"flip"}),Object(d.jsx)("option",{value:"scale",children:"scale"}),Object(d.jsx)("option",{value:"press",children:"press"})]})]})})]})})]})})},x=function(e){e&&e instanceof Function&&c.e(3).then(c.bind(null,246)).then((function(t){var c=t.getCLS,s=t.getFID,n=t.getFCP,a=t.getLCP,i=t.getTTFB;c(e),s(e),n(e),a(e),i(e)}))};i.a.render(Object(d.jsx)(n.a.StrictMode,{children:Object(d.jsx)(h,{})}),document.getElementById("root")),x()}},[[241,1,2]]]); 2 | //# sourceMappingURL=main.0f0f784f.chunk.js.map -------------------------------------------------------------------------------- /react-textra/react-app-project/src/App.css: -------------------------------------------------------------------------------- 1 | .App { 2 | text-align: center; 3 | } 4 | 5 | .App-logo { 6 | height: 40vmin; 7 | pointer-events: none; 8 | } 9 | 10 | @media (prefers-reduced-motion: no-preference) { 11 | .App-logo { 12 | animation: App-logo-spin infinite 20s linear; 13 | } 14 | } 15 | 16 | .App-header { 17 | display: flex; 18 | flex-direction: column; 19 | align-items: center; 20 | justify-content: center; 21 | font-weight: bold; 22 | } 23 | 24 | .flex{ 25 | min-height: 100vh; 26 | background-color: #3c224a; 27 | color: antiquewhite; 28 | display: flex; 29 | /* font-size: calc(32px + 2vmin); */ 30 | } 31 | .flex .flex-item{ 32 | flex: 0.5; 33 | display: flex; 34 | align-items: center; 35 | justify-content: center; 36 | } 37 | 38 | .title{ 39 | font-size: 66px; 40 | } 41 | 42 | .detail{ 43 | font-size: 24px; 44 | } 45 | 46 | .button{ 47 | /* background-color: slateblue; */ 48 | padding: 10px 20px; 49 | text-decoration: none; 50 | display: inline-block; 51 | border-radius: 10px; 52 | font-size: 24px; 53 | color: antiquewhite; 54 | box-shadow: -2px 2px 0px 3px #e8e8e8; 55 | margin-top: 40px; 56 | } 57 | 58 | .code-wrapper{ 59 | text-align: left; 60 | box-shadow: -7px 7px 25px 0px #1c1c1c7d; 61 | margin-top: 50px; 62 | } 63 | 64 | .select-wrapper{ 65 | margin-top: 120px; 66 | } 67 | 68 | .select-wrapper pre{ 69 | padding: 20px 20px !important; 70 | padding-right: 160px !important; 71 | border-radius: 10px; 72 | } 73 | 74 | .textra-wrapper{ 75 | text-align: center; 76 | font-size: 45px; 77 | min-width: 300px; 78 | } 79 | 80 | .select{ 81 | height: 50px; 82 | background: antiquewhite; 83 | width: 150px; 84 | padding: 10px; 85 | border-radius: 8px; 86 | margin-left: 16px; 87 | border: none; 88 | box-shadow: -7px 7px 25px 0px #1c1c1c7d; 89 | } 90 | .select option{ 91 | font-weight: bold; 92 | padding: 5px; 93 | } 94 | 95 | .chooseText{ 96 | font-size: 24px; 97 | } 98 | 99 | @media screen and (max-width: 850px) { 100 | .flex .flex-item{ 101 | flex: 1; 102 | margin: 100px 0; 103 | } 104 | .flex{ 105 | flex-wrap: wrap; 106 | flex-direction: column; 107 | } 108 | } 109 | .App-link { 110 | color: #61dafb; 111 | } 112 | 113 | @keyframes App-logo-spin { 114 | from { 115 | transform: rotate(0deg); 116 | } 117 | to { 118 | transform: rotate(360deg); 119 | } 120 | } 121 | -------------------------------------------------------------------------------- /triangles/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Document 9 | 10 | 11 | 37 | 38 | 39 |
40 | Choose another effect: 41 | 50 |

51 | 52 | 55 | 56 |
57 | 58 | 59 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /react-textra/react-app-project/src/logo.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /react-textra/static/media/logo.6ce24c58.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/media/logo.6ce24c58.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /react-textra/index.html: -------------------------------------------------------------------------------- 1 | React App
2 | -------------------------------------------------------------------------------- /react-textra/react-app-project/build/index.html: -------------------------------------------------------------------------------- 1 | React App
-------------------------------------------------------------------------------- /react-textra/react-app-project/src/App.js: -------------------------------------------------------------------------------- 1 | import { useState, useEffect } from 'react' 2 | import SyntaxHighlighter from 'react-syntax-highlighter' 3 | import { shadesOfPurple } from 'react-syntax-highlighter/dist/esm/styles/hljs' 4 | import Textra from 'react-textra' 5 | import logo from './logo.svg' 6 | import './App.css' 7 | 8 | function App () { 9 | const [effect, setEffect] = useState('rightLeft') 10 | console.log(effect) 11 | const code = `` 17 | return ( 18 |
19 | {/*
*/} 20 |
21 |
22 |
23 |

24 | react-textra 25 |

26 |

27 | Slide your text in React application easily 28 |

29 |
30 | 31 | {code} 32 | 33 |
34 |
35 | Go to docs 36 |
37 |
38 |
39 |
40 |
41 |
42 | 43 |
44 |
45 |
46 | 47 | Choose an effect: 48 | 49 | 75 |
76 |
77 | 78 |
79 |
80 |
81 | {/*
*/} 82 |
83 | ) 84 | } 85 | 86 | export default App 87 | -------------------------------------------------------------------------------- /react-textra/static/css/main.1998aa6d.chunk.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://src/index.css","webpack://src/App.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCZA,KACE,iBACF,CAEA,UACE,aAAc,CACd,mBACF,CAEA,8CACE,UACE,2CACF,CACF,CAEA,YACE,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,eACF,CAEA,MACE,gBAAiB,CACjB,wBAAyB,CACzB,aAAmB,CACnB,YAEF,CACA,iBACE,UAAS,CACT,YAAa,CACb,kBAAmB,CACnB,sBACF,CAEA,OACE,cACF,CAMA,gBAHE,cAaF,CAVA,QAEE,iBAAkB,CAClB,oBAAqB,CACrB,oBAAqB,CACrB,kBAAmB,CAEnB,aAAmB,CACnB,iCAAoC,CACpC,eACF,CAEA,cACE,eAAgB,CAChB,4DAAuC,CACvC,eACF,CAEA,gBACE,gBACF,CAEA,oBAEE,sCAA+B,CAC/B,kBACF,CAEA,gBACE,iBAAkB,CAClB,cAAe,CACf,eACF,CAEA,QACE,WAAY,CACZ,kBAAwB,CACxB,WAAY,CACZ,YAAa,CACb,iBAAkB,CAClB,gBAAiB,CACjB,WAAY,CACZ,4DACF,CACA,eACE,eAAiB,CACjB,WACF,CAEA,YACE,cACF,CAEA,oCACE,iBACE,QAAO,CACP,cACF,CACA,MACE,cAAe,CACf,qBACF,CACF,CACA,UACE,aACF,CAEA,yBACE,GACE,sBACF,CACA,GACE,uBACF,CACF","file":"main.1998aa6d.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n text-align: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n}\n\n.flex{\n min-height: 100vh;\n background-color: #3c224a;\n color: antiquewhite;\n display: flex;\n /* font-size: calc(32px + 2vmin); */\n}\n.flex .flex-item{\n flex: 0.5;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.title{\n font-size: 66px;\n}\n\n.detail{\n font-size: 24px;\n}\n\n.button{\n /* background-color: slateblue; */\n padding: 10px 20px;\n text-decoration: none;\n display: inline-block;\n border-radius: 10px;\n font-size: 24px;\n color: antiquewhite;\n box-shadow: -2px 2px 0px 3px #e8e8e8;\n margin-top: 40px;\n}\n\n.code-wrapper{\n text-align: left;\n box-shadow: -7px 7px 25px 0px #1c1c1c7d;\n margin-top: 50px;\n}\n\n.select-wrapper{\n margin-top: 120px;\n}\n\n.select-wrapper pre{\n padding: 20px 20px !important;\n padding-right: 160px !important;\n border-radius: 10px;\n}\n\n.textra-wrapper{\n text-align: center;\n font-size: 45px;\n min-width: 300px;\n}\n\n.select{\n height: 50px;\n background: antiquewhite;\n width: 150px;\n padding: 10px;\n border-radius: 8px;\n margin-left: 16px;\n border: none;\n box-shadow: -7px 7px 25px 0px #1c1c1c7d;\n}\n.select option{\n font-weight: bold;\n padding: 5px;\n}\n\n.chooseText{\n font-size: 24px;\n}\n\n@media screen and (max-width: 850px) {\n .flex .flex-item{\n flex: 1;\n margin: 100px 0;\n }\n .flex{\n flex-wrap: wrap;\n flex-direction: column;\n }\n}\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"]} -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/css/main.1998aa6d.chunk.css.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["webpack://src/index.css","webpack://src/App.css"],"names":[],"mappings":"AAAA,KACE,QAAS,CACT,mJAEY,CACZ,kCAAmC,CACnC,iCACF,CAEA,KACE,yEAEF,CCZA,KACE,iBACF,CAEA,UACE,aAAc,CACd,mBACF,CAEA,8CACE,UACE,2CACF,CACF,CAEA,YACE,YAAa,CACb,qBAAsB,CACtB,kBAAmB,CACnB,sBAAuB,CACvB,eACF,CAEA,MACE,gBAAiB,CACjB,wBAAyB,CACzB,aAAmB,CACnB,YAEF,CACA,iBACE,UAAS,CACT,YAAa,CACb,kBAAmB,CACnB,sBACF,CAEA,OACE,cACF,CAMA,gBAHE,cAaF,CAVA,QAEE,iBAAkB,CAClB,oBAAqB,CACrB,oBAAqB,CACrB,kBAAmB,CAEnB,aAAmB,CACnB,iCAAoC,CACpC,eACF,CAEA,cACE,eAAgB,CAChB,4DAAuC,CACvC,eACF,CAEA,gBACE,gBACF,CAEA,oBAEE,sCAA+B,CAC/B,kBACF,CAEA,gBACE,iBAAkB,CAClB,cAAe,CACf,eACF,CAEA,QACE,WAAY,CACZ,kBAAwB,CACxB,WAAY,CACZ,YAAa,CACb,iBAAkB,CAClB,gBAAiB,CACjB,WAAY,CACZ,4DACF,CACA,eACE,eAAiB,CACjB,WACF,CAEA,YACE,cACF,CAEA,oCACE,iBACE,QAAO,CACP,cACF,CACA,MACE,cAAe,CACf,qBACF,CACF,CACA,UACE,aACF,CAEA,yBACE,GACE,sBACF,CACA,GACE,uBACF,CACF","file":"main.1998aa6d.chunk.css","sourcesContent":["body {\n margin: 0;\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',\n 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',\n sans-serif;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',\n monospace;\n}\n",".App {\n text-align: center;\n}\n\n.App-logo {\n height: 40vmin;\n pointer-events: none;\n}\n\n@media (prefers-reduced-motion: no-preference) {\n .App-logo {\n animation: App-logo-spin infinite 20s linear;\n }\n}\n\n.App-header {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n font-weight: bold;\n}\n\n.flex{\n min-height: 100vh;\n background-color: #3c224a;\n color: antiquewhite;\n display: flex;\n /* font-size: calc(32px + 2vmin); */\n}\n.flex .flex-item{\n flex: 0.5;\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.title{\n font-size: 66px;\n}\n\n.detail{\n font-size: 24px;\n}\n\n.button{\n /* background-color: slateblue; */\n padding: 10px 20px;\n text-decoration: none;\n display: inline-block;\n border-radius: 10px;\n font-size: 24px;\n color: antiquewhite;\n box-shadow: -2px 2px 0px 3px #e8e8e8;\n margin-top: 40px;\n}\n\n.code-wrapper{\n text-align: left;\n box-shadow: -7px 7px 25px 0px #1c1c1c7d;\n margin-top: 50px;\n}\n\n.select-wrapper{\n margin-top: 120px;\n}\n\n.select-wrapper pre{\n padding: 20px 20px !important;\n padding-right: 160px !important;\n border-radius: 10px;\n}\n\n.textra-wrapper{\n text-align: center;\n font-size: 45px;\n min-width: 300px;\n}\n\n.select{\n height: 50px;\n background: antiquewhite;\n width: 150px;\n padding: 10px;\n border-radius: 8px;\n margin-left: 16px;\n border: none;\n box-shadow: -7px 7px 25px 0px #1c1c1c7d;\n}\n.select option{\n font-weight: bold;\n padding: 5px;\n}\n\n.chooseText{\n font-size: 24px;\n}\n\n@media screen and (max-width: 850px) {\n .flex .flex-item{\n flex: 1;\n margin: 100px 0;\n }\n .flex{\n flex-wrap: wrap;\n flex-direction: column;\n }\n}\n.App-link {\n color: #61dafb;\n}\n\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n"]} -------------------------------------------------------------------------------- /progress-scroll/progress-scroll.js: -------------------------------------------------------------------------------- 1 | (function (window) { 2 | ProgressScroll = function (args) { 3 | 4 | var the_scroll = document.createElement('div'); // default tag 5 | // adding some styels to elemet 6 | if (args.height) { 7 | the_scroll.style.height = args.height; 8 | } else { 9 | the_scroll.style.height = '10px'; 10 | } 11 | var element_bound = document.querySelector(args.element).getBoundingClientRect(); 12 | if (element_bound.top < 0) { 13 | the_scroll.style.width = '10px'; 14 | } 15 | the_scroll.style.position = 'fixed'; 16 | the_scroll.style.top = 0; 17 | the_scroll.style.left = 0; 18 | if (args.color) { 19 | the_scroll.style.background = args.color; 20 | } else { 21 | the_scroll.style.background = "tomato"; 22 | } 23 | var body = document.body; 24 | body.insertBefore(the_scroll, body.firstChild); // inserting the div as first child of the body 25 | var previous_scroll_top; 26 | if (args.element) { 27 | var the_element = document.querySelector(args.element); 28 | var the_element_height = the_element.clientHeight; 29 | } 30 | var ratio; 31 | if (args.beforeRun) { 32 | args.beforeRun(); 33 | } 34 | var el_top_count = 0; 35 | var element_start_top; 36 | window.addEventListener("scroll", function () { 37 | the_element = document.querySelector(args.element); 38 | the_element_height = the_element.clientHeight; 39 | element_bound = document.querySelector(args.element).getBoundingClientRect(); 40 | if (element_bound.top < 0) { 41 | // if (el_top_count < 1) { 42 | element_start_top = document.body.scrollTop - Math.abs(element_bound.top); 43 | // } 44 | // console.log(-element_bound.top) 45 | // el_top_count++; 46 | if (args.element) { 47 | var body_scroll_top = document.body.scrollTop - element_start_top; 48 | ratio = parseInt((body_scroll_top / the_element_height) * 100); 49 | } else { 50 | ratio = parseInt((body_scroll_top / document.body.clientHeight) * 100); 51 | } 52 | console.log(ratio) 53 | the_scroll.style.display = 'block'; 54 | if (document.body.scrollTop < previous_scroll_top) { 55 | the_scroll.style.width = ratio + '%'; 56 | } else { 57 | the_scroll.style.width = ratio + '%'; 58 | } 59 | } else { 60 | the_scroll.style.display = 'none'; 61 | } 62 | if (args.onCompelete) { 63 | if (ratio + 20 >= 100) { 64 | args.onCompelete(); 65 | } 66 | } 67 | previous_scroll_top = document.body.scrollTop; 68 | }); 69 | } 70 | })(window); -------------------------------------------------------------------------------- /react-textra/react-app-project/README.md: -------------------------------------------------------------------------------- 1 | # Getting Started with Create React App 2 | 3 | This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). 4 | 5 | ## Available Scripts 6 | 7 | In the project directory, you can run: 8 | 9 | ### `yarn start` 10 | 11 | Runs the app in the development mode.\ 12 | Open [http://localhost:3000](http://localhost:3000) to view it in the browser. 13 | 14 | The page will reload if you make edits.\ 15 | You will also see any lint errors in the console. 16 | 17 | ### `yarn test` 18 | 19 | Launches the test runner in the interactive watch mode.\ 20 | See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. 21 | 22 | ### `yarn build` 23 | 24 | Builds the app for production to the `build` folder.\ 25 | It correctly bundles React in production mode and optimizes the build for the best performance. 26 | 27 | The build is minified and the filenames include the hashes.\ 28 | Your app is ready to be deployed! 29 | 30 | See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. 31 | 32 | ### `yarn eject` 33 | 34 | **Note: this is a one-way operation. Once you `eject`, you can’t go back!** 35 | 36 | If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. 37 | 38 | Instead, it will copy all the configuration files and the transitive dependencies (webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. 39 | 40 | You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. 41 | 42 | ## Learn More 43 | 44 | You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). 45 | 46 | To learn React, check out the [React documentation](https://reactjs.org/). 47 | 48 | ### Code Splitting 49 | 50 | This section has moved here: [https://facebook.github.io/create-react-app/docs/code-splitting](https://facebook.github.io/create-react-app/docs/code-splitting) 51 | 52 | ### Analyzing the Bundle Size 53 | 54 | This section has moved here: [https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size](https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size) 55 | 56 | ### Making a Progressive Web App 57 | 58 | This section has moved here: [https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app](https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app) 59 | 60 | ### Advanced Configuration 61 | 62 | This section has moved here: [https://facebook.github.io/create-react-app/docs/advanced-configuration](https://facebook.github.io/create-react-app/docs/advanced-configuration) 63 | 64 | ### Deployment 65 | 66 | This section has moved here: [https://facebook.github.io/create-react-app/docs/deployment](https://facebook.github.io/create-react-app/docs/deployment) 67 | 68 | ### `yarn build` fails to minify 69 | 70 | This section has moved here: [https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify](https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify) 71 | -------------------------------------------------------------------------------- /lang-detect/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | lang-detector 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 16 | 18 | 19 | 20 | 21 | 22 |

lang-detector 23 |

24 | 25 |
26 | 27 | 28 | 29 |

 30 | 	
31 | 32 |
Toni Sučić ©
33 | 34 | 135 | 136 | 137 | -------------------------------------------------------------------------------- /react-textra/static/js/3.f770b608.chunk.js: -------------------------------------------------------------------------------- 1 | (this["webpackJsonpreact-textra-tests"]=this["webpackJsonpreact-textra-tests"]||[]).push([[3],{246:function(t,e,n){"use strict";n.r(e),n.d(e,"getCLS",(function(){return m})),n.d(e,"getFCP",(function(){return g})),n.d(e,"getFID",(function(){return F})),n.d(e,"getLCP",(function(){return k})),n.d(e,"getTTFB",(function(){return C}));var i,a,r,o,c=function(t,e){return{name:t,value:void 0===e?-1:e,delta:0,entries:[],id:"v1-".concat(Date.now(),"-").concat(Math.floor(8999999999999*Math.random())+1e12)}},u=function(t,e){try{if(PerformanceObserver.supportedEntryTypes.includes(t)){var n=new PerformanceObserver((function(t){return t.getEntries().map(e)}));return n.observe({type:t,buffered:!0}),n}}catch(t){}},s=function(t,e){var n=function n(i){"pagehide"!==i.type&&"hidden"!==document.visibilityState||(t(i),e&&(removeEventListener("visibilitychange",n,!0),removeEventListener("pagehide",n,!0)))};addEventListener("visibilitychange",n,!0),addEventListener("pagehide",n,!0)},f=function(t){addEventListener("pageshow",(function(e){e.persisted&&t(e)}),!0)},d="function"==typeof WeakSet?new WeakSet:new Set,p=function(t,e,n){var i;return function(){e.value>=0&&(n||d.has(e)||"hidden"===document.visibilityState)&&(e.delta=e.value-(i||0),(e.delta||void 0===i)&&(i=e.value,t(e)))}},m=function(t,e){var n,i=c("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=p(t,i,e),s((function(){r.takeRecords().map(a),n()})),f((function(){i=c("CLS",0),n=p(t,i,e)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(t){var e=t.timeStamp;v=e}),!0)},S=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},g=function(t,e){var n,i=S(),a=c("FCP"),r=u("paint",(function(t){"first-contentful-paint"===t.name&&(r&&r.disconnect(),t.startTime=0&&a1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,e){var n=function(){E(t,e),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,y),removeEventListener("pointercancel",i,y)};addEventListener("pointerup",n,y),addEventListener("pointercancel",i,y)}(e,t):E(e,t)}},b=function(t){["mousedown","keydown","touchstart","pointerdown"].forEach((function(e){return t(e,T,y)}))},F=function(t,e){var n,r=S(),m=c("FID"),v=function(t){t.startTime=0&&(n||d.has(e)||"hidden"===document.visibilityState)&&(e.delta=e.value-(i||0),(e.delta||void 0===i)&&(i=e.value,t(e)))}},m=function(t,e){var n,i=c("CLS",0),a=function(t){t.hadRecentInput||(i.value+=t.value,i.entries.push(t),n())},r=u("layout-shift",a);r&&(n=p(t,i,e),s((function(){r.takeRecords().map(a),n()})),f((function(){i=c("CLS",0),n=p(t,i,e)})))},v=-1,l=function(){return"hidden"===document.visibilityState?0:1/0},h=function(){s((function(t){var e=t.timeStamp;v=e}),!0)},S=function(){return v<0&&(v=l(),h(),f((function(){setTimeout((function(){v=l(),h()}),0)}))),{get timeStamp(){return v}}},g=function(t,e){var n,i=S(),a=c("FCP"),r=u("paint",(function(t){"first-contentful-paint"===t.name&&(r&&r.disconnect(),t.startTime=0&&a1e12?new Date:performance.now())-t.timeStamp;"pointerdown"==t.type?function(t,e){var n=function(){E(t,e),a()},i=function(){a()},a=function(){removeEventListener("pointerup",n,y),removeEventListener("pointercancel",i,y)};addEventListener("pointerup",n,y),addEventListener("pointercancel",i,y)}(e,t):E(e,t)}},b=function(t){["mousedown","keydown","touchstart","pointerdown"].forEach((function(e){return t(e,T,y)}))},F=function(t,e){var n,r=S(),m=c("FID"),v=function(t){t.startTime window.innerWidth && counter < 14) { 73 | counter++; 74 | // alert("alerted!"); 75 | if (overarray[12]) { 76 | y_position += overarray[12].y_position; 77 | } else { 78 | y_position += 50; 79 | } 80 | start_x_1 = -35; 81 | start_x_2 = -70; 82 | start_x_3 = 0; 83 | start_x_1_even = -70; 84 | start_x_2_even = -105; 85 | start_x_3_even = -35; 86 | 87 | } 88 | 89 | } else if (i !== 2) { 90 | $.beginPath(); 91 | $.fillStyle = "rgba(" + parseInt(Math.random() * 255) + "," + parseInt(Math.random() * 92 | 255) + 93 | "," + 94 | parseInt(Math.random() * 255) + 95 | ",0.16)"; 96 | 97 | $.moveTo(start_x_1_even + overarray[6], overarray[9] + y_position); 98 | $.lineTo(start_x_2_even + overarray[7], overarray[10] + y_position); 99 | $.lineTo(start_x_3_even + overarray[8], overarray[11] + y_position); 100 | $.fill(); 101 | $.closePath(); 102 | start_x_1_even += 75; 103 | start_x_2_even += 75; 104 | start_x_3_even += 75; 105 | 106 | 107 | 108 | } 109 | 110 | } 111 | } 112 | window.addEventListener('resize', function () { 113 | c.width = window.innerWidth; 114 | c.height = window.innerHeight; 115 | create() 116 | }, false); 117 | create(); 118 | } 119 | })(undefined); -------------------------------------------------------------------------------- /react-textra/static/js/main.0f0f784f.chunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["logo.svg","App.js","reportWebVitals.js","index.js"],"names":["App","useState","effect","setEffect","console","log","className","language","style","shadesOfPurple","href","Textra","data","onChange","e","target","value","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"kQAAe,I,YCqFAA,MA9Ef,WAAiB,IAAD,EACcC,mBAAS,aADvB,mBACPC,EADO,KACCC,EADD,KASd,OAPAC,QAAQC,IAAIH,GAQV,qBAAKI,UAAU,MAAf,SAEI,sBAAKA,UAAU,OAAf,UACE,qBAAKA,UAAU,YAAf,SACE,gCACE,oBAAIA,UAAU,QAAd,0BAGA,mBAAGA,UAAU,SAAb,yDAGA,qBAAKA,UAAU,eAAf,SACA,cAAC,IAAD,CAAmBC,SAAS,MAAMC,MAAOC,IAAzC,SAnBF,iHAuBA,8BACE,mBAAGC,KAAK,6CAA6CJ,UAAU,SAA/D,+BAIJ,qBAAKA,UAAU,YAAf,SACE,gCACE,qBAAKA,UAAU,iBAAf,SACE,cAACK,EAAA,EAAD,CAAQT,OAAQA,EAAQU,KAAM,CAAC,QAAS,WAAY,QAAS,WAAY,OAAQ,WAAY,UAAW,YAAa,iBAEvH,qBAAKN,UAAU,iBAAf,SACA,gCACE,sBAAMA,UAAU,aAAhB,+BAGE,yBAAQA,UAAU,SAASO,SAAU,SAAAC,GAAOV,QAAQC,IAAIS,EAAEC,OAAOC,OAAQb,EAAUW,EAAEC,OAAOC,QAA5F,UACE,wBAAQA,MAAM,YAAd,uBAGA,wBAAQA,MAAM,YAAd,uBAGA,wBAAQA,MAAM,UAAd,qBAGA,wBAAQA,MAAM,UAAd,qBAGA,wBAAQA,MAAM,QAAd,mBAGA,wBAAQA,MAAM,OAAd,kBAGA,wBAAQA,MAAM,QAAd,mBAGA,wBAAQA,MAAM,QAAd,sCC1DLC,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,OCDdQ,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,SAM1Bb,M","file":"static/js/main.0f0f784f.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo.6ce24c58.svg\";","import { useState, useEffect } from 'react'\nimport SyntaxHighlighter from 'react-syntax-highlighter'\nimport { shadesOfPurple } from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport Textra from 'react-textra'\nimport logo from './logo.svg'\nimport './App.css'\n\nfunction App () {\n const [effect, setEffect] = useState('rightLeft')\n console.log(effect)\n const code = ``\n return (\n
\n {/*
*/}\n
\n
\n
\n

\n react-textra\n

\n

\n Slide your text in React application easily\n

\n
\n \n {code}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n Choose an effect:\n \n \n
\n
\n\n
\n
\n
\n {/*
*/}\n
\n )\n}\n\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /react-textra/react-app-project/build/static/js/main.0f0f784f.chunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["logo.svg","App.js","reportWebVitals.js","index.js"],"names":["App","useState","effect","setEffect","console","log","className","language","style","shadesOfPurple","href","Textra","data","onChange","e","target","value","reportWebVitals","onPerfEntry","Function","then","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","render","StrictMode","document","getElementById"],"mappings":"kQAAe,I,YCqFAA,MA9Ef,WAAiB,IAAD,EACcC,mBAAS,aADvB,mBACPC,EADO,KACCC,EADD,KASd,OAPAC,QAAQC,IAAIH,GAQV,qBAAKI,UAAU,MAAf,SAEI,sBAAKA,UAAU,OAAf,UACE,qBAAKA,UAAU,YAAf,SACE,gCACE,oBAAIA,UAAU,QAAd,0BAGA,mBAAGA,UAAU,SAAb,yDAGA,qBAAKA,UAAU,eAAf,SACA,cAAC,IAAD,CAAmBC,SAAS,MAAMC,MAAOC,IAAzC,SAnBF,iHAuBA,8BACE,mBAAGC,KAAK,6CAA6CJ,UAAU,SAA/D,+BAIJ,qBAAKA,UAAU,YAAf,SACE,gCACE,qBAAKA,UAAU,iBAAf,SACE,cAACK,EAAA,EAAD,CAAQT,OAAQA,EAAQU,KAAM,CAAC,QAAS,WAAY,QAAS,WAAY,OAAQ,WAAY,UAAW,YAAa,iBAEvH,qBAAKN,UAAU,iBAAf,SACA,gCACE,sBAAMA,UAAU,aAAhB,+BAGE,yBAAQA,UAAU,SAASO,SAAU,SAAAC,GAAOV,QAAQC,IAAIS,EAAEC,OAAOC,OAAQb,EAAUW,EAAEC,OAAOC,QAA5F,UACE,wBAAQA,MAAM,YAAd,uBAGA,wBAAQA,MAAM,YAAd,uBAGA,wBAAQA,MAAM,UAAd,qBAGA,wBAAQA,MAAM,UAAd,qBAGA,wBAAQA,MAAM,QAAd,mBAGA,wBAAQA,MAAM,OAAd,kBAGA,wBAAQA,MAAM,QAAd,mBAGA,wBAAQA,MAAM,QAAd,sCC1DLC,EAZS,SAAAC,GAClBA,GAAeA,aAAuBC,UACxC,8BAAqBC,MAAK,YAAkD,IAA/CC,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOH,GACPI,EAAOJ,GACPK,EAAOL,GACPM,EAAON,GACPO,EAAQP,OCDdQ,IAASC,OACP,cAAC,IAAMC,WAAP,UACE,cAAC,EAAD,MAEFC,SAASC,eAAe,SAM1Bb,M","file":"static/js/main.0f0f784f.chunk.js","sourcesContent":["export default __webpack_public_path__ + \"static/media/logo.6ce24c58.svg\";","import { useState, useEffect } from 'react'\nimport SyntaxHighlighter from 'react-syntax-highlighter'\nimport { shadesOfPurple } from 'react-syntax-highlighter/dist/esm/styles/hljs'\nimport Textra from 'react-textra'\nimport logo from './logo.svg'\nimport './App.css'\n\nfunction App () {\n const [effect, setEffect] = useState('rightLeft')\n console.log(effect)\n const code = ``\n return (\n
\n {/*
*/}\n
\n
\n
\n

\n react-textra\n

\n

\n Slide your text in React application easily\n

\n
\n \n {code}\n \n
\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n \n Choose an effect:\n \n \n
\n
\n\n
\n
\n
\n {/*
*/}\n
\n )\n}\n\nexport default App\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry)\n getFID(onPerfEntry)\n getFCP(onPerfEntry)\n getLCP(onPerfEntry)\n getTTFB(onPerfEntry)\n })\n }\n}\n\nexport default reportWebVitals\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport './index.css'\nimport App from './App'\nimport reportWebVitals from './reportWebVitals'\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n)\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals()\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /vue-progress-scroll/vue-progress-scroll.js: -------------------------------------------------------------------------------- 1 | !function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}var n={};t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="/dist/",t(t.s=1)}([function(e,t,n){"use strict";t.a={name:"vue-progress-scroll",props:["background"],data:function(){return{style:null}},mounted:function(){this.$nextTick(function(){function e(){var e=t.getBoundingClientRect().top-window.innerHeight/2,r=t.getBoundingClientRect().height,o=Math.abs(e)/r*100;this.style=e<0?"width:"+o+"%; background:"+n:"width:0",o>=100&&this.$emit("complete")}var t=document.getElementsByClassName("p-wrapper")[0],n=this.background||"rgb(245, 107, 107)";window.addEventListener("scroll",e.bind(this)),window.addEventListener("resize",e.bind(this))})}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r=n(2),o={install:function(e){e.component("progress-scroll",r.a)}};t.default=o,"undefined"!=typeof window&&window.Vue&&window.Vue.use(o)},function(e,t,n){"use strict";function r(e){n(3)}var o=n(0),i=n(9),s=n(8),a=r,u=s(o.a,i.a,!1,a,"data-v-f660f9ba",null);t.a=u.exports},function(e,t,n){var r=n(4);"string"==typeof r&&(r=[[e.i,r,""]]),r.locals&&(e.exports=r.locals);n(6)("9f4dd446",r,!0,{})},function(e,t,n){t=e.exports=n(5)(!1),t.push([e.i,".bar[data-v-f660f9ba]{position:fixed;top:0;left:0;width:0;height:5px;box-shadow:0 2px 5px 0 #828282}",""])},function(e,t){function n(e,t){var n=e[1]||"",o=e[3];if(!o)return n;if(t&&"function"==typeof btoa){var i=r(o);return[n].concat(o.sources.map(function(e){return"/*# sourceURL="+o.sourceRoot+e+" */"})).concat([i]).join("\n")}return[n].join("\n")}function r(e){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(e))))+" */"}e.exports=function(e){var t=[];return t.toString=function(){return this.map(function(t){var r=n(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,n){"string"==typeof e&&(e=[[null,e,""]]);for(var r={},o=0;on.parts.length&&(r.parts.length=n.parts.length)}else{for(var s=[],o=0;o 2 | 3 | 4 | 5 | 6 | 7 | 8 | Textra 9 | 10 | 11 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 99 | 101 | 102 | 103 |
104 |
105 |

Textra

106 |

A Vue js plugin to slide your text

107 | 108 |
109 |

Choose a filter:

110 | 121 |
122 |
123 | 124 |
125 |
126 |
127 |
128 | 132 | 133 | 134 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /textra/textra.js: -------------------------------------------------------------------------------- 1 | !function(t){function e(r){if(n[r])return n[r].exports;var a=n[r]={i:r,l:!1,exports:{}};return t[r].call(a.exports,a,a.exports,e),a.l=!0,a.exports}var n={};e.m=t,e.c=n,e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=1)}([function(t,e,n){"use strict";e.a={name:"Textra",props:{data:{type:Array,required:!0},filter:{type:String,default:"simple"},timer:{type:String,required:!0},interval:{type:Number,default:0}},data:function(){return{defaultStyle:"transition: "+this.timer+"s;",currentWord:this.data[0],liStl:null,dataCounter:0,displayState:"shown",filters:{simple:["opacity:0","opacity:1"],"bottom-top":["transform:translateY(10px);opacity:0;","transform:translateY(0px);opacity:1;"],"top-bottom":["transform:translateY(-10px);opacity:0;","transform:translateY(0px);opacity:1;"],"right-left":["transform:translateX(10px);opacity:0;","transform:translateX(0px);opacity:1;"],"left-right":["transform:translateX(-10px);opacity:0;","transform:translateX(0px);opacity:1;"],press:["letter-spacing: 4px;opacity:0;","opacity:1;"],scale:["transform:scaleY(1.4);opacity:0;","opacity:1;"],flash:["transform:skewX(-70deg);opacity:0;","transform:skewX(0deg);opacity:1;"],flip:["transform:rotateX(-180deg);opacity:0;","transform:rotate(0deg);opacity:1;"]}}},computed:{mainStyleComputed:function(){return this.defaultStyle+this.liStl}},created:function(){var t=this;setInterval(function(){"shown"===t.displayState?(t.liStl=t.filters[t.filter][0],t.displayState="hidden"):(t.liStl=t.filters[t.filter][1],t.displayState="shown",t.dataCounter++,t.currentWord=t.data[t.dataCounter]),t.dataCounter===t.data.length&&(t.dataCounter=0)},1e3*(+this.timer+ +this.interval))}}},function(t,e,n){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var r=n(2),a={install:function(t){t.component("textra",r.a)}};e.default=a,"undefined"!=typeof window&&window.Vue&&window.Vue.use(a)},function(t,e,n){"use strict";function r(t){n(3)}var a=n(0),o=n(9),i=n(8),s=r,u=i(a.a,o.a,!1,s,"data-v-f1e8c306",null);e.a=u.exports},function(t,e,n){var r=n(4);"string"==typeof r&&(r=[[t.i,r,""]]),r.locals&&(t.exports=r.locals);n(6)("072cc054",r,!0)},function(t,e,n){e=t.exports=n(5)(!1),e.push([t.i,".textra[data-v-f1e8c306]{height:auto;width:auto;display:block}",""])},function(t,e){function n(t,e){var n=t[1]||"",a=t[3];if(!a)return n;if(e&&"function"==typeof btoa){var o=r(a);return[n].concat(a.sources.map(function(t){return"/*# sourceURL="+a.sourceRoot+t+" */"})).concat([o]).join("\n")}return[n].join("\n")}function r(t){return"/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(t))))+" */"}t.exports=function(t){var e=[];return e.toString=function(){return this.map(function(e){var r=n(e,t);return e[2]?"@media "+e[2]+"{"+r+"}":r}).join("")},e.i=function(t,n){"string"==typeof t&&(t=[[null,t,""]]);for(var r={},a=0;an.parts.length&&(r.parts.length=n.parts.length)}else{for(var i=[],a=0;a { 12 | const animationStyles = { 13 | rightToLeft: [{ 14 | translate: { 15 | type: 'translateX', 16 | value: 0, 17 | unit: 'px' 18 | }, 19 | opacity: 1 20 | }, { 21 | translate: { 22 | type: 'translateX', 23 | value: 10, 24 | unit: 'px' 25 | }, 26 | opacity: 0 27 | }], 28 | flash: [{ 29 | translate: { 30 | type: 'skewX', 31 | value: 0, 32 | unit: 'deg' 33 | }, 34 | opacity: 1 35 | }, { 36 | translate: { 37 | type: 'skewX', 38 | value: -100, 39 | unit: 'deg' 40 | }, 41 | opacity: 1 42 | }], 43 | flip: [{ 44 | translate: { 45 | type: 'rotateX', 46 | value: 0, 47 | unit: 'deg' 48 | }, 49 | opacity: 1 50 | }, { 51 | translate: { 52 | type: 'rotateX', 53 | value: -180, 54 | unit: 'deg' 55 | }, 56 | opacity: 1 57 | }], 58 | scale: [{ 59 | translate: { 60 | type: 'scale', 61 | value: 1, 62 | unit: '' 63 | }, 64 | opacity: 1 65 | }, { 66 | translate: { 67 | type: 'scale', 68 | value: 0.9, 69 | unit: '' 70 | }, 71 | opacity: 1 72 | }], 73 | press: [{ 74 | translate: { 75 | type: 'scaleX', 76 | value: 1, 77 | unit: '' 78 | }, 79 | opacity: 1 80 | }, { 81 | translate: { 82 | type: 'scaleX', 83 | value: 1.3, 84 | unit: '' 85 | }, 86 | opacity: 1 87 | }] 88 | } 89 | 90 | const data = ['first', 'second', 'babababaab', ' bye bye'] 91 | // which animation user has selected via props 92 | const selectedAnimation = props.effect 93 | const animationRef = useRef(null) 94 | const [style, setStyle] = useState(animationStyles[selectedAnimation][0]) 95 | const [text, setText] = useState(data[0]) 96 | const previousTime = useRef(null) 97 | const duration = 1000 98 | // TODO: call this stopThresholdSeconds 99 | const stopShowingSeconds = 3000 100 | const timeRoundPassed = useRef(duration) 101 | 102 | useEffect(() => { 103 | setStyle(animationStyles[selectedAnimation][0]) 104 | }, [selectedAnimation]) 105 | 106 | const easeOutQuad = t => t * (2 - t) 107 | 108 | const indexOfArray = useRef(1) 109 | const isAnimationShowing = useRef(true) 110 | const runAnimation = useCallback((timestamps) => { 111 | if (previousTime.current === null) previousTime.current = timestamps 112 | const elapsed = timestamps - previousTime.current / 1000 113 | 114 | if (elapsed > timeRoundPassed.current) { 115 | if (!isAnimationShowing.current) { 116 | // showing 117 | const showingTranlateInitial = animationStyles[selectedAnimation][1].translate.value 118 | const showingTranlateDiffrence = animationStyles[selectedAnimation][1].translate.value - animationStyles[selectedAnimation][0].translate.value 119 | const showingOpacityInitial = animationStyles[selectedAnimation][1].opacity 120 | // const showingOpacityDiffrence = animationStyles[selectedAnimation][1].opacity - (animationStyles[selectedAnimation][1].opacity - animationStyles[selectedAnimation][0].opacity) 121 | const showingTiming = easeOutQuad((elapsed - timeRoundPassed.current) / duration) 122 | setStyle(s => ({ 123 | translate: { 124 | ...s.translate, 125 | value: showingTranlateInitial - showingTranlateDiffrence * showingTiming 126 | }, 127 | opacity: 0 - (0 - 1) * showingTiming 128 | })) 129 | } else { 130 | // stop showing for a stopShowingSeconds 131 | if (elapsed > timeRoundPassed.current + stopShowingSeconds) { 132 | // hiding 133 | const hidingTraslateInitial = animationStyles[selectedAnimation][0].translate.value 134 | const hidingTranslateDiffrence = animationStyles[selectedAnimation][0].translate.value - animationStyles[selectedAnimation][1].translate.value 135 | const hidingOpacityInitial = animationStyles[selectedAnimation][0].opacity 136 | // const hidingOpacityDiffrence = animationStyles[selectedAnimation][1].opacity - (animationStyles[selectedAnimation][0].opacity - animationStyles[selectedAnimation][1].opacity) 137 | const hidingTiming = easeOutQuad((elapsed - (timeRoundPassed.current + stopShowingSeconds)) / duration) 138 | 139 | // const formula = 1 - (1 - 0) * easeOutQuad((elapsed - (timeRoundPassed.current + stopShowingSeconds)) / duration) 140 | 141 | // console.log('hiding :', formula) 142 | setStyle(s => ({ 143 | translate: { 144 | ...s.translate, 145 | value: (hidingTraslateInitial - hidingTranslateDiffrence * hidingTiming) 146 | }, 147 | opacity: hidingOpacityInitial - hidingTiming 148 | })) 149 | } 150 | } 151 | } 152 | 153 | if (isAnimationShowing.current) { 154 | if (elapsed > timeRoundPassed.current + duration + stopShowingSeconds) { 155 | timeRoundPassed.current += duration + stopShowingSeconds 156 | isAnimationShowing.current = !isAnimationShowing.current 157 | // setText(s => s === 'Helloooo' ? 'Bye bye' : 'Helloooo') 158 | setText(data[indexOfArray.current]) 159 | } 160 | } else { 161 | if (elapsed > timeRoundPassed.current + duration) { 162 | if (indexOfArray.current + 1 === data.length) { 163 | indexOfArray.current = 0 164 | } else { 165 | indexOfArray.current += 1 166 | } 167 | timeRoundPassed.current += duration 168 | isAnimationShowing.current = !isAnimationShowing.current 169 | } 170 | } 171 | 172 | animationRef.current = window.requestAnimationFrame(runAnimation) 173 | }, [props.effect]) 174 | 175 | useEffect(() => { 176 | animationRef.current = window.requestAnimationFrame(runAnimation) 177 | 178 | return () => { 179 | console.log('outt') 180 | window.cancelAnimationFrame(animationRef.current) 181 | } 182 | }, [runAnimation, props.effect]) 183 | 184 | return ( 185 |
186 |
191 | {text} 192 |
193 |
194 | ) 195 | } 196 | 197 | export default Textra 198 | -------------------------------------------------------------------------------- /react-textra/static/js/3.f770b608.chunk.js.map: -------------------------------------------------------------------------------- 1 | {"version":3,"sources":["../node_modules/web-vitals/dist/web-vitals.js"],"names":["e","t","n","i","a","name","value","delta","entries","id","concat","Date","now","Math","floor","random","r","PerformanceObserver","supportedEntryTypes","includes","getEntries","map","observe","type","buffered","o","document","visibilityState","removeEventListener","addEventListener","c","persisted","u","WeakSet","Set","s","has","f","hadRecentInput","push","takeRecords","m","v","d","timeStamp","p","setTimeout","l","disconnect","startTime","add","requestAnimationFrame","performance","h","passive","capture","S","y","w","g","entryType","target","cancelable","processingStart","forEach","E","L","T","once","b","getEntriesByType","timing","max","navigationStart","responseStart","readyState"],"mappings":"gIAAA,+MAAIA,EAAEC,EAAEC,EAAEC,EAAEC,EAAE,SAASJ,EAAEC,GAAG,MAAM,CAACI,KAAKL,EAAEM,WAAM,IAASL,GAAG,EAAEA,EAAEM,MAAM,EAAEC,QAAQ,GAAGC,GAAG,MAAMC,OAAOC,KAAKC,MAAM,KAAKF,OAAOG,KAAKC,MAAM,cAAcD,KAAKE,UAAU,QAAQC,EAAE,SAAShB,EAAEC,GAAG,IAAI,GAAGgB,oBAAoBC,oBAAoBC,SAASnB,GAAG,CAAC,IAAIE,EAAE,IAAIe,qBAAqB,SAASjB,GAAG,OAAOA,EAAEoB,aAAaC,IAAIpB,MAAM,OAAOC,EAAEoB,QAAQ,CAACC,KAAKvB,EAAEwB,UAAS,IAAKtB,GAAG,MAAMF,MAAMyB,EAAE,SAASzB,EAAEC,GAAG,IAAIC,EAAE,SAASA,EAAEC,GAAG,aAAaA,EAAEoB,MAAM,WAAWG,SAASC,kBAAkB3B,EAAEG,GAAGF,IAAI2B,oBAAoB,mBAAmB1B,GAAE,GAAI0B,oBAAoB,WAAW1B,GAAE,MAAO2B,iBAAiB,mBAAmB3B,GAAE,GAAI2B,iBAAiB,WAAW3B,GAAE,IAAK4B,EAAE,SAAS9B,GAAG6B,iBAAiB,YAAY,SAAS5B,GAAGA,EAAE8B,WAAW/B,EAAEC,MAAK,IAAK+B,EAAE,mBAAmBC,QAAQ,IAAIA,QAAQ,IAAIC,IAAIC,EAAE,SAASnC,EAAEC,EAAEC,GAAG,IAAIC,EAAE,OAAO,WAAWF,EAAEK,OAAO,IAAIJ,GAAG8B,EAAEI,IAAInC,IAAI,WAAWyB,SAASC,mBAAmB1B,EAAEM,MAAMN,EAAEK,OAAOH,GAAG,IAAIF,EAAEM,YAAO,IAASJ,KAAKA,EAAEF,EAAEK,MAAMN,EAAEC,OAAOoC,EAAE,SAASrC,EAAEC,GAAG,IAAIC,EAAEC,EAAEC,EAAE,MAAM,GAAG4B,EAAE,SAAShC,GAAGA,EAAEsC,iBAAiBnC,EAAEG,OAAON,EAAEM,MAAMH,EAAEK,QAAQ+B,KAAKvC,GAAGE,MAAMmC,EAAErB,EAAE,eAAegB,GAAGK,IAAInC,EAAEiC,EAAEnC,EAAEG,EAAEF,GAAGwB,GAAG,WAAWY,EAAEG,cAAcnB,IAAIW,GAAG9B,OAAO4B,GAAG,WAAW3B,EAAEC,EAAE,MAAM,GAAGF,EAAEiC,EAAEnC,EAAEG,EAAEF,QAAQwC,GAAG,EAAEC,EAAE,WAAW,MAAM,WAAWhB,SAASC,gBAAgB,EAAE,KAAKgB,EAAE,WAAWlB,GAAG,SAASzB,GAAG,IAAIC,EAAED,EAAE4C,UAAUH,EAAExC,KAAI,IAAK4C,EAAE,WAAW,OAAOJ,EAAE,IAAIA,EAAEC,IAAIC,IAAIb,GAAG,WAAWgB,YAAY,WAAWL,EAAEC,IAAIC,MAAM,OAAO,CAAC,gBAAgB,OAAOF,KAAKM,EAAE,SAAS/C,EAAEC,GAAG,IAAIC,EAAEC,EAAE0C,IAAIpB,EAAErB,EAAE,OAAOiC,EAAErB,EAAE,SAAS,SAAShB,GAAG,2BAA2BA,EAAEK,OAAOgC,GAAGA,EAAEW,aAAahD,EAAEiD,UAAU9C,EAAEyC,YAAYnB,EAAEnB,MAAMN,EAAEiD,UAAUxB,EAAEjB,QAAQ+B,KAAKvC,GAAGgC,EAAEkB,IAAIzB,GAAGvB,SAASmC,IAAInC,EAAEiC,EAAEnC,EAAEyB,EAAExB,GAAG6B,GAAG,SAAS3B,GAAGsB,EAAErB,EAAE,OAAOF,EAAEiC,EAAEnC,EAAEyB,EAAExB,GAAGkD,uBAAuB,WAAWA,uBAAuB,WAAW1B,EAAEnB,MAAM8C,YAAYxC,MAAMT,EAAEyC,UAAUZ,EAAEkB,IAAIzB,GAAGvB,eAAemD,EAAE,CAACC,SAAQ,EAAGC,SAAQ,GAAIC,EAAE,IAAI7C,KAAK8C,EAAE,SAAStD,EAAEC,GAAGJ,IAAIA,EAAEI,EAAEH,EAAEE,EAAED,EAAE,IAAIS,KAAK+C,EAAE9B,qBAAqB+B,MAAMA,EAAE,WAAW,GAAG1D,GAAG,GAAGA,EAAEC,EAAEsD,EAAE,CAAC,IAAIpD,EAAE,CAACwD,UAAU,cAAcvD,KAAKL,EAAEuB,KAAKsC,OAAO7D,EAAE6D,OAAOC,WAAW9D,EAAE8D,WAAWb,UAAUjD,EAAE4C,UAAUmB,gBAAgB/D,EAAE4C,UAAU3C,GAAGE,EAAE6D,SAAS,SAAShE,GAAGA,EAAEI,MAAMD,EAAE,KAAK8D,EAAE,SAASjE,GAAG,GAAGA,EAAE8D,WAAW,CAAC,IAAI7D,GAAGD,EAAE4C,UAAU,KAAK,IAAIjC,KAAKyC,YAAYxC,OAAOZ,EAAE4C,UAAU,eAAe5C,EAAEuB,KAAK,SAASvB,EAAEC,GAAG,IAAIC,EAAE,WAAWuD,EAAEzD,EAAEC,GAAGG,KAAKD,EAAE,WAAWC,KAAKA,EAAE,WAAWwB,oBAAoB,YAAY1B,EAAEmD,GAAGzB,oBAAoB,gBAAgBzB,EAAEkD,IAAIxB,iBAAiB,YAAY3B,EAAEmD,GAAGxB,iBAAiB,gBAAgB1B,EAAEkD,GAA9N,CAAkOpD,EAAED,GAAGyD,EAAExD,EAAED,KAAK0D,EAAE,SAAS1D,GAAG,CAAC,YAAY,UAAU,aAAa,eAAegE,SAAS,SAAS/D,GAAG,OAAOD,EAAEC,EAAEgE,EAAEZ,OAAOa,EAAE,SAAShE,EAAEmC,GAAG,IAAII,EAAEC,EAAEG,IAAIF,EAAEvC,EAAE,OAAO2C,EAAE,SAAS/C,GAAGA,EAAEiD,UAAUP,EAAEE,YAAYD,EAAErC,MAAMN,EAAE+D,gBAAgB/D,EAAEiD,UAAUN,EAAEnC,QAAQ+B,KAAKvC,GAAGgC,EAAEkB,IAAIP,GAAGF,MAAMY,EAAErC,EAAE,cAAc+B,GAAGN,EAAEN,EAAEjC,EAAEyC,EAAEN,GAAGgB,GAAG5B,GAAG,WAAW4B,EAAEb,cAAcnB,IAAI0B,GAAGM,EAAEL,gBAAe,GAAIK,GAAGvB,GAAG,WAAW,IAAId,EAAE2B,EAAEvC,EAAE,OAAOqC,EAAEN,EAAEjC,EAAEyC,EAAEN,GAAGlC,EAAE,GAAGF,GAAG,EAAED,EAAE,KAAK0D,EAAE7B,kBAAkBb,EAAE+B,EAAE5C,EAAEoC,KAAKvB,GAAG2C,QAAQQ,EAAE,SAASnE,EAAEC,GAAG,IAAIC,EAAEC,EAAE0C,IAAIR,EAAEjC,EAAE,OAAOqC,EAAE,SAASzC,GAAG,IAAIC,EAAED,EAAEiD,UAAUhD,EAAEE,EAAEyC,YAAYP,EAAE/B,MAAML,EAAEoC,EAAE7B,QAAQ+B,KAAKvC,IAAIE,KAAKwC,EAAE1B,EAAE,2BAA2ByB,GAAG,GAAGC,EAAE,CAACxC,EAAEiC,EAAEnC,EAAEqC,EAAEpC,GAAG,IAAI0C,EAAE,WAAWX,EAAEI,IAAIC,KAAKK,EAAEF,cAAcnB,IAAIoB,GAAGC,EAAEM,aAAahB,EAAEkB,IAAIb,GAAGnC,MAAM,CAAC,UAAU,SAAS8D,SAAS,SAAShE,GAAG6B,iBAAiB7B,EAAE2C,EAAE,CAACyB,MAAK,EAAGb,SAAQ,OAAQ9B,EAAEkB,GAAE,GAAIb,GAAG,SAAS3B,GAAGkC,EAAEjC,EAAE,OAAOF,EAAEiC,EAAEnC,EAAEqC,EAAEpC,GAAGkD,uBAAuB,WAAWA,uBAAuB,WAAWd,EAAE/B,MAAM8C,YAAYxC,MAAMT,EAAEyC,UAAUZ,EAAEkB,IAAIb,GAAGnC,eAAemE,EAAE,SAASrE,GAAG,IAAIC,EAAEC,EAAEE,EAAE,QAAQH,EAAE,WAAW,IAAI,IAAIA,EAAEmD,YAAYkB,iBAAiB,cAAc,IAAI,WAAW,IAAItE,EAAEoD,YAAYmB,OAAOtE,EAAE,CAAC2D,UAAU,aAAaX,UAAU,GAAG,IAAI,IAAI/C,KAAKF,EAAE,oBAAoBE,GAAG,WAAWA,IAAID,EAAEC,GAAGW,KAAK2D,IAAIxE,EAAEE,GAAGF,EAAEyE,gBAAgB,IAAI,OAAOxE,EAAhL,GAAqLC,EAAEI,MAAMJ,EAAEK,MAAMN,EAAEyE,cAAcxE,EAAEM,QAAQ,CAACP,GAAGD,EAAEE,GAAG,MAAMF,MAAM,aAAa0B,SAASiD,WAAW7B,WAAW7C,EAAE,GAAG4B,iBAAiB,WAAW5B","file":"static/js/3.f770b608.chunk.js","sourcesContent":["var e,t,n,i,a=function(e,t){return{name:e,value:void 0===t?-1:t,delta:0,entries:[],id:\"v1-\".concat(Date.now(),\"-\").concat(Math.floor(8999999999999*Math.random())+1e12)}},r=function(e,t){try{if(PerformanceObserver.supportedEntryTypes.includes(e)){var n=new PerformanceObserver((function(e){return e.getEntries().map(t)}));return n.observe({type:e,buffered:!0}),n}}catch(e){}},o=function(e,t){var n=function n(i){\"pagehide\"!==i.type&&\"hidden\"!==document.visibilityState||(e(i),t&&(removeEventListener(\"visibilitychange\",n,!0),removeEventListener(\"pagehide\",n,!0)))};addEventListener(\"visibilitychange\",n,!0),addEventListener(\"pagehide\",n,!0)},c=function(e){addEventListener(\"pageshow\",(function(t){t.persisted&&e(t)}),!0)},u=\"function\"==typeof WeakSet?new WeakSet:new Set,s=function(e,t,n){var i;return function(){t.value>=0&&(n||u.has(t)||\"hidden\"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=function(e,t){var n,i=a(\"CLS\",0),u=function(e){e.hadRecentInput||(i.value+=e.value,i.entries.push(e),n())},f=r(\"layout-shift\",u);f&&(n=s(e,i,t),o((function(){f.takeRecords().map(u),n()})),c((function(){i=a(\"CLS\",0),n=s(e,i,t)})))},m=-1,v=function(){return\"hidden\"===document.visibilityState?0:1/0},d=function(){o((function(e){var t=e.timeStamp;m=t}),!0)},p=function(){return m<0&&(m=v(),d(),c((function(){setTimeout((function(){m=v(),d()}),0)}))),{get timeStamp(){return m}}},l=function(e,t){var n,i=p(),o=a(\"FCP\"),f=r(\"paint\",(function(e){\"first-contentful-paint\"===e.name&&(f&&f.disconnect(),e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){y(e,t),a()},i=function(){a()},a=function(){removeEventListener(\"pointerup\",n,h),removeEventListener(\"pointercancel\",i,h)};addEventListener(\"pointerup\",n,h),addEventListener(\"pointercancel\",i,h)}(t,e):y(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,E,h)}))},L=function(n,f){var m,v=p(),d=a(\"FID\"),l=function(e){e.startTime=0&&(n||u.has(t)||\"hidden\"===document.visibilityState)&&(t.delta=t.value-(i||0),(t.delta||void 0===i)&&(i=t.value,e(t)))}},f=function(e,t){var n,i=a(\"CLS\",0),u=function(e){e.hadRecentInput||(i.value+=e.value,i.entries.push(e),n())},f=r(\"layout-shift\",u);f&&(n=s(e,i,t),o((function(){f.takeRecords().map(u),n()})),c((function(){i=a(\"CLS\",0),n=s(e,i,t)})))},m=-1,v=function(){return\"hidden\"===document.visibilityState?0:1/0},d=function(){o((function(e){var t=e.timeStamp;m=t}),!0)},p=function(){return m<0&&(m=v(),d(),c((function(){setTimeout((function(){m=v(),d()}),0)}))),{get timeStamp(){return m}}},l=function(e,t){var n,i=p(),o=a(\"FCP\"),f=r(\"paint\",(function(e){\"first-contentful-paint\"===e.name&&(f&&f.disconnect(),e.startTime=0&&t1e12?new Date:performance.now())-e.timeStamp;\"pointerdown\"==e.type?function(e,t){var n=function(){y(e,t),a()},i=function(){a()},a=function(){removeEventListener(\"pointerup\",n,h),removeEventListener(\"pointercancel\",i,h)};addEventListener(\"pointerup\",n,h),addEventListener(\"pointercancel\",i,h)}(t,e):y(t,e)}},w=function(e){[\"mousedown\",\"keydown\",\"touchstart\",\"pointerdown\"].forEach((function(t){return e(t,E,h)}))},L=function(n,f){var m,v=p(),d=a(\"FID\"),l=function(e){e.startTime 2 | 3 | 4 | 5 | 6 | 7 | 8 | progress-scroll demo 9 | 10 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 38 | 40 | 41 | 42 |
43 |

Progress-scroll demo page

44 | 45 | Start scrolling till you reach article part , and then progress-scroll will be started ;-) 46 |

Nothing!

47 |

Curabitur accumsan turpis pharetra augue tincidunt blandit. Quisque condimentum maximus mi, sit 48 | amet commodo arcu rutrum id. Proin pretium urna vel cursus venenatis. Suspendisse potenti. Etiam mattis sem rhoncus 49 | lacus dapibus facilisis. Donec at dignissim dui. Ut et neque nisl.

50 | 51 |
52 |
Web
53 |
The part of the Internet that contains websites and web pages
54 |
HTML
55 |
A markup language for creating web pages
56 |
CSS
57 |
A technology to make HTML look better
58 |
59 | 60 |
Sixth level
61 |

Cras in nibh lacinia, venenatis nisi et, auctor urna. Donec pulvinar lacus sed diam dignissim, ut eleifend eros accumsan. 62 | Phasellus non tortor eros. Ut sed rutrum lacus. Etiam purus nunc, scelerisque quis enim vitae, malesuada ultrices 63 | turpis. Nunc vitae maximus purus, nec consectetur dui. Suspendisse euismod, elit vel rutrum commodo, ipsum tortor 64 | maximus dui, sed varius sapien odio vitae est. Etiam at cursus metus.

65 |
66 |
67 |
68 |

Here is the main article

69 | 70 |
71 |
72 | 73 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque risus mi, tempus quis 74 | placerat ut, porta nec nulla. Vestibulum rhoncus ac ex sit amet fringilla. Nullam gravida purus diam, et dictum 75 | felis venenatis efficitur. Aenean ac eleifend lacus, in mollis lectus. Donec sodales, arcu et 76 | sollicitudin porttitor, tortor urna tempor ligula, id porttitor mi magna a neque. Donec dui urna, vehicula et 77 | sem eget, facilisis sodales sem. Lorem ipsum dolor sit amet consectetur adipisicing elit. Illo nesciunt ratione 78 | earum ab non enim veritatis libero voluptatibus quos officia totam incidunt impedit harum iusto, tempore quia 79 | dolorem? Cumque amet debitis fuga corporis atque nostrum, ab repellat reiciendis unde ipsam veniam soluta delectus 80 | quidem voluptatum aspernatur incidunt ad, alias quibusdam tempore! Cumque similique voluptas expedita consequuntur 81 | ullam quas excepturi ratione at, a tenetur mollitia minima! Recusandae facilis totam eligendi aliquid eius alias 82 | eaque accusamus quos consectetur dolore reiciendis id voluptates veritatis quibusdam, laborum mollitia quia dolores 83 | repellat. Et omnis veritatis a reprehenderit ipsam atque aliquam, architecto nesciunt accusantium repudiandae 84 | minus corrupti fugiat sapiente dignissimos similique numquam dolore odit quod quasi reiciendis. Alias dicta veniam 85 | maiores perspiciatis modi architecto sit aperiam pariatur atque, consequatur quos molestiae ipsa molestias voluptates 86 | harum nobis facilis maxime quas, sint perferendis debitis excepturi, expedita nam saepe. Qui temporibus quibusdam 87 | similique quam mollitia ut voluptate dolorem pariatur ipsa expedita? Vel aliquam tempora quo atque. Quae natus 88 | necessitatibus, suscipit veniam optio, dolores iste velit doloribus assumenda perspiciatis quam perferendis eveniet 89 | veritatis? Nostrum alias aliquam, ipsa quibusdam provident delectus nemo tempora aliquid porro sint nisi excepturi 90 | voluptate possimus libero. Ut fuga distinctio repellendus eos veritatis delectus at ad dolorem, a quo illo? Distinctio, 91 | architecto amet magni iusto atque voluptatibus? Reiciendis beatae quisquam autem officia labore mollitia fuga 92 | minus placeat eos blanditiis tempore accusantium porro quis, accusamus soluta quos suscipit, nihil eaque maxime. 93 | Debitis ratione praesentium laborum! Eveniet culpa, perferendis cumque vel repudiandae amet dolor molestiae accusantium 94 | vitae, ratione soluta aliquam adipisci! Soluta unde doloremque quo, consequatur harum earum odio, vitae cum illo 95 | eligendi repudiandae repellat. Iste, illum sed! Quidem, atque accusamus non quis laboriosam iure natus nostrum 96 | dolores reprehenderit mollitia, totam at illo molestias ipsam, quod repellat tenetur debitis nisi nesciunt omnis 97 | unde? Perferendis odio nemo magni laboriosam repellendus esse inventore sed hic, voluptas id aut quibusdam debitis, 98 | totam et! Dolorem sint placeat, nam deleniti obcaecati repellendus saepe assumenda ipsum temporibus nesciunt 99 | animi minima alias neque possimus molestiae commodi ipsa modi sapiente, consequuntur voluptas. Vitae, velit aliquam 100 | cumque laborum, inventore similique laudantium cum, aut iure quidem fuga? Harum sed placeat debitis accusamus 101 | error, atque reiciendis corporis repellat sint ipsum accusantium delectus eos magnam hic praesentium iure dolor 102 | ullam minus, nulla maiores officiis temporibus explicabo. Explicabo, reiciendis ducimus minima modi, quos libero 103 | enim hic iure tenetur dicta sit, illo commodi exercitationem cumque fugit! Molestias nesciunt quis eveniet quo. 104 | Voluptates, dolor. Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti, perferendis. Illum culpa 105 | excepturi assumenda possimus voluptatem iure delectus provident neque aliquam non nisi ullam nulla nobis, quo 106 | id fugit voluptas quas omnis. Perferendis vel, quam aut eligendi architecto molestias impedit veniam officiis 107 | suscipit fugiat cumque, at voluptate nostrum, perspiciatis dolorum eius nulla blanditiis? Id animi obcaecati, 108 | ut dicta quae quod dignissimos, enim voluptates quam corrupti quis perspiciatis asperiores quasi laudantium eius 109 | repellat cum placeat ab eaque doloremque soluta quos nam. Delectus, architecto nobis nesciunt alias perferendis 110 | voluptatibus ut saepe eaque. Eveniet fuga quia ullam molestias ad sapiente, quas aliquam ducimus vitae nostrum 111 | aut voluptatum magni non explicabo! Quibusdam eos sint voluptatibus ratione veritatis amet ipsum earum culpa 112 | aperiam eaque laboriosam minus facere ducimus quia accusamus inventore, dolorem soluta sapiente! Pariatur tenetur 113 | necessitatibus quia asperiores minus exercitationem minima quam qui sed sapiente numquam distinctio aperiam adipisci 114 | deleniti, ipsam beatae cupiditate magni vel rem inventore dolores reiciendis! Voluptate culpa assumenda id iure 115 | veritatis accusantium ad. Harum quasi libero corrupti nam nesciunt vero eaque unde, cupiditate totam alias cumque 116 | vel autem iure eos in architecto minus officiis, quisquam voluptatem, numquam porro aliquid amet nulla id. Ex, 117 | dolore aperiam? Error eaque consectetur doloribus nihil illum aspernatur soluta facere aliquam fuga ipsam tempora 118 | alias, consequatur placeat. Quis, odio voluptates corrupti tempore natus nihil labore deserunt aliquam et sed 119 | quisquam eius consequatur eligendi vel quo adipisci soluta? Quae placeat, voluptatibus temporibus deleniti eveniet 120 | aliquid, incidunt modi explicabo voluptatum illo rerum alias velit! Quisquam, quaerat iusto. Odio, harum, blanditiis 121 | quam quo repellat ad et ipsum eius quas officia soluta quasi alias consequatur excepturi esse doloremque exercitationem, 122 | beatae inventore. Illo itaque quis ex deserunt voluptates nobis provident officiis atque, vitae facilis eveniet 123 | id consequuntur impedit perferendis culpa recusandae illum quam saepe eaque? Veritatis perferendis delectus in 124 | praesentium reprehenderit unde blanditiis odit inventore, ipsum aliquam. Consequatur totam, qui placeat rerum 125 | cumque ipsam nobis, cum corporis facilis sed, dolorem aspernatur expedita harum blanditiis a molestiae necessitatibus 126 | in non dicta deserunt. Non esse sit laboriosam corporis unde tempora rerum minus labore illum nam! Nostrum sunt 127 | deserunt quibusdam sequi minima iusto facilis ullam! Ea expedita ipsa error reprehenderit dolorem id accusamus 128 | pariatur vitae nesciunt minus voluptatum ipsam dolores quibusdam porro maxime laborum, corporis cupiditate sit 129 | aspernatur assumenda, a odio aliquam eaque. Minus at similique accusamus suscipit modi laudantium veniam deleniti 130 | molestiae praesentium vel. Inventore voluptates dolores minima soluta, cum repudiandae dolorum! Sequi ex voluptatum 131 | corporis rem delectus quos aliquid soluta, atque quia amet perspiciatis quo consequatur quis officiis. Dolores 132 | illum in dolore ullam consectetur nesciunt, voluptate explicabo earum aliquid iure rem officiis commodi nostrum 133 | ut voluptatibus magni eligendi, sapiente culpa eaque dolor expedita dignissimos. Ratione quibusdam, nam modi, 134 | placeat minima fugiat cumque atque, tenetur ipsam veritatis quaerat adipisci! Molestiae, sit ducimus animi saepe 135 | optio, labore, dolores eum enim quidem illo aperiam cum maxime? Consectetur quam libero incidunt et harum maxime! 136 | Impedit, rerum voluptatibus amet ab laudantium officia at, atque ipsam omnis sequi dignissimos vero, reiciendis 137 | temporibus beatae fuga mollitia iure. Laudantium maiores, reiciendis voluptate, quod eveniet quidem in architecto 138 | harum ipsa magni distinctio iste molestias dignissimos sit porro, perspiciatis odio dolorum quis ad similique? 139 | Eligendi optio placeat culpa illo. Excepturi et nostrum itaque voluptate, dicta exercitationem, quisquam labore 140 | consectetur recusandae reprehenderit ad velit odit minus, consequuntur similique nam nihil saepe non est ex dolore 141 | consequatur. Corrupti, fuga inventore dolore magni, perferendis assumenda voluptate quo ut, at quibusdam autem 142 | architecto in. Eum rerum eius sunt quibusdam dignissimos? Veniam officiis eligendi hic quo earum esse excepturi 143 | itaque necessitatibus? Natus praesentium ducimus similique ipsum! Facilis doloribus repellendus velit ratione 144 | veniam in eum pariatur amet fugit asperiores quibusdam, iure temporibus ut sapiente magni suscipit necessitatibus 145 | fugiat perspiciatis maxime distinctio ducimus nobis numquam voluptate. Repudiandae consequatur laborum quos inventore 146 | dolorem, recusandae libero nemo minus beatae porro autem amet culpa suscipit earum quibusdam enim obcaecati nisi 147 | doloribus nulla veniam quod ut ducimus atque! Quaerat dicta sapiente provident voluptatem laborum sequi vitae 148 | tempora nesciunt. Facere reiciendis voluptatibus culpa esse repellat dolores amet sed ea laudantium veritatis, 149 | ex dolor, ipsum laborum, saepe neque praesentium! Qui recusandae sint exercitationem rerum perspiciatis minus 150 | eum pariatur aspernatur nisi at officia, reprehenderit, veniam cupiditate fugit facere perferendis id ratione! 151 | Voluptatum dolorum saepe expedita ipsam suscipit. Obcaecati autem, cupiditate expedita quos minima sequi voluptatem 152 | pariatur est eius molestiae veritatis omnis repudiandae facere? Libero, ipsa dolores adipisci repellat laborum 153 | quod ea doloribus corporis minus, velit voluptate voluptatibus excepturi quidem itaque quasi qui? Est fugiat 154 | corrupti ex perferendis nemo. Harum, officiis natus quibusdam optio culpa qui recusandae non ad quaerat rem repellendus 155 | dolorum earum quam dicta quis ex aut! Molestias accusamus beatae laborum quidem omnis rerum aperiam molestiae 156 | corporis atque exercitationem recusandae, placeat animi similique provident, dolor aliquid facere quod laudantium 157 | repellat tempore consectetur quam, possimus sunt eum. Veniam aspernatur odio id quidem quaerat eaque nostrum, 158 | doloremque consequatur nihil asperiores harum tenetur officiis deserunt illum iure vitae aliquam nisi natus eveniet 159 | repudiandae! Ducimus placeat autem sint veniam reiciendis ipsa blanditiis quasi distinctio ullam sed, atque vero 160 | alias pariatur laudantium enim architecto eos assumenda aspernatur quis, nam saepe quos doloremque! Nihil porro 161 | ab rem corporis iste enim blanditiis dolorum fuga temporibus vitae nisi, ipsam dolorem quasi veritatis deserunt 162 | quidem similique nemo numquam a consectetur at, saepe maxime! Quidem voluptas recusandae ipsum vero soluta, ducimus 163 | quo molestias? Eum saepe repellat praesentium itaque veniam mollitia nisi aspernatur inventore alias culpa. Et 164 | maiores nihil exercitationem temporibus porro voluptas ipsam, iusto voluptatem! 165 |

166 |

167 | Here is end of article 168 |
169 |
170 | 171 |
172 |
173 |

174 | “There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.” 175 |

176 |

177 | Jeff Atwood 178 |

179 |
180 |
181 | 186 | 191 |
192 |
193 |
194 |
195 |

196 | Component 197 |

198 | 199 | 202 | 203 |
204 |
205 |
206 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus nec iaculis mauris. Lorem ipsum dolor sit amet consectetur 207 | adipisicing elit. Numquam, magnam animi! Reiciendis corporis maiores natus sunt ipsa, tempora doloremque 208 | consequatur exercitationem. Repellat nulla molestiae sapiente, dicta consequatur dolorum, corporis libero 209 | voluptates non fuga quidem vitae amet asperiores! Eius laudantium possimus reiciendis mollitia praesentium 210 | officia dolore fugiat sapiente illum veniam, alias repellendus obcaecati eligendi, iusto ipsum quidem quae 211 | magnam ipsam. Cupiditate optio qui numquam harum a totam autem, vel dolore incidunt praesentium ea nobis 212 | obcaecati voluptas aliquam, delectus, sequi id nihil perferendis magnam ad accusamus ullam! Beatae minus 213 | voluptatem quam, saepe quas aspernatur animi et ipsa fugiat provident fuga aliquam accusantium expedita maiores 214 | voluptas consectetur sequi perspiciatis nostrum recusandae iure autem ut. Cupiditate iusto sit rem sapiente 215 | quas consectetur ea ut eligendi error nobis aut voluptatum explicabo possimus necessitatibus veniam repudiandae, 216 | neque officia tenetur fuga nisi ipsam molestias. Dolorum temporibus nesciunt velit impedit corrupti saepe 217 | nisi corporis facilis porro quasi quos libero explicabo quae, omnis, sequi nobis doloremque est dolores, 218 | tenetur ipsum recusandae id iste quam? Mollitia cumque unde corporis nemo deleniti numquam doloribus, eum 219 | sunt libero hic molestiae rerum quia obcaecati eligendi? Ea nam cum quaerat. Quas eius vitae nemo sit esse 220 | nostrum libero quo reiciendis cum rem veritatis delectus quisquam sunt nam tempore, natus velit at, dignissimos 221 | praesentium explicabo aperiam laudantium possimus. Iste laboriosam non alias quaerat officia blanditiis exercitationem, 222 | rem nihil quisquam deserunt atque aliquam, iusto, consectetur vel obcaecati! Asperiores ipsam tempora enim 223 | odio quaerat est laborum nihil, voluptatum libero, odit cumque provident vitae quo nemo. Laudantium fugit 224 | sit quo quasi dignissimos eligendi ipsa. Molestiae, ducimus quidem maxime suscipit atque dolorum aspernatur 225 | porro placeat itaque eaque non omnis? Totam at suscipit quia voluptatum veniam, officiis eius, a repellendus, 226 | soluta asperiores dicta temporibus. Deserunt cupiditate doloribus dolorum ad repudiandae temporibus qui doloremque 227 | ratione, repellendus sunt voluptates possimus adipisci voluptatum? 228 | @bulmaio. #css #responsive 229 |
230 | 11:09 PM - 1 Jan 2016 231 |
232 |
233 | 238 |
239 | 240 | 259 | 260 | 261 | -------------------------------------------------------------------------------- /vue-progress-scroll/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Vue progress scroll 9 | 10 | 11 | 12 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 75 | 77 | 78 | 79 |
80 |

Vue progress scroll

81 |

A Vue plugin that represents progress bar while reading article.

82 |
83 | 84 |
85 | 86 |
87 |
88 | Here is a sample article title 89 |
90 | 91 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Dolor inventore quidem itaque maxime? Nostrum ratione, recusandae 92 | officiis in dicta, similique nesciunt quia iusto assumenda eos dolores itaque. Necessitatibus dignissimos 93 | repellendus aut asperiores cupiditate rerum autem, et, fuga molestias totam nemo itaque atque qui nostrum 94 | facere excepturi fugiat laboriosam corrupti corporis voluptatibus ex nihil quasi reiciendis? Magnam dolores 95 | asperiores laudantium dolor suscipit distinctio ducimus ab odio maiores itaque praesentium vero sequi neque 96 | perspiciatis, ea corporis at temporibus rem, quasi et error ad, mollitia accusamus sapiente! Esse fugit odit 97 | in consequatur recusandae eius doloribus consectetur eaque similique. Ducimus quis perspiciatis ullam, repellat 98 | recusandae officiis soluta minima mollitia dolor error? Ducimus voluptatum accusamus nam optio unde delectus, 99 | quidem eaque reprehenderit quod quas nulla vero eius, facilis explicabo aliquid totam nemo, libero minus 100 | illo molestias ut omnis amet labore! Tenetur ea voluptates cumque, iure aliquam officiis eos magnam dolor 101 | pariatur quisquam? Sint, facilis non voluptatibus veniam quas ipsam fuga, nemo ad est quos eveniet placeat, 102 | magni molestias cupiditate saepe dolore? Porro blanditiis quaerat unde, quasi eius, possimus reiciendis autem, 103 | illum ullam distinctio repudiandae perspiciatis numquam! Reiciendis, eius quod distinctio magni minus quia 104 | libero nemo, repellendus expedita placeat quibusdam aut. Quidem eveniet ab fuga eligendi, dolore vero molestiae 105 | voluptates suscipit voluptate consectetur, illum nam saepe, nobis perspiciatis reprehenderit accusantium 106 | ullam rem adipisci mollitia blanditiis possimus dignissimos harum? Obcaecati unde a facilis possimus facere 107 | iusto placeat fugiat temporibus iure, amet est sit nemo necessitatibus molestiae, atque quia harum vero odit 108 | explicabo quod, illum eos natus officiis tempora! Odio expedita non eligendi dolore illo accusantium unde 109 | laudantium repudiandae odit provident tenetur maiores numquam quae, rem vitae cum velit repellendus deserunt? 110 | Expedita, modi ullam quasi harum, molestiae cum maiores nam labore aut voluptas iusto commodi eius ut error 111 | quia quas culpa ad consectetur reprehenderit eligendi! Facilis itaque numquam cumque, quas facere id sit 112 | distinctio recusandae dolor officia libero nisi assumenda sapiente amet unde repellat aspernatur quam laborum 113 | esse! Deleniti tempore consequuntur unde magnam eum error ipsum cumque, doloribus ad at eos accusantium assumenda, 114 | a optio iusto quasi. Tempora, in? Deleniti deserunt inventore minus soluta quisquam blanditiis fugiat. Dolore 115 | autem consequuntur ipsa accusamus asperiores odio at perspiciatis ad optio nesciunt harum laborum quisquam 116 | iusto, ullam facere repellendus! Nemo temporibus exercitationem iure error est, dolorem nisi quo veritatis 117 | assumenda, cumque molestiae quisquam a consequuntur nihil facere quasi. Asperiores ut eaque sequi blanditiis 118 | animi quis dolores harum accusantium est officiis tempora saepe, explicabo facilis eveniet laudantium, reiciendis 119 | autem expedita et hic voluptatem distinctio in enim excepturi mollitia! Molestiae nulla aliquid quam perspiciatis 120 | distinctio quos culpa ut a officia minus dolorum rerum aliquam officiis facere sint consequatur modi eum, 121 | reprehenderit labore. Suscipit molestias repellat exercitationem nisi? Magnam quasi recusandae facere et 122 | corporis optio harum, tenetur laudantium possimus delectus nulla unde a neque. Quam iure quia est deserunt 123 | sed quaerat delectus at dolorem tenetur cum debitis, dolores placeat, ipsum adipisci minima? Vel necessitatibus 124 | magni iure eveniet rem quod optio, enim blanditiis? Est voluptates, dolorem dolores nam ipsa cum deleniti 125 | pariatur? Repellendus magni molestias expedita rem, ab aliquid aliquam incidunt quibusdam explicabo modi 126 | temporibus quae mollitia unde architecto? Placeat impedit nesciunt sapiente. Ullam, a! Vero perferendis voluptatibus 127 | nihil. Quos porro debitis recusandae similique quibusdam magni voluptate ipsum at blanditiis voluptas. Consequatur 128 | accusamus iusto repellendus, totam exercitationem architecto accusantium odit quos reiciendis doloribus, 129 | beatae minus quaerat voluptates dolorem maxime aut laborum asperiores. Impedit molestiae deserunt, delectus 130 | possimus ab quos quasi nisi nesciunt voluptas minima assumenda vero officia perferendis debitis sapiente 131 | deleniti neque excepturi eum ducimus ea est blanditiis omnis autem harum? Quod, provident minima. Officia 132 | ipsa quidem quasi animi in ab ad qui hic, vitae eligendi quaerat sint? Itaque debitis dolorem animi, voluptatum 133 | laborum deleniti saepe quisquam assumenda tempore error numquam ullam quibusdam officiis? Veritatis, ipsa 134 | amet? Corrupti provident sint illum culpa! Deleniti aspernatur earum ut explicabo dicta, modi eligendi consequuntur 135 | est hic animi nemo minima distinctio quas similique fugit repellat obcaecati, nostrum ullam nihil perferendis 136 | sunt molestiae debitis saepe corrupti! Nostrum temporibus suscipit non eum porro labore blanditiis enim? 137 | Inventore error cumque unde omnis deserunt dolore maiores ipsum perferendis quaerat molestiae tempore a tempora 138 | nisi nostrum nobis amet velit minima possimus, similique quia, recusandae eos consequuntur. Iure sint magnam 139 | neque vitae esse magni totam fugiat ullam temporibus, minus culpa soluta atque delectus ratione itaque possimus 140 | error eligendi? Magnam, possimus! Ut dolor nulla, voluptatibus rem itaque aliquam sequi totam aut voluptas. 141 | Iste sunt cum aspernatur culpa nam maxime doloremque hic eveniet cumque, autem consectetur reiciendis commodi 142 | esse ab dolores recusandae sapiente beatae, soluta velit distinctio. Laudantium, accusamus quos odit at hic 143 | minus officia dolorum possimus expedita fugiat nihil vel quasi beatae ullam, error tempore repellat unde 144 | repellendus voluptatum itaque facere vitae corrupti. Quod, vitae quisquam? Maxime qui excepturi asperiores 145 | distinctio cumque beatae explicabo libero eveniet. Quod maxime ducimus animi, eligendi velit et eius expedita, 146 | reprehenderit repudiandae at non corporis impedit sed atque dicta repellat nisi? Earum laudantium, odio, 147 | ab pariatur nulla quidem unde temporibus suscipit error enim quae sint laborum maxime esse aperiam praesentium 148 | accusamus recusandae aliquid velit laboriosam commodi culpa, in veniam eveniet. Tempora inventore, omnis 149 | sint quaerat eos delectus rem molestiae quidem, veniam ratione, iusto odio eum possimus? Eveniet dicta quaerat 150 | laborum incidunt quidem assumenda harum qui. Delectus reiciendis illo blanditiis reprehenderit dolorem repellendus 151 | ducimus ex doloribus! Porro neque autem explicabo. Ad quae, ratione expedita voluptates voluptatem sapiente 152 | vero iste necessitatibus odio optio inventore ex, molestiae doloribus voluptate neque perferendis officiis 153 | natus dolores aperiam? Unde incidunt sequi adipisci minus, quis in assumenda architecto ut laudantium dolorem 154 | veniam illum distinctio odit culpa eligendi doloribus dolorum labore, eum necessitatibus nesciunt facilis? 155 | Perspiciatis, culpa? Neque non dignissimos minus eveniet fuga beatae illo ut a vel quod. Earum, qui est voluptates 156 | autem eveniet, deleniti odio cum quas expedita facilis quos vel velit necessitatibus delectus ex ducimus 157 | libero? Dolore enim fugiat id quaerat sit modi voluptatum ea provident aspernatur consequatur ex quam eaque 158 |
159 | 160 |
161 | adipisci alias consequuntur officia reprehenderit, totam quas necessitatibus tempora placeat cumque! Repudiandae, 162 | ea eos laborum, iusto animi voluptatem, magni fuga dolor non dolorem facere nihil at rem hic modi ratione 163 | molestiae omnis praesentium vel iste quo repellat distinctio. Perspiciatis qui, rem perferendis maiores soluta 164 | porro quo facere iure dolore. Laudantium molestias modi eum nemo hic itaque, sed dolore reprehenderit, dolor 165 | inventore a? Totam accusamus illum modi ipsam ad laboriosam et iusto quas quam? Iusto recusandae accusantium 166 | explicabo necessitatibus corrupti. Ipsa repellendus, labore error quas vel vitae accusamus dolor blanditiis 167 | exercitationem incidunt neque eius natus dicta voluptates quae? Labore, a, tempora voluptates, nisi voluptatem 168 | nihil quae ducimus laborum pariatur unde blanditiis illum placeat molestiae mollitia nesciunt. Qui tenetur 169 | itaque veniam ab cum molestiae eos vitae nisi, ullam, praesentium deleniti consequatur cupiditate atque? 170 | Dolorum earum odio enim deserunt aspernatur, rem quis! Aliquid repellat libero velit cum? Rem molestias voluptatum 171 | adipisci architecto, nostrum voluptate similique nesciunt illo. Omnis impedit quia nisi consequuntur dicta 172 | corporis neque odio? Porro doloribus molestias, id delectus vero quisquam minus eligendi impedit provident 173 | optio, officiis iure velit cumque, autem sunt corrupti rem voluptas rerum excepturi iusto ipsa voluptatum 174 | aperiam dignissimos repellat. Quasi, maiores! Aliquam veritatis similique quidem cumque ipsum labore blanditiis 175 | eaque itaque, maiores, porro, sapiente iure vel? Voluptate quas dolore sapiente, commodi delectus, autem 176 | neque, in expedita molestiae at repellat! Fugit consequuntur mollitia corrupti maxime corporis vel repudiandae 177 | tempore asperiores id aspernatur accusamus aut nam exercitationem delectus quasi possimus culpa necessitatibus 178 | amet quo, doloremque ipsum eligendi. Placeat delectus adipisci, id voluptatum molestiae fugit consequatur 179 | aliquam, reprehenderit dolor labore nihil, cum dolore perspiciatis nisi excepturi debitis ipsum perferendis 180 | voluptates magnam dicta. Esse officiis minima, suscipit dolores odio recusandae voluptatum ipsam, rem iste 181 | ad ducimus. Architecto ad amet esse ab veritatis omnis, animi dolores sapiente, veniam aperiam molestiae 182 | enim id voluptatum. Numquam ducimus dolor fugiat, eaque quos unde veritatis necessitatibus repellat animi 183 | natus dolores cumque omnis nihil placeat explicabo illum consequatur! Sed magnam omnis, ipsam eligendi nulla 184 | ut ea vitae sint, ratione, voluptatem minima ab. Ullam, vel! Ut ipsa omnis officiis quis sequi maxime ducimus, 185 | consequatur autem odio deleniti, optio sunt nisi id! Quae perspiciatis nesciunt vero eveniet voluptatibus. 186 | Obcaecati nulla eveniet, dolor voluptatem vitae maiores eius rem. A nesciunt in unde quos aliquam, molestias 187 | libero ut autem quod recusandae laboriosam assumenda ex, mollitia sed dignissimos, voluptatem provident hic 188 | ipsa. Laborum deserunt distinctio cum atque, saepe, iusto neque nulla praesentium blanditiis voluptate aspernatur 189 | corporis iste obcaecati, repellat labore iure eveniet unde provident commodi ratione illum? Perspiciatis 190 | atque asperiores impedit ipsum voluptatum tempore cumque quidem, ipsam commodi sunt ab quas beatae voluptatibus 191 | quam assumenda recusandae rerum perferendis. Repellendus reiciendis obcaecati dolores nulla ad, quaerat officia 192 | temporibus earum delectus, cumque, quas quis quam doloribus soluta laborum odio quia. Dolore facere earum 193 | eius deleniti minus minima ullam! Dolore delectus magnam commodi beatae maxime maiores quod nesciunt hic 194 | sint possimus laudantium vitae eum numquam eos consequuntur at illo, dolores pariatur ea cumque explicabo 195 | non voluptas quis perspiciatis. Blanditiis placeat commodi quibusdam, amet dignissimos et omnis veritatis, 196 | laudantium, minus hic corrupti ab eaque suscipit expedita aliquid cumque corporis nihil exercitationem! Delectus, 197 | rerum reiciendis maiores eos consectetur doloremque aut sint unde distinctio, dolorum voluptate laboriosam 198 | sit. Voluptatibus consectetur perferendis accusamus, beatae qui accusantium nam. Sapiente provident autem, 199 | labore rerum eum at, deleniti unde amet voluptatum eligendi ullam, hic perferendis sunt et ipsam? Tempore 200 | odio, dolorem explicabo sed minus, accusantium quae perferendis voluptatibus minima illo doloremque natus. 201 | Amet modi corrupti ullam recusandae. Itaque rerum aliquid placeat adipisci fugiat inventore minus, temporibus 202 | quod unde a vel veniam, accusamus, cumque eum voluptatum modi? Pariatur labore reiciendis, error veritatis 203 | sed non inventore voluptatem tenetur quas? Laboriosam, distinctio dicta recusandae natus, rem unde ipsam 204 | rerum officia autem, magni suscipit porro? Tenetur, perspiciatis quae? Officia eius saepe, adipisci voluptatum 205 | tenetur quaerat dignissimos quae sint aspernatur id nostrum esse consequatur veniam molestias. Obcaecati 206 | a id alias veniam itaque! Sed suscipit magnam necessitatibus, numquam deleniti ad impedit voluptatum eos, 207 | aspernatur aliquid rem odit doloribus veritatis. Quidem consectetur aliquid nihil aperiam sapiente doloremque 208 | animi rerum laboriosam necessitatibus voluptates ab, deserunt debitis consequuntur ad voluptate error voluptatum 209 | at unde ut tenetur pariatur perspiciatis eos? Quae, vitae delectus obcaecati odio assumenda repudiandae optio 210 | laboriosam facere aliquam quia beatae similique quisquam asperiores sunt ab earum perferendis consequuntur 211 | placeat odit, autem sit tempore? Ex laboriosam libero sunt voluptas nemo saepe impedit magnam in quaerat 212 | minus sit doloremque quasi quas rerum maxime nobis ipsam adipisci, facilis porro tempora aperiam ut laborum 213 | et? Quod, doloribus blanditiis animi tempora praesentium dolores omnis beatae? Aliquam error illum nesciunt, 214 | in sit fugit accusantium! Odit exercitationem soluta natus et error aperiam voluptatem corrupti illum similique 215 | rerum minus reprehenderit est, aspernatur modi aliquid culpa dolore quidem obcaecati accusantium laboriosam 216 | ab aut at necessitatibus maxime! Accusamus, pariatur. Fuga unde molestias eos adipisci non asperiores, soluta 217 | debitis blanditiis, corrupti perferendis aut repellendus quos dolorum autem? Excepturi assumenda vitae fuga 218 | inventore et porro magni alias perferendis tempore, ad dignissimos quod quia consectetur quasi laborum asperiores 219 | sint atque. Temporibus obcaecati consequatur perspiciatis, maxime a nam harum, corrupti odit voluptatibus 220 | neque vero et, cupiditate accusamus perferendis deserunt totam assumenda incidunt sunt iure. Ratione, earum. 221 | Perspiciatis asperiores quos cum doloremque ipsam numquam eaque, ab a et earum ducimus quaerat. Voluptatem 222 | adipisci modi possimus natus reiciendis, dolore eligendi? Iste distinctio magni vel odit earum fuga doloribus, 223 | cupiditate sapiente fugit atque neque dolor magnam rem labore repellendus doloremque itaque quisquam molestias 224 | veniam nostrum ducimus asperiores ipsum eaque! Nam in consequatur iusto quae, molestiae rerum aliquam dolorum 225 | nemo laborum id aliquid nihil distinctio nostrum porro placeat, cupiditate inventore aspernatur modi unde 226 | doloremque voluptates accusantium est eligendi. Nisi excepturi suscipit voluptates, reiciendis minima exercitationem 227 | veritatis, neque similique unde consequatur ea maxime officia quia nihil quisquam voluptatum voluptatibus, 228 | adipisci laboriosam quasi harum a? Porro, voluptatibus accusamus blanditiis quos provident repudiandae sequi 229 | recusandae. Provident expedita deserunt quia quo est numquam, iusto sit beatae, eos sequi voluptate porro, 230 | ducimus id ipsam odit? Ut, molestiae. Dignissimos quae ab, repellendus nisi laboriosam nam suscipit a dicta 231 | animi nemo perferendis obcaecati rerum explicabo aliquid temporibus earum rem delectus eaque deleniti laudantium. 232 | Doloribus corrupti magni similique nostrum temporibus, obcaecati vero sint nam nesciunt ratione laborum quibusdam 233 | consequuntur quam delectus soluta pariatur quae asperiores accusamus a sed esse eaque natus non? Odio quia 234 | placeat corrupti nesciunt? Recusandae facere repudiandae deserunt voluptatum consequuntur quam animi veniam 235 | repellendus assumenda quos, dolor perferendis amet rerum soluta natus labore est maiores saepe quasi ullam! 236 | Tenetur veniam ad doloremque autem neque. Magni modi, distinctio atque culpa mollitia fugiat sequi natus 237 | nisi deleniti quo maiores impedit corporis eum expedita quibusdam. Consectetur eos repellat neque sunt earum. 238 | Iusto culpa accusamus itaque doloremque aut distinctio obcaecati rerum perferendis, eius, consequuntur ea 239 | quidem accusantium repellendus officia dolorem esse laudantium, at cupiditate tempora natus dolor animi nemo 240 | nulla sed! Iure minus officia assumenda nihil quas suscipit velit consectetur voluptas, itaque nisi at. Iure 241 | nesciunt repellendus aut quas nisi at neque ex? Quam officiis aspernatur sunt nulla eligendi maxime ad molestiae 242 | aliquam optio praesentium eos eius facilis quas dolorem nemo labore consectetur enim quaerat, esse sequi 243 | autem, at excepturi quia? Doloribus, laboriosam dolor commodi provident adipisci molestiae perspiciatis tenetur 244 | suscipit. Numquam est molestiae quasi ea, aliquid quaerat porro! Mollitia consequatur libero at, nisi inventore 245 | ipsum eius harum quos. Sequi, doloremque! Eveniet placeat reprehenderit veritatis quaerat vero a esse explicabo 246 | atque minima nostrum facilis commodi quo illum totam dolorem et, neque, voluptate cumque quia qui sit? Numquam 247 | nam voluptatem rem impedit eius, corrupti, nesciunt minus quaerat rerum molestias reiciendis tempora nulla 248 | sed at. Cumque unde, excepturi magni aperiam repudiandae illo? Ab quos molestias nam id, accusantium voluptate 249 | facilis at nobis nisi iusto tempore libero saepe earum qui nihil animi possimus ea iure voluptatem laboriosam 250 | rem molestiae magnam neque? Ipsam rerum tenetur explicabo deleniti non, rem earum in perferendis quae eaque 251 | libero incidunt? Quos vel nulla nemo. Rerum quam tempore culpa quod explicabo corporis saepe quo cumque. 252 | Sapiente, nisi laborum quidem recusandae fuga magnam provident sed cupiditate doloribus hic reiciendis facere 253 | labore dignissimos atque aspernatur velit eius et, sunt porro voluptatem! Mollitia eum excepturi nobis ipsa 254 | dolor temporibus quisquam, maxime totam reiciendis aut veritatis ab quis iusto, numquam unde consectetur 255 | eveniet esse voluptatibus. Repudiandae ipsam, esse nihil fuga magnam sapiente consectetur aut nobis delectus 256 | nemo possimus ut maiores ex veniam in quas ducimus corporis quibusdam. Expedita, harum quas. Repudiandae 257 | tempora fuga maiores eius voluptatem, cupiditate deleniti reprehenderit minus voluptas laborum natus officia 258 | nam soluta minima quia nobis qui dolorum. Libero pariatur ex enim autem voluptatum inventore ipsam facere 259 | tempore minus deleniti omnis at laborum dignissimos molestias sequi accusantium animi iusto, voluptates dolorem 260 | blanditiis hic nesciunt suscipit doloribus? Ea, molestiae ipsum delectus quis earum explicabo quod consequuntur, 261 | nemo animi consequatur, fugit eos? Ipsam culpa voluptatem dolores nam iure maiores! Libero, rerum consequuntur 262 | dolorem quaerat atque optio ullam veniam omnis pariatur amet nobis rem voluptates, temporibus quidem vero 263 | nemo eveniet accusamus fuga ipsum a debitis repudiandae. Magni, sequi ea quam quidem voluptates dolore praesentium 264 | rerum ab ratione fugit obcaecati quis mollitia molestiae delectus quisquam veniam tempora vel. Tenetur nobis 265 | earum reiciendis odit quo quia delectus consequuntur mollitia quam harum natus, magni possimus alias culpa 266 | vitae similique amet animi quae sed fugit ducimus dolorum assumenda sequi! Dolorem nesciunt autem ipsa voluptates 267 | facilis dolore porro harum itaque. Voluptates quam cum a vero esse nam aperiam error maiores ipsam dolorem 268 | voluptatum consequuntur reprehenderit sit, id facilis et rem. Laboriosam ad modi inventore magnam dolores 269 | voluptatibus rem eligendi vitae consequuntur quos, illo natus facilis veniam itaque suscipit ipsam a harum 270 | dolorum! Mollitia ducimus quasi consequatur, consequuntur hic unde necessitatibus adipisci eveniet exercitationem 271 | vitae dolorem laudantium incidunt harum, asperiores nostrum sapiente? Reiciendis natus est exercitationem 272 | voluptatem impedit nam dolores vel velit tempora repellendus ducimus consequatur tempore eligendi nemo temporibus, 273 | sit explicabo, enim autem et sapiente, debitis id sint animi. Exercitationem quam rem ipsam sequi reiciendis 274 | facere delectus, ad explicabo incidunt minus nostrum totam voluptate aperiam sed praesentium quae molestias 275 | fugiat beatae! Rem fuga minus eveniet illo, voluptatum consequuntur ex voluptate consequatur, error, sit 276 | temporibus. Nesciunt eaque cupiditate laboriosam. Saepe numquam asperiores, totam fuga consequuntur necessitatibus 277 | amet aspernatur blanditiis non tempore eius magni suscipit eligendi quaerat ea nisi pariatur architecto aliquam 278 | assumenda sed quod officia? Sed nostrum rerum magni consequuntur illo sint harum omnis? Enim magnam maiores 279 | voluptas dolore officia sit optio, aut repudiandae sequi minus! Sapiente reprehenderit nobis blanditiis beatae 280 | nemo quibusdam rerum temporibus! Asperiores cumque porro praesentium amet non beatae explicabo at facilis 281 | natus. Eaque, facilis et. Soluta porro maiores saepe totam non. Incidunt vero sed assumenda! Esse beatae 282 | facere cum harum, totam illo eos suscipit, iure architecto nihil optio iste error placeat temporibus, voluptatum 283 | minima reprehenderit veniam? Provident rem minima mollitia accusamus quaerat. Culpa nobis similique in quibusdam 284 | perspiciatis non, placeat fuga iusto beatae error debitis ab aspernatur explicabo hic cum quidem quis eius 285 | alias voluptatum nostrum. Rerum dignissimos enim atque ratione? Minima veniam saepe mollitia. Provident vitae 286 | eaque quasi qui inventore veniam, repellat tempore tenetur impedit ullam fugiat doloribus, sint iusto nesciunt 287 | maiores nemo temporibus delectus quis, fuga quisquam sed! Aliquam magni accusamus molestias similique, adipisci 288 | nisi eum beatae iure exercitationem possimus libero, asperiores dicta esse optio laudantium obcaecati! At 289 | eligendi, natus qui ipsam ullam illo perspiciatis, mollitia eum deserunt ea, eveniet reprehenderit et laborum 290 | delectus incidunt deleniti facilis numquam! In sed dicta distinctio impedit officia amet illo suscipit ipsum, 291 | porro voluptatem ut quas quis laborum, qui exercitationem ex odio optio veniam totam nisi. Veniam dolor eaque 292 | delectus totam modi dignissimos deleniti quisquam obcaecati numquam minima maxime rerum, repellendus doloribus 293 | voluptatibus officia? Maiores voluptate vitae assumenda eligendi officiis praesentium necessitatibus animi 294 | totam nam unde corporis provident voluptatum recusandae ipsum, delectus possimus dignissimos voluptates aliquam, 295 | cupiditate minus incidunt iusto, nesciunt obcaecati. Tempore excepturi eius ducimus! Aliquam alias dolores 296 | adipisci? Ipsa, iure minima obcaecati officia, voluptatem laudantium quos dolores atque saepe recusandae 297 | modi ea ducimus dolor commodi minus facere, tenetur culpa aspernatur alias odit nulla eveniet libero eligendi? 298 | Vero fuga eum ipsa pariatur reiciendis dolores minus. Aliquam quisquam quia cumque ut labore molestiae consectetur 299 | quos? Animi magnam harum quibusdam consectetur quidem optio porro voluptatem expedita earum. Rerum omnis 300 | at laboriosam, voluptates odit aspernatur harum error odio velit soluta perferendis maxime, pariatur sunt! 301 | Qui perferendis debitis ipsam obcaecati accusantium animi assumenda provident in quaerat quam rem odit nobis 302 | dolore, totam ratione expedita? Nemo ratione praesentium saepe illum ipsa dicta, veniam quod? Quos eos sit 303 | quis nam quod nihil facilis ab totam minus? Accusantium obcaecati commodi iusto eius. Iusto perspiciatis 304 | iste perferendis magni ad doloribus non eos veniam architecto commodi, harum nobis nulla illum et qui, earum 305 | sunt quisquam voluptatibus reprehenderit, accusamus consectetur optio odio? Nisi est nam necessitatibus ducimus 306 | facere sit, aperiam tenetur laborum quisquam ullam provident dolor quasi, alias, vel sapiente illo voluptas 307 | libero asperiores. Dolorem veniam reprehenderit natus fuga, iure corporis. Veritatis praesentium itaque consectetur 308 | cumque impedit, voluptate quaerat beatae sequi iure accusantium. Enim provident tempore aliquam tempora quisquam 309 | eveniet at voluptatum dolorum. Excepturi optio ducimus dolorem consectetur saepe ullam! Cupiditate qui consequuntur 310 | voluptas sequi ad nobis vitae odit veniam adipisci a quibusdam doloremque iste harum obcaecati esse illum 311 | ipsam eum commodi illo nesciunt, dolor aspernatur, laborum sint. Id ex culpa ipsum aliquam tempore doloremque 312 | corrupti nobis dolorem, nostrum minus qui. Illum harum numquam et! Praesentium nesciunt recusandae magni 313 | dolores quos esse amet possimus! Perspiciatis quam placeat repellendus vel molestias autem, consequatur a, 314 | distinctio expedita debitis qui facilis corporis molestiae quia hic ratione possimus dolores quae atque enim 315 | numquam. Molestiae laboriosam animi officiis, repellat quasi ut, rerum sed quidem sequi velit pariatur saepe 316 | incidunt maiores voluptas voluptatibus enim cum expedita doloribus magni atque delectus ducimus perferendis? 317 | Consectetur ducimus impedit quas mollitia fugiat nisi omnis, ratione recusandae voluptates, quaerat maiores 318 | repudiandae nesciunt, delectus corrupti ad debitis! Debitis, reprehenderit, commodi nihil rem vitae error 319 | sed, minima tenetur voluptates eveniet deserunt officiis eaque animi ipsa illo? Exercitationem est quis illum 320 | voluptates accusantium harum ratione voluptatibus esse incidunt deleniti aut iste, iusto aperiam. Aperiam 321 | aut, laboriosam natus nam aliquam ratione, cumque, amet esse eveniet deleniti debitis voluptate consequatur 322 | fugit reprehenderit dolorum? Error, officiis! Distinctio recusandae adipisci nihil cumque voluptatibus! Corporis 323 | quia eius nobis blanditiis. Itaque eos inventore, eius distinctio necessitatibus, illo ex assumenda veritatis 324 | similique quisquam temporibus suscipit deleniti nemo magni vel earum nobis rem voluptatem. Et ab numquam 325 | vel nobis, labore dolor explicabo eveniet, vitae, officia illum suscipit doloribus. Vitae laudantium nobis 326 | non fugit consectetur inventore sapiente reiciendis voluptatem iusto libero distinctio, modi doloremque facilis 327 | optio perspiciatis sequi odio illum quo quia? In, quia sit. Iure vitae earum libero et ipsa mollitia ducimus 328 | ex reprehenderit pariatur molestiae eligendi assumenda voluptate esse iste aliquid fuga possimus, veritatis, 329 | commodi autem ad soluta modi doloremque? Fuga optio beatae assumenda veniam magni. Aspernatur commodi fugiat 330 | sunt quod molestiae, enim impedit explicabo illum corporis excepturi voluptatum, numquam facere eligendi, 331 | consectetur nulla rem vel animi adipisci beatae iste? Et, autem. Aut aspernatur tenetur unde cupiditate quibusdam 332 | natus id, laboriosam eveniet assumenda sint. Non quasi enim neque hic quos nisi eius, amet, possimus voluptatem 333 | at, natus quis. Magni, eos, rem totam quis incidunt esse voluptatibus cumque rerum corporis minima nemo omnis 334 | quam itaque ullam similique unde debitis aliquam voluptate enim maxime tempore reprehenderit dicta ipsa natus. 335 | Repudiandae soluta suscipit rerum, amet quasi, repellat ratione voluptatem, tempora similique consequuntur 336 | perferendis voluptatibus vitae. Explicabo cumque at reiciendis facere recusandae ipsa exercitationem eaque, 337 | eveniet alias facilis consectetur laudantium deleniti voluptates magni animi quae. Eum quaerat alias nihil, 338 | est numquam facere maiores exercitationem eligendi assumenda ipsam omnis enim suscipit vel iusto, voluptatum, 339 | officiis maxime fugit eos odio quis ullam distinctio! Delectus voluptatum vitae consequatur sit eius, sunt 340 | velit in animi est quos, autem earum dicta ex at? Voluptate tenetur eaque dolores, voluptatum dolore, molestiae 341 | libero corrupti quidem vitae reprehenderit ut quis tempore, asperiores neque blanditiis commodi magnam error 342 | pariatur non? Architecto soluta accusantium alias autem consequatur asperiores itaque sint deserunt, sed 343 | quae reprehenderit assumenda ipsa neque atque est provident voluptate laboriosam, unde vitae. Dicta vero, 344 | consequatur laborum et eligendi, accusamus quod eveniet architecto nam, tenetur porro animi commodi eum temporibus 345 | rerum. Perspiciatis accusamus sit laboriosam asperiores, excepturi suscipit, nam minima, provident corporis 346 | rerum eligendi sint ab non at odit ullam corrupti voluptatem adipisci possimus minus quas. Ratione atque 347 | alias officia. Beatae adipisci voluptatem a provident et dicta sit quae culpa ipsam doloremque odit iste 348 | officia consequatur aspernatur illo consectetur aperiam, sequi nemo repudiandae non ea. Nemo eius excepturi 349 | vero veniam labore recusandae obcaecati culpa voluptas ipsum iusto corporis, quibusdam, eum deleniti quidem, 350 | nostrum unde dolor ex non laborum illo quia sed? Minus sed est reiciendis velit optio dignissimos quae ut 351 | possimus sint quod, amet iure id, excepturi ad officiis doloremque voluptatibus magnam in. Ad quisquam odio 352 | nam quae quaerat fuga consequatur sed rem ea. Corporis quia hic voluptatum, reiciendis fugit, atque facere 353 | praesentium recusandae quam deleniti perferendis qui aliquid reprehenderit. Ab animi repellat quos tempore 354 | error odio sed consequuntur consequatur dignissimos adipisci quo placeat velit aspernatur sint cupiditate 355 | eius quidem, perspiciatis accusamus. At consectetur sequi, dignissimos, labore expedita ut mollitia nesciunt 356 | soluta reiciendis doloribus id non, dolor sit nihil magni harum est. Sit voluptatem delectus ratione accusantium 357 | iusto, aliquid deserunt dolores sequi illo, quod cupiditate quidem esse accusamus cum nemo autem nulla assumenda 358 | eius harum! Aspernatur quasi eligendi veniam neque voluptas minus repellat at esse ullam nostrum eveniet 359 | doloribus quo ad totam quos, nesciunt vero deserunt iusto molestias sed. Qui aperiam quod dolor, dignissimos 360 | molestias nisi fuga, voluptates libero ducimus sed placeat cupiditate praesentium quibusdam quos? Officia 361 | impedit libero nisi possimus, expedita deserunt tempore similique necessitatibus mollitia quibusdam quis 362 | doloribus aliquam explicabo? Quasi quae, unde, alias dicta iusto atque voluptas, dolor veniam voluptatum 363 | hic accusantium ex dolorem. Maiores quis reiciendis perferendis eveniet a quod fugit tempore sapiente dicta, 364 | aliquam omnis officia illo officiis doloribus consequatur sint voluptas, voluptatum, tenetur eligendi id. 365 | Neque harum dicta libero? Sed facilis eaque, veritatis eius quod alias, obcaecati fugit, qui nemo ipsum adipisci 366 | nulla necessitatibus ut tenetur voluptatum vel quos! Molestias sint atque aspernatur impedit expedita officia 367 | officiis sit sapiente quo tempora? Inventore magnam ducimus repellat fugiat accusantium? Porro ipsa laboriosam 368 | tempora quisquam est error perferendis laudantium similique a, autem quas quasi excepturi provident ut minus 369 | incidunt ea sapiente rem, natus exercitationem, velit possimus corporis? Quasi, ratione id quis atque repellat 370 | quibusdam beatae ipsa praesentium sunt? 371 |
372 | 373 |
374 | 377 |
378 | 387 | 388 | 389 | --------------------------------------------------------------------------------