diff --git a/.babelrc b/.babelrc index eafcfa0d6..a178a812b 100644 --- a/.babelrc +++ b/.babelrc @@ -4,13 +4,20 @@ "transform-runtime", "add-module-exports", "transform-decorators-legacy", - "transform-react-display-name" + "transform-react-display-name", + ["system-import-transformer", {"modules": "common"}] ], "env": { "development": { "plugins": [ "typecheck" ] + }, + "production": { + "plugins": [ + "transform-react-inline-elements", + "transform-react-constant-elements" + ] } } } diff --git a/.gitignore b/.gitignore index c2d5dcfa6..135ab60a2 100644 --- a/.gitignore +++ b/.gitignore @@ -3,8 +3,10 @@ build node_modules /node_modules static/dist +dist test-results.xml npm-debug.log +npm-debug.log.* webpack-stats.json webpack-assets.json bundle-stats.json @@ -12,4 +14,4 @@ selenium-debug.log tests/functional/output/* test/functional/screenshots/* .ssh -webpack-stats.debug.json \ No newline at end of file +webpack-stats.debug.json diff --git a/.npmrc b/.npmrc new file mode 100644 index 000000000..1dab4ed4c --- /dev/null +++ b/.npmrc @@ -0,0 +1 @@ +save-exact = true diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..798e38995 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +6.3.0 diff --git a/.travis.yml b/.travis.yml index 32099e761..e14961bd0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,8 @@ sudo: false language: node_js env: TEST_SUITE=unit -node_js: - - "5.6.0" +# Node version is handled inside `.nvmrc` file & travis picks it up automatically because it uses `nvm` +# https://docs.travis-ci.com/user/languages/javascript-with-nodejs#Using-.nvmrc cache: directories: - node_modules diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 2977cc995..219a7a38c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -14,6 +14,7 @@ Found a problem? Want a new feature? Pull requests are the greatest contributions, so be sure they are focused in scope, and do avoid unrelated commits. 1. To begin, [fork this project], clone your fork, and add our [upstream]. + ```bash # Clone your fork of the repository into the current directory git clone https://github.com//quran.com-frontend @@ -26,8 +27,17 @@ Pull requests are the greatest contributions, so be sure they are focused in sco # Install the tools necessary for development npm install ``` +2. Pull latest changes from "upstream" and push these changes to your "origin"(forked) + > NOTE - This step will repeat every time You plan to contribute + + ```bash + # Pull latest changes from "upstream" repository + git pull upstream master + #Push latest changes to Your "origin" repository + git push origin master + ``` +3. Create a branch for your feature or fix: -2. Create a branch for your feature or fix: ```bash # Move into a new branch for a feature git checkout -b feature/thing @@ -37,7 +47,8 @@ Pull requests are the greatest contributions, so be sure they are focused in sco git checkout -b fix/something ``` -3. Be sure your code follows our practices. +4. Be sure your code follows our practices. + ```bash # Test current code npm run test @@ -49,7 +60,8 @@ Pull requests are the greatest contributions, so be sure they are focused in sco nightwatch --test tests/functional/specs/Index_spec.js ``` -4. To create a PR you need to push your branch to the origin(forked) remote and then press some buttons on GitHub: +5. To create a PR you need to push your branch to the origin(forked) remote and then press some buttons on GitHub: + ```bash # Push a feature branch git push -u origin feature/thing @@ -61,7 +73,7 @@ Pull requests are the greatest contributions, so be sure they are focused in sco This will create the branch on your GitHub project. The ```-u``` flag links this branch with the remote one, so that in the future, you can simply type ```git push origin```. -5. Now [open a pull request] with a clear title and description. +6. Now [open a pull request] with a clear title and description. ## Sever-side integration Unless you have the backend API running locally, you will need to update the `API_URL`, in `development.env` file, from `localhost` to `api.quran.com`. Leave the port number same. diff --git a/Dockerfile b/Dockerfile index 2e8a1e068..e3f6568dc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,10 +1,11 @@ -FROM node:5.10.0 +FROM node:6.3 ENV NODE_ENV production ENV API_URL http://api.quran.com:3000 ENV SENTRY_KEY_CLIENT https://44c105328ae544ae9928f9eb74b40061@app.getsentry.com/80639 ENV SENTRY_KEY_SERVER https://44c105328ae544ae9928f9eb74b40061:41ca814d33124e04ab450104c3938cb1@app.getsentry.com/80639 ENV PORT 8000 +ENV NODE_PATH "./src" RUN apt-get -y update && apt-get -y install supervisor ssh rsync @@ -17,7 +18,7 @@ RUN cp /etc/cron.daily/logrotate /etc/cron.hourly # cache npm install when package.json hasn't changed WORKDIR /tmp ADD package.json package.json -RUN npm install +RUN npm install --silent --no-progress RUN npm install -g pm2 RUN mkdir /quran @@ -25,7 +26,8 @@ RUN cp -a /tmp/node_modules /quran WORKDIR /quran ADD . /quran/ -RUN npm run build +RUN npm run build:client +RUN npm run build:server # ssh keys WORKDIR /root @@ -38,5 +40,7 @@ RUN rsync --update --progress -raz . ahmedre@rsync.keycdn.com:zones/assets/ # go back to /quran WORKDIR /quran +ENV NODE_PATH "./dist" + EXPOSE 8000 CMD ["supervisord", "--nodaemon", "-c", "/etc/supervisor/supervisord.conf"] diff --git a/README.md b/README.md index f76fa2d46..71c29abb7 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ To start the app, run `npm run dev` which will run both the server and the clien ## Backend Current at: https://github.com/quran/quran-api-rails -DB is private, message me for acceess. +DB is private, message me for access. ## Design @@ -40,8 +40,6 @@ subl bundle-stats.json #so that you can the output analyze-bundle-size bundle-stats.json ``` -## [View project issues on waffle.io...](https://waffle.io/quran/quran.com-frontend) - [Reactjs]: https://facebook.github.io/react/docs/getting-started.html [Redux]: http://redux.js.org/ [Expressjs]: http://expressjs.com/en/starter/hello-world.html diff --git a/start.js b/bin/server.js similarity index 68% rename from start.js rename to bin/server.js index cf7b827a4..d15b1ea68 100644 --- a/start.js +++ b/bin/server.js @@ -1,9 +1,12 @@ require('dotenv').load(); require('app-module-path').addPath(__dirname); -require('app-module-path').addPath('./src'); +require('app-module-path').addPath('../src'); var fs = require('fs'); +var path = require('path'); +var webpackIsomorphicTools = require('webpack-isomorphic-tools'); var babelrc = fs.readFileSync('./.babelrc'); +var rootDir = path.resolve(__dirname, '..'); var config; try { @@ -13,8 +16,6 @@ try { console.error(err); } -config.plugins.push(['system-import-transformer', {modules: 'common'}]); - require('babel-register')(config); global.__CLIENT__ = false; @@ -30,12 +31,8 @@ if (__DEVELOPMENT__) { } } -var webpackIsomorphicTools = require('webpack-isomorphic-tools'); -// this must be equal to your Webpack configuration "context" parameter -var rootPath = require('path').resolve(__dirname, './') - -global.webpack_isomorphic_tools = new webpackIsomorphicTools(require('./webpack/isomorphic-tools-configuration')) +global.webpack_isomorphic_tools = new webpackIsomorphicTools(require('../webpack/isomorphic-tools-configuration')) .development(process.env.NODE_ENV === 'development') -.server(rootPath, function() { - require('./server.js')(); +.server(rootDir, function() { + require('../src/server.js')(); }); diff --git a/bin/server.prod.js b/bin/server.prod.js new file mode 100644 index 000000000..6695c6c4f --- /dev/null +++ b/bin/server.prod.js @@ -0,0 +1,17 @@ +require('dotenv').load(); +require('app-module-path').addPath(__dirname); +require('app-module-path').addPath('../dist'); + +var webpackIsomorphicTools = require('webpack-isomorphic-tools'); +var path = require('path'); +var rootDir = path.resolve(__dirname, '../dist'); + +global.__CLIENT__ = false; +global.__SERVER__ = true; +global.__DEVELOPMENT__ = process.env.NODE_ENV !== 'production'; + +global.webpack_isomorphic_tools = new webpackIsomorphicTools(require('../webpack/isomorphic-tools-configuration')) +.development(__DEVELOPMENT__) +.server(rootDir, function() { + require('../dist/server.js')(); +}); diff --git a/bootstrap.config.prod.js b/bootstrap.config.prod.js deleted file mode 100644 index e8ef41741..000000000 --- a/bootstrap.config.prod.js +++ /dev/null @@ -1,4 +0,0 @@ -const bootstrapConfig = require('./bootstrap.config.js'); -const ExtractTextPlugin = require('extract-text-webpack-plugin'); -bootstrapConfig.styleLoader = ExtractTextPlugin.extract('style-loader', 'css-loader!sass-loader'); -module.exports = bootstrapConfig; diff --git a/docker/supervisord.conf b/docker/supervisord.conf index 3591b6284..54d4bd035 100644 --- a/docker/supervisord.conf +++ b/docker/supervisord.conf @@ -2,7 +2,7 @@ nodaemon=true [program:pm2] -command=pm2 start /quran/start.js -i 4 --no-daemon +command=pm2 start /quran/bin/server.prod.js -i 0 --no-daemon directory=/quran redirect_stderr=true stdout_logfile=/dev/stdout diff --git a/package.json b/package.json index 120cdff41..242a0cc72 100644 --- a/package.json +++ b/package.json @@ -2,164 +2,167 @@ "name": "quran", "version": "1.0.0", "private": false, + "repository": "https://github.com/quran/quran.com-frontend", "scripts": { "test": "npm run test:dev:unit", - "test:ci:unit": "./node_modules/karma/bin/karma start --browsers PhantomJS --single-run; npm run test:ci:lint", - "test:ci:functional": "BROWSER=phantomjs bash tests/functional/test.sh start-ci", - "posttest:ci:functional": "bash tests/functional/test.sh stop", "test:ci:unit": "karma start --browsers PhantomJS --single-run; npm run test:ci:lint", + "test:ci:functional": "BROWSER=phantomjs ./tests/functional/test.sh start-ci", + "posttest:ci:functional": "./tests/functional/test.sh stop", "test:dev:unit": "karma start", "test:ci:lint": "eslint ./src/**/*.js", - "test:dev:unit": "./node_modules/karma/bin/karma start", - "test:dev:functional": "BROWSER=chrome bash tests/functional/test.sh start", - "posttest:dev:functional": "bash tests/functional/test.sh stop", + "test:dev:functional": "BROWSER=chrome ./tests/functional/test.sh start", + "posttest:dev:functional": "./tests/functional/test.sh stop", "test:dev:lint": "eslint ./src/scripts/**/*.js", - "test:stylelint": "stylelint './src/**/*.scss' --config webpack/.stylelintrc", - "dev": "node webpack/dev-server.js & PORT=8000 node start.js", - "start": "NODE_PATH=\"./src\" node ./start", - "build": "node ./node_modules/webpack/bin/webpack.js --config webpack/prod.config.js", + "test:stylelint": "stylelint './src/**/*.scss' --config ./webpack/.stylelintrc", + "dev": "env NODE_PATH='./src' PORT=8000 UV_THREADPOOL_SIZE=100 node ./webpack/webpack-dev-server.js & env NODE_PATH='./src' PORT=8000 node ./bin/server.js", + "start": "NODE_PATH='src' node ./start", + "build": "npm run build:client & npm run build:server", + "build:server": "babel ./src -d ./dist -D", + "build:client": "webpack --config ./webpack/prod.config.js", "validate": "npm ls", - "analyze:build": "env NODE_ENV=production ./node_modules/webpack/bin/webpack.js --json --config webpack/prod.config.js > bundle-stats.json", + "analyze:build": "env NODE_ENV=production webpack --json --config ./webpack/prod.config.js > bundle-stats.json", "analyze:json": "webpack-bundle-size-analyzer bundle-stats.json" }, "engines": { - "node": ">= 5.1.0" + "node": ">= 6.3.0" }, "dependencies": { - "app-module-path": "^1.0.2", - "autoprefixer-loader": "^3.1.0", - "babel": "^6.5.2", - "babel-loader": "^6.2.4", - "babel-plugin-add-module-exports": "^0.1.4", - "babel-plugin-system-import-transformer": "^2.0.0", - "babel-plugin-transform-decorators-legacy": "^1.3.4", - "babel-plugin-transform-react-display-name": "^6.5.0", - "babel-plugin-transform-runtime": "^6.7.5", - "babel-plugin-typecheck": "^3.8.0", - "babel-polyfill": "^6.7.4", - "babel-preset-es2015": "^6.6.0", - "babel-preset-es2015-webpack": "^6.4.1", - "babel-preset-react": "^6.5.0", - "babel-preset-stage-0": "^6.5.0", - "babel-register": "^6.7.2", - "babel-runtime": "^6.6.1", - "body-parser": "^1.14.1", - "bootstrap-loader": "^1.0.10", - "bootstrap-sass": "~3.3.1", - "bootstrap-sass-loader": "^1.0.9", - "bundle-loader": "~0.5.0", - "cache-manager": "^1.1.0", - "clean-webpack-plugin": "^0.1.8", - "compression": "^1.6.0", - "cookie-parser": "^1.3.5", - "copy-to-clipboard": "^1.0.4", - "cors": "^2.7.1", - "crypto-js": "^3.1.6", - "css-loader": "^0.23.1", - "debug": "^2.2.0", - "dotenv": "^1.2.0", - "errorhandler": "^1.4.2", - "express": "^4.3.2", - "express-state": "^1.2.0", - "express-useragent": "^0.2.0", - "extract-text-webpack-plugin": "^1.0.1", - "file-loader": "^0.8.4", - "fontfaceobserver": "^1.7.1", - "html-webpack-plugin": "^1.4.0", - "http-proxy": "^1.13.2", - "humps": "^1.0.0", - "imports-loader": "^0.6.3", - "jquery": "^2.1.4", - "json-loader": "~0.5.1", - "morgan": "^1.6.1", - "node-sass": "^3.2.0", - "normalizr": "^2.0.0", - "phantomjs": "^1.9.18", - "pretty-error": "^2.0.0", - "promise": "^7.0.4", - "proxy-middleware": "^0.14.0", - "qs": "^6.1.0", - "raven": "^0.11.0", - "raw-loader": "^0.5.1", - "react": "^0.14.8", - "react-bootstrap": "^0.29.5", - "react-cookie": "^0.3.4", - "react-dom": "^0.14.0", - "react-helmet": "^3.1.0", - "react-metrics": "^1.1.0", - "react-paginate": "^0.4.0", - "react-redux": "^4.4.1", - "react-router": "^2.4.1", - "react-router-bootstrap": "^0.20.1", - "react-router-redux": "^4.0.0", - "react-router-scroll": "^0.2.0", - "react-scroll": "^1.0.4", - "redux": "^3.3.1", - "redux-connect": "^2.4.0", - "reselect": "^2.5.1", - "resolve-url": "^0.2.1", + "app-module-path": "1.0.2", + "autoprefixer-loader": "3.2.0", + "babel-cli": "6.11.4", + "babel-core": "6.13.2", + "babel-loader": "6.2.4", + "babel-plugin-add-module-exports": "0.1.4", + "babel-plugin-system-import-transformer": "2.2.1", + "babel-plugin-transform-decorators-legacy": "1.3.4", + "babel-plugin-transform-react-constant-elements": "6.9.1", + "babel-plugin-transform-react-display-name": "6.8.0", + "babel-plugin-transform-react-inline-elements": "6.8.0", + "babel-plugin-transform-runtime": "6.12.0", + "babel-plugin-typecheck": "3.9.0", + "babel-polyfill": "6.13.0", + "babel-preset-es2015": "6.13.2", + "babel-preset-react": "6.11.1", + "babel-preset-stage-0": "6.5.0", + "babel-register": "6.11.6", + "babel-runtime": "6.11.6", + "body-parser": "1.15.2", + "bootstrap-loader": "1.1.0", + "bootstrap-sass": "3.3.7", + "bootstrap-sass-loader": "1.0.10", + "bundle-loader": "0.5.4", + "cache-manager": "1.5.0", + "clean-webpack-plugin": "0.1.10", + "compression": "1.6.2", + "cookie-parser": "1.4.3", + "copy-to-clipboard": "1.1.1", + "cors": "2.7.1", + "crypto-js": "3.1.6", + "css-loader": "0.23.1", + "debug": "2.2.0", + "dotenv": "1.2.0", + "errorhandler": "1.4.3", + "express": "4.14.0", + "express-state": "1.4.0", + "express-useragent": "0.2.4", + "extract-text-webpack-plugin": "2.0.0-beta.3", + "file-loader": "0.8.5", + "fontfaceobserver": "1.7.3", + "html-webpack-plugin": "1.7.0", + "http-proxy": "1.14.0", + "humps": "1.1.0", + "imports-loader": "0.6.5", + "jquery": "2.2.4", + "json-loader": "0.5.4", + "morgan": "1.7.0", + "node-sass": "3.8.0", + "normalizr": "2.2.1", + "pretty-error": "2.0.0", + "promise": "7.1.1", + "proxy-middleware": "0.14.0", + "qs": "6.2.1", + "raven": "0.11.0", + "raw-loader": "0.5.1", + "react": "0.14.8", + "react-bootstrap": "0.29.5", + "react-cookie": "0.3.4", + "react-dom": "0.14.8", + "react-helmet": "3.1.0", + "react-metrics": "1.2.1", + "react-paginate": "0.4.3", + "react-redux": "4.4.5", + "react-router": "2.6.1", + "react-router-bootstrap": "0.20.1", + "react-router-redux": "4.0.5", + "react-router-scroll": "0.2.1", + "react-scroll": "1.2.0", + "redux": "3.5.2", + "redux-connect": "2.4.0", + "reselect": "2.5.3", + "resolve-url": "0.2.1", "sass-loader": "2.0.1", - "serialize-javascript": "^1.0.0", - "serve-favicon": "^2.2.1", - "sitemap": "^1.5.0", - "strip-loader": "^0.1.2", - "style-loader": "^0.13.1", - "superagent": "^1.2.0", - "url": "^0.11.0", - "url-loader": "~0.5.5", - "webpack": "2.1.0-beta.7", - "webpack-isomorphic-tools": "^2.2.41", - "winston": "^1.1.2" + "serialize-javascript": "1.3.0", + "serve-favicon": "2.3.0", + "sitemap": "1.8.1", + "strip-loader": "0.1.2", + "style-loader": "0.13.1", + "superagent": "1.8.4", + "url": "0.11.0", + "url-loader": "0.5.7", + "webpack": "2.1.0-beta.20", + "webpack-isomorphic-tools": "2.5.7", + "winston": "1.1.2" }, "devDependencies": { - "babel-core": "^6.7.7", - "babel-eslint": "^6.0.4", - "babel-plugin-react-transform": "^2.0.2", - "babel-preset-react-hmre": "^1.1.1", - "chai": "^3.0.0", - "chromedriver": "^2.19.0", - "del": "^2.0.2", - "enzyme": "^2.2.0", - "eslint": "^2.13.0", - "eslint-config-airbnb": "^9.0.1", - "eslint-loader": "^1.3.0", - "eslint-plugin-import": "^1.8.1", - "eslint-plugin-jsx-a11y": "^1.5.3", - "eslint-plugin-react": "^5.2.2", - "jscs": "^2.1.1", - "karma": "^0.13.9", - "karma-chai": "^0.1.0", - "karma-chai-sinon": "^0.1.5", - "karma-chrome-launcher": "^0.2.0", - "karma-junit-reporter": "^0.3.4", - "karma-mocha": "^0.2.0", + "babel-eslint": "6.0.4", + "babel-plugin-react-transform": "2.0.2", + "babel-preset-react-hmre": "1.1.1", + "chai": "3.0.0", + "chromedriver": "2.22.2", + "del": "2.0.2", + "enzyme": "2.2.0", + "eslint": "2.13.0", + "eslint-config-airbnb": "9.0.1", + "eslint-loader": "1.3.0", + "eslint-plugin-import": "1.8.1", + "eslint-plugin-jsx-a11y": "1.5.3", + "eslint-plugin-react": "5.2.2", + "jscs": "2.1.1", + "karma": "1.2.0", + "karma-chai": "0.1.0", + "karma-chai-sinon": "0.1.5", + "karma-chrome-launcher": "0.2.0", + "karma-junit-reporter": "0.3.4", + "karma-mocha": "0.2.0", "karma-phantomjs-launcher": "~0.2.1", "karma-script-launcher": "~0.1.0", - "karma-sinon": "^1.0.4", - "karma-sourcemap-loader": "^0.3.7", - "karma-webpack": "^1.6.0", - "mocha": "^2.2.5", - "nodemon": "^1.7.1", - "path": "^0.11.14", - "phantomjs": "^1.9.20", + "karma-sinon": "1.0.4", + "karma-sourcemap-loader": "0.3.7", + "karma-webpack": "1.8.0", + "mocha": "2.2.5", + "nodemon": "1.7.1", + "path": "0.11.14", + "phantomjs": "1.9.20", "phantomjs-polyfill": "0.0.1", - "piping": "^0.3.0", - "pre-commit": "^1.1.3", - "react-addons-test-utils": "^0.14.7", - "react-transform-catch-errors": "^1.0.0", - "react-transform-hmr": "^1.0.1", - "redbox-react": "^1.1.1", - "redux-devtools": "^3.1.1", - "redux-devtools-dock-monitor": "^1.1.0", - "redux-devtools-log-monitor": "^1.0.5", - "selenium-server": "^2.48.2", - "sinon": "^1.15.3", - "sinon-chai": "^2.8.0", - "stylelint-webpack-plugin": "^0.2.0", - "wdio-mocha-framework": "^0.3.7", + "piping": "0.3.0", + "pre-commit": "1.1.3", + "react-addons-test-utils": "0.14.7", + "react-transform-catch-errors": "1.0.0", + "react-transform-hmr": "1.0.1", + "redbox-react": "1.1.1", + "redux-devtools": "3.1.1", + "redux-devtools-dock-monitor": "1.1.0", + "redux-devtools-log-monitor": "1.0.5", + "selenium-server": "2.48.2", + "sinon": "1.15.3", + "sinon-chai": "2.8.0", + "stylelint": "7.1.0", + "stylelint-webpack-plugin": "0.2.0", + "wdio-mocha-framework": "0.3.7", "wdio-spec-reporter": "0.0.3", "webdriverio": "4.2.1", - "webpack-dev-server": "^1.6.5" + "webpack-dev-server": "1.6.5", + "webpack-hot-middleware": "2.12.2" }, "pre-commit": [ "test:dev:lint", diff --git a/client.js b/src/client.js similarity index 84% rename from client.js rename to src/client.js index b4491dd80..6ee43334d 100644 --- a/client.js +++ b/src/client.js @@ -15,10 +15,10 @@ import { syncHistoryWithStore } from 'react-router-redux'; import debug from 'debug'; -import config from 'config'; -import ApiClient from './src/helpers/ApiClient'; -import createStore from './src/redux/create'; -import routes from './src/routes'; +import config from './config'; +import ApiClient from './helpers/ApiClient'; +import createStore from './redux/create'; +import routes from './routes'; const client = new ApiClient(); const store = createStore(browserHistory, client, window.reduxData); @@ -40,16 +40,6 @@ window.clearCookies = () => { reactCookie.remove('isFirstTime'); }; -// Init tooltip -if (typeof window !== 'undefined') { - $(() => { - $(document.body).tooltip({ - selector: '[data-toggle="tooltip"]', - animation: false - }); - }); -} - match({ history, routes: routes() }, (error, redirectLocation, renderProps) => { const component = ( setRepeat({ ...repeat, from: parseInt(event.target.value, 10), - to: parseInt(event.target.value, 10) + to: parseInt(event.target.value, 10) + 3 })} > { diff --git a/src/components/Audioplayer/index.js b/src/components/Audioplayer/index.js index 05382fd7e..eaf4a6aa0 100644 --- a/src/components/Audioplayer/index.js +++ b/src/components/Audioplayer/index.js @@ -3,7 +3,7 @@ import { connect } from 'react-redux'; import { camelize } from 'humps'; // Redux -import * as AudioActions from '../../redux/modules/audioplayer'; +import * as AudioActions from '../../redux/actions/audioplayer'; // Components import Track from './Track'; @@ -27,7 +27,6 @@ export class Audioplayer extends Component { currentAyah: PropTypes.string, buildOnClient: PropTypes.func.isRequired, isLoadedOnClient: PropTypes.bool.isRequired, - isSupported: PropTypes.bool.isRequired, isLoading: PropTypes.bool.isRequired, play: PropTypes.func.isRequired, pause: PropTypes.func.isRequired, @@ -60,7 +59,11 @@ export class Audioplayer extends Component { return buildOnClient(surah.id); } - return this.handleAddFileListeners(currentFile); + if (currentFile) { + return this.handleAddFileListeners(currentFile); + } + + return false; } componentWillReceiveProps(nextProps) { @@ -248,7 +251,7 @@ export class Audioplayer extends Component { handleAddFileListeners(file) { const { update, currentTime } = this.props; // eslint-disable-line no-shadow - debug('component:Audioplayer', `Attaching listeners to ${file.src}`); + console.log('component:Audioplayer', `Attaching listeners to ${file.src}`); // Preload file file.setAttribute('preload', 'auto'); @@ -345,6 +348,7 @@ export class Audioplayer extends Component { renderPreviousButton() { const { currentAyah, files } = this.props; + if (!files) return false; const index = Object.keys(files).findIndex(id => id === currentAyah); return ( @@ -359,6 +363,7 @@ export class Audioplayer extends Component { renderNextButton() { const { surah, currentAyah } = this.props; + if (!surah) return false; const isEnd = surah.ayat === parseInt(currentAyah.split(':')[1], 10); return ( @@ -381,7 +386,6 @@ export class Audioplayer extends Component { isLoading, currentAyah, currentTime, - isSupported, duration, surah, isLoadedOnClient, @@ -390,14 +394,6 @@ export class Audioplayer extends Component { setRepeat // eslint-disable-line no-shadow } = this.props; - if (!isSupported) { - return ( -
  • - Your browser does not support this audio. -
  • - ); - } - if (isLoading) { return (
  • @@ -458,7 +454,6 @@ const mapStateToProps = (state, ownProps) => ({ currentFile: state.audioplayer.currentFile, currentAyah: state.audioplayer.currentAyah, surahId: state.audioplayer.surahId, - isSupported: state.audioplayer.isSupported, isPlaying: state.audioplayer.isPlaying, isLoadedOnClient: state.audioplayer.isLoadedOnClient, isLoading: state.audioplayer.isLoading, diff --git a/src/components/Ayah/index.js b/src/components/Ayah/index.js index 193522f36..58e9b9cf9 100644 --- a/src/components/Ayah/index.js +++ b/src/components/Ayah/index.js @@ -8,11 +8,13 @@ import debug from '../../helpers/debug'; const styles = require('./style.scss'); +/* eslint-disable no-unused-vars */ const CHAR_TYPE_WORD = 1; -const CHAR_TYPE_END = 2; // eslint-disable-line no-unused-vars -const CHAR_TYPE_PAUSE = 3; // eslint-disable-line no-unused-vars -const CHAR_TYPE_RUB = 4; // eslint-disable-line no-unused-vars -const CHAR_TYPE_SAJDAH = 5; // eslint-disable-line no-unused-vars +const CHAR_TYPE_END = 2; +const CHAR_TYPE_PAUSE = 3; +const CHAR_TYPE_RUB = 4; +const CHAR_TYPE_SAJDAH = 5; +/* eslint-enable no-unused-vars */ export default class Ayah extends Component { static propTypes = { @@ -92,7 +94,7 @@ export default class Ayah extends Component { let position = -1; let text = ayah.words.map(word => { let id = null; - const className = `${word.className} ${word.highlight && word.highlight}`; + const className = `${word.className} ${word.highlight ? word.highlight : ''}`; if (word.charTypeId === CHAR_TYPE_WORD) { position = position + 1; @@ -110,12 +112,8 @@ export default class Ayah extends Component { id={id} onClick={(event) => onWordClick(event.target.dataset.key)} data-key={`${word.ayahKey}:${position}`} - className={`${className} pointer`} - data-toggle="tooltip" - data-trigger="hover" - data-placement="top" - data-original-title={tooltipContent} - title={tooltipContent} + className={`${className} ${styles.Tooltip}`} + aria-label={tooltipContent} dangerouslySetInnerHTML={{__html: word.code}} /> ); diff --git a/src/components/Ayah/style.scss b/src/components/Ayah/style.scss index 11c5b7089..3e78a693f 100644 --- a/src/components/Ayah/style.scss +++ b/src/components/Ayah/style.scss @@ -1,4 +1,5 @@ -@import '../../styles/variables.scss'; +@import '../../styles/variables'; +@import '../../styles/partials/_tooltip'; .container{ padding: 2.5% 0%; @@ -84,7 +85,7 @@ color: #000; width: 100%; overflow-wrap: break-word; - line-height: 150%; + line-height: 1.5; word-break: break-all; text-align: right; float: left; @@ -101,9 +102,10 @@ } .line{ + direction: rtl; b{ float: none; - display: inline; + display: inline-block; } } @@ -114,7 +116,7 @@ color: #000; &:hover{ color: $brand-primary; - cursor: pointer; + cursor: help; } &:focus{ color: $brand-primary-darker-10; diff --git a/src/components/ContentDropdown/index.js b/src/components/ContentDropdown/index.js index 01b1822fb..190b2915c 100644 --- a/src/components/ContentDropdown/index.js +++ b/src/components/ContentDropdown/index.js @@ -4,6 +4,22 @@ import MenuItem from 'react-bootstrap/lib/MenuItem'; const style = require('./style.scss'); +const compareAlphabetically = property => + (previous, next) => { + const previousText = previous[property].toUpperCase(); + const nextText = next[property].toUpperCase(); + + if (previousText < nextText) { + return -1; + } + + if (previousText > nextText) { + return 1; + } + + return 0; + }; + // To save API calls. export const slugs = [ { @@ -426,7 +442,7 @@ export const slugs = [ id: 56, type: 'transliteration' } -].sort((current, next) => current.name - next.name); +].sort(compareAlphabetically('name')); export default class ContentDropdown extends Component { static propTypes = { diff --git a/src/components/FontStyles/index.js b/src/components/FontStyles/index.js index a887bb375..b147dbe2e 100644 --- a/src/components/FontStyles/index.js +++ b/src/components/FontStyles/index.js @@ -1,7 +1,7 @@ import React, { Component, PropTypes } from 'react'; import { connect } from 'react-redux'; import { fontFaceStyle, fontFaceStyleLoaded } from '../../helpers/buildFontFaces'; -import { load } from 'redux/modules/fontFaces'; +import { load } from 'redux/actions/fontFace.js'; import debug from 'helpers/debug'; import selector from './selector'; diff --git a/src/components/Home/LastVisit/index.js b/src/components/Home/LastVisit/index.js new file mode 100644 index 000000000..5dd7839d5 --- /dev/null +++ b/src/components/Home/LastVisit/index.js @@ -0,0 +1,58 @@ +import React, { PropTypes } from 'react'; +import debug from '../../../helpers/debug'; +const styles = require('./style.scss'); + +const LastVisit = (props) => { + + debug('component:Index', 'LastVisit'); + + const {lastVisit, surahs} = props; + + if (lastVisit) { + + const surah = surahs[lastVisit.surah - 1]; + + if (surah) { + + const lastVisitedAyah = parseInt(lastVisit.ayah, 10); + + return ( +
    +
    +
    +

    LAST VISITED:

    +
    +
      +
    • + +
      + {surah.id}:{this.props.lastVisit.ayah} +
      +
      + {surah.name.simple} +
      + + {surah.name.english} + +
      +
      + {surah.name.arabic} +
      + +
    • +
    +
    +
    + ); + } + } +}; + +LastVisit.propTypes = { + lastVisit: PropTypes.any, + surahs: PropTypes.object +}; + +export default LastVisit; diff --git a/src/components/Home/LastVisit/style.scss b/src/components/Home/LastVisit/style.scss new file mode 100644 index 000000000..80b252aaa --- /dev/null +++ b/src/components/Home/LastVisit/style.scss @@ -0,0 +1,12 @@ +@import '../../../styles/variables.scss'; + +.list{ + + .lastVisit{ + padding-top: 50px; + + .title{ + padding: 25px 0px; + } + } +} diff --git a/src/components/Home/QuickSurahs/index.js b/src/components/Home/QuickSurahs/index.js new file mode 100644 index 000000000..b7d79ba35 --- /dev/null +++ b/src/components/Home/QuickSurahs/index.js @@ -0,0 +1,66 @@ +import React from 'react'; +import debug from '../../../helpers/debug'; +import Link from 'react-router/lib/Link'; + +export default () => { + debug('component:Index', 'QuickSurahs'); + + const isFriday = new Date().getDay() === 5; + + return ( + +
      +
    • Quick links:
    • + { + isFriday && +
    • + + Surah Al-Kahf + + {' '}| +
    • + } +
    • + + Surah Yasin (Yaseen) + {' '}| +
    • +
    • + + Surah Ar-Rahman + {' '}| +
    • + +
    • + + Surah Al Mulk + {' '}| +
    • +
    • + + Ayat Al-Kursi + +
    • +
    +
    ); +}; diff --git a/src/components/Home/QuickSurahs/spec.js b/src/components/Home/QuickSurahs/spec.js new file mode 100644 index 000000000..9258c7535 --- /dev/null +++ b/src/components/Home/QuickSurahs/spec.js @@ -0,0 +1,21 @@ +import React from 'react'; +import { shallow } from 'enzyme'; + +import QuickSurahs from './index.js'; + +describe("", () => { + + it("Should render QuickSurahs component", () => { + let component = shallow(); + expect(component).to.be.ok; + expect(component.find('.list-inline li').length).to.equal(5); + }); + + it("Should render QuickSurahs component with Surah Al-Kahf", () => { + sinon.useFakeTimers(1470956400000); + let component = shallow(); + expect(component).to.be.ok; + expect(component.find('.list-inline li').length).to.equal(6); + }) + +}); diff --git a/src/components/Home/SurahsList/index.js b/src/components/Home/SurahsList/index.js new file mode 100644 index 000000000..89ec7a2bf --- /dev/null +++ b/src/components/Home/SurahsList/index.js @@ -0,0 +1,35 @@ +import React, { PropTypes } from 'react'; +import debug from '../../../helpers/debug'; +import Link from 'react-router/lib/Link'; +const styles = require('./style.scss'); + +const SurahsList = (props) => { + debug('component:Index', 'SurahsList'); + + return ( +
      + {props.surahs.map((surah) => ( +
    • + +
      + {surah.id} +
      +
      + {surah.name.simple} +
      + {surah.name.english} +
      +
      + {surah.name.arabic} +
      + +
    • + ))} +
    ); +}; + +SurahsList.propTypes = { + surahs: PropTypes.array.isRequired +}; + +export default SurahsList; diff --git a/src/components/Home/SurahsList/spec.js b/src/components/Home/SurahsList/spec.js new file mode 100644 index 000000000..914290801 --- /dev/null +++ b/src/components/Home/SurahsList/spec.js @@ -0,0 +1,15 @@ +import React from 'react'; +import { shallow } from 'enzyme'; +import getSurahs from '../../../../tests/fixtures/getSurahs.js'; + +import SurahsList from './index.js'; + +describe("", () => { + + it("Should render SurahList component", () => { + let component = shallow(); + expect(component).to.be.ok; + expect(component.find('.col-md-4 li').length).to.equal(4); + }); + +}); diff --git a/src/components/Home/SurahsList/style.scss b/src/components/Home/SurahsList/style.scss new file mode 100644 index 000000000..08aedee52 --- /dev/null +++ b/src/components/Home/SurahsList/style.scss @@ -0,0 +1,21 @@ +@import '../../../styles/variables.scss'; + +.item { + color: $brand-primary; + + &:hover { + background: #f1f1f1; + } + + .link { + display: block; + padding: 10px 10px; + } + + .english { + font-size: 10px; + } + .arabic { + font-size: 14px; + } +} diff --git a/src/components/IndexHeader/Nav/index.js b/src/components/IndexHeader/Nav/index.js index 04d16b78c..5954e430b 100644 --- a/src/components/IndexHeader/Nav/index.js +++ b/src/components/IndexHeader/Nav/index.js @@ -22,6 +22,16 @@ class IndexHeaderNav extends Component { if (this.props.navlink === false) { return (
      +
    • + + Mobile + +
    • +
    • + + Developers + +
    • Legacy Quran.com
    • @@ -36,6 +46,16 @@ class IndexHeaderNav extends Component { return (
        +
      • + + Mobile + +
      • +
      • + + Developers + +
      • Legacy Quran.com
      • diff --git a/src/components/InformationToggle/index.js b/src/components/InformationToggle/index.js index d073e0633..ed027a98a 100644 --- a/src/components/InformationToggle/index.js +++ b/src/components/InformationToggle/index.js @@ -12,7 +12,7 @@ export default class InformationToggle extends Component { event.preventDefault(); this.props.onToggle({isShowingSurahInfo: !isShowingSurahInfo}); - } + }; render() { const { isShowingSurahInfo } = this.props; diff --git a/src/components/Line/index.js b/src/components/Line/index.js index 7a38eec11..802a6a8ae 100644 --- a/src/components/Line/index.js +++ b/src/components/Line/index.js @@ -23,15 +23,12 @@ export default class Line extends React.Component { return ( ); diff --git a/src/components/SearchAutocomplete/index.js b/src/components/SearchAutocomplete/index.js index efb745f9e..2ddba47b3 100644 --- a/src/components/SearchAutocomplete/index.js +++ b/src/components/SearchAutocomplete/index.js @@ -7,33 +7,7 @@ const client = new ApiClient(); const styles = require('./style.scss'); -@connect( - state => { - const surahs = state.surahs.entities; - const surahId = state.surahs.current; - let lang = 'en'; - - if (state.ayahs && state.ayahs.entities && state.ayahs.entities[surahId]) { - const ayahs = state.ayahs.entities[surahId]; - const ayahKey = Object.keys(ayahs)[0]; - - if (ayahKey) { - const ayah = ayahs[ayahKey]; - - if (ayah.content && ayah.content[0] && ayah.content[0].lang) { - lang = ayah.content[0].lang; - } - } - } - - return { - surahs, - lang - }; - }, - { push } -) -export default class SearchAutocomplete extends Component { +class SearchAutocomplete extends Component { static propTypes = { surahs: PropTypes.object.isRequired, value: PropTypes.string, @@ -174,6 +148,7 @@ export default class SearchAutocomplete extends Component { case 9: // tab return; case 13: // enter + console.log(this.props); this.props.push(item.href); // change url break; case 27: // escape @@ -225,3 +200,30 @@ export default class SearchAutocomplete extends Component { ); } } + + +function mapStateToProps(state) { + const surahs = state.surahs.entities; + const surahId = state.surahs.current; + let lang = 'en'; + + if (state.ayahs && state.ayahs.entities && state.ayahs.entities[surahId]) { + const ayahs = state.ayahs.entities[surahId]; + const ayahKey = Object.keys(ayahs)[0]; + + if (ayahKey) { + const ayah = ayahs[ayahKey]; + + if (ayah.content && ayah.content[0] && ayah.content[0].lang) { + lang = ayah.content[0].lang; + } + } + } + + return { + surahs, + lang + }; +} + +export default connect(mapStateToProps, {push})(SearchAutocomplete); diff --git a/src/components/Share/index.js b/src/components/Share/index.js index 9a18e2d8e..4162668cf 100644 --- a/src/components/Share/index.js +++ b/src/components/Share/index.js @@ -15,7 +15,7 @@ export default class Share extends Component { render() { const {surahId, name} = this.props.surah; - const surahUrl = encodeURIComponent(`http://quran.com/${surahId}`); + const surahUrl = encodeURIComponent(`https://quran.com/${surahId}`); return (
        diff --git a/src/components/SurahInfo/htmls/2.html.js b/src/components/SurahInfo/htmls/2.html.js index 66b5e44ce..2d713e9db 100644 --- a/src/components/SurahInfo/htmls/2.html.js +++ b/src/components/SurahInfo/htmls/2.html.js @@ -22,19 +22,19 @@ export default `
      • The Community should work with the utmost zeal to propagate its ideology and win over to its side the greatest possible number of people.

      • +
      • +

        It should so expose its opponents as to leave no room for doubt in the mind of any sensible person that they were adhering to an absolutely wrong position.

        +
      • +
      • +

        It should infuse in it's members (the majority of whom were homeless and indigent and surrounded on all sides by enemies) that courage and fortitude which is so indispensable to their very existence in the adverse circumstances in which they were struggling and to prepare them to face these boldly.

        +
      • +
      • +

        It should also keep them ready and prepared to meet any armed menace, which might come from any side to suppress and crush their ideology, and to oppose it tooth and nail without minding the overwhelming numerical strength and the material resources of its enemies

        +
      • +
      • +

        It should also create in them that courage which is needed for the eradication of evil ways and for the establishment of the Islamic Way instead.

        +
      • - -
      • -

        It should so expose its opponents as to leave no room for doubt in the mind of any sensible person that they were adhering to an absolutely wrong position.

        -
      • -
      • -

        It should infuse in it's members (the majority of whom were homeless and indigent and surrounded on all sides by enemies) that courage and fortitude which is so indispensable to their very existence in the adverse circumstances in which they were struggling and to prepare them to face these boldly.

        -
      • -
      • -

        It should also keep them ready and prepared to meet any armed menace, which might come from any side to suppress and crush their ideology, and to oppose it tooth and nail without minding the overwhelming numerical strength and the material resources of its enemies

        -
      • -
      • -

        It should also create in them that courage which is needed for the eradication of evil ways and for the establishment of the Islamic Way instead.

        That is why Allah has revealed in this Surah such instructions as may help achieve all the above mentioned objects.

      • @@ -44,7 +44,7 @@ export default `
      • Theme: Guidance

        -

        This Surah is an invitation to the Divine Guidance and all the stories, incidents etc., revolve round this central theme. As this Surah has particularly been addressed to the Jews, many historical events have been cited from their own traditions to admonish and advise them that their own good lies in accepting the Guidance revealed to the Holy Prophet. They should, therefore, be the first to accept it because it was basically]y the same that was revealed to Prophet Moses (Allah's peace be upon him).

        +

        This Surah is an invitation to the Divine Guidance and all the stories, incidents etc., revolve round this central theme. As this Surah has particularly been addressed to the Jews, many historical events have been cited from their own traditions to admonish and advise them that their own good lies in accepting the Guidance revealed to the Holy Prophet. They should, therefore, be the first to accept it because it was basically the same that was revealed to Prophet Moses (Allah's peace be upon him).

        Topics and their Interconnection

        These introductory verses declare the Quran to be the Book of Guidance : enunciate the articles of the Faith -- belief in Allah, Prophethood and Life-after-death; divide mankind into three main groups with regard to its acceptance or rejection -- Believers, disbelievers and hypocrites. 1 - 20

        Allah invites mankind to accept the Guidance voluntarily and to submit to Him, the Lord and the Creator of the Universe and to believe in the Quran, His Guidance, and in the Life-after-death. 21 - 29

        diff --git a/src/components/TopOptions/index.js b/src/components/TopOptions/index.js new file mode 100644 index 000000000..92369250f --- /dev/null +++ b/src/components/TopOptions/index.js @@ -0,0 +1,54 @@ +import React, { PropTypes } from 'react'; + +import {Row, Col} from 'react-bootstrap/lib'; + +import InformationToggle from 'components/InformationToggle'; +import FontSizeDropdown from 'components/FontSizeDropdown'; +import TooltipDropdown from 'components/TooltipDropdown'; +import ReadingModeToggle from 'components/ReadingModeToggle'; +import Share from 'components/Share'; + +const TopOptions = ({options, surah, actions}) => ( + + +
          +
        • + +
        • +
        • |
        • +
        • + +
        • +
        • |
        • +
        • + +
        • +
        • |
        • +
        • + +
        • +
        • +
        + +
        +); + +TopOptions.propTypes = { + options: PropTypes.object.isRequired, + surah: PropTypes.object.isRequired, + actions: PropTypes.object.isRequired +}; + +export default TopOptions; diff --git a/src/components/TopOptions/spec.js b/src/components/TopOptions/spec.js new file mode 100644 index 000000000..a5ba0b004 --- /dev/null +++ b/src/components/TopOptions/spec.js @@ -0,0 +1,44 @@ +import React from 'react'; +import { shallow } from 'enzyme'; + +import TopOptions from './index.js'; +import getSurahs from '../../../tests/fixtures/getSurahs.js'; +//used components +import InformationToggle from 'components/InformationToggle'; +import FontSizeDropdown from 'components/FontSizeDropdown'; +import TooltipDropdown from 'components/TooltipDropdown'; +import ReadingModeToggle from 'components/ReadingModeToggle'; +import Share from 'components/Share'; + +describe("", () => { + + it("Should render QuickSurahs component", () => { + + const options = { + isReadingMode: false, + isShowingSurahInfo: false, + tooltip:"translation", + fontSize: {} + }; + + const actions = { + options: { + setOption: () => {}, + toggleReadingMode: () => {} + } + }; + + const component = shallow(); + + expect(component).to.be.ok; + expect(component.find(Share).length).to.eql(1); + expect(component.find(InformationToggle).length).to.eql(1); + expect(component.find(FontSizeDropdown).length).to.eql(1); + expect(component.find(TooltipDropdown).length).to.eql(1); + expect(component.find(ReadingModeToggle).length).to.eql(1); + }); + +}); diff --git a/src/config.js b/src/config.js index eec53bbc6..e9fd3eda0 100644 --- a/src/config.js +++ b/src/config.js @@ -32,16 +32,16 @@ module.exports = Object.assign({ {name: 'google-site-verification', content: 'ehFz7FvmL7V9MzP40F8_kLABhCzqGzMDMrCnUP44Too'}, {name: 'theme-color', content: '#004f54'}, {property: 'og:site_name', content: title}, - {property: 'og:image', content: 'http://quran.com/images/thumbnail.png'}, + {property: 'og:image', content: 'https://quran.com/images/thumbnail.png'}, {property: 'og:locale', content: 'en_US'}, {property: 'og:title', content: title}, {property: 'og:description', content: description}, - {property: 'og:url', content: 'http://quran.com'}, + {property: 'og:url', content: 'https://quran.com'}, {property: 'og:type', content: 'website'}, {name: 'twitter:card', content: 'summary'}, {name: 'twitter:title', content: title}, {name: 'twitter:description', content: description}, - {name: 'twitter:image', content: 'http://quran.com/images/thumbnail.png'}, + {name: 'twitter:image', content: 'https://quran.com/images/thumbnail.png'}, {name: 'twitter:image:width', content: '200'}, {name: 'twitter:image:height', content: '200'} ], @@ -59,10 +59,10 @@ module.exports = Object.assign({ "@type": "WebSite", "name": "Quran", "alternateName": "Quran.com", - "url": "http://quran.com", + "url": "https://quran.com", "potentialAction": { "@type": "SearchAction", - "target": "http://quran.com/search?q={search_term_string}&referrer=sitelinks_searchbox", + "target": "https://quran.com/search?q={search_term_string}&referrer=sitelinks_searchbox", "query-input": "required name=search_term_string" } }` @@ -72,8 +72,8 @@ module.exports = Object.assign({ innerHTML: `{ "@context": "http://schema.org", "@type": "Organization", - "url": "http://quran.com", - "logo": "http://quran.com/images/thumbnail.png" + "url": "https://quran.com", + "logo": "https://quran.com/images/thumbnail.png" }` } ], diff --git a/src/containers/App/index.js b/src/containers/App/index.js index b37e74563..cc4b04560 100644 --- a/src/containers/App/index.js +++ b/src/containers/App/index.js @@ -44,7 +44,7 @@ class App extends Component {
      • About
      • Contact
      • - + Developers
      • @@ -52,11 +52,11 @@ class App extends Component {
          -
        • Sunnah.com
        • -
        • Salah.com
        • -
        • QuranicAudio.com
        • +
        • Sunnah.com
        • +
        • Salah.com
        • +
        • QuranicAudio.com
        • - + Corpus: Word by Word
        • @@ -77,7 +77,7 @@ class App extends Component {
        • Surah Yasin, Yaseen (يس) @@ -86,7 +86,7 @@ class App extends Component {
        • Ayat Al-Kursi (آية الكرسي) diff --git a/src/containers/Home/index.js b/src/containers/Home/index.js index 42cecc777..285276ccf 100644 --- a/src/containers/Home/index.js +++ b/src/containers/Home/index.js @@ -1,182 +1,48 @@ -import React, { PropTypes, Component } from 'react'; +import React, { PropTypes } from 'react'; import Helmet from 'react-helmet'; -import IndexHeader from '../../components/IndexHeader'; -import Link from 'react-router/lib/Link'; +import IndexHeader from 'components/IndexHeader'; import { asyncConnect } from 'redux-connect'; import { connect } from 'react-redux'; - import debug from '../../helpers/debug'; +import { isAllLoaded, loadAll } from '../../redux/actions/surahs.js'; -import { isAllLoaded, loadAll } from '../../redux/modules/surahs'; +import SurahsList from 'components/Home/SurahsList'; +import QuickSurahs from 'components/Home/QuickSurahs'; const styles = require('./style.scss'); -class Home extends Component { - static propTypes = { - lastVisit: PropTypes.any, - surahs: PropTypes.object.isRequired - }; - - renderColumn(array) { - debug('component:Index', 'renderColumn'); - - return array.map(surah => ( -
        • - -
          - {surah.id} -
          -
          - {surah.name.simple} -
          - {surah.name.english} -
          -
          - {surah.name.arabic} -
          - -
        • - )); - } - - renderLastVisit() { - if (this.props.lastVisit) { - const surah = this.props.surahs[this.props.lastVisit.surah - 1]; - - if (!surah) { - return false; - } - - const lastVisitedAyah = parseInt(this.props.lastVisit.ayah, 10); - - return ( -
          -
          -
          -

          LAST VISITED:

          -
          -
            -
          • - -
            - {surah.id}:{this.props.lastVisit.ayah} -
            -
            - {surah.name.simple} -
            - - {surah.name.english} - -
            -
            - {surah.name.arabic} -
            - -
          • -
          -
          -
          - ); - } - - return false; - } - - renderQuickLinks() { - return ( - -
            -
          • Quick links:
          • - { - new Date().getDay() === 5 && -
          • - - Surah Al-Kahf - - {' '}| -
          • - } -
          • - - Surah Yasin (Yaseen) - {' '}| -
          • -
          • - - Surah Ar-Rahman - {' '}| -
          • -
          • - - Surah Al Mulk - {' '}| -
          • -
          • - - Ayat Al-Kursi - -
          • -
          -
          - ); - } - - render() { - debug('component:Index', 'Render'); - - return ( -
          - - -
          -
          - {/* {this.renderLastVisit()} */} -
          -

          - SURAHS (CHAPTERS) - {this.renderQuickLinks()} -

          -
          -
            - {this.renderColumn(Object.values(this.props.surahs).slice(0, 38))} -
          -
            - {this.renderColumn(Object.values(this.props.surahs).slice(38, 76))} -
          -
            - {this.renderColumn(Object.values(this.props.surahs).slice(76, 114))} -
          -
          +function Home(props) { + + debug('component:Index', 'Render'); + + return ( +
          + + +
          +
          +
          +

          + SURAHS (CHAPTERS) + +

          +
          + + +
          - ); - } +
          + ); } +Home.propTypes = { + lastVisit: PropTypes.any, + surahs: PropTypes.object.isRequired +}; + const AsyncHome = asyncConnect([{ promise({ store: { getState, dispatch } }) { if (!isAllLoaded(getState())) { @@ -188,4 +54,3 @@ const AsyncHome = asyncConnect([{ }])(Home); export default connect(state => ({surahs: state.surahs.entities}))(AsyncHome); - diff --git a/src/containers/Home/spec.js b/src/containers/Home/spec.js deleted file mode 100644 index b50e6107d..000000000 --- a/src/containers/Home/spec.js +++ /dev/null @@ -1,65 +0,0 @@ -import React from 'react'; -import ReactDOM from 'react-dom'; -import { renderIntoDocument } from 'react-addons-test-utils'; -import { Provider } from 'react-redux'; -import { browserHistory } from 'react-router'; - -import createStore from 'redux/create'; -import ApiClient from 'helpers/ApiClient'; - -let mockStore; -let component; -let dom; -let store; -let dispatch; - -// import Home from './index'; - -describe('Home', () => { - beforeEach(() => { - mockStore = { - surahs: { - errored: false, - loaded: false, - current: null, - entities: { - "1":{"bismillahPre":false,"page":[1,1],"ayat":7,"name":{"arabic":"الفاتحة","simple":"Al-Fatihah","complex":"Al-Fātiĥah","english":"The Opener"},"revelation":{"order":5,"place":"makkah"},"id":1}, - "2":{"bismillahPre":true,"page":[2,49],"ayat":286,"name":{"arabic":"البقرة","simple":"Al-Baqarah","complex":"Al-Baqarah","english":"The Cow"},"revelation":{"order":87,"place":"madinah"},"id":2} - } - }, - routing: { - params: {}, - location: { - pathname:"/", - search:"", - hash:"", - state:null, - action:"POP", - query: {}, - key:"31zavf" - } - } - }; - - store = createStore(browserHistory, new ApiClient(), mockStore); - // component = renderIntoDocument( - // - // - // - // ); - // - // dom = ReactDOM.findDOMNode(component); - }); - - afterEach(() => { - mockStore = null; - component = null; - dom = null; - store = null; - dispatch = null; - }); - - it('should return true', () => { - expect(true).to.be.truthy; - }); -}); diff --git a/src/containers/Home/style.scss b/src/containers/Home/style.scss index a84815c37..11e28f9c8 100644 --- a/src/containers/Home/style.scss +++ b/src/containers/Home/style.scss @@ -10,34 +10,4 @@ padding: 10px 0; } } - - .lastVisit{ - padding-top: 50px; - - .title{ - padding: 25px 0px; - } - } -} - -.item{ - color: $brand-primary; - - &:hover{ - background: #f1f1f1; - } - - .link{ - display: block; - padding: 10px 10px; - } - .index{ - opacity: 0.5; - } - .english{ - font-size: 10px; - } - .arabic{ - font-size: 14px; - } } diff --git a/src/containers/MobileLanding/index.js b/src/containers/MobileLanding/index.js new file mode 100644 index 000000000..38730e287 --- /dev/null +++ b/src/containers/MobileLanding/index.js @@ -0,0 +1,76 @@ +import React from 'react'; +import Helmet from 'react-helmet'; + +import Grid from 'react-bootstrap/lib/Grid'; +import Row from 'react-bootstrap/lib/Row'; +import Col from 'react-bootstrap/lib/Col'; +import Button from 'react-bootstrap/lib/Button'; + +import makeHeadTags from 'helpers/makeHeadTags'; + +const styles = require('./style.scss'); +const apple = require('../../../static/images/apple-white.svg'); +const play = require('../../../static/images/play-store.svg'); +const phones = require('../../../static/images/mockup-desktop@2x.png'); + +export default () => ( + + + + +

          + Quran
          + by quran.com القرآن +

          +

          + + From the makers of Quran.com comes Quran for iOS, a beautiful,{' '} + and ad-free mushaf app. + It’s now easier to read the Quran on the go, memorize it and listen to your{' '} + favorite reciters. + +

          + + + + + + + + + + + Apps + +
          +
          +); diff --git a/src/containers/MobileLanding/style.scss b/src/containers/MobileLanding/style.scss new file mode 100644 index 000000000..9bfe40b07 --- /dev/null +++ b/src/containers/MobileLanding/style.scss @@ -0,0 +1,30 @@ +@import '../../styles/variables.scss'; + +.container{ + min-height: 500px; + min-height: 100vh; + padding-top: 15%; + + & + footer{ + margin-top: 0px; + } +} + +.title{ + color: #000000; +} + +.button{ + border-radius: 50px; + + @media(max-width: $screen-sm){ + &:last-child{ + margin-top: 15px; + } + } +} + +.icons{ + height: 18px; + padding-right: 5px; +} diff --git a/src/containers/Search/index.js b/src/containers/Search/index.js index 1af7eb7b6..1d36c8b42 100644 --- a/src/containers/Search/index.js +++ b/src/containers/Search/index.js @@ -16,7 +16,7 @@ import Header from './Header'; import Ayah from '../../components/Ayah'; import CoreLoader from '../../components/Loader'; -import { search } from '../../redux/modules/searchResults'; +import { search } from '../../redux/actions/search.js'; const style = require('./style.scss'); diff --git a/src/containers/Surah/Header/index.js b/src/containers/Surah/Header/index.js index 86a4184dd..f178c4204 100644 --- a/src/containers/Surah/Header/index.js +++ b/src/containers/Surah/Header/index.js @@ -2,33 +2,37 @@ import React, { PropTypes } from 'react'; import Grid from 'react-bootstrap/lib/Grid'; import Navbar from 'react-bootstrap/lib/Navbar'; +const Header = Navbar.Header; +const Brand = Navbar.Brand; +const Toggle = Navbar.Toggle; +const Collapse = Navbar.Collapse; import debug from '../../../helpers/debug'; import Title from '../../../containers/Surah/Title'; -const Header = ({ surah, children }) => { - debug('component:Header', 'Render'); +const SurahHeader = ({ surah, children }) => { + debug('component:SurahHeader', 'Render'); return ( - - +
          + - </Navbar.Brand> - <Navbar.Toggle /> - </Navbar.Header> - <Navbar.Collapse> + </Brand> + <Toggle /> + </Header> + <Collapse> <Grid fluid> {children} </Grid> - </Navbar.Collapse> + </Collapse> </Navbar> ); }; -Header.propTypes = { +SurahHeader.propTypes = { surah: PropTypes.object.isRequired, children: PropTypes.any }; -export default Header; +export default SurahHeader; diff --git a/src/containers/Surah/connect.js b/src/containers/Surah/connect.js index 965888db0..197910c57 100644 --- a/src/containers/Surah/connect.js +++ b/src/containers/Surah/connect.js @@ -1,7 +1,15 @@ -import { isAllLoaded, loadAll, setCurrent as setCurrentSurah } from '../../redux/modules/surahs'; -import { clearCurrent, isLoaded, load as loadAyahs } from '../../redux/modules/ayahs'; - -import debug from 'helpers/debug'; +import { + isAllLoaded, + loadAll, + setCurrent as setCurrentSurah + } from '../../redux/actions/surahs.js'; + +import { + clearCurrent, + load as loadAyahs + } from '../../redux/actions/ayahs.js'; + +import {debug, isLoaded} from 'helpers'; const ayahRangeSize = 30; diff --git a/src/containers/Surah/index.js b/src/containers/Surah/index.js index ce95999d2..e754816d1 100644 --- a/src/containers/Surah/index.js +++ b/src/containers/Surah/index.js @@ -19,17 +19,13 @@ import ContentDropdown from 'components/ContentDropdown'; import ReciterDropdown from 'components/ReciterDropdown'; import SurahsDropdown from 'components/SurahsDropdown'; import VersesDropdown from 'components/VersesDropdown'; -import FontSizeDropdown from 'components/FontSizeDropdown'; -import TooltipDropdown from 'components/TooltipDropdown'; -import InformationToggle from 'components/InformationToggle'; import SurahInfo from 'components/SurahInfo'; import Header from './Header'; -import ReadingModeToggle from 'components/ReadingModeToggle'; import Ayah from 'components/Ayah'; import Line from 'components/Line'; import SearchInput from 'components/SearchInput'; import Bismillah from 'components/Bismillah'; -import Share from 'components/Share'; +import TopOptions from 'components/TopOptions'; // utils import scroller from 'utils/scroller'; @@ -42,9 +38,9 @@ import descriptions from './descriptions'; import { surahsConnect, ayahsConnect } from './connect'; -import * as AudioActions from '../../redux/modules/audioplayer'; -import * as AyahActions from '../../redux/modules/ayahs'; -import * as OptionsActions from '../../redux/modules/options'; +import * as AudioActions from '../../redux/actions/audioplayer.js'; +import * as AyahActions from '../../redux/actions/ayahs.js'; +import * as OptionsActions from '../../redux/actions/options.js'; const style = require('./style.scss'); @@ -165,7 +161,9 @@ class Surah extends Component { if (ayahNum > (this.getLast() + 10) || ayahNum < this.getFirst()) { // This is beyond lazy loading next page. - return actions.push.push(`/${surah.id}/${ayahNum}-${ayahNum + 10}`); + if (actions.push) { + return actions.push.push(`/${surah.id}/${ayahNum}-${ayahNum + 10}`); + } } return this.handleLazyLoadAyahs(() => setTimeout(() => @@ -198,6 +196,13 @@ class Surah extends Component { return false; } + handleSurahInfoToggle = (payload) => { + const { actions } = this.props; // eslint-disable-line no-shadow + + return actions.options.setOption(payload); + + } + title() { const { params, surah } = this.props; @@ -315,53 +320,8 @@ class Surah extends Component { }); } - renderTopOptions() { - const { - options, - surah, - actions // eslint-disable-line no-shadow - } = this.props; - - return ( - <Row> - <Col md={6} mdOffset={6} className="text-right"> - <ul className="list-inline"> - <li> - <InformationToggle - onToggle={actions.options.setOption} - isShowingSurahInfo={options.isShowingSurahInfo} - /> - </li> - <li>|</li> - <li> - <FontSizeDropdown - options={options} - onOptionChange={actions.options.setOption} - /> - </li> - <li>|</li> - <li> - <TooltipDropdown - options={options} - onOptionChange={actions.options.setOption} - /> - </li> - <li>|</li> - <li> - <ReadingModeToggle - isToggled={options.isReadingMode} - onReadingModeToggle={actions.options.toggleReadingMode} - /> - </li> - <li><Share surah={surah} /></li> - </ul> - </Col> - </Row> - ); - } - render() { - const { surah, surahs, ayahIds, options } = this.props; + const { surah, surahs, ayahIds, options, actions } = this.props; debug('component:Surah', 'Render'); @@ -381,14 +341,14 @@ class Surah extends Component { "@type": "ListItem", "position": 1, "item": { - "@id": "http://quran.com/", + "@id": "https://quran.com/", "name": "Quran" } },{ "@type": "ListItem", "position": 2, "item": { - "@id": "http://quran.com/${surah.id}", + "@id": "https://quran.com/${surah.id}", "name": "${surah.name.simple}" } }] @@ -448,7 +408,7 @@ class Surah extends Component { onClose={this.handleSurahInfoToggle} /> <Col md={10} mdOffset={1}> - {this.renderTopOptions()} + <TopOptions options={options} actions={actions} surah={surah} /> <Bismillah surah={surah} /> {options.isReadingMode ? this.renderLines() : this.renderAyahs()} </Col> diff --git a/src/helpers/Html.js b/src/helpers/Html.js index c3e2c0cdf..2fbad77d6 100644 --- a/src/helpers/Html.js +++ b/src/helpers/Html.js @@ -28,7 +28,7 @@ const Html = ({ store, component, assets }) => { ))} { Object.keys(assets.styles).length === 0 ? - <style dangerouslySetInnerHTML={{__html: (require('../../bootstrap.config'))}} /> : + <style dangerouslySetInnerHTML={{__html: (require('../../src/styles/bootstrap.config'))}} /> : null } </head> diff --git a/src/helpers/buildAudio.js b/src/helpers/buildAudio.js index 6539e15b6..d32f4bf16 100644 --- a/src/helpers/buildAudio.js +++ b/src/helpers/buildAudio.js @@ -1,69 +1,29 @@ -export function testIfSupported(ayah, agent) { - const { audio } = ayah; - - const testOperaOrFirefox = (agent.isOpera || agent.isFirefox); - const testChrome = agent.isChrome; - - if (!audio) { - return false; - } - - if (testOperaOrFirefox) { - if (!(audio.ogg && audio.ogg.url)) { - return false; - } - } else { - if (audio.mp3 && audio.mp3.url) { - return true; - } else if (audio.ogg && audio.ogg.url) { - if (!testChrome) { - return false; - } - } else { - return false; - } - } - - return true; -} - -export function buildAudioForAyah(audio, agent) { +export function buildAudioForAyah(audio) { const scopedAudio = new Audio(); let segments = null; scopedAudio.preload = 'none'; - - const testOperaOrFirefox = (agent.isOpera || agent.isFirefox); - const testChrome = agent.isChrome; - - - if (testOperaOrFirefox) { - if (audio.ogg && audio.ogg.url) { - scopedAudio.src = audio.ogg.url; - segments = audio.ogg.encryptedSegments; - } - } else { - if (audio.mp3 && audio.mp3.url) { - scopedAudio.src = audio.mp3.url; - segments = audio.mp3.encryptedSegments; - } else if (audio.ogg && audio.ogg.url) { - if (testChrome) { - scopedAudio.src = audio.ogg.url; - segments = audio.ogg.encryptedSegments; - } - } + if (audio.url) { + scopedAudio.src = audio.url; + segments = audio.encryptedSegments; + return { audio: scopedAudio, segments }; } + if (audio.mp3) { + scopedAudio.src = audio.mp3.url; + segments = audio.mp3.encryptedSegments; + return { audio: scopedAudio, segments }; + } return { audio: scopedAudio, segments }; } -export function buildAudioFromHash(ayahsObject = {}, agent) { +export function buildAudioFromHash(ayahsObject = {}) { const audioFromHash = {files: {}, segments: {}}; Object.keys(ayahsObject).forEach(ayahId => { const ayah = ayahsObject[ayahId]; - const audioForAyah = buildAudioForAyah(ayah.audio, agent); + const audioForAyah = buildAudioForAyah(ayah.audio); audioFromHash.files[ayahId] = audioForAyah.audio; audioFromHash.segments[ayahId] = audioForAyah.segments; diff --git a/src/helpers/buildFontFaces.js b/src/helpers/buildFontFaces.js index afb722bd4..0969ca24a 100644 --- a/src/helpers/buildFontFaces.js +++ b/src/helpers/buildFontFaces.js @@ -4,8 +4,7 @@ export const fontFaceStyle = (fontClassName) => ( `@font-face {font-family: '${fontClassName}'; src: url('//quran-1f14.kxcdn.com/fonts/compressed/eot/${fontClassName}.eot?#iefix') format('embedded-opentype'), url('//quran-1f14.kxcdn.com/fonts/ttf/${fontClassName}.ttf') format('truetype'), - url('//quran-1f14.kxcdn.com/fonts/woff/${fontClassName}.woff?-snx2rh') format('woff'), - url('//quran-1f14.kxcdn.com/fonts/compressed/svg/${fontClassName}.svg#') format('svg');} + url('//quran-1f14.kxcdn.com/fonts/woff/${fontClassName}.woff?-snx2rh') format('woff');} .${fontClassName} {font-family: '${fontClassName}';} .${fontClassName} {display: none;}` ); @@ -28,8 +27,7 @@ export function createFontFacesArray(ayahs) { `@font-face {font-family: '${font}'; src: url('//quran-1f14.kxcdn.com/fonts/compressed/eot/${font}.eot?#iefix') format('embedded-opentype'), url('//quran-1f14.kxcdn.com/fonts/ttf/${font}.ttf') format('truetype'), - url('//quran-1f14.kxcdn.com/fonts/woff/${font}.woff?-snx2rh') format('woff'), - url('//quran-1f14.kxcdn.com/fonts/compressed/svg/${font}.svg#') format('svg');} + url('//quran-1f14.kxcdn.com/fonts/woff/${font}.woff?-snx2rh') format('woff');} .${font} {font-family: '${font}';}` ); } diff --git a/src/helpers/buildSegments.js b/src/helpers/buildSegments.js index df3d4e02c..8dfb6cf55 100644 --- a/src/helpers/buildSegments.js +++ b/src/helpers/buildSegments.js @@ -44,14 +44,9 @@ export const extractSegments = (ayahs) => { const segments = {}; Object.values(ayahs).forEach((ayah, index) => { - if (ayah.audio.mp3) { - // great! this works for all browsers - if (ayah.audio.mp3.encryptedSegments) { - segments[ayah.ayahKey] = ayah.audio.mp3.encryptedSegments; - } - } else if (ayah.audio.ogg) { - if (ayah.audio.ogg.encryptedSegments) { - segments[ayah.ayahKey] = ayah.audio.ogg.encryptedSegments; + if (ayah.audio) { + if (ayah.audio.encryptedSegments) { + segments[ayah.ayahKey] = ayah.audio.encryptedSegments; } } diff --git a/src/helpers/index.js b/src/helpers/index.js new file mode 100644 index 000000000..d5c2d2955 --- /dev/null +++ b/src/helpers/index.js @@ -0,0 +1,8 @@ +export function isLoaded(globalState, surahId, from, to) { + return ( + globalState.ayahs.entities[surahId] && + globalState.ayahs.entities[surahId][`${surahId}:${from}`] && + globalState.ayahs.entities[surahId][`${surahId}:${to}`] + ); +} +export { default as debug } from './debug'; diff --git a/src/redux/actions/audioplayer.js b/src/redux/actions/audioplayer.js new file mode 100644 index 000000000..9b8205f9d --- /dev/null +++ b/src/redux/actions/audioplayer.js @@ -0,0 +1,94 @@ +import { + SET_USER_AGENT, + SET_CURRENT_FILE, + SET_CURRENT_WORD, + PLAY, + PAUSE, + NEXT, + SET_AYAH, + PREVIOUS, + SET_REPEAT, + TOGGLE_SCROLL, + BUILD_ON_CLIENT, + UPDATE } from '../constants/audioplayer.js'; + +export function setUserAgent(userAgent) { + return { + type: SET_USER_AGENT, + userAgent + }; +} + +export function setCurrentFile(file) { + return { + type: SET_CURRENT_FILE, + file + }; +} + +export function setCurrentWord(word) { + return { + type: SET_CURRENT_WORD, + word + }; +} + +export function play() { + return { + type: PLAY + }; +} + +export function pause() { + return { + type: PAUSE + }; +} + +export function next(currentAyah) { + return { + type: NEXT, + currentAyah + }; +} + +export function setAyah(currentAyah) { + return { + type: SET_AYAH, + currentAyah + }; +} + +export function previous(currentAyah) { + return { + type: PREVIOUS, + currentAyah + }; +} + +export function setRepeat(repeat) { + return { + type: SET_REPEAT, + repeat + }; +} + +export function toggleScroll() { + return { + type: TOGGLE_SCROLL + }; +} + +export function buildOnClient(surahId) { + return { + type: BUILD_ON_CLIENT, + surahId + }; +} + +export function update(payload) { + return { + type: UPDATE, + payload + }; +} diff --git a/src/redux/actions/ayahs.js b/src/redux/actions/ayahs.js new file mode 100644 index 000000000..6140559a1 --- /dev/null +++ b/src/redux/actions/ayahs.js @@ -0,0 +1,66 @@ +import { ayahsSchema } from '../schemas'; + +import { arrayOf } from 'normalizr'; + +import { + LOAD, + LOAD_SUCCESS, + LOAD_FAIL, + CLEAR_CURRENT, + SET_CURRENT_AYAH, + SET_CURRENT_WORD, + CLEAR_CURRENT_WORD + } from '../constants/ayahs.js'; + +// For safe measure +const defaultOptions = { + audio: 8, + quran: 1, + content: [19] +}; + +export function load(id, from, to, options = defaultOptions) { + const { audio, quran, content } = options; + + return { + types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], + schema: arrayOf(ayahsSchema), + promise: (client) => client.get(`/v2/surahs/${id}/ayahs`, { + params: { + from, + to, + audio, + quran, + content + } + }), + surahId: id + }; +} + +export function clearCurrent(id) { + return { + type: CLEAR_CURRENT, + id + }; +} + +export function clearCurrentWord() { + return { + type: CLEAR_CURRENT_WORD + }; +} + +export function setCurrentAyah(id) { + return { + type: SET_CURRENT_AYAH, + id + }; +} + +export function setCurrentWord(id) { + return { + type: SET_CURRENT_WORD, + id + }; +} diff --git a/src/redux/actions/fontFace.js b/src/redux/actions/fontFace.js new file mode 100644 index 000000000..0fb13f699 --- /dev/null +++ b/src/redux/actions/fontFace.js @@ -0,0 +1,8 @@ +import { LOAD } from '../constants/fontFace.js'; + +export function load(className) { + return { + type: LOAD, + className + }; +} diff --git a/src/redux/actions/options.js b/src/redux/actions/options.js new file mode 100644 index 000000000..a2006d479 --- /dev/null +++ b/src/redux/actions/options.js @@ -0,0 +1,23 @@ +import cookie from 'react-cookie'; +import { TOGGLE_READING_MODE, SET_OPTION } from '../constants/options.js'; + +export function isReadingMode(globalState) { + return globalState.options.isReadingMode; +} + +export function setOption(payload) { + const options = cookie.load('options') || {}; // protect against first timers. + Object.keys(payload).forEach(option => { options[option] = payload[option]; }); + cookie.save('options', JSON.stringify(options)); + + return { + type: SET_OPTION, + payload + }; +} + +export function toggleReadingMode() { + return { + type: TOGGLE_READING_MODE + }; +} diff --git a/src/redux/actions/search.js b/src/redux/actions/search.js new file mode 100644 index 000000000..eecac3587 --- /dev/null +++ b/src/redux/actions/search.js @@ -0,0 +1,21 @@ +import { ayahsSchema } from '../schemas'; +import { arrayOf } from 'normalizr'; + +import { + SEARCH, + SEARCH_SUCCESS, + SEARCH_FAIL + } from '../constants/search.js'; + +export function search(params) { + return { + types: [SEARCH, SEARCH_SUCCESS, SEARCH_FAIL], + schema: {results: arrayOf({ayah: ayahsSchema})}, + promise: (client) => client.get('/v2/search', { params }), + params + }; +} + +export function isQueried() { + return false; +} diff --git a/src/redux/actions/spec.js b/src/redux/actions/spec.js new file mode 100644 index 000000000..9d84cc5c3 --- /dev/null +++ b/src/redux/actions/spec.js @@ -0,0 +1,43 @@ +import * as audioplayerActions from './audioplayer.js'; +import * as ayahsActions from './ayahs.js'; +import * as surahsActions from './surahs.js'; +import * as audioplayerConstant from '../constants/audioplayer.js'; +import * as ayahsConstants from '../constants/ayahs.js'; +import * as surahsConstants from '../constants/surahs.js'; + + +describe("action tests", () => { + + it("audioplayer actions", () => { + expect(audioplayerActions.setUserAgent('abc').type).to.equal(audioplayerConstant.SET_USER_AGENT); + expect(audioplayerActions.setCurrentFile('fil').type).to.equal(audioplayerConstant.SET_CURRENT_FILE); + expect(audioplayerActions.setCurrentWord('word').type).to.equal(audioplayerConstant.SET_CURRENT_WORD); + expect(audioplayerActions.play().type).to.equal(audioplayerConstant.PLAY); + expect(audioplayerActions.pause().type).to.equal(audioplayerConstant.PAUSE); + expect(audioplayerActions.next('abc').type).to.equal(audioplayerConstant.NEXT); + expect(audioplayerActions.previous('abc').type).to.equal(audioplayerConstant.PREVIOUS); + expect(audioplayerActions.setRepeat('abc').type).to.equal(audioplayerConstant.SET_REPEAT); + expect(audioplayerActions.toggleScroll().type).to.equal(audioplayerConstant.TOGGLE_SCROLL); + expect(audioplayerActions.buildOnClient('abc').type).to.equal(audioplayerConstant.BUILD_ON_CLIENT); + expect(audioplayerActions.update('abc').type).to.equal(audioplayerConstant.UPDATE); + }); + + it("ayahs actions", () => { + expect(ayahsActions.load(1, 2, 4).types.length).to.equal(3); + expect(ayahsActions.clearCurrent().type).to.equal(ayahsConstants.CLEAR_CURRENT); + expect(ayahsActions.clearCurrentWord(1).type).to.equal(ayahsConstants.CLEAR_CURRENT_WORD); + expect(ayahsActions.setCurrentAyah(1).type).to.equal(ayahsConstants.SET_CURRENT_AYAH); + expect(ayahsActions.setCurrentWord(1).type).to.equal(ayahsConstants.SET_CURRENT_WORD); + }); + + it("surahs actions", () => { + expect(surahsActions.loadAll().types.length).to.equal(3); + expect(surahsActions.load(1).types.length).to.equal(3); + expect(surahsActions.loadInfo('url').types.length).to.equal(3); + expect(surahsActions.setCurrent(1).type).to.equal(surahsConstants.SET_CURRENT); + }); + + + + +}); diff --git a/src/redux/actions/surahs.js b/src/redux/actions/surahs.js new file mode 100644 index 000000000..7ee52ae12 --- /dev/null +++ b/src/redux/actions/surahs.js @@ -0,0 +1,48 @@ +import { surahsSchema } from '../schemas'; +import { arrayOf } from 'normalizr'; +import { + LOAD, + LOAD_SUCCESS, + LOAD_FAIL, + LOAD_INFO, + LOAD_INFO_SUCCESS, + LOAD_INFO_FAIL, + SET_CURRENT } from '../constants/surahs.js'; + +export function loadAll() { + return { + types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], + schema: arrayOf(surahsSchema), + promise: (client) => client.get('/v2/surahs') + }; +} + +export function load(id) { + return { + types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], + schema: arrayOf(surahsSchema), + promise: (client) => client.get(`/v2/surahs/${id}`) + }; +} + +export function loadInfo(link) { + return { + types: [LOAD_INFO, LOAD_INFO_SUCCESS, LOAD_INFO_FAIL], + promise: (client) => client.get(`http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&titles=${link}&redirects=true`) // eslint-disable-line max-len + }; +} + +export function setCurrent(id) { + return { + type: SET_CURRENT, + current: id + }; +} + +export function isSingleLoaded(globalState, id) { + return !!globalState.surahs.entities[id]; +} + +export function isAllLoaded(globalState) { + return Object.keys(globalState.surahs.entities).length === 114; +} diff --git a/src/redux/constants/audioplayer.js b/src/redux/constants/audioplayer.js new file mode 100644 index 000000000..e0d43d7a8 --- /dev/null +++ b/src/redux/constants/audioplayer.js @@ -0,0 +1,12 @@ +export const SET_USER_AGENT = '@@quran/audioplayer/SET_USER_AGENT'; +export const SET_CURRENT_FILE = '@@quran/audioplayer/SET_CURRENT_FILE'; +export const SET_CURRENT_WORD = '@@quran/audioplayer/SET_CURRENT_WORD'; +export const PLAY = '@@quran/audioplayer/PLAY'; +export const PAUSE = '@@quran/audioplayer/PAUSE'; +export const NEXT = '@@quran/audioplayer/NEXT'; +export const SET_AYAH = '@@quran/audioplayer/SET'; +export const PREVIOUS = '@@quran/audioplayer/PREVIOUS'; +export const SET_REPEAT = '@@quran/audioplayer/SET_REPEAT'; +export const TOGGLE_SCROLL = '@@quran/audioplayer/TOGGLE_SCROLL'; +export const BUILD_ON_CLIENT = '@@quran/audioplayer/BUILD_ON_CLIENT'; +export const UPDATE = '@@quran/audioplayer/UPDATE'; diff --git a/src/redux/constants/ayahs.js b/src/redux/constants/ayahs.js new file mode 100644 index 000000000..4b215a3a8 --- /dev/null +++ b/src/redux/constants/ayahs.js @@ -0,0 +1,7 @@ +export const LOAD = '@@quran/ayahs/LOAD'; +export const LOAD_SUCCESS = '@@quran/ayahs/LOAD_SUCCESS'; +export const LOAD_FAIL = '@@quran/ayahs/LOAD_FAIL'; +export const CLEAR_CURRENT = '@@quran/ayahs/CLEAR_CURRENT'; +export const SET_CURRENT_AYAH = '@@quran/ayahs/SET_CURRENT_AYAH'; +export const SET_CURRENT_WORD = '@@quran/ayahs/SET_CURRENT_WORD'; +export const CLEAR_CURRENT_WORD = '@@quran/ayahs/CLEAR_CURRENT_WORD'; diff --git a/src/redux/constants/fontFace.js b/src/redux/constants/fontFace.js new file mode 100644 index 000000000..1dc3a243b --- /dev/null +++ b/src/redux/constants/fontFace.js @@ -0,0 +1 @@ +export const LOAD = '@@quran/fontFaces/LOAD'; diff --git a/src/redux/constants/options.js b/src/redux/constants/options.js new file mode 100644 index 000000000..ffa608eeb --- /dev/null +++ b/src/redux/constants/options.js @@ -0,0 +1,2 @@ +export const TOGGLE_READING_MODE = '@@quran/options/TOGGLE_READING_MODE'; +export const SET_OPTION = '@@quran/options/SET_OPTION'; diff --git a/src/redux/constants/search.js b/src/redux/constants/search.js new file mode 100644 index 000000000..2eeaa1654 --- /dev/null +++ b/src/redux/constants/search.js @@ -0,0 +1,3 @@ +export const SEARCH = '@@quran/search/LOAD'; +export const SEARCH_SUCCESS = '@@quran/search/LOAD_SUCCESS'; +export const SEARCH_FAIL = '@@quran/search/LOAD_FAIL'; diff --git a/src/redux/constants/surahs.js b/src/redux/constants/surahs.js new file mode 100644 index 000000000..b74c0eb4e --- /dev/null +++ b/src/redux/constants/surahs.js @@ -0,0 +1,7 @@ +export const LOAD = '@@quran/surahs/LOAD'; +export const LOAD_SUCCESS = '@@quran/surahs/LOAD_SUCCESS'; +export const LOAD_FAIL = '@@quran/surahs/LOAD_FAIL'; +export const LOAD_INFO = '@@quran/surahs/LOAD_INFO'; +export const LOAD_INFO_SUCCESS = '@@quran/surahs/LOAD_INFO_SUCCESS'; +export const LOAD_INFO_FAIL = '@@quran/surahs/LOAD_INFO_FAIL'; +export const SET_CURRENT = '@@quran/surahs/SET_CURRENT'; diff --git a/src/redux/modules/audioplayer.js b/src/redux/modules/audioplayer.js index 39b5d1003..e9635c321 100644 --- a/src/redux/modules/audioplayer.js +++ b/src/redux/modules/audioplayer.js @@ -1,5 +1,5 @@ /* eslint-disable no-case-declarations */ -import { buildAudioFromHash, testIfSupported } from '../../helpers/buildAudio'; +import { buildAudioFromHash } from '../../helpers/buildAudio'; import { buildSegments, extractSegments } from '../../helpers/buildSegments'; import debug from 'helpers/debug'; @@ -8,20 +8,24 @@ import { LOAD as AYAHS_LOAD, CLEAR_CURRENT as AYAHS_CLEAR_CURRENT, SET_CURRENT_AYAH -} from './ayahs'; + } from './ayahs'; -const SET_USER_AGENT = '@@quran/audioplayer/SET_USER_AGENT'; -const SET_CURRENT_FILE = '@@quran/audioplayer/SET_CURRENT_FILE'; -const SET_CURRENT_WORD = '@@quran/audioplayer/SET_CURRENT_WORD'; -const PLAY = '@@quran/audioplayer/PLAY'; -const PAUSE = '@@quran/audioplayer/PAUSE'; -export const NEXT = '@@quran/audioplayer/NEXT'; -export const SET_AYAH = '@@quran/audioplayer/SET'; -const PREVIOUS = '@@quran/audioplayer/PREVIOUS'; -const SET_REPEAT = '@@quran/audioplayer/SET_REPEAT'; -const TOGGLE_SCROLL = '@@quran/audioplayer/TOGGLE_SCROLL'; -const BUILD_ON_CLIENT = '@@quran/audioplayer/BUILD_ON_CLIENT'; -const UPDATE = '@@quran/audioplayer/UPDATE'; +import { + SET_USER_AGENT, + SET_CURRENT_FILE, + SET_CURRENT_WORD, + PLAY, + PAUSE, + NEXT, + SET_AYAH, + PREVIOUS, + SET_REPEAT, + TOGGLE_SCROLL, + BUILD_ON_CLIENT, + UPDATE + } from '../constants/audioplayer.js'; + +export { NEXT, SET_AYAH }; const initialState = { files: {}, @@ -30,7 +34,6 @@ const initialState = { currentAyah: null, currentWord: null, currentTime: 0, - isSupported: true, isPlaying: false, repeat: { from: undefined, @@ -43,53 +46,51 @@ const initialState = { }; export default function reducer(state = initialState, action = {}) { + switch (action.type) { case BUILD_ON_CLIENT: { debug('reducer:audioplayer', 'BUILD_ON_CLIENT init'); const audioFromHash = buildAudioFromHash(state.files[action.surahId], state.userAgent); debug('reducer:audioplayer', 'BUILD_ON_CLIENT return'); + + const stateFiles = state.files; + const filesById = stateFiles[action.surahId]; + const filesFromHash = audioFromHash.files; + return { ...state, isLoadedOnClient: true, files: { - ...state.files, + ...stateFiles, [action.surahId]: { - ...state.files[action.surahId], - ...audioFromHash.files + ...filesById, + ...filesFromHash } }, currentFile: Object.values(audioFromHash.files)[0], currentAyah: Object.keys(audioFromHash.files)[0] }; } - case AYAHS_CLEAR_CURRENT: + case AYAHS_CLEAR_CURRENT: { + const stateFilesCurrent = state.files; + return { ...state, files: { - ...state.files, + ...stateFilesCurrent, [action.id]: {} } }; - case AYAHS_LOAD: + } + case AYAHS_LOAD: { return { ...state, isLoading: false }; + } case AYAHS_LOAD_SUCCESS: { debug('reducer:audioplayer', 'AYAHS_LOAD_SUCCESS init'); - let currentFile; - const isSupported = testIfSupported( - action.result.entities.ayahs[action.result.result[0]], - state.userAgent - ); - - if (!isSupported) { - return { - ...state, - isSupported: false - }; - } const ayahs = action.result.entities.ayahs; const audioFromHash = __CLIENT__ ? buildAudioFromHash(ayahs, state.userAgent) : ayahs; @@ -101,6 +102,7 @@ export default function reducer(state = initialState, action = {}) { const currentAyah = state.currentAyah ? state.currentAyah : Object.keys(files)[0]; + let currentFile; if (state.currentFile && state.currentFile === Object.values(files)[0]) { // If the same file is being used, for example in lazy loading, then keep same file currentFile = state.currentFile; @@ -115,59 +117,80 @@ export default function reducer(state = initialState, action = {}) { } } + const stateFiles = state.files; + const stateSegments = state.segments; + debug('reducer:audioplayer', 'AYAHS_LOAD_SUCCESS return'); return { ...state, - isSupported, currentAyah, currentFile, surahId: action.surahId, isLoadedOnClient: __CLIENT__, files: { - ...state.files, + ...stateFiles, [action.surahId]: files }, segments: { - ...state.segments, + ...stateSegments, [action.surahId]: extractSegments(action.result.entities.ayahs) } }; } - case UPDATE: + case UPDATE: { + const {payload} = action; return { ...state, - ...action.payload + ...payload }; - case SET_USER_AGENT: + } + case SET_USER_AGENT: { + const {userAgent} = action; return { ...state, - userAgent: action.userAgent + userAgent }; - case PLAY: - state.currentFile.play(); + } + case PLAY: { - return { - ...state, - isPlaying: true - }; - case PAUSE: - state.currentFile.pause(); + if (state.currentFile) { + state.currentFile.play(); + return { + ...state, + isPlaying: true + }; + } - return { - ...state, - isPlaying: false - }; + return state; + + } + case PAUSE: { + + if (state.currentFile) { + state.currentFile.pause(); + + return { + ...state, + isPlaying: false + }; + } + return state; + + + } case NEXT: { const [surahId, ayahNum] = action.currentAyah.split(':'); const nextId = `${surahId}:${parseInt(ayahNum, 10) + 1}`; + const stateSegments = state.segments; + const stateSegmentsId = stateSegments[surahId]; return { ...state, segments: { - ...state.segments, + ...stateSegments, [surahId]: { - ...state.segments[surahId], + ...stateSegmentsId, [nextId]: buildSegments(state.segments[surahId][nextId]) } }, @@ -176,61 +199,66 @@ export default function reducer(state = initialState, action = {}) { currentTime: 0 }; } + case PREVIOUS: { + const [surahId, ayahNum] = action.currentAyah.split(':'); + const nextId = `${surahId}:${parseInt(ayahNum, 10) - 1}`; + return { + ...state, + currentAyah: nextId, + currentFile: state.files[surahId][nextId], + currentTime: 0 + }; + } case SET_AYAH: { const [surahId, ayahNum] = action.currentAyah.split(':'); const currentAyah = `${surahId}:${parseInt(ayahNum, 10)}`; + const stateSegments = state.segments; + const stateSegmentsId = state.segments[surahId]; + const currentFile = state.files[surahId][currentAyah]; return { ...state, segments: { - ...state.segments, + ...stateSegments, [surahId]: { - ...state.segments[surahId], + ...stateSegmentsId, [currentAyah]: buildSegments(state.segments[surahId][currentAyah]) } }, currentAyah, - currentFile: state.files[surahId][currentAyah], + currentFile, currentTime: 0 }; } - - case PREVIOUS: { - const [surahId, ayahNum] = action.currentAyah.split(':'); - const nextId = `${surahId}:${parseInt(ayahNum, 10) - 1}`; - + case SET_REPEAT: { + const {repeat} = action; return { ...state, - currentAyah: nextId, - currentFile: state.files[surahId][nextId], - currentTime: 0 + repeat }; } - case SET_REPEAT: - return { - ...state, - repeat: action.repeat - }; - case TOGGLE_SCROLL: + case TOGGLE_SCROLL: { return { ...state, shouldScroll: !state.shouldScroll }; - case SET_CURRENT_FILE: + } + case SET_CURRENT_FILE: { return { ...state, currentFile: action.file }; + } case SET_CURRENT_WORD: { if (!action.word) return state; - - const [surahId, ayahNum, word] = action.word.split(':'); let currentTime = null; - - if (state.files[surahId][`${surahId}:${ayahNum}`] === state.currentFile) { + const [surahId, ayahNum, word] = action.word.split(':'); + const nextId = `${surahId}:${ayahNum}`; + if (!state.segments[surahId][nextId]) return state; + if (state.files[surahId][nextId] === state.currentFile) { // When the files are the same, set the current time to that word - currentTime = state.segments[surahId][`${surahId}:${ayahNum}`].words[word].startTime; + currentTime = state.segments[surahId][nextId].words[word].startTime; state.currentFile.currentTime = currentTime; // eslint-disable-line no-param-reassign return { @@ -241,11 +269,12 @@ export default function reducer(state = initialState, action = {}) { } // When the files are not the same. - const nextId = `${surahId}:${ayahNum}`; const currentFile = state.files[surahId][nextId]; const segment = buildSegments(state.segments[surahId][nextId]); currentTime = segment.words[word].startTime; currentFile.currentTime = currentTime; + const stateSegments = state.segments; + const stateSegmentsId = state.segments[surahId]; return { ...state, @@ -255,102 +284,22 @@ export default function reducer(state = initialState, action = {}) { currentTime, currentFile, segments: { - ...state.segments, + ...stateSegments, [surahId]: { - ...state.segments[surahId], + ...stateSegmentsId, [nextId]: segment } } }; - } - case SET_CURRENT_AYAH: + case SET_CURRENT_AYAH: { return { ...state, currentAyah: action.id }; - default: + } + default: { return state; + } } } - -export function setUserAgent(userAgent) { - return { - type: SET_USER_AGENT, - userAgent - }; -} - -export function setCurrentFile(file) { - return { - type: SET_CURRENT_FILE, - file - }; -} - -export function setCurrentWord(word) { - return { - type: SET_CURRENT_WORD, - word - }; -} - -export function play() { - return { - type: PLAY - }; -} - -export function pause() { - return { - type: PAUSE - }; -} - -export function next(currentAyah) { - return { - type: NEXT, - currentAyah - }; -} - -export function setAyah(currentAyah) { - return { - type: SET_AYAH, - currentAyah - }; -} - -export function previous(currentAyah) { - return { - type: PREVIOUS, - currentAyah - }; -} - -export function setRepeat(repeat) { - return { - type: SET_REPEAT, - repeat - }; -} - -export function toggleScroll() { - return { - type: TOGGLE_SCROLL - }; -} - -export function buildOnClient(surahId) { - return { - type: BUILD_ON_CLIENT, - surahId - }; -} - -export function update(payload) { - return { - type: UPDATE, - payload - }; -} diff --git a/src/redux/modules/ayahs.js b/src/redux/modules/ayahs.js index 80fd8715c..1e9f543c0 100644 --- a/src/redux/modules/ayahs.js +++ b/src/redux/modules/ayahs.js @@ -1,14 +1,19 @@ -import { ayahsSchema } from '../schemas'; +import { + LOAD, + LOAD_SUCCESS, + LOAD_FAIL, + CLEAR_CURRENT, + SET_CURRENT_AYAH, + SET_CURRENT_WORD, + CLEAR_CURRENT_WORD + } from '../constants/ayahs.js'; -import { arrayOf } from 'normalizr'; - -export const LOAD = '@@quran/ayahs/LOAD'; -export const LOAD_SUCCESS = '@@quran/ayahs/LOAD_SUCCESS'; -export const LOAD_FAIL = '@@quran/ayahs/LOAD_FAIL'; -export const CLEAR_CURRENT = '@@quran/ayahs/CLEAR_CURRENT'; -export const SET_CURRENT_AYAH = '@@quran/ayahs/SET_CURRENT_AYAH'; -export const SET_CURRENT_WORD = '@@quran/ayahs/SET_CURRENT_WORD'; -export const CLEAR_CURRENT_WORD = '@@quran/ayahs/CLEAR_CURRENT_WORD'; +export { + LOAD, + LOAD_SUCCESS, + CLEAR_CURRENT, + SET_CURRENT_AYAH, +}; const initialState = { current: null, @@ -46,12 +51,13 @@ export default function reducer(state = initialState, action = {}) { currentWord: null }; case CLEAR_CURRENT: + const entities = state.entities; return { ...state, current: null, currentWord: null, entities: { - ...state.entities, + ...entities, [action.id]: {} } }; @@ -63,6 +69,7 @@ export default function reducer(state = initialState, action = {}) { }; case LOAD_SUCCESS: const current = state.current ? state.current : action.result.result[0]; + const stateEntities = state.entities; return { ...state, @@ -71,7 +78,7 @@ export default function reducer(state = initialState, action = {}) { loading: false, errored: false, entities: { - ...state.entities, + ...stateEntities, [action.surahId]: Object.assign( {}, state.entities[action.surahId], @@ -87,64 +94,3 @@ export default function reducer(state = initialState, action = {}) { return state; } } - -// For safe measure -const defaultOptions = { - audio: 8, - quran: 1, - content: [19] -}; - -export function load(id, from, to, options = defaultOptions) { - const { audio, quran, content } = options; - - return { - types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], - schema: arrayOf(ayahsSchema), - promise: (client) => client.get(`/v2/surahs/${id}/ayahs`, { - params: { - from, - to, - audio, - quran, - content - } - }), - surahId: id - }; -} - -export function clearCurrent(id) { - return { - type: CLEAR_CURRENT, - id - }; -} - -export function clearCurrentWord() { - return { - type: CLEAR_CURRENT_WORD - }; -} - -export function setCurrentAyah(id) { - return { - type: SET_CURRENT_AYAH, - id - }; -} - -export function setCurrentWord(id) { - return { - type: SET_CURRENT_WORD, - id - }; -} - -export function isLoaded(globalState, surahId, from, to) { - return ( - globalState.ayahs.entities[surahId] && - globalState.ayahs.entities[surahId][`${surahId}:${from}`] && - globalState.ayahs.entities[surahId][`${surahId}:${to}`] - ); -} diff --git a/src/redux/modules/fontFaces.js b/src/redux/modules/fontFaces.js index 6c53fe62a..6c573f848 100644 --- a/src/redux/modules/fontFaces.js +++ b/src/redux/modules/fontFaces.js @@ -1,7 +1,6 @@ -import { LOAD_SUCCESS } from './ayahs'; -import { SEARCH_SUCCESS } from './searchResults'; - -export const LOAD = '@@quran/fontFaces/LOAD'; +import { LOAD_SUCCESS } from '../constants/ayahs.js'; +import { SEARCH_SUCCESS } from '../constants/search.js'; +import { LOAD } from '../constants/fontFace.js'; export default function reducer(state = {}, action = {}) { switch (action.type) { @@ -32,10 +31,3 @@ export default function reducer(state = {}, action = {}) { return state; } } - -export function load(className) { - return { - type: LOAD, - className - }; -} diff --git a/src/redux/modules/lines.js b/src/redux/modules/lines.js index f4820b0a7..644915648 100644 --- a/src/redux/modules/lines.js +++ b/src/redux/modules/lines.js @@ -2,13 +2,13 @@ import { LOAD as AYAHS_LOAD, LOAD_SUCCESS as AYAHS_LOAD_SUCCESS, - LOAD_FAIL as AYAHS_LOAD_FAIL -} from './ayahs'; + LOAD_FAIL as AYAHS_LOAD_FAIL, + } from '../constants/ayahs.js'; -import { SET_CURRENT as SURAHS_SET_CURRENT } from './surahs'; +import { SET_CURRENT as SURAHS_SET_CURRENT } from '../constants/surahs.js'; const initialState = { - lines: {}, + lines: {} }; export default function reducer(state = initialState, action = {}) { @@ -26,7 +26,8 @@ export default function reducer(state = initialState, action = {}) { }; case AYAHS_LOAD_SUCCESS: const ayahs = action.result.entities.ayahs; - const lines = {...state.lines}; + const stateLines = state.lines; + const lines = {...stateLines}; action.result.result.forEach(ayahId => { const ayah = ayahs[ayahId]; diff --git a/src/redux/modules/options.js b/src/redux/modules/options.js index c4673bdce..2851fa49e 100644 --- a/src/redux/modules/options.js +++ b/src/redux/modules/options.js @@ -1,7 +1,5 @@ -import cookie from 'react-cookie'; -const TOGGLE_READING_MODE = '@@quran/options/TOGGLE_READING_MODE'; -const SET_OPTION = '@@quran/options/SET_OPTION'; +import { TOGGLE_READING_MODE, SET_OPTION } from '../constants/options.js'; const initialState = { isReadingMode: false, @@ -24,32 +22,12 @@ export default function reducer(state = initialState, action = {}) { isReadingMode: !state.isReadingMode }; case SET_OPTION: + const payload = action.payload; return { ...state, - ...action.payload + ...payload }; default: return state; } } - -export function isReadingMode(globalState) { - return globalState.options.isReadingMode; -} - -export function setOption(payload) { - const options = cookie.load('options') || {}; // protect against first timers. - Object.keys(payload).forEach(option => { options[option] = payload[option]; }); - cookie.save('options', JSON.stringify(options)); - - return { - type: SET_OPTION, - payload - }; -} - -export function toggleReadingMode() { - return { - type: TOGGLE_READING_MODE - }; -} diff --git a/src/redux/modules/searchResults.js b/src/redux/modules/searchResults.js index c97969b73..67a15b041 100644 --- a/src/redux/modules/searchResults.js +++ b/src/redux/modules/searchResults.js @@ -1,9 +1,8 @@ -import { ayahsSchema } from '../schemas'; -import { arrayOf } from 'normalizr'; - -export const SEARCH = '@@quran/search/LOAD'; -export const SEARCH_SUCCESS = '@@quran/search/LOAD_SUCCESS'; -export const SEARCH_FAIL = '@@quran/search/LOAD_FAIL'; +import { + SEARCH, + SEARCH_SUCCESS, + SEARCH_FAIL + } from '../constants/search.js'; const initialState = { errored: false, @@ -46,16 +45,3 @@ export default function reducer(state = initialState, action = {}) { return state; } } - -export function search(params) { - return { - types: [SEARCH, SEARCH_SUCCESS, SEARCH_FAIL], - schema: {results: arrayOf({ayah: ayahsSchema})}, - promise: (client) => client.get('/v2/search', { params }), - params - }; -} - -export function isQueried() { - return false; -} diff --git a/src/redux/modules/surahs.js b/src/redux/modules/surahs.js index 38fc516c4..dd7ddffec 100644 --- a/src/redux/modules/surahs.js +++ b/src/redux/modules/surahs.js @@ -1,13 +1,8 @@ -import { surahsSchema } from '../schemas'; -import { arrayOf } from 'normalizr'; - -export const LOAD = '@@quran/surahs/LOAD'; -export const LOAD_SUCCESS = '@@quran/surahs/LOAD_SUCCESS'; -export const LOAD_FAIL = '@@quran/surahs/LOAD_FAIL'; -export const LOAD_INFO = '@@quran/surahs/LOAD_INFO'; -export const LOAD_INFO_SUCCESS = '@@quran/surahs/LOAD_INFO_SUCCESS'; -export const LOAD_INFO_FAIL = '@@quran/surahs/LOAD_INFO_FAIL'; -export const SET_CURRENT = '@@quran/surahs/SET_CURRENT'; +import { + LOAD_SUCCESS, + LOAD_FAIL, + SET_CURRENT + } from '../constants/surahs.js'; const initialState = { errored: false, @@ -24,14 +19,16 @@ export default function reducer(state = initialState, action = {}) { current: action.current }; case LOAD_SUCCESS: + const entities = state.entities; + const {surahs} = action.result.entities; return { ...state, loaded: true, errored: false, entities: { - ...state.entities, - ...action.result.entities.surahs - }, + ...entities, + ...surahs + } }; case LOAD_FAIL: console.log(action); @@ -40,41 +37,3 @@ export default function reducer(state = initialState, action = {}) { return state; } } - -export function loadAll() { - return { - types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], - schema: arrayOf(surahsSchema), - promise: (client) => client.get('/v2/surahs') - }; -} - -export function load(id) { - return { - types: [LOAD, LOAD_SUCCESS, LOAD_FAIL], - schema: arrayOf(surahsSchema), - promise: (client) => client.get(`/v2/surahs/${id}`) - }; -} - -export function loadInfo(link) { - return { - types: [LOAD_INFO, LOAD_INFO_SUCCESS, LOAD_INFO_FAIL], - promise: (client) => client.get(`http://en.wikipedia.org/w/api.php?format=json&action=query&prop=extracts&titles=${link}&redirects=true`) // eslint-disable-line max-len - }; -} - -export function setCurrent(id) { - return { - type: SET_CURRENT, - current: id - }; -} - -export function isSingleLoaded(globalState, id) { - return !!globalState.surahs.entities[id]; -} - -export function isAllLoaded(globalState) { - return Object.keys(globalState.surahs.entities).length === 114; -} diff --git a/src/routes.js b/src/routes.js index 3a4620d44..b083a0e60 100644 --- a/src/routes.js +++ b/src/routes.js @@ -16,6 +16,10 @@ export default () => ( <Route path="/contact" getComponent={(nextState, cb) => System.import('./containers/Contact').then(module => cb(null, module))} /> <Route path="/contactus" getComponent={(nextState, cb) => System.import('./containers/Contact').then(module => cb(null, module))} /> + + <Route path="/mobile" getComponent={(nextState, cb) => System.import('./containers/MobileLanding').then(module => cb(null, module))} /> + <Route path="/apps" getComponent={(nextState, cb) => System.import('./containers/MobileLanding').then(module => cb(null, module))} /> + <Route path="/error/:errorKey" getComponent={(nextState, cb) => System.import('./containers/Error').then(module => cb(null, module))} /> <Route path="/search" getComponent={(nextState, cb) => System.import('./containers/Search').then(module => cb(null, module))} /> diff --git a/server.js b/src/server.js similarity index 86% rename from server.js rename to src/server.js index 55413f0f8..a6820305f 100644 --- a/server.js +++ b/src/server.js @@ -11,22 +11,22 @@ import raven from 'raven'; import errorhandler from 'errorhandler'; import config from 'config'; -import expressConfig from 'server/config/express'; +import expressConfig from './server/config/express'; const pretty = new PrettyError(); const server = express(); expressConfig(server); -import routes from './src/routes'; -import ApiClient from './src/helpers/ApiClient'; -import createStore from './src/redux/create'; -import debug from './src/helpers/debug'; +import routes from './routes'; +import ApiClient from './helpers/ApiClient'; +import createStore from './redux/create'; +import debug from './helpers/debug'; -import Html from './src/helpers/Html'; +import Html from './helpers/Html'; -import { setUserAgent } from './src/redux/modules/audioplayer'; -import { setOption } from './src/redux/modules/options'; +import { setUserAgent } from './redux/actions/audioplayer.js'; +import { setOption } from './redux/actions/options.js'; // Use varnish for the static routes, which will cache too server.use(raven.middleware.express.requestHandler(config.sentryServer)); @@ -56,12 +56,16 @@ server.use((req, res, next) => { match({ history, routes: routes(), location: req.originalUrl }, (error, redirectLocation, renderProps) => { debug('Server', 'Route match callback'); + if (redirectLocation) { res.redirect(redirectLocation.pathname + redirectLocation.search); } else if (error) { console.error('ROUTER ERROR:', pretty.render(error)); res.status(500).send(error); } else if (renderProps) { + + const status = renderProps.location.pathname.indexOf('/error') > -1 ? 404 : 200; + loadOnServer({...renderProps, store, helpers: { client }}).then(() => { const component = ( <Provider store={store}> @@ -71,7 +75,7 @@ server.use((req, res, next) => { res.type('html'); res.setHeader('Cache-Control', 'public, max-age=31557600'); - res.status(200); + res.status(status); debug('Server', 'Sending markup'); res.send('<!doctype html>\n' + ReactDOM.renderToString( <Html diff --git a/server/config/express.js b/src/server/config/express.js similarity index 100% rename from server/config/express.js rename to src/server/config/express.js diff --git a/server/config/sitemap.js b/src/server/config/sitemap.js similarity index 94% rename from server/config/sitemap.js rename to src/server/config/sitemap.js index 58131ac02..e94f4d7eb 100644 --- a/server/config/sitemap.js +++ b/src/server/config/sitemap.js @@ -1,6 +1,6 @@ import sitemap from 'sitemap'; -import ApiClient from '../../src/helpers/ApiClient'; +import ApiClient from '../../helpers/ApiClient'; export default (server) => { @@ -35,7 +35,7 @@ export default (server) => { const xml = sitemap.createSitemap({ - hostname: 'http://quran.com', + hostname: 'https://quran.com', cacheTime: 600000, // 600 sec cache period urls: [ ...urls, diff --git a/server/config/support.js b/src/server/config/support.js similarity index 100% rename from server/config/support.js rename to src/server/config/support.js diff --git a/bootstrap.config.js b/src/styles/bootstrap.config.js similarity index 98% rename from bootstrap.config.js rename to src/styles/bootstrap.config.js index f7569489d..f15d048c9 100644 --- a/bootstrap.config.js +++ b/src/styles/bootstrap.config.js @@ -1,3 +1,4 @@ +/* eslint-disable */ module.exports = { "verbose": false, "debug": false, diff --git a/src/styles/bootstrap.config.prod.js b/src/styles/bootstrap.config.prod.js new file mode 100644 index 000000000..119f15903 --- /dev/null +++ b/src/styles/bootstrap.config.prod.js @@ -0,0 +1,9 @@ +const bootstrapConfig = require('./bootstrap.config'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); + +bootstrapConfig.styleLoader = ExtractTextPlugin.extract({ + fallbackLoader: 'style-loader', + loader: 'css-loader!sass-loader' +}); + +module.exports = bootstrapConfig; diff --git a/src/styles/fonts/_fonts.scss b/src/styles/fonts/_fonts.scss index c1ef8d838..5a4795d2f 100644 --- a/src/styles/fonts/_fonts.scss +++ b/src/styles/fonts/_fonts.scss @@ -1,29 +1,29 @@ @font-face{ font-family: 'Montserrat'; - src: url('./static/fonts/montserrat/Montserrat-Regular.otf'); + src: url('../../static/fonts/montserrat/Montserrat-Regular.otf'); } @font-face{ font-family: 'Montserrat'; - src: url('./static/fonts/montserrat/Montserrat-Bold.otf'); + src: url('../../static/fonts/montserrat/Montserrat-Bold.otf'); font-weight: 700; } @font-face{ font-family: 'Montserrat'; - src: url('./static/fonts/montserrat/Montserrat-Light.otf'); + src: url('../../static/fonts/montserrat/Montserrat-Light.otf'); font-weight: 300; } @font-face{ font-family: 'Montserrat'; - src: url('./static/fonts/montserrat/Montserrat-Hairline.otf'); + src: url('../../static/fonts/montserrat/Montserrat-Hairline.otf'); font-weight: 100; } @font-face{ font-family: 'Montserrat'; - src: url('./static/fonts/montserrat/Montserrat-Black.otf'); + src: url('../../static/fonts/montserrat/Montserrat-Black.otf'); font-weight: 600; } @@ -39,11 +39,11 @@ @font-face { font-family: "SSStandard"; - src: url('./static/fonts/ss-standard/ss-standard.eot'); - src: url('./static/fonts/ss-standard/ss-standard.eot?#iefix') format('embedded-opentype'), - url('./static/fonts/ss-standard/ss-standard.woff') format('woff'), - url('./static/fonts/ss-standard/ss-standard.ttf') format('truetype'), - url('./static/fonts/ss-standard/ss-standard.svg#SSStandard') format('svg'); + src: url('../../static/fonts/ss-standard/ss-standard.eot'); + src: url('../../static/fonts/ss-standard/ss-standard.eot?#iefix') format('embedded-opentype'), + url('../../static/fonts/ss-standard/ss-standard.woff') format('woff'), + url('../../static/fonts/ss-standard/ss-standard.ttf') format('truetype'), + url('../../static/fonts/ss-standard/ss-standard.svg#SSStandard') format('svg'); font-weight: normal; font-style: normal; } diff --git a/src/styles/fonts/compressed/svg/p1.svg b/src/styles/fonts/compressed/svg/p1.svg deleted file mode 100644 index 37d46a4ed..000000000 Binary files a/src/styles/fonts/compressed/svg/p1.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p10.svg b/src/styles/fonts/compressed/svg/p10.svg deleted file mode 100644 index 29ffdb783..000000000 Binary files a/src/styles/fonts/compressed/svg/p10.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p100.svg b/src/styles/fonts/compressed/svg/p100.svg deleted file mode 100644 index ca4008cb5..000000000 Binary files a/src/styles/fonts/compressed/svg/p100.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p101.svg b/src/styles/fonts/compressed/svg/p101.svg deleted file mode 100644 index 61ee82fe6..000000000 Binary files a/src/styles/fonts/compressed/svg/p101.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p102.svg b/src/styles/fonts/compressed/svg/p102.svg deleted file mode 100644 index 7f58cb200..000000000 Binary files a/src/styles/fonts/compressed/svg/p102.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p103.svg b/src/styles/fonts/compressed/svg/p103.svg deleted file mode 100644 index b4b051f55..000000000 Binary files a/src/styles/fonts/compressed/svg/p103.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p104.svg b/src/styles/fonts/compressed/svg/p104.svg deleted file mode 100644 index c066b6848..000000000 Binary files a/src/styles/fonts/compressed/svg/p104.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p105.svg b/src/styles/fonts/compressed/svg/p105.svg deleted file mode 100644 index bd9ad4f37..000000000 Binary files a/src/styles/fonts/compressed/svg/p105.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p106.svg b/src/styles/fonts/compressed/svg/p106.svg deleted file mode 100644 index 075253038..000000000 Binary files a/src/styles/fonts/compressed/svg/p106.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p107.svg b/src/styles/fonts/compressed/svg/p107.svg deleted file mode 100644 index af07b60d5..000000000 Binary files a/src/styles/fonts/compressed/svg/p107.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p108.svg b/src/styles/fonts/compressed/svg/p108.svg deleted file mode 100644 index f7c2d3cf4..000000000 Binary files a/src/styles/fonts/compressed/svg/p108.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p109.svg b/src/styles/fonts/compressed/svg/p109.svg deleted file mode 100644 index 8a0409436..000000000 Binary files a/src/styles/fonts/compressed/svg/p109.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p11.svg b/src/styles/fonts/compressed/svg/p11.svg deleted file mode 100644 index fd25a563e..000000000 Binary files a/src/styles/fonts/compressed/svg/p11.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p110.svg b/src/styles/fonts/compressed/svg/p110.svg deleted file mode 100644 index e5adce6b7..000000000 Binary files a/src/styles/fonts/compressed/svg/p110.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p111.svg b/src/styles/fonts/compressed/svg/p111.svg deleted file mode 100644 index c3ce0e690..000000000 Binary files a/src/styles/fonts/compressed/svg/p111.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p112.svg b/src/styles/fonts/compressed/svg/p112.svg deleted file mode 100644 index 4d18e2c9c..000000000 Binary files a/src/styles/fonts/compressed/svg/p112.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p113.svg b/src/styles/fonts/compressed/svg/p113.svg deleted file mode 100644 index 16f2a5086..000000000 Binary files a/src/styles/fonts/compressed/svg/p113.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p114.svg b/src/styles/fonts/compressed/svg/p114.svg deleted file mode 100644 index 240011780..000000000 Binary files a/src/styles/fonts/compressed/svg/p114.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p115.svg b/src/styles/fonts/compressed/svg/p115.svg deleted file mode 100644 index d63d7633f..000000000 Binary files a/src/styles/fonts/compressed/svg/p115.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p116.svg b/src/styles/fonts/compressed/svg/p116.svg deleted file mode 100644 index 55a08f38e..000000000 Binary files a/src/styles/fonts/compressed/svg/p116.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p117.svg b/src/styles/fonts/compressed/svg/p117.svg deleted file mode 100644 index 7815b2661..000000000 Binary files a/src/styles/fonts/compressed/svg/p117.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p118.svg b/src/styles/fonts/compressed/svg/p118.svg deleted file mode 100644 index 1e13f52f9..000000000 Binary files a/src/styles/fonts/compressed/svg/p118.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p119.svg b/src/styles/fonts/compressed/svg/p119.svg deleted file mode 100644 index 41f67377a..000000000 Binary files a/src/styles/fonts/compressed/svg/p119.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p12.svg b/src/styles/fonts/compressed/svg/p12.svg deleted file mode 100644 index c9db56984..000000000 Binary files a/src/styles/fonts/compressed/svg/p12.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p120.svg b/src/styles/fonts/compressed/svg/p120.svg deleted file mode 100644 index ef28bbf20..000000000 Binary files a/src/styles/fonts/compressed/svg/p120.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p121.svg b/src/styles/fonts/compressed/svg/p121.svg deleted file mode 100644 index 72dd36bb5..000000000 Binary files a/src/styles/fonts/compressed/svg/p121.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p122.svg b/src/styles/fonts/compressed/svg/p122.svg deleted file mode 100644 index 535e50a6e..000000000 Binary files a/src/styles/fonts/compressed/svg/p122.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p123.svg b/src/styles/fonts/compressed/svg/p123.svg deleted file mode 100644 index 6e5d427d5..000000000 Binary files a/src/styles/fonts/compressed/svg/p123.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p124.svg b/src/styles/fonts/compressed/svg/p124.svg deleted file mode 100644 index a11dfd3f6..000000000 Binary files a/src/styles/fonts/compressed/svg/p124.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p125.svg b/src/styles/fonts/compressed/svg/p125.svg deleted file mode 100644 index 51cde5a18..000000000 Binary files a/src/styles/fonts/compressed/svg/p125.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p126.svg b/src/styles/fonts/compressed/svg/p126.svg deleted file mode 100644 index 40831936e..000000000 Binary files a/src/styles/fonts/compressed/svg/p126.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p127.svg b/src/styles/fonts/compressed/svg/p127.svg deleted file mode 100644 index aad603580..000000000 Binary files a/src/styles/fonts/compressed/svg/p127.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p128.svg b/src/styles/fonts/compressed/svg/p128.svg deleted file mode 100644 index 8008f5c79..000000000 Binary files a/src/styles/fonts/compressed/svg/p128.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p129.svg b/src/styles/fonts/compressed/svg/p129.svg deleted file mode 100644 index d9e46d912..000000000 Binary files a/src/styles/fonts/compressed/svg/p129.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p13.svg b/src/styles/fonts/compressed/svg/p13.svg deleted file mode 100644 index 1a8cd0ac8..000000000 Binary files a/src/styles/fonts/compressed/svg/p13.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p130.svg b/src/styles/fonts/compressed/svg/p130.svg deleted file mode 100644 index d3eedacc1..000000000 Binary files a/src/styles/fonts/compressed/svg/p130.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p131.svg b/src/styles/fonts/compressed/svg/p131.svg deleted file mode 100644 index 1f49bbc19..000000000 Binary files a/src/styles/fonts/compressed/svg/p131.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p132.svg b/src/styles/fonts/compressed/svg/p132.svg deleted file mode 100644 index d834da70d..000000000 Binary files a/src/styles/fonts/compressed/svg/p132.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p133.svg b/src/styles/fonts/compressed/svg/p133.svg deleted file mode 100644 index 143e6bc29..000000000 Binary files a/src/styles/fonts/compressed/svg/p133.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p134.svg b/src/styles/fonts/compressed/svg/p134.svg deleted file mode 100644 index b082dd951..000000000 Binary files a/src/styles/fonts/compressed/svg/p134.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p135.svg b/src/styles/fonts/compressed/svg/p135.svg deleted file mode 100644 index ca313ae02..000000000 Binary files a/src/styles/fonts/compressed/svg/p135.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p136.svg b/src/styles/fonts/compressed/svg/p136.svg deleted file mode 100644 index d60dab559..000000000 Binary files a/src/styles/fonts/compressed/svg/p136.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p137.svg b/src/styles/fonts/compressed/svg/p137.svg deleted file mode 100644 index b546caca5..000000000 Binary files a/src/styles/fonts/compressed/svg/p137.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p138.svg b/src/styles/fonts/compressed/svg/p138.svg deleted file mode 100644 index a14e1db30..000000000 Binary files a/src/styles/fonts/compressed/svg/p138.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p139.svg b/src/styles/fonts/compressed/svg/p139.svg deleted file mode 100644 index cf665bcd0..000000000 Binary files a/src/styles/fonts/compressed/svg/p139.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p14.svg b/src/styles/fonts/compressed/svg/p14.svg deleted file mode 100644 index 7d8dcb589..000000000 Binary files a/src/styles/fonts/compressed/svg/p14.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p140.svg b/src/styles/fonts/compressed/svg/p140.svg deleted file mode 100644 index aa9aacb80..000000000 Binary files a/src/styles/fonts/compressed/svg/p140.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p141.svg b/src/styles/fonts/compressed/svg/p141.svg deleted file mode 100644 index f08221eda..000000000 Binary files a/src/styles/fonts/compressed/svg/p141.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p142.svg b/src/styles/fonts/compressed/svg/p142.svg deleted file mode 100644 index 496b4d649..000000000 Binary files a/src/styles/fonts/compressed/svg/p142.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p143.svg b/src/styles/fonts/compressed/svg/p143.svg deleted file mode 100644 index dd20971f1..000000000 Binary files a/src/styles/fonts/compressed/svg/p143.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p144.svg b/src/styles/fonts/compressed/svg/p144.svg deleted file mode 100644 index 7183f74c8..000000000 Binary files a/src/styles/fonts/compressed/svg/p144.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p145.svg b/src/styles/fonts/compressed/svg/p145.svg deleted file mode 100644 index 9cec27052..000000000 Binary files a/src/styles/fonts/compressed/svg/p145.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p146.svg b/src/styles/fonts/compressed/svg/p146.svg deleted file mode 100644 index 92fe6792e..000000000 Binary files a/src/styles/fonts/compressed/svg/p146.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p147.svg b/src/styles/fonts/compressed/svg/p147.svg deleted file mode 100644 index 6e4014f31..000000000 Binary files a/src/styles/fonts/compressed/svg/p147.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p148.svg b/src/styles/fonts/compressed/svg/p148.svg deleted file mode 100644 index 1ecee9273..000000000 Binary files a/src/styles/fonts/compressed/svg/p148.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p149.svg b/src/styles/fonts/compressed/svg/p149.svg deleted file mode 100644 index fa06704fc..000000000 Binary files a/src/styles/fonts/compressed/svg/p149.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p15.svg b/src/styles/fonts/compressed/svg/p15.svg deleted file mode 100644 index 8649fba8a..000000000 Binary files a/src/styles/fonts/compressed/svg/p15.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p150.svg b/src/styles/fonts/compressed/svg/p150.svg deleted file mode 100644 index f85844249..000000000 Binary files a/src/styles/fonts/compressed/svg/p150.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p151.svg b/src/styles/fonts/compressed/svg/p151.svg deleted file mode 100644 index caa9ba45a..000000000 Binary files a/src/styles/fonts/compressed/svg/p151.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p152.svg b/src/styles/fonts/compressed/svg/p152.svg deleted file mode 100644 index 28782717d..000000000 Binary files a/src/styles/fonts/compressed/svg/p152.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p153.svg b/src/styles/fonts/compressed/svg/p153.svg deleted file mode 100644 index c54af80a9..000000000 Binary files a/src/styles/fonts/compressed/svg/p153.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p154.svg b/src/styles/fonts/compressed/svg/p154.svg deleted file mode 100644 index f8c546c3f..000000000 Binary files a/src/styles/fonts/compressed/svg/p154.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p155.svg b/src/styles/fonts/compressed/svg/p155.svg deleted file mode 100644 index dc7711578..000000000 Binary files a/src/styles/fonts/compressed/svg/p155.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p156.svg b/src/styles/fonts/compressed/svg/p156.svg deleted file mode 100644 index 10e924025..000000000 Binary files a/src/styles/fonts/compressed/svg/p156.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p157.svg b/src/styles/fonts/compressed/svg/p157.svg deleted file mode 100644 index 99fa16523..000000000 Binary files a/src/styles/fonts/compressed/svg/p157.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p158.svg b/src/styles/fonts/compressed/svg/p158.svg deleted file mode 100644 index 3315fba97..000000000 Binary files a/src/styles/fonts/compressed/svg/p158.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p159.svg b/src/styles/fonts/compressed/svg/p159.svg deleted file mode 100644 index 01ccba095..000000000 Binary files a/src/styles/fonts/compressed/svg/p159.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p16.svg b/src/styles/fonts/compressed/svg/p16.svg deleted file mode 100644 index 24275cf69..000000000 Binary files a/src/styles/fonts/compressed/svg/p16.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p160.svg b/src/styles/fonts/compressed/svg/p160.svg deleted file mode 100644 index 31c243df5..000000000 Binary files a/src/styles/fonts/compressed/svg/p160.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p161.svg b/src/styles/fonts/compressed/svg/p161.svg deleted file mode 100644 index 93b2b05be..000000000 Binary files a/src/styles/fonts/compressed/svg/p161.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p162.svg b/src/styles/fonts/compressed/svg/p162.svg deleted file mode 100644 index fd0494d12..000000000 Binary files a/src/styles/fonts/compressed/svg/p162.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p163.svg b/src/styles/fonts/compressed/svg/p163.svg deleted file mode 100644 index d21ecea9f..000000000 Binary files a/src/styles/fonts/compressed/svg/p163.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p164.svg b/src/styles/fonts/compressed/svg/p164.svg deleted file mode 100644 index 07a031ca4..000000000 Binary files a/src/styles/fonts/compressed/svg/p164.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p165.svg b/src/styles/fonts/compressed/svg/p165.svg deleted file mode 100644 index 3e247512f..000000000 Binary files a/src/styles/fonts/compressed/svg/p165.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p166.svg b/src/styles/fonts/compressed/svg/p166.svg deleted file mode 100644 index ca276399f..000000000 Binary files a/src/styles/fonts/compressed/svg/p166.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p167.svg b/src/styles/fonts/compressed/svg/p167.svg deleted file mode 100644 index 9d5a7c3ee..000000000 Binary files a/src/styles/fonts/compressed/svg/p167.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p168.svg b/src/styles/fonts/compressed/svg/p168.svg deleted file mode 100644 index dfb394d32..000000000 Binary files a/src/styles/fonts/compressed/svg/p168.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p169.svg b/src/styles/fonts/compressed/svg/p169.svg deleted file mode 100644 index e47ff25cf..000000000 Binary files a/src/styles/fonts/compressed/svg/p169.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p17.svg b/src/styles/fonts/compressed/svg/p17.svg deleted file mode 100644 index aceab6517..000000000 Binary files a/src/styles/fonts/compressed/svg/p17.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p170.svg b/src/styles/fonts/compressed/svg/p170.svg deleted file mode 100644 index 0bd32b71c..000000000 Binary files a/src/styles/fonts/compressed/svg/p170.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p171.svg b/src/styles/fonts/compressed/svg/p171.svg deleted file mode 100644 index 094621cbe..000000000 Binary files a/src/styles/fonts/compressed/svg/p171.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p172.svg b/src/styles/fonts/compressed/svg/p172.svg deleted file mode 100644 index d7b689b58..000000000 Binary files a/src/styles/fonts/compressed/svg/p172.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p173.svg b/src/styles/fonts/compressed/svg/p173.svg deleted file mode 100644 index 433b24376..000000000 Binary files a/src/styles/fonts/compressed/svg/p173.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p174.svg b/src/styles/fonts/compressed/svg/p174.svg deleted file mode 100644 index 971d7872e..000000000 Binary files a/src/styles/fonts/compressed/svg/p174.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p175.svg b/src/styles/fonts/compressed/svg/p175.svg deleted file mode 100644 index 1ea7e6cfd..000000000 Binary files a/src/styles/fonts/compressed/svg/p175.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p176.svg b/src/styles/fonts/compressed/svg/p176.svg deleted file mode 100644 index 6328d6c40..000000000 Binary files a/src/styles/fonts/compressed/svg/p176.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p177.svg b/src/styles/fonts/compressed/svg/p177.svg deleted file mode 100644 index 55c316757..000000000 Binary files a/src/styles/fonts/compressed/svg/p177.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p178.svg b/src/styles/fonts/compressed/svg/p178.svg deleted file mode 100644 index f0bc66c47..000000000 Binary files a/src/styles/fonts/compressed/svg/p178.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p179.svg b/src/styles/fonts/compressed/svg/p179.svg deleted file mode 100644 index 4a4a48ece..000000000 Binary files a/src/styles/fonts/compressed/svg/p179.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p18.svg b/src/styles/fonts/compressed/svg/p18.svg deleted file mode 100644 index 8b44c4c26..000000000 Binary files a/src/styles/fonts/compressed/svg/p18.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p180.svg b/src/styles/fonts/compressed/svg/p180.svg deleted file mode 100644 index 1f8e9b919..000000000 Binary files a/src/styles/fonts/compressed/svg/p180.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p181.svg b/src/styles/fonts/compressed/svg/p181.svg deleted file mode 100644 index d4b6bb50e..000000000 Binary files a/src/styles/fonts/compressed/svg/p181.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p182.svg b/src/styles/fonts/compressed/svg/p182.svg deleted file mode 100644 index 4697c5dcc..000000000 Binary files a/src/styles/fonts/compressed/svg/p182.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p183.svg b/src/styles/fonts/compressed/svg/p183.svg deleted file mode 100644 index 7308496a4..000000000 Binary files a/src/styles/fonts/compressed/svg/p183.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p184.svg b/src/styles/fonts/compressed/svg/p184.svg deleted file mode 100644 index 1dff15fdc..000000000 Binary files a/src/styles/fonts/compressed/svg/p184.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p185.svg b/src/styles/fonts/compressed/svg/p185.svg deleted file mode 100644 index d246fe079..000000000 Binary files a/src/styles/fonts/compressed/svg/p185.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p186.svg b/src/styles/fonts/compressed/svg/p186.svg deleted file mode 100644 index 8b982ed74..000000000 Binary files a/src/styles/fonts/compressed/svg/p186.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p187.svg b/src/styles/fonts/compressed/svg/p187.svg deleted file mode 100644 index 91ce47c23..000000000 Binary files a/src/styles/fonts/compressed/svg/p187.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p188.svg b/src/styles/fonts/compressed/svg/p188.svg deleted file mode 100644 index 3a9cf872e..000000000 Binary files a/src/styles/fonts/compressed/svg/p188.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p189.svg b/src/styles/fonts/compressed/svg/p189.svg deleted file mode 100644 index 206caada7..000000000 Binary files a/src/styles/fonts/compressed/svg/p189.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p19.svg b/src/styles/fonts/compressed/svg/p19.svg deleted file mode 100644 index 35b5a9742..000000000 Binary files a/src/styles/fonts/compressed/svg/p19.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p190.svg b/src/styles/fonts/compressed/svg/p190.svg deleted file mode 100644 index 66ec6d381..000000000 Binary files a/src/styles/fonts/compressed/svg/p190.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p191.svg b/src/styles/fonts/compressed/svg/p191.svg deleted file mode 100644 index 51d3454fb..000000000 Binary files a/src/styles/fonts/compressed/svg/p191.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p192.svg b/src/styles/fonts/compressed/svg/p192.svg deleted file mode 100644 index 13ab08cc8..000000000 Binary files a/src/styles/fonts/compressed/svg/p192.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p193.svg b/src/styles/fonts/compressed/svg/p193.svg deleted file mode 100644 index aa141c012..000000000 Binary files a/src/styles/fonts/compressed/svg/p193.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p194.svg b/src/styles/fonts/compressed/svg/p194.svg deleted file mode 100644 index 9f66f46a7..000000000 Binary files a/src/styles/fonts/compressed/svg/p194.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p195.svg b/src/styles/fonts/compressed/svg/p195.svg deleted file mode 100644 index 20d0bc124..000000000 Binary files a/src/styles/fonts/compressed/svg/p195.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p196.svg b/src/styles/fonts/compressed/svg/p196.svg deleted file mode 100644 index 37800d476..000000000 Binary files a/src/styles/fonts/compressed/svg/p196.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p197.svg b/src/styles/fonts/compressed/svg/p197.svg deleted file mode 100644 index 26309dcdf..000000000 Binary files a/src/styles/fonts/compressed/svg/p197.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p198.svg b/src/styles/fonts/compressed/svg/p198.svg deleted file mode 100644 index fd5ebc226..000000000 Binary files a/src/styles/fonts/compressed/svg/p198.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p199.svg b/src/styles/fonts/compressed/svg/p199.svg deleted file mode 100644 index 528c58139..000000000 Binary files a/src/styles/fonts/compressed/svg/p199.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p2.svg b/src/styles/fonts/compressed/svg/p2.svg deleted file mode 100644 index fe53f0c91..000000000 Binary files a/src/styles/fonts/compressed/svg/p2.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p20.svg b/src/styles/fonts/compressed/svg/p20.svg deleted file mode 100644 index b0a24d2b5..000000000 Binary files a/src/styles/fonts/compressed/svg/p20.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p200.svg b/src/styles/fonts/compressed/svg/p200.svg deleted file mode 100644 index 8d5a12c3e..000000000 Binary files a/src/styles/fonts/compressed/svg/p200.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p201.svg b/src/styles/fonts/compressed/svg/p201.svg deleted file mode 100644 index 30de94b9c..000000000 Binary files a/src/styles/fonts/compressed/svg/p201.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p202.svg b/src/styles/fonts/compressed/svg/p202.svg deleted file mode 100644 index a24f08c00..000000000 Binary files a/src/styles/fonts/compressed/svg/p202.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p203.svg b/src/styles/fonts/compressed/svg/p203.svg deleted file mode 100644 index 11c31aa90..000000000 Binary files a/src/styles/fonts/compressed/svg/p203.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p204.svg b/src/styles/fonts/compressed/svg/p204.svg deleted file mode 100644 index 7ad25e37c..000000000 Binary files a/src/styles/fonts/compressed/svg/p204.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p205.svg b/src/styles/fonts/compressed/svg/p205.svg deleted file mode 100644 index d60114148..000000000 Binary files a/src/styles/fonts/compressed/svg/p205.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p206.svg b/src/styles/fonts/compressed/svg/p206.svg deleted file mode 100644 index d73a8a440..000000000 Binary files a/src/styles/fonts/compressed/svg/p206.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p207.svg b/src/styles/fonts/compressed/svg/p207.svg deleted file mode 100644 index 1dba5aa25..000000000 Binary files a/src/styles/fonts/compressed/svg/p207.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p208.svg b/src/styles/fonts/compressed/svg/p208.svg deleted file mode 100644 index bb76d7ba3..000000000 Binary files a/src/styles/fonts/compressed/svg/p208.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p209.svg b/src/styles/fonts/compressed/svg/p209.svg deleted file mode 100644 index b5f430c34..000000000 Binary files a/src/styles/fonts/compressed/svg/p209.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p21.svg b/src/styles/fonts/compressed/svg/p21.svg deleted file mode 100644 index 7cb0e84f5..000000000 Binary files a/src/styles/fonts/compressed/svg/p21.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p210.svg b/src/styles/fonts/compressed/svg/p210.svg deleted file mode 100644 index 262d6faba..000000000 Binary files a/src/styles/fonts/compressed/svg/p210.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p211.svg b/src/styles/fonts/compressed/svg/p211.svg deleted file mode 100644 index 75c02ebec..000000000 Binary files a/src/styles/fonts/compressed/svg/p211.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p212.svg b/src/styles/fonts/compressed/svg/p212.svg deleted file mode 100644 index 75ca160eb..000000000 Binary files a/src/styles/fonts/compressed/svg/p212.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p213.svg b/src/styles/fonts/compressed/svg/p213.svg deleted file mode 100644 index 018d68460..000000000 Binary files a/src/styles/fonts/compressed/svg/p213.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p214.svg b/src/styles/fonts/compressed/svg/p214.svg deleted file mode 100644 index 997e47828..000000000 Binary files a/src/styles/fonts/compressed/svg/p214.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p215.svg b/src/styles/fonts/compressed/svg/p215.svg deleted file mode 100644 index c016e716f..000000000 Binary files a/src/styles/fonts/compressed/svg/p215.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p216.svg b/src/styles/fonts/compressed/svg/p216.svg deleted file mode 100644 index 2ce931a0f..000000000 Binary files a/src/styles/fonts/compressed/svg/p216.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p217.svg b/src/styles/fonts/compressed/svg/p217.svg deleted file mode 100644 index 56e5916a9..000000000 Binary files a/src/styles/fonts/compressed/svg/p217.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p218.svg b/src/styles/fonts/compressed/svg/p218.svg deleted file mode 100644 index 02cdf3651..000000000 Binary files a/src/styles/fonts/compressed/svg/p218.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p219.svg b/src/styles/fonts/compressed/svg/p219.svg deleted file mode 100644 index b426eb76e..000000000 Binary files a/src/styles/fonts/compressed/svg/p219.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p22.svg b/src/styles/fonts/compressed/svg/p22.svg deleted file mode 100644 index 9de5fc9d8..000000000 Binary files a/src/styles/fonts/compressed/svg/p22.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p220.svg b/src/styles/fonts/compressed/svg/p220.svg deleted file mode 100644 index e7b7f36bd..000000000 Binary files a/src/styles/fonts/compressed/svg/p220.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p221.svg b/src/styles/fonts/compressed/svg/p221.svg deleted file mode 100644 index caff4fca4..000000000 Binary files a/src/styles/fonts/compressed/svg/p221.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p222.svg b/src/styles/fonts/compressed/svg/p222.svg deleted file mode 100644 index d69f6a676..000000000 Binary files a/src/styles/fonts/compressed/svg/p222.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p223.svg b/src/styles/fonts/compressed/svg/p223.svg deleted file mode 100644 index 5c4d514bc..000000000 Binary files a/src/styles/fonts/compressed/svg/p223.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p224.svg b/src/styles/fonts/compressed/svg/p224.svg deleted file mode 100644 index 3fc5ba32c..000000000 Binary files a/src/styles/fonts/compressed/svg/p224.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p225.svg b/src/styles/fonts/compressed/svg/p225.svg deleted file mode 100644 index de9a0fcdf..000000000 Binary files a/src/styles/fonts/compressed/svg/p225.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p226.svg b/src/styles/fonts/compressed/svg/p226.svg deleted file mode 100644 index 2ba9967f0..000000000 Binary files a/src/styles/fonts/compressed/svg/p226.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p227.svg b/src/styles/fonts/compressed/svg/p227.svg deleted file mode 100644 index 870e09651..000000000 Binary files a/src/styles/fonts/compressed/svg/p227.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p228.svg b/src/styles/fonts/compressed/svg/p228.svg deleted file mode 100644 index c55fa2f16..000000000 Binary files a/src/styles/fonts/compressed/svg/p228.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p229.svg b/src/styles/fonts/compressed/svg/p229.svg deleted file mode 100644 index 0de4e65ba..000000000 Binary files a/src/styles/fonts/compressed/svg/p229.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p23.svg b/src/styles/fonts/compressed/svg/p23.svg deleted file mode 100644 index 218b7e288..000000000 Binary files a/src/styles/fonts/compressed/svg/p23.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p230.svg b/src/styles/fonts/compressed/svg/p230.svg deleted file mode 100644 index 2cc89a5e8..000000000 Binary files a/src/styles/fonts/compressed/svg/p230.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p231.svg b/src/styles/fonts/compressed/svg/p231.svg deleted file mode 100644 index c35320189..000000000 Binary files a/src/styles/fonts/compressed/svg/p231.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p232.svg b/src/styles/fonts/compressed/svg/p232.svg deleted file mode 100644 index a6b7c3f3f..000000000 Binary files a/src/styles/fonts/compressed/svg/p232.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p233.svg b/src/styles/fonts/compressed/svg/p233.svg deleted file mode 100644 index 0be88973c..000000000 Binary files a/src/styles/fonts/compressed/svg/p233.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p234.svg b/src/styles/fonts/compressed/svg/p234.svg deleted file mode 100644 index 6c7936edb..000000000 Binary files a/src/styles/fonts/compressed/svg/p234.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p235.svg b/src/styles/fonts/compressed/svg/p235.svg deleted file mode 100644 index 23ff4d241..000000000 Binary files a/src/styles/fonts/compressed/svg/p235.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p236.svg b/src/styles/fonts/compressed/svg/p236.svg deleted file mode 100644 index 7dff77a55..000000000 Binary files a/src/styles/fonts/compressed/svg/p236.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p237.svg b/src/styles/fonts/compressed/svg/p237.svg deleted file mode 100644 index 4f37566ed..000000000 Binary files a/src/styles/fonts/compressed/svg/p237.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p238.svg b/src/styles/fonts/compressed/svg/p238.svg deleted file mode 100644 index 4f24f1441..000000000 Binary files a/src/styles/fonts/compressed/svg/p238.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p239.svg b/src/styles/fonts/compressed/svg/p239.svg deleted file mode 100644 index c2cd719d7..000000000 Binary files a/src/styles/fonts/compressed/svg/p239.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p24.svg b/src/styles/fonts/compressed/svg/p24.svg deleted file mode 100644 index 4243f6958..000000000 Binary files a/src/styles/fonts/compressed/svg/p24.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p240.svg b/src/styles/fonts/compressed/svg/p240.svg deleted file mode 100644 index 801fddcc0..000000000 Binary files a/src/styles/fonts/compressed/svg/p240.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p241.svg b/src/styles/fonts/compressed/svg/p241.svg deleted file mode 100644 index d6ef20df1..000000000 Binary files a/src/styles/fonts/compressed/svg/p241.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p242.svg b/src/styles/fonts/compressed/svg/p242.svg deleted file mode 100644 index dd6be380e..000000000 Binary files a/src/styles/fonts/compressed/svg/p242.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p243.svg b/src/styles/fonts/compressed/svg/p243.svg deleted file mode 100644 index 056b072ec..000000000 Binary files a/src/styles/fonts/compressed/svg/p243.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p244.svg b/src/styles/fonts/compressed/svg/p244.svg deleted file mode 100644 index ec0aed2c2..000000000 Binary files a/src/styles/fonts/compressed/svg/p244.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p245.svg b/src/styles/fonts/compressed/svg/p245.svg deleted file mode 100644 index 2c5cfd670..000000000 Binary files a/src/styles/fonts/compressed/svg/p245.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p246.svg b/src/styles/fonts/compressed/svg/p246.svg deleted file mode 100644 index 19d4b0c03..000000000 Binary files a/src/styles/fonts/compressed/svg/p246.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p247.svg b/src/styles/fonts/compressed/svg/p247.svg deleted file mode 100644 index b42f66c50..000000000 Binary files a/src/styles/fonts/compressed/svg/p247.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p248.svg b/src/styles/fonts/compressed/svg/p248.svg deleted file mode 100644 index 04404bd11..000000000 Binary files a/src/styles/fonts/compressed/svg/p248.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p249.svg b/src/styles/fonts/compressed/svg/p249.svg deleted file mode 100644 index cd225d6e0..000000000 Binary files a/src/styles/fonts/compressed/svg/p249.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p25.svg b/src/styles/fonts/compressed/svg/p25.svg deleted file mode 100644 index 15e988570..000000000 Binary files a/src/styles/fonts/compressed/svg/p25.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p250.svg b/src/styles/fonts/compressed/svg/p250.svg deleted file mode 100644 index 4a93c1927..000000000 Binary files a/src/styles/fonts/compressed/svg/p250.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p251.svg b/src/styles/fonts/compressed/svg/p251.svg deleted file mode 100644 index 7cecaf3a5..000000000 Binary files a/src/styles/fonts/compressed/svg/p251.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p252.svg b/src/styles/fonts/compressed/svg/p252.svg deleted file mode 100644 index 2d0673926..000000000 Binary files a/src/styles/fonts/compressed/svg/p252.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p253.svg b/src/styles/fonts/compressed/svg/p253.svg deleted file mode 100644 index cd561d213..000000000 Binary files a/src/styles/fonts/compressed/svg/p253.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p254.svg b/src/styles/fonts/compressed/svg/p254.svg deleted file mode 100644 index 5cd59bad0..000000000 Binary files a/src/styles/fonts/compressed/svg/p254.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p255.svg b/src/styles/fonts/compressed/svg/p255.svg deleted file mode 100644 index 7dc695d77..000000000 Binary files a/src/styles/fonts/compressed/svg/p255.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p256.svg b/src/styles/fonts/compressed/svg/p256.svg deleted file mode 100644 index 2a8a7b942..000000000 Binary files a/src/styles/fonts/compressed/svg/p256.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p257.svg b/src/styles/fonts/compressed/svg/p257.svg deleted file mode 100644 index cdd0cacfe..000000000 Binary files a/src/styles/fonts/compressed/svg/p257.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p258.svg b/src/styles/fonts/compressed/svg/p258.svg deleted file mode 100644 index 44644da79..000000000 Binary files a/src/styles/fonts/compressed/svg/p258.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p259.svg b/src/styles/fonts/compressed/svg/p259.svg deleted file mode 100644 index de788e9f3..000000000 Binary files a/src/styles/fonts/compressed/svg/p259.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p26.svg b/src/styles/fonts/compressed/svg/p26.svg deleted file mode 100644 index b691fbe5d..000000000 Binary files a/src/styles/fonts/compressed/svg/p26.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p260.svg b/src/styles/fonts/compressed/svg/p260.svg deleted file mode 100644 index 42bfc9b5c..000000000 Binary files a/src/styles/fonts/compressed/svg/p260.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p261.svg b/src/styles/fonts/compressed/svg/p261.svg deleted file mode 100644 index 1a989a44e..000000000 Binary files a/src/styles/fonts/compressed/svg/p261.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p262.svg b/src/styles/fonts/compressed/svg/p262.svg deleted file mode 100644 index ac9ccbc4c..000000000 Binary files a/src/styles/fonts/compressed/svg/p262.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p263.svg b/src/styles/fonts/compressed/svg/p263.svg deleted file mode 100644 index 8c2cbdc46..000000000 Binary files a/src/styles/fonts/compressed/svg/p263.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p264.svg b/src/styles/fonts/compressed/svg/p264.svg deleted file mode 100644 index 15baaa02a..000000000 Binary files a/src/styles/fonts/compressed/svg/p264.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p265.svg b/src/styles/fonts/compressed/svg/p265.svg deleted file mode 100644 index e05b93f34..000000000 Binary files a/src/styles/fonts/compressed/svg/p265.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p266.svg b/src/styles/fonts/compressed/svg/p266.svg deleted file mode 100644 index a78ceea8d..000000000 Binary files a/src/styles/fonts/compressed/svg/p266.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p267.svg b/src/styles/fonts/compressed/svg/p267.svg deleted file mode 100644 index 06aa61d96..000000000 Binary files a/src/styles/fonts/compressed/svg/p267.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p268.svg b/src/styles/fonts/compressed/svg/p268.svg deleted file mode 100644 index d6fcf5b37..000000000 Binary files a/src/styles/fonts/compressed/svg/p268.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p269.svg b/src/styles/fonts/compressed/svg/p269.svg deleted file mode 100644 index 95560299e..000000000 Binary files a/src/styles/fonts/compressed/svg/p269.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p27.svg b/src/styles/fonts/compressed/svg/p27.svg deleted file mode 100644 index 19673310f..000000000 Binary files a/src/styles/fonts/compressed/svg/p27.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p270.svg b/src/styles/fonts/compressed/svg/p270.svg deleted file mode 100644 index 9a78d7d45..000000000 Binary files a/src/styles/fonts/compressed/svg/p270.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p271.svg b/src/styles/fonts/compressed/svg/p271.svg deleted file mode 100644 index 191e2fe32..000000000 Binary files a/src/styles/fonts/compressed/svg/p271.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p272.svg b/src/styles/fonts/compressed/svg/p272.svg deleted file mode 100644 index c403e57aa..000000000 Binary files a/src/styles/fonts/compressed/svg/p272.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p273.svg b/src/styles/fonts/compressed/svg/p273.svg deleted file mode 100644 index e5a5a61c9..000000000 Binary files a/src/styles/fonts/compressed/svg/p273.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p274.svg b/src/styles/fonts/compressed/svg/p274.svg deleted file mode 100644 index 97ef694ef..000000000 Binary files a/src/styles/fonts/compressed/svg/p274.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p275.svg b/src/styles/fonts/compressed/svg/p275.svg deleted file mode 100644 index 87196caa7..000000000 Binary files a/src/styles/fonts/compressed/svg/p275.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p276.svg b/src/styles/fonts/compressed/svg/p276.svg deleted file mode 100644 index c9cd02f37..000000000 Binary files a/src/styles/fonts/compressed/svg/p276.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p277.svg b/src/styles/fonts/compressed/svg/p277.svg deleted file mode 100644 index ff6c89ecb..000000000 Binary files a/src/styles/fonts/compressed/svg/p277.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p278.svg b/src/styles/fonts/compressed/svg/p278.svg deleted file mode 100644 index 7632498fa..000000000 Binary files a/src/styles/fonts/compressed/svg/p278.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p279.svg b/src/styles/fonts/compressed/svg/p279.svg deleted file mode 100644 index 1200e8a2c..000000000 Binary files a/src/styles/fonts/compressed/svg/p279.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p28.svg b/src/styles/fonts/compressed/svg/p28.svg deleted file mode 100644 index 9384f8e9b..000000000 Binary files a/src/styles/fonts/compressed/svg/p28.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p280.svg b/src/styles/fonts/compressed/svg/p280.svg deleted file mode 100644 index 96c887a9b..000000000 Binary files a/src/styles/fonts/compressed/svg/p280.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p281.svg b/src/styles/fonts/compressed/svg/p281.svg deleted file mode 100644 index 02b9f4f56..000000000 Binary files a/src/styles/fonts/compressed/svg/p281.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p282.svg b/src/styles/fonts/compressed/svg/p282.svg deleted file mode 100644 index cf1701848..000000000 Binary files a/src/styles/fonts/compressed/svg/p282.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p283.svg b/src/styles/fonts/compressed/svg/p283.svg deleted file mode 100644 index 9e204eb01..000000000 Binary files a/src/styles/fonts/compressed/svg/p283.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p284.svg b/src/styles/fonts/compressed/svg/p284.svg deleted file mode 100644 index 4091de633..000000000 Binary files a/src/styles/fonts/compressed/svg/p284.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p285.svg b/src/styles/fonts/compressed/svg/p285.svg deleted file mode 100644 index 17780425f..000000000 Binary files a/src/styles/fonts/compressed/svg/p285.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p286.svg b/src/styles/fonts/compressed/svg/p286.svg deleted file mode 100644 index 876e9b392..000000000 Binary files a/src/styles/fonts/compressed/svg/p286.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p287.svg b/src/styles/fonts/compressed/svg/p287.svg deleted file mode 100644 index 951dbc823..000000000 Binary files a/src/styles/fonts/compressed/svg/p287.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p288.svg b/src/styles/fonts/compressed/svg/p288.svg deleted file mode 100644 index 07ae55022..000000000 Binary files a/src/styles/fonts/compressed/svg/p288.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p289.svg b/src/styles/fonts/compressed/svg/p289.svg deleted file mode 100644 index 81d6ebab1..000000000 Binary files a/src/styles/fonts/compressed/svg/p289.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p29.svg b/src/styles/fonts/compressed/svg/p29.svg deleted file mode 100644 index 9e333b61f..000000000 Binary files a/src/styles/fonts/compressed/svg/p29.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p290.svg b/src/styles/fonts/compressed/svg/p290.svg deleted file mode 100644 index bd7b070d3..000000000 Binary files a/src/styles/fonts/compressed/svg/p290.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p291.svg b/src/styles/fonts/compressed/svg/p291.svg deleted file mode 100644 index 8d64ede51..000000000 Binary files a/src/styles/fonts/compressed/svg/p291.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p292.svg b/src/styles/fonts/compressed/svg/p292.svg deleted file mode 100644 index 9e730b4c6..000000000 Binary files a/src/styles/fonts/compressed/svg/p292.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p293.svg b/src/styles/fonts/compressed/svg/p293.svg deleted file mode 100644 index da5a0742c..000000000 Binary files a/src/styles/fonts/compressed/svg/p293.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p294.svg b/src/styles/fonts/compressed/svg/p294.svg deleted file mode 100644 index f93b8cb56..000000000 Binary files a/src/styles/fonts/compressed/svg/p294.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p295.svg b/src/styles/fonts/compressed/svg/p295.svg deleted file mode 100644 index d98e86538..000000000 Binary files a/src/styles/fonts/compressed/svg/p295.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p296.svg b/src/styles/fonts/compressed/svg/p296.svg deleted file mode 100644 index 4d7d6dc2f..000000000 Binary files a/src/styles/fonts/compressed/svg/p296.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p297.svg b/src/styles/fonts/compressed/svg/p297.svg deleted file mode 100644 index 51f51f299..000000000 Binary files a/src/styles/fonts/compressed/svg/p297.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p298.svg b/src/styles/fonts/compressed/svg/p298.svg deleted file mode 100644 index bf5ddfbf6..000000000 Binary files a/src/styles/fonts/compressed/svg/p298.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p299.svg b/src/styles/fonts/compressed/svg/p299.svg deleted file mode 100644 index b5ab4657c..000000000 Binary files a/src/styles/fonts/compressed/svg/p299.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p3.svg b/src/styles/fonts/compressed/svg/p3.svg deleted file mode 100644 index 5cf05114c..000000000 Binary files a/src/styles/fonts/compressed/svg/p3.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p30.svg b/src/styles/fonts/compressed/svg/p30.svg deleted file mode 100644 index e003519b3..000000000 Binary files a/src/styles/fonts/compressed/svg/p30.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p300.svg b/src/styles/fonts/compressed/svg/p300.svg deleted file mode 100644 index fcca82f41..000000000 Binary files a/src/styles/fonts/compressed/svg/p300.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p301.svg b/src/styles/fonts/compressed/svg/p301.svg deleted file mode 100644 index cd13b23ab..000000000 Binary files a/src/styles/fonts/compressed/svg/p301.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p302.svg b/src/styles/fonts/compressed/svg/p302.svg deleted file mode 100644 index 0d86c361d..000000000 Binary files a/src/styles/fonts/compressed/svg/p302.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p303.svg b/src/styles/fonts/compressed/svg/p303.svg deleted file mode 100644 index a34eb795b..000000000 Binary files a/src/styles/fonts/compressed/svg/p303.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p304.svg b/src/styles/fonts/compressed/svg/p304.svg deleted file mode 100644 index 3f58adc75..000000000 Binary files a/src/styles/fonts/compressed/svg/p304.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p305.svg b/src/styles/fonts/compressed/svg/p305.svg deleted file mode 100644 index 80d39cb4c..000000000 Binary files a/src/styles/fonts/compressed/svg/p305.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p306.svg b/src/styles/fonts/compressed/svg/p306.svg deleted file mode 100644 index d661a30af..000000000 Binary files a/src/styles/fonts/compressed/svg/p306.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p307.svg b/src/styles/fonts/compressed/svg/p307.svg deleted file mode 100644 index 2f4e332d0..000000000 Binary files a/src/styles/fonts/compressed/svg/p307.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p308.svg b/src/styles/fonts/compressed/svg/p308.svg deleted file mode 100644 index 0afe41e06..000000000 Binary files a/src/styles/fonts/compressed/svg/p308.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p309.svg b/src/styles/fonts/compressed/svg/p309.svg deleted file mode 100644 index 8d1315775..000000000 Binary files a/src/styles/fonts/compressed/svg/p309.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p31.svg b/src/styles/fonts/compressed/svg/p31.svg deleted file mode 100644 index 4ccd1f7c6..000000000 Binary files a/src/styles/fonts/compressed/svg/p31.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p310.svg b/src/styles/fonts/compressed/svg/p310.svg deleted file mode 100644 index 84a426e75..000000000 Binary files a/src/styles/fonts/compressed/svg/p310.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p311.svg b/src/styles/fonts/compressed/svg/p311.svg deleted file mode 100644 index 55b87bba7..000000000 Binary files a/src/styles/fonts/compressed/svg/p311.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p312.svg b/src/styles/fonts/compressed/svg/p312.svg deleted file mode 100644 index b37f68f68..000000000 Binary files a/src/styles/fonts/compressed/svg/p312.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p313.svg b/src/styles/fonts/compressed/svg/p313.svg deleted file mode 100644 index ff5e2a4b6..000000000 Binary files a/src/styles/fonts/compressed/svg/p313.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p314.svg b/src/styles/fonts/compressed/svg/p314.svg deleted file mode 100644 index 6a1ab014f..000000000 Binary files a/src/styles/fonts/compressed/svg/p314.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p315.svg b/src/styles/fonts/compressed/svg/p315.svg deleted file mode 100644 index 78c9dbc46..000000000 Binary files a/src/styles/fonts/compressed/svg/p315.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p316.svg b/src/styles/fonts/compressed/svg/p316.svg deleted file mode 100644 index e53c87490..000000000 Binary files a/src/styles/fonts/compressed/svg/p316.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p317.svg b/src/styles/fonts/compressed/svg/p317.svg deleted file mode 100644 index 1a70c7c84..000000000 Binary files a/src/styles/fonts/compressed/svg/p317.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p318.svg b/src/styles/fonts/compressed/svg/p318.svg deleted file mode 100644 index a28e72342..000000000 Binary files a/src/styles/fonts/compressed/svg/p318.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p319.svg b/src/styles/fonts/compressed/svg/p319.svg deleted file mode 100644 index 6e6963a4d..000000000 Binary files a/src/styles/fonts/compressed/svg/p319.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p32.svg b/src/styles/fonts/compressed/svg/p32.svg deleted file mode 100644 index edbc8f27f..000000000 Binary files a/src/styles/fonts/compressed/svg/p32.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p320.svg b/src/styles/fonts/compressed/svg/p320.svg deleted file mode 100644 index d7d88b28e..000000000 Binary files a/src/styles/fonts/compressed/svg/p320.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p321.svg b/src/styles/fonts/compressed/svg/p321.svg deleted file mode 100644 index eebf4a6ca..000000000 Binary files a/src/styles/fonts/compressed/svg/p321.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p322.svg b/src/styles/fonts/compressed/svg/p322.svg deleted file mode 100644 index d21e3f173..000000000 Binary files a/src/styles/fonts/compressed/svg/p322.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p323.svg b/src/styles/fonts/compressed/svg/p323.svg deleted file mode 100644 index f763daacb..000000000 Binary files a/src/styles/fonts/compressed/svg/p323.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p324.svg b/src/styles/fonts/compressed/svg/p324.svg deleted file mode 100644 index 44d1c853b..000000000 Binary files a/src/styles/fonts/compressed/svg/p324.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p325.svg b/src/styles/fonts/compressed/svg/p325.svg deleted file mode 100644 index 20fd18ae5..000000000 Binary files a/src/styles/fonts/compressed/svg/p325.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p326.svg b/src/styles/fonts/compressed/svg/p326.svg deleted file mode 100644 index bf6890538..000000000 Binary files a/src/styles/fonts/compressed/svg/p326.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p327.svg b/src/styles/fonts/compressed/svg/p327.svg deleted file mode 100644 index 0c37afd2e..000000000 Binary files a/src/styles/fonts/compressed/svg/p327.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p328.svg b/src/styles/fonts/compressed/svg/p328.svg deleted file mode 100644 index 988f79a79..000000000 Binary files a/src/styles/fonts/compressed/svg/p328.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p329.svg b/src/styles/fonts/compressed/svg/p329.svg deleted file mode 100644 index 8be3eef93..000000000 Binary files a/src/styles/fonts/compressed/svg/p329.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p33.svg b/src/styles/fonts/compressed/svg/p33.svg deleted file mode 100644 index ed9d5227c..000000000 Binary files a/src/styles/fonts/compressed/svg/p33.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p330.svg b/src/styles/fonts/compressed/svg/p330.svg deleted file mode 100644 index 526d15649..000000000 Binary files a/src/styles/fonts/compressed/svg/p330.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p331.svg b/src/styles/fonts/compressed/svg/p331.svg deleted file mode 100644 index 2961e39db..000000000 Binary files a/src/styles/fonts/compressed/svg/p331.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p332.svg b/src/styles/fonts/compressed/svg/p332.svg deleted file mode 100644 index 936474f4a..000000000 Binary files a/src/styles/fonts/compressed/svg/p332.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p333.svg b/src/styles/fonts/compressed/svg/p333.svg deleted file mode 100644 index ca504b2b5..000000000 Binary files a/src/styles/fonts/compressed/svg/p333.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p334.svg b/src/styles/fonts/compressed/svg/p334.svg deleted file mode 100644 index 3d09e869f..000000000 Binary files a/src/styles/fonts/compressed/svg/p334.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p335.svg b/src/styles/fonts/compressed/svg/p335.svg deleted file mode 100644 index 5b900fca9..000000000 Binary files a/src/styles/fonts/compressed/svg/p335.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p336.svg b/src/styles/fonts/compressed/svg/p336.svg deleted file mode 100644 index e6e7de581..000000000 Binary files a/src/styles/fonts/compressed/svg/p336.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p337.svg b/src/styles/fonts/compressed/svg/p337.svg deleted file mode 100644 index 6f156c32f..000000000 Binary files a/src/styles/fonts/compressed/svg/p337.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p338.svg b/src/styles/fonts/compressed/svg/p338.svg deleted file mode 100644 index 06af247f5..000000000 Binary files a/src/styles/fonts/compressed/svg/p338.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p339.svg b/src/styles/fonts/compressed/svg/p339.svg deleted file mode 100644 index 4fdb5f5ed..000000000 Binary files a/src/styles/fonts/compressed/svg/p339.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p34.svg b/src/styles/fonts/compressed/svg/p34.svg deleted file mode 100644 index 90f4d1f06..000000000 Binary files a/src/styles/fonts/compressed/svg/p34.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p340.svg b/src/styles/fonts/compressed/svg/p340.svg deleted file mode 100644 index 26e47cd3c..000000000 Binary files a/src/styles/fonts/compressed/svg/p340.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p341.svg b/src/styles/fonts/compressed/svg/p341.svg deleted file mode 100644 index 0e6c8be50..000000000 Binary files a/src/styles/fonts/compressed/svg/p341.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p342.svg b/src/styles/fonts/compressed/svg/p342.svg deleted file mode 100644 index e8848c7f7..000000000 Binary files a/src/styles/fonts/compressed/svg/p342.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p343.svg b/src/styles/fonts/compressed/svg/p343.svg deleted file mode 100644 index ffa08d6b1..000000000 Binary files a/src/styles/fonts/compressed/svg/p343.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p344.svg b/src/styles/fonts/compressed/svg/p344.svg deleted file mode 100644 index 124bbdde9..000000000 Binary files a/src/styles/fonts/compressed/svg/p344.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p345.svg b/src/styles/fonts/compressed/svg/p345.svg deleted file mode 100644 index 76fd4d071..000000000 Binary files a/src/styles/fonts/compressed/svg/p345.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p346.svg b/src/styles/fonts/compressed/svg/p346.svg deleted file mode 100644 index dfeb14fe0..000000000 Binary files a/src/styles/fonts/compressed/svg/p346.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p347.svg b/src/styles/fonts/compressed/svg/p347.svg deleted file mode 100644 index af460027d..000000000 Binary files a/src/styles/fonts/compressed/svg/p347.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p348.svg b/src/styles/fonts/compressed/svg/p348.svg deleted file mode 100644 index 83c936714..000000000 Binary files a/src/styles/fonts/compressed/svg/p348.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p349.svg b/src/styles/fonts/compressed/svg/p349.svg deleted file mode 100644 index 7e8253eff..000000000 Binary files a/src/styles/fonts/compressed/svg/p349.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p35.svg b/src/styles/fonts/compressed/svg/p35.svg deleted file mode 100644 index 9212e0552..000000000 Binary files a/src/styles/fonts/compressed/svg/p35.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p350.svg b/src/styles/fonts/compressed/svg/p350.svg deleted file mode 100644 index eac271904..000000000 Binary files a/src/styles/fonts/compressed/svg/p350.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p351.svg b/src/styles/fonts/compressed/svg/p351.svg deleted file mode 100644 index a56208875..000000000 Binary files a/src/styles/fonts/compressed/svg/p351.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p352.svg b/src/styles/fonts/compressed/svg/p352.svg deleted file mode 100644 index 915da98a9..000000000 Binary files a/src/styles/fonts/compressed/svg/p352.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p353.svg b/src/styles/fonts/compressed/svg/p353.svg deleted file mode 100644 index 295b31afc..000000000 Binary files a/src/styles/fonts/compressed/svg/p353.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p354.svg b/src/styles/fonts/compressed/svg/p354.svg deleted file mode 100644 index cd7e6fc49..000000000 Binary files a/src/styles/fonts/compressed/svg/p354.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p355.svg b/src/styles/fonts/compressed/svg/p355.svg deleted file mode 100644 index 06eedb49d..000000000 Binary files a/src/styles/fonts/compressed/svg/p355.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p356.svg b/src/styles/fonts/compressed/svg/p356.svg deleted file mode 100644 index d0f684ec8..000000000 Binary files a/src/styles/fonts/compressed/svg/p356.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p357.svg b/src/styles/fonts/compressed/svg/p357.svg deleted file mode 100644 index d7c0a79ad..000000000 Binary files a/src/styles/fonts/compressed/svg/p357.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p358.svg b/src/styles/fonts/compressed/svg/p358.svg deleted file mode 100644 index 90e7393ed..000000000 Binary files a/src/styles/fonts/compressed/svg/p358.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p359.svg b/src/styles/fonts/compressed/svg/p359.svg deleted file mode 100644 index d35771080..000000000 Binary files a/src/styles/fonts/compressed/svg/p359.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p36.svg b/src/styles/fonts/compressed/svg/p36.svg deleted file mode 100644 index 089d4270a..000000000 Binary files a/src/styles/fonts/compressed/svg/p36.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p360.svg b/src/styles/fonts/compressed/svg/p360.svg deleted file mode 100644 index 948883ebb..000000000 Binary files a/src/styles/fonts/compressed/svg/p360.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p361.svg b/src/styles/fonts/compressed/svg/p361.svg deleted file mode 100644 index 67eff58cd..000000000 Binary files a/src/styles/fonts/compressed/svg/p361.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p362.svg b/src/styles/fonts/compressed/svg/p362.svg deleted file mode 100644 index eecf7b1df..000000000 Binary files a/src/styles/fonts/compressed/svg/p362.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p363.svg b/src/styles/fonts/compressed/svg/p363.svg deleted file mode 100644 index 5aff104ce..000000000 Binary files a/src/styles/fonts/compressed/svg/p363.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p364.svg b/src/styles/fonts/compressed/svg/p364.svg deleted file mode 100644 index dc91b50aa..000000000 Binary files a/src/styles/fonts/compressed/svg/p364.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p365.svg b/src/styles/fonts/compressed/svg/p365.svg deleted file mode 100644 index d5e81d29e..000000000 Binary files a/src/styles/fonts/compressed/svg/p365.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p366.svg b/src/styles/fonts/compressed/svg/p366.svg deleted file mode 100644 index 586cc1c43..000000000 Binary files a/src/styles/fonts/compressed/svg/p366.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p367.svg b/src/styles/fonts/compressed/svg/p367.svg deleted file mode 100644 index f435ebb21..000000000 Binary files a/src/styles/fonts/compressed/svg/p367.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p368.svg b/src/styles/fonts/compressed/svg/p368.svg deleted file mode 100644 index 51d4c0eb6..000000000 Binary files a/src/styles/fonts/compressed/svg/p368.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p369.svg b/src/styles/fonts/compressed/svg/p369.svg deleted file mode 100644 index a96df17db..000000000 Binary files a/src/styles/fonts/compressed/svg/p369.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p37.svg b/src/styles/fonts/compressed/svg/p37.svg deleted file mode 100644 index b0aaf92f7..000000000 Binary files a/src/styles/fonts/compressed/svg/p37.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p370.svg b/src/styles/fonts/compressed/svg/p370.svg deleted file mode 100644 index dbb8788df..000000000 Binary files a/src/styles/fonts/compressed/svg/p370.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p371.svg b/src/styles/fonts/compressed/svg/p371.svg deleted file mode 100644 index 7cf5a15e0..000000000 Binary files a/src/styles/fonts/compressed/svg/p371.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p372.svg b/src/styles/fonts/compressed/svg/p372.svg deleted file mode 100644 index d69383887..000000000 Binary files a/src/styles/fonts/compressed/svg/p372.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p373.svg b/src/styles/fonts/compressed/svg/p373.svg deleted file mode 100644 index 834174b84..000000000 Binary files a/src/styles/fonts/compressed/svg/p373.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p374.svg b/src/styles/fonts/compressed/svg/p374.svg deleted file mode 100644 index 391630709..000000000 Binary files a/src/styles/fonts/compressed/svg/p374.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p375.svg b/src/styles/fonts/compressed/svg/p375.svg deleted file mode 100644 index 6d5278dba..000000000 Binary files a/src/styles/fonts/compressed/svg/p375.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p376.svg b/src/styles/fonts/compressed/svg/p376.svg deleted file mode 100644 index 7337d2849..000000000 Binary files a/src/styles/fonts/compressed/svg/p376.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p377.svg b/src/styles/fonts/compressed/svg/p377.svg deleted file mode 100644 index 7fadf5e41..000000000 Binary files a/src/styles/fonts/compressed/svg/p377.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p378.svg b/src/styles/fonts/compressed/svg/p378.svg deleted file mode 100644 index ec4d2702d..000000000 Binary files a/src/styles/fonts/compressed/svg/p378.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p379.svg b/src/styles/fonts/compressed/svg/p379.svg deleted file mode 100644 index e23b6d70b..000000000 Binary files a/src/styles/fonts/compressed/svg/p379.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p38.svg b/src/styles/fonts/compressed/svg/p38.svg deleted file mode 100644 index c79206a14..000000000 Binary files a/src/styles/fonts/compressed/svg/p38.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p380.svg b/src/styles/fonts/compressed/svg/p380.svg deleted file mode 100644 index 7ea46f620..000000000 Binary files a/src/styles/fonts/compressed/svg/p380.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p381.svg b/src/styles/fonts/compressed/svg/p381.svg deleted file mode 100644 index 59fdd7360..000000000 Binary files a/src/styles/fonts/compressed/svg/p381.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p382.svg b/src/styles/fonts/compressed/svg/p382.svg deleted file mode 100644 index 5277bb22c..000000000 Binary files a/src/styles/fonts/compressed/svg/p382.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p383.svg b/src/styles/fonts/compressed/svg/p383.svg deleted file mode 100644 index c5337fa84..000000000 Binary files a/src/styles/fonts/compressed/svg/p383.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p384.svg b/src/styles/fonts/compressed/svg/p384.svg deleted file mode 100644 index 8349d68a2..000000000 Binary files a/src/styles/fonts/compressed/svg/p384.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p385.svg b/src/styles/fonts/compressed/svg/p385.svg deleted file mode 100644 index e2ac5988c..000000000 Binary files a/src/styles/fonts/compressed/svg/p385.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p386.svg b/src/styles/fonts/compressed/svg/p386.svg deleted file mode 100644 index 0fe954cb9..000000000 Binary files a/src/styles/fonts/compressed/svg/p386.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p387.svg b/src/styles/fonts/compressed/svg/p387.svg deleted file mode 100644 index 5a8140114..000000000 Binary files a/src/styles/fonts/compressed/svg/p387.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p388.svg b/src/styles/fonts/compressed/svg/p388.svg deleted file mode 100644 index 1528829f4..000000000 Binary files a/src/styles/fonts/compressed/svg/p388.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p389.svg b/src/styles/fonts/compressed/svg/p389.svg deleted file mode 100644 index 37853b4c7..000000000 Binary files a/src/styles/fonts/compressed/svg/p389.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p39.svg b/src/styles/fonts/compressed/svg/p39.svg deleted file mode 100644 index 1f152ee32..000000000 Binary files a/src/styles/fonts/compressed/svg/p39.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p390.svg b/src/styles/fonts/compressed/svg/p390.svg deleted file mode 100644 index 1f99633dc..000000000 Binary files a/src/styles/fonts/compressed/svg/p390.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p391.svg b/src/styles/fonts/compressed/svg/p391.svg deleted file mode 100644 index 31e59df6e..000000000 Binary files a/src/styles/fonts/compressed/svg/p391.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p392.svg b/src/styles/fonts/compressed/svg/p392.svg deleted file mode 100644 index 713f5af0e..000000000 Binary files a/src/styles/fonts/compressed/svg/p392.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p393.svg b/src/styles/fonts/compressed/svg/p393.svg deleted file mode 100644 index a65da3388..000000000 Binary files a/src/styles/fonts/compressed/svg/p393.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p394.svg b/src/styles/fonts/compressed/svg/p394.svg deleted file mode 100644 index 59a10f5f3..000000000 Binary files a/src/styles/fonts/compressed/svg/p394.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p395.svg b/src/styles/fonts/compressed/svg/p395.svg deleted file mode 100644 index d4fa0544c..000000000 Binary files a/src/styles/fonts/compressed/svg/p395.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p396.svg b/src/styles/fonts/compressed/svg/p396.svg deleted file mode 100644 index 7b4b74523..000000000 Binary files a/src/styles/fonts/compressed/svg/p396.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p397.svg b/src/styles/fonts/compressed/svg/p397.svg deleted file mode 100644 index 06321eee0..000000000 Binary files a/src/styles/fonts/compressed/svg/p397.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p398.svg b/src/styles/fonts/compressed/svg/p398.svg deleted file mode 100644 index 474ef0934..000000000 Binary files a/src/styles/fonts/compressed/svg/p398.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p399.svg b/src/styles/fonts/compressed/svg/p399.svg deleted file mode 100644 index c1b534787..000000000 Binary files a/src/styles/fonts/compressed/svg/p399.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p4.svg b/src/styles/fonts/compressed/svg/p4.svg deleted file mode 100644 index a5776f14b..000000000 Binary files a/src/styles/fonts/compressed/svg/p4.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p40.svg b/src/styles/fonts/compressed/svg/p40.svg deleted file mode 100644 index db1301b49..000000000 Binary files a/src/styles/fonts/compressed/svg/p40.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p400.svg b/src/styles/fonts/compressed/svg/p400.svg deleted file mode 100644 index 567588559..000000000 Binary files a/src/styles/fonts/compressed/svg/p400.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p401.svg b/src/styles/fonts/compressed/svg/p401.svg deleted file mode 100644 index 18d23d6ce..000000000 Binary files a/src/styles/fonts/compressed/svg/p401.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p402.svg b/src/styles/fonts/compressed/svg/p402.svg deleted file mode 100644 index 3f5250fa4..000000000 Binary files a/src/styles/fonts/compressed/svg/p402.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p403.svg b/src/styles/fonts/compressed/svg/p403.svg deleted file mode 100644 index aba974b2f..000000000 Binary files a/src/styles/fonts/compressed/svg/p403.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p404.svg b/src/styles/fonts/compressed/svg/p404.svg deleted file mode 100644 index 66617e058..000000000 Binary files a/src/styles/fonts/compressed/svg/p404.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p405.svg b/src/styles/fonts/compressed/svg/p405.svg deleted file mode 100644 index 621a9b035..000000000 Binary files a/src/styles/fonts/compressed/svg/p405.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p406.svg b/src/styles/fonts/compressed/svg/p406.svg deleted file mode 100644 index 0e977ded4..000000000 Binary files a/src/styles/fonts/compressed/svg/p406.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p407.svg b/src/styles/fonts/compressed/svg/p407.svg deleted file mode 100644 index 75ff30b76..000000000 Binary files a/src/styles/fonts/compressed/svg/p407.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p408.svg b/src/styles/fonts/compressed/svg/p408.svg deleted file mode 100644 index 20d2ca777..000000000 Binary files a/src/styles/fonts/compressed/svg/p408.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p409.svg b/src/styles/fonts/compressed/svg/p409.svg deleted file mode 100644 index fd9aaf33d..000000000 Binary files a/src/styles/fonts/compressed/svg/p409.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p41.svg b/src/styles/fonts/compressed/svg/p41.svg deleted file mode 100644 index 767043660..000000000 Binary files a/src/styles/fonts/compressed/svg/p41.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p410.svg b/src/styles/fonts/compressed/svg/p410.svg deleted file mode 100644 index 015738f90..000000000 Binary files a/src/styles/fonts/compressed/svg/p410.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p411.svg b/src/styles/fonts/compressed/svg/p411.svg deleted file mode 100644 index 745289dfd..000000000 Binary files a/src/styles/fonts/compressed/svg/p411.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p412.svg b/src/styles/fonts/compressed/svg/p412.svg deleted file mode 100644 index 0256447ea..000000000 Binary files a/src/styles/fonts/compressed/svg/p412.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p413.svg b/src/styles/fonts/compressed/svg/p413.svg deleted file mode 100644 index 8b19f6baa..000000000 Binary files a/src/styles/fonts/compressed/svg/p413.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p414.svg b/src/styles/fonts/compressed/svg/p414.svg deleted file mode 100644 index feae41e66..000000000 Binary files a/src/styles/fonts/compressed/svg/p414.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p415.svg b/src/styles/fonts/compressed/svg/p415.svg deleted file mode 100644 index 82ff36baf..000000000 Binary files a/src/styles/fonts/compressed/svg/p415.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p416.svg b/src/styles/fonts/compressed/svg/p416.svg deleted file mode 100644 index 8add033c0..000000000 Binary files a/src/styles/fonts/compressed/svg/p416.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p417.svg b/src/styles/fonts/compressed/svg/p417.svg deleted file mode 100644 index efc902364..000000000 Binary files a/src/styles/fonts/compressed/svg/p417.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p418.svg b/src/styles/fonts/compressed/svg/p418.svg deleted file mode 100644 index dc3e4f774..000000000 Binary files a/src/styles/fonts/compressed/svg/p418.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p419.svg b/src/styles/fonts/compressed/svg/p419.svg deleted file mode 100644 index 3c27ef77e..000000000 Binary files a/src/styles/fonts/compressed/svg/p419.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p42.svg b/src/styles/fonts/compressed/svg/p42.svg deleted file mode 100644 index 547b1c8ed..000000000 Binary files a/src/styles/fonts/compressed/svg/p42.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p420.svg b/src/styles/fonts/compressed/svg/p420.svg deleted file mode 100644 index 7b07fcb08..000000000 Binary files a/src/styles/fonts/compressed/svg/p420.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p421.svg b/src/styles/fonts/compressed/svg/p421.svg deleted file mode 100644 index e454eb27b..000000000 Binary files a/src/styles/fonts/compressed/svg/p421.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p422.svg b/src/styles/fonts/compressed/svg/p422.svg deleted file mode 100644 index 7dae29d49..000000000 Binary files a/src/styles/fonts/compressed/svg/p422.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p423.svg b/src/styles/fonts/compressed/svg/p423.svg deleted file mode 100644 index b14dba57a..000000000 Binary files a/src/styles/fonts/compressed/svg/p423.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p424.svg b/src/styles/fonts/compressed/svg/p424.svg deleted file mode 100644 index a76a94ef8..000000000 Binary files a/src/styles/fonts/compressed/svg/p424.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p425.svg b/src/styles/fonts/compressed/svg/p425.svg deleted file mode 100644 index 68d9412c8..000000000 Binary files a/src/styles/fonts/compressed/svg/p425.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p426.svg b/src/styles/fonts/compressed/svg/p426.svg deleted file mode 100644 index 3d1c736db..000000000 Binary files a/src/styles/fonts/compressed/svg/p426.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p427.svg b/src/styles/fonts/compressed/svg/p427.svg deleted file mode 100644 index 0d7eb607e..000000000 Binary files a/src/styles/fonts/compressed/svg/p427.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p428.svg b/src/styles/fonts/compressed/svg/p428.svg deleted file mode 100644 index 4a9517f1d..000000000 Binary files a/src/styles/fonts/compressed/svg/p428.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p429.svg b/src/styles/fonts/compressed/svg/p429.svg deleted file mode 100644 index f892cd25f..000000000 Binary files a/src/styles/fonts/compressed/svg/p429.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p43.svg b/src/styles/fonts/compressed/svg/p43.svg deleted file mode 100644 index b8403d9b2..000000000 Binary files a/src/styles/fonts/compressed/svg/p43.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p430.svg b/src/styles/fonts/compressed/svg/p430.svg deleted file mode 100644 index 3a4846bf2..000000000 Binary files a/src/styles/fonts/compressed/svg/p430.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p431.svg b/src/styles/fonts/compressed/svg/p431.svg deleted file mode 100644 index 265f21579..000000000 Binary files a/src/styles/fonts/compressed/svg/p431.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p432.svg b/src/styles/fonts/compressed/svg/p432.svg deleted file mode 100644 index 9ce382aef..000000000 Binary files a/src/styles/fonts/compressed/svg/p432.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p433.svg b/src/styles/fonts/compressed/svg/p433.svg deleted file mode 100644 index e64fec059..000000000 Binary files a/src/styles/fonts/compressed/svg/p433.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p434.svg b/src/styles/fonts/compressed/svg/p434.svg deleted file mode 100644 index dcb2f3887..000000000 Binary files a/src/styles/fonts/compressed/svg/p434.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p435.svg b/src/styles/fonts/compressed/svg/p435.svg deleted file mode 100644 index 14f4982ba..000000000 Binary files a/src/styles/fonts/compressed/svg/p435.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p436.svg b/src/styles/fonts/compressed/svg/p436.svg deleted file mode 100644 index 32f69d118..000000000 Binary files a/src/styles/fonts/compressed/svg/p436.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p437.svg b/src/styles/fonts/compressed/svg/p437.svg deleted file mode 100644 index 84a8e5e39..000000000 Binary files a/src/styles/fonts/compressed/svg/p437.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p438.svg b/src/styles/fonts/compressed/svg/p438.svg deleted file mode 100644 index b5d365ac2..000000000 Binary files a/src/styles/fonts/compressed/svg/p438.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p439.svg b/src/styles/fonts/compressed/svg/p439.svg deleted file mode 100644 index 162cb0667..000000000 Binary files a/src/styles/fonts/compressed/svg/p439.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p44.svg b/src/styles/fonts/compressed/svg/p44.svg deleted file mode 100644 index 1e72d3184..000000000 Binary files a/src/styles/fonts/compressed/svg/p44.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p440.svg b/src/styles/fonts/compressed/svg/p440.svg deleted file mode 100644 index 2bca5399a..000000000 Binary files a/src/styles/fonts/compressed/svg/p440.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p441.svg b/src/styles/fonts/compressed/svg/p441.svg deleted file mode 100644 index 7b172a881..000000000 Binary files a/src/styles/fonts/compressed/svg/p441.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p442.svg b/src/styles/fonts/compressed/svg/p442.svg deleted file mode 100644 index aae54329f..000000000 Binary files a/src/styles/fonts/compressed/svg/p442.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p443.svg b/src/styles/fonts/compressed/svg/p443.svg deleted file mode 100644 index 4d6ee2a9f..000000000 Binary files a/src/styles/fonts/compressed/svg/p443.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p444.svg b/src/styles/fonts/compressed/svg/p444.svg deleted file mode 100644 index 4cb506fe7..000000000 Binary files a/src/styles/fonts/compressed/svg/p444.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p445.svg b/src/styles/fonts/compressed/svg/p445.svg deleted file mode 100644 index 9afdffc22..000000000 Binary files a/src/styles/fonts/compressed/svg/p445.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p446.svg b/src/styles/fonts/compressed/svg/p446.svg deleted file mode 100644 index bf3c36425..000000000 Binary files a/src/styles/fonts/compressed/svg/p446.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p447.svg b/src/styles/fonts/compressed/svg/p447.svg deleted file mode 100644 index 3dcb263a0..000000000 Binary files a/src/styles/fonts/compressed/svg/p447.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p448.svg b/src/styles/fonts/compressed/svg/p448.svg deleted file mode 100644 index df2f2b33f..000000000 Binary files a/src/styles/fonts/compressed/svg/p448.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p449.svg b/src/styles/fonts/compressed/svg/p449.svg deleted file mode 100644 index 699cd0648..000000000 Binary files a/src/styles/fonts/compressed/svg/p449.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p45.svg b/src/styles/fonts/compressed/svg/p45.svg deleted file mode 100644 index bbe645fd5..000000000 Binary files a/src/styles/fonts/compressed/svg/p45.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p450.svg b/src/styles/fonts/compressed/svg/p450.svg deleted file mode 100644 index 333c57d7d..000000000 Binary files a/src/styles/fonts/compressed/svg/p450.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p451.svg b/src/styles/fonts/compressed/svg/p451.svg deleted file mode 100644 index dbad5c7bc..000000000 Binary files a/src/styles/fonts/compressed/svg/p451.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p452.svg b/src/styles/fonts/compressed/svg/p452.svg deleted file mode 100644 index 9a98ba193..000000000 Binary files a/src/styles/fonts/compressed/svg/p452.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p453.svg b/src/styles/fonts/compressed/svg/p453.svg deleted file mode 100644 index c1ed6d0dc..000000000 Binary files a/src/styles/fonts/compressed/svg/p453.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p454.svg b/src/styles/fonts/compressed/svg/p454.svg deleted file mode 100644 index 7a125e031..000000000 Binary files a/src/styles/fonts/compressed/svg/p454.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p455.svg b/src/styles/fonts/compressed/svg/p455.svg deleted file mode 100644 index c169b2e4d..000000000 Binary files a/src/styles/fonts/compressed/svg/p455.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p456.svg b/src/styles/fonts/compressed/svg/p456.svg deleted file mode 100644 index 0cf612f3d..000000000 Binary files a/src/styles/fonts/compressed/svg/p456.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p457.svg b/src/styles/fonts/compressed/svg/p457.svg deleted file mode 100644 index 92c2a7fcf..000000000 Binary files a/src/styles/fonts/compressed/svg/p457.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p458.svg b/src/styles/fonts/compressed/svg/p458.svg deleted file mode 100644 index 581053104..000000000 Binary files a/src/styles/fonts/compressed/svg/p458.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p459.svg b/src/styles/fonts/compressed/svg/p459.svg deleted file mode 100644 index c1df51107..000000000 Binary files a/src/styles/fonts/compressed/svg/p459.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p46.svg b/src/styles/fonts/compressed/svg/p46.svg deleted file mode 100644 index 0709d9672..000000000 Binary files a/src/styles/fonts/compressed/svg/p46.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p460.svg b/src/styles/fonts/compressed/svg/p460.svg deleted file mode 100644 index 9d0868789..000000000 Binary files a/src/styles/fonts/compressed/svg/p460.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p461.svg b/src/styles/fonts/compressed/svg/p461.svg deleted file mode 100644 index 6c7c2580c..000000000 Binary files a/src/styles/fonts/compressed/svg/p461.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p462.svg b/src/styles/fonts/compressed/svg/p462.svg deleted file mode 100644 index ab37d37ee..000000000 Binary files a/src/styles/fonts/compressed/svg/p462.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p463.svg b/src/styles/fonts/compressed/svg/p463.svg deleted file mode 100644 index 195d05fe5..000000000 Binary files a/src/styles/fonts/compressed/svg/p463.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p464.svg b/src/styles/fonts/compressed/svg/p464.svg deleted file mode 100644 index 7ff000ee2..000000000 Binary files a/src/styles/fonts/compressed/svg/p464.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p465.svg b/src/styles/fonts/compressed/svg/p465.svg deleted file mode 100644 index 8123c2aaf..000000000 Binary files a/src/styles/fonts/compressed/svg/p465.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p466.svg b/src/styles/fonts/compressed/svg/p466.svg deleted file mode 100644 index 40fe1976a..000000000 Binary files a/src/styles/fonts/compressed/svg/p466.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p467.svg b/src/styles/fonts/compressed/svg/p467.svg deleted file mode 100644 index 8a9332c75..000000000 Binary files a/src/styles/fonts/compressed/svg/p467.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p468.svg b/src/styles/fonts/compressed/svg/p468.svg deleted file mode 100644 index d159d1b36..000000000 Binary files a/src/styles/fonts/compressed/svg/p468.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p469.svg b/src/styles/fonts/compressed/svg/p469.svg deleted file mode 100644 index 681e23e75..000000000 Binary files a/src/styles/fonts/compressed/svg/p469.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p47.svg b/src/styles/fonts/compressed/svg/p47.svg deleted file mode 100644 index 1fddcd982..000000000 Binary files a/src/styles/fonts/compressed/svg/p47.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p470.svg b/src/styles/fonts/compressed/svg/p470.svg deleted file mode 100644 index 73128a6fa..000000000 Binary files a/src/styles/fonts/compressed/svg/p470.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p471.svg b/src/styles/fonts/compressed/svg/p471.svg deleted file mode 100644 index 153563768..000000000 Binary files a/src/styles/fonts/compressed/svg/p471.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p472.svg b/src/styles/fonts/compressed/svg/p472.svg deleted file mode 100644 index 4e590bbed..000000000 Binary files a/src/styles/fonts/compressed/svg/p472.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p473.svg b/src/styles/fonts/compressed/svg/p473.svg deleted file mode 100644 index 98b4c373d..000000000 Binary files a/src/styles/fonts/compressed/svg/p473.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p474.svg b/src/styles/fonts/compressed/svg/p474.svg deleted file mode 100644 index d2d7280e8..000000000 Binary files a/src/styles/fonts/compressed/svg/p474.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p475.svg b/src/styles/fonts/compressed/svg/p475.svg deleted file mode 100644 index 2a9386a00..000000000 Binary files a/src/styles/fonts/compressed/svg/p475.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p476.svg b/src/styles/fonts/compressed/svg/p476.svg deleted file mode 100644 index 8e6164684..000000000 Binary files a/src/styles/fonts/compressed/svg/p476.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p477.svg b/src/styles/fonts/compressed/svg/p477.svg deleted file mode 100644 index 1ebea9163..000000000 Binary files a/src/styles/fonts/compressed/svg/p477.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p478.svg b/src/styles/fonts/compressed/svg/p478.svg deleted file mode 100644 index 2e55dd70e..000000000 Binary files a/src/styles/fonts/compressed/svg/p478.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p479.svg b/src/styles/fonts/compressed/svg/p479.svg deleted file mode 100644 index fd2763ddf..000000000 Binary files a/src/styles/fonts/compressed/svg/p479.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p48.svg b/src/styles/fonts/compressed/svg/p48.svg deleted file mode 100644 index df08d216a..000000000 Binary files a/src/styles/fonts/compressed/svg/p48.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p480.svg b/src/styles/fonts/compressed/svg/p480.svg deleted file mode 100644 index fb4f41ffd..000000000 Binary files a/src/styles/fonts/compressed/svg/p480.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p481.svg b/src/styles/fonts/compressed/svg/p481.svg deleted file mode 100644 index db5d79ef8..000000000 Binary files a/src/styles/fonts/compressed/svg/p481.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p482.svg b/src/styles/fonts/compressed/svg/p482.svg deleted file mode 100644 index feb280417..000000000 Binary files a/src/styles/fonts/compressed/svg/p482.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p483.svg b/src/styles/fonts/compressed/svg/p483.svg deleted file mode 100644 index a4c891fdc..000000000 Binary files a/src/styles/fonts/compressed/svg/p483.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p484.svg b/src/styles/fonts/compressed/svg/p484.svg deleted file mode 100644 index 48fc90738..000000000 Binary files a/src/styles/fonts/compressed/svg/p484.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p485.svg b/src/styles/fonts/compressed/svg/p485.svg deleted file mode 100644 index b04f0c4aa..000000000 Binary files a/src/styles/fonts/compressed/svg/p485.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p486.svg b/src/styles/fonts/compressed/svg/p486.svg deleted file mode 100644 index 68e7d4ee4..000000000 Binary files a/src/styles/fonts/compressed/svg/p486.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p487.svg b/src/styles/fonts/compressed/svg/p487.svg deleted file mode 100644 index 00d9a32b7..000000000 Binary files a/src/styles/fonts/compressed/svg/p487.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p488.svg b/src/styles/fonts/compressed/svg/p488.svg deleted file mode 100644 index 5a60c1b3c..000000000 Binary files a/src/styles/fonts/compressed/svg/p488.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p489.svg b/src/styles/fonts/compressed/svg/p489.svg deleted file mode 100644 index a4fd2c60f..000000000 Binary files a/src/styles/fonts/compressed/svg/p489.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p49.svg b/src/styles/fonts/compressed/svg/p49.svg deleted file mode 100644 index e7503ddf0..000000000 Binary files a/src/styles/fonts/compressed/svg/p49.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p490.svg b/src/styles/fonts/compressed/svg/p490.svg deleted file mode 100644 index 6bb6ef221..000000000 Binary files a/src/styles/fonts/compressed/svg/p490.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p491.svg b/src/styles/fonts/compressed/svg/p491.svg deleted file mode 100644 index 902f50f17..000000000 Binary files a/src/styles/fonts/compressed/svg/p491.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p492.svg b/src/styles/fonts/compressed/svg/p492.svg deleted file mode 100644 index 4c1df221f..000000000 Binary files a/src/styles/fonts/compressed/svg/p492.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p493.svg b/src/styles/fonts/compressed/svg/p493.svg deleted file mode 100644 index e7a2c5ab6..000000000 Binary files a/src/styles/fonts/compressed/svg/p493.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p494.svg b/src/styles/fonts/compressed/svg/p494.svg deleted file mode 100644 index dbb98340b..000000000 Binary files a/src/styles/fonts/compressed/svg/p494.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p495.svg b/src/styles/fonts/compressed/svg/p495.svg deleted file mode 100644 index c1e2626f1..000000000 Binary files a/src/styles/fonts/compressed/svg/p495.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p496.svg b/src/styles/fonts/compressed/svg/p496.svg deleted file mode 100644 index b7a900c55..000000000 Binary files a/src/styles/fonts/compressed/svg/p496.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p497.svg b/src/styles/fonts/compressed/svg/p497.svg deleted file mode 100644 index b21d30612..000000000 Binary files a/src/styles/fonts/compressed/svg/p497.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p498.svg b/src/styles/fonts/compressed/svg/p498.svg deleted file mode 100644 index 46e5518cb..000000000 Binary files a/src/styles/fonts/compressed/svg/p498.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p499.svg b/src/styles/fonts/compressed/svg/p499.svg deleted file mode 100644 index 710c3096d..000000000 Binary files a/src/styles/fonts/compressed/svg/p499.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p5.svg b/src/styles/fonts/compressed/svg/p5.svg deleted file mode 100644 index 775a72a90..000000000 Binary files a/src/styles/fonts/compressed/svg/p5.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p50.svg b/src/styles/fonts/compressed/svg/p50.svg deleted file mode 100644 index 8a56dc7b9..000000000 Binary files a/src/styles/fonts/compressed/svg/p50.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p500.svg b/src/styles/fonts/compressed/svg/p500.svg deleted file mode 100644 index a17bc1b1d..000000000 Binary files a/src/styles/fonts/compressed/svg/p500.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p501.svg b/src/styles/fonts/compressed/svg/p501.svg deleted file mode 100644 index fe4d45e15..000000000 Binary files a/src/styles/fonts/compressed/svg/p501.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p502.svg b/src/styles/fonts/compressed/svg/p502.svg deleted file mode 100644 index 912b2effa..000000000 Binary files a/src/styles/fonts/compressed/svg/p502.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p503.svg b/src/styles/fonts/compressed/svg/p503.svg deleted file mode 100644 index a17ba6ed9..000000000 Binary files a/src/styles/fonts/compressed/svg/p503.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p504.svg b/src/styles/fonts/compressed/svg/p504.svg deleted file mode 100644 index 6e3f6b98a..000000000 Binary files a/src/styles/fonts/compressed/svg/p504.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p505.svg b/src/styles/fonts/compressed/svg/p505.svg deleted file mode 100644 index 47c74e2e7..000000000 Binary files a/src/styles/fonts/compressed/svg/p505.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p506.svg b/src/styles/fonts/compressed/svg/p506.svg deleted file mode 100644 index a51e2283d..000000000 Binary files a/src/styles/fonts/compressed/svg/p506.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p507.svg b/src/styles/fonts/compressed/svg/p507.svg deleted file mode 100644 index 7ff4998fd..000000000 Binary files a/src/styles/fonts/compressed/svg/p507.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p508.svg b/src/styles/fonts/compressed/svg/p508.svg deleted file mode 100644 index 2a7286d43..000000000 Binary files a/src/styles/fonts/compressed/svg/p508.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p509.svg b/src/styles/fonts/compressed/svg/p509.svg deleted file mode 100644 index b82e7f168..000000000 Binary files a/src/styles/fonts/compressed/svg/p509.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p51.svg b/src/styles/fonts/compressed/svg/p51.svg deleted file mode 100644 index 9bce38c9e..000000000 Binary files a/src/styles/fonts/compressed/svg/p51.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p510.svg b/src/styles/fonts/compressed/svg/p510.svg deleted file mode 100644 index 6c73be7e5..000000000 Binary files a/src/styles/fonts/compressed/svg/p510.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p511.svg b/src/styles/fonts/compressed/svg/p511.svg deleted file mode 100644 index 70de07872..000000000 Binary files a/src/styles/fonts/compressed/svg/p511.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p512.svg b/src/styles/fonts/compressed/svg/p512.svg deleted file mode 100644 index 6972a1a78..000000000 Binary files a/src/styles/fonts/compressed/svg/p512.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p513.svg b/src/styles/fonts/compressed/svg/p513.svg deleted file mode 100644 index 6e08579a5..000000000 Binary files a/src/styles/fonts/compressed/svg/p513.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p514.svg b/src/styles/fonts/compressed/svg/p514.svg deleted file mode 100644 index c0f4127e3..000000000 Binary files a/src/styles/fonts/compressed/svg/p514.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p515.svg b/src/styles/fonts/compressed/svg/p515.svg deleted file mode 100644 index b172d94a7..000000000 Binary files a/src/styles/fonts/compressed/svg/p515.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p516.svg b/src/styles/fonts/compressed/svg/p516.svg deleted file mode 100644 index f2b8d399f..000000000 Binary files a/src/styles/fonts/compressed/svg/p516.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p517.svg b/src/styles/fonts/compressed/svg/p517.svg deleted file mode 100644 index c1aec0541..000000000 Binary files a/src/styles/fonts/compressed/svg/p517.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p518.svg b/src/styles/fonts/compressed/svg/p518.svg deleted file mode 100644 index 8578e8546..000000000 Binary files a/src/styles/fonts/compressed/svg/p518.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p519.svg b/src/styles/fonts/compressed/svg/p519.svg deleted file mode 100644 index 86ecf03c2..000000000 Binary files a/src/styles/fonts/compressed/svg/p519.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p52.svg b/src/styles/fonts/compressed/svg/p52.svg deleted file mode 100644 index cab1d3dbe..000000000 Binary files a/src/styles/fonts/compressed/svg/p52.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p520.svg b/src/styles/fonts/compressed/svg/p520.svg deleted file mode 100644 index 13103e12b..000000000 Binary files a/src/styles/fonts/compressed/svg/p520.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p521.svg b/src/styles/fonts/compressed/svg/p521.svg deleted file mode 100644 index 35339119d..000000000 Binary files a/src/styles/fonts/compressed/svg/p521.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p522.svg b/src/styles/fonts/compressed/svg/p522.svg deleted file mode 100644 index 678570ad4..000000000 Binary files a/src/styles/fonts/compressed/svg/p522.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p523.svg b/src/styles/fonts/compressed/svg/p523.svg deleted file mode 100644 index 305bdbd80..000000000 Binary files a/src/styles/fonts/compressed/svg/p523.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p524.svg b/src/styles/fonts/compressed/svg/p524.svg deleted file mode 100644 index 9df743de9..000000000 Binary files a/src/styles/fonts/compressed/svg/p524.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p525.svg b/src/styles/fonts/compressed/svg/p525.svg deleted file mode 100644 index f77c7664d..000000000 Binary files a/src/styles/fonts/compressed/svg/p525.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p526.svg b/src/styles/fonts/compressed/svg/p526.svg deleted file mode 100644 index f63a37c2e..000000000 Binary files a/src/styles/fonts/compressed/svg/p526.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p527.svg b/src/styles/fonts/compressed/svg/p527.svg deleted file mode 100644 index 37662c17e..000000000 Binary files a/src/styles/fonts/compressed/svg/p527.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p528.svg b/src/styles/fonts/compressed/svg/p528.svg deleted file mode 100644 index 665037cb3..000000000 Binary files a/src/styles/fonts/compressed/svg/p528.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p529.svg b/src/styles/fonts/compressed/svg/p529.svg deleted file mode 100644 index ab46af12b..000000000 Binary files a/src/styles/fonts/compressed/svg/p529.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p53.svg b/src/styles/fonts/compressed/svg/p53.svg deleted file mode 100644 index f25db8466..000000000 Binary files a/src/styles/fonts/compressed/svg/p53.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p530.svg b/src/styles/fonts/compressed/svg/p530.svg deleted file mode 100644 index 24d15b28c..000000000 Binary files a/src/styles/fonts/compressed/svg/p530.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p531.svg b/src/styles/fonts/compressed/svg/p531.svg deleted file mode 100644 index e1e1f4457..000000000 Binary files a/src/styles/fonts/compressed/svg/p531.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p532.svg b/src/styles/fonts/compressed/svg/p532.svg deleted file mode 100644 index dd08ff2c1..000000000 Binary files a/src/styles/fonts/compressed/svg/p532.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p533.svg b/src/styles/fonts/compressed/svg/p533.svg deleted file mode 100644 index 1874a8818..000000000 Binary files a/src/styles/fonts/compressed/svg/p533.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p534.svg b/src/styles/fonts/compressed/svg/p534.svg deleted file mode 100644 index e73e52f82..000000000 Binary files a/src/styles/fonts/compressed/svg/p534.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p535.svg b/src/styles/fonts/compressed/svg/p535.svg deleted file mode 100644 index 6f85cc1a5..000000000 Binary files a/src/styles/fonts/compressed/svg/p535.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p536.svg b/src/styles/fonts/compressed/svg/p536.svg deleted file mode 100644 index 5a9950253..000000000 Binary files a/src/styles/fonts/compressed/svg/p536.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p537.svg b/src/styles/fonts/compressed/svg/p537.svg deleted file mode 100644 index 7d86a9e3f..000000000 Binary files a/src/styles/fonts/compressed/svg/p537.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p538.svg b/src/styles/fonts/compressed/svg/p538.svg deleted file mode 100644 index 6dbe2c139..000000000 Binary files a/src/styles/fonts/compressed/svg/p538.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p539.svg b/src/styles/fonts/compressed/svg/p539.svg deleted file mode 100644 index 8e6bfea16..000000000 Binary files a/src/styles/fonts/compressed/svg/p539.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p54.svg b/src/styles/fonts/compressed/svg/p54.svg deleted file mode 100644 index 104ba6c35..000000000 Binary files a/src/styles/fonts/compressed/svg/p54.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p540.svg b/src/styles/fonts/compressed/svg/p540.svg deleted file mode 100644 index 65bc4bc97..000000000 Binary files a/src/styles/fonts/compressed/svg/p540.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p541.svg b/src/styles/fonts/compressed/svg/p541.svg deleted file mode 100644 index 29f386e27..000000000 Binary files a/src/styles/fonts/compressed/svg/p541.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p542.svg b/src/styles/fonts/compressed/svg/p542.svg deleted file mode 100644 index fe5cfb2bb..000000000 Binary files a/src/styles/fonts/compressed/svg/p542.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p543.svg b/src/styles/fonts/compressed/svg/p543.svg deleted file mode 100644 index a0313cca5..000000000 Binary files a/src/styles/fonts/compressed/svg/p543.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p544.svg b/src/styles/fonts/compressed/svg/p544.svg deleted file mode 100644 index 3745c7ca3..000000000 Binary files a/src/styles/fonts/compressed/svg/p544.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p545.svg b/src/styles/fonts/compressed/svg/p545.svg deleted file mode 100644 index 4466fa9d6..000000000 Binary files a/src/styles/fonts/compressed/svg/p545.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p546.svg b/src/styles/fonts/compressed/svg/p546.svg deleted file mode 100644 index a63df7dbb..000000000 Binary files a/src/styles/fonts/compressed/svg/p546.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p547.svg b/src/styles/fonts/compressed/svg/p547.svg deleted file mode 100644 index 4378c144e..000000000 Binary files a/src/styles/fonts/compressed/svg/p547.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p548.svg b/src/styles/fonts/compressed/svg/p548.svg deleted file mode 100644 index fa41e04f5..000000000 Binary files a/src/styles/fonts/compressed/svg/p548.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p549.svg b/src/styles/fonts/compressed/svg/p549.svg deleted file mode 100644 index 1f56119e9..000000000 Binary files a/src/styles/fonts/compressed/svg/p549.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p55.svg b/src/styles/fonts/compressed/svg/p55.svg deleted file mode 100644 index 925f6c105..000000000 Binary files a/src/styles/fonts/compressed/svg/p55.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p550.svg b/src/styles/fonts/compressed/svg/p550.svg deleted file mode 100644 index 263cd7538..000000000 Binary files a/src/styles/fonts/compressed/svg/p550.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p551.svg b/src/styles/fonts/compressed/svg/p551.svg deleted file mode 100644 index 3be8c7b97..000000000 Binary files a/src/styles/fonts/compressed/svg/p551.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p552.svg b/src/styles/fonts/compressed/svg/p552.svg deleted file mode 100644 index cbac1683a..000000000 Binary files a/src/styles/fonts/compressed/svg/p552.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p553.svg b/src/styles/fonts/compressed/svg/p553.svg deleted file mode 100644 index 51d3702d8..000000000 Binary files a/src/styles/fonts/compressed/svg/p553.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p554.svg b/src/styles/fonts/compressed/svg/p554.svg deleted file mode 100644 index 11fc1c6b9..000000000 Binary files a/src/styles/fonts/compressed/svg/p554.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p555.svg b/src/styles/fonts/compressed/svg/p555.svg deleted file mode 100644 index 9f994fb49..000000000 Binary files a/src/styles/fonts/compressed/svg/p555.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p556.svg b/src/styles/fonts/compressed/svg/p556.svg deleted file mode 100644 index 43804a6a3..000000000 Binary files a/src/styles/fonts/compressed/svg/p556.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p557.svg b/src/styles/fonts/compressed/svg/p557.svg deleted file mode 100644 index e7ae1ab5d..000000000 Binary files a/src/styles/fonts/compressed/svg/p557.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p558.svg b/src/styles/fonts/compressed/svg/p558.svg deleted file mode 100644 index 25d4d719f..000000000 Binary files a/src/styles/fonts/compressed/svg/p558.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p559.svg b/src/styles/fonts/compressed/svg/p559.svg deleted file mode 100644 index 127f0f390..000000000 Binary files a/src/styles/fonts/compressed/svg/p559.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p56.svg b/src/styles/fonts/compressed/svg/p56.svg deleted file mode 100644 index bc9e7d573..000000000 Binary files a/src/styles/fonts/compressed/svg/p56.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p560.svg b/src/styles/fonts/compressed/svg/p560.svg deleted file mode 100644 index ab0db6654..000000000 Binary files a/src/styles/fonts/compressed/svg/p560.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p561.svg b/src/styles/fonts/compressed/svg/p561.svg deleted file mode 100644 index 7b7e19e2f..000000000 Binary files a/src/styles/fonts/compressed/svg/p561.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p562.svg b/src/styles/fonts/compressed/svg/p562.svg deleted file mode 100644 index 7fff58cd8..000000000 Binary files a/src/styles/fonts/compressed/svg/p562.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p563.svg b/src/styles/fonts/compressed/svg/p563.svg deleted file mode 100644 index e4bfaf098..000000000 Binary files a/src/styles/fonts/compressed/svg/p563.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p564.svg b/src/styles/fonts/compressed/svg/p564.svg deleted file mode 100644 index ef613d363..000000000 Binary files a/src/styles/fonts/compressed/svg/p564.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p565.svg b/src/styles/fonts/compressed/svg/p565.svg deleted file mode 100644 index 624a16fc1..000000000 Binary files a/src/styles/fonts/compressed/svg/p565.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p566.svg b/src/styles/fonts/compressed/svg/p566.svg deleted file mode 100644 index e48be33ad..000000000 Binary files a/src/styles/fonts/compressed/svg/p566.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p567.svg b/src/styles/fonts/compressed/svg/p567.svg deleted file mode 100644 index dddf00304..000000000 Binary files a/src/styles/fonts/compressed/svg/p567.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p568.svg b/src/styles/fonts/compressed/svg/p568.svg deleted file mode 100644 index 93d86e3c7..000000000 Binary files a/src/styles/fonts/compressed/svg/p568.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p569.svg b/src/styles/fonts/compressed/svg/p569.svg deleted file mode 100644 index d8cc69e96..000000000 Binary files a/src/styles/fonts/compressed/svg/p569.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p57.svg b/src/styles/fonts/compressed/svg/p57.svg deleted file mode 100644 index 208fa3704..000000000 Binary files a/src/styles/fonts/compressed/svg/p57.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p570.svg b/src/styles/fonts/compressed/svg/p570.svg deleted file mode 100644 index 957421a66..000000000 Binary files a/src/styles/fonts/compressed/svg/p570.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p571.svg b/src/styles/fonts/compressed/svg/p571.svg deleted file mode 100644 index 000a3eef4..000000000 Binary files a/src/styles/fonts/compressed/svg/p571.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p572.svg b/src/styles/fonts/compressed/svg/p572.svg deleted file mode 100644 index 042fc5d3d..000000000 Binary files a/src/styles/fonts/compressed/svg/p572.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p573.svg b/src/styles/fonts/compressed/svg/p573.svg deleted file mode 100644 index 245097b78..000000000 Binary files a/src/styles/fonts/compressed/svg/p573.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p574.svg b/src/styles/fonts/compressed/svg/p574.svg deleted file mode 100644 index c3684831b..000000000 Binary files a/src/styles/fonts/compressed/svg/p574.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p575.svg b/src/styles/fonts/compressed/svg/p575.svg deleted file mode 100644 index d3950211e..000000000 Binary files a/src/styles/fonts/compressed/svg/p575.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p576.svg b/src/styles/fonts/compressed/svg/p576.svg deleted file mode 100644 index 0cecc18ee..000000000 Binary files a/src/styles/fonts/compressed/svg/p576.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p577.svg b/src/styles/fonts/compressed/svg/p577.svg deleted file mode 100644 index 5eaf960b6..000000000 Binary files a/src/styles/fonts/compressed/svg/p577.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p578.svg b/src/styles/fonts/compressed/svg/p578.svg deleted file mode 100644 index 9878c80eb..000000000 Binary files a/src/styles/fonts/compressed/svg/p578.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p579.svg b/src/styles/fonts/compressed/svg/p579.svg deleted file mode 100644 index 587decb32..000000000 Binary files a/src/styles/fonts/compressed/svg/p579.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p58.svg b/src/styles/fonts/compressed/svg/p58.svg deleted file mode 100644 index 150764dd7..000000000 Binary files a/src/styles/fonts/compressed/svg/p58.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p580.svg b/src/styles/fonts/compressed/svg/p580.svg deleted file mode 100644 index 2a4ea69f8..000000000 Binary files a/src/styles/fonts/compressed/svg/p580.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p581.svg b/src/styles/fonts/compressed/svg/p581.svg deleted file mode 100644 index aa613e2e8..000000000 Binary files a/src/styles/fonts/compressed/svg/p581.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p582.svg b/src/styles/fonts/compressed/svg/p582.svg deleted file mode 100644 index 3180d1b90..000000000 Binary files a/src/styles/fonts/compressed/svg/p582.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p583.svg b/src/styles/fonts/compressed/svg/p583.svg deleted file mode 100644 index 643d0143a..000000000 Binary files a/src/styles/fonts/compressed/svg/p583.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p584.svg b/src/styles/fonts/compressed/svg/p584.svg deleted file mode 100644 index de8e3b0cf..000000000 Binary files a/src/styles/fonts/compressed/svg/p584.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p585.svg b/src/styles/fonts/compressed/svg/p585.svg deleted file mode 100644 index 07996a2ad..000000000 Binary files a/src/styles/fonts/compressed/svg/p585.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p586.svg b/src/styles/fonts/compressed/svg/p586.svg deleted file mode 100644 index 718b37c1a..000000000 Binary files a/src/styles/fonts/compressed/svg/p586.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p587.svg b/src/styles/fonts/compressed/svg/p587.svg deleted file mode 100644 index f1f44e2d1..000000000 Binary files a/src/styles/fonts/compressed/svg/p587.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p588.svg b/src/styles/fonts/compressed/svg/p588.svg deleted file mode 100644 index ada7f4a45..000000000 Binary files a/src/styles/fonts/compressed/svg/p588.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p589.svg b/src/styles/fonts/compressed/svg/p589.svg deleted file mode 100644 index cced3897d..000000000 Binary files a/src/styles/fonts/compressed/svg/p589.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p59.svg b/src/styles/fonts/compressed/svg/p59.svg deleted file mode 100644 index 838e70104..000000000 Binary files a/src/styles/fonts/compressed/svg/p59.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p590.svg b/src/styles/fonts/compressed/svg/p590.svg deleted file mode 100644 index aa1a06824..000000000 Binary files a/src/styles/fonts/compressed/svg/p590.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p591.svg b/src/styles/fonts/compressed/svg/p591.svg deleted file mode 100644 index 40cb1a172..000000000 Binary files a/src/styles/fonts/compressed/svg/p591.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p592.svg b/src/styles/fonts/compressed/svg/p592.svg deleted file mode 100644 index cc9474a5a..000000000 Binary files a/src/styles/fonts/compressed/svg/p592.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p593.svg b/src/styles/fonts/compressed/svg/p593.svg deleted file mode 100644 index 836c53f2d..000000000 Binary files a/src/styles/fonts/compressed/svg/p593.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p594.svg b/src/styles/fonts/compressed/svg/p594.svg deleted file mode 100644 index 41b8eb373..000000000 Binary files a/src/styles/fonts/compressed/svg/p594.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p595.svg b/src/styles/fonts/compressed/svg/p595.svg deleted file mode 100644 index 02c07b70f..000000000 Binary files a/src/styles/fonts/compressed/svg/p595.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p596.svg b/src/styles/fonts/compressed/svg/p596.svg deleted file mode 100644 index 053cee6e2..000000000 Binary files a/src/styles/fonts/compressed/svg/p596.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p597.svg b/src/styles/fonts/compressed/svg/p597.svg deleted file mode 100644 index b0dd59162..000000000 Binary files a/src/styles/fonts/compressed/svg/p597.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p598.svg b/src/styles/fonts/compressed/svg/p598.svg deleted file mode 100644 index ba3e8a11f..000000000 Binary files a/src/styles/fonts/compressed/svg/p598.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p599.svg b/src/styles/fonts/compressed/svg/p599.svg deleted file mode 100644 index 3ba6c9b18..000000000 Binary files a/src/styles/fonts/compressed/svg/p599.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p6.svg b/src/styles/fonts/compressed/svg/p6.svg deleted file mode 100644 index e41f241f2..000000000 Binary files a/src/styles/fonts/compressed/svg/p6.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p60.svg b/src/styles/fonts/compressed/svg/p60.svg deleted file mode 100644 index 7845fe366..000000000 Binary files a/src/styles/fonts/compressed/svg/p60.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p600.svg b/src/styles/fonts/compressed/svg/p600.svg deleted file mode 100644 index 202868931..000000000 Binary files a/src/styles/fonts/compressed/svg/p600.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p601.svg b/src/styles/fonts/compressed/svg/p601.svg deleted file mode 100644 index da9cfa9d6..000000000 Binary files a/src/styles/fonts/compressed/svg/p601.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p602.svg b/src/styles/fonts/compressed/svg/p602.svg deleted file mode 100644 index 54cb9c059..000000000 Binary files a/src/styles/fonts/compressed/svg/p602.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p603.svg b/src/styles/fonts/compressed/svg/p603.svg deleted file mode 100644 index 99805ec91..000000000 Binary files a/src/styles/fonts/compressed/svg/p603.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p604.svg b/src/styles/fonts/compressed/svg/p604.svg deleted file mode 100644 index 7f38d2c22..000000000 Binary files a/src/styles/fonts/compressed/svg/p604.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p61.svg b/src/styles/fonts/compressed/svg/p61.svg deleted file mode 100644 index cbf2143dc..000000000 Binary files a/src/styles/fonts/compressed/svg/p61.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p62.svg b/src/styles/fonts/compressed/svg/p62.svg deleted file mode 100644 index 9bff1e51a..000000000 Binary files a/src/styles/fonts/compressed/svg/p62.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p63.svg b/src/styles/fonts/compressed/svg/p63.svg deleted file mode 100644 index 354e7d964..000000000 Binary files a/src/styles/fonts/compressed/svg/p63.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p64.svg b/src/styles/fonts/compressed/svg/p64.svg deleted file mode 100644 index e43231cdc..000000000 Binary files a/src/styles/fonts/compressed/svg/p64.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p65.svg b/src/styles/fonts/compressed/svg/p65.svg deleted file mode 100644 index 5dbc01bbc..000000000 Binary files a/src/styles/fonts/compressed/svg/p65.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p66.svg b/src/styles/fonts/compressed/svg/p66.svg deleted file mode 100644 index d1c5841a2..000000000 Binary files a/src/styles/fonts/compressed/svg/p66.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p67.svg b/src/styles/fonts/compressed/svg/p67.svg deleted file mode 100644 index bd2245c79..000000000 Binary files a/src/styles/fonts/compressed/svg/p67.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p68.svg b/src/styles/fonts/compressed/svg/p68.svg deleted file mode 100644 index 99d589352..000000000 Binary files a/src/styles/fonts/compressed/svg/p68.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p69.svg b/src/styles/fonts/compressed/svg/p69.svg deleted file mode 100644 index 73ce70dda..000000000 Binary files a/src/styles/fonts/compressed/svg/p69.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p7.svg b/src/styles/fonts/compressed/svg/p7.svg deleted file mode 100644 index 637cc1ea0..000000000 Binary files a/src/styles/fonts/compressed/svg/p7.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p70.svg b/src/styles/fonts/compressed/svg/p70.svg deleted file mode 100644 index 93a824ba6..000000000 Binary files a/src/styles/fonts/compressed/svg/p70.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p71.svg b/src/styles/fonts/compressed/svg/p71.svg deleted file mode 100644 index 899221d05..000000000 Binary files a/src/styles/fonts/compressed/svg/p71.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p72.svg b/src/styles/fonts/compressed/svg/p72.svg deleted file mode 100644 index a822ce337..000000000 Binary files a/src/styles/fonts/compressed/svg/p72.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p73.svg b/src/styles/fonts/compressed/svg/p73.svg deleted file mode 100644 index 5b59dda83..000000000 Binary files a/src/styles/fonts/compressed/svg/p73.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p74.svg b/src/styles/fonts/compressed/svg/p74.svg deleted file mode 100644 index dce634af9..000000000 Binary files a/src/styles/fonts/compressed/svg/p74.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p75.svg b/src/styles/fonts/compressed/svg/p75.svg deleted file mode 100644 index e3545ec3c..000000000 Binary files a/src/styles/fonts/compressed/svg/p75.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p76.svg b/src/styles/fonts/compressed/svg/p76.svg deleted file mode 100644 index ef6f31bbf..000000000 Binary files a/src/styles/fonts/compressed/svg/p76.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p77.svg b/src/styles/fonts/compressed/svg/p77.svg deleted file mode 100644 index fed781413..000000000 Binary files a/src/styles/fonts/compressed/svg/p77.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p78.svg b/src/styles/fonts/compressed/svg/p78.svg deleted file mode 100644 index 39904b3b8..000000000 Binary files a/src/styles/fonts/compressed/svg/p78.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p79.svg b/src/styles/fonts/compressed/svg/p79.svg deleted file mode 100644 index ba5359261..000000000 Binary files a/src/styles/fonts/compressed/svg/p79.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p8.svg b/src/styles/fonts/compressed/svg/p8.svg deleted file mode 100644 index fcdbd8e0c..000000000 Binary files a/src/styles/fonts/compressed/svg/p8.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p80.svg b/src/styles/fonts/compressed/svg/p80.svg deleted file mode 100644 index dc37cb1c9..000000000 Binary files a/src/styles/fonts/compressed/svg/p80.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p81.svg b/src/styles/fonts/compressed/svg/p81.svg deleted file mode 100644 index 5ef3a0f16..000000000 Binary files a/src/styles/fonts/compressed/svg/p81.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p82.svg b/src/styles/fonts/compressed/svg/p82.svg deleted file mode 100644 index 269a365b3..000000000 Binary files a/src/styles/fonts/compressed/svg/p82.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p83.svg b/src/styles/fonts/compressed/svg/p83.svg deleted file mode 100644 index e1e0d8df5..000000000 Binary files a/src/styles/fonts/compressed/svg/p83.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p84.svg b/src/styles/fonts/compressed/svg/p84.svg deleted file mode 100644 index 6b0d635c2..000000000 Binary files a/src/styles/fonts/compressed/svg/p84.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p85.svg b/src/styles/fonts/compressed/svg/p85.svg deleted file mode 100644 index 090de3cd3..000000000 Binary files a/src/styles/fonts/compressed/svg/p85.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p86.svg b/src/styles/fonts/compressed/svg/p86.svg deleted file mode 100644 index 61cd149c5..000000000 Binary files a/src/styles/fonts/compressed/svg/p86.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p87.svg b/src/styles/fonts/compressed/svg/p87.svg deleted file mode 100644 index 9255c7491..000000000 Binary files a/src/styles/fonts/compressed/svg/p87.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p88.svg b/src/styles/fonts/compressed/svg/p88.svg deleted file mode 100644 index d11a2c1c0..000000000 Binary files a/src/styles/fonts/compressed/svg/p88.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p89.svg b/src/styles/fonts/compressed/svg/p89.svg deleted file mode 100644 index 1ab6864b8..000000000 Binary files a/src/styles/fonts/compressed/svg/p89.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p9.svg b/src/styles/fonts/compressed/svg/p9.svg deleted file mode 100644 index f5576c495..000000000 Binary files a/src/styles/fonts/compressed/svg/p9.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p90.svg b/src/styles/fonts/compressed/svg/p90.svg deleted file mode 100644 index 0e447f58c..000000000 Binary files a/src/styles/fonts/compressed/svg/p90.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p91.svg b/src/styles/fonts/compressed/svg/p91.svg deleted file mode 100644 index 337eda22e..000000000 Binary files a/src/styles/fonts/compressed/svg/p91.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p92.svg b/src/styles/fonts/compressed/svg/p92.svg deleted file mode 100644 index 00c67777b..000000000 Binary files a/src/styles/fonts/compressed/svg/p92.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p93.svg b/src/styles/fonts/compressed/svg/p93.svg deleted file mode 100644 index deb1eee5e..000000000 Binary files a/src/styles/fonts/compressed/svg/p93.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p94.svg b/src/styles/fonts/compressed/svg/p94.svg deleted file mode 100644 index b1213b168..000000000 Binary files a/src/styles/fonts/compressed/svg/p94.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p95.svg b/src/styles/fonts/compressed/svg/p95.svg deleted file mode 100644 index 0dfe17a2e..000000000 Binary files a/src/styles/fonts/compressed/svg/p95.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p96.svg b/src/styles/fonts/compressed/svg/p96.svg deleted file mode 100644 index 9cb2a7aca..000000000 Binary files a/src/styles/fonts/compressed/svg/p96.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p97.svg b/src/styles/fonts/compressed/svg/p97.svg deleted file mode 100644 index 82f9f3bc1..000000000 Binary files a/src/styles/fonts/compressed/svg/p97.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p98.svg b/src/styles/fonts/compressed/svg/p98.svg deleted file mode 100644 index 9c59d343e..000000000 Binary files a/src/styles/fonts/compressed/svg/p98.svg and /dev/null differ diff --git a/src/styles/fonts/compressed/svg/p99.svg b/src/styles/fonts/compressed/svg/p99.svg deleted file mode 100644 index 1580c1764..000000000 Binary files a/src/styles/fonts/compressed/svg/p99.svg and /dev/null differ diff --git a/src/styles/partials/_tooltip.scss b/src/styles/partials/_tooltip.scss index 5dc28c76d..80e44b9fb 100644 --- a/src/styles/partials/_tooltip.scss +++ b/src/styles/partials/_tooltip.scss @@ -1,9 +1,43 @@ -.tooltip{ - font-size: 16px; - font-weight: 300; - @extend .montserrat; +.Tooltip { + position: relative; - .tooltip-inner{ - padding: 10px 15px; + &:after { + content: attr(aria-label); + direction: ltr; + padding: .625rem .9375rem; + position: absolute; + bottom: 100%; + left: 50%; + transform: translate(-50%, 0); + font-family: Montserrat, sans-serif; + font-weight: 300; + font-size: 1.25rem; + line-height: 1.2; + background-color: $tooltip-bg; + color: #fff; + border-radius: 3px; + opacity: 0; + } + + // The arrow + &:before { + content: ''; + position: absolute; + left: 50%; + transform: translate(-50%, 0); + width: 0; + height: 0; + border-left: .75rem solid transparent; + border-right: .75rem solid transparent; + border-top: .75rem solid $tooltip-bg; + opacity: 0; + } + + + &:hover { + &:after, + &:before { + opacity: 1; + } } } diff --git a/static/images/apple-white.svg b/static/images/apple-white.svg new file mode 100644 index 000000000..303bdb908 --- /dev/null +++ b/static/images/apple-white.svg @@ -0,0 +1,8 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'> +<svg width="41px" height="50px" viewBox="0 0 41 50" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"> + <!-- Generator: Sketch 3.8.3 (29802) - http://www.bohemiancoding.com/sketch --> + <desc>Created with Sketch.</desc> + <defs></defs> + <path d="M33.777,26.517 C33.715,20.285 38.859,17.296 39.089,17.145 C36.198,12.918 31.694,12.338 30.091,12.272 C26.261,11.883 22.614,14.528 20.671,14.528 C18.732,14.528 15.73,12.329 12.554,12.385 C8.376,12.447 4.525,14.815 2.375,18.555 C-1.964,26.082 1.265,37.237 5.493,43.346 C7.56,46.332 10.025,49.692 13.259,49.569 C16.376,49.446 17.552,47.553 21.32,47.553 C25.088,47.553 26.146,49.569 29.443,49.506 C32.795,49.445 34.92,46.463 36.97,43.465 C39.343,39.996 40.32,36.637 40.378,36.467 C40.305,36.433 33.844,33.958 33.777,26.517 L33.777,26.517 Z" id="Shape" stroke="none" fill="#FFFFFF" fill-rule="evenodd"></path> + <path d="M27.582,8.229 C29.297,6.147 30.459,3.254 30.143,0.374 C27.668,0.474 24.672,2.019 22.895,4.099 C21.303,5.945 19.911,8.884 20.284,11.712 C23.045,11.926 25.861,10.307 27.582,8.229 L27.582,8.229 Z" id="Shape" stroke="none" fill="#FFFFFF" fill-rule="evenodd"></path> +</svg> \ No newline at end of file diff --git a/static/images/apple.svg b/static/images/apple.svg new file mode 100644 index 000000000..0fea448cb --- /dev/null +++ b/static/images/apple.svg @@ -0,0 +1 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.1//EN' 'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'><svg enable-background="new 0 0 56.693 56.693" height="56.693px" id="Layer_1" version="1.1" viewBox="0 0 56.693 56.693" width="56.693px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g><path d="M41.777,30.517c-0.062-6.232,5.082-9.221,5.312-9.372c-2.891-4.227-7.395-4.807-8.998-4.873 c-3.83-0.389-7.477,2.256-9.42,2.256c-1.939,0-4.941-2.199-8.117-2.143c-4.178,0.062-8.029,2.43-10.179,6.17 c-4.339,7.527-1.11,18.682,3.118,24.791c2.067,2.986,4.532,6.346,7.766,6.223c3.117-0.123,4.293-2.016,8.061-2.016 s4.826,2.016,8.123,1.953c3.352-0.061,5.477-3.043,7.527-6.041c2.373-3.469,3.35-6.828,3.408-6.998 C48.305,40.433,41.844,37.958,41.777,30.517z"/><path d="M35.582,12.229c1.715-2.082,2.877-4.975,2.561-7.855c-2.475,0.1-5.471,1.645-7.248,3.725 c-1.592,1.846-2.984,4.785-2.611,7.613C31.045,15.926,33.861,14.307,35.582,12.229z"/></g></svg> \ No newline at end of file diff --git a/static/images/mockup-desktop.png b/static/images/mockup-desktop.png new file mode 100644 index 000000000..aac5e0a39 Binary files /dev/null and b/static/images/mockup-desktop.png differ diff --git a/static/images/mockup-desktop@2x.png b/static/images/mockup-desktop@2x.png new file mode 100644 index 000000000..d8da54ce3 Binary files /dev/null and b/static/images/mockup-desktop@2x.png differ diff --git a/static/images/mockup-desktop@3x.png b/static/images/mockup-desktop@3x.png new file mode 100644 index 000000000..1825cf70d Binary files /dev/null and b/static/images/mockup-desktop@3x.png differ diff --git a/static/images/mockup_desktop.png b/static/images/mockup_desktop.png new file mode 100644 index 000000000..d42d7a0e1 Binary files /dev/null and b/static/images/mockup_desktop.png differ diff --git a/static/images/mockup_desktop@2x.png b/static/images/mockup_desktop@2x.png new file mode 100644 index 000000000..329c6fcea Binary files /dev/null and b/static/images/mockup_desktop@2x.png differ diff --git a/static/images/mockup_mobile.png b/static/images/mockup_mobile.png new file mode 100644 index 000000000..321f0f7eb Binary files /dev/null and b/static/images/mockup_mobile.png differ diff --git a/static/images/mockup_mobile@2x.png b/static/images/mockup_mobile@2x.png new file mode 100644 index 000000000..336a9c4a8 Binary files /dev/null and b/static/images/mockup_mobile@2x.png differ diff --git a/static/images/play-store.svg b/static/images/play-store.svg new file mode 100644 index 000000000..904818af0 --- /dev/null +++ b/static/images/play-store.svg @@ -0,0 +1 @@ +<?xml version="1.0" ?><!DOCTYPE svg PUBLIC '-//W3C//DTD SVG 1.0//EN' 'http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd'><svg enable-background="new 0 0 32 32" height="32px" id="Layer_1" version="1.0" viewBox="0 0 32 32" width="32px" xml:space="preserve" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><g id="PLAY"><defs><path d="M23.028,11.518l-6.69-3.862c0,0-12.19-7.04-12.908-7.453C2.715-0.211,2,0.039,2,0.902 c0,1.44,0,15.029,0,15.029s0,14.685,0,15.333c0,0.649,0.512,0.93,1.133,0.569c0.624-0.359,13.205-7.625,13.205-7.625l6.69-3.862 c0,0,5.678-3.278,6.433-3.714c0.754-0.435,0.683-1.032,0.045-1.376S23.028,11.518,23.028,11.518z" id="SVGID_1_"/></defs><clipPath id="SVGID_2_"><use overflow="visible" xlink:href="#SVGID_1_"/></clipPath><polygon clip-path="url(#SVGID_2_)" fill="#2CAFA2" points="2,-0.504 2,15.932 2,32.367 18.577,15.932 "/><polygon clip-path="url(#SVGID_2_)" fill="#77E888" points="23.028,11.518 16.338,7.655 2,-0.624 2,-0.504 18.577,15.932 "/><polygon clip-path="url(#SVGID_2_)" fill="#CC3A72" points="2,32.367 2,32.487 16.338,24.209 23.028,20.347 18.577,15.932 "/><polygon clip-path="url(#SVGID_2_)" fill="#EA9053" points="23.028,11.518 18.577,15.932 23.028,20.347 30.676,15.932 "/></g><g/><g/><g/><g/><g/><g/></svg> \ No newline at end of file diff --git a/static/robots.txt b/static/robots.txt index 4923c29bd..5daf993c2 100644 --- a/static/robots.txt +++ b/static/robots.txt @@ -1,3 +1,3 @@ User-agent: * -SITEMAP: http://quran.com/sitemap.xml +SITEMAP: https://quran.com/sitemap.xml diff --git a/tests/functional/test.sh b/tests/functional/test.sh index 16b55a933..49f0ca954 100755 --- a/tests/functional/test.sh +++ b/tests/functional/test.sh @@ -1,5 +1,5 @@ +#!/usr/bin/env bash -#!/bin/bash if [ "$1" == 'stop' ]; then echo "Stopping selenium server..." pid=`ps -eo pid,args | grep selenium-server-standalone | grep -v grep | cut -c1-6` diff --git a/webpack/.stylelintrc b/webpack/.stylelintrc index 78c5d9e14..c96c3f3e9 100644 --- a/webpack/.stylelintrc +++ b/webpack/.stylelintrc @@ -1,7 +1,7 @@ { "rules": { - "unit-no-unknown": true, - "no-duplicate-selectors": true, - "block-no-empty": true - } + "unit-no-unknown": true, + "no-duplicate-selectors": true, + "block-no-empty": true + } } diff --git a/webpack/dev-server.js b/webpack/dev-server.js index a301ab3ef..abcc5396c 100644 --- a/webpack/dev-server.js +++ b/webpack/dev-server.js @@ -1,6 +1,6 @@ -var webpack = require('webpack'); -var WebpackDevServer = require('webpack-dev-server'); -var config = require('./dev.config'); +const webpack = require('webpack'); +const WebpackDevServer = require('webpack-dev-server'); +const config = require('./dev.config'); new WebpackDevServer(webpack(config), { publicPath: config.output.publicPath, @@ -21,10 +21,8 @@ new WebpackDevServer(webpack(config), { cache: true, inline: true, debug: true, - headers: {"Access-Control-Allow-Origin": "*"}, + headers: {'Access-Control-Allow-Origin': '*'}, proxy: { '*': { target: 'http://localhost:8000' } } -}).listen(8001, function () { - console.info('==> 💻 Webpack Dev Server at http://localhost:8001'); -}); +}).listen(8001, () => console.info('==> 💻 Webpack Dev Server at http://localhost:8001')); diff --git a/webpack/dev.config.js b/webpack/dev.config.js index 168b58f14..9c8aed93e 100644 --- a/webpack/dev.config.js +++ b/webpack/dev.config.js @@ -1,13 +1,11 @@ require('dotenv').load(); -var fs = require('fs'); -var path = require('path'); -var webpack = require('webpack'); -var path = require('path'); -var IsomorphicPlugin = require('webpack-isomorphic-tools/plugin'); -var webpackIsomorphicToolsPlugin = new IsomorphicPlugin(require('./isomorphic-tools-configuration')); +const webpack = require('webpack'); +const path = require('path'); +const IsomorphicPlugin = require('webpack-isomorphic-tools/plugin'); +const webpackIsomorphicToolsPlugin = new IsomorphicPlugin(require('./isomorphic-tools-configuration')); // eslint-disable-line max-len, global-require module.exports = { - context: path.join(process.env.PWD, './'), + context: path.resolve(__dirname, '..'), resolve: { extensions: ['', '.js'], modules: [ @@ -16,56 +14,87 @@ module.exports = { ] }, entry: [ - 'webpack-dev-server/client?http://localhost:8001', + 'webpack-hot-middleware/client?path=http://localhost:8001/__webpack_hmr', 'webpack/hot/only-dev-server', - 'bootstrap-sass!./bootstrap.config.js', - './client.js' + 'bootstrap-sass!./src/styles/bootstrap.config.js', + './src/client.js' ], output: { path: path.resolve('./build'), - publicPath: '/public/', + publicPath: 'http://localhost:8001/public/', filename: 'main.js' }, module: { + preLoaders: [ + // { + // test: /\.js$/, + // loader: 'eslint', + // exclude: /node_modules|bootstrap\.config/ + // } + ], loaders: [ - { test: /\.js$/, exclude: /node_modules/, loaders: [ - { - loader: 'babel', - query: { - plugins: [ - 'transform-runtime', - 'add-module-exports', - 'transform-decorators-legacy', - 'transform-react-display-name', - 'typecheck', - ], - presets: ['react', 'es2015-webpack', 'stage-0', 'react-hmre'], - cacheDirectory: true + { test: /\.json$/, loader: 'json'}, + { + test: /\.js$/, + exclude: /node_modules/, + loaders: [ + { + loader: 'babel', + query: { + plugins: [ + 'transform-runtime', + 'add-module-exports', + 'transform-decorators-legacy', + 'transform-react-display-name', + 'typecheck', + ], + presets: ['react', ['es2015', {modules: false}], 'stage-0', 'react-hmre'], + cacheDirectory: true + } } - }, - 'eslint-loader' - ]}, - { test: /\.json$/, loader: 'json-loader'}, - { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff" }, - { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff" }, - { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream" }, - { test: /\.otf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream" }, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file?name=fonts/[name].[ext]" }, - { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=images/[name].[ext]&limit=10000&mimetype=image/svg+xml" }, - { test: webpackIsomorphicToolsPlugin.regular_expression('images'), loader: 'url-loader?name=images/[name].[ext]&limit=10240' }, - { test: /\.scss$/, loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap' } + ] + }, + { + test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff' + }, + { + test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff' + }, + { + test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream' + }, + { + test: /\.otf(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream' + }, + { + test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + loader: 'file?name=fonts/[name].[ext]' + }, + { + test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=images/[name].[ext]&limit=10000&mimetype=image/svg+xml' + }, + { + test: webpackIsomorphicToolsPlugin.regular_expression('images'), + loader: 'url-loader?name=images/[name].[ext]&limit=10240' + }, + { + test: /\.scss$/, + loader: 'style!css?modules&importLoaders=2&sourceMap&localIdentName=[local]___[hash:base64:5]!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap' // eslint-disable-line max-len + } ] }, - node: { - setImmediate: false - }, plugins: [ new webpack.HotModuleReplacementPlugin(), new webpack.NoErrorsPlugin(), new webpack.ProvidePlugin({ - $: "jquery", - jQuery: "jquery", - "windows.jQuery": "jquery" + $: 'jquery', + jQuery: 'jquery', + 'windows.jQuery': 'jquery' }), new webpack.DefinePlugin({ 'process.env.BROWSER': true, @@ -92,6 +121,7 @@ module.exports = { debug: true, cache: true, node: { + setImmediate: false, console: true, fs: 'empty', net: 'empty', diff --git a/webpack/isomorphic-tools-configuration.js b/webpack/isomorphic-tools-configuration.js index f34f8da9e..042724069 100644 --- a/webpack/isomorphic-tools-configuration.js +++ b/webpack/isomorphic-tools-configuration.js @@ -1,4 +1,4 @@ -var WebpackIsomorphicToolsPlugin = require('webpack-isomorphic-tools/plugin'); +const WebpackIsomorphicToolsPlugin = require('webpack-isomorphic-tools/plugin'); // see this link for more info on what all of this means // https://github.com/halt-hammerzeit/webpack-isomorphic-tools @@ -47,12 +47,13 @@ module.exports = { bootstrap: { extension: 'js', include: ['./bootstrap.config.js'], - filter: function(module, regex, options, log) { - function is_bootstrap_style(name) { + filter(module, regex, options, log) { + function isBootstrapStyle(name) { return name.indexOf('./bootstrap.config.js') >= 0; } if (options.development) { - return is_bootstrap_style(module.name) && WebpackIsomorphicToolsPlugin.style_loader_filter(module, regex, options, log); + return (isBootstrapStyle(module.name) && + WebpackIsomorphicToolsPlugin.style_loader_filter(module, regex, options, log)); } // no need for it in production mode }, @@ -62,37 +63,34 @@ module.exports = { parser: WebpackIsomorphicToolsPlugin.css_loader_parser }, style_modules: { - extensions: ['less','scss'], - filter: function(module, regex, options, log) { + extensions: ['less', 'scss'], + filter(module, regex, options, log) { if (options.development) { // in development mode there's webpack "style-loader", // so the module.name is not equal to module.name return WebpackIsomorphicToolsPlugin.style_loader_filter(module, regex, options, log); - } else { - // in production mode there's no webpack "style-loader", - // so the module.name will be equal to the asset path - return regex.test(module.name); } + // in production mode there's no webpack "style-loader", + // so the module.name will be equal to the asset path + return regex.test(module.name); }, - path: function(module, options, log) { + path(module, options, log) { if (options.development) { // in development mode there's webpack "style-loader", // so the module.name is not equal to module.name return WebpackIsomorphicToolsPlugin.style_loader_path_extractor(module, options, log); - } else { - // in production mode there's no webpack "style-loader", - // so the module.name will be equal to the asset path - return module.name; } + // in production mode there's no webpack "style-loader", + // so the module.name will be equal to the asset path + return module.name; }, - parser: function(module, options, log) { + parser(module, options, log) { if (options.development) { return WebpackIsomorphicToolsPlugin.css_modules_loader_parser(module, options, log); - } else { - // in production mode there's Extract Text Loader which extracts CSS text away - return module.source; } + // in production mode there's Extract Text Loader which extracts CSS text away + return module.source; } } } -} +}; diff --git a/webpack/prod.config.js b/webpack/prod.config.js index 5bc91ef91..9717a409b 100644 --- a/webpack/prod.config.js +++ b/webpack/prod.config.js @@ -1,16 +1,15 @@ require('dotenv').load(); -var path = require('path'); -var ExtractTextPlugin = require('extract-text-webpack-plugin'); -var path = require('path'); -var webpack = require('webpack'); -var CleanPlugin = require('clean-webpack-plugin'); -var IsomorphicPlugin = require('webpack-isomorphic-tools/plugin') -var strip = require('strip-loader'); +const path = require('path'); +const ExtractTextPlugin = require('extract-text-webpack-plugin'); +const webpack = require('webpack'); +const CleanPlugin = require('clean-webpack-plugin'); +const IsomorphicPlugin = require('webpack-isomorphic-tools/plugin'); +const strip = require('strip-loader'); -var webpackIsomorphicToolsPlugin = new IsomorphicPlugin(require('./isomorphic-tools-configuration')); -var relativeAssetsPath = '../static/dist'; -var assetsPath = path.join(__dirname, relativeAssetsPath); +const webpackIsomorphicToolsPlugin = new IsomorphicPlugin(require('./isomorphic-tools-configuration')); // eslint-disable-line max-len, global-require +const relativeAssetsPath = '../static/dist'; +const assetsPath = path.join(__dirname, relativeAssetsPath); module.exports = { output: { @@ -21,13 +20,14 @@ module.exports = { sourceMapFilename: '[name]-[chunkhash].map.js' }, + context: path.resolve(__dirname, '../src'), devtool: 'cheap-source-map', debug: false, target: 'web', cache: false, entry: [ - 'bootstrap-sass!./bootstrap.config.prod.js', - './client.js', + 'bootstrap-sass!./styles/bootstrap.config.prod.js', + './client.js', ], stats: { colors: true, @@ -43,41 +43,74 @@ module.exports = { module: { loaders: [ { test: /\.css$/, loader: 'style!css' }, - { test: /\.js$/, exclude: /node_modules/, loaders: [ - strip.loader('debug'), - { - loader: 'babel', - query: { - 'presets': ['react', 'es2015-webpack', 'stage-0'], - 'plugins': [ - 'transform-runtime', - 'add-module-exports', - 'transform-decorators-legacy', - 'transform-react-display-name' - ] + { test: /\.json$/, loader: 'json'}, + { + test: /\.js$/, + exclude: /node_modules/, + loaders: [ + strip.loader('debug'), + { + loader: 'babel', + query: { + presets: ['react', ['es2015', {modules: false}], 'stage-0'], + plugins: [ + 'transform-runtime', + 'add-module-exports', + 'transform-decorators-legacy', + 'transform-react-display-name', + 'transform-react-inline-elements', + 'transform-react-constant-elements' + ] + } } - } - ]}, - { test: /\.json$/, loader: 'json-loader'}, - { test: /\.scss$/, loader: ExtractTextPlugin.extract('style', 'css?modules&importLoaders=2&sourceMap!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap=true&sourceMapContents=true') }, - { test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff" }, - { test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff" }, - { test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream" }, - { test: /\.otf(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream" }, - { test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, loader: "file?name=fonts/[name].[ext]" }, - { test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, loader: "url?name=images/[name].[ext]&limit=10000&mimetype=image/svg+xml" }, - { test: webpackIsomorphicToolsPlugin.regular_expression('images'), loader: 'url-loader?name=images/[name].[ext]&limit=10240' } + ] + }, + { + test: /\.scss$/, + loader: ExtractTextPlugin.extract({ + fallbackLoader: 'style', + loader: 'css?modules&importLoaders=2&sourceMap!autoprefixer?browsers=last 2 version!sass?outputStyle=expanded&sourceMap=true&sourceMapContents=true' // eslint-disable-line max-len + }) + }, + { + test: /\.woff(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff' + }, + { + test: /\.woff2(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/font-woff' + }, + { + test: /\.ttf(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream' + }, + { + test: /\.otf(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=fonts/[name].[ext]&limit=10000&mimetype=application/octet-stream' + }, + { + test: /\.eot(\?v=\d+\.\d+\.\d+)?$/, + loader: 'file?name=fonts/[name].[ext]' + }, + { + test: /\.svg(\?v=\d+\.\d+\.\d+)?$/, + loader: 'url?name=images/[name].[ext]&limit=10000&mimetype=image/svg+xml' + }, + { + test: webpackIsomorphicToolsPlugin.regular_expression('images'), + loader: 'url?name=images/[name].[ext]&limit=10240' + } ] }, plugins: [ new CleanPlugin([relativeAssetsPath]), new webpack.NoErrorsPlugin(), new webpack.ProvidePlugin({ - $: "jquery", - jQuery: "jquery", - "windows.jQuery": "jquery" + $: 'jquery', + jQuery: 'jquery', + 'windows.jQuery': 'jquery' }), - new ExtractTextPlugin("[name]-[hash].css", {allChunks: true}), + new ExtractTextPlugin({ filename: '[name]-[hash].css', allChunks: true }), new webpack.DefinePlugin({ 'process.env.BROWSER': true, 'process.env.API_URL': JSON.stringify(process.env.API_URL), @@ -102,7 +135,7 @@ module.exports = { warnings: false }, minimize: true - }), + }), new webpack.LoaderOptionsPlugin({ test: /\.css$/, // optionally pass test, include and exclude, default affects all loaders minimize: true, diff --git a/webpack/webpack-dev-server.js b/webpack/webpack-dev-server.js new file mode 100644 index 000000000..159f354e4 --- /dev/null +++ b/webpack/webpack-dev-server.js @@ -0,0 +1,33 @@ +const Express = require('express'); +const webpack = require('webpack'); + +const config = require('../src/config'); +const webpackConfig = require('./dev.config'); +const compiler = webpack(webpackConfig); + +const host = config.host || 'localhost'; +const port = (Number(config.port) + 1) || 3001; +const serverOptions = { + contentBase: `http://${host}:${port}`, + quiet: true, + noInfo: true, + hot: true, + inline: true, + lazy: false, + publicPath: webpackConfig.output.publicPath, + headers: {'Access-Control-Allow-Origin': '*'}, + stats: {colors: true} +}; + +const app = new Express(); + +app.use(require('webpack-dev-middleware')(compiler, serverOptions)); +app.use(require('webpack-hot-middleware')(compiler)); + +app.listen(port, err => { + if (err) { + console.error(err); + } else { + console.info('==> 🚧 Webpack development server listening on port %s', port); + } +});