diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 7a6ad935..8ef236d6 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,4 +1,4 @@ # CODEOWNERS info: https://help.github.com/en/articles/about-code-owners # Owners are automatically requested for review for PRs that changes code # that they own. -* @dgraph-io/committers +* @hypermodeinc/database diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..5f95c284 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,38 @@ +--- +name: Bug report +about: Create a report to help us improve +title: "" +labels: bug +assignees: "" +--- + +## Describe the bug + +A clear and concise description of what the bug is. + +## To Reproduce + +Steps to reproduce the behavior: + +1. Go to '...' +2. Click on '....' +3. Scroll down to '....' +4. See error + +## Expected behavior + +A clear and concise description of what you expected to happen. + +## Screenshots + +If applicable, add screenshots to help explain your problem. + +## Environment + +- OS: [e.g. macOS, Windows, Ubuntu] +- Language [e.g. AssemblyScript, Go] +- Version [e.g. v0.xx] + +## Additional context + +Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml deleted file mode 100644 index 16972a3c..00000000 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ /dev/null @@ -1,56 +0,0 @@ -name: "🐞 Bug Report" -description: File a bug report -title: "[BUG]: " -labels: ["kind/bug", "status/triage"] -body: - - type: markdown - attributes: - value: | - Please search the issue list first as there is a chance that the same issue has been reported. - Bug reports are tagged `kind/bug`. - If you find a similar issue, add a thumbs-up to vote for it and optionally add a comment to be part of the conversation. - - - type: textarea - attributes: - label: What version of Ratel are you using? - description: Ratel build info is found in the Help tab. - placeholder: | - Paste here. - validations: - required: false - - type: textarea - attributes: - label: What you did. - description: Actions you performed. - placeholder: | - Paste here. - validations: - required: false - - type: textarea - attributes: - label: What happened. - description: Current behavior - placeholder: | - Type here. - validations: - required: true - - type: textarea - attributes: - label: What you expect to happen. - description: Enter details about your expectations. - placeholder: | - Type here. - validations: - required: false - - type: textarea - attributes: - label: Can we reproduce the issue? - description: What steps will reproduce the issue. - placeholder: | - Type here. - validations: - required: true - - type: textarea - attributes: - label: Additional information - description: Tell us anything else you think we should know. diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml index 53ffb39a..29ea9f2b 100644 --- a/.github/ISSUE_TEMPLATE/config.yml +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -1,5 +1,5 @@ blank_issues_enabled: false contact_links: - name: Dgraph Community Support - url: https://discuss.dgraph.io - about: Please ask and answer questions here. + url: https://discord.hypermode.com + about: Please ask and answer questions here diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 00000000..9a4aae5a --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "" +labels: "" +assignees: "" +--- + +## Is your feature request related to a problem? Please describe + +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +## Describe the solution you'd like + +A clear and concise description of what you want to happen. + +## Describe alternatives you've considered + +A clear and concise description of any alternative solutions or features you've considered. + +## Additional context + +Add any other context or screenshots about the feature request here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml deleted file mode 100644 index 47e91e46..00000000 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ /dev/null @@ -1,42 +0,0 @@ -name: "⚡ Feature Request" -description: Suggest a new feature -title: "[FEATURE]: <Title>" -labels: ["kind/feature ", "status/triage"] -body: - - type: markdown - attributes: - value: | - You have an idea for making Ratel better? We'd love to hear about it. - Please search the issue list first as there is a chance that someone else has had the same idea. - Feature requests are tagged `kind/feature`. - If you find a similar request, add a thumbs-up to vote for it and optionally add a comment to be part of the conversation. - - - - type: textarea - attributes: - label: Use case - description: Describe the context in which the feature will be used and what is achieved when the feature is used. - placeholder: | - Type here. - validations: - required: true - - type: textarea - attributes: - label: Link to examples and research - description: Is there a software that has this feature? Any relevant standards or conventions? - placeholder: | - Type here. - validations: - required: false - - type: textarea - attributes: - label: Solution proposal - description: You have an idea on how to implement the feature? Please share it with us. - placeholder: | - Type here. - validations: - required: false - - type: textarea - attributes: - label: Additional information. - description: Any external references to support your case. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 00000000..f3a85bcd --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,26 @@ +**Description** + +Please explain the changes you made here. + +**Checklist** + +- [ ] Code compiles correctly and linting passes locally +- [ ] For all _code_ changes, an entry added to the `CHANGELOG.md` file describing and linking to + this PR +- [ ] Tests added for new functionality, or regression tests for bug fixes added as applicable +- [ ] For public APIs, new features, etc., PR on + [docs repo](https://github.com/dgraph-io/dgraph-docs) staged and linked here + +**Instructions** + +- The PR title should follow the [Conventional Commits](https://www.conventionalcommits.org/) + syntax, leading with `fix:`, `feat:`, `chore:`, `ci:`, etc. +- The description should briefly explain what the PR is about. In the case of a bugfix, describe or + link to the bug. +- In the checklist section, check the boxes in that are applicable, using `[x]` syntax. If not + applicable, remove the entire line. Only leave the box unchecked if you intend to come back and + check the box later. +- Delete the `Instructions` line and everything below it, to indicate you have read and are + following these instructions. 🙂 + +Thank you for your contribution to Dgraph! diff --git a/.github/renovate.json b/.github/renovate.json new file mode 100644 index 00000000..88015f67 --- /dev/null +++ b/.github/renovate.json @@ -0,0 +1,4 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": ["local>hypermodeinc/renovate-config"] +} diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml deleted file mode 100644 index 7757f776..00000000 --- a/.github/workflows/stale.yml +++ /dev/null @@ -1,18 +0,0 @@ -name: 'Close stale issues and PRs' -on: - schedule: - - cron: '30 1 * * *' - -permissions: - issues: write - pull-requests: write - actions: write - -jobs: - stale: - runs-on: ubuntu-latest - steps: - - uses: actions/stale@v9 - with: - stale-issue-message: 'This issue has been stale for 60 days and will be closed automatically in 7 days. Comment to keep it open.' - stale-pr-message: 'This PR has been stale for 60 days and will be closed automatically in 7 days. Comment to keep it open.' diff --git a/.trunk/.gitignore b/.trunk/.gitignore new file mode 100644 index 00000000..15966d08 --- /dev/null +++ b/.trunk/.gitignore @@ -0,0 +1,9 @@ +*out +*logs +*actions +*notifications +*tools +plugins +user_trunk.yaml +user.yaml +tmp diff --git a/.trunk/configs/.checkov.yaml b/.trunk/configs/.checkov.yaml new file mode 100644 index 00000000..47dc9225 --- /dev/null +++ b/.trunk/configs/.checkov.yaml @@ -0,0 +1,2 @@ +skip-check: + - CKV_GHA_7 diff --git a/.trunk/configs/.hadolint.yaml b/.trunk/configs/.hadolint.yaml new file mode 100644 index 00000000..ea894f49 --- /dev/null +++ b/.trunk/configs/.hadolint.yaml @@ -0,0 +1,4 @@ +# Following source doesn't work in most setups +ignored: + - SC1090 + - SC1091 diff --git a/.trunk/configs/.markdownlint.json b/.trunk/configs/.markdownlint.json new file mode 100644 index 00000000..449148d1 --- /dev/null +++ b/.trunk/configs/.markdownlint.json @@ -0,0 +1,8 @@ +{ + "line-length": { "line_length": 150, "tables": false }, + "no-inline-html": false, + "no-bare-urls": false, + "no-space-in-emphasis": false, + "no-emphasis-as-heading": false, + "first-line-heading": false +} diff --git a/.trunk/configs/.prettierrc b/.trunk/configs/.prettierrc new file mode 100644 index 00000000..ee6855d3 --- /dev/null +++ b/.trunk/configs/.prettierrc @@ -0,0 +1,5 @@ +{ + "semi": false, + "proseWrap": "always", + "printWidth": 100 +} diff --git a/.trunk/configs/.shellcheckrc b/.trunk/configs/.shellcheckrc new file mode 100644 index 00000000..8c7b1ada --- /dev/null +++ b/.trunk/configs/.shellcheckrc @@ -0,0 +1,7 @@ +enable=all +source-path=SCRIPTDIR +disable=SC2154 + +# If you're having issues with shellcheck following source, disable the errors via: +# disable=SC1090 +# disable=SC1091 diff --git a/.trunk/configs/.yamllint.yaml b/.trunk/configs/.yamllint.yaml new file mode 100644 index 00000000..0ce3fd82 --- /dev/null +++ b/.trunk/configs/.yamllint.yaml @@ -0,0 +1,7 @@ +rules: + quoted-strings: + required: only-when-needed + extra-allowed: ["{|}"] + key-duplicates: {} + octal-values: + forbid-implicit-octal: true diff --git a/.trunk/configs/svgo.config.mjs b/.trunk/configs/svgo.config.mjs new file mode 100644 index 00000000..87908149 --- /dev/null +++ b/.trunk/configs/svgo.config.mjs @@ -0,0 +1,14 @@ +export default { + plugins: [ + { + name: "preset-default", + params: { + overrides: { + removeViewBox: false, // https://github.com/svg/svgo/issues/1128 + sortAttrs: true, + removeOffCanvasPaths: true, + }, + }, + }, + ], +} diff --git a/.trunk/trunk.yaml b/.trunk/trunk.yaml new file mode 100644 index 00000000..a6ac8a44 --- /dev/null +++ b/.trunk/trunk.yaml @@ -0,0 +1,43 @@ +# This file controls the behavior of Trunk: https://docs.trunk.io/cli +# To learn more about the format of this file, see https://docs.trunk.io/reference/trunk-yaml +version: 0.1 +cli: + version: 1.22.10 +# Trunk provides extensibility via plugins. (https://docs.trunk.io/plugins) +plugins: + sources: + - id: trunk + ref: v1.6.7 + uri: https://github.com/trunk-io/plugins +# Many linters and tools depend on runtimes - configure them here. (https://docs.trunk.io/runtimes) +runtimes: + enabled: + - go@1.21.0 + - node@18.20.5 + - python@3.10.8 +# This is the section where you manage your linters. (https://docs.trunk.io/check/configuration) +lint: + enabled: + - renovate@39.161.0 + - actionlint@1.7.7 + - checkov@3.2.365 + - dotenv-linter@3.3.0 + - git-diff-check + - gofmt@1.20.4 + - golangci-lint@1.63.4 + - hadolint@2.12.1-beta + - markdownlint@0.44.0 + - osv-scanner@1.9.2 + - oxipng@9.1.3 + - prettier@3.4.2 + - shellcheck@0.10.0 + - shfmt@3.6.0 + - svgo@3.3.2 + - trufflehog@3.88.4 + - yamllint@1.35.1 +actions: + enabled: + - trunk-announce + - trunk-check-pre-push + - trunk-fmt-pre-commit + - trunk-upgrade-available diff --git a/.vscode/extensions.json b/.vscode/extensions.json new file mode 100644 index 00000000..29d43383 --- /dev/null +++ b/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["trunk.io"] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 00000000..93ff3ace --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,6 @@ +{ + "editor.formatOnSave": true, + "editor.defaultFormatter": "trunk.io", + "editor.trimAutoWhitespace": true, + "trunk.autoInit": false +} diff --git a/INSTRUCTIONS.md b/INSTRUCTIONS.md index 064f733c..f6888507 100644 --- a/INSTRUCTIONS.md +++ b/INSTRUCTIONS.md @@ -1,22 +1,27 @@ # Building and running ratel - ## Developing via Container -The safest way to develop and run this repository is via the Docker container. Because we will create a predictable environment using Docker images with nodeJS in the version that this app was developed. And for that you need to have VSCode installed. And then you can use the remote access feature built into VSCode in the "ms-vscode-remote.remote-containers" extension. +The safest way to develop and run this repository is via the Docker container. Because we will +create a predictable environment using Docker images with nodeJS in the version that this app was +developed. And for that you need to have VSCode installed. And then you can use the remote access +feature built into VSCode in the "ms-vscode-remote.remote-containers" extension. Follow the step by step: -1 - Install Docker locally and VSCode. -2 - Install Docker extension, and Dev Containers extension in VsCode. -3 - Run `docker-compose up` in the path of this repository. -4 - Click on "Remote Explorer" on the side of your VSCode. -5 - In the Dropdown menu choose "Containers". It will display all running and stopped containers. -6 - Right click on "rate" or "ratel-dev-1" and click on "Attach to Container". In 1 minute or less, remote access is set up. -7 - When you see "`container node:14.17.0...`" in the left part of the footer of VsCode. Open the terminal and run `npm cache clean --force` and then `npm install --legacy-peer-deps --no-optional`. -8 - Finally run `npm run start` +1 - Install Docker locally and VSCode. 2 - Install Docker extension, and Dev Containers extension in +VsCode. 3 - Run `docker-compose up` in the path of this repository. 4 - Click on "Remote Explorer" +on the side of your VSCode. 5 - In the Dropdown menu choose "Containers". It will display all +running and stopped containers. 6 - Right click on "rate" or "ratel-dev-1" and click on "Attach to +Container". In 1 minute or less, remote access is set up. 7 - When you see +"`container node:14.17.0...`" in the left part of the footer of VsCode. Open the terminal and run +`npm cache clean --force` and then `npm install --legacy-peer-deps --no-optional`. 8 - Finally run +`npm run start` -Docker will forward the port. It will automatically run the Dashboard in your browser. And you can choose to use VSCode locally or in Container. But it's important to leave that connection open. Both Local and Remote windows in the container you can write. As long as the connection is open, writing is bound. +Docker will forward the port. It will automatically run the Dashboard in your browser. And you can +choose to use VSCode locally or in Container. But it's important to leave that connection open. Both +Local and Remote windows in the container you can write. As long as the connection is open, writing +is bound. PS. This was tested in Windows 11. Using Docker and WSL. @@ -91,7 +96,6 @@ export USE_DOCKER=1 make test ``` - ## Production build ```sh @@ -112,8 +116,7 @@ HTTPS connection. ## Publishing to AWS S3 -Instructions to publish ratel assets (JS and CSS files) -to AWS S3 bucket. +Instructions to publish ratel assets (JS and CSS files) to AWS S3 bucket. ### Before publishing diff --git a/README.md b/README.md index 5c7f373b..f60efdd0 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ Dgraph Dashboard ## Building and running + See [Instructions](./INSTRUCTIONS.md). ## License @@ -13,6 +14,11 @@ Apache 2.0. See [LICENSE](./LICENSE). PS. Update this text if(when) necessary. -We used to run Ratel along with the main Dgraph binary(Core Code). But it has been removed and some code here has become obsolete. Like the ones in the "Server" directory, some processes in Bash Script and so on. Now we have created a unique image for Ratel. See https://hub.docker.com/r/dgraph/ratel +We used to run Ratel along with the main Dgraph binary(Core Code). But it has been removed and some +code here has become obsolete. Like the ones in the "Server" directory, some processes in Bash +Script and so on. Now we have created a unique image for Ratel. See +https://hub.docker.com/r/dgraph/ratel -The UI available at http://play.dgraph.io/ is kept in an S3 Bucket and distributed via CDN. Communication between the UI, documentation and parts of the Tour uses a shared dataset. Its configuration is done through the config file in `./server/play-dgraph-io.nginx.conf`. +The UI available at http://play.dgraph.io/ is kept in an S3 Bucket and distributed via CDN. +Communication between the UI, documentation and parts of the Tour uses a shared dataset. Its +configuration is done through the config file in `./server/play-dgraph-io.nginx.conf`. diff --git a/client/config/env.js b/client/config/env.js index 8eb385eb..990720d0 100644 --- a/client/config/env.js +++ b/client/config/env.js @@ -1,41 +1,32 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -const child_process = require('child_process'); -const fs = require('fs'); -const path = require('path'); -const paths = require('./paths'); +const child_process = require("child_process"); +const fs = require("fs"); +const path = require("path"); +const paths = require("./paths"); // Make sure that including paths.js after env.js will read .env variables. -delete require.cache[require.resolve('./paths')]; +delete require.cache[require.resolve("./paths")]; const NODE_ENV = process.env.NODE_ENV; if (!NODE_ENV) { - throw new Error( - 'The NODE_ENV environment variable is required but was not specified.' - ); + throw new Error( + "The NODE_ENV environment variable is required but was not specified.", + ); } // https://github.com/bkeepers/dotenv#what-other-env-files-can-i-use const dotenvFiles = [ - `${paths.dotenv}.${NODE_ENV}.local`, - // Don't include `.env.local` for `test` environment - // since normally you expect tests to produce the same - // results for everyone - NODE_ENV !== 'test' && `${paths.dotenv}.local`, - `${paths.dotenv}.${NODE_ENV}`, - paths.dotenv, + `${paths.dotenv}.${NODE_ENV}.local`, + // Don't include `.env.local` for `test` environment + // since normally you expect tests to produce the same + // results for everyone + NODE_ENV !== "test" && `${paths.dotenv}.local`, + `${paths.dotenv}.${NODE_ENV}`, + paths.dotenv, ].filter(Boolean); // Load environment variables from .env* files. Suppress warnings using silent @@ -44,13 +35,13 @@ const dotenvFiles = [ // https://github.com/motdotla/dotenv // https://github.com/motdotla/dotenv-expand dotenvFiles.forEach(dotenvFile => { - if (fs.existsSync(dotenvFile)) { - require('dotenv-expand')( - require('dotenv').config({ - path: dotenvFile, - }) - ); - } + if (fs.existsSync(dotenvFile)) { + require("dotenv-expand")( + require("dotenv").config({ + path: dotenvFile, + }), + ); + } }); // We support resolving modules according to `NODE_PATH`. @@ -63,99 +54,103 @@ dotenvFiles.forEach(dotenvFile => { // https://github.com/facebook/create-react-app/issues/1023#issuecomment-265344421 // We also resolve them to make sure all tools using them work consistently. const appDirectory = fs.realpathSync(process.cwd()); -process.env.NODE_PATH = (process.env.NODE_PATH || '') - .split(path.delimiter) - .filter(folder => folder && !path.isAbsolute(folder)) - .map(folder => path.resolve(appDirectory, folder)) - .join(path.delimiter); +process.env.NODE_PATH = (process.env.NODE_PATH || "") + .split(path.delimiter) + .filter(folder => folder && !path.isAbsolute(folder)) + .map(folder => path.resolve(appDirectory, folder)) + .join(path.delimiter); // Grab NODE_ENV and REACT_APP_* environment variables and prepare them to be // injected into the application via DefinePlugin in webpack configuration. const REACT_APP = /^REACT_APP_/i; function getClientEnvironment(publicUrl) { - const raw = Object.keys(process.env) - .filter(key => REACT_APP.test(key)) - .reduce( - (env, key) => { - env[key] = process.env[key]; - return env; - }, - { - // Useful for determining whether we’re running in production mode. - // Most importantly, it switches React into the correct mode. - NODE_ENV: process.env.NODE_ENV || 'development', - // Useful for resolving the correct path to static assets in `public`. - // For example, <img src={process.env.PUBLIC_URL + '/img/logo.png'} />. - // This should only be used as an escape hatch. Normally you would put - // images into the `src` and `import` them in code to get their paths. - PUBLIC_URL: publicUrl, - // We support configuring the sockjs pathname during development. - // These settings let a developer run multiple simultaneous projects. - // They are used as the connection `hostname`, `pathname` and `port` - // in webpackHotDevClient. They are used as the `sockHost`, `sockPath` - // and `sockPort` options in webpack-dev-server. - WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST, - WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH, - WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT, - // Whether or not react-refresh is enabled. - // react-refresh is not 100% stable at this time, - // which is why it's disabled by default. - // It is defined here so it is available in the webpackHotDevClient. - FAST_REFRESH: process.env.FAST_REFRESH !== 'false', - } - ); - // Stringify all values so we can feed into webpack DefinePlugin - const stringified = { - 'process.env': Object.keys(raw).reduce((env, key) => { - env[key] = JSON.stringify(raw[key]); - return env; - }, {}), - }; + const raw = Object.keys(process.env) + .filter(key => REACT_APP.test(key)) + .reduce( + (env, key) => { + env[key] = process.env[key]; + return env; + }, + { + // Useful for determining whether we’re running in production mode. + // Most importantly, it switches React into the correct mode. + NODE_ENV: process.env.NODE_ENV || "development", + // Useful for resolving the correct path to static assets in `public`. + // For example, <img src={process.env.PUBLIC_URL + '/img/logo.png'} />. + // This should only be used as an escape hatch. Normally you would put + // images into the `src` and `import` them in code to get their paths. + PUBLIC_URL: publicUrl, + // We support configuring the sockjs pathname during development. + // These settings let a developer run multiple simultaneous projects. + // They are used as the connection `hostname`, `pathname` and `port` + // in webpackHotDevClient. They are used as the `sockHost`, `sockPath` + // and `sockPort` options in webpack-dev-server. + WDS_SOCKET_HOST: process.env.WDS_SOCKET_HOST, + WDS_SOCKET_PATH: process.env.WDS_SOCKET_PATH, + WDS_SOCKET_PORT: process.env.WDS_SOCKET_PORT, + // Whether or not react-refresh is enabled. + // react-refresh is not 100% stable at this time, + // which is why it's disabled by default. + // It is defined here so it is available in the webpackHotDevClient. + FAST_REFRESH: process.env.FAST_REFRESH !== "false", + }, + ); + // Stringify all values so we can feed into webpack DefinePlugin + const stringified = { + "process.env": Object.keys(raw).reduce((env, key) => { + env[key] = JSON.stringify(raw[key]); + return env; + }, {}), + }; - return { raw, stringified }; + return { raw, stringified }; } function getClientEnvironment() { - const raw = Object.keys(process.env) - .filter(key => REACT_APP.test(key)) - .reduce( - (env, key) => { - env[key] = process.env[key]; - return env; - }, - { - // Useful for determining whether we’re running in production mode. - // Most importantly, it switches React into the correct mode. - NODE_ENV: process.env.NODE_ENV || "development" - }, - ); + const raw = Object.keys(process.env) + .filter(key => REACT_APP.test(key)) + .reduce( + (env, key) => { + env[key] = process.env[key]; + return env; + }, + { + // Useful for determining whether we’re running in production mode. + // Most importantly, it switches React into the correct mode. + NODE_ENV: process.env.NODE_ENV || "development", + }, + ); - raw.RATEL_BUILT_AT = new Date().toISOString(); - try { - raw.RATEL_COMMIT_ID = child_process.execSync('git rev-parse --short HEAD') - .toString() - .trim(); - } catch(err) { - raw.RATEL_COMMIT_ID = '<not git>' - } - try { - raw.RATEL_COMMIT_INFO = child_process.execSync(`git show --pretty=format:"%h %ad %d" ${JSON.stringify(raw.RATEL_COMMIT_ID)} | head -n1`) - .toString() - .trim(); - } catch(err) { - raw.RATEL_COMMIT_INFO = '<UNKNOWN COMMIT>' - } - // Stringify all values so we can feed into Webpack DefinePlugin - const stringified = { - "process.env": Object.keys(raw).reduce((env, key) => { - env[key] = JSON.stringify(raw[key]); - return env; - }, {}), - }; + raw.RATEL_BUILT_AT = new Date().toISOString(); + try { + raw.RATEL_COMMIT_ID = child_process + .execSync("git rev-parse --short HEAD") + .toString() + .trim(); + } catch (err) { + raw.RATEL_COMMIT_ID = "<not git>"; + } + try { + raw.RATEL_COMMIT_INFO = child_process + .execSync( + `git show --pretty=format:"%h %ad %d" ${JSON.stringify(raw.RATEL_COMMIT_ID)} | head -n1`, + ) + .toString() + .trim(); + } catch (err) { + raw.RATEL_COMMIT_INFO = "<UNKNOWN COMMIT>"; + } + // Stringify all values so we can feed into Webpack DefinePlugin + const stringified = { + "process.env": Object.keys(raw).reduce((env, key) => { + env[key] = JSON.stringify(raw[key]); + return env; + }, {}), + }; - console.info('Client Env: ', JSON.stringify(stringified, null, 2)); - return { raw, stringified }; + console.info("Client Env: ", JSON.stringify(stringified, null, 2)); + return { raw, stringified }; } module.exports = getClientEnvironment; diff --git a/client/config/getHttpsConfig.js b/client/config/getHttpsConfig.js index 012861e7..f2d86e1f 100644 --- a/client/config/getHttpsConfig.js +++ b/client/config/getHttpsConfig.js @@ -1,80 +1,71 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -'use strict'; +"use strict"; -const fs = require('fs'); -const path = require('path'); -const crypto = require('crypto'); -const chalk = require('react-dev-utils/chalk'); -const paths = require('./paths'); +const fs = require("fs"); +const path = require("path"); +const crypto = require("crypto"); +const chalk = require("react-dev-utils/chalk"); +const paths = require("./paths"); // Ensure the certificate and key provided are valid and if not // throw an easy to debug error function validateKeyAndCerts({ cert, key, keyFile, crtFile }) { - let encrypted; - try { - // publicEncrypt will throw an error with an invalid cert - encrypted = crypto.publicEncrypt(cert, Buffer.from('test')); - } catch (err) { - throw new Error( - `The certificate "${chalk.yellow(crtFile)}" is invalid.\n${err.message}` - ); - } + let encrypted; + try { + // publicEncrypt will throw an error with an invalid cert + encrypted = crypto.publicEncrypt(cert, Buffer.from("test")); + } catch (err) { + throw new Error( + `The certificate "${chalk.yellow(crtFile)}" is invalid.\n${err.message}`, + ); + } - try { - // privateDecrypt will throw an error with an invalid key - crypto.privateDecrypt(key, encrypted); - } catch (err) { - throw new Error( - `The certificate key "${chalk.yellow(keyFile)}" is invalid.\n${ - err.message - }` - ); - } + try { + // privateDecrypt will throw an error with an invalid key + crypto.privateDecrypt(key, encrypted); + } catch (err) { + throw new Error( + `The certificate key "${chalk.yellow(keyFile)}" is invalid.\n${ + err.message + }`, + ); + } } // Read file and throw an error if it doesn't exist function readEnvFile(file, type) { - if (!fs.existsSync(file)) { - throw new Error( - `You specified ${chalk.cyan( - type - )} in your env, but the file "${chalk.yellow(file)}" can't be found.` - ); - } - return fs.readFileSync(file); + if (!fs.existsSync(file)) { + throw new Error( + `You specified ${chalk.cyan( + type, + )} in your env, but the file "${chalk.yellow(file)}" can't be found.`, + ); + } + return fs.readFileSync(file); } // Get the https config // Return cert files if provided in env, otherwise just true or false function getHttpsConfig() { - const { SSL_CRT_FILE, SSL_KEY_FILE, HTTPS } = process.env; - const isHttps = HTTPS === 'true'; + const { SSL_CRT_FILE, SSL_KEY_FILE, HTTPS } = process.env; + const isHttps = HTTPS === "true"; - if (isHttps && SSL_CRT_FILE && SSL_KEY_FILE) { - const crtFile = path.resolve(paths.appPath, SSL_CRT_FILE); - const keyFile = path.resolve(paths.appPath, SSL_KEY_FILE); - const config = { - cert: readEnvFile(crtFile, 'SSL_CRT_FILE'), - key: readEnvFile(keyFile, 'SSL_KEY_FILE'), - }; + if (isHttps && SSL_CRT_FILE && SSL_KEY_FILE) { + const crtFile = path.resolve(paths.appPath, SSL_CRT_FILE); + const keyFile = path.resolve(paths.appPath, SSL_KEY_FILE); + const config = { + cert: readEnvFile(crtFile, "SSL_CRT_FILE"), + key: readEnvFile(keyFile, "SSL_KEY_FILE"), + }; - validateKeyAndCerts({ ...config, keyFile, crtFile }); - return config; - } - return isHttps; + validateKeyAndCerts({ ...config, keyFile, crtFile }); + return config; + } + return isHttps; } module.exports = getHttpsConfig; diff --git a/client/config/jest/cssTransform.js b/client/config/jest/cssTransform.js index 0bda0ffc..10cbdd45 100644 --- a/client/config/jest/cssTransform.js +++ b/client/config/jest/cssTransform.js @@ -1,26 +1,17 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // This is a custom Jest transformer turning style imports into empty objects. // http://facebook.github.io/jest/docs/en/webpack.html module.exports = { - process() { - return 'module.exports = {};'; - }, - getCacheKey() { - // The output is always the same. - return 'cssTransform'; - }, + process() { + return "module.exports = {};"; + }, + getCacheKey() { + // The output is always the same. + return "cssTransform"; + }, }; diff --git a/client/config/jest/fileTransform.js b/client/config/jest/fileTransform.js index 7e08b38f..cc53a570 100644 --- a/client/config/jest/fileTransform.js +++ b/client/config/jest/fileTransform.js @@ -1,35 +1,26 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -const path = require('path'); -const camelcase = require('camelcase'); +const path = require("path"); +const camelcase = require("camelcase"); // This is a custom Jest transformer turning file imports into filenames. // http://facebook.github.io/jest/docs/en/webpack.html module.exports = { - process(src, filename) { - const assetFilename = JSON.stringify(path.basename(filename)); + process(src, filename) { + const assetFilename = JSON.stringify(path.basename(filename)); - if (filename.match(/\.svg$/)) { - // Based on how SVGR generates a component name: - // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 - const pascalCaseFilename = camelcase(path.parse(filename).name, { - pascalCase: true, - }); - const componentName = `Svg${pascalCaseFilename}`; - return `const React = require('react'); + if (filename.match(/\.svg$/)) { + // Based on how SVGR generates a component name: + // https://github.com/smooth-code/svgr/blob/01b194cf967347d43d4cbe6b434404731b87cf27/packages/core/src/state.js#L6 + const pascalCaseFilename = camelcase(path.parse(filename).name, { + pascalCase: true, + }); + const componentName = `Svg${pascalCaseFilename}`; + return `const React = require('react'); module.exports = { __esModule: true, default: ${assetFilename}, @@ -45,8 +36,8 @@ module.exports = { }; }), };`; - } + } - return `module.exports = ${assetFilename};`; - }, + return `module.exports = ${assetFilename};`; + }, }; diff --git a/client/config/modules.js b/client/config/modules.js index 73694580..9475fb43 100644 --- a/client/config/modules.js +++ b/client/config/modules.js @@ -1,22 +1,13 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -const fs = require('fs'); -const path = require('path'); -const paths = require('./paths'); -const chalk = require('react-dev-utils/chalk'); -const resolve = require('resolve'); +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + +const fs = require("fs"); +const path = require("path"); +const paths = require("./paths"); +const chalk = require("react-dev-utils/chalk"); +const resolve = require("resolve"); /** * Get additional module paths based on the baseUrl of a compilerOptions object. @@ -24,41 +15,41 @@ const resolve = require('resolve'); * @param {Object} options */ function getAdditionalModulePaths(options = {}) { - const baseUrl = options.baseUrl; - - if (!baseUrl) { - return ''; - } - - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - - // We don't need to do anything if `baseUrl` is set to `node_modules`. This is - // the default behavior. - if (path.relative(paths.appNodeModules, baseUrlResolved) === '') { - return null; - } - - // Allow the user set the `baseUrl` to `appSrc`. - if (path.relative(paths.appSrc, baseUrlResolved) === '') { - return [paths.appSrc]; - } - - // If the path is equal to the root directory we ignore it here. - // We don't want to allow importing from the root directly as source files are - // not transpiled outside of `src`. We do allow importing them with the - // absolute path (e.g. `src/Components/Button.js`) but we set that up with - // an alias. - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return null; - } - - // Otherwise, throw an error. - throw new Error( - chalk.red.bold( - "Your project's `baseUrl` can only be set to `src` or `node_modules`." + - ' Create React App does not support other values at this time.' - ) - ); + const baseUrl = options.baseUrl; + + if (!baseUrl) { + return ""; + } + + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + + // We don't need to do anything if `baseUrl` is set to `node_modules`. This is + // the default behavior. + if (path.relative(paths.appNodeModules, baseUrlResolved) === "") { + return null; + } + + // Allow the user set the `baseUrl` to `appSrc`. + if (path.relative(paths.appSrc, baseUrlResolved) === "") { + return [paths.appSrc]; + } + + // If the path is equal to the root directory we ignore it here. + // We don't want to allow importing from the root directly as source files are + // not transpiled outside of `src`. We do allow importing them with the + // absolute path (e.g. `src/Components/Button.js`) but we set that up with + // an alias. + if (path.relative(paths.appPath, baseUrlResolved) === "") { + return null; + } + + // Otherwise, throw an error. + throw new Error( + chalk.red.bold( + "Your project's `baseUrl` can only be set to `src` or `node_modules`." + + " Create React App does not support other values at this time.", + ), + ); } /** @@ -67,19 +58,19 @@ function getAdditionalModulePaths(options = {}) { * @param {*} options */ function getWebpackAliases(options = {}) { - const baseUrl = options.baseUrl; + const baseUrl = options.baseUrl; - if (!baseUrl) { - return {}; - } + if (!baseUrl) { + return {}; + } - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return { - src: paths.appSrc, - }; - } + if (path.relative(paths.appPath, baseUrlResolved) === "") { + return { + src: paths.appSrc, + }; + } } /** @@ -88,59 +79,61 @@ function getWebpackAliases(options = {}) { * @param {*} options */ function getJestAliases(options = {}) { - const baseUrl = options.baseUrl; + const baseUrl = options.baseUrl; - if (!baseUrl) { - return {}; - } + if (!baseUrl) { + return {}; + } - const baseUrlResolved = path.resolve(paths.appPath, baseUrl); + const baseUrlResolved = path.resolve(paths.appPath, baseUrl); - if (path.relative(paths.appPath, baseUrlResolved) === '') { - return { - '^src/(.*)$': '<rootDir>/src/$1', - }; - } + if (path.relative(paths.appPath, baseUrlResolved) === "") { + return { + "^src/(.*)$": "<rootDir>/src/$1", + }; + } } function getModules() { - // Check if TypeScript is setup - const hasTsConfig = fs.existsSync(paths.appTsConfig); - const hasJsConfig = fs.existsSync(paths.appJsConfig); + // Check if TypeScript is setup + const hasTsConfig = fs.existsSync(paths.appTsConfig); + const hasJsConfig = fs.existsSync(paths.appJsConfig); + + if (hasTsConfig && hasJsConfig) { + throw new Error( + "You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.", + ); + } + + let config; + + // If there's a tsconfig.json we assume it's a + // TypeScript project and set up the config + // based on tsconfig.json + if (hasTsConfig) { + const ts = require( + resolve.sync("typescript", { + basedir: paths.appNodeModules, + }), + ); + config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config; + // Otherwise we'll check if there is jsconfig.json + // for non TS projects. + } else if (hasJsConfig) { + config = require(paths.appJsConfig); + } + + config = config || {}; + const options = config.compilerOptions || {}; + + const additionalModulePaths = getAdditionalModulePaths(options); - if (hasTsConfig && hasJsConfig) { - throw new Error( - 'You have both a tsconfig.json and a jsconfig.json. If you are using TypeScript please remove your jsconfig.json file.' - ); - } - - let config; - - // If there's a tsconfig.json we assume it's a - // TypeScript project and set up the config - // based on tsconfig.json - if (hasTsConfig) { - const ts = require(resolve.sync('typescript', { - basedir: paths.appNodeModules, - })); - config = ts.readConfigFile(paths.appTsConfig, ts.sys.readFile).config; - // Otherwise we'll check if there is jsconfig.json - // for non TS projects. - } else if (hasJsConfig) { - config = require(paths.appJsConfig); - } - - config = config || {}; - const options = config.compilerOptions || {}; - - const additionalModulePaths = getAdditionalModulePaths(options); - - return { - additionalModulePaths: additionalModulePaths, - webpackAliases: getWebpackAliases(options), - jestAliases: getJestAliases(options), - hasTsConfig, - }; + return { + additionalModulePaths: additionalModulePaths, + webpackAliases: getWebpackAliases(options), + jestAliases: getJestAliases(options), + hasTsConfig, + }; } module.exports = getModules(); diff --git a/client/config/paths.js b/client/config/paths.js index 24d57759..906867b0 100644 --- a/client/config/paths.js +++ b/client/config/paths.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ const path = require("path"); const fs = require("fs"); diff --git a/client/config/pnpTs.js b/client/config/pnpTs.js index a5b4a1a7..5ad4d624 100644 --- a/client/config/pnpTs.js +++ b/client/config/pnpTs.js @@ -1,47 +1,38 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -const { resolveModuleName } = require('ts-pnp'); +const { resolveModuleName } = require("ts-pnp"); exports.resolveModuleName = ( - typescript, - moduleName, - containingFile, - compilerOptions, - resolutionHost -) => { - return resolveModuleName( + typescript, moduleName, containingFile, compilerOptions, resolutionHost, - typescript.resolveModuleName - ); +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveModuleName, + ); }; exports.resolveTypeReferenceDirective = ( - typescript, - moduleName, - containingFile, - compilerOptions, - resolutionHost -) => { - return resolveModuleName( + typescript, moduleName, containingFile, compilerOptions, resolutionHost, - typescript.resolveTypeReferenceDirective - ); +) => { + return resolveModuleName( + moduleName, + containingFile, + compilerOptions, + resolutionHost, + typescript.resolveTypeReferenceDirective, + ); }; diff --git a/client/config/polyfills.js b/client/config/polyfills.js index 54c83ae1..2ce11903 100644 --- a/client/config/polyfills.js +++ b/client/config/polyfills.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ if (typeof Promise === "undefined") { // Rejection tracking prevents a common issue where React gets into an diff --git a/client/config/webpack.config.dev.js b/client/config/webpack.config.dev.js index 2077adbe..34c6d5b4 100644 --- a/client/config/webpack.config.dev.js +++ b/client/config/webpack.config.dev.js @@ -1,64 +1,55 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -const fs = require('fs'); -const path = require('path'); -const webpack = require('webpack'); -const resolve = require('resolve'); -const PnpWebpackPlugin = require('pnp-webpack-plugin'); -const HtmlWebpackPlugin = require('html-webpack-plugin'); -const CaseSensitivePathsPlugin = require('case-sensitive-paths-webpack-plugin'); -const InlineChunkHtmlPlugin = require('react-dev-utils/InlineChunkHtmlPlugin'); -const TerserPlugin = require('terser-webpack-plugin'); -const MiniCssExtractPlugin = require('mini-css-extract-plugin'); -const OptimizeCSSAssetsPlugin = require('optimize-css-assets-webpack-plugin'); -const safePostCssParser = require('postcss-safe-parser'); -const ManifestPlugin = require('webpack-manifest-plugin'); -const InterpolateHtmlPlugin = require('react-dev-utils/InterpolateHtmlPlugin'); -const WorkboxWebpackPlugin = require('workbox-webpack-plugin'); -const WatchMissingNodeModulesPlugin = require('react-dev-utils/WatchMissingNodeModulesPlugin'); -const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin'); -const getCSSModuleLocalIdent = require('react-dev-utils/getCSSModuleLocalIdent'); -const ESLintPlugin = require('eslint-webpack-plugin'); -const paths = require('./paths'); -const modules = require('./modules'); -const getClientEnvironment = require('./env'); -const ModuleNotFoundPlugin = require('react-dev-utils/ModuleNotFoundPlugin'); -const ForkTsCheckerWebpackPlugin = require('react-dev-utils/ForkTsCheckerWebpackPlugin'); -const typescriptFormatter = require('react-dev-utils/typescriptFormatter'); -const ReactRefreshWebpackPlugin = require('@pmmmwh/react-refresh-webpack-plugin'); +const fs = require("fs"); +const path = require("path"); +const webpack = require("webpack"); +const resolve = require("resolve"); +const PnpWebpackPlugin = require("pnp-webpack-plugin"); +const HtmlWebpackPlugin = require("html-webpack-plugin"); +const CaseSensitivePathsPlugin = require("case-sensitive-paths-webpack-plugin"); +const InlineChunkHtmlPlugin = require("react-dev-utils/InlineChunkHtmlPlugin"); +const TerserPlugin = require("terser-webpack-plugin"); +const MiniCssExtractPlugin = require("mini-css-extract-plugin"); +const OptimizeCSSAssetsPlugin = require("optimize-css-assets-webpack-plugin"); +const safePostCssParser = require("postcss-safe-parser"); +const ManifestPlugin = require("webpack-manifest-plugin"); +const InterpolateHtmlPlugin = require("react-dev-utils/InterpolateHtmlPlugin"); +const WorkboxWebpackPlugin = require("workbox-webpack-plugin"); +const WatchMissingNodeModulesPlugin = require("react-dev-utils/WatchMissingNodeModulesPlugin"); +const ModuleScopePlugin = require("react-dev-utils/ModuleScopePlugin"); +const getCSSModuleLocalIdent = require("react-dev-utils/getCSSModuleLocalIdent"); +const ESLintPlugin = require("eslint-webpack-plugin"); +const paths = require("./paths"); +const modules = require("./modules"); +const getClientEnvironment = require("./env"); +const ModuleNotFoundPlugin = require("react-dev-utils/ModuleNotFoundPlugin"); +const ForkTsCheckerWebpackPlugin = require("react-dev-utils/ForkTsCheckerWebpackPlugin"); +const typescriptFormatter = require("react-dev-utils/typescriptFormatter"); +const ReactRefreshWebpackPlugin = require("@pmmmwh/react-refresh-webpack-plugin"); -const postcssNormalize = require('postcss-normalize'); +const postcssNormalize = require("postcss-normalize"); const appPackageJson = require(paths.appPackageJson); // Source maps are resource heavy and can cause out of memory issue for large source files. -const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== 'false'; +const shouldUseSourceMap = process.env.GENERATE_SOURCEMAP !== "false"; const webpackDevClientEntry = require.resolve( - 'react-dev-utils/webpackHotDevClient' + "react-dev-utils/webpackHotDevClient", ); const reactRefreshOverlayEntry = require.resolve( - 'react-dev-utils/refreshOverlayInterop' + "react-dev-utils/refreshOverlayInterop", ); // Some apps do not need the benefits of saving a web request, so not inlining the chunk // makes for a smoother build process. -const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== 'false'; +const shouldInlineRuntimeChunk = process.env.INLINE_RUNTIME_CHUNK !== "false"; const imageInlineSizeLimit = parseInt( - process.env.IMAGE_INLINE_SIZE_LIMIT || '10000' + process.env.IMAGE_INLINE_SIZE_LIMIT || "10000", ); // Check if TypeScript is setup @@ -74,698 +65,729 @@ const sassRegex = /\.(scss|sass)$/; const sassModuleRegex = /\.module\.(scss|sass)$/; const hasJsxRuntime = (() => { - if (process.env.DISABLE_NEW_JSX_TRANSFORM === 'true') { - return false; - } + if (process.env.DISABLE_NEW_JSX_TRANSFORM === "true") { + return false; + } - try { - require.resolve('react/jsx-runtime'); - return true; - } catch (e) { - return false; - } + try { + require.resolve("react/jsx-runtime"); + return true; + } catch (e) { + return false; + } })(); // This is the production and development configuration. // It is focused on developer experience, fast rebuilds, and a minimal bundle. module.exports = function (webpackEnv) { - const isEnvDevelopment = webpackEnv === 'development'; - const isEnvProduction = webpackEnv === 'production'; + const isEnvDevelopment = webpackEnv === "development"; + const isEnvProduction = webpackEnv === "production"; - // Variable used for enabling profiling in Production - // passed into alias object. Uses a flag if passed into the build command - const isEnvProductionProfile = - isEnvProduction && process.argv.includes('--profile'); + // Variable used for enabling profiling in Production + // passed into alias object. Uses a flag if passed into the build command + const isEnvProductionProfile = + isEnvProduction && process.argv.includes("--profile"); - // We will provide `paths.publicUrlOrPath` to our app - // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. - // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz. - // Get environment variables to inject into our app. - const env = getClientEnvironment(paths.publicUrlOrPath.slice(0, -1)); + // We will provide `paths.publicUrlOrPath` to our app + // as %PUBLIC_URL% in `index.html` and `process.env.PUBLIC_URL` in JavaScript. + // Omit trailing slash as %PUBLIC_URL%/xyz looks better than %PUBLIC_URL%xyz. + // Get environment variables to inject into our app. + const env = getClientEnvironment(paths.publicUrlOrPath.slice(0, -1)); - // Webpack uses `cdnPath` to determine where the app's assets are being served from. - // In development, we always serve from /cdn. This makes config easier. - var cdnPath = "/"; + // Webpack uses `cdnPath` to determine where the app's assets are being served from. + // In development, we always serve from /cdn. This makes config easier. + var cdnPath = "/"; - const shouldUseReactRefresh = env.raw.FAST_REFRESH; + const shouldUseReactRefresh = env.raw.FAST_REFRESH; - // common function to get style loaders - const getStyleLoaders = (cssOptions, preProcessor) => { - const loaders = [ - isEnvDevelopment && require.resolve('style-loader'), - isEnvProduction && { - loader: MiniCssExtractPlugin.loader, - // css is located in `static/css`, use '../../' to locate index.html folder - // in production `paths.publicUrlOrPath` can be a relative path - options: paths.publicUrlOrPath.startsWith('.') - ? { publicPath: '../../' } - : {}, - }, - { - loader: require.resolve('css-loader'), - options: cssOptions, - }, - { - // Options for PostCSS as we reference these options twice - // Adds vendor prefixing based on your specified browser support in - // package.json - loader: require.resolve('postcss-loader'), - options: { - // Necessary for external CSS imports to work - // https://github.com/facebook/create-react-app/issues/2677 - ident: 'postcss', - plugins: () => [ - require('postcss-flexbugs-fixes'), - require('postcss-preset-env')({ - autoprefixer: { - flexbox: 'no-2009', - }, - stage: 3, - }), - // Adds PostCSS Normalize as the reset css with default options, - // so that it honors browserslist config in package.json - // which in turn let's users customize the target behavior as per their needs. - postcssNormalize(), - ], - sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment, - }, - }, - ].filter(Boolean); - if (preProcessor) { - loaders.push( - { - loader: require.resolve('resolve-url-loader'), - options: { - sourceMap: isEnvProduction ? shouldUseSourceMap : isEnvDevelopment, - root: paths.appSrc, - }, - }, - { - loader: require.resolve(preProcessor), - options: { - sourceMap: true, - }, - } - ); - } - return loaders; - }; - - return { - mode: isEnvProduction ? 'production' : isEnvDevelopment && 'development', - // Stop compilation early in production - bail: isEnvProduction, - devtool: isEnvProduction - ? shouldUseSourceMap - ? 'source-map' - : false - : isEnvDevelopment && 'cheap-module-source-map', - // These are the "entry points" to our application. - // This means they will be the "root" imports that are included in JS bundle. - entry: - isEnvDevelopment && !shouldUseReactRefresh - ? [ - require.resolve('@babel/polyfill'), - // We ship a few polyfills by default: - require.resolve("./polyfills"), - // Include an alternative client for WebpackDevServer. A client's job is to - // connect to WebpackDevServer by a socket and get notified about changes. - // When you save a file, the client will either apply hot updates (in case - // of CSS changes), or refresh the page (in case of JS changes). When you - // make a syntax error, this client will display a syntax error overlay. - // Note: instead of the default WebpackDevServer client, we use a custom one - // to bring better experience for Create React App users. You can replace - // the line below with these two lines if you prefer the stock client: - // - // require.resolve('webpack-dev-server/client') + '?/', - // require.resolve('webpack/hot/dev-server'), - // - // When using the experimental react-refresh integration, - // the webpack plugin takes care of injecting the dev client for us. - webpackDevClientEntry, - // Finally, this is your app's code: - paths.appIndexJs, - // We include the app code last so that if there is a runtime error during - // initialization, it doesn't blow up the WebpackDevServer client, and - // changing JS code would still trigger a refresh. - ] - : paths.appIndexJs, - output: { - // The build folder. - path: isEnvProduction ? paths.appBuild : undefined, - // Add /* filename */ comments to generated require()s in the output. - pathinfo: isEnvDevelopment, - // There will be one main bundle, and one file per asynchronous chunk. - // In development, it does not produce real files. - filename: isEnvProduction - ? 'static/js/[name].[contenthash:8].js' - : isEnvDevelopment && 'static/js/bundle.js', - // TODO: remove this when upgrading to webpack 5 - futureEmitAssets: true, - // There are also additional JS chunk files if you use code splitting. - chunkFilename: isEnvProduction - ? 'static/js/[name].[contenthash:8].chunk.js' - : isEnvDevelopment && 'static/js/[name].chunk.js', - // webpack uses `publicPath` to determine where the app is being served from. - // It requires a trailing slash, or the file assets will get an incorrect path. - // We inferred the "public path" (such as / or /my-project) from homepage. - publicPath: paths.publicUrlOrPath, - // Point sourcemap entries to original disk location (format as URL on Windows) - devtoolModuleFilenameTemplate: isEnvProduction - ? info => - path - .relative(paths.appSrc, info.absoluteResourcePath) - .replace(/\\/g, '/') - : isEnvDevelopment && - (info => path.resolve(info.absoluteResourcePath).replace(/\\/g, '/')), - // Prevents conflicts when multiple webpack runtimes (from different apps) - // are used on the same page. - jsonpFunction: `webpackJsonp${appPackageJson.name}`, - // this defaults to 'window', but by setting it to 'this' then - // module chunks which are built will work in web workers as well. - globalObject: 'this', - }, - optimization: { - minimize: isEnvProduction, - minimizer: [ - // This is only used in production mode - new TerserPlugin({ - terserOptions: { - parse: { - // We want terser to parse ecma 8 code. However, we don't want it - // to apply any minification steps that turns valid ecma 5 code - // into invalid ecma 5 code. This is why the 'compress' and 'output' - // sections only apply transformations that are ecma 5 safe - // https://github.com/facebook/create-react-app/pull/4234 - ecma: 8, - }, - compress: { - ecma: 5, - warnings: false, - // Disabled because of an issue with Uglify breaking seemingly valid code: - // https://github.com/facebook/create-react-app/issues/2376 - // Pending further investigation: - // https://github.com/mishoo/UglifyJS2/issues/2011 - comparisons: false, - // Disabled because of an issue with Terser breaking valid code: - // https://github.com/facebook/create-react-app/issues/5250 - // Pending further investigation: - // https://github.com/terser-js/terser/issues/120 - inline: 2, - }, - mangle: { - safari10: true, - }, - // Added for profiling in devtools - keep_classnames: isEnvProductionProfile, - keep_fnames: isEnvProductionProfile, - output: { - ecma: 5, - comments: false, - // Turned on because emoji and regex is not minified properly using default - // https://github.com/facebook/create-react-app/issues/2488 - ascii_only: true, - }, - }, - sourceMap: shouldUseSourceMap, - }), - // This is only used in production mode - new OptimizeCSSAssetsPlugin({ - cssProcessorOptions: { - parser: safePostCssParser, - map: shouldUseSourceMap - ? { - // `inline: false` forces the sourcemap to be output into a - // separate file - inline: false, - // `annotation: true` appends the sourceMappingURL to the end of - // the css file, helping the browser find the sourcemap - annotation: true, - } - : false, - }, - cssProcessorPluginOptions: { - preset: ['default', { minifyFontValues: { removeQuotes: false } }], - }, - }), - ], - // Automatically split vendor and commons - // https://twitter.com/wSokra/status/969633336732905474 - // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 - splitChunks: { - chunks: 'all', - name: false, - }, - // Keep the runtime chunk separated to enable long term caching - // https://twitter.com/wSokra/status/969679223278505985 - // https://github.com/facebook/create-react-app/issues/5358 - runtimeChunk: { - name: entrypoint => `runtime-${entrypoint.name}`, - }, - }, - resolve: { - // This allows you to set a fallback for where webpack should look for modules. - // We placed these paths second because we want `node_modules` to "win" - // if there are any conflicts. This matches Node resolution mechanism. - // https://github.com/facebook/create-react-app/issues/253 - modules: [paths.appSrc, 'node_modules', paths.appNodeModules].concat( - modules.additionalModulePaths || [] - ), - // These are the reasonable defaults supported by the Node ecosystem. - // We also include JSX as a common component filename extension to support - // some tools, although we do not recommend using it, see: - // https://github.com/facebook/create-react-app/issues/290 - // `web` extension prefixes have been added for better support - // for React Native Web. - extensions: paths.moduleFileExtensions - .map(ext => `.${ext}`) - .filter(ext => useTypeScript || !ext.includes('ts')), - alias: { - // Support React Native Web - // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ - 'react-native': 'react-native-web', - // Allows for better profiling with ReactDevTools - ...(isEnvProductionProfile && { - 'react-dom$': 'react-dom/profiling', - 'scheduler/tracing': 'scheduler/tracing-profiling', - }), - ...(modules.webpackAliases || {}), - }, - plugins: [ - // Adds support for installing with Plug'n'Play, leading to faster installs and adding - // guards against forgotten dependencies and such. - PnpWebpackPlugin, - // Prevents users from importing files from outside of src/ (or node_modules/). - // This often causes confusion because we only process files within src/ with babel. - // To fix this, we prevent you from importing files out of src/ -- if you'd like to, - // please link the files into your node_modules/ and let module-resolution kick in. - // Make sure your source files are compiled, as they will not be processed in any way. - new ModuleScopePlugin(paths.appSrc, [ - paths.appPackageJson, - reactRefreshOverlayEntry, - ]), - ], - }, - resolveLoader: { - plugins: [ - // Also related to Plug'n'Play, but this time it tells webpack to load its loaders - // from the current package. - PnpWebpackPlugin.moduleLoader(module), - ], - }, - module: { - strictExportPresence: true, - rules: [ - // Disable require.ensure as it's not a standard language feature. - { parser: { requireEnsure: false } }, - { - // "oneOf" will traverse all following loaders until one will - // match the requirements. When no loader matches it will fall - // back to the "file" loader at the end of the loader list. - oneOf: [ - // TODO: Merge this config once `image/avif` is in the mime-db - // https://github.com/jshttp/mime-db - { - test: [/\.avif$/], - loader: require.resolve('url-loader'), - options: { - limit: imageInlineSizeLimit, - mimetype: 'image/avif', - name: 'static/media/[name].[hash:8].[ext]', - }, - }, - // "url" loader works like "file" loader except that it embeds assets - // smaller than specified limit in bytes as data URLs to avoid requests. - // A missing `test` is equivalent to a match. - { - test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], - loader: require.resolve('url-loader'), - options: { - limit: imageInlineSizeLimit, - name: 'static/media/[name].[hash:8].[ext]', - }, - }, - // Process application JS with Babel. - // The preset includes JSX, Flow, TypeScript, and some ESnext features. - { - test: /\.(js|mjs|jsx|ts|tsx)$/, - include: paths.appSrc, - loader: require.resolve('babel-loader'), - options: { - customize: require.resolve( - 'babel-preset-react-app/webpack-overrides' - ), - presets: [ - [ - require.resolve('babel-preset-react-app'), - { - runtime: hasJsxRuntime ? 'automatic' : 'classic', - }, - ], - ], - - plugins: [ - [ - require.resolve('babel-plugin-named-asset-import'), - { - loaderMap: { - svg: { - ReactComponent: - '@svgr/webpack?-svgo,+titleProp,+ref![path]', - }, - }, - }, - ], - isEnvDevelopment && - shouldUseReactRefresh && - require.resolve('react-refresh/babel'), - ].filter(Boolean), - // This is a feature of `babel-loader` for webpack (not Babel itself). - // It enables caching results in ./node_modules/.cache/babel-loader/ - // directory for faster rebuilds. - cacheDirectory: true, - // See #6846 for context on why cacheCompression is disabled - cacheCompression: false, - compact: isEnvProduction, - }, - }, - // Process any JS outside of the app with Babel. - // Unlike the application JS, we only compile the standard ES features. - { - test: /\.(js|mjs)$/, - exclude: /@babel(?:\/|\\{1,2})runtime/, - loader: require.resolve('babel-loader'), - options: { - babelrc: false, - configFile: false, - compact: false, - presets: [ - [ - require.resolve('babel-preset-react-app/dependencies'), - { helpers: true }, - ], - ], - cacheDirectory: true, - // See #6846 for context on why cacheCompression is disabled - cacheCompression: false, - - // Babel sourcemaps are needed for debugging into node_modules - // code. Without the options below, debuggers like VSCode - // show incorrect code and set breakpoints on the wrong lines. - sourceMaps: shouldUseSourceMap, - inputSourceMap: shouldUseSourceMap, - }, + // common function to get style loaders + const getStyleLoaders = (cssOptions, preProcessor) => { + const loaders = [ + isEnvDevelopment && require.resolve("style-loader"), + isEnvProduction && { + loader: MiniCssExtractPlugin.loader, + // css is located in `static/css`, use '../../' to locate index.html folder + // in production `paths.publicUrlOrPath` can be a relative path + options: paths.publicUrlOrPath.startsWith(".") + ? { publicPath: "../../" } + : {}, }, - // "postcss" loader applies autoprefixer to our CSS. - // "css" loader resolves paths in CSS and adds assets as dependencies. - // "style" loader turns CSS into JS modules that inject <style> tags. - // In production, we use MiniCSSExtractPlugin to extract that CSS - // to a file, but in development "style" loader enables hot editing - // of CSS. - // By default we support CSS Modules with the extension .module.css { - test: cssRegex, - exclude: cssModuleRegex, - use: getStyleLoaders({ - importLoaders: 1, - sourceMap: isEnvProduction - ? shouldUseSourceMap - : isEnvDevelopment, - }), - // Don't consider CSS imports dead code even if the - // containing package claims to have no side effects. - // Remove this when webpack adds a warning or an error for this. - // See https://github.com/webpack/webpack/issues/6571 - sideEffects: true, + loader: require.resolve("css-loader"), + options: cssOptions, }, - // Adds support for CSS Modules (https://github.com/css-modules/css-modules) - // using the extension .module.css { - test: cssModuleRegex, - use: getStyleLoaders({ - importLoaders: 1, - sourceMap: isEnvProduction - ? shouldUseSourceMap - : isEnvDevelopment, - modules: { - getLocalIdent: getCSSModuleLocalIdent, + // Options for PostCSS as we reference these options twice + // Adds vendor prefixing based on your specified browser support in + // package.json + loader: require.resolve("postcss-loader"), + options: { + // Necessary for external CSS imports to work + // https://github.com/facebook/create-react-app/issues/2677 + ident: "postcss", + plugins: () => [ + require("postcss-flexbugs-fixes"), + require("postcss-preset-env")({ + autoprefixer: { + flexbox: "no-2009", + }, + stage: 3, + }), + // Adds PostCSS Normalize as the reset css with default options, + // so that it honors browserslist config in package.json + // which in turn let's users customize the target behavior as per their needs. + postcssNormalize(), + ], + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, }, - }), }, - // Opt-in support for SASS (using .scss or .sass extensions). - // By default we support SASS Modules with the - // extensions .module.scss or .module.sass - { - test: sassRegex, - exclude: sassModuleRegex, - use: getStyleLoaders( + ].filter(Boolean); + if (preProcessor) { + loaders.push( { - importLoaders: 3, - sourceMap: isEnvProduction - ? shouldUseSourceMap - : isEnvDevelopment, + loader: require.resolve("resolve-url-loader"), + options: { + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, + root: paths.appSrc, + }, }, - 'sass-loader' - ), - // Don't consider CSS imports dead code even if the - // containing package claims to have no side effects. - // Remove this when webpack adds a warning or an error for this. - // See https://github.com/webpack/webpack/issues/6571 - sideEffects: true, - }, - // Adds support for CSS Modules, but using SASS - // using the extension .module.scss or .module.sass - { - test: sassModuleRegex, - use: getStyleLoaders( { - importLoaders: 3, - sourceMap: isEnvProduction - ? shouldUseSourceMap - : isEnvDevelopment, - modules: { - getLocalIdent: getCSSModuleLocalIdent, - }, + loader: require.resolve(preProcessor), + options: { + sourceMap: true, + }, }, - 'sass-loader' - ), + ); + } + return loaders; + }; + + return { + mode: isEnvProduction + ? "production" + : isEnvDevelopment && "development", + // Stop compilation early in production + bail: isEnvProduction, + devtool: isEnvProduction + ? shouldUseSourceMap + ? "source-map" + : false + : isEnvDevelopment && "cheap-module-source-map", + // These are the "entry points" to our application. + // This means they will be the "root" imports that are included in JS bundle. + entry: + isEnvDevelopment && !shouldUseReactRefresh + ? [ + require.resolve("@babel/polyfill"), + // We ship a few polyfills by default: + require.resolve("./polyfills"), + // Include an alternative client for WebpackDevServer. A client's job is to + // connect to WebpackDevServer by a socket and get notified about changes. + // When you save a file, the client will either apply hot updates (in case + // of CSS changes), or refresh the page (in case of JS changes). When you + // make a syntax error, this client will display a syntax error overlay. + // Note: instead of the default WebpackDevServer client, we use a custom one + // to bring better experience for Create React App users. You can replace + // the line below with these two lines if you prefer the stock client: + // + // require.resolve('webpack-dev-server/client') + '?/', + // require.resolve('webpack/hot/dev-server'), + // + // When using the experimental react-refresh integration, + // the webpack plugin takes care of injecting the dev client for us. + webpackDevClientEntry, + // Finally, this is your app's code: + paths.appIndexJs, + // We include the app code last so that if there is a runtime error during + // initialization, it doesn't blow up the WebpackDevServer client, and + // changing JS code would still trigger a refresh. + ] + : paths.appIndexJs, + output: { + // The build folder. + path: isEnvProduction ? paths.appBuild : undefined, + // Add /* filename */ comments to generated require()s in the output. + pathinfo: isEnvDevelopment, + // There will be one main bundle, and one file per asynchronous chunk. + // In development, it does not produce real files. + filename: isEnvProduction + ? "static/js/[name].[contenthash:8].js" + : isEnvDevelopment && "static/js/bundle.js", + // TODO: remove this when upgrading to webpack 5 + futureEmitAssets: true, + // There are also additional JS chunk files if you use code splitting. + chunkFilename: isEnvProduction + ? "static/js/[name].[contenthash:8].chunk.js" + : isEnvDevelopment && "static/js/[name].chunk.js", + // webpack uses `publicPath` to determine where the app is being served from. + // It requires a trailing slash, or the file assets will get an incorrect path. + // We inferred the "public path" (such as / or /my-project) from homepage. + publicPath: paths.publicUrlOrPath, + // Point sourcemap entries to original disk location (format as URL on Windows) + devtoolModuleFilenameTemplate: isEnvProduction + ? info => + path + .relative(paths.appSrc, info.absoluteResourcePath) + .replace(/\\/g, "/") + : isEnvDevelopment && + (info => + path + .resolve(info.absoluteResourcePath) + .replace(/\\/g, "/")), + // Prevents conflicts when multiple webpack runtimes (from different apps) + // are used on the same page. + jsonpFunction: `webpackJsonp${appPackageJson.name}`, + // this defaults to 'window', but by setting it to 'this' then + // module chunks which are built will work in web workers as well. + globalObject: "this", + }, + optimization: { + minimize: isEnvProduction, + minimizer: [ + // This is only used in production mode + new TerserPlugin({ + terserOptions: { + parse: { + // We want terser to parse ecma 8 code. However, we don't want it + // to apply any minification steps that turns valid ecma 5 code + // into invalid ecma 5 code. This is why the 'compress' and 'output' + // sections only apply transformations that are ecma 5 safe + // https://github.com/facebook/create-react-app/pull/4234 + ecma: 8, + }, + compress: { + ecma: 5, + warnings: false, + // Disabled because of an issue with Uglify breaking seemingly valid code: + // https://github.com/facebook/create-react-app/issues/2376 + // Pending further investigation: + // https://github.com/mishoo/UglifyJS2/issues/2011 + comparisons: false, + // Disabled because of an issue with Terser breaking valid code: + // https://github.com/facebook/create-react-app/issues/5250 + // Pending further investigation: + // https://github.com/terser-js/terser/issues/120 + inline: 2, + }, + mangle: { + safari10: true, + }, + // Added for profiling in devtools + keep_classnames: isEnvProductionProfile, + keep_fnames: isEnvProductionProfile, + output: { + ecma: 5, + comments: false, + // Turned on because emoji and regex is not minified properly using default + // https://github.com/facebook/create-react-app/issues/2488 + ascii_only: true, + }, + }, + sourceMap: shouldUseSourceMap, + }), + // This is only used in production mode + new OptimizeCSSAssetsPlugin({ + cssProcessorOptions: { + parser: safePostCssParser, + map: shouldUseSourceMap + ? { + // `inline: false` forces the sourcemap to be output into a + // separate file + inline: false, + // `annotation: true` appends the sourceMappingURL to the end of + // the css file, helping the browser find the sourcemap + annotation: true, + } + : false, + }, + cssProcessorPluginOptions: { + preset: [ + "default", + { minifyFontValues: { removeQuotes: false } }, + ], + }, + }), + ], + // Automatically split vendor and commons + // https://twitter.com/wSokra/status/969633336732905474 + // https://medium.com/webpack/webpack-4-code-splitting-chunk-graph-and-the-splitchunks-optimization-be739a861366 + splitChunks: { + chunks: "all", + name: false, }, - // "file" loader makes sure those assets get served by WebpackDevServer. - // When you `import` an asset, you get its (virtual) filename. - // In production, they would get copied to the `build` folder. - // This loader doesn't use a "test" so it will catch all modules - // that fall through the other loaders. - { - loader: require.resolve('file-loader'), - // Exclude `js` files to keep "css" loader working as it injects - // its runtime that would otherwise be processed through "file" loader. - // Also exclude `html` and `json` extensions so they get processed - // by webpacks internal loaders. - exclude: [/\.(js|mjs|jsx|ts|tsx)$/, /\.html$/, /\.json$/], - options: { - name: 'static/media/[name].[hash:8].[ext]', - }, + // Keep the runtime chunk separated to enable long term caching + // https://twitter.com/wSokra/status/969679223278505985 + // https://github.com/facebook/create-react-app/issues/5358 + runtimeChunk: { + name: entrypoint => `runtime-${entrypoint.name}`, }, - // ** STOP ** Are you adding a new loader? - // Make sure to add the new loader(s) before the "file" loader. - ], }, - ], - }, - plugins: [ - // Generates an `index.html` file with the <script> injected. - new HtmlWebpackPlugin( - Object.assign( - {}, - { - inject: true, - template: paths.appHtml, - }, - isEnvProduction - ? { - minify: { - removeComments: true, - collapseWhitespace: true, - removeRedundantAttributes: true, - useShortDoctype: true, - removeEmptyAttributes: true, - removeStyleLinkTypeAttributes: true, - keepClosingSlash: true, - minifyJS: true, - minifyCSS: true, - minifyURLs: true, - }, - } - : undefined - ) - ), - // Inlines the webpack runtime script. This script is too small to warrant - // a network request. - // https://github.com/facebook/create-react-app/issues/5358 - isEnvProduction && - shouldInlineRuntimeChunk && - new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [/runtime-.+[.]js/]), - // Makes some environment variables available in index.html. - // The public URL is available as %PUBLIC_URL% in index.html, e.g.: - // <link rel="icon" href="%PUBLIC_URL%/favicon.ico"> - // It will be an empty string unless you specify "homepage" - // in `package.json`, in which case it will be the pathname of that URL. - new InterpolateHtmlPlugin(HtmlWebpackPlugin, { - ...env.raw, - CDN_URL: paths.cdnUrl, - CDN_MODE: 'dev', - }), - // This gives some necessary context to module not found errors, such as - // the requesting resource. - new ModuleNotFoundPlugin(paths.appPath), - // Makes some environment variables available to the JS code, for example: - // if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`. - // It is absolutely essential that NODE_ENV is set to production - // during a production build. - // Otherwise React will be compiled in the very slow development mode. - new webpack.DefinePlugin(env.stringified), - // This is necessary to emit hot updates (CSS and Fast Refresh): - isEnvDevelopment && new webpack.HotModuleReplacementPlugin(), - // Experimental hot reloading for React . - // https://github.com/facebook/react/tree/master/packages/react-refresh - isEnvDevelopment && - shouldUseReactRefresh && - new ReactRefreshWebpackPlugin({ - overlay: { - entry: webpackDevClientEntry, - // The expected exports are slightly different from what the overlay exports, - // so an interop is included here to enable feedback on module-level errors. - module: reactRefreshOverlayEntry, - // Since we ship a custom dev client and overlay integration, - // the bundled socket handling logic can be eliminated. - sockIntegration: false, - }, - }), - // Watcher doesn't work well if you mistype casing in a path so we use - // a plugin that prints an error when you attempt to do this. - // See https://github.com/facebook/create-react-app/issues/240 - isEnvDevelopment && new CaseSensitivePathsPlugin(), - // If you require a missing module and then `npm install` it, you still have - // to restart the development server for webpack to discover it. This plugin - // makes the discovery automatic so you don't have to restart. - // See https://github.com/facebook/create-react-app/issues/186 - isEnvDevelopment && - new WatchMissingNodeModulesPlugin(paths.appNodeModules), - isEnvProduction && - new MiniCssExtractPlugin({ - // Options similar to the same options in webpackOptions.output - // both options are optional - filename: 'static/css/[name].[contenthash:8].css', - chunkFilename: 'static/css/[name].[contenthash:8].chunk.css', - }), - // Generate an asset manifest file with the following content: - // - "files" key: Mapping of all asset filenames to their corresponding - // output file so that tools can pick it up without having to parse - // `index.html` - // - "entrypoints" key: Array of files which are included in `index.html`, - // can be used to reconstruct the HTML if necessary - new ManifestPlugin({ - fileName: 'asset-manifest.json', - publicPath: paths.publicUrlOrPath, - generate: (seed, files, entrypoints) => { - const manifestFiles = files.reduce((manifest, file) => { - manifest[file.name] = file.path; - return manifest; - }, seed); - const entrypointFiles = entrypoints.main.filter( - fileName => !fileName.endsWith('.map') - ); + resolve: { + // This allows you to set a fallback for where webpack should look for modules. + // We placed these paths second because we want `node_modules` to "win" + // if there are any conflicts. This matches Node resolution mechanism. + // https://github.com/facebook/create-react-app/issues/253 + modules: [ + paths.appSrc, + "node_modules", + paths.appNodeModules, + ].concat(modules.additionalModulePaths || []), + // These are the reasonable defaults supported by the Node ecosystem. + // We also include JSX as a common component filename extension to support + // some tools, although we do not recommend using it, see: + // https://github.com/facebook/create-react-app/issues/290 + // `web` extension prefixes have been added for better support + // for React Native Web. + extensions: paths.moduleFileExtensions + .map(ext => `.${ext}`) + .filter(ext => useTypeScript || !ext.includes("ts")), + alias: { + // Support React Native Web + // https://www.smashingmagazine.com/2016/08/a-glimpse-into-the-future-with-react-native-for-web/ + "react-native": "react-native-web", + // Allows for better profiling with ReactDevTools + ...(isEnvProductionProfile && { + "react-dom$": "react-dom/profiling", + "scheduler/tracing": "scheduler/tracing-profiling", + }), + ...(modules.webpackAliases || {}), + }, + plugins: [ + // Adds support for installing with Plug'n'Play, leading to faster installs and adding + // guards against forgotten dependencies and such. + PnpWebpackPlugin, + // Prevents users from importing files from outside of src/ (or node_modules/). + // This often causes confusion because we only process files within src/ with babel. + // To fix this, we prevent you from importing files out of src/ -- if you'd like to, + // please link the files into your node_modules/ and let module-resolution kick in. + // Make sure your source files are compiled, as they will not be processed in any way. + new ModuleScopePlugin(paths.appSrc, [ + paths.appPackageJson, + reactRefreshOverlayEntry, + ]), + ], + }, + resolveLoader: { + plugins: [ + // Also related to Plug'n'Play, but this time it tells webpack to load its loaders + // from the current package. + PnpWebpackPlugin.moduleLoader(module), + ], + }, + module: { + strictExportPresence: true, + rules: [ + // Disable require.ensure as it's not a standard language feature. + { parser: { requireEnsure: false } }, + { + // "oneOf" will traverse all following loaders until one will + // match the requirements. When no loader matches it will fall + // back to the "file" loader at the end of the loader list. + oneOf: [ + // TODO: Merge this config once `image/avif` is in the mime-db + // https://github.com/jshttp/mime-db + { + test: [/\.avif$/], + loader: require.resolve("url-loader"), + options: { + limit: imageInlineSizeLimit, + mimetype: "image/avif", + name: "static/media/[name].[hash:8].[ext]", + }, + }, + // "url" loader works like "file" loader except that it embeds assets + // smaller than specified limit in bytes as data URLs to avoid requests. + // A missing `test` is equivalent to a match. + { + test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/], + loader: require.resolve("url-loader"), + options: { + limit: imageInlineSizeLimit, + name: "static/media/[name].[hash:8].[ext]", + }, + }, + // Process application JS with Babel. + // The preset includes JSX, Flow, TypeScript, and some ESnext features. + { + test: /\.(js|mjs|jsx|ts|tsx)$/, + include: paths.appSrc, + loader: require.resolve("babel-loader"), + options: { + customize: require.resolve( + "babel-preset-react-app/webpack-overrides", + ), + presets: [ + [ + require.resolve( + "babel-preset-react-app", + ), + { + runtime: hasJsxRuntime + ? "automatic" + : "classic", + }, + ], + ], + + plugins: [ + [ + require.resolve( + "babel-plugin-named-asset-import", + ), + { + loaderMap: { + svg: { + ReactComponent: + "@svgr/webpack?-svgo,+titleProp,+ref![path]", + }, + }, + }, + ], + isEnvDevelopment && + shouldUseReactRefresh && + require.resolve("react-refresh/babel"), + ].filter(Boolean), + // This is a feature of `babel-loader` for webpack (not Babel itself). + // It enables caching results in ./node_modules/.cache/babel-loader/ + // directory for faster rebuilds. + cacheDirectory: true, + // See #6846 for context on why cacheCompression is disabled + cacheCompression: false, + compact: isEnvProduction, + }, + }, + // Process any JS outside of the app with Babel. + // Unlike the application JS, we only compile the standard ES features. + { + test: /\.(js|mjs)$/, + exclude: /@babel(?:\/|\\{1,2})runtime/, + loader: require.resolve("babel-loader"), + options: { + babelrc: false, + configFile: false, + compact: false, + presets: [ + [ + require.resolve( + "babel-preset-react-app/dependencies", + ), + { helpers: true }, + ], + ], + cacheDirectory: true, + // See #6846 for context on why cacheCompression is disabled + cacheCompression: false, - return { - files: manifestFiles, - entrypoints: entrypointFiles, - }; + // Babel sourcemaps are needed for debugging into node_modules + // code. Without the options below, debuggers like VSCode + // show incorrect code and set breakpoints on the wrong lines. + sourceMaps: shouldUseSourceMap, + inputSourceMap: shouldUseSourceMap, + }, + }, + // "postcss" loader applies autoprefixer to our CSS. + // "css" loader resolves paths in CSS and adds assets as dependencies. + // "style" loader turns CSS into JS modules that inject <style> tags. + // In production, we use MiniCSSExtractPlugin to extract that CSS + // to a file, but in development "style" loader enables hot editing + // of CSS. + // By default we support CSS Modules with the extension .module.css + { + test: cssRegex, + exclude: cssModuleRegex, + use: getStyleLoaders({ + importLoaders: 1, + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, + }), + // Don't consider CSS imports dead code even if the + // containing package claims to have no side effects. + // Remove this when webpack adds a warning or an error for this. + // See https://github.com/webpack/webpack/issues/6571 + sideEffects: true, + }, + // Adds support for CSS Modules (https://github.com/css-modules/css-modules) + // using the extension .module.css + { + test: cssModuleRegex, + use: getStyleLoaders({ + importLoaders: 1, + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, + modules: { + getLocalIdent: getCSSModuleLocalIdent, + }, + }), + }, + // Opt-in support for SASS (using .scss or .sass extensions). + // By default we support SASS Modules with the + // extensions .module.scss or .module.sass + { + test: sassRegex, + exclude: sassModuleRegex, + use: getStyleLoaders( + { + importLoaders: 3, + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, + }, + "sass-loader", + ), + // Don't consider CSS imports dead code even if the + // containing package claims to have no side effects. + // Remove this when webpack adds a warning or an error for this. + // See https://github.com/webpack/webpack/issues/6571 + sideEffects: true, + }, + // Adds support for CSS Modules, but using SASS + // using the extension .module.scss or .module.sass + { + test: sassModuleRegex, + use: getStyleLoaders( + { + importLoaders: 3, + sourceMap: isEnvProduction + ? shouldUseSourceMap + : isEnvDevelopment, + modules: { + getLocalIdent: getCSSModuleLocalIdent, + }, + }, + "sass-loader", + ), + }, + // "file" loader makes sure those assets get served by WebpackDevServer. + // When you `import` an asset, you get its (virtual) filename. + // In production, they would get copied to the `build` folder. + // This loader doesn't use a "test" so it will catch all modules + // that fall through the other loaders. + { + loader: require.resolve("file-loader"), + // Exclude `js` files to keep "css" loader working as it injects + // its runtime that would otherwise be processed through "file" loader. + // Also exclude `html` and `json` extensions so they get processed + // by webpacks internal loaders. + exclude: [ + /\.(js|mjs|jsx|ts|tsx)$/, + /\.html$/, + /\.json$/, + ], + options: { + name: "static/media/[name].[hash:8].[ext]", + }, + }, + // ** STOP ** Are you adding a new loader? + // Make sure to add the new loader(s) before the "file" loader. + ], + }, + ], }, - }), - // Moment.js is an extremely popular library that bundles large locale files - // by default due to how webpack interprets its code. This is a practical - // solution that requires the user to opt into importing specific locales. - // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack - // You can remove this if you don't use Moment.js: - new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), - // Generate a service worker script that will precache, and keep up to date, - // the HTML & assets that are part of the webpack build. - isEnvProduction && - fs.existsSync(swSrc) && - new WorkboxWebpackPlugin.InjectManifest({ - swSrc, - dontCacheBustURLsMatching: /\.[0-9a-f]{8}\./, - exclude: [/\.map$/, /asset-manifest\.json$/, /LICENSE/], - // Bump up the default maximum size (2mb) that's precached, - // to make lazy-loading failure scenarios less likely. - // See https://github.com/cra-template/pwa/issues/13#issuecomment-722667270 - maximumFileSizeToCacheInBytes: 5 * 1024 * 1024, - }), - // TypeScript type checking - useTypeScript && - new ForkTsCheckerWebpackPlugin({ - typescript: resolve.sync('typescript', { - basedir: paths.appNodeModules, - }), - async: isEnvDevelopment, - checkSyntacticErrors: true, - resolveModuleNameModule: process.versions.pnp - ? `${__dirname}/pnpTs.js` - : undefined, - resolveTypeReferenceDirectiveModule: process.versions.pnp - ? `${__dirname}/pnpTs.js` - : undefined, - tsconfig: paths.appTsConfig, - reportFiles: [ - // This one is specifically to match during CI tests, - // as micromatch doesn't match - // '../cra-template-typescript/template/src/App.tsx' - // otherwise. - '../**/src/**/*.{ts,tsx}', - '**/src/**/*.{ts,tsx}', - '!**/src/**/__tests__/**', - '!**/src/**/?(*.)(spec|test).*', - '!**/src/setupProxy.*', - '!**/src/setupTests.*', - ], - silent: true, - // The formatter is invoked directly in WebpackDevServerUtils during development - formatter: isEnvProduction ? typescriptFormatter : undefined, - }), - new ESLintPlugin({ - // Plugin options - extensions: ['js', 'mjs', 'jsx', 'ts', 'tsx'], - formatter: require.resolve('react-dev-utils/eslintFormatter'), - eslintPath: require.resolve('eslint'), - context: paths.appSrc, - cache: true, - // ESLint class options - cwd: paths.appPath, - resolvePluginsRelativeTo: __dirname, - baseConfig: { - extends: [require.resolve('eslint-config-react-app/base')], - rules: { - ...(!hasJsxRuntime && { - 'react/react-in-jsx-scope': 'error', + plugins: [ + // Generates an `index.html` file with the <script> injected. + new HtmlWebpackPlugin( + Object.assign( + {}, + { + inject: true, + template: paths.appHtml, + }, + isEnvProduction + ? { + minify: { + removeComments: true, + collapseWhitespace: true, + removeRedundantAttributes: true, + useShortDoctype: true, + removeEmptyAttributes: true, + removeStyleLinkTypeAttributes: true, + keepClosingSlash: true, + minifyJS: true, + minifyCSS: true, + minifyURLs: true, + }, + } + : undefined, + ), + ), + // Inlines the webpack runtime script. This script is too small to warrant + // a network request. + // https://github.com/facebook/create-react-app/issues/5358 + isEnvProduction && + shouldInlineRuntimeChunk && + new InlineChunkHtmlPlugin(HtmlWebpackPlugin, [ + /runtime-.+[.]js/, + ]), + // Makes some environment variables available in index.html. + // The public URL is available as %PUBLIC_URL% in index.html, e.g.: + // <link rel="icon" href="%PUBLIC_URL%/favicon.ico"> + // It will be an empty string unless you specify "homepage" + // in `package.json`, in which case it will be the pathname of that URL. + new InterpolateHtmlPlugin(HtmlWebpackPlugin, { + ...env.raw, + CDN_URL: paths.cdnUrl, + CDN_MODE: "dev", + }), + // This gives some necessary context to module not found errors, such as + // the requesting resource. + new ModuleNotFoundPlugin(paths.appPath), + // Makes some environment variables available to the JS code, for example: + // if (process.env.NODE_ENV === 'production') { ... }. See `./env.js`. + // It is absolutely essential that NODE_ENV is set to production + // during a production build. + // Otherwise React will be compiled in the very slow development mode. + new webpack.DefinePlugin(env.stringified), + // This is necessary to emit hot updates (CSS and Fast Refresh): + isEnvDevelopment && new webpack.HotModuleReplacementPlugin(), + // Experimental hot reloading for React . + // https://github.com/facebook/react/tree/master/packages/react-refresh + isEnvDevelopment && + shouldUseReactRefresh && + new ReactRefreshWebpackPlugin({ + overlay: { + entry: webpackDevClientEntry, + // The expected exports are slightly different from what the overlay exports, + // so an interop is included here to enable feedback on module-level errors. + module: reactRefreshOverlayEntry, + // Since we ship a custom dev client and overlay integration, + // the bundled socket handling logic can be eliminated. + sockIntegration: false, + }, + }), + // Watcher doesn't work well if you mistype casing in a path so we use + // a plugin that prints an error when you attempt to do this. + // See https://github.com/facebook/create-react-app/issues/240 + isEnvDevelopment && new CaseSensitivePathsPlugin(), + // If you require a missing module and then `npm install` it, you still have + // to restart the development server for webpack to discover it. This plugin + // makes the discovery automatic so you don't have to restart. + // See https://github.com/facebook/create-react-app/issues/186 + isEnvDevelopment && + new WatchMissingNodeModulesPlugin(paths.appNodeModules), + isEnvProduction && + new MiniCssExtractPlugin({ + // Options similar to the same options in webpackOptions.output + // both options are optional + filename: "static/css/[name].[contenthash:8].css", + chunkFilename: + "static/css/[name].[contenthash:8].chunk.css", + }), + // Generate an asset manifest file with the following content: + // - "files" key: Mapping of all asset filenames to their corresponding + // output file so that tools can pick it up without having to parse + // `index.html` + // - "entrypoints" key: Array of files which are included in `index.html`, + // can be used to reconstruct the HTML if necessary + new ManifestPlugin({ + fileName: "asset-manifest.json", + publicPath: paths.publicUrlOrPath, + generate: (seed, files, entrypoints) => { + const manifestFiles = files.reduce((manifest, file) => { + manifest[file.name] = file.path; + return manifest; + }, seed); + const entrypointFiles = entrypoints.main.filter( + fileName => !fileName.endsWith(".map"), + ); + + return { + files: manifestFiles, + entrypoints: entrypointFiles, + }; + }, + }), + // Moment.js is an extremely popular library that bundles large locale files + // by default due to how webpack interprets its code. This is a practical + // solution that requires the user to opt into importing specific locales. + // https://github.com/jmblog/how-to-optimize-momentjs-with-webpack + // You can remove this if you don't use Moment.js: + new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/), + // Generate a service worker script that will precache, and keep up to date, + // the HTML & assets that are part of the webpack build. + isEnvProduction && + fs.existsSync(swSrc) && + new WorkboxWebpackPlugin.InjectManifest({ + swSrc, + dontCacheBustURLsMatching: /\.[0-9a-f]{8}\./, + exclude: [/\.map$/, /asset-manifest\.json$/, /LICENSE/], + // Bump up the default maximum size (2mb) that's precached, + // to make lazy-loading failure scenarios less likely. + // See https://github.com/cra-template/pwa/issues/13#issuecomment-722667270 + maximumFileSizeToCacheInBytes: 5 * 1024 * 1024, + }), + // TypeScript type checking + useTypeScript && + new ForkTsCheckerWebpackPlugin({ + typescript: resolve.sync("typescript", { + basedir: paths.appNodeModules, + }), + async: isEnvDevelopment, + checkSyntacticErrors: true, + resolveModuleNameModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, + resolveTypeReferenceDirectiveModule: process.versions.pnp + ? `${__dirname}/pnpTs.js` + : undefined, + tsconfig: paths.appTsConfig, + reportFiles: [ + // This one is specifically to match during CI tests, + // as micromatch doesn't match + // '../cra-template-typescript/template/src/App.tsx' + // otherwise. + "../**/src/**/*.{ts,tsx}", + "**/src/**/*.{ts,tsx}", + "!**/src/**/__tests__/**", + "!**/src/**/?(*.)(spec|test).*", + "!**/src/setupProxy.*", + "!**/src/setupTests.*", + ], + silent: true, + // The formatter is invoked directly in WebpackDevServerUtils during development + formatter: isEnvProduction + ? typescriptFormatter + : undefined, + }), + new ESLintPlugin({ + // Plugin options + extensions: ["js", "mjs", "jsx", "ts", "tsx"], + formatter: require.resolve("react-dev-utils/eslintFormatter"), + eslintPath: require.resolve("eslint"), + context: paths.appSrc, + cache: true, + // ESLint class options + cwd: paths.appPath, + resolvePluginsRelativeTo: __dirname, + baseConfig: { + extends: [require.resolve("eslint-config-react-app/base")], + rules: { + ...(!hasJsxRuntime && { + "react/react-in-jsx-scope": "error", + }), + }, + }, }), - }, + ].filter(Boolean), + // Some libraries import Node modules but don't use them in the browser. + // Tell webpack to provide empty mocks for them so importing them works. + node: { + module: "empty", + dgram: "empty", + dns: "mock", + fs: "empty", + http2: "empty", + net: "empty", + tls: "empty", + child_process: "empty", }, - }), - ].filter(Boolean), - // Some libraries import Node modules but don't use them in the browser. - // Tell webpack to provide empty mocks for them so importing them works. - node: { - module: 'empty', - dgram: 'empty', - dns: 'mock', - fs: 'empty', - http2: 'empty', - net: 'empty', - tls: 'empty', - child_process: 'empty', - }, - // Turn off performance processing because we utilize - // our own hints via the FileSizeReporter - performance: false, - }; -}; \ No newline at end of file + // Turn off performance processing because we utilize + // our own hints via the FileSizeReporter + performance: false, + }; +}; diff --git a/client/config/webpack.config.js b/client/config/webpack.config.js index d2567362..7b3ee7f6 100644 --- a/client/config/webpack.config.js +++ b/client/config/webpack.config.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ const autoprefixer = require("autoprefixer"); const fs = require("fs"); diff --git a/client/config/webpackDevServer.config.js b/client/config/webpackDevServer.config.js index f9241113..071fa004 100644 --- a/client/config/webpackDevServer.config.js +++ b/client/config/webpackDevServer.config.js @@ -1,27 +1,17 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ -const fs = require('fs'); -const errorOverlayMiddleware = require('react-dev-utils/errorOverlayMiddleware'); -const evalSourceMapMiddleware = require('react-dev-utils/evalSourceMapMiddleware'); -const noopServiceWorkerMiddleware = require('react-dev-utils/noopServiceWorkerMiddleware'); -const ignoredFiles = require('react-dev-utils/ignoredFiles'); -const redirectServedPath = require('react-dev-utils/redirectServedPathMiddleware'); +const fs = require("fs"); +const errorOverlayMiddleware = require("react-dev-utils/errorOverlayMiddleware"); +const evalSourceMapMiddleware = require("react-dev-utils/evalSourceMapMiddleware"); +const noopServiceWorkerMiddleware = require("react-dev-utils/noopServiceWorkerMiddleware"); +const ignoredFiles = require("react-dev-utils/ignoredFiles"); +const redirectServedPath = require("react-dev-utils/redirectServedPathMiddleware"); const path = require("path"); -const paths = require('./paths'); -const getHttpsConfig = require('./getHttpsConfig'); - +const paths = require("./paths"); +const getHttpsConfig = require("./getHttpsConfig"); const protocol = process.env.HTTPS === "true" ? "https" : "http"; const host = process.env.HOST || "0.0.0.0"; @@ -31,116 +21,116 @@ const sockPath = process.env.WDS_SOCKET_PATH; // default: '/sockjs-node' const sockPort = process.env.WDS_SOCKET_PORT; module.exports = function (proxy, allowedHost) { - return { - // WebpackDevServer 2.4.3 introduced a security fix that prevents remote - // websites from potentially accessing local content through DNS rebinding: - // https://github.com/webpack/webpack-dev-server/issues/887 - // https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a - // However, it made several existing use cases such as development in cloud - // environment or subdomains in development significantly more complicated: - // https://github.com/facebook/create-react-app/issues/2271 - // https://github.com/facebook/create-react-app/issues/2233 - // While we're investigating better solutions, for now we will take a - // compromise. Since our WDS configuration only serves files in the `public` - // folder we won't consider accessing them a vulnerability. However, if you - // use the `proxy` feature, it gets more dangerous because it can expose - // remote code execution vulnerabilities in backends like Django and Rails. - // So we will disable the host check normally, but enable it if you have - // specified the `proxy` setting. Finally, we let you override it if you - // really know what you're doing with a special environment variable. - disableHostCheck: - !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === 'true', - // Enable gzip compression of generated files. - compress: true, - // Silence WebpackDevServer's own logs since they're generally not useful. - // It will still show compile warnings and errors with this setting. - clientLogLevel: 'silent', - // By default WebpackDevServer serves physical files from current directory - // in addition to all the virtual build products that it serves from memory. - // This is confusing because those files won’t automatically be available in - // production build folder unless we copy them. However, copying the whole - // project directory is dangerous because we may expose sensitive files. - // Instead, we establish a convention that only files in `public` directory - // get served. Our build script will copy `public` into the `build` folder. - // In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%: - // <link rel="icon" href="%PUBLIC_URL%/favicon.ico"> - // In JavaScript code, you can access it with `process.env.PUBLIC_URL`. - // Note that we only recommend to use `public` folder as an escape hatch - // for files like `favicon.ico`, `manifest.json`, and libraries that are - // for some reason broken when imported through webpack. If you just want to - // use an image, put it in `src` and `import` it from JavaScript instead. - contentBase: paths.appPublic, - contentBasePublicPath: paths.publicUrlOrPath, - // By default files from `contentBase` will not trigger a page reload. - watchContentBase: true, - // Enable hot reloading server. It will provide WDS_SOCKET_PATH endpoint - // for the WebpackDevServer client so it can learn when the files were - // updated. The WebpackDevServer client is included as an entry point - // in the webpack development configuration. Note that only changes - // to CSS are currently hot reloaded. JS changes will refresh the browser. - hot: true, - // Use 'ws' instead of 'sockjs-node' on server since we're using native - // websockets in `webpackHotDevClient`. - transportMode: 'ws', - // Prevent a WS client from getting injected as we're already including - // `webpackHotDevClient`. - injectClient: false, - // Enable custom sockjs pathname for websocket connection to hot reloading server. - // Enable custom sockjs hostname, pathname and port for websocket connection - // to hot reloading server. - sockHost, - sockPath, - sockPort, - // It is important to tell WebpackDevServer to use the same "publicPath" path as - // we specified in the webpack config. When homepage is '.', default to serving - // from the root. - // remove last slash so user can land on `/test` instead of `/test/` - publicPath: paths.publicUrlOrPath.slice(0, -1), - // WebpackDevServer is noisy by default so we emit custom message instead - // by listening to the compiler events with `compiler.hooks[...].tap` calls above. - quiet: true, - // Reportedly, this avoids CPU overload on some systems. - // https://github.com/facebook/create-react-app/issues/293 - // src/node_modules is not ignored to support absolute imports - // https://github.com/facebook/create-react-app/issues/1065 - watchOptions: { - ignored: ignoredFiles(paths.appSrc), - }, - https: getHttpsConfig(), - host, - overlay: false, - historyApiFallback: { - // Paths with dots should still use the history fallback. - // See https://github.com/facebook/create-react-app/issues/387. - disableDotRule: true, - index: paths.publicUrlOrPath, - }, - public: allowedHost, - // `proxy` is run between `before` and `after` `webpack-dev-server` hooks - proxy, - before(app, server) { - // Keep `evalSourceMapMiddleware` and `errorOverlayMiddleware` - // middlewares before `redirectServedPath` otherwise will not have any effect - // This lets us fetch source contents from webpack for the error overlay - app.use(evalSourceMapMiddleware(server)); - // This lets us open files from the runtime error overlay. - app.use(errorOverlayMiddleware()); + return { + // WebpackDevServer 2.4.3 introduced a security fix that prevents remote + // websites from potentially accessing local content through DNS rebinding: + // https://github.com/webpack/webpack-dev-server/issues/887 + // https://medium.com/webpack/webpack-dev-server-middleware-security-issues-1489d950874a + // However, it made several existing use cases such as development in cloud + // environment or subdomains in development significantly more complicated: + // https://github.com/facebook/create-react-app/issues/2271 + // https://github.com/facebook/create-react-app/issues/2233 + // While we're investigating better solutions, for now we will take a + // compromise. Since our WDS configuration only serves files in the `public` + // folder we won't consider accessing them a vulnerability. However, if you + // use the `proxy` feature, it gets more dangerous because it can expose + // remote code execution vulnerabilities in backends like Django and Rails. + // So we will disable the host check normally, but enable it if you have + // specified the `proxy` setting. Finally, we let you override it if you + // really know what you're doing with a special environment variable. + disableHostCheck: + !proxy || process.env.DANGEROUSLY_DISABLE_HOST_CHECK === "true", + // Enable gzip compression of generated files. + compress: true, + // Silence WebpackDevServer's own logs since they're generally not useful. + // It will still show compile warnings and errors with this setting. + clientLogLevel: "silent", + // By default WebpackDevServer serves physical files from current directory + // in addition to all the virtual build products that it serves from memory. + // This is confusing because those files won’t automatically be available in + // production build folder unless we copy them. However, copying the whole + // project directory is dangerous because we may expose sensitive files. + // Instead, we establish a convention that only files in `public` directory + // get served. Our build script will copy `public` into the `build` folder. + // In `index.html`, you can get URL of `public` folder with %PUBLIC_URL%: + // <link rel="icon" href="%PUBLIC_URL%/favicon.ico"> + // In JavaScript code, you can access it with `process.env.PUBLIC_URL`. + // Note that we only recommend to use `public` folder as an escape hatch + // for files like `favicon.ico`, `manifest.json`, and libraries that are + // for some reason broken when imported through webpack. If you just want to + // use an image, put it in `src` and `import` it from JavaScript instead. + contentBase: paths.appPublic, + contentBasePublicPath: paths.publicUrlOrPath, + // By default files from `contentBase` will not trigger a page reload. + watchContentBase: true, + // Enable hot reloading server. It will provide WDS_SOCKET_PATH endpoint + // for the WebpackDevServer client so it can learn when the files were + // updated. The WebpackDevServer client is included as an entry point + // in the webpack development configuration. Note that only changes + // to CSS are currently hot reloaded. JS changes will refresh the browser. + hot: true, + // Use 'ws' instead of 'sockjs-node' on server since we're using native + // websockets in `webpackHotDevClient`. + transportMode: "ws", + // Prevent a WS client from getting injected as we're already including + // `webpackHotDevClient`. + injectClient: false, + // Enable custom sockjs pathname for websocket connection to hot reloading server. + // Enable custom sockjs hostname, pathname and port for websocket connection + // to hot reloading server. + sockHost, + sockPath, + sockPort, + // It is important to tell WebpackDevServer to use the same "publicPath" path as + // we specified in the webpack config. When homepage is '.', default to serving + // from the root. + // remove last slash so user can land on `/test` instead of `/test/` + publicPath: paths.publicUrlOrPath.slice(0, -1), + // WebpackDevServer is noisy by default so we emit custom message instead + // by listening to the compiler events with `compiler.hooks[...].tap` calls above. + quiet: true, + // Reportedly, this avoids CPU overload on some systems. + // https://github.com/facebook/create-react-app/issues/293 + // src/node_modules is not ignored to support absolute imports + // https://github.com/facebook/create-react-app/issues/1065 + watchOptions: { + ignored: ignoredFiles(paths.appSrc), + }, + https: getHttpsConfig(), + host, + overlay: false, + historyApiFallback: { + // Paths with dots should still use the history fallback. + // See https://github.com/facebook/create-react-app/issues/387. + disableDotRule: true, + index: paths.publicUrlOrPath, + }, + public: allowedHost, + // `proxy` is run between `before` and `after` `webpack-dev-server` hooks + proxy, + before(app, server) { + // Keep `evalSourceMapMiddleware` and `errorOverlayMiddleware` + // middlewares before `redirectServedPath` otherwise will not have any effect + // This lets us fetch source contents from webpack for the error overlay + app.use(evalSourceMapMiddleware(server)); + // This lets us open files from the runtime error overlay. + app.use(errorOverlayMiddleware()); - if (fs.existsSync(paths.proxySetup)) { - // This registers user provided middleware for proxy reasons - require(paths.proxySetup)(app); - } - }, - after(app) { - // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match - app.use(redirectServedPath(paths.publicUrlOrPath)); + if (fs.existsSync(paths.proxySetup)) { + // This registers user provided middleware for proxy reasons + require(paths.proxySetup)(app); + } + }, + after(app) { + // Redirect to `PUBLIC_URL` or `homepage` from `package.json` if url not match + app.use(redirectServedPath(paths.publicUrlOrPath)); - // This service worker file is effectively a 'no-op' that will reset any - // previous service worker registered for the same host:port combination. - // We do this in development to avoid hitting the production cache if - // it used the same host and port. - // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432 - app.use(noopServiceWorkerMiddleware(paths.publicUrlOrPath)); - }, - }; + // This service worker file is effectively a 'no-op' that will reset any + // previous service worker registered for the same host:port combination. + // We do this in development to avoid hitting the production cache if + // it used the same host and port. + // https://github.com/facebook/create-react-app/issues/2272#issuecomment-302832432 + app.use(noopServiceWorkerMiddleware(paths.publicUrlOrPath)); + }, + }; }; diff --git a/client/public/3rdpartystatic/cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/theme/neo.css b/client/public/3rdpartystatic/cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/theme/neo.css index b28d5c65..a78ea17b 100644 --- a/client/public/3rdpartystatic/cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/theme/neo.css +++ b/client/public/3rdpartystatic/cdnjs.cloudflare.com/ajax/libs/codemirror/5.25.2/theme/neo.css @@ -3,41 +3,60 @@ /* Color scheme */ .cm-s-neo.CodeMirror { - background-color:#ffffff; - color:#2e383c; - line-height:1.4375; + background-color: #ffffff; + color: #2e383c; + line-height: 1.4375; +} +.cm-s-neo .cm-comment { + color: #75787b; +} +.cm-s-neo .cm-keyword, +.cm-s-neo .cm-property { + color: #1d75b3; +} +.cm-s-neo .cm-atom, +.cm-s-neo .cm-number { + color: #75438a; +} +.cm-s-neo .cm-node, +.cm-s-neo .cm-tag { + color: #9c3328; +} +.cm-s-neo .cm-string { + color: #b35e14; +} +.cm-s-neo .cm-variable, +.cm-s-neo .cm-qualifier { + color: #047d65; } -.cm-s-neo .cm-comment { color:#75787b; } -.cm-s-neo .cm-keyword, .cm-s-neo .cm-property { color:#1d75b3; } -.cm-s-neo .cm-atom,.cm-s-neo .cm-number { color:#75438a; } -.cm-s-neo .cm-node,.cm-s-neo .cm-tag { color:#9c3328; } -.cm-s-neo .cm-string { color:#b35e14; } -.cm-s-neo .cm-variable,.cm-s-neo .cm-qualifier { color:#047d65; } - /* Editor styling */ .cm-s-neo pre { - padding:0; + padding: 0; } .cm-s-neo .CodeMirror-gutters { - border:none; - border-right:10px solid transparent; - background-color:transparent; + border: none; + border-right: 10px solid transparent; + background-color: transparent; } .cm-s-neo .CodeMirror-linenumber { - padding:0; - color:#e0e2e5; + padding: 0; + color: #e0e2e5; } -.cm-s-neo .CodeMirror-guttermarker { color: #1d75b3; } -.cm-s-neo .CodeMirror-guttermarker-subtle { color: #e0e2e5; } +.cm-s-neo .CodeMirror-guttermarker { + color: #1d75b3; +} +.cm-s-neo .CodeMirror-guttermarker-subtle { + color: #e0e2e5; +} .cm-s-neo .CodeMirror-cursor { - width: auto; - border: 0; - background: rgba(155,157,162,0.37); - z-index: 1; + width: auto; + border: 0; + background: rgba(155, 157, 162, 0.37); + z-index: 1; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.css b/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.css index ee906a81..5cce13c4 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.css +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.css @@ -5,2333 +5,2340 @@ /* FONT PATH * -------------------------- */ @font-face { - font-family: 'FontAwesome'; - src: url('../fonts/fontawesome-webfont.eot?v=4.7.0'); - src: url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'), url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'), url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'), url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'), url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg'); - font-weight: normal; - font-style: normal; + font-family: "FontAwesome"; + src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); + src: + url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") + format("embedded-opentype"), + url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), + url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), + url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), + url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") + format("svg"); + font-weight: normal; + font-style: normal; } .fa { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } /* makes the font 33% larger relative to the icon container */ .fa-lg { - font-size: 1.33333333em; - line-height: 0.75em; - vertical-align: -15%; + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; } .fa-2x { - font-size: 2em; + font-size: 2em; } .fa-3x { - font-size: 3em; + font-size: 3em; } .fa-4x { - font-size: 4em; + font-size: 4em; } .fa-5x { - font-size: 5em; + font-size: 5em; } .fa-fw { - width: 1.28571429em; - text-align: center; + width: 1.28571429em; + text-align: center; } .fa-ul { - padding-left: 0; - margin-left: 2.14285714em; - list-style-type: none; + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; } .fa-ul > li { - position: relative; + position: relative; } .fa-li { - position: absolute; - left: -2.14285714em; - width: 2.14285714em; - top: 0.14285714em; - text-align: center; + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; } .fa-li.fa-lg { - left: -1.85714286em; + left: -1.85714286em; } .fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eeeeee; - border-radius: .1em; + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eeeeee; + border-radius: 0.1em; } .fa-pull-left { - float: left; + float: left; } .fa-pull-right { - float: right; + float: right; } .fa.fa-pull-left { - margin-right: .3em; + margin-right: 0.3em; } .fa.fa-pull-right { - margin-left: .3em; + margin-left: 0.3em; } /* Deprecated as of 4.4.0 */ .pull-right { - float: right; + float: right; } .pull-left { - float: left; + float: left; } .fa.pull-left { - margin-right: .3em; + margin-right: 0.3em; } .fa.pull-right { - margin-left: .3em; + margin-left: 0.3em; } .fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } .fa-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } @-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } @keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } .fa-rotate-90 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); } .fa-rotate-180 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); } .fa-rotate-270 { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); } .fa-flip-horizontal { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); } .fa-flip-vertical { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); } :root .fa-rotate-90, :root .fa-rotate-180, :root .fa-rotate-270, :root .fa-flip-horizontal, :root .fa-flip-vertical { - filter: none; + filter: none; } .fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; } .fa-stack-1x, .fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; + position: absolute; + left: 0; + width: 100%; + text-align: center; } .fa-stack-1x { - line-height: inherit; + line-height: inherit; } .fa-stack-2x { - font-size: 2em; + font-size: 2em; } .fa-inverse { - color: #ffffff; + color: #ffffff; } /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen readers do not read off random characters that represent icons */ .fa-glass:before { - content: "\f000"; + content: "\f000"; } .fa-music:before { - content: "\f001"; + content: "\f001"; } .fa-search:before { - content: "\f002"; + content: "\f002"; } .fa-envelope-o:before { - content: "\f003"; + content: "\f003"; } .fa-heart:before { - content: "\f004"; + content: "\f004"; } .fa-star:before { - content: "\f005"; + content: "\f005"; } .fa-star-o:before { - content: "\f006"; + content: "\f006"; } .fa-user:before { - content: "\f007"; + content: "\f007"; } .fa-film:before { - content: "\f008"; + content: "\f008"; } .fa-th-large:before { - content: "\f009"; + content: "\f009"; } .fa-th:before { - content: "\f00a"; + content: "\f00a"; } .fa-th-list:before { - content: "\f00b"; + content: "\f00b"; } .fa-check:before { - content: "\f00c"; + content: "\f00c"; } .fa-remove:before, .fa-close:before, .fa-times:before { - content: "\f00d"; + content: "\f00d"; } .fa-search-plus:before { - content: "\f00e"; + content: "\f00e"; } .fa-search-minus:before { - content: "\f010"; + content: "\f010"; } .fa-power-off:before { - content: "\f011"; + content: "\f011"; } .fa-signal:before { - content: "\f012"; + content: "\f012"; } .fa-gear:before, .fa-cog:before { - content: "\f013"; + content: "\f013"; } .fa-trash-o:before { - content: "\f014"; + content: "\f014"; } .fa-home:before { - content: "\f015"; + content: "\f015"; } .fa-file-o:before { - content: "\f016"; + content: "\f016"; } .fa-clock-o:before { - content: "\f017"; + content: "\f017"; } .fa-road:before { - content: "\f018"; + content: "\f018"; } .fa-download:before { - content: "\f019"; + content: "\f019"; } .fa-arrow-circle-o-down:before { - content: "\f01a"; + content: "\f01a"; } .fa-arrow-circle-o-up:before { - content: "\f01b"; + content: "\f01b"; } .fa-inbox:before { - content: "\f01c"; + content: "\f01c"; } .fa-play-circle-o:before { - content: "\f01d"; + content: "\f01d"; } .fa-rotate-right:before, .fa-repeat:before { - content: "\f01e"; + content: "\f01e"; } .fa-refresh:before { - content: "\f021"; + content: "\f021"; } .fa-list-alt:before { - content: "\f022"; + content: "\f022"; } .fa-lock:before { - content: "\f023"; + content: "\f023"; } .fa-flag:before { - content: "\f024"; + content: "\f024"; } .fa-headphones:before { - content: "\f025"; + content: "\f025"; } .fa-volume-off:before { - content: "\f026"; + content: "\f026"; } .fa-volume-down:before { - content: "\f027"; + content: "\f027"; } .fa-volume-up:before { - content: "\f028"; + content: "\f028"; } .fa-qrcode:before { - content: "\f029"; + content: "\f029"; } .fa-barcode:before { - content: "\f02a"; + content: "\f02a"; } .fa-tag:before { - content: "\f02b"; + content: "\f02b"; } .fa-tags:before { - content: "\f02c"; + content: "\f02c"; } .fa-book:before { - content: "\f02d"; + content: "\f02d"; } .fa-bookmark:before { - content: "\f02e"; + content: "\f02e"; } .fa-print:before { - content: "\f02f"; + content: "\f02f"; } .fa-camera:before { - content: "\f030"; + content: "\f030"; } .fa-font:before { - content: "\f031"; + content: "\f031"; } .fa-bold:before { - content: "\f032"; + content: "\f032"; } .fa-italic:before { - content: "\f033"; + content: "\f033"; } .fa-text-height:before { - content: "\f034"; + content: "\f034"; } .fa-text-width:before { - content: "\f035"; + content: "\f035"; } .fa-align-left:before { - content: "\f036"; + content: "\f036"; } .fa-align-center:before { - content: "\f037"; + content: "\f037"; } .fa-align-right:before { - content: "\f038"; + content: "\f038"; } .fa-align-justify:before { - content: "\f039"; + content: "\f039"; } .fa-list:before { - content: "\f03a"; + content: "\f03a"; } .fa-dedent:before, .fa-outdent:before { - content: "\f03b"; + content: "\f03b"; } .fa-indent:before { - content: "\f03c"; + content: "\f03c"; } .fa-video-camera:before { - content: "\f03d"; + content: "\f03d"; } .fa-photo:before, .fa-image:before, .fa-picture-o:before { - content: "\f03e"; + content: "\f03e"; } .fa-pencil:before { - content: "\f040"; + content: "\f040"; } .fa-map-marker:before { - content: "\f041"; + content: "\f041"; } .fa-adjust:before { - content: "\f042"; + content: "\f042"; } .fa-tint:before { - content: "\f043"; + content: "\f043"; } .fa-edit:before, .fa-pencil-square-o:before { - content: "\f044"; + content: "\f044"; } .fa-share-square-o:before { - content: "\f045"; + content: "\f045"; } .fa-check-square-o:before { - content: "\f046"; + content: "\f046"; } .fa-arrows:before { - content: "\f047"; + content: "\f047"; } .fa-step-backward:before { - content: "\f048"; + content: "\f048"; } .fa-fast-backward:before { - content: "\f049"; + content: "\f049"; } .fa-backward:before { - content: "\f04a"; + content: "\f04a"; } .fa-play:before { - content: "\f04b"; + content: "\f04b"; } .fa-pause:before { - content: "\f04c"; + content: "\f04c"; } .fa-stop:before { - content: "\f04d"; + content: "\f04d"; } .fa-forward:before { - content: "\f04e"; + content: "\f04e"; } .fa-fast-forward:before { - content: "\f050"; + content: "\f050"; } .fa-step-forward:before { - content: "\f051"; + content: "\f051"; } .fa-eject:before { - content: "\f052"; + content: "\f052"; } .fa-chevron-left:before { - content: "\f053"; + content: "\f053"; } .fa-chevron-right:before { - content: "\f054"; + content: "\f054"; } .fa-plus-circle:before { - content: "\f055"; + content: "\f055"; } .fa-minus-circle:before { - content: "\f056"; + content: "\f056"; } .fa-times-circle:before { - content: "\f057"; + content: "\f057"; } .fa-check-circle:before { - content: "\f058"; + content: "\f058"; } .fa-question-circle:before { - content: "\f059"; + content: "\f059"; } .fa-info-circle:before { - content: "\f05a"; + content: "\f05a"; } .fa-crosshairs:before { - content: "\f05b"; + content: "\f05b"; } .fa-times-circle-o:before { - content: "\f05c"; + content: "\f05c"; } .fa-check-circle-o:before { - content: "\f05d"; + content: "\f05d"; } .fa-ban:before { - content: "\f05e"; + content: "\f05e"; } .fa-arrow-left:before { - content: "\f060"; + content: "\f060"; } .fa-arrow-right:before { - content: "\f061"; + content: "\f061"; } .fa-arrow-up:before { - content: "\f062"; + content: "\f062"; } .fa-arrow-down:before { - content: "\f063"; + content: "\f063"; } .fa-mail-forward:before, .fa-share:before { - content: "\f064"; + content: "\f064"; } .fa-expand:before { - content: "\f065"; + content: "\f065"; } .fa-compress:before { - content: "\f066"; + content: "\f066"; } .fa-plus:before { - content: "\f067"; + content: "\f067"; } .fa-minus:before { - content: "\f068"; + content: "\f068"; } .fa-asterisk:before { - content: "\f069"; + content: "\f069"; } .fa-exclamation-circle:before { - content: "\f06a"; + content: "\f06a"; } .fa-gift:before { - content: "\f06b"; + content: "\f06b"; } .fa-leaf:before { - content: "\f06c"; + content: "\f06c"; } .fa-fire:before { - content: "\f06d"; + content: "\f06d"; } .fa-eye:before { - content: "\f06e"; + content: "\f06e"; } .fa-eye-slash:before { - content: "\f070"; + content: "\f070"; } .fa-warning:before, .fa-exclamation-triangle:before { - content: "\f071"; + content: "\f071"; } .fa-plane:before { - content: "\f072"; + content: "\f072"; } .fa-calendar:before { - content: "\f073"; + content: "\f073"; } .fa-random:before { - content: "\f074"; + content: "\f074"; } .fa-comment:before { - content: "\f075"; + content: "\f075"; } .fa-magnet:before { - content: "\f076"; + content: "\f076"; } .fa-chevron-up:before { - content: "\f077"; + content: "\f077"; } .fa-chevron-down:before { - content: "\f078"; + content: "\f078"; } .fa-retweet:before { - content: "\f079"; + content: "\f079"; } .fa-shopping-cart:before { - content: "\f07a"; + content: "\f07a"; } .fa-folder:before { - content: "\f07b"; + content: "\f07b"; } .fa-folder-open:before { - content: "\f07c"; + content: "\f07c"; } .fa-arrows-v:before { - content: "\f07d"; + content: "\f07d"; } .fa-arrows-h:before { - content: "\f07e"; + content: "\f07e"; } .fa-bar-chart-o:before, .fa-bar-chart:before { - content: "\f080"; + content: "\f080"; } .fa-twitter-square:before { - content: "\f081"; + content: "\f081"; } .fa-facebook-square:before { - content: "\f082"; + content: "\f082"; } .fa-camera-retro:before { - content: "\f083"; + content: "\f083"; } .fa-key:before { - content: "\f084"; + content: "\f084"; } .fa-gears:before, .fa-cogs:before { - content: "\f085"; + content: "\f085"; } .fa-comments:before { - content: "\f086"; + content: "\f086"; } .fa-thumbs-o-up:before { - content: "\f087"; + content: "\f087"; } .fa-thumbs-o-down:before { - content: "\f088"; + content: "\f088"; } .fa-star-half:before { - content: "\f089"; + content: "\f089"; } .fa-heart-o:before { - content: "\f08a"; + content: "\f08a"; } .fa-sign-out:before { - content: "\f08b"; + content: "\f08b"; } .fa-linkedin-square:before { - content: "\f08c"; + content: "\f08c"; } .fa-thumb-tack:before { - content: "\f08d"; + content: "\f08d"; } .fa-external-link:before { - content: "\f08e"; + content: "\f08e"; } .fa-sign-in:before { - content: "\f090"; + content: "\f090"; } .fa-trophy:before { - content: "\f091"; + content: "\f091"; } .fa-github-square:before { - content: "\f092"; + content: "\f092"; } .fa-upload:before { - content: "\f093"; + content: "\f093"; } .fa-lemon-o:before { - content: "\f094"; + content: "\f094"; } .fa-phone:before { - content: "\f095"; + content: "\f095"; } .fa-square-o:before { - content: "\f096"; + content: "\f096"; } .fa-bookmark-o:before { - content: "\f097"; + content: "\f097"; } .fa-phone-square:before { - content: "\f098"; + content: "\f098"; } .fa-twitter:before { - content: "\f099"; + content: "\f099"; } .fa-facebook-f:before, .fa-facebook:before { - content: "\f09a"; + content: "\f09a"; } .fa-github:before { - content: "\f09b"; + content: "\f09b"; } .fa-unlock:before { - content: "\f09c"; + content: "\f09c"; } .fa-credit-card:before { - content: "\f09d"; + content: "\f09d"; } .fa-feed:before, .fa-rss:before { - content: "\f09e"; + content: "\f09e"; } .fa-hdd-o:before { - content: "\f0a0"; + content: "\f0a0"; } .fa-bullhorn:before { - content: "\f0a1"; + content: "\f0a1"; } .fa-bell:before { - content: "\f0f3"; + content: "\f0f3"; } .fa-certificate:before { - content: "\f0a3"; + content: "\f0a3"; } .fa-hand-o-right:before { - content: "\f0a4"; + content: "\f0a4"; } .fa-hand-o-left:before { - content: "\f0a5"; + content: "\f0a5"; } .fa-hand-o-up:before { - content: "\f0a6"; + content: "\f0a6"; } .fa-hand-o-down:before { - content: "\f0a7"; + content: "\f0a7"; } .fa-arrow-circle-left:before { - content: "\f0a8"; + content: "\f0a8"; } .fa-arrow-circle-right:before { - content: "\f0a9"; + content: "\f0a9"; } .fa-arrow-circle-up:before { - content: "\f0aa"; + content: "\f0aa"; } .fa-arrow-circle-down:before { - content: "\f0ab"; + content: "\f0ab"; } .fa-globe:before { - content: "\f0ac"; + content: "\f0ac"; } .fa-wrench:before { - content: "\f0ad"; + content: "\f0ad"; } .fa-tasks:before { - content: "\f0ae"; + content: "\f0ae"; } .fa-filter:before { - content: "\f0b0"; + content: "\f0b0"; } .fa-briefcase:before { - content: "\f0b1"; + content: "\f0b1"; } .fa-arrows-alt:before { - content: "\f0b2"; + content: "\f0b2"; } .fa-group:before, .fa-users:before { - content: "\f0c0"; + content: "\f0c0"; } .fa-chain:before, .fa-link:before { - content: "\f0c1"; + content: "\f0c1"; } .fa-cloud:before { - content: "\f0c2"; + content: "\f0c2"; } .fa-flask:before { - content: "\f0c3"; + content: "\f0c3"; } .fa-cut:before, .fa-scissors:before { - content: "\f0c4"; + content: "\f0c4"; } .fa-copy:before, .fa-files-o:before { - content: "\f0c5"; + content: "\f0c5"; } .fa-paperclip:before { - content: "\f0c6"; + content: "\f0c6"; } .fa-save:before, .fa-floppy-o:before { - content: "\f0c7"; + content: "\f0c7"; } .fa-square:before { - content: "\f0c8"; + content: "\f0c8"; } .fa-navicon:before, .fa-reorder:before, .fa-bars:before { - content: "\f0c9"; + content: "\f0c9"; } .fa-list-ul:before { - content: "\f0ca"; + content: "\f0ca"; } .fa-list-ol:before { - content: "\f0cb"; + content: "\f0cb"; } .fa-strikethrough:before { - content: "\f0cc"; + content: "\f0cc"; } .fa-underline:before { - content: "\f0cd"; + content: "\f0cd"; } .fa-table:before { - content: "\f0ce"; + content: "\f0ce"; } .fa-magic:before { - content: "\f0d0"; + content: "\f0d0"; } .fa-truck:before { - content: "\f0d1"; + content: "\f0d1"; } .fa-pinterest:before { - content: "\f0d2"; + content: "\f0d2"; } .fa-pinterest-square:before { - content: "\f0d3"; + content: "\f0d3"; } .fa-google-plus-square:before { - content: "\f0d4"; + content: "\f0d4"; } .fa-google-plus:before { - content: "\f0d5"; + content: "\f0d5"; } .fa-money:before { - content: "\f0d6"; + content: "\f0d6"; } .fa-caret-down:before { - content: "\f0d7"; + content: "\f0d7"; } .fa-caret-up:before { - content: "\f0d8"; + content: "\f0d8"; } .fa-caret-left:before { - content: "\f0d9"; + content: "\f0d9"; } .fa-caret-right:before { - content: "\f0da"; + content: "\f0da"; } .fa-columns:before { - content: "\f0db"; + content: "\f0db"; } .fa-unsorted:before, .fa-sort:before { - content: "\f0dc"; + content: "\f0dc"; } .fa-sort-down:before, .fa-sort-desc:before { - content: "\f0dd"; + content: "\f0dd"; } .fa-sort-up:before, .fa-sort-asc:before { - content: "\f0de"; + content: "\f0de"; } .fa-envelope:before { - content: "\f0e0"; + content: "\f0e0"; } .fa-linkedin:before { - content: "\f0e1"; + content: "\f0e1"; } .fa-rotate-left:before, .fa-undo:before { - content: "\f0e2"; + content: "\f0e2"; } .fa-legal:before, .fa-gavel:before { - content: "\f0e3"; + content: "\f0e3"; } .fa-dashboard:before, .fa-tachometer:before { - content: "\f0e4"; + content: "\f0e4"; } .fa-comment-o:before { - content: "\f0e5"; + content: "\f0e5"; } .fa-comments-o:before { - content: "\f0e6"; + content: "\f0e6"; } .fa-flash:before, .fa-bolt:before { - content: "\f0e7"; + content: "\f0e7"; } .fa-sitemap:before { - content: "\f0e8"; + content: "\f0e8"; } .fa-umbrella:before { - content: "\f0e9"; + content: "\f0e9"; } .fa-paste:before, .fa-clipboard:before { - content: "\f0ea"; + content: "\f0ea"; } .fa-lightbulb-o:before { - content: "\f0eb"; + content: "\f0eb"; } .fa-exchange:before { - content: "\f0ec"; + content: "\f0ec"; } .fa-cloud-download:before { - content: "\f0ed"; + content: "\f0ed"; } .fa-cloud-upload:before { - content: "\f0ee"; + content: "\f0ee"; } .fa-user-md:before { - content: "\f0f0"; + content: "\f0f0"; } .fa-stethoscope:before { - content: "\f0f1"; + content: "\f0f1"; } .fa-suitcase:before { - content: "\f0f2"; + content: "\f0f2"; } .fa-bell-o:before { - content: "\f0a2"; + content: "\f0a2"; } .fa-coffee:before { - content: "\f0f4"; + content: "\f0f4"; } .fa-cutlery:before { - content: "\f0f5"; + content: "\f0f5"; } .fa-file-text-o:before { - content: "\f0f6"; + content: "\f0f6"; } .fa-building-o:before { - content: "\f0f7"; + content: "\f0f7"; } .fa-hospital-o:before { - content: "\f0f8"; + content: "\f0f8"; } .fa-ambulance:before { - content: "\f0f9"; + content: "\f0f9"; } .fa-medkit:before { - content: "\f0fa"; + content: "\f0fa"; } .fa-fighter-jet:before { - content: "\f0fb"; + content: "\f0fb"; } .fa-beer:before { - content: "\f0fc"; + content: "\f0fc"; } .fa-h-square:before { - content: "\f0fd"; + content: "\f0fd"; } .fa-plus-square:before { - content: "\f0fe"; + content: "\f0fe"; } .fa-angle-double-left:before { - content: "\f100"; + content: "\f100"; } .fa-angle-double-right:before { - content: "\f101"; + content: "\f101"; } .fa-angle-double-up:before { - content: "\f102"; + content: "\f102"; } .fa-angle-double-down:before { - content: "\f103"; + content: "\f103"; } .fa-angle-left:before { - content: "\f104"; + content: "\f104"; } .fa-angle-right:before { - content: "\f105"; + content: "\f105"; } .fa-angle-up:before { - content: "\f106"; + content: "\f106"; } .fa-angle-down:before { - content: "\f107"; + content: "\f107"; } .fa-desktop:before { - content: "\f108"; + content: "\f108"; } .fa-laptop:before { - content: "\f109"; + content: "\f109"; } .fa-tablet:before { - content: "\f10a"; + content: "\f10a"; } .fa-mobile-phone:before, .fa-mobile:before { - content: "\f10b"; + content: "\f10b"; } .fa-circle-o:before { - content: "\f10c"; + content: "\f10c"; } .fa-quote-left:before { - content: "\f10d"; + content: "\f10d"; } .fa-quote-right:before { - content: "\f10e"; + content: "\f10e"; } .fa-spinner:before { - content: "\f110"; + content: "\f110"; } .fa-circle:before { - content: "\f111"; + content: "\f111"; } .fa-mail-reply:before, .fa-reply:before { - content: "\f112"; + content: "\f112"; } .fa-github-alt:before { - content: "\f113"; + content: "\f113"; } .fa-folder-o:before { - content: "\f114"; + content: "\f114"; } .fa-folder-open-o:before { - content: "\f115"; + content: "\f115"; } .fa-smile-o:before { - content: "\f118"; + content: "\f118"; } .fa-frown-o:before { - content: "\f119"; + content: "\f119"; } .fa-meh-o:before { - content: "\f11a"; + content: "\f11a"; } .fa-gamepad:before { - content: "\f11b"; + content: "\f11b"; } .fa-keyboard-o:before { - content: "\f11c"; + content: "\f11c"; } .fa-flag-o:before { - content: "\f11d"; + content: "\f11d"; } .fa-flag-checkered:before { - content: "\f11e"; + content: "\f11e"; } .fa-terminal:before { - content: "\f120"; + content: "\f120"; } .fa-code:before { - content: "\f121"; + content: "\f121"; } .fa-mail-reply-all:before, .fa-reply-all:before { - content: "\f122"; + content: "\f122"; } .fa-star-half-empty:before, .fa-star-half-full:before, .fa-star-half-o:before { - content: "\f123"; + content: "\f123"; } .fa-location-arrow:before { - content: "\f124"; + content: "\f124"; } .fa-crop:before { - content: "\f125"; + content: "\f125"; } .fa-code-fork:before { - content: "\f126"; + content: "\f126"; } .fa-unlink:before, .fa-chain-broken:before { - content: "\f127"; + content: "\f127"; } .fa-question:before { - content: "\f128"; + content: "\f128"; } .fa-info:before { - content: "\f129"; + content: "\f129"; } .fa-exclamation:before { - content: "\f12a"; + content: "\f12a"; } .fa-superscript:before { - content: "\f12b"; + content: "\f12b"; } .fa-subscript:before { - content: "\f12c"; + content: "\f12c"; } .fa-eraser:before { - content: "\f12d"; + content: "\f12d"; } .fa-puzzle-piece:before { - content: "\f12e"; + content: "\f12e"; } .fa-microphone:before { - content: "\f130"; + content: "\f130"; } .fa-microphone-slash:before { - content: "\f131"; + content: "\f131"; } .fa-shield:before { - content: "\f132"; + content: "\f132"; } .fa-calendar-o:before { - content: "\f133"; + content: "\f133"; } .fa-fire-extinguisher:before { - content: "\f134"; + content: "\f134"; } .fa-rocket:before { - content: "\f135"; + content: "\f135"; } .fa-maxcdn:before { - content: "\f136"; + content: "\f136"; } .fa-chevron-circle-left:before { - content: "\f137"; + content: "\f137"; } .fa-chevron-circle-right:before { - content: "\f138"; + content: "\f138"; } .fa-chevron-circle-up:before { - content: "\f139"; + content: "\f139"; } .fa-chevron-circle-down:before { - content: "\f13a"; + content: "\f13a"; } .fa-html5:before { - content: "\f13b"; + content: "\f13b"; } .fa-css3:before { - content: "\f13c"; + content: "\f13c"; } .fa-anchor:before { - content: "\f13d"; + content: "\f13d"; } .fa-unlock-alt:before { - content: "\f13e"; + content: "\f13e"; } .fa-bullseye:before { - content: "\f140"; + content: "\f140"; } .fa-ellipsis-h:before { - content: "\f141"; + content: "\f141"; } .fa-ellipsis-v:before { - content: "\f142"; + content: "\f142"; } .fa-rss-square:before { - content: "\f143"; + content: "\f143"; } .fa-play-circle:before { - content: "\f144"; + content: "\f144"; } .fa-ticket:before { - content: "\f145"; + content: "\f145"; } .fa-minus-square:before { - content: "\f146"; + content: "\f146"; } .fa-minus-square-o:before { - content: "\f147"; + content: "\f147"; } .fa-level-up:before { - content: "\f148"; + content: "\f148"; } .fa-level-down:before { - content: "\f149"; + content: "\f149"; } .fa-check-square:before { - content: "\f14a"; + content: "\f14a"; } .fa-pencil-square:before { - content: "\f14b"; + content: "\f14b"; } .fa-external-link-square:before { - content: "\f14c"; + content: "\f14c"; } .fa-share-square:before { - content: "\f14d"; + content: "\f14d"; } .fa-compass:before { - content: "\f14e"; + content: "\f14e"; } .fa-toggle-down:before, .fa-caret-square-o-down:before { - content: "\f150"; + content: "\f150"; } .fa-toggle-up:before, .fa-caret-square-o-up:before { - content: "\f151"; + content: "\f151"; } .fa-toggle-right:before, .fa-caret-square-o-right:before { - content: "\f152"; + content: "\f152"; } .fa-euro:before, .fa-eur:before { - content: "\f153"; + content: "\f153"; } .fa-gbp:before { - content: "\f154"; + content: "\f154"; } .fa-dollar:before, .fa-usd:before { - content: "\f155"; + content: "\f155"; } .fa-rupee:before, .fa-inr:before { - content: "\f156"; + content: "\f156"; } .fa-cny:before, .fa-rmb:before, .fa-yen:before, .fa-jpy:before { - content: "\f157"; + content: "\f157"; } .fa-ruble:before, .fa-rouble:before, .fa-rub:before { - content: "\f158"; + content: "\f158"; } .fa-won:before, .fa-krw:before { - content: "\f159"; + content: "\f159"; } .fa-bitcoin:before, .fa-btc:before { - content: "\f15a"; + content: "\f15a"; } .fa-file:before { - content: "\f15b"; + content: "\f15b"; } .fa-file-text:before { - content: "\f15c"; + content: "\f15c"; } .fa-sort-alpha-asc:before { - content: "\f15d"; + content: "\f15d"; } .fa-sort-alpha-desc:before { - content: "\f15e"; + content: "\f15e"; } .fa-sort-amount-asc:before { - content: "\f160"; + content: "\f160"; } .fa-sort-amount-desc:before { - content: "\f161"; + content: "\f161"; } .fa-sort-numeric-asc:before { - content: "\f162"; + content: "\f162"; } .fa-sort-numeric-desc:before { - content: "\f163"; + content: "\f163"; } .fa-thumbs-up:before { - content: "\f164"; + content: "\f164"; } .fa-thumbs-down:before { - content: "\f165"; + content: "\f165"; } .fa-youtube-square:before { - content: "\f166"; + content: "\f166"; } .fa-youtube:before { - content: "\f167"; + content: "\f167"; } .fa-xing:before { - content: "\f168"; + content: "\f168"; } .fa-xing-square:before { - content: "\f169"; + content: "\f169"; } .fa-youtube-play:before { - content: "\f16a"; + content: "\f16a"; } .fa-dropbox:before { - content: "\f16b"; + content: "\f16b"; } .fa-stack-overflow:before { - content: "\f16c"; + content: "\f16c"; } .fa-instagram:before { - content: "\f16d"; + content: "\f16d"; } .fa-flickr:before { - content: "\f16e"; + content: "\f16e"; } .fa-adn:before { - content: "\f170"; + content: "\f170"; } .fa-bitbucket:before { - content: "\f171"; + content: "\f171"; } .fa-bitbucket-square:before { - content: "\f172"; + content: "\f172"; } .fa-tumblr:before { - content: "\f173"; + content: "\f173"; } .fa-tumblr-square:before { - content: "\f174"; + content: "\f174"; } .fa-long-arrow-down:before { - content: "\f175"; + content: "\f175"; } .fa-long-arrow-up:before { - content: "\f176"; + content: "\f176"; } .fa-long-arrow-left:before { - content: "\f177"; + content: "\f177"; } .fa-long-arrow-right:before { - content: "\f178"; + content: "\f178"; } .fa-apple:before { - content: "\f179"; + content: "\f179"; } .fa-windows:before { - content: "\f17a"; + content: "\f17a"; } .fa-android:before { - content: "\f17b"; + content: "\f17b"; } .fa-linux:before { - content: "\f17c"; + content: "\f17c"; } .fa-dribbble:before { - content: "\f17d"; + content: "\f17d"; } .fa-skype:before { - content: "\f17e"; + content: "\f17e"; } .fa-foursquare:before { - content: "\f180"; + content: "\f180"; } .fa-trello:before { - content: "\f181"; + content: "\f181"; } .fa-female:before { - content: "\f182"; + content: "\f182"; } .fa-male:before { - content: "\f183"; + content: "\f183"; } .fa-gittip:before, .fa-gratipay:before { - content: "\f184"; + content: "\f184"; } .fa-sun-o:before { - content: "\f185"; + content: "\f185"; } .fa-moon-o:before { - content: "\f186"; + content: "\f186"; } .fa-archive:before { - content: "\f187"; + content: "\f187"; } .fa-bug:before { - content: "\f188"; + content: "\f188"; } .fa-vk:before { - content: "\f189"; + content: "\f189"; } .fa-weibo:before { - content: "\f18a"; + content: "\f18a"; } .fa-renren:before { - content: "\f18b"; + content: "\f18b"; } .fa-pagelines:before { - content: "\f18c"; + content: "\f18c"; } .fa-stack-exchange:before { - content: "\f18d"; + content: "\f18d"; } .fa-arrow-circle-o-right:before { - content: "\f18e"; + content: "\f18e"; } .fa-arrow-circle-o-left:before { - content: "\f190"; + content: "\f190"; } .fa-toggle-left:before, .fa-caret-square-o-left:before { - content: "\f191"; + content: "\f191"; } .fa-dot-circle-o:before { - content: "\f192"; + content: "\f192"; } .fa-wheelchair:before { - content: "\f193"; + content: "\f193"; } .fa-vimeo-square:before { - content: "\f194"; + content: "\f194"; } .fa-turkish-lira:before, .fa-try:before { - content: "\f195"; + content: "\f195"; } .fa-plus-square-o:before { - content: "\f196"; + content: "\f196"; } .fa-space-shuttle:before { - content: "\f197"; + content: "\f197"; } .fa-slack:before { - content: "\f198"; + content: "\f198"; } .fa-envelope-square:before { - content: "\f199"; + content: "\f199"; } .fa-wordpress:before { - content: "\f19a"; + content: "\f19a"; } .fa-openid:before { - content: "\f19b"; + content: "\f19b"; } .fa-institution:before, .fa-bank:before, .fa-university:before { - content: "\f19c"; + content: "\f19c"; } .fa-mortar-board:before, .fa-graduation-cap:before { - content: "\f19d"; + content: "\f19d"; } .fa-yahoo:before { - content: "\f19e"; + content: "\f19e"; } .fa-google:before { - content: "\f1a0"; + content: "\f1a0"; } .fa-reddit:before { - content: "\f1a1"; + content: "\f1a1"; } .fa-reddit-square:before { - content: "\f1a2"; + content: "\f1a2"; } .fa-stumbleupon-circle:before { - content: "\f1a3"; + content: "\f1a3"; } .fa-stumbleupon:before { - content: "\f1a4"; + content: "\f1a4"; } .fa-delicious:before { - content: "\f1a5"; + content: "\f1a5"; } .fa-digg:before { - content: "\f1a6"; + content: "\f1a6"; } .fa-pied-piper-pp:before { - content: "\f1a7"; + content: "\f1a7"; } .fa-pied-piper-alt:before { - content: "\f1a8"; + content: "\f1a8"; } .fa-drupal:before { - content: "\f1a9"; + content: "\f1a9"; } .fa-joomla:before { - content: "\f1aa"; + content: "\f1aa"; } .fa-language:before { - content: "\f1ab"; + content: "\f1ab"; } .fa-fax:before { - content: "\f1ac"; + content: "\f1ac"; } .fa-building:before { - content: "\f1ad"; + content: "\f1ad"; } .fa-child:before { - content: "\f1ae"; + content: "\f1ae"; } .fa-paw:before { - content: "\f1b0"; + content: "\f1b0"; } .fa-spoon:before { - content: "\f1b1"; + content: "\f1b1"; } .fa-cube:before { - content: "\f1b2"; + content: "\f1b2"; } .fa-cubes:before { - content: "\f1b3"; + content: "\f1b3"; } .fa-behance:before { - content: "\f1b4"; + content: "\f1b4"; } .fa-behance-square:before { - content: "\f1b5"; + content: "\f1b5"; } .fa-steam:before { - content: "\f1b6"; + content: "\f1b6"; } .fa-steam-square:before { - content: "\f1b7"; + content: "\f1b7"; } .fa-recycle:before { - content: "\f1b8"; + content: "\f1b8"; } .fa-automobile:before, .fa-car:before { - content: "\f1b9"; + content: "\f1b9"; } .fa-cab:before, .fa-taxi:before { - content: "\f1ba"; + content: "\f1ba"; } .fa-tree:before { - content: "\f1bb"; + content: "\f1bb"; } .fa-spotify:before { - content: "\f1bc"; + content: "\f1bc"; } .fa-deviantart:before { - content: "\f1bd"; + content: "\f1bd"; } .fa-soundcloud:before { - content: "\f1be"; + content: "\f1be"; } .fa-database:before { - content: "\f1c0"; + content: "\f1c0"; } .fa-file-pdf-o:before { - content: "\f1c1"; + content: "\f1c1"; } .fa-file-word-o:before { - content: "\f1c2"; + content: "\f1c2"; } .fa-file-excel-o:before { - content: "\f1c3"; + content: "\f1c3"; } .fa-file-powerpoint-o:before { - content: "\f1c4"; + content: "\f1c4"; } .fa-file-photo-o:before, .fa-file-picture-o:before, .fa-file-image-o:before { - content: "\f1c5"; + content: "\f1c5"; } .fa-file-zip-o:before, .fa-file-archive-o:before { - content: "\f1c6"; + content: "\f1c6"; } .fa-file-sound-o:before, .fa-file-audio-o:before { - content: "\f1c7"; + content: "\f1c7"; } .fa-file-movie-o:before, .fa-file-video-o:before { - content: "\f1c8"; + content: "\f1c8"; } .fa-file-code-o:before { - content: "\f1c9"; + content: "\f1c9"; } .fa-vine:before { - content: "\f1ca"; + content: "\f1ca"; } .fa-codepen:before { - content: "\f1cb"; + content: "\f1cb"; } .fa-jsfiddle:before { - content: "\f1cc"; + content: "\f1cc"; } .fa-life-bouy:before, .fa-life-buoy:before, .fa-life-saver:before, .fa-support:before, .fa-life-ring:before { - content: "\f1cd"; + content: "\f1cd"; } .fa-circle-o-notch:before { - content: "\f1ce"; + content: "\f1ce"; } .fa-ra:before, .fa-resistance:before, .fa-rebel:before { - content: "\f1d0"; + content: "\f1d0"; } .fa-ge:before, .fa-empire:before { - content: "\f1d1"; + content: "\f1d1"; } .fa-git-square:before { - content: "\f1d2"; + content: "\f1d2"; } .fa-git:before { - content: "\f1d3"; + content: "\f1d3"; } .fa-y-combinator-square:before, .fa-yc-square:before, .fa-hacker-news:before { - content: "\f1d4"; + content: "\f1d4"; } .fa-tencent-weibo:before { - content: "\f1d5"; + content: "\f1d5"; } .fa-qq:before { - content: "\f1d6"; + content: "\f1d6"; } .fa-wechat:before, .fa-weixin:before { - content: "\f1d7"; + content: "\f1d7"; } .fa-send:before, .fa-paper-plane:before { - content: "\f1d8"; + content: "\f1d8"; } .fa-send-o:before, .fa-paper-plane-o:before { - content: "\f1d9"; + content: "\f1d9"; } .fa-history:before { - content: "\f1da"; + content: "\f1da"; } .fa-circle-thin:before { - content: "\f1db"; + content: "\f1db"; } .fa-header:before { - content: "\f1dc"; + content: "\f1dc"; } .fa-paragraph:before { - content: "\f1dd"; + content: "\f1dd"; } .fa-sliders:before { - content: "\f1de"; + content: "\f1de"; } .fa-share-alt:before { - content: "\f1e0"; + content: "\f1e0"; } .fa-share-alt-square:before { - content: "\f1e1"; + content: "\f1e1"; } .fa-bomb:before { - content: "\f1e2"; + content: "\f1e2"; } .fa-soccer-ball-o:before, .fa-futbol-o:before { - content: "\f1e3"; + content: "\f1e3"; } .fa-tty:before { - content: "\f1e4"; + content: "\f1e4"; } .fa-binoculars:before { - content: "\f1e5"; + content: "\f1e5"; } .fa-plug:before { - content: "\f1e6"; + content: "\f1e6"; } .fa-slideshare:before { - content: "\f1e7"; + content: "\f1e7"; } .fa-twitch:before { - content: "\f1e8"; + content: "\f1e8"; } .fa-yelp:before { - content: "\f1e9"; + content: "\f1e9"; } .fa-newspaper-o:before { - content: "\f1ea"; + content: "\f1ea"; } .fa-wifi:before { - content: "\f1eb"; + content: "\f1eb"; } .fa-calculator:before { - content: "\f1ec"; + content: "\f1ec"; } .fa-paypal:before { - content: "\f1ed"; + content: "\f1ed"; } .fa-google-wallet:before { - content: "\f1ee"; + content: "\f1ee"; } .fa-cc-visa:before { - content: "\f1f0"; + content: "\f1f0"; } .fa-cc-mastercard:before { - content: "\f1f1"; + content: "\f1f1"; } .fa-cc-discover:before { - content: "\f1f2"; + content: "\f1f2"; } .fa-cc-amex:before { - content: "\f1f3"; + content: "\f1f3"; } .fa-cc-paypal:before { - content: "\f1f4"; + content: "\f1f4"; } .fa-cc-stripe:before { - content: "\f1f5"; + content: "\f1f5"; } .fa-bell-slash:before { - content: "\f1f6"; + content: "\f1f6"; } .fa-bell-slash-o:before { - content: "\f1f7"; + content: "\f1f7"; } .fa-trash:before { - content: "\f1f8"; + content: "\f1f8"; } .fa-copyright:before { - content: "\f1f9"; + content: "\f1f9"; } .fa-at:before { - content: "\f1fa"; + content: "\f1fa"; } .fa-eyedropper:before { - content: "\f1fb"; + content: "\f1fb"; } .fa-paint-brush:before { - content: "\f1fc"; + content: "\f1fc"; } .fa-birthday-cake:before { - content: "\f1fd"; + content: "\f1fd"; } .fa-area-chart:before { - content: "\f1fe"; + content: "\f1fe"; } .fa-pie-chart:before { - content: "\f200"; + content: "\f200"; } .fa-line-chart:before { - content: "\f201"; + content: "\f201"; } .fa-lastfm:before { - content: "\f202"; + content: "\f202"; } .fa-lastfm-square:before { - content: "\f203"; + content: "\f203"; } .fa-toggle-off:before { - content: "\f204"; + content: "\f204"; } .fa-toggle-on:before { - content: "\f205"; + content: "\f205"; } .fa-bicycle:before { - content: "\f206"; + content: "\f206"; } .fa-bus:before { - content: "\f207"; + content: "\f207"; } .fa-ioxhost:before { - content: "\f208"; + content: "\f208"; } .fa-angellist:before { - content: "\f209"; + content: "\f209"; } .fa-cc:before { - content: "\f20a"; + content: "\f20a"; } .fa-shekel:before, .fa-sheqel:before, .fa-ils:before { - content: "\f20b"; + content: "\f20b"; } .fa-meanpath:before { - content: "\f20c"; + content: "\f20c"; } .fa-buysellads:before { - content: "\f20d"; + content: "\f20d"; } .fa-connectdevelop:before { - content: "\f20e"; + content: "\f20e"; } .fa-dashcube:before { - content: "\f210"; + content: "\f210"; } .fa-forumbee:before { - content: "\f211"; + content: "\f211"; } .fa-leanpub:before { - content: "\f212"; + content: "\f212"; } .fa-sellsy:before { - content: "\f213"; + content: "\f213"; } .fa-shirtsinbulk:before { - content: "\f214"; + content: "\f214"; } .fa-simplybuilt:before { - content: "\f215"; + content: "\f215"; } .fa-skyatlas:before { - content: "\f216"; + content: "\f216"; } .fa-cart-plus:before { - content: "\f217"; + content: "\f217"; } .fa-cart-arrow-down:before { - content: "\f218"; + content: "\f218"; } .fa-diamond:before { - content: "\f219"; + content: "\f219"; } .fa-ship:before { - content: "\f21a"; + content: "\f21a"; } .fa-user-secret:before { - content: "\f21b"; + content: "\f21b"; } .fa-motorcycle:before { - content: "\f21c"; + content: "\f21c"; } .fa-street-view:before { - content: "\f21d"; + content: "\f21d"; } .fa-heartbeat:before { - content: "\f21e"; + content: "\f21e"; } .fa-venus:before { - content: "\f221"; + content: "\f221"; } .fa-mars:before { - content: "\f222"; + content: "\f222"; } .fa-mercury:before { - content: "\f223"; + content: "\f223"; } .fa-intersex:before, .fa-transgender:before { - content: "\f224"; + content: "\f224"; } .fa-transgender-alt:before { - content: "\f225"; + content: "\f225"; } .fa-venus-double:before { - content: "\f226"; + content: "\f226"; } .fa-mars-double:before { - content: "\f227"; + content: "\f227"; } .fa-venus-mars:before { - content: "\f228"; + content: "\f228"; } .fa-mars-stroke:before { - content: "\f229"; + content: "\f229"; } .fa-mars-stroke-v:before { - content: "\f22a"; + content: "\f22a"; } .fa-mars-stroke-h:before { - content: "\f22b"; + content: "\f22b"; } .fa-neuter:before { - content: "\f22c"; + content: "\f22c"; } .fa-genderless:before { - content: "\f22d"; + content: "\f22d"; } .fa-facebook-official:before { - content: "\f230"; + content: "\f230"; } .fa-pinterest-p:before { - content: "\f231"; + content: "\f231"; } .fa-whatsapp:before { - content: "\f232"; + content: "\f232"; } .fa-server:before { - content: "\f233"; + content: "\f233"; } .fa-user-plus:before { - content: "\f234"; + content: "\f234"; } .fa-user-times:before { - content: "\f235"; + content: "\f235"; } .fa-hotel:before, .fa-bed:before { - content: "\f236"; + content: "\f236"; } .fa-viacoin:before { - content: "\f237"; + content: "\f237"; } .fa-train:before { - content: "\f238"; + content: "\f238"; } .fa-subway:before { - content: "\f239"; + content: "\f239"; } .fa-medium:before { - content: "\f23a"; + content: "\f23a"; } .fa-yc:before, .fa-y-combinator:before { - content: "\f23b"; + content: "\f23b"; } .fa-optin-monster:before { - content: "\f23c"; + content: "\f23c"; } .fa-opencart:before { - content: "\f23d"; + content: "\f23d"; } .fa-expeditedssl:before { - content: "\f23e"; + content: "\f23e"; } .fa-battery-4:before, .fa-battery:before, .fa-battery-full:before { - content: "\f240"; + content: "\f240"; } .fa-battery-3:before, .fa-battery-three-quarters:before { - content: "\f241"; + content: "\f241"; } .fa-battery-2:before, .fa-battery-half:before { - content: "\f242"; + content: "\f242"; } .fa-battery-1:before, .fa-battery-quarter:before { - content: "\f243"; + content: "\f243"; } .fa-battery-0:before, .fa-battery-empty:before { - content: "\f244"; + content: "\f244"; } .fa-mouse-pointer:before { - content: "\f245"; + content: "\f245"; } .fa-i-cursor:before { - content: "\f246"; + content: "\f246"; } .fa-object-group:before { - content: "\f247"; + content: "\f247"; } .fa-object-ungroup:before { - content: "\f248"; + content: "\f248"; } .fa-sticky-note:before { - content: "\f249"; + content: "\f249"; } .fa-sticky-note-o:before { - content: "\f24a"; + content: "\f24a"; } .fa-cc-jcb:before { - content: "\f24b"; + content: "\f24b"; } .fa-cc-diners-club:before { - content: "\f24c"; + content: "\f24c"; } .fa-clone:before { - content: "\f24d"; + content: "\f24d"; } .fa-balance-scale:before { - content: "\f24e"; + content: "\f24e"; } .fa-hourglass-o:before { - content: "\f250"; + content: "\f250"; } .fa-hourglass-1:before, .fa-hourglass-start:before { - content: "\f251"; + content: "\f251"; } .fa-hourglass-2:before, .fa-hourglass-half:before { - content: "\f252"; + content: "\f252"; } .fa-hourglass-3:before, .fa-hourglass-end:before { - content: "\f253"; + content: "\f253"; } .fa-hourglass:before { - content: "\f254"; + content: "\f254"; } .fa-hand-grab-o:before, .fa-hand-rock-o:before { - content: "\f255"; + content: "\f255"; } .fa-hand-stop-o:before, .fa-hand-paper-o:before { - content: "\f256"; + content: "\f256"; } .fa-hand-scissors-o:before { - content: "\f257"; + content: "\f257"; } .fa-hand-lizard-o:before { - content: "\f258"; + content: "\f258"; } .fa-hand-spock-o:before { - content: "\f259"; + content: "\f259"; } .fa-hand-pointer-o:before { - content: "\f25a"; + content: "\f25a"; } .fa-hand-peace-o:before { - content: "\f25b"; + content: "\f25b"; } .fa-trademark:before { - content: "\f25c"; + content: "\f25c"; } .fa-registered:before { - content: "\f25d"; + content: "\f25d"; } .fa-creative-commons:before { - content: "\f25e"; + content: "\f25e"; } .fa-gg:before { - content: "\f260"; + content: "\f260"; } .fa-gg-circle:before { - content: "\f261"; + content: "\f261"; } .fa-tripadvisor:before { - content: "\f262"; + content: "\f262"; } .fa-odnoklassniki:before { - content: "\f263"; + content: "\f263"; } .fa-odnoklassniki-square:before { - content: "\f264"; + content: "\f264"; } .fa-get-pocket:before { - content: "\f265"; + content: "\f265"; } .fa-wikipedia-w:before { - content: "\f266"; + content: "\f266"; } .fa-safari:before { - content: "\f267"; + content: "\f267"; } .fa-chrome:before { - content: "\f268"; + content: "\f268"; } .fa-firefox:before { - content: "\f269"; + content: "\f269"; } .fa-opera:before { - content: "\f26a"; + content: "\f26a"; } .fa-internet-explorer:before { - content: "\f26b"; + content: "\f26b"; } .fa-tv:before, .fa-television:before { - content: "\f26c"; + content: "\f26c"; } .fa-contao:before { - content: "\f26d"; + content: "\f26d"; } .fa-500px:before { - content: "\f26e"; + content: "\f26e"; } .fa-amazon:before { - content: "\f270"; + content: "\f270"; } .fa-calendar-plus-o:before { - content: "\f271"; + content: "\f271"; } .fa-calendar-minus-o:before { - content: "\f272"; + content: "\f272"; } .fa-calendar-times-o:before { - content: "\f273"; + content: "\f273"; } .fa-calendar-check-o:before { - content: "\f274"; + content: "\f274"; } .fa-industry:before { - content: "\f275"; + content: "\f275"; } .fa-map-pin:before { - content: "\f276"; + content: "\f276"; } .fa-map-signs:before { - content: "\f277"; + content: "\f277"; } .fa-map-o:before { - content: "\f278"; + content: "\f278"; } .fa-map:before { - content: "\f279"; + content: "\f279"; } .fa-commenting:before { - content: "\f27a"; + content: "\f27a"; } .fa-commenting-o:before { - content: "\f27b"; + content: "\f27b"; } .fa-houzz:before { - content: "\f27c"; + content: "\f27c"; } .fa-vimeo:before { - content: "\f27d"; + content: "\f27d"; } .fa-black-tie:before { - content: "\f27e"; + content: "\f27e"; } .fa-fonticons:before { - content: "\f280"; + content: "\f280"; } .fa-reddit-alien:before { - content: "\f281"; + content: "\f281"; } .fa-edge:before { - content: "\f282"; + content: "\f282"; } .fa-credit-card-alt:before { - content: "\f283"; + content: "\f283"; } .fa-codiepie:before { - content: "\f284"; + content: "\f284"; } .fa-modx:before { - content: "\f285"; + content: "\f285"; } .fa-fort-awesome:before { - content: "\f286"; + content: "\f286"; } .fa-usb:before { - content: "\f287"; + content: "\f287"; } .fa-product-hunt:before { - content: "\f288"; + content: "\f288"; } .fa-mixcloud:before { - content: "\f289"; + content: "\f289"; } .fa-scribd:before { - content: "\f28a"; + content: "\f28a"; } .fa-pause-circle:before { - content: "\f28b"; + content: "\f28b"; } .fa-pause-circle-o:before { - content: "\f28c"; + content: "\f28c"; } .fa-stop-circle:before { - content: "\f28d"; + content: "\f28d"; } .fa-stop-circle-o:before { - content: "\f28e"; + content: "\f28e"; } .fa-shopping-bag:before { - content: "\f290"; + content: "\f290"; } .fa-shopping-basket:before { - content: "\f291"; + content: "\f291"; } .fa-hashtag:before { - content: "\f292"; + content: "\f292"; } .fa-bluetooth:before { - content: "\f293"; + content: "\f293"; } .fa-bluetooth-b:before { - content: "\f294"; + content: "\f294"; } .fa-percent:before { - content: "\f295"; + content: "\f295"; } .fa-gitlab:before { - content: "\f296"; + content: "\f296"; } .fa-wpbeginner:before { - content: "\f297"; + content: "\f297"; } .fa-wpforms:before { - content: "\f298"; + content: "\f298"; } .fa-envira:before { - content: "\f299"; + content: "\f299"; } .fa-universal-access:before { - content: "\f29a"; + content: "\f29a"; } .fa-wheelchair-alt:before { - content: "\f29b"; + content: "\f29b"; } .fa-question-circle-o:before { - content: "\f29c"; + content: "\f29c"; } .fa-blind:before { - content: "\f29d"; + content: "\f29d"; } .fa-audio-description:before { - content: "\f29e"; + content: "\f29e"; } .fa-volume-control-phone:before { - content: "\f2a0"; + content: "\f2a0"; } .fa-braille:before { - content: "\f2a1"; + content: "\f2a1"; } .fa-assistive-listening-systems:before { - content: "\f2a2"; + content: "\f2a2"; } .fa-asl-interpreting:before, .fa-american-sign-language-interpreting:before { - content: "\f2a3"; + content: "\f2a3"; } .fa-deafness:before, .fa-hard-of-hearing:before, .fa-deaf:before { - content: "\f2a4"; + content: "\f2a4"; } .fa-glide:before { - content: "\f2a5"; + content: "\f2a5"; } .fa-glide-g:before { - content: "\f2a6"; + content: "\f2a6"; } .fa-signing:before, .fa-sign-language:before { - content: "\f2a7"; + content: "\f2a7"; } .fa-low-vision:before { - content: "\f2a8"; + content: "\f2a8"; } .fa-viadeo:before { - content: "\f2a9"; + content: "\f2a9"; } .fa-viadeo-square:before { - content: "\f2aa"; + content: "\f2aa"; } .fa-snapchat:before { - content: "\f2ab"; + content: "\f2ab"; } .fa-snapchat-ghost:before { - content: "\f2ac"; + content: "\f2ac"; } .fa-snapchat-square:before { - content: "\f2ad"; + content: "\f2ad"; } .fa-pied-piper:before { - content: "\f2ae"; + content: "\f2ae"; } .fa-first-order:before { - content: "\f2b0"; + content: "\f2b0"; } .fa-yoast:before { - content: "\f2b1"; + content: "\f2b1"; } .fa-themeisle:before { - content: "\f2b2"; + content: "\f2b2"; } .fa-google-plus-circle:before, .fa-google-plus-official:before { - content: "\f2b3"; + content: "\f2b3"; } .fa-fa:before, .fa-font-awesome:before { - content: "\f2b4"; + content: "\f2b4"; } .fa-handshake-o:before { - content: "\f2b5"; + content: "\f2b5"; } .fa-envelope-open:before { - content: "\f2b6"; + content: "\f2b6"; } .fa-envelope-open-o:before { - content: "\f2b7"; + content: "\f2b7"; } .fa-linode:before { - content: "\f2b8"; + content: "\f2b8"; } .fa-address-book:before { - content: "\f2b9"; + content: "\f2b9"; } .fa-address-book-o:before { - content: "\f2ba"; + content: "\f2ba"; } .fa-vcard:before, .fa-address-card:before { - content: "\f2bb"; + content: "\f2bb"; } .fa-vcard-o:before, .fa-address-card-o:before { - content: "\f2bc"; + content: "\f2bc"; } .fa-user-circle:before { - content: "\f2bd"; + content: "\f2bd"; } .fa-user-circle-o:before { - content: "\f2be"; + content: "\f2be"; } .fa-user-o:before { - content: "\f2c0"; + content: "\f2c0"; } .fa-id-badge:before { - content: "\f2c1"; + content: "\f2c1"; } .fa-drivers-license:before, .fa-id-card:before { - content: "\f2c2"; + content: "\f2c2"; } .fa-drivers-license-o:before, .fa-id-card-o:before { - content: "\f2c3"; + content: "\f2c3"; } .fa-quora:before { - content: "\f2c4"; + content: "\f2c4"; } .fa-free-code-camp:before { - content: "\f2c5"; + content: "\f2c5"; } .fa-telegram:before { - content: "\f2c6"; + content: "\f2c6"; } .fa-thermometer-4:before, .fa-thermometer:before, .fa-thermometer-full:before { - content: "\f2c7"; + content: "\f2c7"; } .fa-thermometer-3:before, .fa-thermometer-three-quarters:before { - content: "\f2c8"; + content: "\f2c8"; } .fa-thermometer-2:before, .fa-thermometer-half:before { - content: "\f2c9"; + content: "\f2c9"; } .fa-thermometer-1:before, .fa-thermometer-quarter:before { - content: "\f2ca"; + content: "\f2ca"; } .fa-thermometer-0:before, .fa-thermometer-empty:before { - content: "\f2cb"; + content: "\f2cb"; } .fa-shower:before { - content: "\f2cc"; + content: "\f2cc"; } .fa-bathtub:before, .fa-s15:before, .fa-bath:before { - content: "\f2cd"; + content: "\f2cd"; } .fa-podcast:before { - content: "\f2ce"; + content: "\f2ce"; } .fa-window-maximize:before { - content: "\f2d0"; + content: "\f2d0"; } .fa-window-minimize:before { - content: "\f2d1"; + content: "\f2d1"; } .fa-window-restore:before { - content: "\f2d2"; + content: "\f2d2"; } .fa-times-rectangle:before, .fa-window-close:before { - content: "\f2d3"; + content: "\f2d3"; } .fa-times-rectangle-o:before, .fa-window-close-o:before { - content: "\f2d4"; + content: "\f2d4"; } .fa-bandcamp:before { - content: "\f2d5"; + content: "\f2d5"; } .fa-grav:before { - content: "\f2d6"; + content: "\f2d6"; } .fa-etsy:before { - content: "\f2d7"; + content: "\f2d7"; } .fa-imdb:before { - content: "\f2d8"; + content: "\f2d8"; } .fa-ravelry:before { - content: "\f2d9"; + content: "\f2d9"; } .fa-eercast:before { - content: "\f2da"; + content: "\f2da"; } .fa-microchip:before { - content: "\f2db"; + content: "\f2db"; } .fa-snowflake-o:before { - content: "\f2dc"; + content: "\f2dc"; } .fa-superpowers:before { - content: "\f2dd"; + content: "\f2dd"; } .fa-wpexplorer:before { - content: "\f2de"; + content: "\f2de"; } .fa-meetup:before { - content: "\f2e0"; + content: "\f2e0"; } .sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0, 0, 0, 0); - border: 0; + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } .sr-only-focusable:active, .sr-only-focusable:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.min.css b/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.min.css index 540440ce..1ba7b189 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.min.css +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/css/font-awesome.min.css @@ -1,4 +1,2338 @@ /*! * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */@font-face{font-family:'FontAwesome';src:url('../fonts/fontawesome-webfont.eot?v=4.7.0');src:url('../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0') format('embedded-opentype'),url('../fonts/fontawesome-webfont.woff2?v=4.7.0') format('woff2'),url('../fonts/fontawesome-webfont.woff?v=4.7.0') format('woff'),url('../fonts/fontawesome-webfont.ttf?v=4.7.0') format('truetype'),url('../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular') format('svg');font-weight:normal;font-style:normal}.fa{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571429em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14285714em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14285714em;width:2.14285714em;top:.14285714em;text-align:center}.fa-li.fa-lg{left:-1.85714286em}.fa-border{padding:.2em .25em .15em;border:solid .08em #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa.fa-pull-left{margin-right:.3em}.fa.fa-pull-right{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left{margin-right:.3em}.fa.pull-right{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scale(-1, 1);-ms-transform:scale(-1, 1);transform:scale(-1, 1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scale(1, -1);-ms-transform:scale(1, -1);transform:scale(1, -1)}:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-flip-horizontal,:root .fa-flip-vertical{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:"\f000"}.fa-music:before{content:"\f001"}.fa-search:before{content:"\f002"}.fa-envelope-o:before{content:"\f003"}.fa-heart:before{content:"\f004"}.fa-star:before{content:"\f005"}.fa-star-o:before{content:"\f006"}.fa-user:before{content:"\f007"}.fa-film:before{content:"\f008"}.fa-th-large:before{content:"\f009"}.fa-th:before{content:"\f00a"}.fa-th-list:before{content:"\f00b"}.fa-check:before{content:"\f00c"}.fa-remove:before,.fa-close:before,.fa-times:before{content:"\f00d"}.fa-search-plus:before{content:"\f00e"}.fa-search-minus:before{content:"\f010"}.fa-power-off:before{content:"\f011"}.fa-signal:before{content:"\f012"}.fa-gear:before,.fa-cog:before{content:"\f013"}.fa-trash-o:before{content:"\f014"}.fa-home:before{content:"\f015"}.fa-file-o:before{content:"\f016"}.fa-clock-o:before{content:"\f017"}.fa-road:before{content:"\f018"}.fa-download:before{content:"\f019"}.fa-arrow-circle-o-down:before{content:"\f01a"}.fa-arrow-circle-o-up:before{content:"\f01b"}.fa-inbox:before{content:"\f01c"}.fa-play-circle-o:before{content:"\f01d"}.fa-rotate-right:before,.fa-repeat:before{content:"\f01e"}.fa-refresh:before{content:"\f021"}.fa-list-alt:before{content:"\f022"}.fa-lock:before{content:"\f023"}.fa-flag:before{content:"\f024"}.fa-headphones:before{content:"\f025"}.fa-volume-off:before{content:"\f026"}.fa-volume-down:before{content:"\f027"}.fa-volume-up:before{content:"\f028"}.fa-qrcode:before{content:"\f029"}.fa-barcode:before{content:"\f02a"}.fa-tag:before{content:"\f02b"}.fa-tags:before{content:"\f02c"}.fa-book:before{content:"\f02d"}.fa-bookmark:before{content:"\f02e"}.fa-print:before{content:"\f02f"}.fa-camera:before{content:"\f030"}.fa-font:before{content:"\f031"}.fa-bold:before{content:"\f032"}.fa-italic:before{content:"\f033"}.fa-text-height:before{content:"\f034"}.fa-text-width:before{content:"\f035"}.fa-align-left:before{content:"\f036"}.fa-align-center:before{content:"\f037"}.fa-align-right:before{content:"\f038"}.fa-align-justify:before{content:"\f039"}.fa-list:before{content:"\f03a"}.fa-dedent:before,.fa-outdent:before{content:"\f03b"}.fa-indent:before{content:"\f03c"}.fa-video-camera:before{content:"\f03d"}.fa-photo:before,.fa-image:before,.fa-picture-o:before{content:"\f03e"}.fa-pencil:before{content:"\f040"}.fa-map-marker:before{content:"\f041"}.fa-adjust:before{content:"\f042"}.fa-tint:before{content:"\f043"}.fa-edit:before,.fa-pencil-square-o:before{content:"\f044"}.fa-share-square-o:before{content:"\f045"}.fa-check-square-o:before{content:"\f046"}.fa-arrows:before{content:"\f047"}.fa-step-backward:before{content:"\f048"}.fa-fast-backward:before{content:"\f049"}.fa-backward:before{content:"\f04a"}.fa-play:before{content:"\f04b"}.fa-pause:before{content:"\f04c"}.fa-stop:before{content:"\f04d"}.fa-forward:before{content:"\f04e"}.fa-fast-forward:before{content:"\f050"}.fa-step-forward:before{content:"\f051"}.fa-eject:before{content:"\f052"}.fa-chevron-left:before{content:"\f053"}.fa-chevron-right:before{content:"\f054"}.fa-plus-circle:before{content:"\f055"}.fa-minus-circle:before{content:"\f056"}.fa-times-circle:before{content:"\f057"}.fa-check-circle:before{content:"\f058"}.fa-question-circle:before{content:"\f059"}.fa-info-circle:before{content:"\f05a"}.fa-crosshairs:before{content:"\f05b"}.fa-times-circle-o:before{content:"\f05c"}.fa-check-circle-o:before{content:"\f05d"}.fa-ban:before{content:"\f05e"}.fa-arrow-left:before{content:"\f060"}.fa-arrow-right:before{content:"\f061"}.fa-arrow-up:before{content:"\f062"}.fa-arrow-down:before{content:"\f063"}.fa-mail-forward:before,.fa-share:before{content:"\f064"}.fa-expand:before{content:"\f065"}.fa-compress:before{content:"\f066"}.fa-plus:before{content:"\f067"}.fa-minus:before{content:"\f068"}.fa-asterisk:before{content:"\f069"}.fa-exclamation-circle:before{content:"\f06a"}.fa-gift:before{content:"\f06b"}.fa-leaf:before{content:"\f06c"}.fa-fire:before{content:"\f06d"}.fa-eye:before{content:"\f06e"}.fa-eye-slash:before{content:"\f070"}.fa-warning:before,.fa-exclamation-triangle:before{content:"\f071"}.fa-plane:before{content:"\f072"}.fa-calendar:before{content:"\f073"}.fa-random:before{content:"\f074"}.fa-comment:before{content:"\f075"}.fa-magnet:before{content:"\f076"}.fa-chevron-up:before{content:"\f077"}.fa-chevron-down:before{content:"\f078"}.fa-retweet:before{content:"\f079"}.fa-shopping-cart:before{content:"\f07a"}.fa-folder:before{content:"\f07b"}.fa-folder-open:before{content:"\f07c"}.fa-arrows-v:before{content:"\f07d"}.fa-arrows-h:before{content:"\f07e"}.fa-bar-chart-o:before,.fa-bar-chart:before{content:"\f080"}.fa-twitter-square:before{content:"\f081"}.fa-facebook-square:before{content:"\f082"}.fa-camera-retro:before{content:"\f083"}.fa-key:before{content:"\f084"}.fa-gears:before,.fa-cogs:before{content:"\f085"}.fa-comments:before{content:"\f086"}.fa-thumbs-o-up:before{content:"\f087"}.fa-thumbs-o-down:before{content:"\f088"}.fa-star-half:before{content:"\f089"}.fa-heart-o:before{content:"\f08a"}.fa-sign-out:before{content:"\f08b"}.fa-linkedin-square:before{content:"\f08c"}.fa-thumb-tack:before{content:"\f08d"}.fa-external-link:before{content:"\f08e"}.fa-sign-in:before{content:"\f090"}.fa-trophy:before{content:"\f091"}.fa-github-square:before{content:"\f092"}.fa-upload:before{content:"\f093"}.fa-lemon-o:before{content:"\f094"}.fa-phone:before{content:"\f095"}.fa-square-o:before{content:"\f096"}.fa-bookmark-o:before{content:"\f097"}.fa-phone-square:before{content:"\f098"}.fa-twitter:before{content:"\f099"}.fa-facebook-f:before,.fa-facebook:before{content:"\f09a"}.fa-github:before{content:"\f09b"}.fa-unlock:before{content:"\f09c"}.fa-credit-card:before{content:"\f09d"}.fa-feed:before,.fa-rss:before{content:"\f09e"}.fa-hdd-o:before{content:"\f0a0"}.fa-bullhorn:before{content:"\f0a1"}.fa-bell:before{content:"\f0f3"}.fa-certificate:before{content:"\f0a3"}.fa-hand-o-right:before{content:"\f0a4"}.fa-hand-o-left:before{content:"\f0a5"}.fa-hand-o-up:before{content:"\f0a6"}.fa-hand-o-down:before{content:"\f0a7"}.fa-arrow-circle-left:before{content:"\f0a8"}.fa-arrow-circle-right:before{content:"\f0a9"}.fa-arrow-circle-up:before{content:"\f0aa"}.fa-arrow-circle-down:before{content:"\f0ab"}.fa-globe:before{content:"\f0ac"}.fa-wrench:before{content:"\f0ad"}.fa-tasks:before{content:"\f0ae"}.fa-filter:before{content:"\f0b0"}.fa-briefcase:before{content:"\f0b1"}.fa-arrows-alt:before{content:"\f0b2"}.fa-group:before,.fa-users:before{content:"\f0c0"}.fa-chain:before,.fa-link:before{content:"\f0c1"}.fa-cloud:before{content:"\f0c2"}.fa-flask:before{content:"\f0c3"}.fa-cut:before,.fa-scissors:before{content:"\f0c4"}.fa-copy:before,.fa-files-o:before{content:"\f0c5"}.fa-paperclip:before{content:"\f0c6"}.fa-save:before,.fa-floppy-o:before{content:"\f0c7"}.fa-square:before{content:"\f0c8"}.fa-navicon:before,.fa-reorder:before,.fa-bars:before{content:"\f0c9"}.fa-list-ul:before{content:"\f0ca"}.fa-list-ol:before{content:"\f0cb"}.fa-strikethrough:before{content:"\f0cc"}.fa-underline:before{content:"\f0cd"}.fa-table:before{content:"\f0ce"}.fa-magic:before{content:"\f0d0"}.fa-truck:before{content:"\f0d1"}.fa-pinterest:before{content:"\f0d2"}.fa-pinterest-square:before{content:"\f0d3"}.fa-google-plus-square:before{content:"\f0d4"}.fa-google-plus:before{content:"\f0d5"}.fa-money:before{content:"\f0d6"}.fa-caret-down:before{content:"\f0d7"}.fa-caret-up:before{content:"\f0d8"}.fa-caret-left:before{content:"\f0d9"}.fa-caret-right:before{content:"\f0da"}.fa-columns:before{content:"\f0db"}.fa-unsorted:before,.fa-sort:before{content:"\f0dc"}.fa-sort-down:before,.fa-sort-desc:before{content:"\f0dd"}.fa-sort-up:before,.fa-sort-asc:before{content:"\f0de"}.fa-envelope:before{content:"\f0e0"}.fa-linkedin:before{content:"\f0e1"}.fa-rotate-left:before,.fa-undo:before{content:"\f0e2"}.fa-legal:before,.fa-gavel:before{content:"\f0e3"}.fa-dashboard:before,.fa-tachometer:before{content:"\f0e4"}.fa-comment-o:before{content:"\f0e5"}.fa-comments-o:before{content:"\f0e6"}.fa-flash:before,.fa-bolt:before{content:"\f0e7"}.fa-sitemap:before{content:"\f0e8"}.fa-umbrella:before{content:"\f0e9"}.fa-paste:before,.fa-clipboard:before{content:"\f0ea"}.fa-lightbulb-o:before{content:"\f0eb"}.fa-exchange:before{content:"\f0ec"}.fa-cloud-download:before{content:"\f0ed"}.fa-cloud-upload:before{content:"\f0ee"}.fa-user-md:before{content:"\f0f0"}.fa-stethoscope:before{content:"\f0f1"}.fa-suitcase:before{content:"\f0f2"}.fa-bell-o:before{content:"\f0a2"}.fa-coffee:before{content:"\f0f4"}.fa-cutlery:before{content:"\f0f5"}.fa-file-text-o:before{content:"\f0f6"}.fa-building-o:before{content:"\f0f7"}.fa-hospital-o:before{content:"\f0f8"}.fa-ambulance:before{content:"\f0f9"}.fa-medkit:before{content:"\f0fa"}.fa-fighter-jet:before{content:"\f0fb"}.fa-beer:before{content:"\f0fc"}.fa-h-square:before{content:"\f0fd"}.fa-plus-square:before{content:"\f0fe"}.fa-angle-double-left:before{content:"\f100"}.fa-angle-double-right:before{content:"\f101"}.fa-angle-double-up:before{content:"\f102"}.fa-angle-double-down:before{content:"\f103"}.fa-angle-left:before{content:"\f104"}.fa-angle-right:before{content:"\f105"}.fa-angle-up:before{content:"\f106"}.fa-angle-down:before{content:"\f107"}.fa-desktop:before{content:"\f108"}.fa-laptop:before{content:"\f109"}.fa-tablet:before{content:"\f10a"}.fa-mobile-phone:before,.fa-mobile:before{content:"\f10b"}.fa-circle-o:before{content:"\f10c"}.fa-quote-left:before{content:"\f10d"}.fa-quote-right:before{content:"\f10e"}.fa-spinner:before{content:"\f110"}.fa-circle:before{content:"\f111"}.fa-mail-reply:before,.fa-reply:before{content:"\f112"}.fa-github-alt:before{content:"\f113"}.fa-folder-o:before{content:"\f114"}.fa-folder-open-o:before{content:"\f115"}.fa-smile-o:before{content:"\f118"}.fa-frown-o:before{content:"\f119"}.fa-meh-o:before{content:"\f11a"}.fa-gamepad:before{content:"\f11b"}.fa-keyboard-o:before{content:"\f11c"}.fa-flag-o:before{content:"\f11d"}.fa-flag-checkered:before{content:"\f11e"}.fa-terminal:before{content:"\f120"}.fa-code:before{content:"\f121"}.fa-mail-reply-all:before,.fa-reply-all:before{content:"\f122"}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:"\f123"}.fa-location-arrow:before{content:"\f124"}.fa-crop:before{content:"\f125"}.fa-code-fork:before{content:"\f126"}.fa-unlink:before,.fa-chain-broken:before{content:"\f127"}.fa-question:before{content:"\f128"}.fa-info:before{content:"\f129"}.fa-exclamation:before{content:"\f12a"}.fa-superscript:before{content:"\f12b"}.fa-subscript:before{content:"\f12c"}.fa-eraser:before{content:"\f12d"}.fa-puzzle-piece:before{content:"\f12e"}.fa-microphone:before{content:"\f130"}.fa-microphone-slash:before{content:"\f131"}.fa-shield:before{content:"\f132"}.fa-calendar-o:before{content:"\f133"}.fa-fire-extinguisher:before{content:"\f134"}.fa-rocket:before{content:"\f135"}.fa-maxcdn:before{content:"\f136"}.fa-chevron-circle-left:before{content:"\f137"}.fa-chevron-circle-right:before{content:"\f138"}.fa-chevron-circle-up:before{content:"\f139"}.fa-chevron-circle-down:before{content:"\f13a"}.fa-html5:before{content:"\f13b"}.fa-css3:before{content:"\f13c"}.fa-anchor:before{content:"\f13d"}.fa-unlock-alt:before{content:"\f13e"}.fa-bullseye:before{content:"\f140"}.fa-ellipsis-h:before{content:"\f141"}.fa-ellipsis-v:before{content:"\f142"}.fa-rss-square:before{content:"\f143"}.fa-play-circle:before{content:"\f144"}.fa-ticket:before{content:"\f145"}.fa-minus-square:before{content:"\f146"}.fa-minus-square-o:before{content:"\f147"}.fa-level-up:before{content:"\f148"}.fa-level-down:before{content:"\f149"}.fa-check-square:before{content:"\f14a"}.fa-pencil-square:before{content:"\f14b"}.fa-external-link-square:before{content:"\f14c"}.fa-share-square:before{content:"\f14d"}.fa-compass:before{content:"\f14e"}.fa-toggle-down:before,.fa-caret-square-o-down:before{content:"\f150"}.fa-toggle-up:before,.fa-caret-square-o-up:before{content:"\f151"}.fa-toggle-right:before,.fa-caret-square-o-right:before{content:"\f152"}.fa-euro:before,.fa-eur:before{content:"\f153"}.fa-gbp:before{content:"\f154"}.fa-dollar:before,.fa-usd:before{content:"\f155"}.fa-rupee:before,.fa-inr:before{content:"\f156"}.fa-cny:before,.fa-rmb:before,.fa-yen:before,.fa-jpy:before{content:"\f157"}.fa-ruble:before,.fa-rouble:before,.fa-rub:before{content:"\f158"}.fa-won:before,.fa-krw:before{content:"\f159"}.fa-bitcoin:before,.fa-btc:before{content:"\f15a"}.fa-file:before{content:"\f15b"}.fa-file-text:before{content:"\f15c"}.fa-sort-alpha-asc:before{content:"\f15d"}.fa-sort-alpha-desc:before{content:"\f15e"}.fa-sort-amount-asc:before{content:"\f160"}.fa-sort-amount-desc:before{content:"\f161"}.fa-sort-numeric-asc:before{content:"\f162"}.fa-sort-numeric-desc:before{content:"\f163"}.fa-thumbs-up:before{content:"\f164"}.fa-thumbs-down:before{content:"\f165"}.fa-youtube-square:before{content:"\f166"}.fa-youtube:before{content:"\f167"}.fa-xing:before{content:"\f168"}.fa-xing-square:before{content:"\f169"}.fa-youtube-play:before{content:"\f16a"}.fa-dropbox:before{content:"\f16b"}.fa-stack-overflow:before{content:"\f16c"}.fa-instagram:before{content:"\f16d"}.fa-flickr:before{content:"\f16e"}.fa-adn:before{content:"\f170"}.fa-bitbucket:before{content:"\f171"}.fa-bitbucket-square:before{content:"\f172"}.fa-tumblr:before{content:"\f173"}.fa-tumblr-square:before{content:"\f174"}.fa-long-arrow-down:before{content:"\f175"}.fa-long-arrow-up:before{content:"\f176"}.fa-long-arrow-left:before{content:"\f177"}.fa-long-arrow-right:before{content:"\f178"}.fa-apple:before{content:"\f179"}.fa-windows:before{content:"\f17a"}.fa-android:before{content:"\f17b"}.fa-linux:before{content:"\f17c"}.fa-dribbble:before{content:"\f17d"}.fa-skype:before{content:"\f17e"}.fa-foursquare:before{content:"\f180"}.fa-trello:before{content:"\f181"}.fa-female:before{content:"\f182"}.fa-male:before{content:"\f183"}.fa-gittip:before,.fa-gratipay:before{content:"\f184"}.fa-sun-o:before{content:"\f185"}.fa-moon-o:before{content:"\f186"}.fa-archive:before{content:"\f187"}.fa-bug:before{content:"\f188"}.fa-vk:before{content:"\f189"}.fa-weibo:before{content:"\f18a"}.fa-renren:before{content:"\f18b"}.fa-pagelines:before{content:"\f18c"}.fa-stack-exchange:before{content:"\f18d"}.fa-arrow-circle-o-right:before{content:"\f18e"}.fa-arrow-circle-o-left:before{content:"\f190"}.fa-toggle-left:before,.fa-caret-square-o-left:before{content:"\f191"}.fa-dot-circle-o:before{content:"\f192"}.fa-wheelchair:before{content:"\f193"}.fa-vimeo-square:before{content:"\f194"}.fa-turkish-lira:before,.fa-try:before{content:"\f195"}.fa-plus-square-o:before{content:"\f196"}.fa-space-shuttle:before{content:"\f197"}.fa-slack:before{content:"\f198"}.fa-envelope-square:before{content:"\f199"}.fa-wordpress:before{content:"\f19a"}.fa-openid:before{content:"\f19b"}.fa-institution:before,.fa-bank:before,.fa-university:before{content:"\f19c"}.fa-mortar-board:before,.fa-graduation-cap:before{content:"\f19d"}.fa-yahoo:before{content:"\f19e"}.fa-google:before{content:"\f1a0"}.fa-reddit:before{content:"\f1a1"}.fa-reddit-square:before{content:"\f1a2"}.fa-stumbleupon-circle:before{content:"\f1a3"}.fa-stumbleupon:before{content:"\f1a4"}.fa-delicious:before{content:"\f1a5"}.fa-digg:before{content:"\f1a6"}.fa-pied-piper-pp:before{content:"\f1a7"}.fa-pied-piper-alt:before{content:"\f1a8"}.fa-drupal:before{content:"\f1a9"}.fa-joomla:before{content:"\f1aa"}.fa-language:before{content:"\f1ab"}.fa-fax:before{content:"\f1ac"}.fa-building:before{content:"\f1ad"}.fa-child:before{content:"\f1ae"}.fa-paw:before{content:"\f1b0"}.fa-spoon:before{content:"\f1b1"}.fa-cube:before{content:"\f1b2"}.fa-cubes:before{content:"\f1b3"}.fa-behance:before{content:"\f1b4"}.fa-behance-square:before{content:"\f1b5"}.fa-steam:before{content:"\f1b6"}.fa-steam-square:before{content:"\f1b7"}.fa-recycle:before{content:"\f1b8"}.fa-automobile:before,.fa-car:before{content:"\f1b9"}.fa-cab:before,.fa-taxi:before{content:"\f1ba"}.fa-tree:before{content:"\f1bb"}.fa-spotify:before{content:"\f1bc"}.fa-deviantart:before{content:"\f1bd"}.fa-soundcloud:before{content:"\f1be"}.fa-database:before{content:"\f1c0"}.fa-file-pdf-o:before{content:"\f1c1"}.fa-file-word-o:before{content:"\f1c2"}.fa-file-excel-o:before{content:"\f1c3"}.fa-file-powerpoint-o:before{content:"\f1c4"}.fa-file-photo-o:before,.fa-file-picture-o:before,.fa-file-image-o:before{content:"\f1c5"}.fa-file-zip-o:before,.fa-file-archive-o:before{content:"\f1c6"}.fa-file-sound-o:before,.fa-file-audio-o:before{content:"\f1c7"}.fa-file-movie-o:before,.fa-file-video-o:before{content:"\f1c8"}.fa-file-code-o:before{content:"\f1c9"}.fa-vine:before{content:"\f1ca"}.fa-codepen:before{content:"\f1cb"}.fa-jsfiddle:before{content:"\f1cc"}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-saver:before,.fa-support:before,.fa-life-ring:before{content:"\f1cd"}.fa-circle-o-notch:before{content:"\f1ce"}.fa-ra:before,.fa-resistance:before,.fa-rebel:before{content:"\f1d0"}.fa-ge:before,.fa-empire:before{content:"\f1d1"}.fa-git-square:before{content:"\f1d2"}.fa-git:before{content:"\f1d3"}.fa-y-combinator-square:before,.fa-yc-square:before,.fa-hacker-news:before{content:"\f1d4"}.fa-tencent-weibo:before{content:"\f1d5"}.fa-qq:before{content:"\f1d6"}.fa-wechat:before,.fa-weixin:before{content:"\f1d7"}.fa-send:before,.fa-paper-plane:before{content:"\f1d8"}.fa-send-o:before,.fa-paper-plane-o:before{content:"\f1d9"}.fa-history:before{content:"\f1da"}.fa-circle-thin:before{content:"\f1db"}.fa-header:before{content:"\f1dc"}.fa-paragraph:before{content:"\f1dd"}.fa-sliders:before{content:"\f1de"}.fa-share-alt:before{content:"\f1e0"}.fa-share-alt-square:before{content:"\f1e1"}.fa-bomb:before{content:"\f1e2"}.fa-soccer-ball-o:before,.fa-futbol-o:before{content:"\f1e3"}.fa-tty:before{content:"\f1e4"}.fa-binoculars:before{content:"\f1e5"}.fa-plug:before{content:"\f1e6"}.fa-slideshare:before{content:"\f1e7"}.fa-twitch:before{content:"\f1e8"}.fa-yelp:before{content:"\f1e9"}.fa-newspaper-o:before{content:"\f1ea"}.fa-wifi:before{content:"\f1eb"}.fa-calculator:before{content:"\f1ec"}.fa-paypal:before{content:"\f1ed"}.fa-google-wallet:before{content:"\f1ee"}.fa-cc-visa:before{content:"\f1f0"}.fa-cc-mastercard:before{content:"\f1f1"}.fa-cc-discover:before{content:"\f1f2"}.fa-cc-amex:before{content:"\f1f3"}.fa-cc-paypal:before{content:"\f1f4"}.fa-cc-stripe:before{content:"\f1f5"}.fa-bell-slash:before{content:"\f1f6"}.fa-bell-slash-o:before{content:"\f1f7"}.fa-trash:before{content:"\f1f8"}.fa-copyright:before{content:"\f1f9"}.fa-at:before{content:"\f1fa"}.fa-eyedropper:before{content:"\f1fb"}.fa-paint-brush:before{content:"\f1fc"}.fa-birthday-cake:before{content:"\f1fd"}.fa-area-chart:before{content:"\f1fe"}.fa-pie-chart:before{content:"\f200"}.fa-line-chart:before{content:"\f201"}.fa-lastfm:before{content:"\f202"}.fa-lastfm-square:before{content:"\f203"}.fa-toggle-off:before{content:"\f204"}.fa-toggle-on:before{content:"\f205"}.fa-bicycle:before{content:"\f206"}.fa-bus:before{content:"\f207"}.fa-ioxhost:before{content:"\f208"}.fa-angellist:before{content:"\f209"}.fa-cc:before{content:"\f20a"}.fa-shekel:before,.fa-sheqel:before,.fa-ils:before{content:"\f20b"}.fa-meanpath:before{content:"\f20c"}.fa-buysellads:before{content:"\f20d"}.fa-connectdevelop:before{content:"\f20e"}.fa-dashcube:before{content:"\f210"}.fa-forumbee:before{content:"\f211"}.fa-leanpub:before{content:"\f212"}.fa-sellsy:before{content:"\f213"}.fa-shirtsinbulk:before{content:"\f214"}.fa-simplybuilt:before{content:"\f215"}.fa-skyatlas:before{content:"\f216"}.fa-cart-plus:before{content:"\f217"}.fa-cart-arrow-down:before{content:"\f218"}.fa-diamond:before{content:"\f219"}.fa-ship:before{content:"\f21a"}.fa-user-secret:before{content:"\f21b"}.fa-motorcycle:before{content:"\f21c"}.fa-street-view:before{content:"\f21d"}.fa-heartbeat:before{content:"\f21e"}.fa-venus:before{content:"\f221"}.fa-mars:before{content:"\f222"}.fa-mercury:before{content:"\f223"}.fa-intersex:before,.fa-transgender:before{content:"\f224"}.fa-transgender-alt:before{content:"\f225"}.fa-venus-double:before{content:"\f226"}.fa-mars-double:before{content:"\f227"}.fa-venus-mars:before{content:"\f228"}.fa-mars-stroke:before{content:"\f229"}.fa-mars-stroke-v:before{content:"\f22a"}.fa-mars-stroke-h:before{content:"\f22b"}.fa-neuter:before{content:"\f22c"}.fa-genderless:before{content:"\f22d"}.fa-facebook-official:before{content:"\f230"}.fa-pinterest-p:before{content:"\f231"}.fa-whatsapp:before{content:"\f232"}.fa-server:before{content:"\f233"}.fa-user-plus:before{content:"\f234"}.fa-user-times:before{content:"\f235"}.fa-hotel:before,.fa-bed:before{content:"\f236"}.fa-viacoin:before{content:"\f237"}.fa-train:before{content:"\f238"}.fa-subway:before{content:"\f239"}.fa-medium:before{content:"\f23a"}.fa-yc:before,.fa-y-combinator:before{content:"\f23b"}.fa-optin-monster:before{content:"\f23c"}.fa-opencart:before{content:"\f23d"}.fa-expeditedssl:before{content:"\f23e"}.fa-battery-4:before,.fa-battery:before,.fa-battery-full:before{content:"\f240"}.fa-battery-3:before,.fa-battery-three-quarters:before{content:"\f241"}.fa-battery-2:before,.fa-battery-half:before{content:"\f242"}.fa-battery-1:before,.fa-battery-quarter:before{content:"\f243"}.fa-battery-0:before,.fa-battery-empty:before{content:"\f244"}.fa-mouse-pointer:before{content:"\f245"}.fa-i-cursor:before{content:"\f246"}.fa-object-group:before{content:"\f247"}.fa-object-ungroup:before{content:"\f248"}.fa-sticky-note:before{content:"\f249"}.fa-sticky-note-o:before{content:"\f24a"}.fa-cc-jcb:before{content:"\f24b"}.fa-cc-diners-club:before{content:"\f24c"}.fa-clone:before{content:"\f24d"}.fa-balance-scale:before{content:"\f24e"}.fa-hourglass-o:before{content:"\f250"}.fa-hourglass-1:before,.fa-hourglass-start:before{content:"\f251"}.fa-hourglass-2:before,.fa-hourglass-half:before{content:"\f252"}.fa-hourglass-3:before,.fa-hourglass-end:before{content:"\f253"}.fa-hourglass:before{content:"\f254"}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:"\f255"}.fa-hand-stop-o:before,.fa-hand-paper-o:before{content:"\f256"}.fa-hand-scissors-o:before{content:"\f257"}.fa-hand-lizard-o:before{content:"\f258"}.fa-hand-spock-o:before{content:"\f259"}.fa-hand-pointer-o:before{content:"\f25a"}.fa-hand-peace-o:before{content:"\f25b"}.fa-trademark:before{content:"\f25c"}.fa-registered:before{content:"\f25d"}.fa-creative-commons:before{content:"\f25e"}.fa-gg:before{content:"\f260"}.fa-gg-circle:before{content:"\f261"}.fa-tripadvisor:before{content:"\f262"}.fa-odnoklassniki:before{content:"\f263"}.fa-odnoklassniki-square:before{content:"\f264"}.fa-get-pocket:before{content:"\f265"}.fa-wikipedia-w:before{content:"\f266"}.fa-safari:before{content:"\f267"}.fa-chrome:before{content:"\f268"}.fa-firefox:before{content:"\f269"}.fa-opera:before{content:"\f26a"}.fa-internet-explorer:before{content:"\f26b"}.fa-tv:before,.fa-television:before{content:"\f26c"}.fa-contao:before{content:"\f26d"}.fa-500px:before{content:"\f26e"}.fa-amazon:before{content:"\f270"}.fa-calendar-plus-o:before{content:"\f271"}.fa-calendar-minus-o:before{content:"\f272"}.fa-calendar-times-o:before{content:"\f273"}.fa-calendar-check-o:before{content:"\f274"}.fa-industry:before{content:"\f275"}.fa-map-pin:before{content:"\f276"}.fa-map-signs:before{content:"\f277"}.fa-map-o:before{content:"\f278"}.fa-map:before{content:"\f279"}.fa-commenting:before{content:"\f27a"}.fa-commenting-o:before{content:"\f27b"}.fa-houzz:before{content:"\f27c"}.fa-vimeo:before{content:"\f27d"}.fa-black-tie:before{content:"\f27e"}.fa-fonticons:before{content:"\f280"}.fa-reddit-alien:before{content:"\f281"}.fa-edge:before{content:"\f282"}.fa-credit-card-alt:before{content:"\f283"}.fa-codiepie:before{content:"\f284"}.fa-modx:before{content:"\f285"}.fa-fort-awesome:before{content:"\f286"}.fa-usb:before{content:"\f287"}.fa-product-hunt:before{content:"\f288"}.fa-mixcloud:before{content:"\f289"}.fa-scribd:before{content:"\f28a"}.fa-pause-circle:before{content:"\f28b"}.fa-pause-circle-o:before{content:"\f28c"}.fa-stop-circle:before{content:"\f28d"}.fa-stop-circle-o:before{content:"\f28e"}.fa-shopping-bag:before{content:"\f290"}.fa-shopping-basket:before{content:"\f291"}.fa-hashtag:before{content:"\f292"}.fa-bluetooth:before{content:"\f293"}.fa-bluetooth-b:before{content:"\f294"}.fa-percent:before{content:"\f295"}.fa-gitlab:before{content:"\f296"}.fa-wpbeginner:before{content:"\f297"}.fa-wpforms:before{content:"\f298"}.fa-envira:before{content:"\f299"}.fa-universal-access:before{content:"\f29a"}.fa-wheelchair-alt:before{content:"\f29b"}.fa-question-circle-o:before{content:"\f29c"}.fa-blind:before{content:"\f29d"}.fa-audio-description:before{content:"\f29e"}.fa-volume-control-phone:before{content:"\f2a0"}.fa-braille:before{content:"\f2a1"}.fa-assistive-listening-systems:before{content:"\f2a2"}.fa-asl-interpreting:before,.fa-american-sign-language-interpreting:before{content:"\f2a3"}.fa-deafness:before,.fa-hard-of-hearing:before,.fa-deaf:before{content:"\f2a4"}.fa-glide:before{content:"\f2a5"}.fa-glide-g:before{content:"\f2a6"}.fa-signing:before,.fa-sign-language:before{content:"\f2a7"}.fa-low-vision:before{content:"\f2a8"}.fa-viadeo:before{content:"\f2a9"}.fa-viadeo-square:before{content:"\f2aa"}.fa-snapchat:before{content:"\f2ab"}.fa-snapchat-ghost:before{content:"\f2ac"}.fa-snapchat-square:before{content:"\f2ad"}.fa-pied-piper:before{content:"\f2ae"}.fa-first-order:before{content:"\f2b0"}.fa-yoast:before{content:"\f2b1"}.fa-themeisle:before{content:"\f2b2"}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:"\f2b3"}.fa-fa:before,.fa-font-awesome:before{content:"\f2b4"}.fa-handshake-o:before{content:"\f2b5"}.fa-envelope-open:before{content:"\f2b6"}.fa-envelope-open-o:before{content:"\f2b7"}.fa-linode:before{content:"\f2b8"}.fa-address-book:before{content:"\f2b9"}.fa-address-book-o:before{content:"\f2ba"}.fa-vcard:before,.fa-address-card:before{content:"\f2bb"}.fa-vcard-o:before,.fa-address-card-o:before{content:"\f2bc"}.fa-user-circle:before{content:"\f2bd"}.fa-user-circle-o:before{content:"\f2be"}.fa-user-o:before{content:"\f2c0"}.fa-id-badge:before{content:"\f2c1"}.fa-drivers-license:before,.fa-id-card:before{content:"\f2c2"}.fa-drivers-license-o:before,.fa-id-card-o:before{content:"\f2c3"}.fa-quora:before{content:"\f2c4"}.fa-free-code-camp:before{content:"\f2c5"}.fa-telegram:before{content:"\f2c6"}.fa-thermometer-4:before,.fa-thermometer:before,.fa-thermometer-full:before{content:"\f2c7"}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:"\f2c8"}.fa-thermometer-2:before,.fa-thermometer-half:before{content:"\f2c9"}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:"\f2ca"}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:"\f2cb"}.fa-shower:before{content:"\f2cc"}.fa-bathtub:before,.fa-s15:before,.fa-bath:before{content:"\f2cd"}.fa-podcast:before{content:"\f2ce"}.fa-window-maximize:before{content:"\f2d0"}.fa-window-minimize:before{content:"\f2d1"}.fa-window-restore:before{content:"\f2d2"}.fa-times-rectangle:before,.fa-window-close:before{content:"\f2d3"}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:"\f2d4"}.fa-bandcamp:before{content:"\f2d5"}.fa-grav:before{content:"\f2d6"}.fa-etsy:before{content:"\f2d7"}.fa-imdb:before{content:"\f2d8"}.fa-ravelry:before{content:"\f2d9"}.fa-eercast:before{content:"\f2da"}.fa-microchip:before{content:"\f2db"}.fa-snowflake-o:before{content:"\f2dc"}.fa-superpowers:before{content:"\f2dd"}.fa-wpexplorer:before{content:"\f2de"}.fa-meetup:before{content:"\f2e0"}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto} + */ +@font-face { + font-family: "FontAwesome"; + src: url("../fonts/fontawesome-webfont.eot?v=4.7.0"); + src: + url("../fonts/fontawesome-webfont.eot?#iefix&v=4.7.0") + format("embedded-opentype"), + url("../fonts/fontawesome-webfont.woff2?v=4.7.0") format("woff2"), + url("../fonts/fontawesome-webfont.woff?v=4.7.0") format("woff"), + url("../fonts/fontawesome-webfont.ttf?v=4.7.0") format("truetype"), + url("../fonts/fontawesome-webfont.svg?v=4.7.0#fontawesomeregular") + format("svg"); + font-weight: normal; + font-style: normal; +} +.fa { + display: inline-block; + font: normal normal normal 14px/1 FontAwesome; + font-size: inherit; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} +.fa-lg { + font-size: 1.33333333em; + line-height: 0.75em; + vertical-align: -15%; +} +.fa-2x { + font-size: 2em; +} +.fa-3x { + font-size: 3em; +} +.fa-4x { + font-size: 4em; +} +.fa-5x { + font-size: 5em; +} +.fa-fw { + width: 1.28571429em; + text-align: center; +} +.fa-ul { + padding-left: 0; + margin-left: 2.14285714em; + list-style-type: none; +} +.fa-ul > li { + position: relative; +} +.fa-li { + position: absolute; + left: -2.14285714em; + width: 2.14285714em; + top: 0.14285714em; + text-align: center; +} +.fa-li.fa-lg { + left: -1.85714286em; +} +.fa-border { + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em #eee; + border-radius: 0.1em; +} +.fa-pull-left { + float: left; +} +.fa-pull-right { + float: right; +} +.fa.fa-pull-left { + margin-right: 0.3em; +} +.fa.fa-pull-right { + margin-left: 0.3em; +} +.pull-right { + float: right; +} +.pull-left { + float: left; +} +.fa.pull-left { + margin-right: 0.3em; +} +.fa.pull-right { + margin-left: 0.3em; +} +.fa-spin { + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; +} +.fa-pulse { + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); +} +@-webkit-keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +@keyframes fa-spin { + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } +} +.fa-rotate-90 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)"; + -webkit-transform: rotate(90deg); + -ms-transform: rotate(90deg); + transform: rotate(90deg); +} +.fa-rotate-180 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)"; + -webkit-transform: rotate(180deg); + -ms-transform: rotate(180deg); + transform: rotate(180deg); +} +.fa-rotate-270 { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)"; + -webkit-transform: rotate(270deg); + -ms-transform: rotate(270deg); + transform: rotate(270deg); +} +.fa-flip-horizontal { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)"; + -webkit-transform: scale(-1, 1); + -ms-transform: scale(-1, 1); + transform: scale(-1, 1); +} +.fa-flip-vertical { + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)"; + -webkit-transform: scale(1, -1); + -ms-transform: scale(1, -1); + transform: scale(1, -1); +} +:root .fa-rotate-90, +:root .fa-rotate-180, +:root .fa-rotate-270, +:root .fa-flip-horizontal, +:root .fa-flip-vertical { + filter: none; +} +.fa-stack { + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; +} +.fa-stack-1x, +.fa-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.fa-stack-1x { + line-height: inherit; +} +.fa-stack-2x { + font-size: 2em; +} +.fa-inverse { + color: #fff; +} +.fa-glass:before { + content: "\f000"; +} +.fa-music:before { + content: "\f001"; +} +.fa-search:before { + content: "\f002"; +} +.fa-envelope-o:before { + content: "\f003"; +} +.fa-heart:before { + content: "\f004"; +} +.fa-star:before { + content: "\f005"; +} +.fa-star-o:before { + content: "\f006"; +} +.fa-user:before { + content: "\f007"; +} +.fa-film:before { + content: "\f008"; +} +.fa-th-large:before { + content: "\f009"; +} +.fa-th:before { + content: "\f00a"; +} +.fa-th-list:before { + content: "\f00b"; +} +.fa-check:before { + content: "\f00c"; +} +.fa-remove:before, +.fa-close:before, +.fa-times:before { + content: "\f00d"; +} +.fa-search-plus:before { + content: "\f00e"; +} +.fa-search-minus:before { + content: "\f010"; +} +.fa-power-off:before { + content: "\f011"; +} +.fa-signal:before { + content: "\f012"; +} +.fa-gear:before, +.fa-cog:before { + content: "\f013"; +} +.fa-trash-o:before { + content: "\f014"; +} +.fa-home:before { + content: "\f015"; +} +.fa-file-o:before { + content: "\f016"; +} +.fa-clock-o:before { + content: "\f017"; +} +.fa-road:before { + content: "\f018"; +} +.fa-download:before { + content: "\f019"; +} +.fa-arrow-circle-o-down:before { + content: "\f01a"; +} +.fa-arrow-circle-o-up:before { + content: "\f01b"; +} +.fa-inbox:before { + content: "\f01c"; +} +.fa-play-circle-o:before { + content: "\f01d"; +} +.fa-rotate-right:before, +.fa-repeat:before { + content: "\f01e"; +} +.fa-refresh:before { + content: "\f021"; +} +.fa-list-alt:before { + content: "\f022"; +} +.fa-lock:before { + content: "\f023"; +} +.fa-flag:before { + content: "\f024"; +} +.fa-headphones:before { + content: "\f025"; +} +.fa-volume-off:before { + content: "\f026"; +} +.fa-volume-down:before { + content: "\f027"; +} +.fa-volume-up:before { + content: "\f028"; +} +.fa-qrcode:before { + content: "\f029"; +} +.fa-barcode:before { + content: "\f02a"; +} +.fa-tag:before { + content: "\f02b"; +} +.fa-tags:before { + content: "\f02c"; +} +.fa-book:before { + content: "\f02d"; +} +.fa-bookmark:before { + content: "\f02e"; +} +.fa-print:before { + content: "\f02f"; +} +.fa-camera:before { + content: "\f030"; +} +.fa-font:before { + content: "\f031"; +} +.fa-bold:before { + content: "\f032"; +} +.fa-italic:before { + content: "\f033"; +} +.fa-text-height:before { + content: "\f034"; +} +.fa-text-width:before { + content: "\f035"; +} +.fa-align-left:before { + content: "\f036"; +} +.fa-align-center:before { + content: "\f037"; +} +.fa-align-right:before { + content: "\f038"; +} +.fa-align-justify:before { + content: "\f039"; +} +.fa-list:before { + content: "\f03a"; +} +.fa-dedent:before, +.fa-outdent:before { + content: "\f03b"; +} +.fa-indent:before { + content: "\f03c"; +} +.fa-video-camera:before { + content: "\f03d"; +} +.fa-photo:before, +.fa-image:before, +.fa-picture-o:before { + content: "\f03e"; +} +.fa-pencil:before { + content: "\f040"; +} +.fa-map-marker:before { + content: "\f041"; +} +.fa-adjust:before { + content: "\f042"; +} +.fa-tint:before { + content: "\f043"; +} +.fa-edit:before, +.fa-pencil-square-o:before { + content: "\f044"; +} +.fa-share-square-o:before { + content: "\f045"; +} +.fa-check-square-o:before { + content: "\f046"; +} +.fa-arrows:before { + content: "\f047"; +} +.fa-step-backward:before { + content: "\f048"; +} +.fa-fast-backward:before { + content: "\f049"; +} +.fa-backward:before { + content: "\f04a"; +} +.fa-play:before { + content: "\f04b"; +} +.fa-pause:before { + content: "\f04c"; +} +.fa-stop:before { + content: "\f04d"; +} +.fa-forward:before { + content: "\f04e"; +} +.fa-fast-forward:before { + content: "\f050"; +} +.fa-step-forward:before { + content: "\f051"; +} +.fa-eject:before { + content: "\f052"; +} +.fa-chevron-left:before { + content: "\f053"; +} +.fa-chevron-right:before { + content: "\f054"; +} +.fa-plus-circle:before { + content: "\f055"; +} +.fa-minus-circle:before { + content: "\f056"; +} +.fa-times-circle:before { + content: "\f057"; +} +.fa-check-circle:before { + content: "\f058"; +} +.fa-question-circle:before { + content: "\f059"; +} +.fa-info-circle:before { + content: "\f05a"; +} +.fa-crosshairs:before { + content: "\f05b"; +} +.fa-times-circle-o:before { + content: "\f05c"; +} +.fa-check-circle-o:before { + content: "\f05d"; +} +.fa-ban:before { + content: "\f05e"; +} +.fa-arrow-left:before { + content: "\f060"; +} +.fa-arrow-right:before { + content: "\f061"; +} +.fa-arrow-up:before { + content: "\f062"; +} +.fa-arrow-down:before { + content: "\f063"; +} +.fa-mail-forward:before, +.fa-share:before { + content: "\f064"; +} +.fa-expand:before { + content: "\f065"; +} +.fa-compress:before { + content: "\f066"; +} +.fa-plus:before { + content: "\f067"; +} +.fa-minus:before { + content: "\f068"; +} +.fa-asterisk:before { + content: "\f069"; +} +.fa-exclamation-circle:before { + content: "\f06a"; +} +.fa-gift:before { + content: "\f06b"; +} +.fa-leaf:before { + content: "\f06c"; +} +.fa-fire:before { + content: "\f06d"; +} +.fa-eye:before { + content: "\f06e"; +} +.fa-eye-slash:before { + content: "\f070"; +} +.fa-warning:before, +.fa-exclamation-triangle:before { + content: "\f071"; +} +.fa-plane:before { + content: "\f072"; +} +.fa-calendar:before { + content: "\f073"; +} +.fa-random:before { + content: "\f074"; +} +.fa-comment:before { + content: "\f075"; +} +.fa-magnet:before { + content: "\f076"; +} +.fa-chevron-up:before { + content: "\f077"; +} +.fa-chevron-down:before { + content: "\f078"; +} +.fa-retweet:before { + content: "\f079"; +} +.fa-shopping-cart:before { + content: "\f07a"; +} +.fa-folder:before { + content: "\f07b"; +} +.fa-folder-open:before { + content: "\f07c"; +} +.fa-arrows-v:before { + content: "\f07d"; +} +.fa-arrows-h:before { + content: "\f07e"; +} +.fa-bar-chart-o:before, +.fa-bar-chart:before { + content: "\f080"; +} +.fa-twitter-square:before { + content: "\f081"; +} +.fa-facebook-square:before { + content: "\f082"; +} +.fa-camera-retro:before { + content: "\f083"; +} +.fa-key:before { + content: "\f084"; +} +.fa-gears:before, +.fa-cogs:before { + content: "\f085"; +} +.fa-comments:before { + content: "\f086"; +} +.fa-thumbs-o-up:before { + content: "\f087"; +} +.fa-thumbs-o-down:before { + content: "\f088"; +} +.fa-star-half:before { + content: "\f089"; +} +.fa-heart-o:before { + content: "\f08a"; +} +.fa-sign-out:before { + content: "\f08b"; +} +.fa-linkedin-square:before { + content: "\f08c"; +} +.fa-thumb-tack:before { + content: "\f08d"; +} +.fa-external-link:before { + content: "\f08e"; +} +.fa-sign-in:before { + content: "\f090"; +} +.fa-trophy:before { + content: "\f091"; +} +.fa-github-square:before { + content: "\f092"; +} +.fa-upload:before { + content: "\f093"; +} +.fa-lemon-o:before { + content: "\f094"; +} +.fa-phone:before { + content: "\f095"; +} +.fa-square-o:before { + content: "\f096"; +} +.fa-bookmark-o:before { + content: "\f097"; +} +.fa-phone-square:before { + content: "\f098"; +} +.fa-twitter:before { + content: "\f099"; +} +.fa-facebook-f:before, +.fa-facebook:before { + content: "\f09a"; +} +.fa-github:before { + content: "\f09b"; +} +.fa-unlock:before { + content: "\f09c"; +} +.fa-credit-card:before { + content: "\f09d"; +} +.fa-feed:before, +.fa-rss:before { + content: "\f09e"; +} +.fa-hdd-o:before { + content: "\f0a0"; +} +.fa-bullhorn:before { + content: "\f0a1"; +} +.fa-bell:before { + content: "\f0f3"; +} +.fa-certificate:before { + content: "\f0a3"; +} +.fa-hand-o-right:before { + content: "\f0a4"; +} +.fa-hand-o-left:before { + content: "\f0a5"; +} +.fa-hand-o-up:before { + content: "\f0a6"; +} +.fa-hand-o-down:before { + content: "\f0a7"; +} +.fa-arrow-circle-left:before { + content: "\f0a8"; +} +.fa-arrow-circle-right:before { + content: "\f0a9"; +} +.fa-arrow-circle-up:before { + content: "\f0aa"; +} +.fa-arrow-circle-down:before { + content: "\f0ab"; +} +.fa-globe:before { + content: "\f0ac"; +} +.fa-wrench:before { + content: "\f0ad"; +} +.fa-tasks:before { + content: "\f0ae"; +} +.fa-filter:before { + content: "\f0b0"; +} +.fa-briefcase:before { + content: "\f0b1"; +} +.fa-arrows-alt:before { + content: "\f0b2"; +} +.fa-group:before, +.fa-users:before { + content: "\f0c0"; +} +.fa-chain:before, +.fa-link:before { + content: "\f0c1"; +} +.fa-cloud:before { + content: "\f0c2"; +} +.fa-flask:before { + content: "\f0c3"; +} +.fa-cut:before, +.fa-scissors:before { + content: "\f0c4"; +} +.fa-copy:before, +.fa-files-o:before { + content: "\f0c5"; +} +.fa-paperclip:before { + content: "\f0c6"; +} +.fa-save:before, +.fa-floppy-o:before { + content: "\f0c7"; +} +.fa-square:before { + content: "\f0c8"; +} +.fa-navicon:before, +.fa-reorder:before, +.fa-bars:before { + content: "\f0c9"; +} +.fa-list-ul:before { + content: "\f0ca"; +} +.fa-list-ol:before { + content: "\f0cb"; +} +.fa-strikethrough:before { + content: "\f0cc"; +} +.fa-underline:before { + content: "\f0cd"; +} +.fa-table:before { + content: "\f0ce"; +} +.fa-magic:before { + content: "\f0d0"; +} +.fa-truck:before { + content: "\f0d1"; +} +.fa-pinterest:before { + content: "\f0d2"; +} +.fa-pinterest-square:before { + content: "\f0d3"; +} +.fa-google-plus-square:before { + content: "\f0d4"; +} +.fa-google-plus:before { + content: "\f0d5"; +} +.fa-money:before { + content: "\f0d6"; +} +.fa-caret-down:before { + content: "\f0d7"; +} +.fa-caret-up:before { + content: "\f0d8"; +} +.fa-caret-left:before { + content: "\f0d9"; +} +.fa-caret-right:before { + content: "\f0da"; +} +.fa-columns:before { + content: "\f0db"; +} +.fa-unsorted:before, +.fa-sort:before { + content: "\f0dc"; +} +.fa-sort-down:before, +.fa-sort-desc:before { + content: "\f0dd"; +} +.fa-sort-up:before, +.fa-sort-asc:before { + content: "\f0de"; +} +.fa-envelope:before { + content: "\f0e0"; +} +.fa-linkedin:before { + content: "\f0e1"; +} +.fa-rotate-left:before, +.fa-undo:before { + content: "\f0e2"; +} +.fa-legal:before, +.fa-gavel:before { + content: "\f0e3"; +} +.fa-dashboard:before, +.fa-tachometer:before { + content: "\f0e4"; +} +.fa-comment-o:before { + content: "\f0e5"; +} +.fa-comments-o:before { + content: "\f0e6"; +} +.fa-flash:before, +.fa-bolt:before { + content: "\f0e7"; +} +.fa-sitemap:before { + content: "\f0e8"; +} +.fa-umbrella:before { + content: "\f0e9"; +} +.fa-paste:before, +.fa-clipboard:before { + content: "\f0ea"; +} +.fa-lightbulb-o:before { + content: "\f0eb"; +} +.fa-exchange:before { + content: "\f0ec"; +} +.fa-cloud-download:before { + content: "\f0ed"; +} +.fa-cloud-upload:before { + content: "\f0ee"; +} +.fa-user-md:before { + content: "\f0f0"; +} +.fa-stethoscope:before { + content: "\f0f1"; +} +.fa-suitcase:before { + content: "\f0f2"; +} +.fa-bell-o:before { + content: "\f0a2"; +} +.fa-coffee:before { + content: "\f0f4"; +} +.fa-cutlery:before { + content: "\f0f5"; +} +.fa-file-text-o:before { + content: "\f0f6"; +} +.fa-building-o:before { + content: "\f0f7"; +} +.fa-hospital-o:before { + content: "\f0f8"; +} +.fa-ambulance:before { + content: "\f0f9"; +} +.fa-medkit:before { + content: "\f0fa"; +} +.fa-fighter-jet:before { + content: "\f0fb"; +} +.fa-beer:before { + content: "\f0fc"; +} +.fa-h-square:before { + content: "\f0fd"; +} +.fa-plus-square:before { + content: "\f0fe"; +} +.fa-angle-double-left:before { + content: "\f100"; +} +.fa-angle-double-right:before { + content: "\f101"; +} +.fa-angle-double-up:before { + content: "\f102"; +} +.fa-angle-double-down:before { + content: "\f103"; +} +.fa-angle-left:before { + content: "\f104"; +} +.fa-angle-right:before { + content: "\f105"; +} +.fa-angle-up:before { + content: "\f106"; +} +.fa-angle-down:before { + content: "\f107"; +} +.fa-desktop:before { + content: "\f108"; +} +.fa-laptop:before { + content: "\f109"; +} +.fa-tablet:before { + content: "\f10a"; +} +.fa-mobile-phone:before, +.fa-mobile:before { + content: "\f10b"; +} +.fa-circle-o:before { + content: "\f10c"; +} +.fa-quote-left:before { + content: "\f10d"; +} +.fa-quote-right:before { + content: "\f10e"; +} +.fa-spinner:before { + content: "\f110"; +} +.fa-circle:before { + content: "\f111"; +} +.fa-mail-reply:before, +.fa-reply:before { + content: "\f112"; +} +.fa-github-alt:before { + content: "\f113"; +} +.fa-folder-o:before { + content: "\f114"; +} +.fa-folder-open-o:before { + content: "\f115"; +} +.fa-smile-o:before { + content: "\f118"; +} +.fa-frown-o:before { + content: "\f119"; +} +.fa-meh-o:before { + content: "\f11a"; +} +.fa-gamepad:before { + content: "\f11b"; +} +.fa-keyboard-o:before { + content: "\f11c"; +} +.fa-flag-o:before { + content: "\f11d"; +} +.fa-flag-checkered:before { + content: "\f11e"; +} +.fa-terminal:before { + content: "\f120"; +} +.fa-code:before { + content: "\f121"; +} +.fa-mail-reply-all:before, +.fa-reply-all:before { + content: "\f122"; +} +.fa-star-half-empty:before, +.fa-star-half-full:before, +.fa-star-half-o:before { + content: "\f123"; +} +.fa-location-arrow:before { + content: "\f124"; +} +.fa-crop:before { + content: "\f125"; +} +.fa-code-fork:before { + content: "\f126"; +} +.fa-unlink:before, +.fa-chain-broken:before { + content: "\f127"; +} +.fa-question:before { + content: "\f128"; +} +.fa-info:before { + content: "\f129"; +} +.fa-exclamation:before { + content: "\f12a"; +} +.fa-superscript:before { + content: "\f12b"; +} +.fa-subscript:before { + content: "\f12c"; +} +.fa-eraser:before { + content: "\f12d"; +} +.fa-puzzle-piece:before { + content: "\f12e"; +} +.fa-microphone:before { + content: "\f130"; +} +.fa-microphone-slash:before { + content: "\f131"; +} +.fa-shield:before { + content: "\f132"; +} +.fa-calendar-o:before { + content: "\f133"; +} +.fa-fire-extinguisher:before { + content: "\f134"; +} +.fa-rocket:before { + content: "\f135"; +} +.fa-maxcdn:before { + content: "\f136"; +} +.fa-chevron-circle-left:before { + content: "\f137"; +} +.fa-chevron-circle-right:before { + content: "\f138"; +} +.fa-chevron-circle-up:before { + content: "\f139"; +} +.fa-chevron-circle-down:before { + content: "\f13a"; +} +.fa-html5:before { + content: "\f13b"; +} +.fa-css3:before { + content: "\f13c"; +} +.fa-anchor:before { + content: "\f13d"; +} +.fa-unlock-alt:before { + content: "\f13e"; +} +.fa-bullseye:before { + content: "\f140"; +} +.fa-ellipsis-h:before { + content: "\f141"; +} +.fa-ellipsis-v:before { + content: "\f142"; +} +.fa-rss-square:before { + content: "\f143"; +} +.fa-play-circle:before { + content: "\f144"; +} +.fa-ticket:before { + content: "\f145"; +} +.fa-minus-square:before { + content: "\f146"; +} +.fa-minus-square-o:before { + content: "\f147"; +} +.fa-level-up:before { + content: "\f148"; +} +.fa-level-down:before { + content: "\f149"; +} +.fa-check-square:before { + content: "\f14a"; +} +.fa-pencil-square:before { + content: "\f14b"; +} +.fa-external-link-square:before { + content: "\f14c"; +} +.fa-share-square:before { + content: "\f14d"; +} +.fa-compass:before { + content: "\f14e"; +} +.fa-toggle-down:before, +.fa-caret-square-o-down:before { + content: "\f150"; +} +.fa-toggle-up:before, +.fa-caret-square-o-up:before { + content: "\f151"; +} +.fa-toggle-right:before, +.fa-caret-square-o-right:before { + content: "\f152"; +} +.fa-euro:before, +.fa-eur:before { + content: "\f153"; +} +.fa-gbp:before { + content: "\f154"; +} +.fa-dollar:before, +.fa-usd:before { + content: "\f155"; +} +.fa-rupee:before, +.fa-inr:before { + content: "\f156"; +} +.fa-cny:before, +.fa-rmb:before, +.fa-yen:before, +.fa-jpy:before { + content: "\f157"; +} +.fa-ruble:before, +.fa-rouble:before, +.fa-rub:before { + content: "\f158"; +} +.fa-won:before, +.fa-krw:before { + content: "\f159"; +} +.fa-bitcoin:before, +.fa-btc:before { + content: "\f15a"; +} +.fa-file:before { + content: "\f15b"; +} +.fa-file-text:before { + content: "\f15c"; +} +.fa-sort-alpha-asc:before { + content: "\f15d"; +} +.fa-sort-alpha-desc:before { + content: "\f15e"; +} +.fa-sort-amount-asc:before { + content: "\f160"; +} +.fa-sort-amount-desc:before { + content: "\f161"; +} +.fa-sort-numeric-asc:before { + content: "\f162"; +} +.fa-sort-numeric-desc:before { + content: "\f163"; +} +.fa-thumbs-up:before { + content: "\f164"; +} +.fa-thumbs-down:before { + content: "\f165"; +} +.fa-youtube-square:before { + content: "\f166"; +} +.fa-youtube:before { + content: "\f167"; +} +.fa-xing:before { + content: "\f168"; +} +.fa-xing-square:before { + content: "\f169"; +} +.fa-youtube-play:before { + content: "\f16a"; +} +.fa-dropbox:before { + content: "\f16b"; +} +.fa-stack-overflow:before { + content: "\f16c"; +} +.fa-instagram:before { + content: "\f16d"; +} +.fa-flickr:before { + content: "\f16e"; +} +.fa-adn:before { + content: "\f170"; +} +.fa-bitbucket:before { + content: "\f171"; +} +.fa-bitbucket-square:before { + content: "\f172"; +} +.fa-tumblr:before { + content: "\f173"; +} +.fa-tumblr-square:before { + content: "\f174"; +} +.fa-long-arrow-down:before { + content: "\f175"; +} +.fa-long-arrow-up:before { + content: "\f176"; +} +.fa-long-arrow-left:before { + content: "\f177"; +} +.fa-long-arrow-right:before { + content: "\f178"; +} +.fa-apple:before { + content: "\f179"; +} +.fa-windows:before { + content: "\f17a"; +} +.fa-android:before { + content: "\f17b"; +} +.fa-linux:before { + content: "\f17c"; +} +.fa-dribbble:before { + content: "\f17d"; +} +.fa-skype:before { + content: "\f17e"; +} +.fa-foursquare:before { + content: "\f180"; +} +.fa-trello:before { + content: "\f181"; +} +.fa-female:before { + content: "\f182"; +} +.fa-male:before { + content: "\f183"; +} +.fa-gittip:before, +.fa-gratipay:before { + content: "\f184"; +} +.fa-sun-o:before { + content: "\f185"; +} +.fa-moon-o:before { + content: "\f186"; +} +.fa-archive:before { + content: "\f187"; +} +.fa-bug:before { + content: "\f188"; +} +.fa-vk:before { + content: "\f189"; +} +.fa-weibo:before { + content: "\f18a"; +} +.fa-renren:before { + content: "\f18b"; +} +.fa-pagelines:before { + content: "\f18c"; +} +.fa-stack-exchange:before { + content: "\f18d"; +} +.fa-arrow-circle-o-right:before { + content: "\f18e"; +} +.fa-arrow-circle-o-left:before { + content: "\f190"; +} +.fa-toggle-left:before, +.fa-caret-square-o-left:before { + content: "\f191"; +} +.fa-dot-circle-o:before { + content: "\f192"; +} +.fa-wheelchair:before { + content: "\f193"; +} +.fa-vimeo-square:before { + content: "\f194"; +} +.fa-turkish-lira:before, +.fa-try:before { + content: "\f195"; +} +.fa-plus-square-o:before { + content: "\f196"; +} +.fa-space-shuttle:before { + content: "\f197"; +} +.fa-slack:before { + content: "\f198"; +} +.fa-envelope-square:before { + content: "\f199"; +} +.fa-wordpress:before { + content: "\f19a"; +} +.fa-openid:before { + content: "\f19b"; +} +.fa-institution:before, +.fa-bank:before, +.fa-university:before { + content: "\f19c"; +} +.fa-mortar-board:before, +.fa-graduation-cap:before { + content: "\f19d"; +} +.fa-yahoo:before { + content: "\f19e"; +} +.fa-google:before { + content: "\f1a0"; +} +.fa-reddit:before { + content: "\f1a1"; +} +.fa-reddit-square:before { + content: "\f1a2"; +} +.fa-stumbleupon-circle:before { + content: "\f1a3"; +} +.fa-stumbleupon:before { + content: "\f1a4"; +} +.fa-delicious:before { + content: "\f1a5"; +} +.fa-digg:before { + content: "\f1a6"; +} +.fa-pied-piper-pp:before { + content: "\f1a7"; +} +.fa-pied-piper-alt:before { + content: "\f1a8"; +} +.fa-drupal:before { + content: "\f1a9"; +} +.fa-joomla:before { + content: "\f1aa"; +} +.fa-language:before { + content: "\f1ab"; +} +.fa-fax:before { + content: "\f1ac"; +} +.fa-building:before { + content: "\f1ad"; +} +.fa-child:before { + content: "\f1ae"; +} +.fa-paw:before { + content: "\f1b0"; +} +.fa-spoon:before { + content: "\f1b1"; +} +.fa-cube:before { + content: "\f1b2"; +} +.fa-cubes:before { + content: "\f1b3"; +} +.fa-behance:before { + content: "\f1b4"; +} +.fa-behance-square:before { + content: "\f1b5"; +} +.fa-steam:before { + content: "\f1b6"; +} +.fa-steam-square:before { + content: "\f1b7"; +} +.fa-recycle:before { + content: "\f1b8"; +} +.fa-automobile:before, +.fa-car:before { + content: "\f1b9"; +} +.fa-cab:before, +.fa-taxi:before { + content: "\f1ba"; +} +.fa-tree:before { + content: "\f1bb"; +} +.fa-spotify:before { + content: "\f1bc"; +} +.fa-deviantart:before { + content: "\f1bd"; +} +.fa-soundcloud:before { + content: "\f1be"; +} +.fa-database:before { + content: "\f1c0"; +} +.fa-file-pdf-o:before { + content: "\f1c1"; +} +.fa-file-word-o:before { + content: "\f1c2"; +} +.fa-file-excel-o:before { + content: "\f1c3"; +} +.fa-file-powerpoint-o:before { + content: "\f1c4"; +} +.fa-file-photo-o:before, +.fa-file-picture-o:before, +.fa-file-image-o:before { + content: "\f1c5"; +} +.fa-file-zip-o:before, +.fa-file-archive-o:before { + content: "\f1c6"; +} +.fa-file-sound-o:before, +.fa-file-audio-o:before { + content: "\f1c7"; +} +.fa-file-movie-o:before, +.fa-file-video-o:before { + content: "\f1c8"; +} +.fa-file-code-o:before { + content: "\f1c9"; +} +.fa-vine:before { + content: "\f1ca"; +} +.fa-codepen:before { + content: "\f1cb"; +} +.fa-jsfiddle:before { + content: "\f1cc"; +} +.fa-life-bouy:before, +.fa-life-buoy:before, +.fa-life-saver:before, +.fa-support:before, +.fa-life-ring:before { + content: "\f1cd"; +} +.fa-circle-o-notch:before { + content: "\f1ce"; +} +.fa-ra:before, +.fa-resistance:before, +.fa-rebel:before { + content: "\f1d0"; +} +.fa-ge:before, +.fa-empire:before { + content: "\f1d1"; +} +.fa-git-square:before { + content: "\f1d2"; +} +.fa-git:before { + content: "\f1d3"; +} +.fa-y-combinator-square:before, +.fa-yc-square:before, +.fa-hacker-news:before { + content: "\f1d4"; +} +.fa-tencent-weibo:before { + content: "\f1d5"; +} +.fa-qq:before { + content: "\f1d6"; +} +.fa-wechat:before, +.fa-weixin:before { + content: "\f1d7"; +} +.fa-send:before, +.fa-paper-plane:before { + content: "\f1d8"; +} +.fa-send-o:before, +.fa-paper-plane-o:before { + content: "\f1d9"; +} +.fa-history:before { + content: "\f1da"; +} +.fa-circle-thin:before { + content: "\f1db"; +} +.fa-header:before { + content: "\f1dc"; +} +.fa-paragraph:before { + content: "\f1dd"; +} +.fa-sliders:before { + content: "\f1de"; +} +.fa-share-alt:before { + content: "\f1e0"; +} +.fa-share-alt-square:before { + content: "\f1e1"; +} +.fa-bomb:before { + content: "\f1e2"; +} +.fa-soccer-ball-o:before, +.fa-futbol-o:before { + content: "\f1e3"; +} +.fa-tty:before { + content: "\f1e4"; +} +.fa-binoculars:before { + content: "\f1e5"; +} +.fa-plug:before { + content: "\f1e6"; +} +.fa-slideshare:before { + content: "\f1e7"; +} +.fa-twitch:before { + content: "\f1e8"; +} +.fa-yelp:before { + content: "\f1e9"; +} +.fa-newspaper-o:before { + content: "\f1ea"; +} +.fa-wifi:before { + content: "\f1eb"; +} +.fa-calculator:before { + content: "\f1ec"; +} +.fa-paypal:before { + content: "\f1ed"; +} +.fa-google-wallet:before { + content: "\f1ee"; +} +.fa-cc-visa:before { + content: "\f1f0"; +} +.fa-cc-mastercard:before { + content: "\f1f1"; +} +.fa-cc-discover:before { + content: "\f1f2"; +} +.fa-cc-amex:before { + content: "\f1f3"; +} +.fa-cc-paypal:before { + content: "\f1f4"; +} +.fa-cc-stripe:before { + content: "\f1f5"; +} +.fa-bell-slash:before { + content: "\f1f6"; +} +.fa-bell-slash-o:before { + content: "\f1f7"; +} +.fa-trash:before { + content: "\f1f8"; +} +.fa-copyright:before { + content: "\f1f9"; +} +.fa-at:before { + content: "\f1fa"; +} +.fa-eyedropper:before { + content: "\f1fb"; +} +.fa-paint-brush:before { + content: "\f1fc"; +} +.fa-birthday-cake:before { + content: "\f1fd"; +} +.fa-area-chart:before { + content: "\f1fe"; +} +.fa-pie-chart:before { + content: "\f200"; +} +.fa-line-chart:before { + content: "\f201"; +} +.fa-lastfm:before { + content: "\f202"; +} +.fa-lastfm-square:before { + content: "\f203"; +} +.fa-toggle-off:before { + content: "\f204"; +} +.fa-toggle-on:before { + content: "\f205"; +} +.fa-bicycle:before { + content: "\f206"; +} +.fa-bus:before { + content: "\f207"; +} +.fa-ioxhost:before { + content: "\f208"; +} +.fa-angellist:before { + content: "\f209"; +} +.fa-cc:before { + content: "\f20a"; +} +.fa-shekel:before, +.fa-sheqel:before, +.fa-ils:before { + content: "\f20b"; +} +.fa-meanpath:before { + content: "\f20c"; +} +.fa-buysellads:before { + content: "\f20d"; +} +.fa-connectdevelop:before { + content: "\f20e"; +} +.fa-dashcube:before { + content: "\f210"; +} +.fa-forumbee:before { + content: "\f211"; +} +.fa-leanpub:before { + content: "\f212"; +} +.fa-sellsy:before { + content: "\f213"; +} +.fa-shirtsinbulk:before { + content: "\f214"; +} +.fa-simplybuilt:before { + content: "\f215"; +} +.fa-skyatlas:before { + content: "\f216"; +} +.fa-cart-plus:before { + content: "\f217"; +} +.fa-cart-arrow-down:before { + content: "\f218"; +} +.fa-diamond:before { + content: "\f219"; +} +.fa-ship:before { + content: "\f21a"; +} +.fa-user-secret:before { + content: "\f21b"; +} +.fa-motorcycle:before { + content: "\f21c"; +} +.fa-street-view:before { + content: "\f21d"; +} +.fa-heartbeat:before { + content: "\f21e"; +} +.fa-venus:before { + content: "\f221"; +} +.fa-mars:before { + content: "\f222"; +} +.fa-mercury:before { + content: "\f223"; +} +.fa-intersex:before, +.fa-transgender:before { + content: "\f224"; +} +.fa-transgender-alt:before { + content: "\f225"; +} +.fa-venus-double:before { + content: "\f226"; +} +.fa-mars-double:before { + content: "\f227"; +} +.fa-venus-mars:before { + content: "\f228"; +} +.fa-mars-stroke:before { + content: "\f229"; +} +.fa-mars-stroke-v:before { + content: "\f22a"; +} +.fa-mars-stroke-h:before { + content: "\f22b"; +} +.fa-neuter:before { + content: "\f22c"; +} +.fa-genderless:before { + content: "\f22d"; +} +.fa-facebook-official:before { + content: "\f230"; +} +.fa-pinterest-p:before { + content: "\f231"; +} +.fa-whatsapp:before { + content: "\f232"; +} +.fa-server:before { + content: "\f233"; +} +.fa-user-plus:before { + content: "\f234"; +} +.fa-user-times:before { + content: "\f235"; +} +.fa-hotel:before, +.fa-bed:before { + content: "\f236"; +} +.fa-viacoin:before { + content: "\f237"; +} +.fa-train:before { + content: "\f238"; +} +.fa-subway:before { + content: "\f239"; +} +.fa-medium:before { + content: "\f23a"; +} +.fa-yc:before, +.fa-y-combinator:before { + content: "\f23b"; +} +.fa-optin-monster:before { + content: "\f23c"; +} +.fa-opencart:before { + content: "\f23d"; +} +.fa-expeditedssl:before { + content: "\f23e"; +} +.fa-battery-4:before, +.fa-battery:before, +.fa-battery-full:before { + content: "\f240"; +} +.fa-battery-3:before, +.fa-battery-three-quarters:before { + content: "\f241"; +} +.fa-battery-2:before, +.fa-battery-half:before { + content: "\f242"; +} +.fa-battery-1:before, +.fa-battery-quarter:before { + content: "\f243"; +} +.fa-battery-0:before, +.fa-battery-empty:before { + content: "\f244"; +} +.fa-mouse-pointer:before { + content: "\f245"; +} +.fa-i-cursor:before { + content: "\f246"; +} +.fa-object-group:before { + content: "\f247"; +} +.fa-object-ungroup:before { + content: "\f248"; +} +.fa-sticky-note:before { + content: "\f249"; +} +.fa-sticky-note-o:before { + content: "\f24a"; +} +.fa-cc-jcb:before { + content: "\f24b"; +} +.fa-cc-diners-club:before { + content: "\f24c"; +} +.fa-clone:before { + content: "\f24d"; +} +.fa-balance-scale:before { + content: "\f24e"; +} +.fa-hourglass-o:before { + content: "\f250"; +} +.fa-hourglass-1:before, +.fa-hourglass-start:before { + content: "\f251"; +} +.fa-hourglass-2:before, +.fa-hourglass-half:before { + content: "\f252"; +} +.fa-hourglass-3:before, +.fa-hourglass-end:before { + content: "\f253"; +} +.fa-hourglass:before { + content: "\f254"; +} +.fa-hand-grab-o:before, +.fa-hand-rock-o:before { + content: "\f255"; +} +.fa-hand-stop-o:before, +.fa-hand-paper-o:before { + content: "\f256"; +} +.fa-hand-scissors-o:before { + content: "\f257"; +} +.fa-hand-lizard-o:before { + content: "\f258"; +} +.fa-hand-spock-o:before { + content: "\f259"; +} +.fa-hand-pointer-o:before { + content: "\f25a"; +} +.fa-hand-peace-o:before { + content: "\f25b"; +} +.fa-trademark:before { + content: "\f25c"; +} +.fa-registered:before { + content: "\f25d"; +} +.fa-creative-commons:before { + content: "\f25e"; +} +.fa-gg:before { + content: "\f260"; +} +.fa-gg-circle:before { + content: "\f261"; +} +.fa-tripadvisor:before { + content: "\f262"; +} +.fa-odnoklassniki:before { + content: "\f263"; +} +.fa-odnoklassniki-square:before { + content: "\f264"; +} +.fa-get-pocket:before { + content: "\f265"; +} +.fa-wikipedia-w:before { + content: "\f266"; +} +.fa-safari:before { + content: "\f267"; +} +.fa-chrome:before { + content: "\f268"; +} +.fa-firefox:before { + content: "\f269"; +} +.fa-opera:before { + content: "\f26a"; +} +.fa-internet-explorer:before { + content: "\f26b"; +} +.fa-tv:before, +.fa-television:before { + content: "\f26c"; +} +.fa-contao:before { + content: "\f26d"; +} +.fa-500px:before { + content: "\f26e"; +} +.fa-amazon:before { + content: "\f270"; +} +.fa-calendar-plus-o:before { + content: "\f271"; +} +.fa-calendar-minus-o:before { + content: "\f272"; +} +.fa-calendar-times-o:before { + content: "\f273"; +} +.fa-calendar-check-o:before { + content: "\f274"; +} +.fa-industry:before { + content: "\f275"; +} +.fa-map-pin:before { + content: "\f276"; +} +.fa-map-signs:before { + content: "\f277"; +} +.fa-map-o:before { + content: "\f278"; +} +.fa-map:before { + content: "\f279"; +} +.fa-commenting:before { + content: "\f27a"; +} +.fa-commenting-o:before { + content: "\f27b"; +} +.fa-houzz:before { + content: "\f27c"; +} +.fa-vimeo:before { + content: "\f27d"; +} +.fa-black-tie:before { + content: "\f27e"; +} +.fa-fonticons:before { + content: "\f280"; +} +.fa-reddit-alien:before { + content: "\f281"; +} +.fa-edge:before { + content: "\f282"; +} +.fa-credit-card-alt:before { + content: "\f283"; +} +.fa-codiepie:before { + content: "\f284"; +} +.fa-modx:before { + content: "\f285"; +} +.fa-fort-awesome:before { + content: "\f286"; +} +.fa-usb:before { + content: "\f287"; +} +.fa-product-hunt:before { + content: "\f288"; +} +.fa-mixcloud:before { + content: "\f289"; +} +.fa-scribd:before { + content: "\f28a"; +} +.fa-pause-circle:before { + content: "\f28b"; +} +.fa-pause-circle-o:before { + content: "\f28c"; +} +.fa-stop-circle:before { + content: "\f28d"; +} +.fa-stop-circle-o:before { + content: "\f28e"; +} +.fa-shopping-bag:before { + content: "\f290"; +} +.fa-shopping-basket:before { + content: "\f291"; +} +.fa-hashtag:before { + content: "\f292"; +} +.fa-bluetooth:before { + content: "\f293"; +} +.fa-bluetooth-b:before { + content: "\f294"; +} +.fa-percent:before { + content: "\f295"; +} +.fa-gitlab:before { + content: "\f296"; +} +.fa-wpbeginner:before { + content: "\f297"; +} +.fa-wpforms:before { + content: "\f298"; +} +.fa-envira:before { + content: "\f299"; +} +.fa-universal-access:before { + content: "\f29a"; +} +.fa-wheelchair-alt:before { + content: "\f29b"; +} +.fa-question-circle-o:before { + content: "\f29c"; +} +.fa-blind:before { + content: "\f29d"; +} +.fa-audio-description:before { + content: "\f29e"; +} +.fa-volume-control-phone:before { + content: "\f2a0"; +} +.fa-braille:before { + content: "\f2a1"; +} +.fa-assistive-listening-systems:before { + content: "\f2a2"; +} +.fa-asl-interpreting:before, +.fa-american-sign-language-interpreting:before { + content: "\f2a3"; +} +.fa-deafness:before, +.fa-hard-of-hearing:before, +.fa-deaf:before { + content: "\f2a4"; +} +.fa-glide:before { + content: "\f2a5"; +} +.fa-glide-g:before { + content: "\f2a6"; +} +.fa-signing:before, +.fa-sign-language:before { + content: "\f2a7"; +} +.fa-low-vision:before { + content: "\f2a8"; +} +.fa-viadeo:before { + content: "\f2a9"; +} +.fa-viadeo-square:before { + content: "\f2aa"; +} +.fa-snapchat:before { + content: "\f2ab"; +} +.fa-snapchat-ghost:before { + content: "\f2ac"; +} +.fa-snapchat-square:before { + content: "\f2ad"; +} +.fa-pied-piper:before { + content: "\f2ae"; +} +.fa-first-order:before { + content: "\f2b0"; +} +.fa-yoast:before { + content: "\f2b1"; +} +.fa-themeisle:before { + content: "\f2b2"; +} +.fa-google-plus-circle:before, +.fa-google-plus-official:before { + content: "\f2b3"; +} +.fa-fa:before, +.fa-font-awesome:before { + content: "\f2b4"; +} +.fa-handshake-o:before { + content: "\f2b5"; +} +.fa-envelope-open:before { + content: "\f2b6"; +} +.fa-envelope-open-o:before { + content: "\f2b7"; +} +.fa-linode:before { + content: "\f2b8"; +} +.fa-address-book:before { + content: "\f2b9"; +} +.fa-address-book-o:before { + content: "\f2ba"; +} +.fa-vcard:before, +.fa-address-card:before { + content: "\f2bb"; +} +.fa-vcard-o:before, +.fa-address-card-o:before { + content: "\f2bc"; +} +.fa-user-circle:before { + content: "\f2bd"; +} +.fa-user-circle-o:before { + content: "\f2be"; +} +.fa-user-o:before { + content: "\f2c0"; +} +.fa-id-badge:before { + content: "\f2c1"; +} +.fa-drivers-license:before, +.fa-id-card:before { + content: "\f2c2"; +} +.fa-drivers-license-o:before, +.fa-id-card-o:before { + content: "\f2c3"; +} +.fa-quora:before { + content: "\f2c4"; +} +.fa-free-code-camp:before { + content: "\f2c5"; +} +.fa-telegram:before { + content: "\f2c6"; +} +.fa-thermometer-4:before, +.fa-thermometer:before, +.fa-thermometer-full:before { + content: "\f2c7"; +} +.fa-thermometer-3:before, +.fa-thermometer-three-quarters:before { + content: "\f2c8"; +} +.fa-thermometer-2:before, +.fa-thermometer-half:before { + content: "\f2c9"; +} +.fa-thermometer-1:before, +.fa-thermometer-quarter:before { + content: "\f2ca"; +} +.fa-thermometer-0:before, +.fa-thermometer-empty:before { + content: "\f2cb"; +} +.fa-shower:before { + content: "\f2cc"; +} +.fa-bathtub:before, +.fa-s15:before, +.fa-bath:before { + content: "\f2cd"; +} +.fa-podcast:before { + content: "\f2ce"; +} +.fa-window-maximize:before { + content: "\f2d0"; +} +.fa-window-minimize:before { + content: "\f2d1"; +} +.fa-window-restore:before { + content: "\f2d2"; +} +.fa-times-rectangle:before, +.fa-window-close:before { + content: "\f2d3"; +} +.fa-times-rectangle-o:before, +.fa-window-close-o:before { + content: "\f2d4"; +} +.fa-bandcamp:before { + content: "\f2d5"; +} +.fa-grav:before { + content: "\f2d6"; +} +.fa-etsy:before { + content: "\f2d7"; +} +.fa-imdb:before { + content: "\f2d8"; +} +.fa-ravelry:before { + content: "\f2d9"; +} +.fa-eercast:before { + content: "\f2da"; +} +.fa-microchip:before { + content: "\f2db"; +} +.fa-snowflake-o:before { + content: "\f2dc"; +} +.fa-superpowers:before { + content: "\f2dd"; +} +.fa-wpexplorer:before { + content: "\f2de"; +} +.fa-meetup:before { + content: "\f2e0"; +} +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; +} +.sr-only-focusable:active, +.sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; +} diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_animated.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_animated.scss index 8a020dbf..bea4ead4 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_animated.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_animated.scss @@ -2,33 +2,33 @@ // -------------------------- .#{$fa-css-prefix}-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear; + -webkit-animation: fa-spin 2s infinite linear; + animation: fa-spin 2s infinite linear; } .#{$fa-css-prefix}-pulse { - -webkit-animation: fa-spin 1s infinite steps(8); - animation: fa-spin 1s infinite steps(8); + -webkit-animation: fa-spin 1s infinite steps(8); + animation: fa-spin 1s infinite steps(8); } @-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } @keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg); - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg); - } + 0% { + -webkit-transform: rotate(0deg); + transform: rotate(0deg); + } + 100% { + -webkit-transform: rotate(359deg); + transform: rotate(359deg); + } } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_bordered-pulled.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_bordered-pulled.scss index d4b85a02..a02e4e75 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_bordered-pulled.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_bordered-pulled.scss @@ -2,24 +2,40 @@ // ------------------------- .#{$fa-css-prefix}-border { - padding: .2em .25em .15em; - border: solid .08em $fa-border-color; - border-radius: .1em; + padding: 0.2em 0.25em 0.15em; + border: solid 0.08em $fa-border-color; + border-radius: 0.1em; } -.#{$fa-css-prefix}-pull-left { float: left; } -.#{$fa-css-prefix}-pull-right { float: right; } +.#{$fa-css-prefix}-pull-left { + float: left; +} +.#{$fa-css-prefix}-pull-right { + float: right; +} .#{$fa-css-prefix} { - &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } - &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } + &.#{$fa-css-prefix}-pull-left { + margin-right: 0.3em; + } + &.#{$fa-css-prefix}-pull-right { + margin-left: 0.3em; + } } /* Deprecated as of 4.4.0 */ -.pull-right { float: right; } -.pull-left { float: left; } +.pull-right { + float: right; +} +.pull-left { + float: left; +} .#{$fa-css-prefix} { - &.pull-left { margin-right: .3em; } - &.pull-right { margin-left: .3em; } + &.pull-left { + margin-right: 0.3em; + } + &.pull-right { + margin-left: 0.3em; + } } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_core.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_core.scss index 7425ef85..43c7bd21 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_core.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_core.scss @@ -2,11 +2,11 @@ // ------------------------- .#{$fa-css-prefix} { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} + FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_fixed-width.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_fixed-width.scss index b221c981..0455006e 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_fixed-width.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_fixed-width.scss @@ -1,6 +1,6 @@ // Fixed Width Icons // ------------------------- .#{$fa-css-prefix}-fw { - width: (18em / 14); - text-align: center; + width: (18em / 14); + text-align: center; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_icons.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_icons.scss index e63e702c..9c7a6b4a 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_icons.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_icons.scss @@ -1,789 +1,2139 @@ /* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen readers do not read off random characters that represent icons */ -.#{$fa-css-prefix}-glass:before { content: $fa-var-glass; } -.#{$fa-css-prefix}-music:before { content: $fa-var-music; } -.#{$fa-css-prefix}-search:before { content: $fa-var-search; } -.#{$fa-css-prefix}-envelope-o:before { content: $fa-var-envelope-o; } -.#{$fa-css-prefix}-heart:before { content: $fa-var-heart; } -.#{$fa-css-prefix}-star:before { content: $fa-var-star; } -.#{$fa-css-prefix}-star-o:before { content: $fa-var-star-o; } -.#{$fa-css-prefix}-user:before { content: $fa-var-user; } -.#{$fa-css-prefix}-film:before { content: $fa-var-film; } -.#{$fa-css-prefix}-th-large:before { content: $fa-var-th-large; } -.#{$fa-css-prefix}-th:before { content: $fa-var-th; } -.#{$fa-css-prefix}-th-list:before { content: $fa-var-th-list; } -.#{$fa-css-prefix}-check:before { content: $fa-var-check; } +.#{$fa-css-prefix}-glass:before { + content: $fa-var-glass; +} +.#{$fa-css-prefix}-music:before { + content: $fa-var-music; +} +.#{$fa-css-prefix}-search:before { + content: $fa-var-search; +} +.#{$fa-css-prefix}-envelope-o:before { + content: $fa-var-envelope-o; +} +.#{$fa-css-prefix}-heart:before { + content: $fa-var-heart; +} +.#{$fa-css-prefix}-star:before { + content: $fa-var-star; +} +.#{$fa-css-prefix}-star-o:before { + content: $fa-var-star-o; +} +.#{$fa-css-prefix}-user:before { + content: $fa-var-user; +} +.#{$fa-css-prefix}-film:before { + content: $fa-var-film; +} +.#{$fa-css-prefix}-th-large:before { + content: $fa-var-th-large; +} +.#{$fa-css-prefix}-th:before { + content: $fa-var-th; +} +.#{$fa-css-prefix}-th-list:before { + content: $fa-var-th-list; +} +.#{$fa-css-prefix}-check:before { + content: $fa-var-check; +} .#{$fa-css-prefix}-remove:before, .#{$fa-css-prefix}-close:before, -.#{$fa-css-prefix}-times:before { content: $fa-var-times; } -.#{$fa-css-prefix}-search-plus:before { content: $fa-var-search-plus; } -.#{$fa-css-prefix}-search-minus:before { content: $fa-var-search-minus; } -.#{$fa-css-prefix}-power-off:before { content: $fa-var-power-off; } -.#{$fa-css-prefix}-signal:before { content: $fa-var-signal; } +.#{$fa-css-prefix}-times:before { + content: $fa-var-times; +} +.#{$fa-css-prefix}-search-plus:before { + content: $fa-var-search-plus; +} +.#{$fa-css-prefix}-search-minus:before { + content: $fa-var-search-minus; +} +.#{$fa-css-prefix}-power-off:before { + content: $fa-var-power-off; +} +.#{$fa-css-prefix}-signal:before { + content: $fa-var-signal; +} .#{$fa-css-prefix}-gear:before, -.#{$fa-css-prefix}-cog:before { content: $fa-var-cog; } -.#{$fa-css-prefix}-trash-o:before { content: $fa-var-trash-o; } -.#{$fa-css-prefix}-home:before { content: $fa-var-home; } -.#{$fa-css-prefix}-file-o:before { content: $fa-var-file-o; } -.#{$fa-css-prefix}-clock-o:before { content: $fa-var-clock-o; } -.#{$fa-css-prefix}-road:before { content: $fa-var-road; } -.#{$fa-css-prefix}-download:before { content: $fa-var-download; } -.#{$fa-css-prefix}-arrow-circle-o-down:before { content: $fa-var-arrow-circle-o-down; } -.#{$fa-css-prefix}-arrow-circle-o-up:before { content: $fa-var-arrow-circle-o-up; } -.#{$fa-css-prefix}-inbox:before { content: $fa-var-inbox; } -.#{$fa-css-prefix}-play-circle-o:before { content: $fa-var-play-circle-o; } +.#{$fa-css-prefix}-cog:before { + content: $fa-var-cog; +} +.#{$fa-css-prefix}-trash-o:before { + content: $fa-var-trash-o; +} +.#{$fa-css-prefix}-home:before { + content: $fa-var-home; +} +.#{$fa-css-prefix}-file-o:before { + content: $fa-var-file-o; +} +.#{$fa-css-prefix}-clock-o:before { + content: $fa-var-clock-o; +} +.#{$fa-css-prefix}-road:before { + content: $fa-var-road; +} +.#{$fa-css-prefix}-download:before { + content: $fa-var-download; +} +.#{$fa-css-prefix}-arrow-circle-o-down:before { + content: $fa-var-arrow-circle-o-down; +} +.#{$fa-css-prefix}-arrow-circle-o-up:before { + content: $fa-var-arrow-circle-o-up; +} +.#{$fa-css-prefix}-inbox:before { + content: $fa-var-inbox; +} +.#{$fa-css-prefix}-play-circle-o:before { + content: $fa-var-play-circle-o; +} .#{$fa-css-prefix}-rotate-right:before, -.#{$fa-css-prefix}-repeat:before { content: $fa-var-repeat; } -.#{$fa-css-prefix}-refresh:before { content: $fa-var-refresh; } -.#{$fa-css-prefix}-list-alt:before { content: $fa-var-list-alt; } -.#{$fa-css-prefix}-lock:before { content: $fa-var-lock; } -.#{$fa-css-prefix}-flag:before { content: $fa-var-flag; } -.#{$fa-css-prefix}-headphones:before { content: $fa-var-headphones; } -.#{$fa-css-prefix}-volume-off:before { content: $fa-var-volume-off; } -.#{$fa-css-prefix}-volume-down:before { content: $fa-var-volume-down; } -.#{$fa-css-prefix}-volume-up:before { content: $fa-var-volume-up; } -.#{$fa-css-prefix}-qrcode:before { content: $fa-var-qrcode; } -.#{$fa-css-prefix}-barcode:before { content: $fa-var-barcode; } -.#{$fa-css-prefix}-tag:before { content: $fa-var-tag; } -.#{$fa-css-prefix}-tags:before { content: $fa-var-tags; } -.#{$fa-css-prefix}-book:before { content: $fa-var-book; } -.#{$fa-css-prefix}-bookmark:before { content: $fa-var-bookmark; } -.#{$fa-css-prefix}-print:before { content: $fa-var-print; } -.#{$fa-css-prefix}-camera:before { content: $fa-var-camera; } -.#{$fa-css-prefix}-font:before { content: $fa-var-font; } -.#{$fa-css-prefix}-bold:before { content: $fa-var-bold; } -.#{$fa-css-prefix}-italic:before { content: $fa-var-italic; } -.#{$fa-css-prefix}-text-height:before { content: $fa-var-text-height; } -.#{$fa-css-prefix}-text-width:before { content: $fa-var-text-width; } -.#{$fa-css-prefix}-align-left:before { content: $fa-var-align-left; } -.#{$fa-css-prefix}-align-center:before { content: $fa-var-align-center; } -.#{$fa-css-prefix}-align-right:before { content: $fa-var-align-right; } -.#{$fa-css-prefix}-align-justify:before { content: $fa-var-align-justify; } -.#{$fa-css-prefix}-list:before { content: $fa-var-list; } +.#{$fa-css-prefix}-repeat:before { + content: $fa-var-repeat; +} +.#{$fa-css-prefix}-refresh:before { + content: $fa-var-refresh; +} +.#{$fa-css-prefix}-list-alt:before { + content: $fa-var-list-alt; +} +.#{$fa-css-prefix}-lock:before { + content: $fa-var-lock; +} +.#{$fa-css-prefix}-flag:before { + content: $fa-var-flag; +} +.#{$fa-css-prefix}-headphones:before { + content: $fa-var-headphones; +} +.#{$fa-css-prefix}-volume-off:before { + content: $fa-var-volume-off; +} +.#{$fa-css-prefix}-volume-down:before { + content: $fa-var-volume-down; +} +.#{$fa-css-prefix}-volume-up:before { + content: $fa-var-volume-up; +} +.#{$fa-css-prefix}-qrcode:before { + content: $fa-var-qrcode; +} +.#{$fa-css-prefix}-barcode:before { + content: $fa-var-barcode; +} +.#{$fa-css-prefix}-tag:before { + content: $fa-var-tag; +} +.#{$fa-css-prefix}-tags:before { + content: $fa-var-tags; +} +.#{$fa-css-prefix}-book:before { + content: $fa-var-book; +} +.#{$fa-css-prefix}-bookmark:before { + content: $fa-var-bookmark; +} +.#{$fa-css-prefix}-print:before { + content: $fa-var-print; +} +.#{$fa-css-prefix}-camera:before { + content: $fa-var-camera; +} +.#{$fa-css-prefix}-font:before { + content: $fa-var-font; +} +.#{$fa-css-prefix}-bold:before { + content: $fa-var-bold; +} +.#{$fa-css-prefix}-italic:before { + content: $fa-var-italic; +} +.#{$fa-css-prefix}-text-height:before { + content: $fa-var-text-height; +} +.#{$fa-css-prefix}-text-width:before { + content: $fa-var-text-width; +} +.#{$fa-css-prefix}-align-left:before { + content: $fa-var-align-left; +} +.#{$fa-css-prefix}-align-center:before { + content: $fa-var-align-center; +} +.#{$fa-css-prefix}-align-right:before { + content: $fa-var-align-right; +} +.#{$fa-css-prefix}-align-justify:before { + content: $fa-var-align-justify; +} +.#{$fa-css-prefix}-list:before { + content: $fa-var-list; +} .#{$fa-css-prefix}-dedent:before, -.#{$fa-css-prefix}-outdent:before { content: $fa-var-outdent; } -.#{$fa-css-prefix}-indent:before { content: $fa-var-indent; } -.#{$fa-css-prefix}-video-camera:before { content: $fa-var-video-camera; } +.#{$fa-css-prefix}-outdent:before { + content: $fa-var-outdent; +} +.#{$fa-css-prefix}-indent:before { + content: $fa-var-indent; +} +.#{$fa-css-prefix}-video-camera:before { + content: $fa-var-video-camera; +} .#{$fa-css-prefix}-photo:before, .#{$fa-css-prefix}-image:before, -.#{$fa-css-prefix}-picture-o:before { content: $fa-var-picture-o; } -.#{$fa-css-prefix}-pencil:before { content: $fa-var-pencil; } -.#{$fa-css-prefix}-map-marker:before { content: $fa-var-map-marker; } -.#{$fa-css-prefix}-adjust:before { content: $fa-var-adjust; } -.#{$fa-css-prefix}-tint:before { content: $fa-var-tint; } +.#{$fa-css-prefix}-picture-o:before { + content: $fa-var-picture-o; +} +.#{$fa-css-prefix}-pencil:before { + content: $fa-var-pencil; +} +.#{$fa-css-prefix}-map-marker:before { + content: $fa-var-map-marker; +} +.#{$fa-css-prefix}-adjust:before { + content: $fa-var-adjust; +} +.#{$fa-css-prefix}-tint:before { + content: $fa-var-tint; +} .#{$fa-css-prefix}-edit:before, -.#{$fa-css-prefix}-pencil-square-o:before { content: $fa-var-pencil-square-o; } -.#{$fa-css-prefix}-share-square-o:before { content: $fa-var-share-square-o; } -.#{$fa-css-prefix}-check-square-o:before { content: $fa-var-check-square-o; } -.#{$fa-css-prefix}-arrows:before { content: $fa-var-arrows; } -.#{$fa-css-prefix}-step-backward:before { content: $fa-var-step-backward; } -.#{$fa-css-prefix}-fast-backward:before { content: $fa-var-fast-backward; } -.#{$fa-css-prefix}-backward:before { content: $fa-var-backward; } -.#{$fa-css-prefix}-play:before { content: $fa-var-play; } -.#{$fa-css-prefix}-pause:before { content: $fa-var-pause; } -.#{$fa-css-prefix}-stop:before { content: $fa-var-stop; } -.#{$fa-css-prefix}-forward:before { content: $fa-var-forward; } -.#{$fa-css-prefix}-fast-forward:before { content: $fa-var-fast-forward; } -.#{$fa-css-prefix}-step-forward:before { content: $fa-var-step-forward; } -.#{$fa-css-prefix}-eject:before { content: $fa-var-eject; } -.#{$fa-css-prefix}-chevron-left:before { content: $fa-var-chevron-left; } -.#{$fa-css-prefix}-chevron-right:before { content: $fa-var-chevron-right; } -.#{$fa-css-prefix}-plus-circle:before { content: $fa-var-plus-circle; } -.#{$fa-css-prefix}-minus-circle:before { content: $fa-var-minus-circle; } -.#{$fa-css-prefix}-times-circle:before { content: $fa-var-times-circle; } -.#{$fa-css-prefix}-check-circle:before { content: $fa-var-check-circle; } -.#{$fa-css-prefix}-question-circle:before { content: $fa-var-question-circle; } -.#{$fa-css-prefix}-info-circle:before { content: $fa-var-info-circle; } -.#{$fa-css-prefix}-crosshairs:before { content: $fa-var-crosshairs; } -.#{$fa-css-prefix}-times-circle-o:before { content: $fa-var-times-circle-o; } -.#{$fa-css-prefix}-check-circle-o:before { content: $fa-var-check-circle-o; } -.#{$fa-css-prefix}-ban:before { content: $fa-var-ban; } -.#{$fa-css-prefix}-arrow-left:before { content: $fa-var-arrow-left; } -.#{$fa-css-prefix}-arrow-right:before { content: $fa-var-arrow-right; } -.#{$fa-css-prefix}-arrow-up:before { content: $fa-var-arrow-up; } -.#{$fa-css-prefix}-arrow-down:before { content: $fa-var-arrow-down; } +.#{$fa-css-prefix}-pencil-square-o:before { + content: $fa-var-pencil-square-o; +} +.#{$fa-css-prefix}-share-square-o:before { + content: $fa-var-share-square-o; +} +.#{$fa-css-prefix}-check-square-o:before { + content: $fa-var-check-square-o; +} +.#{$fa-css-prefix}-arrows:before { + content: $fa-var-arrows; +} +.#{$fa-css-prefix}-step-backward:before { + content: $fa-var-step-backward; +} +.#{$fa-css-prefix}-fast-backward:before { + content: $fa-var-fast-backward; +} +.#{$fa-css-prefix}-backward:before { + content: $fa-var-backward; +} +.#{$fa-css-prefix}-play:before { + content: $fa-var-play; +} +.#{$fa-css-prefix}-pause:before { + content: $fa-var-pause; +} +.#{$fa-css-prefix}-stop:before { + content: $fa-var-stop; +} +.#{$fa-css-prefix}-forward:before { + content: $fa-var-forward; +} +.#{$fa-css-prefix}-fast-forward:before { + content: $fa-var-fast-forward; +} +.#{$fa-css-prefix}-step-forward:before { + content: $fa-var-step-forward; +} +.#{$fa-css-prefix}-eject:before { + content: $fa-var-eject; +} +.#{$fa-css-prefix}-chevron-left:before { + content: $fa-var-chevron-left; +} +.#{$fa-css-prefix}-chevron-right:before { + content: $fa-var-chevron-right; +} +.#{$fa-css-prefix}-plus-circle:before { + content: $fa-var-plus-circle; +} +.#{$fa-css-prefix}-minus-circle:before { + content: $fa-var-minus-circle; +} +.#{$fa-css-prefix}-times-circle:before { + content: $fa-var-times-circle; +} +.#{$fa-css-prefix}-check-circle:before { + content: $fa-var-check-circle; +} +.#{$fa-css-prefix}-question-circle:before { + content: $fa-var-question-circle; +} +.#{$fa-css-prefix}-info-circle:before { + content: $fa-var-info-circle; +} +.#{$fa-css-prefix}-crosshairs:before { + content: $fa-var-crosshairs; +} +.#{$fa-css-prefix}-times-circle-o:before { + content: $fa-var-times-circle-o; +} +.#{$fa-css-prefix}-check-circle-o:before { + content: $fa-var-check-circle-o; +} +.#{$fa-css-prefix}-ban:before { + content: $fa-var-ban; +} +.#{$fa-css-prefix}-arrow-left:before { + content: $fa-var-arrow-left; +} +.#{$fa-css-prefix}-arrow-right:before { + content: $fa-var-arrow-right; +} +.#{$fa-css-prefix}-arrow-up:before { + content: $fa-var-arrow-up; +} +.#{$fa-css-prefix}-arrow-down:before { + content: $fa-var-arrow-down; +} .#{$fa-css-prefix}-mail-forward:before, -.#{$fa-css-prefix}-share:before { content: $fa-var-share; } -.#{$fa-css-prefix}-expand:before { content: $fa-var-expand; } -.#{$fa-css-prefix}-compress:before { content: $fa-var-compress; } -.#{$fa-css-prefix}-plus:before { content: $fa-var-plus; } -.#{$fa-css-prefix}-minus:before { content: $fa-var-minus; } -.#{$fa-css-prefix}-asterisk:before { content: $fa-var-asterisk; } -.#{$fa-css-prefix}-exclamation-circle:before { content: $fa-var-exclamation-circle; } -.#{$fa-css-prefix}-gift:before { content: $fa-var-gift; } -.#{$fa-css-prefix}-leaf:before { content: $fa-var-leaf; } -.#{$fa-css-prefix}-fire:before { content: $fa-var-fire; } -.#{$fa-css-prefix}-eye:before { content: $fa-var-eye; } -.#{$fa-css-prefix}-eye-slash:before { content: $fa-var-eye-slash; } +.#{$fa-css-prefix}-share:before { + content: $fa-var-share; +} +.#{$fa-css-prefix}-expand:before { + content: $fa-var-expand; +} +.#{$fa-css-prefix}-compress:before { + content: $fa-var-compress; +} +.#{$fa-css-prefix}-plus:before { + content: $fa-var-plus; +} +.#{$fa-css-prefix}-minus:before { + content: $fa-var-minus; +} +.#{$fa-css-prefix}-asterisk:before { + content: $fa-var-asterisk; +} +.#{$fa-css-prefix}-exclamation-circle:before { + content: $fa-var-exclamation-circle; +} +.#{$fa-css-prefix}-gift:before { + content: $fa-var-gift; +} +.#{$fa-css-prefix}-leaf:before { + content: $fa-var-leaf; +} +.#{$fa-css-prefix}-fire:before { + content: $fa-var-fire; +} +.#{$fa-css-prefix}-eye:before { + content: $fa-var-eye; +} +.#{$fa-css-prefix}-eye-slash:before { + content: $fa-var-eye-slash; +} .#{$fa-css-prefix}-warning:before, -.#{$fa-css-prefix}-exclamation-triangle:before { content: $fa-var-exclamation-triangle; } -.#{$fa-css-prefix}-plane:before { content: $fa-var-plane; } -.#{$fa-css-prefix}-calendar:before { content: $fa-var-calendar; } -.#{$fa-css-prefix}-random:before { content: $fa-var-random; } -.#{$fa-css-prefix}-comment:before { content: $fa-var-comment; } -.#{$fa-css-prefix}-magnet:before { content: $fa-var-magnet; } -.#{$fa-css-prefix}-chevron-up:before { content: $fa-var-chevron-up; } -.#{$fa-css-prefix}-chevron-down:before { content: $fa-var-chevron-down; } -.#{$fa-css-prefix}-retweet:before { content: $fa-var-retweet; } -.#{$fa-css-prefix}-shopping-cart:before { content: $fa-var-shopping-cart; } -.#{$fa-css-prefix}-folder:before { content: $fa-var-folder; } -.#{$fa-css-prefix}-folder-open:before { content: $fa-var-folder-open; } -.#{$fa-css-prefix}-arrows-v:before { content: $fa-var-arrows-v; } -.#{$fa-css-prefix}-arrows-h:before { content: $fa-var-arrows-h; } +.#{$fa-css-prefix}-exclamation-triangle:before { + content: $fa-var-exclamation-triangle; +} +.#{$fa-css-prefix}-plane:before { + content: $fa-var-plane; +} +.#{$fa-css-prefix}-calendar:before { + content: $fa-var-calendar; +} +.#{$fa-css-prefix}-random:before { + content: $fa-var-random; +} +.#{$fa-css-prefix}-comment:before { + content: $fa-var-comment; +} +.#{$fa-css-prefix}-magnet:before { + content: $fa-var-magnet; +} +.#{$fa-css-prefix}-chevron-up:before { + content: $fa-var-chevron-up; +} +.#{$fa-css-prefix}-chevron-down:before { + content: $fa-var-chevron-down; +} +.#{$fa-css-prefix}-retweet:before { + content: $fa-var-retweet; +} +.#{$fa-css-prefix}-shopping-cart:before { + content: $fa-var-shopping-cart; +} +.#{$fa-css-prefix}-folder:before { + content: $fa-var-folder; +} +.#{$fa-css-prefix}-folder-open:before { + content: $fa-var-folder-open; +} +.#{$fa-css-prefix}-arrows-v:before { + content: $fa-var-arrows-v; +} +.#{$fa-css-prefix}-arrows-h:before { + content: $fa-var-arrows-h; +} .#{$fa-css-prefix}-bar-chart-o:before, -.#{$fa-css-prefix}-bar-chart:before { content: $fa-var-bar-chart; } -.#{$fa-css-prefix}-twitter-square:before { content: $fa-var-twitter-square; } -.#{$fa-css-prefix}-facebook-square:before { content: $fa-var-facebook-square; } -.#{$fa-css-prefix}-camera-retro:before { content: $fa-var-camera-retro; } -.#{$fa-css-prefix}-key:before { content: $fa-var-key; } +.#{$fa-css-prefix}-bar-chart:before { + content: $fa-var-bar-chart; +} +.#{$fa-css-prefix}-twitter-square:before { + content: $fa-var-twitter-square; +} +.#{$fa-css-prefix}-facebook-square:before { + content: $fa-var-facebook-square; +} +.#{$fa-css-prefix}-camera-retro:before { + content: $fa-var-camera-retro; +} +.#{$fa-css-prefix}-key:before { + content: $fa-var-key; +} .#{$fa-css-prefix}-gears:before, -.#{$fa-css-prefix}-cogs:before { content: $fa-var-cogs; } -.#{$fa-css-prefix}-comments:before { content: $fa-var-comments; } -.#{$fa-css-prefix}-thumbs-o-up:before { content: $fa-var-thumbs-o-up; } -.#{$fa-css-prefix}-thumbs-o-down:before { content: $fa-var-thumbs-o-down; } -.#{$fa-css-prefix}-star-half:before { content: $fa-var-star-half; } -.#{$fa-css-prefix}-heart-o:before { content: $fa-var-heart-o; } -.#{$fa-css-prefix}-sign-out:before { content: $fa-var-sign-out; } -.#{$fa-css-prefix}-linkedin-square:before { content: $fa-var-linkedin-square; } -.#{$fa-css-prefix}-thumb-tack:before { content: $fa-var-thumb-tack; } -.#{$fa-css-prefix}-external-link:before { content: $fa-var-external-link; } -.#{$fa-css-prefix}-sign-in:before { content: $fa-var-sign-in; } -.#{$fa-css-prefix}-trophy:before { content: $fa-var-trophy; } -.#{$fa-css-prefix}-github-square:before { content: $fa-var-github-square; } -.#{$fa-css-prefix}-upload:before { content: $fa-var-upload; } -.#{$fa-css-prefix}-lemon-o:before { content: $fa-var-lemon-o; } -.#{$fa-css-prefix}-phone:before { content: $fa-var-phone; } -.#{$fa-css-prefix}-square-o:before { content: $fa-var-square-o; } -.#{$fa-css-prefix}-bookmark-o:before { content: $fa-var-bookmark-o; } -.#{$fa-css-prefix}-phone-square:before { content: $fa-var-phone-square; } -.#{$fa-css-prefix}-twitter:before { content: $fa-var-twitter; } +.#{$fa-css-prefix}-cogs:before { + content: $fa-var-cogs; +} +.#{$fa-css-prefix}-comments:before { + content: $fa-var-comments; +} +.#{$fa-css-prefix}-thumbs-o-up:before { + content: $fa-var-thumbs-o-up; +} +.#{$fa-css-prefix}-thumbs-o-down:before { + content: $fa-var-thumbs-o-down; +} +.#{$fa-css-prefix}-star-half:before { + content: $fa-var-star-half; +} +.#{$fa-css-prefix}-heart-o:before { + content: $fa-var-heart-o; +} +.#{$fa-css-prefix}-sign-out:before { + content: $fa-var-sign-out; +} +.#{$fa-css-prefix}-linkedin-square:before { + content: $fa-var-linkedin-square; +} +.#{$fa-css-prefix}-thumb-tack:before { + content: $fa-var-thumb-tack; +} +.#{$fa-css-prefix}-external-link:before { + content: $fa-var-external-link; +} +.#{$fa-css-prefix}-sign-in:before { + content: $fa-var-sign-in; +} +.#{$fa-css-prefix}-trophy:before { + content: $fa-var-trophy; +} +.#{$fa-css-prefix}-github-square:before { + content: $fa-var-github-square; +} +.#{$fa-css-prefix}-upload:before { + content: $fa-var-upload; +} +.#{$fa-css-prefix}-lemon-o:before { + content: $fa-var-lemon-o; +} +.#{$fa-css-prefix}-phone:before { + content: $fa-var-phone; +} +.#{$fa-css-prefix}-square-o:before { + content: $fa-var-square-o; +} +.#{$fa-css-prefix}-bookmark-o:before { + content: $fa-var-bookmark-o; +} +.#{$fa-css-prefix}-phone-square:before { + content: $fa-var-phone-square; +} +.#{$fa-css-prefix}-twitter:before { + content: $fa-var-twitter; +} .#{$fa-css-prefix}-facebook-f:before, -.#{$fa-css-prefix}-facebook:before { content: $fa-var-facebook; } -.#{$fa-css-prefix}-github:before { content: $fa-var-github; } -.#{$fa-css-prefix}-unlock:before { content: $fa-var-unlock; } -.#{$fa-css-prefix}-credit-card:before { content: $fa-var-credit-card; } +.#{$fa-css-prefix}-facebook:before { + content: $fa-var-facebook; +} +.#{$fa-css-prefix}-github:before { + content: $fa-var-github; +} +.#{$fa-css-prefix}-unlock:before { + content: $fa-var-unlock; +} +.#{$fa-css-prefix}-credit-card:before { + content: $fa-var-credit-card; +} .#{$fa-css-prefix}-feed:before, -.#{$fa-css-prefix}-rss:before { content: $fa-var-rss; } -.#{$fa-css-prefix}-hdd-o:before { content: $fa-var-hdd-o; } -.#{$fa-css-prefix}-bullhorn:before { content: $fa-var-bullhorn; } -.#{$fa-css-prefix}-bell:before { content: $fa-var-bell; } -.#{$fa-css-prefix}-certificate:before { content: $fa-var-certificate; } -.#{$fa-css-prefix}-hand-o-right:before { content: $fa-var-hand-o-right; } -.#{$fa-css-prefix}-hand-o-left:before { content: $fa-var-hand-o-left; } -.#{$fa-css-prefix}-hand-o-up:before { content: $fa-var-hand-o-up; } -.#{$fa-css-prefix}-hand-o-down:before { content: $fa-var-hand-o-down; } -.#{$fa-css-prefix}-arrow-circle-left:before { content: $fa-var-arrow-circle-left; } -.#{$fa-css-prefix}-arrow-circle-right:before { content: $fa-var-arrow-circle-right; } -.#{$fa-css-prefix}-arrow-circle-up:before { content: $fa-var-arrow-circle-up; } -.#{$fa-css-prefix}-arrow-circle-down:before { content: $fa-var-arrow-circle-down; } -.#{$fa-css-prefix}-globe:before { content: $fa-var-globe; } -.#{$fa-css-prefix}-wrench:before { content: $fa-var-wrench; } -.#{$fa-css-prefix}-tasks:before { content: $fa-var-tasks; } -.#{$fa-css-prefix}-filter:before { content: $fa-var-filter; } -.#{$fa-css-prefix}-briefcase:before { content: $fa-var-briefcase; } -.#{$fa-css-prefix}-arrows-alt:before { content: $fa-var-arrows-alt; } +.#{$fa-css-prefix}-rss:before { + content: $fa-var-rss; +} +.#{$fa-css-prefix}-hdd-o:before { + content: $fa-var-hdd-o; +} +.#{$fa-css-prefix}-bullhorn:before { + content: $fa-var-bullhorn; +} +.#{$fa-css-prefix}-bell:before { + content: $fa-var-bell; +} +.#{$fa-css-prefix}-certificate:before { + content: $fa-var-certificate; +} +.#{$fa-css-prefix}-hand-o-right:before { + content: $fa-var-hand-o-right; +} +.#{$fa-css-prefix}-hand-o-left:before { + content: $fa-var-hand-o-left; +} +.#{$fa-css-prefix}-hand-o-up:before { + content: $fa-var-hand-o-up; +} +.#{$fa-css-prefix}-hand-o-down:before { + content: $fa-var-hand-o-down; +} +.#{$fa-css-prefix}-arrow-circle-left:before { + content: $fa-var-arrow-circle-left; +} +.#{$fa-css-prefix}-arrow-circle-right:before { + content: $fa-var-arrow-circle-right; +} +.#{$fa-css-prefix}-arrow-circle-up:before { + content: $fa-var-arrow-circle-up; +} +.#{$fa-css-prefix}-arrow-circle-down:before { + content: $fa-var-arrow-circle-down; +} +.#{$fa-css-prefix}-globe:before { + content: $fa-var-globe; +} +.#{$fa-css-prefix}-wrench:before { + content: $fa-var-wrench; +} +.#{$fa-css-prefix}-tasks:before { + content: $fa-var-tasks; +} +.#{$fa-css-prefix}-filter:before { + content: $fa-var-filter; +} +.#{$fa-css-prefix}-briefcase:before { + content: $fa-var-briefcase; +} +.#{$fa-css-prefix}-arrows-alt:before { + content: $fa-var-arrows-alt; +} .#{$fa-css-prefix}-group:before, -.#{$fa-css-prefix}-users:before { content: $fa-var-users; } +.#{$fa-css-prefix}-users:before { + content: $fa-var-users; +} .#{$fa-css-prefix}-chain:before, -.#{$fa-css-prefix}-link:before { content: $fa-var-link; } -.#{$fa-css-prefix}-cloud:before { content: $fa-var-cloud; } -.#{$fa-css-prefix}-flask:before { content: $fa-var-flask; } +.#{$fa-css-prefix}-link:before { + content: $fa-var-link; +} +.#{$fa-css-prefix}-cloud:before { + content: $fa-var-cloud; +} +.#{$fa-css-prefix}-flask:before { + content: $fa-var-flask; +} .#{$fa-css-prefix}-cut:before, -.#{$fa-css-prefix}-scissors:before { content: $fa-var-scissors; } +.#{$fa-css-prefix}-scissors:before { + content: $fa-var-scissors; +} .#{$fa-css-prefix}-copy:before, -.#{$fa-css-prefix}-files-o:before { content: $fa-var-files-o; } -.#{$fa-css-prefix}-paperclip:before { content: $fa-var-paperclip; } +.#{$fa-css-prefix}-files-o:before { + content: $fa-var-files-o; +} +.#{$fa-css-prefix}-paperclip:before { + content: $fa-var-paperclip; +} .#{$fa-css-prefix}-save:before, -.#{$fa-css-prefix}-floppy-o:before { content: $fa-var-floppy-o; } -.#{$fa-css-prefix}-square:before { content: $fa-var-square; } +.#{$fa-css-prefix}-floppy-o:before { + content: $fa-var-floppy-o; +} +.#{$fa-css-prefix}-square:before { + content: $fa-var-square; +} .#{$fa-css-prefix}-navicon:before, .#{$fa-css-prefix}-reorder:before, -.#{$fa-css-prefix}-bars:before { content: $fa-var-bars; } -.#{$fa-css-prefix}-list-ul:before { content: $fa-var-list-ul; } -.#{$fa-css-prefix}-list-ol:before { content: $fa-var-list-ol; } -.#{$fa-css-prefix}-strikethrough:before { content: $fa-var-strikethrough; } -.#{$fa-css-prefix}-underline:before { content: $fa-var-underline; } -.#{$fa-css-prefix}-table:before { content: $fa-var-table; } -.#{$fa-css-prefix}-magic:before { content: $fa-var-magic; } -.#{$fa-css-prefix}-truck:before { content: $fa-var-truck; } -.#{$fa-css-prefix}-pinterest:before { content: $fa-var-pinterest; } -.#{$fa-css-prefix}-pinterest-square:before { content: $fa-var-pinterest-square; } -.#{$fa-css-prefix}-google-plus-square:before { content: $fa-var-google-plus-square; } -.#{$fa-css-prefix}-google-plus:before { content: $fa-var-google-plus; } -.#{$fa-css-prefix}-money:before { content: $fa-var-money; } -.#{$fa-css-prefix}-caret-down:before { content: $fa-var-caret-down; } -.#{$fa-css-prefix}-caret-up:before { content: $fa-var-caret-up; } -.#{$fa-css-prefix}-caret-left:before { content: $fa-var-caret-left; } -.#{$fa-css-prefix}-caret-right:before { content: $fa-var-caret-right; } -.#{$fa-css-prefix}-columns:before { content: $fa-var-columns; } +.#{$fa-css-prefix}-bars:before { + content: $fa-var-bars; +} +.#{$fa-css-prefix}-list-ul:before { + content: $fa-var-list-ul; +} +.#{$fa-css-prefix}-list-ol:before { + content: $fa-var-list-ol; +} +.#{$fa-css-prefix}-strikethrough:before { + content: $fa-var-strikethrough; +} +.#{$fa-css-prefix}-underline:before { + content: $fa-var-underline; +} +.#{$fa-css-prefix}-table:before { + content: $fa-var-table; +} +.#{$fa-css-prefix}-magic:before { + content: $fa-var-magic; +} +.#{$fa-css-prefix}-truck:before { + content: $fa-var-truck; +} +.#{$fa-css-prefix}-pinterest:before { + content: $fa-var-pinterest; +} +.#{$fa-css-prefix}-pinterest-square:before { + content: $fa-var-pinterest-square; +} +.#{$fa-css-prefix}-google-plus-square:before { + content: $fa-var-google-plus-square; +} +.#{$fa-css-prefix}-google-plus:before { + content: $fa-var-google-plus; +} +.#{$fa-css-prefix}-money:before { + content: $fa-var-money; +} +.#{$fa-css-prefix}-caret-down:before { + content: $fa-var-caret-down; +} +.#{$fa-css-prefix}-caret-up:before { + content: $fa-var-caret-up; +} +.#{$fa-css-prefix}-caret-left:before { + content: $fa-var-caret-left; +} +.#{$fa-css-prefix}-caret-right:before { + content: $fa-var-caret-right; +} +.#{$fa-css-prefix}-columns:before { + content: $fa-var-columns; +} .#{$fa-css-prefix}-unsorted:before, -.#{$fa-css-prefix}-sort:before { content: $fa-var-sort; } +.#{$fa-css-prefix}-sort:before { + content: $fa-var-sort; +} .#{$fa-css-prefix}-sort-down:before, -.#{$fa-css-prefix}-sort-desc:before { content: $fa-var-sort-desc; } +.#{$fa-css-prefix}-sort-desc:before { + content: $fa-var-sort-desc; +} .#{$fa-css-prefix}-sort-up:before, -.#{$fa-css-prefix}-sort-asc:before { content: $fa-var-sort-asc; } -.#{$fa-css-prefix}-envelope:before { content: $fa-var-envelope; } -.#{$fa-css-prefix}-linkedin:before { content: $fa-var-linkedin; } +.#{$fa-css-prefix}-sort-asc:before { + content: $fa-var-sort-asc; +} +.#{$fa-css-prefix}-envelope:before { + content: $fa-var-envelope; +} +.#{$fa-css-prefix}-linkedin:before { + content: $fa-var-linkedin; +} .#{$fa-css-prefix}-rotate-left:before, -.#{$fa-css-prefix}-undo:before { content: $fa-var-undo; } +.#{$fa-css-prefix}-undo:before { + content: $fa-var-undo; +} .#{$fa-css-prefix}-legal:before, -.#{$fa-css-prefix}-gavel:before { content: $fa-var-gavel; } +.#{$fa-css-prefix}-gavel:before { + content: $fa-var-gavel; +} .#{$fa-css-prefix}-dashboard:before, -.#{$fa-css-prefix}-tachometer:before { content: $fa-var-tachometer; } -.#{$fa-css-prefix}-comment-o:before { content: $fa-var-comment-o; } -.#{$fa-css-prefix}-comments-o:before { content: $fa-var-comments-o; } +.#{$fa-css-prefix}-tachometer:before { + content: $fa-var-tachometer; +} +.#{$fa-css-prefix}-comment-o:before { + content: $fa-var-comment-o; +} +.#{$fa-css-prefix}-comments-o:before { + content: $fa-var-comments-o; +} .#{$fa-css-prefix}-flash:before, -.#{$fa-css-prefix}-bolt:before { content: $fa-var-bolt; } -.#{$fa-css-prefix}-sitemap:before { content: $fa-var-sitemap; } -.#{$fa-css-prefix}-umbrella:before { content: $fa-var-umbrella; } +.#{$fa-css-prefix}-bolt:before { + content: $fa-var-bolt; +} +.#{$fa-css-prefix}-sitemap:before { + content: $fa-var-sitemap; +} +.#{$fa-css-prefix}-umbrella:before { + content: $fa-var-umbrella; +} .#{$fa-css-prefix}-paste:before, -.#{$fa-css-prefix}-clipboard:before { content: $fa-var-clipboard; } -.#{$fa-css-prefix}-lightbulb-o:before { content: $fa-var-lightbulb-o; } -.#{$fa-css-prefix}-exchange:before { content: $fa-var-exchange; } -.#{$fa-css-prefix}-cloud-download:before { content: $fa-var-cloud-download; } -.#{$fa-css-prefix}-cloud-upload:before { content: $fa-var-cloud-upload; } -.#{$fa-css-prefix}-user-md:before { content: $fa-var-user-md; } -.#{$fa-css-prefix}-stethoscope:before { content: $fa-var-stethoscope; } -.#{$fa-css-prefix}-suitcase:before { content: $fa-var-suitcase; } -.#{$fa-css-prefix}-bell-o:before { content: $fa-var-bell-o; } -.#{$fa-css-prefix}-coffee:before { content: $fa-var-coffee; } -.#{$fa-css-prefix}-cutlery:before { content: $fa-var-cutlery; } -.#{$fa-css-prefix}-file-text-o:before { content: $fa-var-file-text-o; } -.#{$fa-css-prefix}-building-o:before { content: $fa-var-building-o; } -.#{$fa-css-prefix}-hospital-o:before { content: $fa-var-hospital-o; } -.#{$fa-css-prefix}-ambulance:before { content: $fa-var-ambulance; } -.#{$fa-css-prefix}-medkit:before { content: $fa-var-medkit; } -.#{$fa-css-prefix}-fighter-jet:before { content: $fa-var-fighter-jet; } -.#{$fa-css-prefix}-beer:before { content: $fa-var-beer; } -.#{$fa-css-prefix}-h-square:before { content: $fa-var-h-square; } -.#{$fa-css-prefix}-plus-square:before { content: $fa-var-plus-square; } -.#{$fa-css-prefix}-angle-double-left:before { content: $fa-var-angle-double-left; } -.#{$fa-css-prefix}-angle-double-right:before { content: $fa-var-angle-double-right; } -.#{$fa-css-prefix}-angle-double-up:before { content: $fa-var-angle-double-up; } -.#{$fa-css-prefix}-angle-double-down:before { content: $fa-var-angle-double-down; } -.#{$fa-css-prefix}-angle-left:before { content: $fa-var-angle-left; } -.#{$fa-css-prefix}-angle-right:before { content: $fa-var-angle-right; } -.#{$fa-css-prefix}-angle-up:before { content: $fa-var-angle-up; } -.#{$fa-css-prefix}-angle-down:before { content: $fa-var-angle-down; } -.#{$fa-css-prefix}-desktop:before { content: $fa-var-desktop; } -.#{$fa-css-prefix}-laptop:before { content: $fa-var-laptop; } -.#{$fa-css-prefix}-tablet:before { content: $fa-var-tablet; } +.#{$fa-css-prefix}-clipboard:before { + content: $fa-var-clipboard; +} +.#{$fa-css-prefix}-lightbulb-o:before { + content: $fa-var-lightbulb-o; +} +.#{$fa-css-prefix}-exchange:before { + content: $fa-var-exchange; +} +.#{$fa-css-prefix}-cloud-download:before { + content: $fa-var-cloud-download; +} +.#{$fa-css-prefix}-cloud-upload:before { + content: $fa-var-cloud-upload; +} +.#{$fa-css-prefix}-user-md:before { + content: $fa-var-user-md; +} +.#{$fa-css-prefix}-stethoscope:before { + content: $fa-var-stethoscope; +} +.#{$fa-css-prefix}-suitcase:before { + content: $fa-var-suitcase; +} +.#{$fa-css-prefix}-bell-o:before { + content: $fa-var-bell-o; +} +.#{$fa-css-prefix}-coffee:before { + content: $fa-var-coffee; +} +.#{$fa-css-prefix}-cutlery:before { + content: $fa-var-cutlery; +} +.#{$fa-css-prefix}-file-text-o:before { + content: $fa-var-file-text-o; +} +.#{$fa-css-prefix}-building-o:before { + content: $fa-var-building-o; +} +.#{$fa-css-prefix}-hospital-o:before { + content: $fa-var-hospital-o; +} +.#{$fa-css-prefix}-ambulance:before { + content: $fa-var-ambulance; +} +.#{$fa-css-prefix}-medkit:before { + content: $fa-var-medkit; +} +.#{$fa-css-prefix}-fighter-jet:before { + content: $fa-var-fighter-jet; +} +.#{$fa-css-prefix}-beer:before { + content: $fa-var-beer; +} +.#{$fa-css-prefix}-h-square:before { + content: $fa-var-h-square; +} +.#{$fa-css-prefix}-plus-square:before { + content: $fa-var-plus-square; +} +.#{$fa-css-prefix}-angle-double-left:before { + content: $fa-var-angle-double-left; +} +.#{$fa-css-prefix}-angle-double-right:before { + content: $fa-var-angle-double-right; +} +.#{$fa-css-prefix}-angle-double-up:before { + content: $fa-var-angle-double-up; +} +.#{$fa-css-prefix}-angle-double-down:before { + content: $fa-var-angle-double-down; +} +.#{$fa-css-prefix}-angle-left:before { + content: $fa-var-angle-left; +} +.#{$fa-css-prefix}-angle-right:before { + content: $fa-var-angle-right; +} +.#{$fa-css-prefix}-angle-up:before { + content: $fa-var-angle-up; +} +.#{$fa-css-prefix}-angle-down:before { + content: $fa-var-angle-down; +} +.#{$fa-css-prefix}-desktop:before { + content: $fa-var-desktop; +} +.#{$fa-css-prefix}-laptop:before { + content: $fa-var-laptop; +} +.#{$fa-css-prefix}-tablet:before { + content: $fa-var-tablet; +} .#{$fa-css-prefix}-mobile-phone:before, -.#{$fa-css-prefix}-mobile:before { content: $fa-var-mobile; } -.#{$fa-css-prefix}-circle-o:before { content: $fa-var-circle-o; } -.#{$fa-css-prefix}-quote-left:before { content: $fa-var-quote-left; } -.#{$fa-css-prefix}-quote-right:before { content: $fa-var-quote-right; } -.#{$fa-css-prefix}-spinner:before { content: $fa-var-spinner; } -.#{$fa-css-prefix}-circle:before { content: $fa-var-circle; } +.#{$fa-css-prefix}-mobile:before { + content: $fa-var-mobile; +} +.#{$fa-css-prefix}-circle-o:before { + content: $fa-var-circle-o; +} +.#{$fa-css-prefix}-quote-left:before { + content: $fa-var-quote-left; +} +.#{$fa-css-prefix}-quote-right:before { + content: $fa-var-quote-right; +} +.#{$fa-css-prefix}-spinner:before { + content: $fa-var-spinner; +} +.#{$fa-css-prefix}-circle:before { + content: $fa-var-circle; +} .#{$fa-css-prefix}-mail-reply:before, -.#{$fa-css-prefix}-reply:before { content: $fa-var-reply; } -.#{$fa-css-prefix}-github-alt:before { content: $fa-var-github-alt; } -.#{$fa-css-prefix}-folder-o:before { content: $fa-var-folder-o; } -.#{$fa-css-prefix}-folder-open-o:before { content: $fa-var-folder-open-o; } -.#{$fa-css-prefix}-smile-o:before { content: $fa-var-smile-o; } -.#{$fa-css-prefix}-frown-o:before { content: $fa-var-frown-o; } -.#{$fa-css-prefix}-meh-o:before { content: $fa-var-meh-o; } -.#{$fa-css-prefix}-gamepad:before { content: $fa-var-gamepad; } -.#{$fa-css-prefix}-keyboard-o:before { content: $fa-var-keyboard-o; } -.#{$fa-css-prefix}-flag-o:before { content: $fa-var-flag-o; } -.#{$fa-css-prefix}-flag-checkered:before { content: $fa-var-flag-checkered; } -.#{$fa-css-prefix}-terminal:before { content: $fa-var-terminal; } -.#{$fa-css-prefix}-code:before { content: $fa-var-code; } +.#{$fa-css-prefix}-reply:before { + content: $fa-var-reply; +} +.#{$fa-css-prefix}-github-alt:before { + content: $fa-var-github-alt; +} +.#{$fa-css-prefix}-folder-o:before { + content: $fa-var-folder-o; +} +.#{$fa-css-prefix}-folder-open-o:before { + content: $fa-var-folder-open-o; +} +.#{$fa-css-prefix}-smile-o:before { + content: $fa-var-smile-o; +} +.#{$fa-css-prefix}-frown-o:before { + content: $fa-var-frown-o; +} +.#{$fa-css-prefix}-meh-o:before { + content: $fa-var-meh-o; +} +.#{$fa-css-prefix}-gamepad:before { + content: $fa-var-gamepad; +} +.#{$fa-css-prefix}-keyboard-o:before { + content: $fa-var-keyboard-o; +} +.#{$fa-css-prefix}-flag-o:before { + content: $fa-var-flag-o; +} +.#{$fa-css-prefix}-flag-checkered:before { + content: $fa-var-flag-checkered; +} +.#{$fa-css-prefix}-terminal:before { + content: $fa-var-terminal; +} +.#{$fa-css-prefix}-code:before { + content: $fa-var-code; +} .#{$fa-css-prefix}-mail-reply-all:before, -.#{$fa-css-prefix}-reply-all:before { content: $fa-var-reply-all; } +.#{$fa-css-prefix}-reply-all:before { + content: $fa-var-reply-all; +} .#{$fa-css-prefix}-star-half-empty:before, .#{$fa-css-prefix}-star-half-full:before, -.#{$fa-css-prefix}-star-half-o:before { content: $fa-var-star-half-o; } -.#{$fa-css-prefix}-location-arrow:before { content: $fa-var-location-arrow; } -.#{$fa-css-prefix}-crop:before { content: $fa-var-crop; } -.#{$fa-css-prefix}-code-fork:before { content: $fa-var-code-fork; } +.#{$fa-css-prefix}-star-half-o:before { + content: $fa-var-star-half-o; +} +.#{$fa-css-prefix}-location-arrow:before { + content: $fa-var-location-arrow; +} +.#{$fa-css-prefix}-crop:before { + content: $fa-var-crop; +} +.#{$fa-css-prefix}-code-fork:before { + content: $fa-var-code-fork; +} .#{$fa-css-prefix}-unlink:before, -.#{$fa-css-prefix}-chain-broken:before { content: $fa-var-chain-broken; } -.#{$fa-css-prefix}-question:before { content: $fa-var-question; } -.#{$fa-css-prefix}-info:before { content: $fa-var-info; } -.#{$fa-css-prefix}-exclamation:before { content: $fa-var-exclamation; } -.#{$fa-css-prefix}-superscript:before { content: $fa-var-superscript; } -.#{$fa-css-prefix}-subscript:before { content: $fa-var-subscript; } -.#{$fa-css-prefix}-eraser:before { content: $fa-var-eraser; } -.#{$fa-css-prefix}-puzzle-piece:before { content: $fa-var-puzzle-piece; } -.#{$fa-css-prefix}-microphone:before { content: $fa-var-microphone; } -.#{$fa-css-prefix}-microphone-slash:before { content: $fa-var-microphone-slash; } -.#{$fa-css-prefix}-shield:before { content: $fa-var-shield; } -.#{$fa-css-prefix}-calendar-o:before { content: $fa-var-calendar-o; } -.#{$fa-css-prefix}-fire-extinguisher:before { content: $fa-var-fire-extinguisher; } -.#{$fa-css-prefix}-rocket:before { content: $fa-var-rocket; } -.#{$fa-css-prefix}-maxcdn:before { content: $fa-var-maxcdn; } -.#{$fa-css-prefix}-chevron-circle-left:before { content: $fa-var-chevron-circle-left; } -.#{$fa-css-prefix}-chevron-circle-right:before { content: $fa-var-chevron-circle-right; } -.#{$fa-css-prefix}-chevron-circle-up:before { content: $fa-var-chevron-circle-up; } -.#{$fa-css-prefix}-chevron-circle-down:before { content: $fa-var-chevron-circle-down; } -.#{$fa-css-prefix}-html5:before { content: $fa-var-html5; } -.#{$fa-css-prefix}-css3:before { content: $fa-var-css3; } -.#{$fa-css-prefix}-anchor:before { content: $fa-var-anchor; } -.#{$fa-css-prefix}-unlock-alt:before { content: $fa-var-unlock-alt; } -.#{$fa-css-prefix}-bullseye:before { content: $fa-var-bullseye; } -.#{$fa-css-prefix}-ellipsis-h:before { content: $fa-var-ellipsis-h; } -.#{$fa-css-prefix}-ellipsis-v:before { content: $fa-var-ellipsis-v; } -.#{$fa-css-prefix}-rss-square:before { content: $fa-var-rss-square; } -.#{$fa-css-prefix}-play-circle:before { content: $fa-var-play-circle; } -.#{$fa-css-prefix}-ticket:before { content: $fa-var-ticket; } -.#{$fa-css-prefix}-minus-square:before { content: $fa-var-minus-square; } -.#{$fa-css-prefix}-minus-square-o:before { content: $fa-var-minus-square-o; } -.#{$fa-css-prefix}-level-up:before { content: $fa-var-level-up; } -.#{$fa-css-prefix}-level-down:before { content: $fa-var-level-down; } -.#{$fa-css-prefix}-check-square:before { content: $fa-var-check-square; } -.#{$fa-css-prefix}-pencil-square:before { content: $fa-var-pencil-square; } -.#{$fa-css-prefix}-external-link-square:before { content: $fa-var-external-link-square; } -.#{$fa-css-prefix}-share-square:before { content: $fa-var-share-square; } -.#{$fa-css-prefix}-compass:before { content: $fa-var-compass; } +.#{$fa-css-prefix}-chain-broken:before { + content: $fa-var-chain-broken; +} +.#{$fa-css-prefix}-question:before { + content: $fa-var-question; +} +.#{$fa-css-prefix}-info:before { + content: $fa-var-info; +} +.#{$fa-css-prefix}-exclamation:before { + content: $fa-var-exclamation; +} +.#{$fa-css-prefix}-superscript:before { + content: $fa-var-superscript; +} +.#{$fa-css-prefix}-subscript:before { + content: $fa-var-subscript; +} +.#{$fa-css-prefix}-eraser:before { + content: $fa-var-eraser; +} +.#{$fa-css-prefix}-puzzle-piece:before { + content: $fa-var-puzzle-piece; +} +.#{$fa-css-prefix}-microphone:before { + content: $fa-var-microphone; +} +.#{$fa-css-prefix}-microphone-slash:before { + content: $fa-var-microphone-slash; +} +.#{$fa-css-prefix}-shield:before { + content: $fa-var-shield; +} +.#{$fa-css-prefix}-calendar-o:before { + content: $fa-var-calendar-o; +} +.#{$fa-css-prefix}-fire-extinguisher:before { + content: $fa-var-fire-extinguisher; +} +.#{$fa-css-prefix}-rocket:before { + content: $fa-var-rocket; +} +.#{$fa-css-prefix}-maxcdn:before { + content: $fa-var-maxcdn; +} +.#{$fa-css-prefix}-chevron-circle-left:before { + content: $fa-var-chevron-circle-left; +} +.#{$fa-css-prefix}-chevron-circle-right:before { + content: $fa-var-chevron-circle-right; +} +.#{$fa-css-prefix}-chevron-circle-up:before { + content: $fa-var-chevron-circle-up; +} +.#{$fa-css-prefix}-chevron-circle-down:before { + content: $fa-var-chevron-circle-down; +} +.#{$fa-css-prefix}-html5:before { + content: $fa-var-html5; +} +.#{$fa-css-prefix}-css3:before { + content: $fa-var-css3; +} +.#{$fa-css-prefix}-anchor:before { + content: $fa-var-anchor; +} +.#{$fa-css-prefix}-unlock-alt:before { + content: $fa-var-unlock-alt; +} +.#{$fa-css-prefix}-bullseye:before { + content: $fa-var-bullseye; +} +.#{$fa-css-prefix}-ellipsis-h:before { + content: $fa-var-ellipsis-h; +} +.#{$fa-css-prefix}-ellipsis-v:before { + content: $fa-var-ellipsis-v; +} +.#{$fa-css-prefix}-rss-square:before { + content: $fa-var-rss-square; +} +.#{$fa-css-prefix}-play-circle:before { + content: $fa-var-play-circle; +} +.#{$fa-css-prefix}-ticket:before { + content: $fa-var-ticket; +} +.#{$fa-css-prefix}-minus-square:before { + content: $fa-var-minus-square; +} +.#{$fa-css-prefix}-minus-square-o:before { + content: $fa-var-minus-square-o; +} +.#{$fa-css-prefix}-level-up:before { + content: $fa-var-level-up; +} +.#{$fa-css-prefix}-level-down:before { + content: $fa-var-level-down; +} +.#{$fa-css-prefix}-check-square:before { + content: $fa-var-check-square; +} +.#{$fa-css-prefix}-pencil-square:before { + content: $fa-var-pencil-square; +} +.#{$fa-css-prefix}-external-link-square:before { + content: $fa-var-external-link-square; +} +.#{$fa-css-prefix}-share-square:before { + content: $fa-var-share-square; +} +.#{$fa-css-prefix}-compass:before { + content: $fa-var-compass; +} .#{$fa-css-prefix}-toggle-down:before, -.#{$fa-css-prefix}-caret-square-o-down:before { content: $fa-var-caret-square-o-down; } +.#{$fa-css-prefix}-caret-square-o-down:before { + content: $fa-var-caret-square-o-down; +} .#{$fa-css-prefix}-toggle-up:before, -.#{$fa-css-prefix}-caret-square-o-up:before { content: $fa-var-caret-square-o-up; } +.#{$fa-css-prefix}-caret-square-o-up:before { + content: $fa-var-caret-square-o-up; +} .#{$fa-css-prefix}-toggle-right:before, -.#{$fa-css-prefix}-caret-square-o-right:before { content: $fa-var-caret-square-o-right; } +.#{$fa-css-prefix}-caret-square-o-right:before { + content: $fa-var-caret-square-o-right; +} .#{$fa-css-prefix}-euro:before, -.#{$fa-css-prefix}-eur:before { content: $fa-var-eur; } -.#{$fa-css-prefix}-gbp:before { content: $fa-var-gbp; } +.#{$fa-css-prefix}-eur:before { + content: $fa-var-eur; +} +.#{$fa-css-prefix}-gbp:before { + content: $fa-var-gbp; +} .#{$fa-css-prefix}-dollar:before, -.#{$fa-css-prefix}-usd:before { content: $fa-var-usd; } +.#{$fa-css-prefix}-usd:before { + content: $fa-var-usd; +} .#{$fa-css-prefix}-rupee:before, -.#{$fa-css-prefix}-inr:before { content: $fa-var-inr; } +.#{$fa-css-prefix}-inr:before { + content: $fa-var-inr; +} .#{$fa-css-prefix}-cny:before, .#{$fa-css-prefix}-rmb:before, .#{$fa-css-prefix}-yen:before, -.#{$fa-css-prefix}-jpy:before { content: $fa-var-jpy; } +.#{$fa-css-prefix}-jpy:before { + content: $fa-var-jpy; +} .#{$fa-css-prefix}-ruble:before, .#{$fa-css-prefix}-rouble:before, -.#{$fa-css-prefix}-rub:before { content: $fa-var-rub; } +.#{$fa-css-prefix}-rub:before { + content: $fa-var-rub; +} .#{$fa-css-prefix}-won:before, -.#{$fa-css-prefix}-krw:before { content: $fa-var-krw; } +.#{$fa-css-prefix}-krw:before { + content: $fa-var-krw; +} .#{$fa-css-prefix}-bitcoin:before, -.#{$fa-css-prefix}-btc:before { content: $fa-var-btc; } -.#{$fa-css-prefix}-file:before { content: $fa-var-file; } -.#{$fa-css-prefix}-file-text:before { content: $fa-var-file-text; } -.#{$fa-css-prefix}-sort-alpha-asc:before { content: $fa-var-sort-alpha-asc; } -.#{$fa-css-prefix}-sort-alpha-desc:before { content: $fa-var-sort-alpha-desc; } -.#{$fa-css-prefix}-sort-amount-asc:before { content: $fa-var-sort-amount-asc; } -.#{$fa-css-prefix}-sort-amount-desc:before { content: $fa-var-sort-amount-desc; } -.#{$fa-css-prefix}-sort-numeric-asc:before { content: $fa-var-sort-numeric-asc; } -.#{$fa-css-prefix}-sort-numeric-desc:before { content: $fa-var-sort-numeric-desc; } -.#{$fa-css-prefix}-thumbs-up:before { content: $fa-var-thumbs-up; } -.#{$fa-css-prefix}-thumbs-down:before { content: $fa-var-thumbs-down; } -.#{$fa-css-prefix}-youtube-square:before { content: $fa-var-youtube-square; } -.#{$fa-css-prefix}-youtube:before { content: $fa-var-youtube; } -.#{$fa-css-prefix}-xing:before { content: $fa-var-xing; } -.#{$fa-css-prefix}-xing-square:before { content: $fa-var-xing-square; } -.#{$fa-css-prefix}-youtube-play:before { content: $fa-var-youtube-play; } -.#{$fa-css-prefix}-dropbox:before { content: $fa-var-dropbox; } -.#{$fa-css-prefix}-stack-overflow:before { content: $fa-var-stack-overflow; } -.#{$fa-css-prefix}-instagram:before { content: $fa-var-instagram; } -.#{$fa-css-prefix}-flickr:before { content: $fa-var-flickr; } -.#{$fa-css-prefix}-adn:before { content: $fa-var-adn; } -.#{$fa-css-prefix}-bitbucket:before { content: $fa-var-bitbucket; } -.#{$fa-css-prefix}-bitbucket-square:before { content: $fa-var-bitbucket-square; } -.#{$fa-css-prefix}-tumblr:before { content: $fa-var-tumblr; } -.#{$fa-css-prefix}-tumblr-square:before { content: $fa-var-tumblr-square; } -.#{$fa-css-prefix}-long-arrow-down:before { content: $fa-var-long-arrow-down; } -.#{$fa-css-prefix}-long-arrow-up:before { content: $fa-var-long-arrow-up; } -.#{$fa-css-prefix}-long-arrow-left:before { content: $fa-var-long-arrow-left; } -.#{$fa-css-prefix}-long-arrow-right:before { content: $fa-var-long-arrow-right; } -.#{$fa-css-prefix}-apple:before { content: $fa-var-apple; } -.#{$fa-css-prefix}-windows:before { content: $fa-var-windows; } -.#{$fa-css-prefix}-android:before { content: $fa-var-android; } -.#{$fa-css-prefix}-linux:before { content: $fa-var-linux; } -.#{$fa-css-prefix}-dribbble:before { content: $fa-var-dribbble; } -.#{$fa-css-prefix}-skype:before { content: $fa-var-skype; } -.#{$fa-css-prefix}-foursquare:before { content: $fa-var-foursquare; } -.#{$fa-css-prefix}-trello:before { content: $fa-var-trello; } -.#{$fa-css-prefix}-female:before { content: $fa-var-female; } -.#{$fa-css-prefix}-male:before { content: $fa-var-male; } +.#{$fa-css-prefix}-btc:before { + content: $fa-var-btc; +} +.#{$fa-css-prefix}-file:before { + content: $fa-var-file; +} +.#{$fa-css-prefix}-file-text:before { + content: $fa-var-file-text; +} +.#{$fa-css-prefix}-sort-alpha-asc:before { + content: $fa-var-sort-alpha-asc; +} +.#{$fa-css-prefix}-sort-alpha-desc:before { + content: $fa-var-sort-alpha-desc; +} +.#{$fa-css-prefix}-sort-amount-asc:before { + content: $fa-var-sort-amount-asc; +} +.#{$fa-css-prefix}-sort-amount-desc:before { + content: $fa-var-sort-amount-desc; +} +.#{$fa-css-prefix}-sort-numeric-asc:before { + content: $fa-var-sort-numeric-asc; +} +.#{$fa-css-prefix}-sort-numeric-desc:before { + content: $fa-var-sort-numeric-desc; +} +.#{$fa-css-prefix}-thumbs-up:before { + content: $fa-var-thumbs-up; +} +.#{$fa-css-prefix}-thumbs-down:before { + content: $fa-var-thumbs-down; +} +.#{$fa-css-prefix}-youtube-square:before { + content: $fa-var-youtube-square; +} +.#{$fa-css-prefix}-youtube:before { + content: $fa-var-youtube; +} +.#{$fa-css-prefix}-xing:before { + content: $fa-var-xing; +} +.#{$fa-css-prefix}-xing-square:before { + content: $fa-var-xing-square; +} +.#{$fa-css-prefix}-youtube-play:before { + content: $fa-var-youtube-play; +} +.#{$fa-css-prefix}-dropbox:before { + content: $fa-var-dropbox; +} +.#{$fa-css-prefix}-stack-overflow:before { + content: $fa-var-stack-overflow; +} +.#{$fa-css-prefix}-instagram:before { + content: $fa-var-instagram; +} +.#{$fa-css-prefix}-flickr:before { + content: $fa-var-flickr; +} +.#{$fa-css-prefix}-adn:before { + content: $fa-var-adn; +} +.#{$fa-css-prefix}-bitbucket:before { + content: $fa-var-bitbucket; +} +.#{$fa-css-prefix}-bitbucket-square:before { + content: $fa-var-bitbucket-square; +} +.#{$fa-css-prefix}-tumblr:before { + content: $fa-var-tumblr; +} +.#{$fa-css-prefix}-tumblr-square:before { + content: $fa-var-tumblr-square; +} +.#{$fa-css-prefix}-long-arrow-down:before { + content: $fa-var-long-arrow-down; +} +.#{$fa-css-prefix}-long-arrow-up:before { + content: $fa-var-long-arrow-up; +} +.#{$fa-css-prefix}-long-arrow-left:before { + content: $fa-var-long-arrow-left; +} +.#{$fa-css-prefix}-long-arrow-right:before { + content: $fa-var-long-arrow-right; +} +.#{$fa-css-prefix}-apple:before { + content: $fa-var-apple; +} +.#{$fa-css-prefix}-windows:before { + content: $fa-var-windows; +} +.#{$fa-css-prefix}-android:before { + content: $fa-var-android; +} +.#{$fa-css-prefix}-linux:before { + content: $fa-var-linux; +} +.#{$fa-css-prefix}-dribbble:before { + content: $fa-var-dribbble; +} +.#{$fa-css-prefix}-skype:before { + content: $fa-var-skype; +} +.#{$fa-css-prefix}-foursquare:before { + content: $fa-var-foursquare; +} +.#{$fa-css-prefix}-trello:before { + content: $fa-var-trello; +} +.#{$fa-css-prefix}-female:before { + content: $fa-var-female; +} +.#{$fa-css-prefix}-male:before { + content: $fa-var-male; +} .#{$fa-css-prefix}-gittip:before, -.#{$fa-css-prefix}-gratipay:before { content: $fa-var-gratipay; } -.#{$fa-css-prefix}-sun-o:before { content: $fa-var-sun-o; } -.#{$fa-css-prefix}-moon-o:before { content: $fa-var-moon-o; } -.#{$fa-css-prefix}-archive:before { content: $fa-var-archive; } -.#{$fa-css-prefix}-bug:before { content: $fa-var-bug; } -.#{$fa-css-prefix}-vk:before { content: $fa-var-vk; } -.#{$fa-css-prefix}-weibo:before { content: $fa-var-weibo; } -.#{$fa-css-prefix}-renren:before { content: $fa-var-renren; } -.#{$fa-css-prefix}-pagelines:before { content: $fa-var-pagelines; } -.#{$fa-css-prefix}-stack-exchange:before { content: $fa-var-stack-exchange; } -.#{$fa-css-prefix}-arrow-circle-o-right:before { content: $fa-var-arrow-circle-o-right; } -.#{$fa-css-prefix}-arrow-circle-o-left:before { content: $fa-var-arrow-circle-o-left; } +.#{$fa-css-prefix}-gratipay:before { + content: $fa-var-gratipay; +} +.#{$fa-css-prefix}-sun-o:before { + content: $fa-var-sun-o; +} +.#{$fa-css-prefix}-moon-o:before { + content: $fa-var-moon-o; +} +.#{$fa-css-prefix}-archive:before { + content: $fa-var-archive; +} +.#{$fa-css-prefix}-bug:before { + content: $fa-var-bug; +} +.#{$fa-css-prefix}-vk:before { + content: $fa-var-vk; +} +.#{$fa-css-prefix}-weibo:before { + content: $fa-var-weibo; +} +.#{$fa-css-prefix}-renren:before { + content: $fa-var-renren; +} +.#{$fa-css-prefix}-pagelines:before { + content: $fa-var-pagelines; +} +.#{$fa-css-prefix}-stack-exchange:before { + content: $fa-var-stack-exchange; +} +.#{$fa-css-prefix}-arrow-circle-o-right:before { + content: $fa-var-arrow-circle-o-right; +} +.#{$fa-css-prefix}-arrow-circle-o-left:before { + content: $fa-var-arrow-circle-o-left; +} .#{$fa-css-prefix}-toggle-left:before, -.#{$fa-css-prefix}-caret-square-o-left:before { content: $fa-var-caret-square-o-left; } -.#{$fa-css-prefix}-dot-circle-o:before { content: $fa-var-dot-circle-o; } -.#{$fa-css-prefix}-wheelchair:before { content: $fa-var-wheelchair; } -.#{$fa-css-prefix}-vimeo-square:before { content: $fa-var-vimeo-square; } +.#{$fa-css-prefix}-caret-square-o-left:before { + content: $fa-var-caret-square-o-left; +} +.#{$fa-css-prefix}-dot-circle-o:before { + content: $fa-var-dot-circle-o; +} +.#{$fa-css-prefix}-wheelchair:before { + content: $fa-var-wheelchair; +} +.#{$fa-css-prefix}-vimeo-square:before { + content: $fa-var-vimeo-square; +} .#{$fa-css-prefix}-turkish-lira:before, -.#{$fa-css-prefix}-try:before { content: $fa-var-try; } -.#{$fa-css-prefix}-plus-square-o:before { content: $fa-var-plus-square-o; } -.#{$fa-css-prefix}-space-shuttle:before { content: $fa-var-space-shuttle; } -.#{$fa-css-prefix}-slack:before { content: $fa-var-slack; } -.#{$fa-css-prefix}-envelope-square:before { content: $fa-var-envelope-square; } -.#{$fa-css-prefix}-wordpress:before { content: $fa-var-wordpress; } -.#{$fa-css-prefix}-openid:before { content: $fa-var-openid; } +.#{$fa-css-prefix}-try:before { + content: $fa-var-try; +} +.#{$fa-css-prefix}-plus-square-o:before { + content: $fa-var-plus-square-o; +} +.#{$fa-css-prefix}-space-shuttle:before { + content: $fa-var-space-shuttle; +} +.#{$fa-css-prefix}-slack:before { + content: $fa-var-slack; +} +.#{$fa-css-prefix}-envelope-square:before { + content: $fa-var-envelope-square; +} +.#{$fa-css-prefix}-wordpress:before { + content: $fa-var-wordpress; +} +.#{$fa-css-prefix}-openid:before { + content: $fa-var-openid; +} .#{$fa-css-prefix}-institution:before, .#{$fa-css-prefix}-bank:before, -.#{$fa-css-prefix}-university:before { content: $fa-var-university; } +.#{$fa-css-prefix}-university:before { + content: $fa-var-university; +} .#{$fa-css-prefix}-mortar-board:before, -.#{$fa-css-prefix}-graduation-cap:before { content: $fa-var-graduation-cap; } -.#{$fa-css-prefix}-yahoo:before { content: $fa-var-yahoo; } -.#{$fa-css-prefix}-google:before { content: $fa-var-google; } -.#{$fa-css-prefix}-reddit:before { content: $fa-var-reddit; } -.#{$fa-css-prefix}-reddit-square:before { content: $fa-var-reddit-square; } -.#{$fa-css-prefix}-stumbleupon-circle:before { content: $fa-var-stumbleupon-circle; } -.#{$fa-css-prefix}-stumbleupon:before { content: $fa-var-stumbleupon; } -.#{$fa-css-prefix}-delicious:before { content: $fa-var-delicious; } -.#{$fa-css-prefix}-digg:before { content: $fa-var-digg; } -.#{$fa-css-prefix}-pied-piper-pp:before { content: $fa-var-pied-piper-pp; } -.#{$fa-css-prefix}-pied-piper-alt:before { content: $fa-var-pied-piper-alt; } -.#{$fa-css-prefix}-drupal:before { content: $fa-var-drupal; } -.#{$fa-css-prefix}-joomla:before { content: $fa-var-joomla; } -.#{$fa-css-prefix}-language:before { content: $fa-var-language; } -.#{$fa-css-prefix}-fax:before { content: $fa-var-fax; } -.#{$fa-css-prefix}-building:before { content: $fa-var-building; } -.#{$fa-css-prefix}-child:before { content: $fa-var-child; } -.#{$fa-css-prefix}-paw:before { content: $fa-var-paw; } -.#{$fa-css-prefix}-spoon:before { content: $fa-var-spoon; } -.#{$fa-css-prefix}-cube:before { content: $fa-var-cube; } -.#{$fa-css-prefix}-cubes:before { content: $fa-var-cubes; } -.#{$fa-css-prefix}-behance:before { content: $fa-var-behance; } -.#{$fa-css-prefix}-behance-square:before { content: $fa-var-behance-square; } -.#{$fa-css-prefix}-steam:before { content: $fa-var-steam; } -.#{$fa-css-prefix}-steam-square:before { content: $fa-var-steam-square; } -.#{$fa-css-prefix}-recycle:before { content: $fa-var-recycle; } +.#{$fa-css-prefix}-graduation-cap:before { + content: $fa-var-graduation-cap; +} +.#{$fa-css-prefix}-yahoo:before { + content: $fa-var-yahoo; +} +.#{$fa-css-prefix}-google:before { + content: $fa-var-google; +} +.#{$fa-css-prefix}-reddit:before { + content: $fa-var-reddit; +} +.#{$fa-css-prefix}-reddit-square:before { + content: $fa-var-reddit-square; +} +.#{$fa-css-prefix}-stumbleupon-circle:before { + content: $fa-var-stumbleupon-circle; +} +.#{$fa-css-prefix}-stumbleupon:before { + content: $fa-var-stumbleupon; +} +.#{$fa-css-prefix}-delicious:before { + content: $fa-var-delicious; +} +.#{$fa-css-prefix}-digg:before { + content: $fa-var-digg; +} +.#{$fa-css-prefix}-pied-piper-pp:before { + content: $fa-var-pied-piper-pp; +} +.#{$fa-css-prefix}-pied-piper-alt:before { + content: $fa-var-pied-piper-alt; +} +.#{$fa-css-prefix}-drupal:before { + content: $fa-var-drupal; +} +.#{$fa-css-prefix}-joomla:before { + content: $fa-var-joomla; +} +.#{$fa-css-prefix}-language:before { + content: $fa-var-language; +} +.#{$fa-css-prefix}-fax:before { + content: $fa-var-fax; +} +.#{$fa-css-prefix}-building:before { + content: $fa-var-building; +} +.#{$fa-css-prefix}-child:before { + content: $fa-var-child; +} +.#{$fa-css-prefix}-paw:before { + content: $fa-var-paw; +} +.#{$fa-css-prefix}-spoon:before { + content: $fa-var-spoon; +} +.#{$fa-css-prefix}-cube:before { + content: $fa-var-cube; +} +.#{$fa-css-prefix}-cubes:before { + content: $fa-var-cubes; +} +.#{$fa-css-prefix}-behance:before { + content: $fa-var-behance; +} +.#{$fa-css-prefix}-behance-square:before { + content: $fa-var-behance-square; +} +.#{$fa-css-prefix}-steam:before { + content: $fa-var-steam; +} +.#{$fa-css-prefix}-steam-square:before { + content: $fa-var-steam-square; +} +.#{$fa-css-prefix}-recycle:before { + content: $fa-var-recycle; +} .#{$fa-css-prefix}-automobile:before, -.#{$fa-css-prefix}-car:before { content: $fa-var-car; } +.#{$fa-css-prefix}-car:before { + content: $fa-var-car; +} .#{$fa-css-prefix}-cab:before, -.#{$fa-css-prefix}-taxi:before { content: $fa-var-taxi; } -.#{$fa-css-prefix}-tree:before { content: $fa-var-tree; } -.#{$fa-css-prefix}-spotify:before { content: $fa-var-spotify; } -.#{$fa-css-prefix}-deviantart:before { content: $fa-var-deviantart; } -.#{$fa-css-prefix}-soundcloud:before { content: $fa-var-soundcloud; } -.#{$fa-css-prefix}-database:before { content: $fa-var-database; } -.#{$fa-css-prefix}-file-pdf-o:before { content: $fa-var-file-pdf-o; } -.#{$fa-css-prefix}-file-word-o:before { content: $fa-var-file-word-o; } -.#{$fa-css-prefix}-file-excel-o:before { content: $fa-var-file-excel-o; } -.#{$fa-css-prefix}-file-powerpoint-o:before { content: $fa-var-file-powerpoint-o; } +.#{$fa-css-prefix}-taxi:before { + content: $fa-var-taxi; +} +.#{$fa-css-prefix}-tree:before { + content: $fa-var-tree; +} +.#{$fa-css-prefix}-spotify:before { + content: $fa-var-spotify; +} +.#{$fa-css-prefix}-deviantart:before { + content: $fa-var-deviantart; +} +.#{$fa-css-prefix}-soundcloud:before { + content: $fa-var-soundcloud; +} +.#{$fa-css-prefix}-database:before { + content: $fa-var-database; +} +.#{$fa-css-prefix}-file-pdf-o:before { + content: $fa-var-file-pdf-o; +} +.#{$fa-css-prefix}-file-word-o:before { + content: $fa-var-file-word-o; +} +.#{$fa-css-prefix}-file-excel-o:before { + content: $fa-var-file-excel-o; +} +.#{$fa-css-prefix}-file-powerpoint-o:before { + content: $fa-var-file-powerpoint-o; +} .#{$fa-css-prefix}-file-photo-o:before, .#{$fa-css-prefix}-file-picture-o:before, -.#{$fa-css-prefix}-file-image-o:before { content: $fa-var-file-image-o; } +.#{$fa-css-prefix}-file-image-o:before { + content: $fa-var-file-image-o; +} .#{$fa-css-prefix}-file-zip-o:before, -.#{$fa-css-prefix}-file-archive-o:before { content: $fa-var-file-archive-o; } +.#{$fa-css-prefix}-file-archive-o:before { + content: $fa-var-file-archive-o; +} .#{$fa-css-prefix}-file-sound-o:before, -.#{$fa-css-prefix}-file-audio-o:before { content: $fa-var-file-audio-o; } +.#{$fa-css-prefix}-file-audio-o:before { + content: $fa-var-file-audio-o; +} .#{$fa-css-prefix}-file-movie-o:before, -.#{$fa-css-prefix}-file-video-o:before { content: $fa-var-file-video-o; } -.#{$fa-css-prefix}-file-code-o:before { content: $fa-var-file-code-o; } -.#{$fa-css-prefix}-vine:before { content: $fa-var-vine; } -.#{$fa-css-prefix}-codepen:before { content: $fa-var-codepen; } -.#{$fa-css-prefix}-jsfiddle:before { content: $fa-var-jsfiddle; } +.#{$fa-css-prefix}-file-video-o:before { + content: $fa-var-file-video-o; +} +.#{$fa-css-prefix}-file-code-o:before { + content: $fa-var-file-code-o; +} +.#{$fa-css-prefix}-vine:before { + content: $fa-var-vine; +} +.#{$fa-css-prefix}-codepen:before { + content: $fa-var-codepen; +} +.#{$fa-css-prefix}-jsfiddle:before { + content: $fa-var-jsfiddle; +} .#{$fa-css-prefix}-life-bouy:before, .#{$fa-css-prefix}-life-buoy:before, .#{$fa-css-prefix}-life-saver:before, .#{$fa-css-prefix}-support:before, -.#{$fa-css-prefix}-life-ring:before { content: $fa-var-life-ring; } -.#{$fa-css-prefix}-circle-o-notch:before { content: $fa-var-circle-o-notch; } +.#{$fa-css-prefix}-life-ring:before { + content: $fa-var-life-ring; +} +.#{$fa-css-prefix}-circle-o-notch:before { + content: $fa-var-circle-o-notch; +} .#{$fa-css-prefix}-ra:before, .#{$fa-css-prefix}-resistance:before, -.#{$fa-css-prefix}-rebel:before { content: $fa-var-rebel; } +.#{$fa-css-prefix}-rebel:before { + content: $fa-var-rebel; +} .#{$fa-css-prefix}-ge:before, -.#{$fa-css-prefix}-empire:before { content: $fa-var-empire; } -.#{$fa-css-prefix}-git-square:before { content: $fa-var-git-square; } -.#{$fa-css-prefix}-git:before { content: $fa-var-git; } +.#{$fa-css-prefix}-empire:before { + content: $fa-var-empire; +} +.#{$fa-css-prefix}-git-square:before { + content: $fa-var-git-square; +} +.#{$fa-css-prefix}-git:before { + content: $fa-var-git; +} .#{$fa-css-prefix}-y-combinator-square:before, .#{$fa-css-prefix}-yc-square:before, -.#{$fa-css-prefix}-hacker-news:before { content: $fa-var-hacker-news; } -.#{$fa-css-prefix}-tencent-weibo:before { content: $fa-var-tencent-weibo; } -.#{$fa-css-prefix}-qq:before { content: $fa-var-qq; } +.#{$fa-css-prefix}-hacker-news:before { + content: $fa-var-hacker-news; +} +.#{$fa-css-prefix}-tencent-weibo:before { + content: $fa-var-tencent-weibo; +} +.#{$fa-css-prefix}-qq:before { + content: $fa-var-qq; +} .#{$fa-css-prefix}-wechat:before, -.#{$fa-css-prefix}-weixin:before { content: $fa-var-weixin; } +.#{$fa-css-prefix}-weixin:before { + content: $fa-var-weixin; +} .#{$fa-css-prefix}-send:before, -.#{$fa-css-prefix}-paper-plane:before { content: $fa-var-paper-plane; } +.#{$fa-css-prefix}-paper-plane:before { + content: $fa-var-paper-plane; +} .#{$fa-css-prefix}-send-o:before, -.#{$fa-css-prefix}-paper-plane-o:before { content: $fa-var-paper-plane-o; } -.#{$fa-css-prefix}-history:before { content: $fa-var-history; } -.#{$fa-css-prefix}-circle-thin:before { content: $fa-var-circle-thin; } -.#{$fa-css-prefix}-header:before { content: $fa-var-header; } -.#{$fa-css-prefix}-paragraph:before { content: $fa-var-paragraph; } -.#{$fa-css-prefix}-sliders:before { content: $fa-var-sliders; } -.#{$fa-css-prefix}-share-alt:before { content: $fa-var-share-alt; } -.#{$fa-css-prefix}-share-alt-square:before { content: $fa-var-share-alt-square; } -.#{$fa-css-prefix}-bomb:before { content: $fa-var-bomb; } +.#{$fa-css-prefix}-paper-plane-o:before { + content: $fa-var-paper-plane-o; +} +.#{$fa-css-prefix}-history:before { + content: $fa-var-history; +} +.#{$fa-css-prefix}-circle-thin:before { + content: $fa-var-circle-thin; +} +.#{$fa-css-prefix}-header:before { + content: $fa-var-header; +} +.#{$fa-css-prefix}-paragraph:before { + content: $fa-var-paragraph; +} +.#{$fa-css-prefix}-sliders:before { + content: $fa-var-sliders; +} +.#{$fa-css-prefix}-share-alt:before { + content: $fa-var-share-alt; +} +.#{$fa-css-prefix}-share-alt-square:before { + content: $fa-var-share-alt-square; +} +.#{$fa-css-prefix}-bomb:before { + content: $fa-var-bomb; +} .#{$fa-css-prefix}-soccer-ball-o:before, -.#{$fa-css-prefix}-futbol-o:before { content: $fa-var-futbol-o; } -.#{$fa-css-prefix}-tty:before { content: $fa-var-tty; } -.#{$fa-css-prefix}-binoculars:before { content: $fa-var-binoculars; } -.#{$fa-css-prefix}-plug:before { content: $fa-var-plug; } -.#{$fa-css-prefix}-slideshare:before { content: $fa-var-slideshare; } -.#{$fa-css-prefix}-twitch:before { content: $fa-var-twitch; } -.#{$fa-css-prefix}-yelp:before { content: $fa-var-yelp; } -.#{$fa-css-prefix}-newspaper-o:before { content: $fa-var-newspaper-o; } -.#{$fa-css-prefix}-wifi:before { content: $fa-var-wifi; } -.#{$fa-css-prefix}-calculator:before { content: $fa-var-calculator; } -.#{$fa-css-prefix}-paypal:before { content: $fa-var-paypal; } -.#{$fa-css-prefix}-google-wallet:before { content: $fa-var-google-wallet; } -.#{$fa-css-prefix}-cc-visa:before { content: $fa-var-cc-visa; } -.#{$fa-css-prefix}-cc-mastercard:before { content: $fa-var-cc-mastercard; } -.#{$fa-css-prefix}-cc-discover:before { content: $fa-var-cc-discover; } -.#{$fa-css-prefix}-cc-amex:before { content: $fa-var-cc-amex; } -.#{$fa-css-prefix}-cc-paypal:before { content: $fa-var-cc-paypal; } -.#{$fa-css-prefix}-cc-stripe:before { content: $fa-var-cc-stripe; } -.#{$fa-css-prefix}-bell-slash:before { content: $fa-var-bell-slash; } -.#{$fa-css-prefix}-bell-slash-o:before { content: $fa-var-bell-slash-o; } -.#{$fa-css-prefix}-trash:before { content: $fa-var-trash; } -.#{$fa-css-prefix}-copyright:before { content: $fa-var-copyright; } -.#{$fa-css-prefix}-at:before { content: $fa-var-at; } -.#{$fa-css-prefix}-eyedropper:before { content: $fa-var-eyedropper; } -.#{$fa-css-prefix}-paint-brush:before { content: $fa-var-paint-brush; } -.#{$fa-css-prefix}-birthday-cake:before { content: $fa-var-birthday-cake; } -.#{$fa-css-prefix}-area-chart:before { content: $fa-var-area-chart; } -.#{$fa-css-prefix}-pie-chart:before { content: $fa-var-pie-chart; } -.#{$fa-css-prefix}-line-chart:before { content: $fa-var-line-chart; } -.#{$fa-css-prefix}-lastfm:before { content: $fa-var-lastfm; } -.#{$fa-css-prefix}-lastfm-square:before { content: $fa-var-lastfm-square; } -.#{$fa-css-prefix}-toggle-off:before { content: $fa-var-toggle-off; } -.#{$fa-css-prefix}-toggle-on:before { content: $fa-var-toggle-on; } -.#{$fa-css-prefix}-bicycle:before { content: $fa-var-bicycle; } -.#{$fa-css-prefix}-bus:before { content: $fa-var-bus; } -.#{$fa-css-prefix}-ioxhost:before { content: $fa-var-ioxhost; } -.#{$fa-css-prefix}-angellist:before { content: $fa-var-angellist; } -.#{$fa-css-prefix}-cc:before { content: $fa-var-cc; } +.#{$fa-css-prefix}-futbol-o:before { + content: $fa-var-futbol-o; +} +.#{$fa-css-prefix}-tty:before { + content: $fa-var-tty; +} +.#{$fa-css-prefix}-binoculars:before { + content: $fa-var-binoculars; +} +.#{$fa-css-prefix}-plug:before { + content: $fa-var-plug; +} +.#{$fa-css-prefix}-slideshare:before { + content: $fa-var-slideshare; +} +.#{$fa-css-prefix}-twitch:before { + content: $fa-var-twitch; +} +.#{$fa-css-prefix}-yelp:before { + content: $fa-var-yelp; +} +.#{$fa-css-prefix}-newspaper-o:before { + content: $fa-var-newspaper-o; +} +.#{$fa-css-prefix}-wifi:before { + content: $fa-var-wifi; +} +.#{$fa-css-prefix}-calculator:before { + content: $fa-var-calculator; +} +.#{$fa-css-prefix}-paypal:before { + content: $fa-var-paypal; +} +.#{$fa-css-prefix}-google-wallet:before { + content: $fa-var-google-wallet; +} +.#{$fa-css-prefix}-cc-visa:before { + content: $fa-var-cc-visa; +} +.#{$fa-css-prefix}-cc-mastercard:before { + content: $fa-var-cc-mastercard; +} +.#{$fa-css-prefix}-cc-discover:before { + content: $fa-var-cc-discover; +} +.#{$fa-css-prefix}-cc-amex:before { + content: $fa-var-cc-amex; +} +.#{$fa-css-prefix}-cc-paypal:before { + content: $fa-var-cc-paypal; +} +.#{$fa-css-prefix}-cc-stripe:before { + content: $fa-var-cc-stripe; +} +.#{$fa-css-prefix}-bell-slash:before { + content: $fa-var-bell-slash; +} +.#{$fa-css-prefix}-bell-slash-o:before { + content: $fa-var-bell-slash-o; +} +.#{$fa-css-prefix}-trash:before { + content: $fa-var-trash; +} +.#{$fa-css-prefix}-copyright:before { + content: $fa-var-copyright; +} +.#{$fa-css-prefix}-at:before { + content: $fa-var-at; +} +.#{$fa-css-prefix}-eyedropper:before { + content: $fa-var-eyedropper; +} +.#{$fa-css-prefix}-paint-brush:before { + content: $fa-var-paint-brush; +} +.#{$fa-css-prefix}-birthday-cake:before { + content: $fa-var-birthday-cake; +} +.#{$fa-css-prefix}-area-chart:before { + content: $fa-var-area-chart; +} +.#{$fa-css-prefix}-pie-chart:before { + content: $fa-var-pie-chart; +} +.#{$fa-css-prefix}-line-chart:before { + content: $fa-var-line-chart; +} +.#{$fa-css-prefix}-lastfm:before { + content: $fa-var-lastfm; +} +.#{$fa-css-prefix}-lastfm-square:before { + content: $fa-var-lastfm-square; +} +.#{$fa-css-prefix}-toggle-off:before { + content: $fa-var-toggle-off; +} +.#{$fa-css-prefix}-toggle-on:before { + content: $fa-var-toggle-on; +} +.#{$fa-css-prefix}-bicycle:before { + content: $fa-var-bicycle; +} +.#{$fa-css-prefix}-bus:before { + content: $fa-var-bus; +} +.#{$fa-css-prefix}-ioxhost:before { + content: $fa-var-ioxhost; +} +.#{$fa-css-prefix}-angellist:before { + content: $fa-var-angellist; +} +.#{$fa-css-prefix}-cc:before { + content: $fa-var-cc; +} .#{$fa-css-prefix}-shekel:before, .#{$fa-css-prefix}-sheqel:before, -.#{$fa-css-prefix}-ils:before { content: $fa-var-ils; } -.#{$fa-css-prefix}-meanpath:before { content: $fa-var-meanpath; } -.#{$fa-css-prefix}-buysellads:before { content: $fa-var-buysellads; } -.#{$fa-css-prefix}-connectdevelop:before { content: $fa-var-connectdevelop; } -.#{$fa-css-prefix}-dashcube:before { content: $fa-var-dashcube; } -.#{$fa-css-prefix}-forumbee:before { content: $fa-var-forumbee; } -.#{$fa-css-prefix}-leanpub:before { content: $fa-var-leanpub; } -.#{$fa-css-prefix}-sellsy:before { content: $fa-var-sellsy; } -.#{$fa-css-prefix}-shirtsinbulk:before { content: $fa-var-shirtsinbulk; } -.#{$fa-css-prefix}-simplybuilt:before { content: $fa-var-simplybuilt; } -.#{$fa-css-prefix}-skyatlas:before { content: $fa-var-skyatlas; } -.#{$fa-css-prefix}-cart-plus:before { content: $fa-var-cart-plus; } -.#{$fa-css-prefix}-cart-arrow-down:before { content: $fa-var-cart-arrow-down; } -.#{$fa-css-prefix}-diamond:before { content: $fa-var-diamond; } -.#{$fa-css-prefix}-ship:before { content: $fa-var-ship; } -.#{$fa-css-prefix}-user-secret:before { content: $fa-var-user-secret; } -.#{$fa-css-prefix}-motorcycle:before { content: $fa-var-motorcycle; } -.#{$fa-css-prefix}-street-view:before { content: $fa-var-street-view; } -.#{$fa-css-prefix}-heartbeat:before { content: $fa-var-heartbeat; } -.#{$fa-css-prefix}-venus:before { content: $fa-var-venus; } -.#{$fa-css-prefix}-mars:before { content: $fa-var-mars; } -.#{$fa-css-prefix}-mercury:before { content: $fa-var-mercury; } +.#{$fa-css-prefix}-ils:before { + content: $fa-var-ils; +} +.#{$fa-css-prefix}-meanpath:before { + content: $fa-var-meanpath; +} +.#{$fa-css-prefix}-buysellads:before { + content: $fa-var-buysellads; +} +.#{$fa-css-prefix}-connectdevelop:before { + content: $fa-var-connectdevelop; +} +.#{$fa-css-prefix}-dashcube:before { + content: $fa-var-dashcube; +} +.#{$fa-css-prefix}-forumbee:before { + content: $fa-var-forumbee; +} +.#{$fa-css-prefix}-leanpub:before { + content: $fa-var-leanpub; +} +.#{$fa-css-prefix}-sellsy:before { + content: $fa-var-sellsy; +} +.#{$fa-css-prefix}-shirtsinbulk:before { + content: $fa-var-shirtsinbulk; +} +.#{$fa-css-prefix}-simplybuilt:before { + content: $fa-var-simplybuilt; +} +.#{$fa-css-prefix}-skyatlas:before { + content: $fa-var-skyatlas; +} +.#{$fa-css-prefix}-cart-plus:before { + content: $fa-var-cart-plus; +} +.#{$fa-css-prefix}-cart-arrow-down:before { + content: $fa-var-cart-arrow-down; +} +.#{$fa-css-prefix}-diamond:before { + content: $fa-var-diamond; +} +.#{$fa-css-prefix}-ship:before { + content: $fa-var-ship; +} +.#{$fa-css-prefix}-user-secret:before { + content: $fa-var-user-secret; +} +.#{$fa-css-prefix}-motorcycle:before { + content: $fa-var-motorcycle; +} +.#{$fa-css-prefix}-street-view:before { + content: $fa-var-street-view; +} +.#{$fa-css-prefix}-heartbeat:before { + content: $fa-var-heartbeat; +} +.#{$fa-css-prefix}-venus:before { + content: $fa-var-venus; +} +.#{$fa-css-prefix}-mars:before { + content: $fa-var-mars; +} +.#{$fa-css-prefix}-mercury:before { + content: $fa-var-mercury; +} .#{$fa-css-prefix}-intersex:before, -.#{$fa-css-prefix}-transgender:before { content: $fa-var-transgender; } -.#{$fa-css-prefix}-transgender-alt:before { content: $fa-var-transgender-alt; } -.#{$fa-css-prefix}-venus-double:before { content: $fa-var-venus-double; } -.#{$fa-css-prefix}-mars-double:before { content: $fa-var-mars-double; } -.#{$fa-css-prefix}-venus-mars:before { content: $fa-var-venus-mars; } -.#{$fa-css-prefix}-mars-stroke:before { content: $fa-var-mars-stroke; } -.#{$fa-css-prefix}-mars-stroke-v:before { content: $fa-var-mars-stroke-v; } -.#{$fa-css-prefix}-mars-stroke-h:before { content: $fa-var-mars-stroke-h; } -.#{$fa-css-prefix}-neuter:before { content: $fa-var-neuter; } -.#{$fa-css-prefix}-genderless:before { content: $fa-var-genderless; } -.#{$fa-css-prefix}-facebook-official:before { content: $fa-var-facebook-official; } -.#{$fa-css-prefix}-pinterest-p:before { content: $fa-var-pinterest-p; } -.#{$fa-css-prefix}-whatsapp:before { content: $fa-var-whatsapp; } -.#{$fa-css-prefix}-server:before { content: $fa-var-server; } -.#{$fa-css-prefix}-user-plus:before { content: $fa-var-user-plus; } -.#{$fa-css-prefix}-user-times:before { content: $fa-var-user-times; } +.#{$fa-css-prefix}-transgender:before { + content: $fa-var-transgender; +} +.#{$fa-css-prefix}-transgender-alt:before { + content: $fa-var-transgender-alt; +} +.#{$fa-css-prefix}-venus-double:before { + content: $fa-var-venus-double; +} +.#{$fa-css-prefix}-mars-double:before { + content: $fa-var-mars-double; +} +.#{$fa-css-prefix}-venus-mars:before { + content: $fa-var-venus-mars; +} +.#{$fa-css-prefix}-mars-stroke:before { + content: $fa-var-mars-stroke; +} +.#{$fa-css-prefix}-mars-stroke-v:before { + content: $fa-var-mars-stroke-v; +} +.#{$fa-css-prefix}-mars-stroke-h:before { + content: $fa-var-mars-stroke-h; +} +.#{$fa-css-prefix}-neuter:before { + content: $fa-var-neuter; +} +.#{$fa-css-prefix}-genderless:before { + content: $fa-var-genderless; +} +.#{$fa-css-prefix}-facebook-official:before { + content: $fa-var-facebook-official; +} +.#{$fa-css-prefix}-pinterest-p:before { + content: $fa-var-pinterest-p; +} +.#{$fa-css-prefix}-whatsapp:before { + content: $fa-var-whatsapp; +} +.#{$fa-css-prefix}-server:before { + content: $fa-var-server; +} +.#{$fa-css-prefix}-user-plus:before { + content: $fa-var-user-plus; +} +.#{$fa-css-prefix}-user-times:before { + content: $fa-var-user-times; +} .#{$fa-css-prefix}-hotel:before, -.#{$fa-css-prefix}-bed:before { content: $fa-var-bed; } -.#{$fa-css-prefix}-viacoin:before { content: $fa-var-viacoin; } -.#{$fa-css-prefix}-train:before { content: $fa-var-train; } -.#{$fa-css-prefix}-subway:before { content: $fa-var-subway; } -.#{$fa-css-prefix}-medium:before { content: $fa-var-medium; } +.#{$fa-css-prefix}-bed:before { + content: $fa-var-bed; +} +.#{$fa-css-prefix}-viacoin:before { + content: $fa-var-viacoin; +} +.#{$fa-css-prefix}-train:before { + content: $fa-var-train; +} +.#{$fa-css-prefix}-subway:before { + content: $fa-var-subway; +} +.#{$fa-css-prefix}-medium:before { + content: $fa-var-medium; +} .#{$fa-css-prefix}-yc:before, -.#{$fa-css-prefix}-y-combinator:before { content: $fa-var-y-combinator; } -.#{$fa-css-prefix}-optin-monster:before { content: $fa-var-optin-monster; } -.#{$fa-css-prefix}-opencart:before { content: $fa-var-opencart; } -.#{$fa-css-prefix}-expeditedssl:before { content: $fa-var-expeditedssl; } +.#{$fa-css-prefix}-y-combinator:before { + content: $fa-var-y-combinator; +} +.#{$fa-css-prefix}-optin-monster:before { + content: $fa-var-optin-monster; +} +.#{$fa-css-prefix}-opencart:before { + content: $fa-var-opencart; +} +.#{$fa-css-prefix}-expeditedssl:before { + content: $fa-var-expeditedssl; +} .#{$fa-css-prefix}-battery-4:before, .#{$fa-css-prefix}-battery:before, -.#{$fa-css-prefix}-battery-full:before { content: $fa-var-battery-full; } +.#{$fa-css-prefix}-battery-full:before { + content: $fa-var-battery-full; +} .#{$fa-css-prefix}-battery-3:before, -.#{$fa-css-prefix}-battery-three-quarters:before { content: $fa-var-battery-three-quarters; } +.#{$fa-css-prefix}-battery-three-quarters:before { + content: $fa-var-battery-three-quarters; +} .#{$fa-css-prefix}-battery-2:before, -.#{$fa-css-prefix}-battery-half:before { content: $fa-var-battery-half; } +.#{$fa-css-prefix}-battery-half:before { + content: $fa-var-battery-half; +} .#{$fa-css-prefix}-battery-1:before, -.#{$fa-css-prefix}-battery-quarter:before { content: $fa-var-battery-quarter; } +.#{$fa-css-prefix}-battery-quarter:before { + content: $fa-var-battery-quarter; +} .#{$fa-css-prefix}-battery-0:before, -.#{$fa-css-prefix}-battery-empty:before { content: $fa-var-battery-empty; } -.#{$fa-css-prefix}-mouse-pointer:before { content: $fa-var-mouse-pointer; } -.#{$fa-css-prefix}-i-cursor:before { content: $fa-var-i-cursor; } -.#{$fa-css-prefix}-object-group:before { content: $fa-var-object-group; } -.#{$fa-css-prefix}-object-ungroup:before { content: $fa-var-object-ungroup; } -.#{$fa-css-prefix}-sticky-note:before { content: $fa-var-sticky-note; } -.#{$fa-css-prefix}-sticky-note-o:before { content: $fa-var-sticky-note-o; } -.#{$fa-css-prefix}-cc-jcb:before { content: $fa-var-cc-jcb; } -.#{$fa-css-prefix}-cc-diners-club:before { content: $fa-var-cc-diners-club; } -.#{$fa-css-prefix}-clone:before { content: $fa-var-clone; } -.#{$fa-css-prefix}-balance-scale:before { content: $fa-var-balance-scale; } -.#{$fa-css-prefix}-hourglass-o:before { content: $fa-var-hourglass-o; } +.#{$fa-css-prefix}-battery-empty:before { + content: $fa-var-battery-empty; +} +.#{$fa-css-prefix}-mouse-pointer:before { + content: $fa-var-mouse-pointer; +} +.#{$fa-css-prefix}-i-cursor:before { + content: $fa-var-i-cursor; +} +.#{$fa-css-prefix}-object-group:before { + content: $fa-var-object-group; +} +.#{$fa-css-prefix}-object-ungroup:before { + content: $fa-var-object-ungroup; +} +.#{$fa-css-prefix}-sticky-note:before { + content: $fa-var-sticky-note; +} +.#{$fa-css-prefix}-sticky-note-o:before { + content: $fa-var-sticky-note-o; +} +.#{$fa-css-prefix}-cc-jcb:before { + content: $fa-var-cc-jcb; +} +.#{$fa-css-prefix}-cc-diners-club:before { + content: $fa-var-cc-diners-club; +} +.#{$fa-css-prefix}-clone:before { + content: $fa-var-clone; +} +.#{$fa-css-prefix}-balance-scale:before { + content: $fa-var-balance-scale; +} +.#{$fa-css-prefix}-hourglass-o:before { + content: $fa-var-hourglass-o; +} .#{$fa-css-prefix}-hourglass-1:before, -.#{$fa-css-prefix}-hourglass-start:before { content: $fa-var-hourglass-start; } +.#{$fa-css-prefix}-hourglass-start:before { + content: $fa-var-hourglass-start; +} .#{$fa-css-prefix}-hourglass-2:before, -.#{$fa-css-prefix}-hourglass-half:before { content: $fa-var-hourglass-half; } +.#{$fa-css-prefix}-hourglass-half:before { + content: $fa-var-hourglass-half; +} .#{$fa-css-prefix}-hourglass-3:before, -.#{$fa-css-prefix}-hourglass-end:before { content: $fa-var-hourglass-end; } -.#{$fa-css-prefix}-hourglass:before { content: $fa-var-hourglass; } +.#{$fa-css-prefix}-hourglass-end:before { + content: $fa-var-hourglass-end; +} +.#{$fa-css-prefix}-hourglass:before { + content: $fa-var-hourglass; +} .#{$fa-css-prefix}-hand-grab-o:before, -.#{$fa-css-prefix}-hand-rock-o:before { content: $fa-var-hand-rock-o; } +.#{$fa-css-prefix}-hand-rock-o:before { + content: $fa-var-hand-rock-o; +} .#{$fa-css-prefix}-hand-stop-o:before, -.#{$fa-css-prefix}-hand-paper-o:before { content: $fa-var-hand-paper-o; } -.#{$fa-css-prefix}-hand-scissors-o:before { content: $fa-var-hand-scissors-o; } -.#{$fa-css-prefix}-hand-lizard-o:before { content: $fa-var-hand-lizard-o; } -.#{$fa-css-prefix}-hand-spock-o:before { content: $fa-var-hand-spock-o; } -.#{$fa-css-prefix}-hand-pointer-o:before { content: $fa-var-hand-pointer-o; } -.#{$fa-css-prefix}-hand-peace-o:before { content: $fa-var-hand-peace-o; } -.#{$fa-css-prefix}-trademark:before { content: $fa-var-trademark; } -.#{$fa-css-prefix}-registered:before { content: $fa-var-registered; } -.#{$fa-css-prefix}-creative-commons:before { content: $fa-var-creative-commons; } -.#{$fa-css-prefix}-gg:before { content: $fa-var-gg; } -.#{$fa-css-prefix}-gg-circle:before { content: $fa-var-gg-circle; } -.#{$fa-css-prefix}-tripadvisor:before { content: $fa-var-tripadvisor; } -.#{$fa-css-prefix}-odnoklassniki:before { content: $fa-var-odnoklassniki; } -.#{$fa-css-prefix}-odnoklassniki-square:before { content: $fa-var-odnoklassniki-square; } -.#{$fa-css-prefix}-get-pocket:before { content: $fa-var-get-pocket; } -.#{$fa-css-prefix}-wikipedia-w:before { content: $fa-var-wikipedia-w; } -.#{$fa-css-prefix}-safari:before { content: $fa-var-safari; } -.#{$fa-css-prefix}-chrome:before { content: $fa-var-chrome; } -.#{$fa-css-prefix}-firefox:before { content: $fa-var-firefox; } -.#{$fa-css-prefix}-opera:before { content: $fa-var-opera; } -.#{$fa-css-prefix}-internet-explorer:before { content: $fa-var-internet-explorer; } +.#{$fa-css-prefix}-hand-paper-o:before { + content: $fa-var-hand-paper-o; +} +.#{$fa-css-prefix}-hand-scissors-o:before { + content: $fa-var-hand-scissors-o; +} +.#{$fa-css-prefix}-hand-lizard-o:before { + content: $fa-var-hand-lizard-o; +} +.#{$fa-css-prefix}-hand-spock-o:before { + content: $fa-var-hand-spock-o; +} +.#{$fa-css-prefix}-hand-pointer-o:before { + content: $fa-var-hand-pointer-o; +} +.#{$fa-css-prefix}-hand-peace-o:before { + content: $fa-var-hand-peace-o; +} +.#{$fa-css-prefix}-trademark:before { + content: $fa-var-trademark; +} +.#{$fa-css-prefix}-registered:before { + content: $fa-var-registered; +} +.#{$fa-css-prefix}-creative-commons:before { + content: $fa-var-creative-commons; +} +.#{$fa-css-prefix}-gg:before { + content: $fa-var-gg; +} +.#{$fa-css-prefix}-gg-circle:before { + content: $fa-var-gg-circle; +} +.#{$fa-css-prefix}-tripadvisor:before { + content: $fa-var-tripadvisor; +} +.#{$fa-css-prefix}-odnoklassniki:before { + content: $fa-var-odnoklassniki; +} +.#{$fa-css-prefix}-odnoklassniki-square:before { + content: $fa-var-odnoklassniki-square; +} +.#{$fa-css-prefix}-get-pocket:before { + content: $fa-var-get-pocket; +} +.#{$fa-css-prefix}-wikipedia-w:before { + content: $fa-var-wikipedia-w; +} +.#{$fa-css-prefix}-safari:before { + content: $fa-var-safari; +} +.#{$fa-css-prefix}-chrome:before { + content: $fa-var-chrome; +} +.#{$fa-css-prefix}-firefox:before { + content: $fa-var-firefox; +} +.#{$fa-css-prefix}-opera:before { + content: $fa-var-opera; +} +.#{$fa-css-prefix}-internet-explorer:before { + content: $fa-var-internet-explorer; +} .#{$fa-css-prefix}-tv:before, -.#{$fa-css-prefix}-television:before { content: $fa-var-television; } -.#{$fa-css-prefix}-contao:before { content: $fa-var-contao; } -.#{$fa-css-prefix}-500px:before { content: $fa-var-500px; } -.#{$fa-css-prefix}-amazon:before { content: $fa-var-amazon; } -.#{$fa-css-prefix}-calendar-plus-o:before { content: $fa-var-calendar-plus-o; } -.#{$fa-css-prefix}-calendar-minus-o:before { content: $fa-var-calendar-minus-o; } -.#{$fa-css-prefix}-calendar-times-o:before { content: $fa-var-calendar-times-o; } -.#{$fa-css-prefix}-calendar-check-o:before { content: $fa-var-calendar-check-o; } -.#{$fa-css-prefix}-industry:before { content: $fa-var-industry; } -.#{$fa-css-prefix}-map-pin:before { content: $fa-var-map-pin; } -.#{$fa-css-prefix}-map-signs:before { content: $fa-var-map-signs; } -.#{$fa-css-prefix}-map-o:before { content: $fa-var-map-o; } -.#{$fa-css-prefix}-map:before { content: $fa-var-map; } -.#{$fa-css-prefix}-commenting:before { content: $fa-var-commenting; } -.#{$fa-css-prefix}-commenting-o:before { content: $fa-var-commenting-o; } -.#{$fa-css-prefix}-houzz:before { content: $fa-var-houzz; } -.#{$fa-css-prefix}-vimeo:before { content: $fa-var-vimeo; } -.#{$fa-css-prefix}-black-tie:before { content: $fa-var-black-tie; } -.#{$fa-css-prefix}-fonticons:before { content: $fa-var-fonticons; } -.#{$fa-css-prefix}-reddit-alien:before { content: $fa-var-reddit-alien; } -.#{$fa-css-prefix}-edge:before { content: $fa-var-edge; } -.#{$fa-css-prefix}-credit-card-alt:before { content: $fa-var-credit-card-alt; } -.#{$fa-css-prefix}-codiepie:before { content: $fa-var-codiepie; } -.#{$fa-css-prefix}-modx:before { content: $fa-var-modx; } -.#{$fa-css-prefix}-fort-awesome:before { content: $fa-var-fort-awesome; } -.#{$fa-css-prefix}-usb:before { content: $fa-var-usb; } -.#{$fa-css-prefix}-product-hunt:before { content: $fa-var-product-hunt; } -.#{$fa-css-prefix}-mixcloud:before { content: $fa-var-mixcloud; } -.#{$fa-css-prefix}-scribd:before { content: $fa-var-scribd; } -.#{$fa-css-prefix}-pause-circle:before { content: $fa-var-pause-circle; } -.#{$fa-css-prefix}-pause-circle-o:before { content: $fa-var-pause-circle-o; } -.#{$fa-css-prefix}-stop-circle:before { content: $fa-var-stop-circle; } -.#{$fa-css-prefix}-stop-circle-o:before { content: $fa-var-stop-circle-o; } -.#{$fa-css-prefix}-shopping-bag:before { content: $fa-var-shopping-bag; } -.#{$fa-css-prefix}-shopping-basket:before { content: $fa-var-shopping-basket; } -.#{$fa-css-prefix}-hashtag:before { content: $fa-var-hashtag; } -.#{$fa-css-prefix}-bluetooth:before { content: $fa-var-bluetooth; } -.#{$fa-css-prefix}-bluetooth-b:before { content: $fa-var-bluetooth-b; } -.#{$fa-css-prefix}-percent:before { content: $fa-var-percent; } -.#{$fa-css-prefix}-gitlab:before { content: $fa-var-gitlab; } -.#{$fa-css-prefix}-wpbeginner:before { content: $fa-var-wpbeginner; } -.#{$fa-css-prefix}-wpforms:before { content: $fa-var-wpforms; } -.#{$fa-css-prefix}-envira:before { content: $fa-var-envira; } -.#{$fa-css-prefix}-universal-access:before { content: $fa-var-universal-access; } -.#{$fa-css-prefix}-wheelchair-alt:before { content: $fa-var-wheelchair-alt; } -.#{$fa-css-prefix}-question-circle-o:before { content: $fa-var-question-circle-o; } -.#{$fa-css-prefix}-blind:before { content: $fa-var-blind; } -.#{$fa-css-prefix}-audio-description:before { content: $fa-var-audio-description; } -.#{$fa-css-prefix}-volume-control-phone:before { content: $fa-var-volume-control-phone; } -.#{$fa-css-prefix}-braille:before { content: $fa-var-braille; } -.#{$fa-css-prefix}-assistive-listening-systems:before { content: $fa-var-assistive-listening-systems; } +.#{$fa-css-prefix}-television:before { + content: $fa-var-television; +} +.#{$fa-css-prefix}-contao:before { + content: $fa-var-contao; +} +.#{$fa-css-prefix}-500px:before { + content: $fa-var-500px; +} +.#{$fa-css-prefix}-amazon:before { + content: $fa-var-amazon; +} +.#{$fa-css-prefix}-calendar-plus-o:before { + content: $fa-var-calendar-plus-o; +} +.#{$fa-css-prefix}-calendar-minus-o:before { + content: $fa-var-calendar-minus-o; +} +.#{$fa-css-prefix}-calendar-times-o:before { + content: $fa-var-calendar-times-o; +} +.#{$fa-css-prefix}-calendar-check-o:before { + content: $fa-var-calendar-check-o; +} +.#{$fa-css-prefix}-industry:before { + content: $fa-var-industry; +} +.#{$fa-css-prefix}-map-pin:before { + content: $fa-var-map-pin; +} +.#{$fa-css-prefix}-map-signs:before { + content: $fa-var-map-signs; +} +.#{$fa-css-prefix}-map-o:before { + content: $fa-var-map-o; +} +.#{$fa-css-prefix}-map:before { + content: $fa-var-map; +} +.#{$fa-css-prefix}-commenting:before { + content: $fa-var-commenting; +} +.#{$fa-css-prefix}-commenting-o:before { + content: $fa-var-commenting-o; +} +.#{$fa-css-prefix}-houzz:before { + content: $fa-var-houzz; +} +.#{$fa-css-prefix}-vimeo:before { + content: $fa-var-vimeo; +} +.#{$fa-css-prefix}-black-tie:before { + content: $fa-var-black-tie; +} +.#{$fa-css-prefix}-fonticons:before { + content: $fa-var-fonticons; +} +.#{$fa-css-prefix}-reddit-alien:before { + content: $fa-var-reddit-alien; +} +.#{$fa-css-prefix}-edge:before { + content: $fa-var-edge; +} +.#{$fa-css-prefix}-credit-card-alt:before { + content: $fa-var-credit-card-alt; +} +.#{$fa-css-prefix}-codiepie:before { + content: $fa-var-codiepie; +} +.#{$fa-css-prefix}-modx:before { + content: $fa-var-modx; +} +.#{$fa-css-prefix}-fort-awesome:before { + content: $fa-var-fort-awesome; +} +.#{$fa-css-prefix}-usb:before { + content: $fa-var-usb; +} +.#{$fa-css-prefix}-product-hunt:before { + content: $fa-var-product-hunt; +} +.#{$fa-css-prefix}-mixcloud:before { + content: $fa-var-mixcloud; +} +.#{$fa-css-prefix}-scribd:before { + content: $fa-var-scribd; +} +.#{$fa-css-prefix}-pause-circle:before { + content: $fa-var-pause-circle; +} +.#{$fa-css-prefix}-pause-circle-o:before { + content: $fa-var-pause-circle-o; +} +.#{$fa-css-prefix}-stop-circle:before { + content: $fa-var-stop-circle; +} +.#{$fa-css-prefix}-stop-circle-o:before { + content: $fa-var-stop-circle-o; +} +.#{$fa-css-prefix}-shopping-bag:before { + content: $fa-var-shopping-bag; +} +.#{$fa-css-prefix}-shopping-basket:before { + content: $fa-var-shopping-basket; +} +.#{$fa-css-prefix}-hashtag:before { + content: $fa-var-hashtag; +} +.#{$fa-css-prefix}-bluetooth:before { + content: $fa-var-bluetooth; +} +.#{$fa-css-prefix}-bluetooth-b:before { + content: $fa-var-bluetooth-b; +} +.#{$fa-css-prefix}-percent:before { + content: $fa-var-percent; +} +.#{$fa-css-prefix}-gitlab:before { + content: $fa-var-gitlab; +} +.#{$fa-css-prefix}-wpbeginner:before { + content: $fa-var-wpbeginner; +} +.#{$fa-css-prefix}-wpforms:before { + content: $fa-var-wpforms; +} +.#{$fa-css-prefix}-envira:before { + content: $fa-var-envira; +} +.#{$fa-css-prefix}-universal-access:before { + content: $fa-var-universal-access; +} +.#{$fa-css-prefix}-wheelchair-alt:before { + content: $fa-var-wheelchair-alt; +} +.#{$fa-css-prefix}-question-circle-o:before { + content: $fa-var-question-circle-o; +} +.#{$fa-css-prefix}-blind:before { + content: $fa-var-blind; +} +.#{$fa-css-prefix}-audio-description:before { + content: $fa-var-audio-description; +} +.#{$fa-css-prefix}-volume-control-phone:before { + content: $fa-var-volume-control-phone; +} +.#{$fa-css-prefix}-braille:before { + content: $fa-var-braille; +} +.#{$fa-css-prefix}-assistive-listening-systems:before { + content: $fa-var-assistive-listening-systems; +} .#{$fa-css-prefix}-asl-interpreting:before, -.#{$fa-css-prefix}-american-sign-language-interpreting:before { content: $fa-var-american-sign-language-interpreting; } +.#{$fa-css-prefix}-american-sign-language-interpreting:before { + content: $fa-var-american-sign-language-interpreting; +} .#{$fa-css-prefix}-deafness:before, .#{$fa-css-prefix}-hard-of-hearing:before, -.#{$fa-css-prefix}-deaf:before { content: $fa-var-deaf; } -.#{$fa-css-prefix}-glide:before { content: $fa-var-glide; } -.#{$fa-css-prefix}-glide-g:before { content: $fa-var-glide-g; } +.#{$fa-css-prefix}-deaf:before { + content: $fa-var-deaf; +} +.#{$fa-css-prefix}-glide:before { + content: $fa-var-glide; +} +.#{$fa-css-prefix}-glide-g:before { + content: $fa-var-glide-g; +} .#{$fa-css-prefix}-signing:before, -.#{$fa-css-prefix}-sign-language:before { content: $fa-var-sign-language; } -.#{$fa-css-prefix}-low-vision:before { content: $fa-var-low-vision; } -.#{$fa-css-prefix}-viadeo:before { content: $fa-var-viadeo; } -.#{$fa-css-prefix}-viadeo-square:before { content: $fa-var-viadeo-square; } -.#{$fa-css-prefix}-snapchat:before { content: $fa-var-snapchat; } -.#{$fa-css-prefix}-snapchat-ghost:before { content: $fa-var-snapchat-ghost; } -.#{$fa-css-prefix}-snapchat-square:before { content: $fa-var-snapchat-square; } -.#{$fa-css-prefix}-pied-piper:before { content: $fa-var-pied-piper; } -.#{$fa-css-prefix}-first-order:before { content: $fa-var-first-order; } -.#{$fa-css-prefix}-yoast:before { content: $fa-var-yoast; } -.#{$fa-css-prefix}-themeisle:before { content: $fa-var-themeisle; } +.#{$fa-css-prefix}-sign-language:before { + content: $fa-var-sign-language; +} +.#{$fa-css-prefix}-low-vision:before { + content: $fa-var-low-vision; +} +.#{$fa-css-prefix}-viadeo:before { + content: $fa-var-viadeo; +} +.#{$fa-css-prefix}-viadeo-square:before { + content: $fa-var-viadeo-square; +} +.#{$fa-css-prefix}-snapchat:before { + content: $fa-var-snapchat; +} +.#{$fa-css-prefix}-snapchat-ghost:before { + content: $fa-var-snapchat-ghost; +} +.#{$fa-css-prefix}-snapchat-square:before { + content: $fa-var-snapchat-square; +} +.#{$fa-css-prefix}-pied-piper:before { + content: $fa-var-pied-piper; +} +.#{$fa-css-prefix}-first-order:before { + content: $fa-var-first-order; +} +.#{$fa-css-prefix}-yoast:before { + content: $fa-var-yoast; +} +.#{$fa-css-prefix}-themeisle:before { + content: $fa-var-themeisle; +} .#{$fa-css-prefix}-google-plus-circle:before, -.#{$fa-css-prefix}-google-plus-official:before { content: $fa-var-google-plus-official; } +.#{$fa-css-prefix}-google-plus-official:before { + content: $fa-var-google-plus-official; +} .#{$fa-css-prefix}-fa:before, -.#{$fa-css-prefix}-font-awesome:before { content: $fa-var-font-awesome; } -.#{$fa-css-prefix}-handshake-o:before { content: $fa-var-handshake-o; } -.#{$fa-css-prefix}-envelope-open:before { content: $fa-var-envelope-open; } -.#{$fa-css-prefix}-envelope-open-o:before { content: $fa-var-envelope-open-o; } -.#{$fa-css-prefix}-linode:before { content: $fa-var-linode; } -.#{$fa-css-prefix}-address-book:before { content: $fa-var-address-book; } -.#{$fa-css-prefix}-address-book-o:before { content: $fa-var-address-book-o; } +.#{$fa-css-prefix}-font-awesome:before { + content: $fa-var-font-awesome; +} +.#{$fa-css-prefix}-handshake-o:before { + content: $fa-var-handshake-o; +} +.#{$fa-css-prefix}-envelope-open:before { + content: $fa-var-envelope-open; +} +.#{$fa-css-prefix}-envelope-open-o:before { + content: $fa-var-envelope-open-o; +} +.#{$fa-css-prefix}-linode:before { + content: $fa-var-linode; +} +.#{$fa-css-prefix}-address-book:before { + content: $fa-var-address-book; +} +.#{$fa-css-prefix}-address-book-o:before { + content: $fa-var-address-book-o; +} .#{$fa-css-prefix}-vcard:before, -.#{$fa-css-prefix}-address-card:before { content: $fa-var-address-card; } +.#{$fa-css-prefix}-address-card:before { + content: $fa-var-address-card; +} .#{$fa-css-prefix}-vcard-o:before, -.#{$fa-css-prefix}-address-card-o:before { content: $fa-var-address-card-o; } -.#{$fa-css-prefix}-user-circle:before { content: $fa-var-user-circle; } -.#{$fa-css-prefix}-user-circle-o:before { content: $fa-var-user-circle-o; } -.#{$fa-css-prefix}-user-o:before { content: $fa-var-user-o; } -.#{$fa-css-prefix}-id-badge:before { content: $fa-var-id-badge; } +.#{$fa-css-prefix}-address-card-o:before { + content: $fa-var-address-card-o; +} +.#{$fa-css-prefix}-user-circle:before { + content: $fa-var-user-circle; +} +.#{$fa-css-prefix}-user-circle-o:before { + content: $fa-var-user-circle-o; +} +.#{$fa-css-prefix}-user-o:before { + content: $fa-var-user-o; +} +.#{$fa-css-prefix}-id-badge:before { + content: $fa-var-id-badge; +} .#{$fa-css-prefix}-drivers-license:before, -.#{$fa-css-prefix}-id-card:before { content: $fa-var-id-card; } +.#{$fa-css-prefix}-id-card:before { + content: $fa-var-id-card; +} .#{$fa-css-prefix}-drivers-license-o:before, -.#{$fa-css-prefix}-id-card-o:before { content: $fa-var-id-card-o; } -.#{$fa-css-prefix}-quora:before { content: $fa-var-quora; } -.#{$fa-css-prefix}-free-code-camp:before { content: $fa-var-free-code-camp; } -.#{$fa-css-prefix}-telegram:before { content: $fa-var-telegram; } +.#{$fa-css-prefix}-id-card-o:before { + content: $fa-var-id-card-o; +} +.#{$fa-css-prefix}-quora:before { + content: $fa-var-quora; +} +.#{$fa-css-prefix}-free-code-camp:before { + content: $fa-var-free-code-camp; +} +.#{$fa-css-prefix}-telegram:before { + content: $fa-var-telegram; +} .#{$fa-css-prefix}-thermometer-4:before, .#{$fa-css-prefix}-thermometer:before, -.#{$fa-css-prefix}-thermometer-full:before { content: $fa-var-thermometer-full; } +.#{$fa-css-prefix}-thermometer-full:before { + content: $fa-var-thermometer-full; +} .#{$fa-css-prefix}-thermometer-3:before, -.#{$fa-css-prefix}-thermometer-three-quarters:before { content: $fa-var-thermometer-three-quarters; } +.#{$fa-css-prefix}-thermometer-three-quarters:before { + content: $fa-var-thermometer-three-quarters; +} .#{$fa-css-prefix}-thermometer-2:before, -.#{$fa-css-prefix}-thermometer-half:before { content: $fa-var-thermometer-half; } +.#{$fa-css-prefix}-thermometer-half:before { + content: $fa-var-thermometer-half; +} .#{$fa-css-prefix}-thermometer-1:before, -.#{$fa-css-prefix}-thermometer-quarter:before { content: $fa-var-thermometer-quarter; } +.#{$fa-css-prefix}-thermometer-quarter:before { + content: $fa-var-thermometer-quarter; +} .#{$fa-css-prefix}-thermometer-0:before, -.#{$fa-css-prefix}-thermometer-empty:before { content: $fa-var-thermometer-empty; } -.#{$fa-css-prefix}-shower:before { content: $fa-var-shower; } +.#{$fa-css-prefix}-thermometer-empty:before { + content: $fa-var-thermometer-empty; +} +.#{$fa-css-prefix}-shower:before { + content: $fa-var-shower; +} .#{$fa-css-prefix}-bathtub:before, .#{$fa-css-prefix}-s15:before, -.#{$fa-css-prefix}-bath:before { content: $fa-var-bath; } -.#{$fa-css-prefix}-podcast:before { content: $fa-var-podcast; } -.#{$fa-css-prefix}-window-maximize:before { content: $fa-var-window-maximize; } -.#{$fa-css-prefix}-window-minimize:before { content: $fa-var-window-minimize; } -.#{$fa-css-prefix}-window-restore:before { content: $fa-var-window-restore; } +.#{$fa-css-prefix}-bath:before { + content: $fa-var-bath; +} +.#{$fa-css-prefix}-podcast:before { + content: $fa-var-podcast; +} +.#{$fa-css-prefix}-window-maximize:before { + content: $fa-var-window-maximize; +} +.#{$fa-css-prefix}-window-minimize:before { + content: $fa-var-window-minimize; +} +.#{$fa-css-prefix}-window-restore:before { + content: $fa-var-window-restore; +} .#{$fa-css-prefix}-times-rectangle:before, -.#{$fa-css-prefix}-window-close:before { content: $fa-var-window-close; } +.#{$fa-css-prefix}-window-close:before { + content: $fa-var-window-close; +} .#{$fa-css-prefix}-times-rectangle-o:before, -.#{$fa-css-prefix}-window-close-o:before { content: $fa-var-window-close-o; } -.#{$fa-css-prefix}-bandcamp:before { content: $fa-var-bandcamp; } -.#{$fa-css-prefix}-grav:before { content: $fa-var-grav; } -.#{$fa-css-prefix}-etsy:before { content: $fa-var-etsy; } -.#{$fa-css-prefix}-imdb:before { content: $fa-var-imdb; } -.#{$fa-css-prefix}-ravelry:before { content: $fa-var-ravelry; } -.#{$fa-css-prefix}-eercast:before { content: $fa-var-eercast; } -.#{$fa-css-prefix}-microchip:before { content: $fa-var-microchip; } -.#{$fa-css-prefix}-snowflake-o:before { content: $fa-var-snowflake-o; } -.#{$fa-css-prefix}-superpowers:before { content: $fa-var-superpowers; } -.#{$fa-css-prefix}-wpexplorer:before { content: $fa-var-wpexplorer; } -.#{$fa-css-prefix}-meetup:before { content: $fa-var-meetup; } +.#{$fa-css-prefix}-window-close-o:before { + content: $fa-var-window-close-o; +} +.#{$fa-css-prefix}-bandcamp:before { + content: $fa-var-bandcamp; +} +.#{$fa-css-prefix}-grav:before { + content: $fa-var-grav; +} +.#{$fa-css-prefix}-etsy:before { + content: $fa-var-etsy; +} +.#{$fa-css-prefix}-imdb:before { + content: $fa-var-imdb; +} +.#{$fa-css-prefix}-ravelry:before { + content: $fa-var-ravelry; +} +.#{$fa-css-prefix}-eercast:before { + content: $fa-var-eercast; +} +.#{$fa-css-prefix}-microchip:before { + content: $fa-var-microchip; +} +.#{$fa-css-prefix}-snowflake-o:before { + content: $fa-var-snowflake-o; +} +.#{$fa-css-prefix}-superpowers:before { + content: $fa-var-superpowers; +} +.#{$fa-css-prefix}-wpexplorer:before { + content: $fa-var-wpexplorer; +} +.#{$fa-css-prefix}-meetup:before { + content: $fa-var-meetup; +} diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_larger.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_larger.scss index 41e9a818..8fa5eaee 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_larger.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_larger.scss @@ -3,11 +3,19 @@ /* makes the font 33% larger relative to the icon container */ .#{$fa-css-prefix}-lg { - font-size: (4em / 3); - line-height: (3em / 4); - vertical-align: -15%; -} -.#{$fa-css-prefix}-2x { font-size: 2em; } -.#{$fa-css-prefix}-3x { font-size: 3em; } -.#{$fa-css-prefix}-4x { font-size: 4em; } -.#{$fa-css-prefix}-5x { font-size: 5em; } + font-size: (4em / 3); + line-height: (3em / 4); + vertical-align: -15%; +} +.#{$fa-css-prefix}-2x { + font-size: 2em; +} +.#{$fa-css-prefix}-3x { + font-size: 3em; +} +.#{$fa-css-prefix}-4x { + font-size: 4em; +} +.#{$fa-css-prefix}-5x { + font-size: 5em; +} diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_list.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_list.scss index 7d1e4d54..9ae86585 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_list.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_list.scss @@ -2,18 +2,20 @@ // ------------------------- .#{$fa-css-prefix}-ul { - padding-left: 0; - margin-left: $fa-li-width; - list-style-type: none; - > li { position: relative; } + padding-left: 0; + margin-left: $fa-li-width; + list-style-type: none; + > li { + position: relative; + } } .#{$fa-css-prefix}-li { - position: absolute; - left: -$fa-li-width; - width: $fa-li-width; - top: (2em / 14); - text-align: center; - &.#{$fa-css-prefix}-lg { - left: -$fa-li-width + (4em / 14); - } + position: absolute; + left: -$fa-li-width; + width: $fa-li-width; + top: (2em / 14); + text-align: center; + &.#{$fa-css-prefix}-lg { + left: -$fa-li-width + (4em / 14); + } } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_mixins.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_mixins.scss index c3bbd574..0def52ab 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_mixins.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_mixins.scss @@ -2,43 +2,42 @@ // -------------------------- @mixin fa-icon() { - display: inline-block; - font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration - font-size: inherit; // can't have font-size inherit on line above, so need to override - text-rendering: auto; // optimizelegibility throws things off #1094 - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - + display: inline-block; + font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} + FontAwesome; // shortening font declaration + font-size: inherit; // can't have font-size inherit on line above, so need to override + text-rendering: auto; // optimizelegibility throws things off #1094 + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } @mixin fa-icon-rotate($degrees, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; - -webkit-transform: rotate($degrees); - -ms-transform: rotate($degrees); - transform: rotate($degrees); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})"; + -webkit-transform: rotate($degrees); + -ms-transform: rotate($degrees); + transform: rotate($degrees); } @mixin fa-icon-flip($horiz, $vert, $rotation) { - -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; - -webkit-transform: scale($horiz, $vert); - -ms-transform: scale($horiz, $vert); - transform: scale($horiz, $vert); + -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)"; + -webkit-transform: scale($horiz, $vert); + -ms-transform: scale($horiz, $vert); + transform: scale($horiz, $vert); } - // Only display content to screen readers. A la Bootstrap 4. // // See: http://a11yproject.com/posts/how-to-hide-content/ @mixin sr-only { - position: absolute; - width: 1px; - height: 1px; - padding: 0; - margin: -1px; - overflow: hidden; - clip: rect(0,0,0,0); - border: 0; + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } // Use in conjunction with .sr-only to only display content when it's focused. @@ -48,13 +47,13 @@ // Credit: HTML5 Boilerplate @mixin sr-only-focusable { - &:active, - &:focus { - position: static; - width: auto; - height: auto; - margin: 0; - overflow: visible; - clip: auto; - } + &:active, + &:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; + } } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_path.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_path.scss index bb457c23..1dd69720 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_path.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_path.scss @@ -2,14 +2,20 @@ * -------------------------- */ @font-face { - font-family: 'FontAwesome'; - src: url('#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}'); - src: url('#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}') format('embedded-opentype'), - url('#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}') format('woff2'), - url('#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}') format('woff'), - url('#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}') format('truetype'), - url('#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular') format('svg'); -// src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts - font-weight: normal; - font-style: normal; + font-family: "FontAwesome"; + src: url("#{$fa-font-path}/fontawesome-webfont.eot?v=#{$fa-version}"); + src: + url("#{$fa-font-path}/fontawesome-webfont.eot?#iefix&v=#{$fa-version}") + format("embedded-opentype"), + url("#{$fa-font-path}/fontawesome-webfont.woff2?v=#{$fa-version}") + format("woff2"), + url("#{$fa-font-path}/fontawesome-webfont.woff?v=#{$fa-version}") + format("woff"), + url("#{$fa-font-path}/fontawesome-webfont.ttf?v=#{$fa-version}") + format("truetype"), + url("#{$fa-font-path}/fontawesome-webfont.svg?v=#{$fa-version}#fontawesomeregular") + format("svg"); + // src: url('#{$fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts + font-weight: normal; + font-style: normal; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_rotated-flipped.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_rotated-flipped.scss index a3558fd0..e2bd2cb9 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_rotated-flipped.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_rotated-flipped.scss @@ -1,12 +1,22 @@ // Rotated & Flipped Icons // ------------------------- -.#{$fa-css-prefix}-rotate-90 { @include fa-icon-rotate(90deg, 1); } -.#{$fa-css-prefix}-rotate-180 { @include fa-icon-rotate(180deg, 2); } -.#{$fa-css-prefix}-rotate-270 { @include fa-icon-rotate(270deg, 3); } +.#{$fa-css-prefix}-rotate-90 { + @include fa-icon-rotate(90deg, 1); +} +.#{$fa-css-prefix}-rotate-180 { + @include fa-icon-rotate(180deg, 2); +} +.#{$fa-css-prefix}-rotate-270 { + @include fa-icon-rotate(270deg, 3); +} -.#{$fa-css-prefix}-flip-horizontal { @include fa-icon-flip(-1, 1, 0); } -.#{$fa-css-prefix}-flip-vertical { @include fa-icon-flip(1, -1, 2); } +.#{$fa-css-prefix}-flip-horizontal { + @include fa-icon-flip(-1, 1, 0); +} +.#{$fa-css-prefix}-flip-vertical { + @include fa-icon-flip(1, -1, 2); +} // Hook for IE8-9 // ------------------------- @@ -16,5 +26,5 @@ :root .#{$fa-css-prefix}-rotate-270, :root .#{$fa-css-prefix}-flip-horizontal, :root .#{$fa-css-prefix}-flip-vertical { - filter: none; + filter: none; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_screen-reader.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_screen-reader.scss index 637426f0..6e63cc99 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_screen-reader.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_screen-reader.scss @@ -1,5 +1,9 @@ // Screen Readers // ------------------------- -.sr-only { @include sr-only(); } -.sr-only-focusable { @include sr-only-focusable(); } +.sr-only { + @include sr-only(); +} +.sr-only-focusable { + @include sr-only-focusable(); +} diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_stacked.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_stacked.scss index aef74036..27ce4c52 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_stacked.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_stacked.scss @@ -2,19 +2,26 @@ // ------------------------- .#{$fa-css-prefix}-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle; + position: relative; + display: inline-block; + width: 2em; + height: 2em; + line-height: 2em; + vertical-align: middle; } -.#{$fa-css-prefix}-stack-1x, .#{$fa-css-prefix}-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center; +.#{$fa-css-prefix}-stack-1x, +.#{$fa-css-prefix}-stack-2x { + position: absolute; + left: 0; + width: 100%; + text-align: center; +} +.#{$fa-css-prefix}-stack-1x { + line-height: inherit; +} +.#{$fa-css-prefix}-stack-2x { + font-size: 2em; +} +.#{$fa-css-prefix}-inverse { + color: $fa-inverse; } -.#{$fa-css-prefix}-stack-1x { line-height: inherit; } -.#{$fa-css-prefix}-stack-2x { font-size: 2em; } -.#{$fa-css-prefix}-inverse { color: $fa-inverse; } diff --git a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_variables.scss b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_variables.scss index 498fc4a0..a4bd3cd8 100644 --- a/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_variables.scss +++ b/client/public/3rdpartystatic/font-awesome-4.7.0/scss/_variables.scss @@ -1,15 +1,15 @@ // Variables // -------------------------- -$fa-font-path: "../fonts" !default; -$fa-font-size-base: 14px !default; +$fa-font-path: "../fonts" !default; +$fa-font-size-base: 14px !default; $fa-line-height-base: 1 !default; //$fa-font-path: "//netdna.bootstrapcdn.com/font-awesome/4.7.0/fonts" !default; // for referencing Bootstrap CDN font files directly -$fa-css-prefix: fa !default; -$fa-version: "4.7.0" !default; -$fa-border-color: #eee !default; -$fa-inverse: #fff !default; -$fa-li-width: (30em / 14) !default; +$fa-css-prefix: fa !default; +$fa-version: "4.7.0" !default; +$fa-border-color: #eee !default; +$fa-inverse: #fff !default; +$fa-li-width: (30em / 14) !default; $fa-var-500px: "\f26e"; $fa-var-address-book: "\f2b9"; @@ -797,4 +797,3 @@ $fa-var-yoast: "\f2b1"; $fa-var-youtube: "\f167"; $fa-var-youtube-play: "\f16a"; $fa-var-youtube-square: "\f166"; - diff --git a/client/public/favicon-16x16.png b/client/public/favicon-16x16.png index 587983ab..f543f9ce 100644 Binary files a/client/public/favicon-16x16.png and b/client/public/favicon-16x16.png differ diff --git a/client/public/favicon-32x32.png b/client/public/favicon-32x32.png index 6309b7bd..6225ad45 100644 Binary files a/client/public/favicon-32x32.png and b/client/public/favicon-32x32.png differ diff --git a/client/public/index.html b/client/public/index.html index c24ba9e1..7a191888 100644 --- a/client/public/index.html +++ b/client/public/index.html @@ -1,4 +1,4 @@ -<!DOCTYPE html> +<!doctype html> <html lang="en"> <head> <meta charset="utf-8" /> @@ -298,7 +298,7 @@ @font-face { font-family: "fontello"; - src: url("data:application/octet-stream;base64,d09GRgABAAAAABFEAA8AAAAAHCgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFY+L1JGY21hcAAAAdgAAAB7AAABzreJtn1jdnQgAAACVAAAABMAAAAgBtX+5mZwZ20AAAJoAAAFkAAAC3CKkZBZZ2FzcAAAB/gAAAAIAAAACAAAABBnbHlmAAAIAAAABmAAAAiu1hlTBmhlYWQAAA5gAAAAMgAAADYTUMpWaGhlYQAADpQAAAAgAAAAJAdWA1hobXR4AAAOtAAAABwAAAAcGI3/4mxvY2EAAA7QAAAAEAAAABAHkAqhbWF4cAAADuAAAAAgAAAAIAGXDLpuYW1lAAAPAAAAAXcAAALNzJ0eIHBvc3QAABB4AAAAUAAAAGhfk4xGcHJlcAAAEMgAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZG5inMDAysDAVMW0h4GBoQdCMz5gMGRkAooysDIzYAUBaa4pDA4vGD6aMgf9z2KIYg5iWAoUZgTJAQDudgv8AHic7ZHLCcMwEESfPhbBhFSSo91BinAZPqUU17hHuQJnVhK4iax4YndYJJgBJiCJt8gQvgS8dqmh6Ym56ZmP5pkHkWjRlnqc63WBcfejgvZe7Xgf9UbWT0VD4V/Pdm9jKu5gxx23gVzDBp6QLR1PqR4dT+9cO5QfllsdZwB4nGNgQAMSEMgc9D8ahAESEgO/AHicrVZpd9NGFB15SZyELCULLWphxMRpsEYmbMGACUGyYyBdnK2VoIsUO+m+8Ynf4F/zZNpz6Dd+Wu8bLySQtOdwmpOjd+fN1czbZRJaktgL65GUmy/F1NYmjew8CemGTctRfCg7eyFlisnfBVEQrZbatx2HREQiULWusEQQ+x5ZmmR86FFGy7akV03KLT3pLlvjQb1V334aOsqxO6GkZjN0aD2yJVUYVaJIpj1S0qZlqPorSSu8v8LMV81QwohOImm8GcbQSN4bZ7TKaDW24yiKbLLcKFIkmuFBFHmU1RLn5IoJDMoHzZDyyqcR5cP8iKzYo5xWsEu20/y+L3mndzk/sV9vUbbkQB/Ijuzg7HQlX4RbW2HctJPtKFQRdtd3QmzZ7FT/Zo/ymkYDtysyvdCMYKl8hRArP6HM/iFZLZxP+ZJHo1qykRNB62VO7Es+gdbjiClxzRhZ0N3RCRHU/ZIzDPaYPh788d4plgsTAngcy3pHJZwIEylhczRJ2jByYCVliyqp9a6YOOV1WsRbwn7t2tGXzmjjUHdiPFsPHVs5UcnxaFKnmUyd2knNoykNopR0JnjMrwMoP6JJXm1jNYmVR9M4ZsaERCICLdxLU0EsO7GkKQTNoxm9uRumuXYtWqTJA/Xco/f05la4udNT2g70s0Z/VqdiOtgL0+lp5C/xadrlIkXp+ukZfkziQdYCMpEtNsOUgwdv/Q7Sy9eWHIXXBtju7fMrqH3WRPCkAfsb0B5P1SkJTIWYVYhWQGKta1mWydWsFqnI1HdDmla+rNMEinIcF8e+jHH9XzMzlpgSvt+J07MjLj1z7UsI0xx8m3U9mtepxXIBcWZ5TqdZlu/rNMfyA53mWZ7X6QhLW6ejLD/UaYHlRzodY3lBC5p038GQizDkAg6QMISlA0NYXoIhLBUMYbkIQ1gWYQjLJRjC8mMYwnIZhrC8rGXV1FNJ49qZWAZsQmBijh65zEXlaiq5VEK7aFRqQ54SbpVUFM+qf2WgXjzyhjmwFkiXyJpfMc6Vj0bl+NYVLW8aO1fAsepvH472OfFS1ouFPwX/1dZUJb1izcOTq/Abhp5sJ6o2qXh0TZfPVT26/l9UVFgL9BtIhVgoyrJscGcihI86nYZqoJVDzGzMPLTrdcuan8P9NzFCFlD9+DcUGgvcg05ZSVnt4KzV19uy3DuDcjgTLEkxN/P6VvgiI7PSfpFZyp6PfB5wBYxKZdhqA60VvNknMQ+Z3iTPBHFbUTZI2tjOBIkNHPOAefOdBCZh6qoN5E7hhg34BWFuwXknXKJ6oyyH7kXs8yik/Fun4kT2qGiMwLPZG2Gv70LKb3EMJDT5pX4MVBWhqRg1FdA0Um6oBl/G2bptQsYO9CMqdsOyrOLDxxb3lZJtGYR8pIjVo6Of1l6iTqrcfmYUl++dvgXBIDUxf3vfdHGQyrtayTJHbQNTtxqVU9eaQ+NVh+rmUfW94+wTOWuabronHnpf06rbwcVcLLD2bQ7SUiYX1PVhhQ2iy8WlUOplNEnvuAcYFhjQ71CKjf+r+th8nitVhdFxJN9O1LfR52AM/A/Yf0f1A9D3Y+hyDS7P95oTn2704WyZrqIX66foNzBrrblZugbc0HQD4iFHrY64yg18pwZxeqS5HOkh4GPdFeIBwCaAxeAT3bWM5lMAo/mMOT7A58xh0GQOgy3mMNhmzhrADnMY7DKHwR5zGHzBnHWAL5nDIGQOg4g5DJ4wJwB4yhwGXzGHwdfMYfANc+4DfMscBjFzGCTMYbCv6dYwzC1e0F2gtkFVoANTT1jcw+JQU2XI/o4Xhv29Qcz+wSCm/qjp9pD6Ey8M9WeDmPqLQUz9VdOdIfU3Xhjq7wYx9Q+DmPpMvxjLZQa/jHyXCgeUXWw+5++J9w/bxUC5AAEAAf//AA94nKVVa2wcVxU+5z5ndmbu7O48du21N9717qwTv+r1PkirOhvHqWPFOE6wUjsBy0UKiWNcFAnUVo2F+EUEQi1FKgjyg9KqP3kFUQGiQuoPJFRQpUr5gxAChMpDKhFKKyGIzdl1GhIkfrF39s553LmPc873XRB7f9h7URR5Ai70QREOwmJnoYxC4TwoEKDEtoVMIygGG6RLFHIDkHNcAUS+Chz5ovEQRmrFwYFClPX6TJ8lwUXXluEoljWqeLpUb9UwqdVzGKvhUjlpYyto1MNyEPpYS5qNGYwZmxrafXPo0Cy7cnSsvPvL0uTlI9g4cnHnznPPbnWwOVO7du0FNb+gJmbH2E/bd/bay8tthu3NrTt7mz/50RbDrTufPn4Nrxr/xg3fDE2wOtBPAOy9xC7xAiTwDtxGxKc79R//4Ps8Nj9/lXnxzevM9Z6eYYJfXmCR2HicychGJQtZBtqat5QUTOLcye+6y6udT2TQT5u0b7azaOK0ibfyAc3hut6F/lyKCx5xccFGGalIKoqb0pHStDPQqAG3KWBPQhpiLx1vhOg6yIXLn+jDSOpohV6RXgUd6cVC59L/WCj23O17K0Xb//9Sa0cb8D68B3+GP8G/4J/wHiK8T/+/wbtkuU322xS2P8Jv4NfwK3gTfgavw2vwQ/gOfBtehm/B1+Cr8GV4Dr4An4fPwg5cgU9RoPug0GvjUKU2SZKEwdHqdI6yrSexHR/AOBdP19u5/VfrCN59tdpxEEehVrXhKXIW6VzUhsu1ZBJz8b48iVH8gdy1RyST0G52DQkJNM8H3ge1dqOrTQ2rWkJSbnrfP13P0YZqSasrdoWusd3qWZtJqx7rqN3aH9Zb9gHNZw9oON2S9RlsTGDZYFjEdnkCqbrrRQwN4i3+mZ2lS5dWnnkKLUwNZoPYESkV9edjbTM/TIcFl2vGLlqWXLIzA16OcaG9VEoU81pYDwvhZQM17jqWL1Npz7U8asxJjTgOY6V0qphSxk5xyU0is1nDWSHrC6n6BnnBt3jeG8joU8qy1JLjLCC3zAAf7FPS/pAymcBqSJ6yjbIyXi5wCfLRwYhJYxnbOFlL+pbDrLhfhhlX8iCVc5jQ+aJwbE/bAk843od3f99YazTWNs81m+eaBx8bGXnszFytNvfOb52PvvLKuv0720Pja81t7rrUae2lpaMZ1pww47lMO8r1fCdr64wnmdV0jBfUPRHFVWWkynuDaWtJ2rZccuSyY1Q1FwrGMocC37UGQ48xYTLl0FOuojlde8xKMTHgedlSxghmN/Pp9CNC0mSWbclKPubukjFLtjvo90udsqphTgon7k8bo0M3dAjyXkZZQeB6A4L9tUmnajTOba41x0eOnz4+0uuIWxhxyz/4N7lDhT4LS52TjxBvVpEYY55gyFCzbaJNwYhDQUgm5BZIziTfAgSmkG0AB+ArwDmskgCLYS6qNQ83py05MIpR2KPKZqbRapfqBAUf1XAtIZvSmTDOEac+SgSJveILUBEukq5KJdzr4pBn14/tPnRsff0YvjVcpJgXlJaeu/tQtYGtCr5VbciK0lw4n9s97FXMLWMeNRXzFdwkZcbDk9/b/3R2HY0I1IBE3qje/fhLlhymo6HcfdiYW73xXvdDj2YAtre3d57/hZ+BA3AUxjuHBDLA+SnEOYoZnX2fnzgCXToLCKWhMIADeEDsXxhKTxGkuoDKxQRcOnl7BtutpDZB2Oz5qcX7fgLfFGldzPYATD3+/fHTK3NnP3n54uVTs6WSqpr+9HSGp9gwVpPn18/vyrwv6H6rsEpy4vyzTz2z80R38BYNHpJVS5ksPzNYPHw8CotDp2bPfuTG6YOFNGa4r869sfax55Pq7rtpoayeduJ8pZzvO33f2KhksnCvNgKqDZ+iMNoZAS6Q7k26RJGx3uXJVikSbJFBsRAHKQ0+82U3AvclmJKf5DIPFELMrtyXwMbV/6R4doO9cS9BXefaPc86btzd01X+Eu3Jooqd7Iz19/kEj7luSmhX28DYk/9dkqOHkmqQFTIexUZSVmFcb7VD1WW67tOtuSPE6T1WJqnH4DM4XY95ZWhsiJ6dsx8f7zho3RSuqmg+ef3rxByyktI7yn67Nbb5+gvaZatxd+jQa1/8xYWx1tu22mGyolPfuD6JsuI4Ny10OuOXll34N5i2S2t4nGNgZGBgAGLVeAb5eH6brwzczC+AIgw3JJyTYPT/x/+jWeSYg4BcDgYmkCgAClAKIgAAeJxjYGRgYA76n8XAwML0//H/JyxyDEARFMAOAIygBbUD6AAABAL/4wJoAAADoAAAA+n//wMRAAADoAAAAAAAAABwAp4DKgOsA/YEVwABAAAABwECAAQAAAAAAAIANgBGAHMAAADiC3AAAAAAeJx1kN1qwjAYht/Mn20K29hgp8vRUMbqDwxEEASHnmwnMjwdtda2UhtJo+Bt7B52MbuJXcte2ziGspY0z/fky5evAXCNbwjkzxNHzgJnjHI+wSl6lgv0z5aL5BfLJVTxZrlM/265ggcElqu4wQcriOI5owU+LQtciUvLJ7gQd5YL9I+Wi+Se5RJuxavlMr1nuYKJSC1XcS++Bmq11VEQGlkb1GW72erI6VYqqihxY+muTah0KvtyrhLjx7FyPLXc89gP1rGr9+F+nvg6jVQiW05zr0Z+4mvX+LNd9XQTtI2Zy7lWSzm0GXKl1cL3jBMas+o2Gn/PwwAKK2yhEfGqQhhI1GjrnNtoooUOacoMycw8K0ICFzGNizV3hNlKyrjPMWeU0PrMiMkOPH6XR35MCrg/ZhV9tHoYT0i7M6LMS/blsLvDrBEpyTLdzM5+e0+x4WltWsNduy511pXE8KCG5H3s1hY0Hr2T3Yqh7aLB95//+wHpc4RTAHicbcdRCoAgDADQzdJFnqVDyRwp5RIrotsH9dv7e2DgM8I/QoMd9mjRIeEAdIWmWWffhLdSRKNEy0l4ob1mVWn+3SSlHrdbw6mcAB5AfhO4eJxj8N7BcCIoYiMjY1/kBsadHAwcDMkFGxlYnTYxMDJogRibuZgYOSAsPgYwi81pF9MBoDQnkM3utIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOZhYuTR2sH4v3UDS+9GJgYXAAx2I/QAAA==") + src: url("data:application/octet-stream;base64,d09GRgABAAAAABFEAA8AAAAAHCgAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABHU1VCAAABWAAAADsAAABUIIslek9TLzIAAAGUAAAAQwAAAFY+L1JGY21hcAAAAdgAAAB7AAABzreJtn1jdnQgAAACVAAAABMAAAAgBtX+5mZwZ20AAAJoAAAFkAAAC3CKkZBZZ2FzcAAAB/gAAAAIAAAACAAAABBnbHlmAAAIAAAABmAAAAiu1hlTBmhlYWQAAA5gAAAAMgAAADYTUMpWaGhlYQAADpQAAAAgAAAAJAdWA1hobXR4AAAOtAAAABwAAAAcGI3/4mxvY2EAAA7QAAAAEAAAABAHkAqhbWF4cAAADuAAAAAgAAAAIAGXDLpuYW1lAAAPAAAAAXcAAALNzJ0eIHBvc3QAABB4AAAAUAAAAGhfk4xGcHJlcAAAEMgAAAB6AAAAhuVBK7x4nGNgZGBg4GIwYLBjYHJx8wlh4MtJLMljkGJgYYAAkDwymzEnMz2RgQPGA8qxgGkOIGaDiAIAJjsFSAB4nGNgZG5inMDAysDAVMW0h4GBoQdCMz5gMGRkAooysDIzYAUBaa4pDA4vGD6aMgf9z2KIYg5iWAoUZgTJAQDudgv8AHic7ZHLCcMwEESfPhbBhFSSo91BinAZPqUU17hHuQJnVhK4iax4YndYJJgBJiCJt8gQvgS8dqmh6Ym56ZmP5pkHkWjRlnqc63WBcfejgvZe7Xgf9UbWT0VD4V/Pdm9jKu5gxx23gVzDBp6QLR1PqR4dT+9cO5QfllsdZwB4nGNgQAMSEMgc9D8ahAESEgO/AHicrVZpd9NGFB15SZyELCULLWphxMRpsEYmbMGACUGyYyBdnK2VoIsUO+m+8Ynf4F/zZNpz6Dd+Wu8bLySQtOdwmpOjd+fN1czbZRJaktgL65GUmy/F1NYmjew8CemGTctRfCg7eyFlisnfBVEQrZbatx2HREQiULWusEQQ+x5ZmmR86FFGy7akV03KLT3pLlvjQb1V334aOsqxO6GkZjN0aD2yJVUYVaJIpj1S0qZlqPorSSu8v8LMV81QwohOImm8GcbQSN4bZ7TKaDW24yiKbLLcKFIkmuFBFHmU1RLn5IoJDMoHzZDyyqcR5cP8iKzYo5xWsEu20/y+L3mndzk/sV9vUbbkQB/Ijuzg7HQlX4RbW2HctJPtKFQRdtd3QmzZ7FT/Zo/ymkYDtysyvdCMYKl8hRArP6HM/iFZLZxP+ZJHo1qykRNB62VO7Es+gdbjiClxzRhZ0N3RCRHU/ZIzDPaYPh788d4plgsTAngcy3pHJZwIEylhczRJ2jByYCVliyqp9a6YOOV1WsRbwn7t2tGXzmjjUHdiPFsPHVs5UcnxaFKnmUyd2knNoykNopR0JnjMrwMoP6JJXm1jNYmVR9M4ZsaERCICLdxLU0EsO7GkKQTNoxm9uRumuXYtWqTJA/Xco/f05la4udNT2g70s0Z/VqdiOtgL0+lp5C/xadrlIkXp+ukZfkziQdYCMpEtNsOUgwdv/Q7Sy9eWHIXXBtju7fMrqH3WRPCkAfsb0B5P1SkJTIWYVYhWQGKta1mWydWsFqnI1HdDmla+rNMEinIcF8e+jHH9XzMzlpgSvt+J07MjLj1z7UsI0xx8m3U9mtepxXIBcWZ5TqdZlu/rNMfyA53mWZ7X6QhLW6ejLD/UaYHlRzodY3lBC5p038GQizDkAg6QMISlA0NYXoIhLBUMYbkIQ1gWYQjLJRjC8mMYwnIZhrC8rGXV1FNJ49qZWAZsQmBijh65zEXlaiq5VEK7aFRqQ54SbpVUFM+qf2WgXjzyhjmwFkiXyJpfMc6Vj0bl+NYVLW8aO1fAsepvH472OfFS1ouFPwX/1dZUJb1izcOTq/Abhp5sJ6o2qXh0TZfPVT26/l9UVFgL9BtIhVgoyrJscGcihI86nYZqoJVDzGzMPLTrdcuan8P9NzFCFlD9+DcUGgvcg05ZSVnt4KzV19uy3DuDcjgTLEkxN/P6VvgiI7PSfpFZyp6PfB5wBYxKZdhqA60VvNknMQ+Z3iTPBHFbUTZI2tjOBIkNHPOAefOdBCZh6qoN5E7hhg34BWFuwXknXKJ6oyyH7kXs8yik/Fun4kT2qGiMwLPZG2Gv70LKb3EMJDT5pX4MVBWhqRg1FdA0Um6oBl/G2bptQsYO9CMqdsOyrOLDxxb3lZJtGYR8pIjVo6Of1l6iTqrcfmYUl++dvgXBIDUxf3vfdHGQyrtayTJHbQNTtxqVU9eaQ+NVh+rmUfW94+wTOWuabronHnpf06rbwcVcLLD2bQ7SUiYX1PVhhQ2iy8WlUOplNEnvuAcYFhjQ71CKjf+r+th8nitVhdFxJN9O1LfR52AM/A/Yf0f1A9D3Y+hyDS7P95oTn2704WyZrqIX66foNzBrrblZugbc0HQD4iFHrY64yg18pwZxeqS5HOkh4GPdFeIBwCaAxeAT3bWM5lMAo/mMOT7A58xh0GQOgy3mMNhmzhrADnMY7DKHwR5zGHzBnHWAL5nDIGQOg4g5DJ4wJwB4yhwGXzGHwdfMYfANc+4DfMscBjFzGCTMYbCv6dYwzC1e0F2gtkFVoANTT1jcw+JQU2XI/o4Xhv29Qcz+wSCm/qjp9pD6Ey8M9WeDmPqLQUz9VdOdIfU3Xhjq7wYx9Q+DmPpMvxjLZQa/jHyXCgeUXWw+5++J9w/bxUC5AAEAAf//AA94nKVVa2wcVxU+5z5ndmbu7O48du21N9717qwTv+r1PkirOhvHqWPFOE6wUjsBy0UKiWNcFAnUVo2F+EUEQi1FKgjyg9KqP3kFUQGiQuoPJFRQpUr5gxAChMpDKhFKKyGIzdl1GhIkfrF39s553LmPc873XRB7f9h7URR5Ai70QREOwmJnoYxC4TwoEKDEtoVMIygGG6RLFHIDkHNcAUS+Chz5ovEQRmrFwYFClPX6TJ8lwUXXluEoljWqeLpUb9UwqdVzGKvhUjlpYyto1MNyEPpYS5qNGYwZmxrafXPo0Cy7cnSsvPvL0uTlI9g4cnHnznPPbnWwOVO7du0FNb+gJmbH2E/bd/bay8tthu3NrTt7mz/50RbDrTufPn4Nrxr/xg3fDE2wOtBPAOy9xC7xAiTwDtxGxKc79R//4Ps8Nj9/lXnxzevM9Z6eYYJfXmCR2HicychGJQtZBtqat5QUTOLcye+6y6udT2TQT5u0b7azaOK0ibfyAc3hut6F/lyKCx5xccFGGalIKoqb0pHStDPQqAG3KWBPQhpiLx1vhOg6yIXLn+jDSOpohV6RXgUd6cVC59L/WCj23O17K0Xb//9Sa0cb8D68B3+GP8G/4J/wHiK8T/+/wbtkuU322xS2P8Jv4NfwK3gTfgavw2vwQ/gOfBtehm/B1+Cr8GV4Dr4An4fPwg5cgU9RoPug0GvjUKU2SZKEwdHqdI6yrSexHR/AOBdP19u5/VfrCN59tdpxEEehVrXhKXIW6VzUhsu1ZBJz8b48iVH8gdy1RyST0G52DQkJNM8H3ge1dqOrTQ2rWkJSbnrfP13P0YZqSasrdoWusd3qWZtJqx7rqN3aH9Zb9gHNZw9oON2S9RlsTGDZYFjEdnkCqbrrRQwN4i3+mZ2lS5dWnnkKLUwNZoPYESkV9edjbTM/TIcFl2vGLlqWXLIzA16OcaG9VEoU81pYDwvhZQM17jqWL1Npz7U8asxJjTgOY6V0qphSxk5xyU0is1nDWSHrC6n6BnnBt3jeG8joU8qy1JLjLCC3zAAf7FPS/pAymcBqSJ6yjbIyXi5wCfLRwYhJYxnbOFlL+pbDrLhfhhlX8iCVc5jQ+aJwbE/bAk843od3f99YazTWNs81m+eaBx8bGXnszFytNvfOb52PvvLKuv0720Pja81t7rrUae2lpaMZ1pww47lMO8r1fCdr64wnmdV0jBfUPRHFVWWkynuDaWtJ2rZccuSyY1Q1FwrGMocC37UGQ48xYTLl0FOuojlde8xKMTHgedlSxghmN/Pp9CNC0mSWbclKPubukjFLtjvo90udsqphTgon7k8bo0M3dAjyXkZZQeB6A4L9tUmnajTOba41x0eOnz4+0uuIWxhxyz/4N7lDhT4LS52TjxBvVpEYY55gyFCzbaJNwYhDQUgm5BZIziTfAgSmkG0AB+ArwDmskgCLYS6qNQ83py05MIpR2KPKZqbRapfqBAUf1XAtIZvSmTDOEac+SgSJveILUBEukq5KJdzr4pBn14/tPnRsff0YvjVcpJgXlJaeu/tQtYGtCr5VbciK0lw4n9s97FXMLWMeNRXzFdwkZcbDk9/b/3R2HY0I1IBE3qje/fhLlhymo6HcfdiYW73xXvdDj2YAtre3d57/hZ+BA3AUxjuHBDLA+SnEOYoZnX2fnzgCXToLCKWhMIADeEDsXxhKTxGkuoDKxQRcOnl7BtutpDZB2Oz5qcX7fgLfFGldzPYATD3+/fHTK3NnP3n54uVTs6WSqpr+9HSGp9gwVpPn18/vyrwv6H6rsEpy4vyzTz2z80R38BYNHpJVS5ksPzNYPHw8CotDp2bPfuTG6YOFNGa4r869sfax55Pq7rtpoayeduJ8pZzvO33f2KhksnCvNgKqDZ+iMNoZAS6Q7k26RJGx3uXJVikSbJFBsRAHKQ0+82U3AvclmJKf5DIPFELMrtyXwMbV/6R4doO9cS9BXefaPc86btzd01X+Eu3Jooqd7Iz19/kEj7luSmhX28DYk/9dkqOHkmqQFTIexUZSVmFcb7VD1WW67tOtuSPE6T1WJqnH4DM4XY95ZWhsiJ6dsx8f7zho3RSuqmg+ef3rxByyktI7yn67Nbb5+gvaZatxd+jQa1/8xYWx1tu22mGyolPfuD6JsuI4Ny10OuOXll34N5i2S2t4nGNgZGBgAGLVeAb5eH6brwzczC+AIgw3JJyTYPT/x/+jWeSYg4BcDgYmkCgAClAKIgAAeJxjYGRgYA76n8XAwML0//H/JyxyDEARFMAOAIygBbUD6AAABAL/4wJoAAADoAAAA+n//wMRAAADoAAAAAAAAABwAp4DKgOsA/YEVwABAAAABwECAAQAAAAAAAIANgBGAHMAAADiC3AAAAAAeJx1kN1qwjAYht/Mn20K29hgp8vRUMbqDwxEEASHnmwnMjwdtda2UhtJo+Bt7B52MbuJXcte2ziGspY0z/fky5evAXCNbwjkzxNHzgJnjHI+wSl6lgv0z5aL5BfLJVTxZrlM/265ggcElqu4wQcriOI5owU+LQtciUvLJ7gQd5YL9I+Wi+Se5RJuxavlMr1nuYKJSC1XcS++Bmq11VEQGlkb1GW72erI6VYqqihxY+muTah0KvtyrhLjx7FyPLXc89gP1rGr9+F+nvg6jVQiW05zr0Z+4mvX+LNd9XQTtI2Zy7lWSzm0GXKl1cL3jBMas+o2Gn/PwwAKK2yhEfGqQhhI1GjrnNtoooUOacoMycw8K0ICFzGNizV3hNlKyrjPMWeU0PrMiMkOPH6XR35MCrg/ZhV9tHoYT0i7M6LMS/blsLvDrBEpyTLdzM5+e0+x4WltWsNduy511pXE8KCG5H3s1hY0Hr2T3Yqh7aLB95//+wHpc4RTAHicbcdRCoAgDADQzdJFnqVDyRwp5RIrotsH9dv7e2DgM8I/QoMd9mjRIeEAdIWmWWffhLdSRKNEy0l4ob1mVWn+3SSlHrdbw6mcAB5AfhO4eJxj8N7BcCIoYiMjY1/kBsadHAwcDMkFGxlYnTYxMDJogRibuZgYOSAsPgYwi81pF9MBoDQnkM3utIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOZhYuTR2sH4v3UDS+9GJgYXAAx2I/QAAA==" format("woff"), url("data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI+L1JGAAABUAAAAFZjbWFwt4m2fQAAAagAAAHOY3Z0IAbV/uYAABAQAAAAIGZwZ22KkZBZAAAQMAAAC3BnYXNwAAAAEAAAEAgAAAAIZ2x5ZtYZUwYAAAN4AAAIrmhlYWQTUMpWAAAMKAAAADZoaGVhB1YDWAAADGAAAAAkaG10eBiN/+IAAAyEAAAAHGxvY2EHkAqhAAAMoAAAABBtYXhwAZcMugAADLAAAAAgbmFtZcydHiAAAAzQAAACzXBvc3Rfk4xGAAAPoAAAAGhwcmVw5UErvAAAG6AAAACGAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDggGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAQOgA8TUDUv9qAFoDUgClAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAF2AAEAAAAAAHAAAwABAAAALAADAAoAAAF2AAQARAAAAAoACAACAALoAug08JbxNf//AADoAOg08JbxNf//AAAAAAAAAAAAAQAKAA4ADgAOAAAAAQACAAMABAAFAAYAAAEGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAFgAAAAAAAAABgAA6AAAAOgAAAAAAQAA6AEAAOgBAAAAAgAA6AIAAOgCAAAAAwAA6DQAAOg0AAAABAAA8JYAAPCWAAAABQAA8TUAAPE1AAAABgAAAAT/4/+WBB4DJgAMABkAHgApAExASSIBBAYBRwAGAAQABgRtCAECBwEABgIAYAAEAAUBBAVgAAEDAwFUAAEBA1gAAwEDTA4NAQAoJx4dHBsVEg0ZDhkIBQAMAQwJBRQrASIHAQYWMyEyNicBJicyFwEWBiMhIiY3ATYTNDIUIhMUDwEnJjU0PgEWAgIxIP7MICpCAnFBLCL+zSEvaj8BND9nff2Pe2tAATU+J4iIkgZHSQYuQiwCvTf9/zdQUDcCATdpa/3/abu5awIBa/10RYgBfA4Ps7MPDiAuAjIAAAAABAAA/6ECaAMbACYA5wD0AQEBeEAyurSyAxYOx6YCDRbWnAIMDXg+AgQDakkCFQRgVwIFFQkBBgUbEgIABwhHCAYFBAIFAURLsAxQWEBmEQEPEA4QDw5tEgEOFhAOFmsYEwINFgwMDWUaFwoDBAMVAwRlCQEFFQYVBQZtCAEGBxUGB2sCAQAHAQcAAW0AAQFuABAAFg0QFmAUAQwLAQMEDANhGQEVBQcVVBkBFRUHWAAHFQdMG0BoEQEPEA4QDw5tEgEOFhAOFmsYEwINFgwWDQxtGhcKAwQDFQMEFW0JAQUVBhUFBm0IAQYHFQYHawIBAAcBBwABbQABAW4AEAAWDRAWYBQBDAsBAwQMA2EZARUFBxVUGQEVFQdYAAcVB0xZQTQA9gD1AOkA6AD8APsA9QEBAPYBAQDvAO4A6AD0AOkA9ADnAOUA3QDbAM4AzADAAL4AtwC2AK8ArgCjAKIAmACXAJEAjwCKAIcAfwB9AHEAbwAmABkAGwAbABsALQAlACUALwAbAAUAHSslMxcPAScHLwE3Fh8BFhcWMzI3FxYXFjMyNzY/ARYzMjc2PwE2NxYTFhUUBwYnIzEXFhceAQYHBgcGIyInJi8BFxYHBgcGIyIvARUWFxYHBgcGIyInJi8BFRYHBiInJjc1BwYjIiYnJjc2PwEHBgcGIyInJicmNzY/AQcGBwYjIicmNzQ3Nj8BMSMGJyY0NzYXMycmJyY3NjMyFxYfAScmNjc2MzIfAScmJyY3Njc2MhcWHwE1JjYyFgcVNzY3NjMyFxYXFgcGBxU3Njc2MzIXFhcWBwYPAjc2NzYzMhcWFxYHBg8BMzYFMj4BNC4BIg4BFB4BNyIuATQ+ATIeARQOAQHwA3V9TmhoVHl3AQgBCh0SExYLBAoGFRoYFgcJAg8UEBQbDAMHAgJnCAgFTgkRHA0XAgMEBw0KCgQeGAcECDoEBA0SEwYtDAsIDwUKEA0MCA0IDQgCCwooCwsCAiEQCh4KBg4JCgMFAw4mBRISDgMCGxIPBAUGGR0DGw8IAxgNHBEHTwYICAZOCwtJAQMIDhwDHRkGBQk4Bg4REwg0BQMKCQ4GCBENFxMMCAECFSkVAgUOCA4JDgsSCAUPCAsCCBYaBRQRDAUDEwoXCwIEBxgeBAsJDQcJBAFICw1N/uI0WTQ0WWlaNTVaNSlGKChGUkQnJ0Tn3wtcpKReCeEJDQEODwcHAwkDDAwDCQMHBw0QBQsHAgEnCxQRDQwCBwsGDA0PCxIJBxENBQIINQsODRMyDQQVFiUGDgUGGA0dEAhOBQkJBU4LBVALDgYlFxQEAgIRKhMPDAgdFA0CAgQOESIUDQYMBgsHAgwJLAgKAgQcDQ0SIREOBAIJNRgQEDsEBRUWJQgJCAUkGBYDDE4ODk4JDB0PGgUHCgglFBcFBAsWGhAODgcUDBQLBAIFDREGCBMTDA0cBALrNVlpWjQ0WmlZNS0oRVFFKChFUUUoAAAAAgAA//kDoAMLAC0AQgBOQEs7AQQGJQEFBAJHAAcBAgEHAm0ABgIEAgYEbQAEBQIEBWsABQMCBQNrAAEAAgYBAmAAAwAAA1QAAwMAWAAAAwBMFBcVJzU5NTMIBRwrARUUBiMhIiY1ETQ2NyEyFx4BDwEGIycmIyEiBgcRFBYXITI2PQE0PwE2MzIXFhMBBiIvASY0PwE2Mh8BATYyHwEWFAMSXkP+MENeXkMB0CMeCQMHGwYHBQ0M/jAlNAE2JAHQJTQFJAYHAwQLgf45DSQO8A4OPQ4kDpMBaQ0kDj4NAUuxQ15eQwHQQl4BDgQTBhwFAQM0Jf4wJTQBNiSNCAUjBgIEAQX+Og4O8A0kDj4NDZMBaQ0NPQ4kAAL///9bA+oDUgAfAEEALUAqBAECAAFHMQEBRAACAAEAAgFtAAEBbgMBAAAMAEkBACEgFBMAHwEfBAUUKwEiBwYHMTY3NhcWFxYXFgYHBhceATc+ATc2JicuAScmASIHBgcGBwYWFxYXFhcWNzY3MQYHBicmJyYnJjY3NiYnJgHyV1FURFZsamdqT0IhIQYlDhoQMxEDCgIjASUmkF5b/gUYDwQEBgEkAiQmSFt7d3l9YVZsamdrT0IhIAUlCAYOEgNSHR45RRUUHiBPQlZTs1EpGxABEQMPBlrDWV2QJiX+7hAEBggGWsNZXUhbJCIYGVFFFRQeIE9CVlOzURUhDhIAAAAAAgAA//kDEwMLAA8AHwArQCgAAwQBAAEDAGAAAQICAVQAAQECWAACAQJMAgAeGxYTCgcADwIPBQUUKwEhIgYHERQWFyEyNjURNCYXERQGIyEiJjURNDY3ITIWAnH+MCU0ATYkAdAlNDR8XkP+MENeXkMB0EJgAsM0Jf4wJTQBNiQB0CU0Wf4wQ15eQwHQQl4BYAAAAAIAAP98A6EDCwAIAC0AL0AsGhkPDgQCRAABAAIAAQJtAAICbgADAAADVAADAwBYAAADAEwrKiYlExIEBRYrATQmIgYUFjI2NxQGBwYPAQYPAQYiLwEmPwEnBwYjIi8BJj8BNj8BNjc+ATMyFgMkICwgICwgfVZiLUALAQjWBAwGJAcDL5yaAgQHBSQKB30GCdM2LGm+kgcMAlgWICAsICC3i8plLDbTCQZ9AgUkBwqbnC8BBSQLC9YIAQtALWhQDAAAAAABAAAAAQAAJV8AH18PPPUACwPoAAAAANgYQ2IAAAAA2BhDYv/j/1sEHgNSAAAACAACAAAAAAAAAAEAAANS/2oAAAQC/+P/5AQeAAEAAAAAAAAAAAAAAAAAAAAHA+gAAAQC/+MCaAAAA6AAAAPp//8DEQAAA6AAAAAAAAAAcAKeAyoDrAP2BFcAAQAAAAcBAgAEAAAAAAACADYARgBzAAAA4gtwAAAAAAAAABIA3gABAAAAAAAAADUAAAABAAAAAAABAAgANQABAAAAAAACAAcAPQABAAAAAAADAAgARAABAAAAAAAEAAgATAABAAAAAAAFAAsAVAABAAAAAAAGAAgAXwABAAAAAAAKACsAZwABAAAAAAALABMAkgADAAEECQAAAGoApQADAAEECQABABABDwADAAEECQACAA4BHwADAAEECQADABABLQADAAEECQAEABABPQADAAEECQAFABYBTQADAAEECQAGABABYwADAAEECQAKAFYBcwADAAEECQALACYByUNvcHlyaWdodCAoQykgMjAxOCBieSBvcmlnaW5hbCBhdXRob3JzIEAgZm9udGVsbG8uY29tZm9udGVsbG9SZWd1bGFyZm9udGVsbG9mb250ZWxsb1ZlcnNpb24gMS4wZm9udGVsbG9HZW5lcmF0ZWQgYnkgc3ZnMnR0ZiBmcm9tIEZvbnRlbGxvIHByb2plY3QuaHR0cDovL2ZvbnRlbGxvLmNvbQBDAG8AcAB5AHIAaQBnAGgAdAAgACgAQwApACAAMgAwADEAOAAgAGIAeQAgAG8AcgBpAGcAaQBuAGEAbAAgAGEAdQB0AGgAbwByAHMAIABAACAAZgBvAG4AdABlAGwAbABvAC4AYwBvAG0AZgBvAG4AdABlAGwAbABvAFIAZQBnAHUAbABhAHIAZgBvAG4AdABlAGwAbABvAGYAbwBuAHQAZQBsAGwAbwBWAGUAcgBzAGkAbwBuACAAMQAuADAAZgBvAG4AdABlAGwAbABvAEcAZQBuAGUAcgBhAHQAZQBkACAAYgB5ACAAcwB2AGcAMgB0AHQAZgAgAGYAcgBvAG0AIABGAG8AbgB0AGUAbABsAG8AIABwAHIAbwBqAGUAYwB0AC4AaAB0AHQAcAA6AC8ALwBmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQAAAAACAAAAAAAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcBAgEDAQQBBQEGAQcBCAAHd2FybmluZwtyZWNvbW1lbmRlZAVjaGVjawdzcGlubmVyC2NoZWNrLWVtcHR5BmxhdW5jaAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAABgAGAAYABgDUv9bA1L/W7AALCCwAFVYRVkgIEu4AA5RS7AGU1pYsDQbsChZYGYgilVYsAIlYbkIAAgAY2MjYhshIbAAWbAAQyNEsgABAENgQi2wASywIGBmLbACLCBkILDAULAEJlqyKAEKQ0VjRVJbWCEjIRuKWCCwUFBYIbBAWRsgsDhQWCGwOFlZILEBCkNFY0VhZLAoUFghsQEKQ0VjRSCwMFBYIbAwWRsgsMBQWCBmIIqKYSCwClBYYBsgsCBQWCGwCmAbILA2UFghsDZgG2BZWVkbsAErWVkjsABQWGVZWS2wAywgRSCwBCVhZCCwBUNQWLAFI0KwBiNCGyEhWbABYC2wBCwjISMhIGSxBWJCILAGI0KxAQpDRWOxAQpDsAFgRWOwAyohILAGQyCKIIqwASuxMAUlsAQmUVhgUBthUllYI1khILBAU1iwASsbIbBAWSOwAFBYZVktsAUssAdDK7IAAgBDYEItsAYssAcjQiMgsAAjQmGwAmJmsAFjsAFgsAUqLbAHLCAgRSCwC0NjuAQAYiCwAFBYsEBgWWawAWNgRLABYC2wCCyyBwsAQ0VCKiGyAAEAQ2BCLbAJLLAAQyNEsgABAENgQi2wCiwgIEUgsAErI7AAQ7AEJWAgRYojYSBkILAgUFghsAAbsDBQWLAgG7BAWVkjsABQWGVZsAMlI2FERLABYC2wCywgIEUgsAErI7AAQ7AEJWAgRYojYSBksCRQWLAAG7BAWSOwAFBYZVmwAyUjYUREsAFgLbAMLCCwACNCsgsKA0VYIRsjIVkqIS2wDSyxAgJFsGRhRC2wDiywAWAgILAMQ0qwAFBYILAMI0JZsA1DSrAAUlggsA0jQlktsA8sILAQYmawAWMguAQAY4ojYbAOQ2AgimAgsA4jQiMtsBAsS1RYsQRkRFkksA1lI3gtsBEsS1FYS1NYsQRkRFkbIVkksBNlI3gtsBIssQAPQ1VYsQ8PQ7ABYUKwDytZsABDsAIlQrEMAiVCsQ0CJUKwARYjILADJVBYsQEAQ2CwBCVCioogiiNhsA4qISOwAWEgiiNhsA4qIRuxAQBDYLACJUKwAiVhsA4qIVmwDENHsA1DR2CwAmIgsABQWLBAYFlmsAFjILALQ2O4BABiILAAUFiwQGBZZrABY2CxAAATI0SwAUOwAD6yAQEBQ2BCLbATLACxAAJFVFiwDyNCIEWwCyNCsAojsAFgQiBgsAFhtRAQAQAOAEJCimCxEgYrsHIrGyJZLbAULLEAEystsBUssQETKy2wFiyxAhMrLbAXLLEDEystsBgssQQTKy2wGSyxBRMrLbAaLLEGEystsBsssQcTKy2wHCyxCBMrLbAdLLEJEystsB4sALANK7EAAkVUWLAPI0IgRbALI0KwCiOwAWBCIGCwAWG1EBABAA4AQkKKYLESBiuwcisbIlktsB8ssQAeKy2wICyxAR4rLbAhLLECHistsCIssQMeKy2wIyyxBB4rLbAkLLEFHistsCUssQYeKy2wJiyxBx4rLbAnLLEIHistsCgssQkeKy2wKSwgPLABYC2wKiwgYLAQYCBDI7ABYEOwAiVhsAFgsCkqIS2wKyywKiuwKiotsCwsICBHICCwC0NjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsAtDY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wLSwAsQACRVRYsAEWsCwqsAEVMBsiWS2wLiwAsA0rsQACRVRYsAEWsCwqsAEVMBsiWS2wLywgNbABYC2wMCwAsAFFY7gEAGIgsABQWLBAYFlmsAFjsAErsAtDY7gEAGIgsABQWLBAYFlmsAFjsAErsAAWtAAAAAAARD4jOLEvARUqLbAxLCA8IEcgsAtDY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbAyLC4XPC2wMywgPCBHILALQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDQssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrIzAQEVFCotsDUssAAWsAQlsAQlRyNHI2GwCUMrZYouIyAgPIo4LbA2LLAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjILAIQyCKI0cjRyNhI0ZgsARDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwAkNgZCOwA0NhZFBYsAJDYRuwA0NgWbADJbACYiCwAFBYsEBgWWawAWNhIyAgsAQmI0ZhOBsjsAhDRrACJbAIQ0cjRyNhYCCwBEOwAmIgsABQWLBAYFlmsAFjYCMgsAErI7AEQ2CwASuwBSVhsAUlsAJiILAAUFiwQGBZZrABY7AEJmEgsAQlYGQjsAMlYGRQWCEbIyFZIyAgsAQmI0ZhOFktsDcssAAWICAgsAUmIC5HI0cjYSM8OC2wOCywABYgsAgjQiAgIEYjR7ABKyNhOC2wOSywABawAyWwAiVHI0cjYbAAVFguIDwjIRuwAiWwAiVHI0cjYSCwBSWwBCVHI0cjYbAGJbAFJUmwAiVhuQgACABjYyMgWGIbIVljuAQAYiCwAFBYsEBgWWawAWNgIy4jICA8ijgjIVktsDossAAWILAIQyAuRyNHI2EgYLAgYGawAmIgsABQWLBAYFlmsAFjIyAgPIo4LbA7LCMgLkawAiVGUlggPFkusSsBFCstsDwsIyAuRrACJUZQWCA8WS6xKwEUKy2wPSwjIC5GsAIlRlJYIDxZIyAuRrACJUZQWCA8WS6xKwEUKy2wPiywNSsjIC5GsAIlRlJYIDxZLrErARQrLbA/LLA2K4ogIDywBCNCijgjIC5GsAIlRlJYIDxZLrErARQrsARDLrArKy2wQCywABawBCWwBCYgLkcjRyNhsAlDKyMgPCAuIzixKwEUKy2wQSyxCAQlQrAAFrAEJbAEJSAuRyNHI2EgsAQjQrAJQysgsGBQWCCwQFFYswIgAyAbswImAxpZQkIjIEewBEOwAmIgsABQWLBAYFlmsAFjYCCwASsgiophILACQ2BkI7ADQ2FkUFiwAkNhG7ADQ2BZsAMlsAJiILAAUFiwQGBZZrABY2GwAiVGYTgjIDwjOBshICBGI0ewASsjYTghWbErARQrLbBCLLA1Ky6xKwEUKy2wQyywNishIyAgPLAEI0IjOLErARQrsARDLrArKy2wRCywABUgR7AAI0KyAAEBFRQTLrAxKi2wRSywABUgR7AAI0KyAAEBFRQTLrAxKi2wRiyxAAEUE7AyKi2wRyywNCotsEgssAAWRSMgLiBGiiNhOLErARQrLbBJLLAII0KwSCstsEossgAAQSstsEsssgABQSstsEwssgEAQSstsE0ssgEBQSstsE4ssgAAQistsE8ssgABQistsFAssgEAQistsFEssgEBQistsFIssgAAPistsFMssgABPistsFQssgEAPistsFUssgEBPistsFYssgAAQCstsFcssgABQCstsFgssgEAQCstsFkssgEBQCstsFossgAAQystsFsssgABQystsFwssgEAQystsF0ssgEBQystsF4ssgAAPystsF8ssgABPystsGAssgEAPystsGEssgEBPystsGIssDcrLrErARQrLbBjLLA3K7A7Ky2wZCywNyuwPCstsGUssAAWsDcrsD0rLbBmLLA4Ky6xKwEUKy2wZyywOCuwOystsGgssDgrsDwrLbBpLLA4K7A9Ky2waiywOSsusSsBFCstsGsssDkrsDsrLbBsLLA5K7A8Ky2wbSywOSuwPSstsG4ssDorLrErARQrLbBvLLA6K7A7Ky2wcCywOiuwPCstsHEssDorsD0rLbByLLMJBAIDRVghGyMhWUIrsAhlsAMkUHiwARUwLQBLuADIUlixAQGOWbABuQgACABjcLEABUKyAAEAKrEABUKzCgIBCCqxAAVCsw4AAQgqsQAGQroCwAABAAkqsQAHQroAQAABAAkqsQMARLEkAYhRWLBAiFixA2REsSYBiFFYugiAAAEEQIhjVFixAwBEWVlZWbMMAgEMKrgB/4WwBI2xAgBEAAA=") format("truetype"); diff --git a/client/public/loader.html b/client/public/loader.html index ae11287b..476aebc9 100644 --- a/client/public/loader.html +++ b/client/public/loader.html @@ -1,65 +1,71 @@ <style> - #cachedjs-root { - display: none; - } + #cachedjs-root { + display: none; + } </style> - <h1 class="caption"> - Choose a version of the Ratel interface - </h1> - <div class="cards"> +<h1 class="caption">Choose a version of the Ratel interface</h1> +<div class="cards"> <div class="card"> - <div class="card-body"> - <h5 class="card-title">Dev</h5> - <h6 class="card-subtitle mb-2 text-muted"> - <i class="icon-warning"></i> Bleeding Edge. Unstable - </h6> + <div class="card-body"> + <h5 class="card-title">Dev</h5> + <h6 class="card-subtitle mb-2 text-muted"> + <i class="icon-warning"></i> Bleeding Edge. Unstable + </h6> - <p class="card-text"> - Includes latest unreleased improvements, features, experiments, sometimes bugs. Feedback is welcome in - <a href='https://discuss.dgraph.io' target=_blank>Discuss</a> - </p> - <a href='/?dev' class='card-link'> - <i class='icon-launch'></i> Launch Dev - </a> - </div> + <p class="card-text"> + Includes latest unreleased improvements, features, experiments, + sometimes bugs. Feedback is welcome in + <a href="https://discuss.dgraph.io" target="_blank">Discuss</a> + </p> + <a href="/?dev" class="card-link"> + <i class="icon-launch"></i> Launch Dev + </a> + </div> </div> - <div class='card recommended'> - <div class='card-body'> - <h5 class='card-title'><i class='icon-recommended'></i> Latest</h5> - <h6 class='card-subtitle mb-2 text-muted'> - Official Stable Release - </h6> + <div class="card recommended"> + <div class="card-body"> + <h5 class="card-title"><i class="icon-recommended"></i> Latest</h5> + <h6 class="card-subtitle mb-2 text-muted"> + Official Stable Release + </h6> - <p class='card-text'>Approved for everyday use. This version is updated more often than the Dgraph server (usually once a week or faster). It contains finalized features, bugfixes, improvements, etc.</p> - <a href='/?latest' class='card-link'> - <i class='icon-launch'></i> Launch Latest - </a> - </div> + <p class="card-text"> + Approved for everyday use. This version is updated more often + than the Dgraph server (usually once a week or faster). It + contains finalized features, bugfixes, improvements, etc. + </p> + <a href="/?latest" class="card-link"> + <i class="icon-launch"></i> Launch Latest + </a> + </div> </div> + <div class="card"> + <div class="card-body"> + <h5 class="card-title">Local Bundle</h5> + <h6 class="card-subtitle mb-2 text-muted"> + Works Offline. Never auto-updates + </h6> - <div class='card'> - <div class='card-body'> - <h5 class='card-title'>Local Bundle</h5> - <h6 class='card-subtitle mb-2 text-muted'> - Works Offline. Never auto-updates - </h6> - - <p class='card-text'>This version of the UI was compiled into your Ratel binary. It doesn't require internet connection to run, but will never get updated unless you install a new version of Ratel.</p> - <a href='/?local' class='card-link'> - <i class='icon-launch'></i> Launch Offline - </a> - </div> + <p class="card-text"> + This version of the UI was compiled into your Ratel binary. It + doesn't require internet connection to run, but will never get + updated unless you install a new version of Ratel. + </p> + <a href="/?local" class="card-link"> + <i class="icon-launch"></i> Launch Offline + </a> + </div> </div> </div> -<div class='form-check'> - <input type='checkbox' value='' id='cookieCheckbox'> - <label for='cookieCheckbox'> - Always launch <em>Latest</em> and never ask again - </label> +<div class="form-check"> + <input type="checkbox" value="" id="cookieCheckbox" /> + <label for="cookieCheckbox"> + Always launch <em>Latest</em> and never ask again + </label> </div> -<link href='https://fonts.googleapis.com/css?family=Raleway' rel='stylesheet'> +<link href="https://fonts.googleapis.com/css?family=Raleway" rel="stylesheet" /> diff --git a/client/scripts/build.js b/client/scripts/build.js index b17df421..1dd6ee7e 100644 --- a/client/scripts/build.js +++ b/client/scripts/build.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // Do this as the first thing so that any code reading it knows the right env. process.env.BABEL_ENV = "production"; diff --git a/client/scripts/start.js b/client/scripts/start.js index fab28692..6c29a43f 100644 --- a/client/scripts/start.js +++ b/client/scripts/start.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // Do this as the first thing so that any code reading it knows the right env. process.env.BABEL_ENV = "development"; diff --git a/client/scripts/test.js b/client/scripts/test.js index 208e147c..f2436480 100644 --- a/client/scripts/test.js +++ b/client/scripts/test.js @@ -1,65 +1,54 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // Do this as the first thing so that any code reading it knows the right env. -process.env.BABEL_ENV = 'test'; -process.env.NODE_ENV = 'test'; -process.env.PUBLIC_URL = ''; +process.env.BABEL_ENV = "test"; +process.env.NODE_ENV = "test"; +process.env.PUBLIC_URL = ""; // Makes the script crash on unhandled rejections instead of silently // ignoring them. In the future, promise rejections that are not handled will // terminate the Node.js process with a non-zero exit code. -process.on('unhandledRejection', err => { - throw err; +process.on("unhandledRejection", err => { + throw err; }); // Ensure environment variables are read. -require('../config/env'); +require("../config/env"); - -const jest = require('jest'); -const execSync = require('child_process').execSync; +const jest = require("jest"); +const execSync = require("child_process").execSync; let argv = process.argv.slice(2); function isInGitRepository() { - try { - execSync('git rev-parse --is-inside-work-tree', { stdio: 'ignore' }); - return true; - } catch (e) { - return false; - } + try { + execSync("git rev-parse --is-inside-work-tree", { stdio: "ignore" }); + return true; + } catch (e) { + return false; + } } function isInMercurialRepository() { - try { - execSync('hg --cwd . root', { stdio: 'ignore' }); - return true; - } catch (e) { - return false; - } + try { + execSync("hg --cwd . root", { stdio: "ignore" }); + return true; + } catch (e) { + return false; + } } // Watch unless on CI or explicitly running all tests if ( - !process.env.CI && - argv.indexOf('--watchAll') === -1 && - argv.indexOf('--watchAll=false') === -1 + !process.env.CI && + argv.indexOf("--watchAll") === -1 && + argv.indexOf("--watchAll=false") === -1 ) { - // https://github.com/facebook/create-react-app/issues/5210 - const hasSourceControl = isInGitRepository() || isInMercurialRepository(); - argv.push(hasSourceControl ? '--watch' : '--watchAll'); + // https://github.com/facebook/create-react-app/issues/5210 + const hasSourceControl = isInGitRepository() || isInMercurialRepository(); + argv.push(hasSourceControl ? "--watch" : "--watchAll"); } - jest.run(argv); diff --git a/client/src/actions/backup.js b/client/src/actions/backup.js index 6a142467..bc190efb 100644 --- a/client/src/actions/backup.js +++ b/client/src/actions/backup.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { callStartBackup } from "components/Backups/backupModel"; diff --git a/client/src/actions/cluster.js b/client/src/actions/cluster.js index 614ad55c..4dc670da 100644 --- a/client/src/actions/cluster.js +++ b/client/src/actions/cluster.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { getDgraphClientStub } from "lib/helpers"; diff --git a/client/src/actions/connection.js b/client/src/actions/connection.js index 4b1ea142..e0357954 100644 --- a/client/src/actions/connection.js +++ b/client/src/actions/connection.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import * as helpers from "lib/helpers"; import { clickSidebarUrl } from "../actions/ui"; @@ -197,33 +188,34 @@ export const checkAclState = async (dispatch, getState) => { } }; -export const checkHealth = ({ - openUrlOnError = false, - unknownOnStart = true, -} = {}) => async (dispatch, getState) => { - checkNetworkHealth(dispatch, getState); - checkAclState(dispatch, getState); +export const checkHealth = + ({ openUrlOnError = false, unknownOnStart = true } = {}) => + async (dispatch, getState) => { + checkNetworkHealth(dispatch, getState); + checkAclState(dispatch, getState); - const url = getState().connection.serverHistory[0].url; - unknownOnStart && dispatch(serverHealth(url, Unknown)); - try { - helpers.setCurrentServerUrl(url); - const stub = await helpers.getDgraphClientStub(); - const health = await stub.getHealth(); - dispatch(serverHealth(url, OK)); - dispatch(serverVersion(url, health?.[0]?.version || health.version)); - if (health === "OK") { - // Overwrite the version we've just dispatched. - dispatch(serverVersion(url, "1.0.15-???")); - } - } catch (err) { - console.error("GetHealth error", err); - dispatch(serverHealth(url, FetchError)); - if (openUrlOnError) { - dispatch(clickSidebarUrl("connection")); + const url = getState().connection.serverHistory[0].url; + unknownOnStart && dispatch(serverHealth(url, Unknown)); + try { + helpers.setCurrentServerUrl(url); + const stub = await helpers.getDgraphClientStub(); + const health = await stub.getHealth(); + dispatch(serverHealth(url, OK)); + dispatch( + serverVersion(url, health?.[0]?.version || health.version), + ); + if (health === "OK") { + // Overwrite the version we've just dispatched. + dispatch(serverVersion(url, "1.0.15-???")); + } + } catch (err) { + console.error("GetHealth error", err); + dispatch(serverHealth(url, FetchError)); + if (openUrlOnError) { + dispatch(clickSidebarUrl("connection")); + } } - } -}; + }; export const serverAclState = (url, aclState) => ({ type: UPDATE_ACL_STATE, @@ -271,37 +263,36 @@ const loginError = (url, error) => ({ url, }); -export const loginUser = (userid, password, namespace, refreshToken) => async ( - dispatch, - getState, -) => { - const url = getState().connection.serverHistory[0].url; +export const loginUser = + (userid, password, namespace, refreshToken) => + async (dispatch, getState) => { + const url = getState().connection.serverHistory[0].url; - const currentServer = getState().connection.serverHistory[0]; + const currentServer = getState().connection.serverHistory[0]; - dispatch(loginPending(url)); + dispatch(loginPending(url)); - // Issue loginTimeout in case something went wrong with network or server. - setTimeout(() => dispatch(loginTimeout(url)), 30 * 1000); + // Issue loginTimeout in case something went wrong with network or server. + setTimeout(() => dispatch(loginTimeout(url)), 30 * 1000); - await new Promise(resolve => setTimeout(resolve, 500)); - try { - const stub = await helpers.getDgraphClientStub(); - currentServer.isMultiTenancyEnabled - ? await stub.loginIntoNamespace( - userid, - password, - namespace, - refreshToken, - ) - : await stub.login(userid, password, refreshToken); - stub.setAutoRefresh(true); - dispatch(loginSuccess(url, stub.getAuthTokens())); - } catch (err) { - console.error("Login Failed", url, err); - dispatch(loginError(url, err)); - } -}; + await new Promise(resolve => setTimeout(resolve, 500)); + try { + const stub = await helpers.getDgraphClientStub(); + currentServer.isMultiTenancyEnabled + ? await stub.loginIntoNamespace( + userid, + password, + namespace, + refreshToken, + ) + : await stub.login(userid, password, refreshToken); + stub.setAutoRefresh(true); + dispatch(loginSuccess(url, stub.getAuthTokens())); + } catch (err) { + console.error("Login Failed", url, err); + dispatch(loginError(url, err)); + } + }; export const logoutUser = () => async (dispatch, getState) => { try { diff --git a/client/src/actions/frames.js b/client/src/actions/frames.js index c1bf963f..eabdbb52 100644 --- a/client/src/actions/frames.js +++ b/client/src/actions/frames.js @@ -1,16 +1,7 @@ -// Copyright 2017-2019 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import uuid from "uuid"; diff --git a/client/src/actions/migration.js b/client/src/actions/migration.js index bd7cf880..b2a51a95 100644 --- a/client/src/actions/migration.js +++ b/client/src/actions/migration.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ export const MIGRATE_TO_SERVER_CONNECTION = "migration/MIGRATE_TO_SERVER_CONNECTION"; diff --git a/client/src/actions/query.js b/client/src/actions/query.js index f060b51d..e8bf79ef 100644 --- a/client/src/actions/query.js +++ b/client/src/actions/query.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ export const UPDATE_QUERY = "query/UPDATE_QUERY"; export const UPDATE_ACTION = "query/UPDATE_ACTION"; diff --git a/client/src/actions/ui.js b/client/src/actions/ui.js index 71ae13c4..75fca901 100644 --- a/client/src/actions/ui.js +++ b/client/src/actions/ui.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ export const SET_PANEL_SIZE = "ui/SET_PANEL_SIZE"; export const SET_PANEL_MINIMIZED = "ui/SET_PANEL_MINIMIZED"; diff --git a/client/src/assets/css/Editor.scss b/client/src/assets/css/Editor.scss index 9e627f3e..a4dc177a 100644 --- a/client/src/assets/css/Editor.scss +++ b/client/src/assets/css/Editor.scss @@ -458,7 +458,10 @@ span.CodeMirror-selectedtext { .CodeMirror-foldmarker { color: blue; - text-shadow: #b9f 1px 1px 2px, #b9f -1px -1px 2px, #b9f 1px -1px 2px, + text-shadow: + #b9f 1px 1px 2px, + #b9f -1px -1px 2px, + #b9f 1px -1px 2px, #b9f -1px 1px 2px; font-family: arial; line-height: 0.3; diff --git a/client/src/assets/css/Sidebar.scss b/client/src/assets/css/Sidebar.scss index 164876b0..64b6b83d 100644 --- a/client/src/assets/css/Sidebar.scss +++ b/client/src/assets/css/Sidebar.scss @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .sidebar-container { flex: 0; diff --git a/client/src/assets/images/dgraph.png b/client/src/assets/images/dgraph.png index 79c64873..51a0493f 100644 Binary files a/client/src/assets/images/dgraph.png and b/client/src/assets/images/dgraph.png differ diff --git a/client/src/assets/images/graph.png b/client/src/assets/images/graph.png index a451d922..10ff0e1c 100644 Binary files a/client/src/assets/images/graph.png and b/client/src/assets/images/graph.png differ diff --git a/client/src/assets/images/graph.svg b/client/src/assets/images/graph.svg index 6776ebf6..2131a195 100644 --- a/client/src/assets/images/graph.svg +++ b/client/src/assets/images/graph.svg @@ -1,57 +1 @@ -<?xml version="1.0" encoding="iso-8859-1"?> -<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="47px" height="47px" viewBox="0 0 47 47" style="enable-background:new 0 0 47 47;" xml:space="preserve"> -<g> - <g id="Layer_1_110_"> - <g> - <path d="M17.567,15.938l-2.859-2.702c0.333-0.605,0.539-1.29,0.539-2.029c0-2.342-1.897-4.239-4.24-4.239 - c-2.343,0-4.243,1.896-4.243,4.239c0,2.343,1.9,4.241,4.243,4.241c0.826,0,1.59-0.246,2.242-0.654l2.855,2.699 - C16.536,16.922,17.023,16.399,17.567,15.938z"/> - <path d="M29.66,15.6l3.799-6.393c0.374,0.107,0.762,0.184,1.169,0.184c2.347,0,4.244-1.898,4.244-4.241 - c0-2.342-1.897-4.239-4.244-4.239c-2.343,0-4.239,1.896-4.239,4.239c0,1.163,0.469,2.214,1.227,2.981l-3.787,6.375 - C28.48,14.801,29.094,15.169,29.66,15.6z"/> - <path d="M42.762,20.952c-1.824,0-3.369,1.159-3.968,2.775l-5.278-0.521c0,0.04,0.006,0.078,0.006,0.117 - c0,0.688-0.076,1.36-0.213,2.009l5.276,0.521c0.319,2.024,2.062,3.576,4.177,3.576c2.342,0,4.238-1.896,4.238-4.238 - C47,22.85,45.104,20.952,42.762,20.952z"/> - <path d="M28.197,37.624l-1.18-5.156c-0.666,0.232-1.359,0.398-2.082,0.481l1.182,5.157c-1.355,0.709-2.29,2.11-2.29,3.746 - c0,2.342,1.896,4.237,4.243,4.237c2.342,0,4.238-1.896,4.238-4.237C32.311,39.553,30.479,37.692,28.197,37.624z"/> - <path d="M14.357,25.37l-6.57,2.201c-0.758-1.158-2.063-1.926-3.548-1.926C1.896,25.645,0,27.542,0,29.884 - c0,2.345,1.896,4.242,4.239,4.242c2.341,0,4.242-1.897,4.242-4.242c0-0.098-0.021-0.188-0.029-0.284l6.591-2.207 - C14.746,26.752,14.51,26.077,14.357,25.37z"/> - <circle cx="23.83" cy="23.323" r="7.271"/> - </g> - </g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -<g> -</g> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="47" height="47" viewBox="0 0 47 47"><path d="m17.567 15.938-2.859-2.702a4.2 4.2 0 0 0 .539-2.029 4.24 4.24 0 0 0-4.24-4.239 4.24 4.24 0 1 0 0 8.48 4.2 4.2 0 0 0 2.242-.654l2.855 2.699a9.7 9.7 0 0 1 1.463-1.555M29.66 15.6l3.799-6.393c.374.107.762.184 1.169.184a4.24 4.24 0 1 0 0-8.48 4.237 4.237 0 0 0-3.012 7.22l-3.787 6.375A9.5 9.5 0 0 1 29.66 15.6m13.102 5.352a4.24 4.24 0 0 0-3.968 2.775l-5.278-.521c0 .04.006.078.006.117a9.7 9.7 0 0 1-.213 2.009l5.276.521A4.232 4.232 0 0 0 47 25.191a4.24 4.24 0 0 0-4.238-4.239M28.197 37.624l-1.18-5.156a9.7 9.7 0 0 1-2.082.481l1.182 5.157c-1.355.709-2.29 2.11-2.29 3.746a4.236 4.236 0 0 0 4.243 4.237 4.236 4.236 0 0 0 4.238-4.237 4.23 4.23 0 0 0-4.111-4.228M14.357 25.37l-6.57 2.201A4.236 4.236 0 0 0 0 29.884a4.242 4.242 0 1 0 8.481 0c0-.098-.021-.188-.029-.284l6.591-2.207a9.7 9.7 0 0 1-.686-2.023"/><circle cx="23.83" cy="23.323" r="7.271"/></svg> \ No newline at end of file diff --git a/client/src/assets/images/hourglass.svg b/client/src/assets/images/hourglass.svg index 1aa67a8b..a1bf2c44 100644 --- a/client/src/assets/images/hourglass.svg +++ b/client/src/assets/images/hourglass.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="utf-8"?><svg width='120px' height='120px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-hourglass"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><g><path fill="none" stroke="#007282" stroke-width="5" stroke-miterlimit="10" d="M58.4,51.7c-0.9-0.9-1.4-2-1.4-2.3s0.5-0.4,1.4-1.4 C70.8,43.8,79.8,30.5,80,15.5H70H30H20c0.2,15,9.2,28.1,21.6,32.3c0.9,0.9,1.4,1.2,1.4,1.5s-0.5,1.6-1.4,2.5 C29.2,56.1,20.2,69.5,20,85.5h10h40h10C79.8,69.5,70.8,55.9,58.4,51.7z" class="glass"></path><clipPath id="uil-hourglass-clip1"><rect x="15" y="20" width="70" height="25" class="clip"><animate attributeName="height" from="25" to="0" dur="1s" repeatCount="indefinite" vlaues="25;0;0" keyTimes="0;0.5;1"></animate><animate attributeName="y" from="20" to="45" dur="1s" repeatCount="indefinite" vlaues="20;45;45" keyTimes="0;0.5;1"></animate></rect></clipPath><clipPath id="uil-hourglass-clip2"><rect x="15" y="55" width="70" height="25" class="clip"><animate attributeName="height" from="0" to="25" dur="1s" repeatCount="indefinite" vlaues="0;25;25" keyTimes="0;0.5;1"></animate><animate attributeName="y" from="80" to="55" dur="1s" repeatCount="indefinite" vlaues="80;55;55" keyTimes="0;0.5;1"></animate></rect></clipPath><path d="M29,23c3.1,11.4,11.3,19.5,21,19.5S67.9,34.4,71,23H29z" clip-path="url(#uil-hourglass-clip1)" fill="#ffab00" class="sand"></path><path d="M71.6,78c-3-11.6-11.5-20-21.5-20s-18.5,8.4-21.5,20H71.6z" clip-path="url(#uil-hourglass-clip2)" fill="#ffab00" class="sand"></path><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="180 50 50" repeatCount="indefinite" dur="1s" values="0 50 50;0 50 50;180 50 50" keyTimes="0;0.7;1"></animateTransform></g></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" width="120" height="120" class="uil-hourglass" preserveAspectRatio="xMidYMid" viewBox="0 0 100 100"><path fill="none" d="M0 0h100v100H0z" class="bk"/><g><path fill="none" stroke="#007282" stroke-miterlimit="10" stroke-width="5" d="M58.4 51.7c-.9-.9-1.4-2-1.4-2.3s.5-.4 1.4-1.4C70.8 43.8 79.8 30.5 80 15.5H20c.2 15 9.2 28.1 21.6 32.3.9.9 1.4 1.2 1.4 1.5s-.5 1.6-1.4 2.5C29.2 56.1 20.2 69.5 20 85.5h60c-.2-16-9.2-29.6-21.6-33.8z" class="glass"/><clipPath id="a"><path d="M15 20h70v25H15z" class="clip"><animate attributeName="height" dur="1s" from="25" keyTimes="0;0.5;1" repeatCount="indefinite" to="0"/><animate attributeName="y" dur="1s" from="20" keyTimes="0;0.5;1" repeatCount="indefinite" to="45"/></path></clipPath><clipPath id="b"><path d="M15 55h70v25H15z" class="clip"><animate attributeName="height" dur="1s" from="0" keyTimes="0;0.5;1" repeatCount="indefinite" to="25"/><animate attributeName="y" dur="1s" from="80" keyTimes="0;0.5;1" repeatCount="indefinite" to="55"/></path></clipPath><path fill="#ffab00" d="M29 23c3.1 11.4 11.3 19.5 21 19.5S67.9 34.4 71 23z" class="sand" clip-path="url(#a)"/><path fill="#ffab00" d="M71.6 78c-3-11.6-11.5-20-21.5-20s-18.5 8.4-21.5 20z" class="sand" clip-path="url(#b)"/><animateTransform attributeName="transform" dur="1s" from="0 50 50" keyTimes="0;0.7;1" repeatCount="indefinite" to="180 50 50" type="rotate" values="0 50 50;0 50 50;180 50 50"/></g></svg> \ No newline at end of file diff --git a/client/src/assets/images/load.svg b/client/src/assets/images/load.svg index 5bf67c2b..a08ef639 100644 --- a/client/src/assets/images/load.svg +++ b/client/src/assets/images/load.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="utf-8"?><svg width='192px' height='192px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-ring"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><defs><filter id="uil-ring-shadow" x="-100%" y="-100%" width="300%" height="300%"><feOffset result="offOut" in="SourceGraphic" dx="0" dy="0"></feOffset><feGaussianBlur result="blurOut" in="offOut" stdDeviation="0"></feGaussianBlur><feBlend in="SourceGraphic" in2="blurOut" mode="normal"></feBlend></filter></defs><path d="M10,50c0,0,0,0.5,0.1,1.4c0,0.5,0.1,1,0.2,1.7c0,0.3,0.1,0.7,0.1,1.1c0.1,0.4,0.1,0.8,0.2,1.2c0.2,0.8,0.3,1.8,0.5,2.8 c0.3,1,0.6,2.1,0.9,3.2c0.3,1.1,0.9,2.3,1.4,3.5c0.5,1.2,1.2,2.4,1.8,3.7c0.3,0.6,0.8,1.2,1.2,1.9c0.4,0.6,0.8,1.3,1.3,1.9 c1,1.2,1.9,2.6,3.1,3.7c2.2,2.5,5,4.7,7.9,6.7c3,2,6.5,3.4,10.1,4.6c3.6,1.1,7.5,1.5,11.2,1.6c4-0.1,7.7-0.6,11.3-1.6 c3.6-1.2,7-2.6,10-4.6c3-2,5.8-4.2,7.9-6.7c1.2-1.2,2.1-2.5,3.1-3.7c0.5-0.6,0.9-1.3,1.3-1.9c0.4-0.6,0.8-1.3,1.2-1.9 c0.6-1.3,1.3-2.5,1.8-3.7c0.5-1.2,1-2.4,1.4-3.5c0.3-1.1,0.6-2.2,0.9-3.2c0.2-1,0.4-1.9,0.5-2.8c0.1-0.4,0.1-0.8,0.2-1.2 c0-0.4,0.1-0.7,0.1-1.1c0.1-0.7,0.1-1.2,0.2-1.7C90,50.5,90,50,90,50s0,0.5,0,1.4c0,0.5,0,1,0,1.7c0,0.3,0,0.7,0,1.1 c0,0.4-0.1,0.8-0.1,1.2c-0.1,0.9-0.2,1.8-0.4,2.8c-0.2,1-0.5,2.1-0.7,3.3c-0.3,1.2-0.8,2.4-1.2,3.7c-0.2,0.7-0.5,1.3-0.8,1.9 c-0.3,0.7-0.6,1.3-0.9,2c-0.3,0.7-0.7,1.3-1.1,2c-0.4,0.7-0.7,1.4-1.2,2c-1,1.3-1.9,2.7-3.1,4c-2.2,2.7-5,5-8.1,7.1 c-0.8,0.5-1.6,1-2.4,1.5c-0.8,0.5-1.7,0.9-2.6,1.3L66,87.7l-1.4,0.5c-0.9,0.3-1.8,0.7-2.8,1c-3.8,1.1-7.9,1.7-11.8,1.8L47,90.8 c-1,0-2-0.2-3-0.3l-1.5-0.2l-0.7-0.1L41.1,90c-1-0.3-1.9-0.5-2.9-0.7c-0.9-0.3-1.9-0.7-2.8-1L34,87.7l-1.3-0.6 c-0.9-0.4-1.8-0.8-2.6-1.3c-0.8-0.5-1.6-1-2.4-1.5c-3.1-2.1-5.9-4.5-8.1-7.1c-1.2-1.2-2.1-2.7-3.1-4c-0.5-0.6-0.8-1.4-1.2-2 c-0.4-0.7-0.8-1.3-1.1-2c-0.3-0.7-0.6-1.3-0.9-2c-0.3-0.7-0.6-1.3-0.8-1.9c-0.4-1.3-0.9-2.5-1.2-3.7c-0.3-1.2-0.5-2.3-0.7-3.3 c-0.2-1-0.3-2-0.4-2.8c-0.1-0.4-0.1-0.8-0.1-1.2c0-0.4,0-0.7,0-1.1c0-0.7,0-1.2,0-1.7C10,50.5,10,50,10,50z" fill="rgba(100%,88.39899425287356%,77.6903735632184%,0.91)" filter="url(#uil-ring-shadow)"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" repeatCount="indefinite" dur="1s"></animateTransform></path></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" class="uil-ring" preserveAspectRatio="xMidYMid" viewBox="0 0 100 100"><path fill="none" d="M0 0h100v100H0z" class="bk"/><defs><filter id="a" width="300%" height="300%" x="-100%" y="-100%"><feOffset in="SourceGraphic" result="offOut"/><feGaussianBlur in="offOut" result="blurOut"/><feBlend in="SourceGraphic" in2="blurOut"/></filter></defs><path fill="rgba(100%,88.39899425287356%,77.6903735632184%,0.91)" d="M10 50s0 .5.1 1.4c0 .5.1 1 .2 1.7 0 .3.1.7.1 1.1.1.4.1.8.2 1.2.2.8.3 1.8.5 2.8.3 1 .6 2.1.9 3.2s.9 2.3 1.4 3.5 1.2 2.4 1.8 3.7c.3.6.8 1.2 1.2 1.9.4.6.8 1.3 1.3 1.9 1 1.2 1.9 2.6 3.1 3.7 2.2 2.5 5 4.7 7.9 6.7 3 2 6.5 3.4 10.1 4.6 3.6 1.1 7.5 1.5 11.2 1.6 4-.1 7.7-.6 11.3-1.6 3.6-1.2 7-2.6 10-4.6s5.8-4.2 7.9-6.7c1.2-1.2 2.1-2.5 3.1-3.7.5-.6.9-1.3 1.3-1.9s.8-1.3 1.2-1.9c.6-1.3 1.3-2.5 1.8-3.7s1-2.4 1.4-3.5c.3-1.1.6-2.2.9-3.2.2-1 .4-1.9.5-2.8.1-.4.1-.8.2-1.2 0-.4.1-.7.1-1.1.1-.7.1-1.2.2-1.7.1-.9.1-1.4.1-1.4v4.2c0 .4-.1.8-.1 1.2-.1.9-.2 1.8-.4 2.8s-.5 2.1-.7 3.3c-.3 1.2-.8 2.4-1.2 3.7-.2.7-.5 1.3-.8 1.9-.3.7-.6 1.3-.9 2s-.7 1.3-1.1 2-.7 1.4-1.2 2c-1 1.3-1.9 2.7-3.1 4-2.2 2.7-5 5-8.1 7.1L70 85.7c-.8.5-1.7.9-2.6 1.3l-1.4.7-1.4.5c-.9.3-1.8.7-2.8 1C58 90.3 53.9 90.9 50 91l-3-.2c-1 0-2-.2-3-.3l-1.5-.2-.7-.1-.7-.2c-1-.3-1.9-.5-2.9-.7-.9-.3-1.9-.7-2.8-1l-1.4-.6-1.3-.6c-.9-.4-1.8-.8-2.6-1.3l-2.4-1.5c-3.1-2.1-5.9-4.5-8.1-7.1-1.2-1.2-2.1-2.7-3.1-4-.5-.6-.8-1.4-1.2-2-.4-.7-.8-1.3-1.1-2s-.6-1.3-.9-2-.6-1.3-.8-1.9c-.4-1.3-.9-2.5-1.2-3.7s-.5-2.3-.7-3.3-.3-2-.4-2.8c-.1-.4-.1-.8-.1-1.2v-2.8c-.1-1-.1-1.5-.1-1.5" filter="url(#a)"><animateTransform attributeName="transform" dur="1s" from="0 50 50" repeatCount="indefinite" to="360 50 50" type="rotate"/></path></svg> \ No newline at end of file diff --git a/client/src/assets/images/loader.svg b/client/src/assets/images/loader.svg index 4cd62697..0203579f 100644 --- a/client/src/assets/images/loader.svg +++ b/client/src/assets/images/loader.svg @@ -1 +1 @@ -<?xml version="1.0" encoding="utf-8"?><svg width='64px' height='64px' xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" preserveAspectRatio="xMidYMid" class="uil-ring"><rect x="0" y="0" width="100" height="100" fill="none" class="bk"></rect><defs><filter id="uil-ring-shadow" x="-100%" y="-100%" width="300%" height="300%"><feOffset result="offOut" in="SourceGraphic" dx="0" dy="0"></feOffset><feGaussianBlur result="blurOut" in="offOut" stdDeviation="0"></feGaussianBlur><feBlend in="SourceGraphic" in2="blurOut" mode="normal"></feBlend></filter></defs><path d="M10,50c0,0,0,0.5,0.1,1.4c0,0.5,0.1,1,0.2,1.7c0,0.3,0.1,0.7,0.1,1.1c0.1,0.4,0.1,0.8,0.2,1.2c0.2,0.8,0.3,1.8,0.5,2.8 c0.3,1,0.6,2.1,0.9,3.2c0.3,1.1,0.9,2.3,1.4,3.5c0.5,1.2,1.2,2.4,1.8,3.7c0.3,0.6,0.8,1.2,1.2,1.9c0.4,0.6,0.8,1.3,1.3,1.9 c1,1.2,1.9,2.6,3.1,3.7c2.2,2.5,5,4.7,7.9,6.7c3,2,6.5,3.4,10.1,4.6c3.6,1.1,7.5,1.5,11.2,1.6c4-0.1,7.7-0.6,11.3-1.6 c3.6-1.2,7-2.6,10-4.6c3-2,5.8-4.2,7.9-6.7c1.2-1.2,2.1-2.5,3.1-3.7c0.5-0.6,0.9-1.3,1.3-1.9c0.4-0.6,0.8-1.3,1.2-1.9 c0.6-1.3,1.3-2.5,1.8-3.7c0.5-1.2,1-2.4,1.4-3.5c0.3-1.1,0.6-2.2,0.9-3.2c0.2-1,0.4-1.9,0.5-2.8c0.1-0.4,0.1-0.8,0.2-1.2 c0-0.4,0.1-0.7,0.1-1.1c0.1-0.7,0.1-1.2,0.2-1.7C90,50.5,90,50,90,50s0,0.5,0,1.4c0,0.5,0,1,0,1.7c0,0.3,0,0.7,0,1.1 c0,0.4-0.1,0.8-0.1,1.2c-0.1,0.9-0.2,1.8-0.4,2.8c-0.2,1-0.5,2.1-0.7,3.3c-0.3,1.2-0.8,2.4-1.2,3.7c-0.2,0.7-0.5,1.3-0.8,1.9 c-0.3,0.7-0.6,1.3-0.9,2c-0.3,0.7-0.7,1.3-1.1,2c-0.4,0.7-0.7,1.4-1.2,2c-1,1.3-1.9,2.7-3.1,4c-2.2,2.7-5,5-8.1,7.1 c-0.8,0.5-1.6,1-2.4,1.5c-0.8,0.5-1.7,0.9-2.6,1.3L66,87.7l-1.4,0.5c-0.9,0.3-1.8,0.7-2.8,1c-3.8,1.1-7.9,1.7-11.8,1.8L47,90.8 c-1,0-2-0.2-3-0.3l-1.5-0.2l-0.7-0.1L41.1,90c-1-0.3-1.9-0.5-2.9-0.7c-0.9-0.3-1.9-0.7-2.8-1L34,87.7l-1.3-0.6 c-0.9-0.4-1.8-0.8-2.6-1.3c-0.8-0.5-1.6-1-2.4-1.5c-3.1-2.1-5.9-4.5-8.1-7.1c-1.2-1.2-2.1-2.7-3.1-4c-0.5-0.6-0.8-1.4-1.2-2 c-0.4-0.7-0.8-1.3-1.1-2c-0.3-0.7-0.6-1.3-0.9-2c-0.3-0.7-0.6-1.3-0.8-1.9c-0.4-1.3-0.9-2.5-1.2-3.7c-0.3-1.2-0.5-2.3-0.7-3.3 c-0.2-1-0.3-2-0.4-2.8c-0.1-0.4-0.1-0.8-0.1-1.2c0-0.4,0-0.7,0-1.1c0-0.7,0-1.2,0-1.7C10,50.5,10,50,10,50z" fill="#636363" filter="url(#uil-ring-shadow)"><animateTransform attributeName="transform" type="rotate" from="0 50 50" to="360 50 50" repeatCount="indefinite" dur="1s"></animateTransform></path></svg> \ No newline at end of file +<svg xmlns="http://www.w3.org/2000/svg" width="64" height="64" class="uil-ring" preserveAspectRatio="xMidYMid" viewBox="0 0 100 100"><path fill="none" d="M0 0h100v100H0z" class="bk"/><defs><filter id="a" width="300%" height="300%" x="-100%" y="-100%"><feOffset in="SourceGraphic" result="offOut"/><feGaussianBlur in="offOut" result="blurOut"/><feBlend in="SourceGraphic" in2="blurOut"/></filter></defs><path fill="#636363" d="M10 50s0 .5.1 1.4c0 .5.1 1 .2 1.7 0 .3.1.7.1 1.1.1.4.1.8.2 1.2.2.8.3 1.8.5 2.8.3 1 .6 2.1.9 3.2s.9 2.3 1.4 3.5 1.2 2.4 1.8 3.7c.3.6.8 1.2 1.2 1.9.4.6.8 1.3 1.3 1.9 1 1.2 1.9 2.6 3.1 3.7 2.2 2.5 5 4.7 7.9 6.7 3 2 6.5 3.4 10.1 4.6 3.6 1.1 7.5 1.5 11.2 1.6 4-.1 7.7-.6 11.3-1.6 3.6-1.2 7-2.6 10-4.6s5.8-4.2 7.9-6.7c1.2-1.2 2.1-2.5 3.1-3.7.5-.6.9-1.3 1.3-1.9s.8-1.3 1.2-1.9c.6-1.3 1.3-2.5 1.8-3.7s1-2.4 1.4-3.5c.3-1.1.6-2.2.9-3.2.2-1 .4-1.9.5-2.8.1-.4.1-.8.2-1.2 0-.4.1-.7.1-1.1.1-.7.1-1.2.2-1.7.1-.9.1-1.4.1-1.4v4.2c0 .4-.1.8-.1 1.2-.1.9-.2 1.8-.4 2.8s-.5 2.1-.7 3.3c-.3 1.2-.8 2.4-1.2 3.7-.2.7-.5 1.3-.8 1.9-.3.7-.6 1.3-.9 2s-.7 1.3-1.1 2-.7 1.4-1.2 2c-1 1.3-1.9 2.7-3.1 4-2.2 2.7-5 5-8.1 7.1L70 85.7c-.8.5-1.7.9-2.6 1.3l-1.4.7-1.4.5c-.9.3-1.8.7-2.8 1C58 90.3 53.9 90.9 50 91l-3-.2c-1 0-2-.2-3-.3l-1.5-.2-.7-.1-.7-.2c-1-.3-1.9-.5-2.9-.7-.9-.3-1.9-.7-2.8-1l-1.4-.6-1.3-.6c-.9-.4-1.8-.8-2.6-1.3l-2.4-1.5c-3.1-2.1-5.9-4.5-8.1-7.1-1.2-1.2-2.1-2.7-3.1-4-.5-.6-.8-1.4-1.2-2-.4-.7-.8-1.3-1.1-2s-.6-1.3-.9-2-.6-1.3-.8-1.9c-.4-1.3-.9-2.5-1.2-3.7s-.5-2.3-.7-3.3-.3-2-.4-2.8c-.1-.4-.1-.8-.1-1.2v-2.8c-.1-1-.1-1.5-.1-1.5" filter="url(#a)"><animateTransform attributeName="transform" dur="1s" from="0 50 50" repeatCount="indefinite" to="360 50 50" type="rotate"/></path></svg> \ No newline at end of file diff --git a/client/src/assets/images/logo.svg b/client/src/assets/images/logo.svg index dd07c8ec..74b95e83 100644 --- a/client/src/assets/images/logo.svg +++ b/client/src/assets/images/logo.svg @@ -1,21 +1 @@ -<?xml version="1.0" encoding="utf-8"?> -<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" - width="70px" height="70px" viewBox="0 0 232.525 70" enable-background="new 0 0 232.525 70" xml:space="preserve"> -<g> - <radialGradient id="SVGID_1_" cx="29.4316" cy="35" r="32.3361" gradientUnits="userSpaceOnUse"> - <stop offset="0" style="stop-color:#F8861F"/> - <stop offset="1" style="stop-color:#FF1800"/> - </radialGradient> - <path fill="url(#SVGID_1_)" d="M47.532,12.603c0.665-1.213,1.044-2.605,1.044-4.084C48.577,3.822,44.755,0,40.059,0 - c-3.993,0-7.353,2.761-8.271,6.474C31.01,6.412,30.224,6.38,29.432,6.38C13.177,6.38,0,19.557,0,35.812 - c0,7.997,3.19,15.246,8.366,20.551c-1.075,1.426-1.713,3.199-1.713,5.118c0,4.698,3.822,8.52,8.521,8.52 - c3.61,0,6.704-2.259,7.941-5.438c2.035,0.445,4.149,0.683,6.317,0.683c16.255,0,29.432-13.179,29.432-29.433 - C58.864,26.382,54.429,17.99,47.532,12.603z M40.057,13.749c-0.456,0-0.899-0.059-1.321-0.168L35.21,23.839l5.162-0.843 - l-7.269,11.85l6.049-1.471L18.769,57.689c1.003,0.952,1.63,2.299,1.63,3.791c0,2.887-2.341,5.229-5.228,5.229 - c-2.888,0-5.23-2.343-5.23-5.229c0-2.888,2.342-5.229,5.23-5.229c0.666,0,1.302,0.126,1.888,0.354l5.774-12.595l-5.634,1.525 - l9.163-13.113l-5.632,1.362l15.968-21.259c-1.144-0.959-1.872-2.398-1.872-4.008c0-2.887,2.342-5.229,5.23-5.229 - c2.886,0,5.228,2.342,5.228,5.229C45.285,11.407,42.943,13.749,40.057,13.749z"/> -</g> -</svg> +<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="70" height="70" viewBox="0 0 232.525 70"><radialGradient id="a" cx="29.432" cy="35" r="32.336" gradientUnits="userSpaceOnUse"><stop offset="0" style="stop-color:#f8861f"/><stop offset="1" style="stop-color:#ff1800"/></radialGradient><path fill="url(#a)" d="M47.532 12.603a8.5 8.5 0 0 0 1.044-4.084C48.577 3.822 44.755 0 40.059 0c-3.993 0-7.353 2.761-8.271 6.474a30 30 0 0 0-2.356-.094C13.177 6.38 0 19.557 0 35.812c0 7.997 3.19 15.246 8.366 20.551a8.48 8.48 0 0 0-1.713 5.118c0 4.698 3.822 8.52 8.521 8.52 3.61 0 6.704-2.259 7.941-5.438 2.035.445 4.149.683 6.317.683 16.255 0 29.432-13.179 29.432-29.433 0-9.431-4.435-17.823-11.332-23.21m-7.475 1.146c-.456 0-.899-.059-1.321-.168L35.21 23.839l5.162-.843-7.269 11.85 6.049-1.471-20.383 24.314a5.23 5.23 0 1 1-1.71-1.084l5.774-12.595-5.634 1.525 9.163-13.113-5.632 1.362 15.968-21.259a5.23 5.23 0 0 1 3.358-9.237 5.23 5.23 0 0 1 5.228 5.229 5.23 5.23 0 0 1-5.227 5.232"/></svg> \ No newline at end of file diff --git a/client/src/assets/images/tree.png b/client/src/assets/images/tree.png index ebdbb96f..92d103d2 100644 Binary files a/client/src/assets/images/tree.png and b/client/src/assets/images/tree.png differ diff --git a/client/src/components/ACL/AclPage.js b/client/src/components/ACL/AclPage.js index d4d0c071..0c9463dd 100644 --- a/client/src/components/ACL/AclPage.js +++ b/client/src/components/ACL/AclPage.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect, useState } from "react"; diff --git a/client/src/components/ACL/AclPage.scss b/client/src/components/ACL/AclPage.scss index 8e2bee1b..ff80f5a6 100644 --- a/client/src/components/ACL/AclPage.scss +++ b/client/src/components/ACL/AclPage.scss @@ -1,10 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Dgraph Community License (the "License"); you -// may not use this file except in compliance with the License. You -// may obtain a copy of the License at -// -// https://github.com/dgraph-io/ratel/blob/master/LICENSE +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .main-content.acl .acl-view { display: flex; diff --git a/client/src/components/ACL/CreateGroupModal.js b/client/src/components/ACL/CreateGroupModal.js index 3b2b82f5..56ef2b3d 100644 --- a/client/src/components/ACL/CreateGroupModal.js +++ b/client/src/components/ACL/CreateGroupModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/ACL/EditUserModal.js b/client/src/components/ACL/EditUserModal.js index 9885fcc8..b3ae8029 100644 --- a/client/src/components/ACL/EditUserModal.js +++ b/client/src/components/ACL/EditUserModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/ACL/GqlDataAdapter.js b/client/src/components/ACL/GqlDataAdapter.js index 186c40b9..d062f36c 100644 --- a/client/src/components/ACL/GqlDataAdapter.js +++ b/client/src/components/ACL/GqlDataAdapter.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { executeAdminGql, executeQuery } from "lib/helpers"; diff --git a/client/src/components/ACL/GroupDetailsPane.js b/client/src/components/ACL/GroupDetailsPane.js index 8d010d0a..ea00c15d 100644 --- a/client/src/components/ACL/GroupDetailsPane.js +++ b/client/src/components/ACL/GroupDetailsPane.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; @@ -147,9 +138,8 @@ export default class GroupDetailsPane extends React.Component { // Toggle all visible predicates const toggleAll = () => { const predicates = getPredicateNames(); - const allPredicatesSelected = getAllPredicatesSelected( - predicates, - ); + const allPredicatesSelected = + getAllPredicatesSelected(predicates); predicates.forEach(p => { const { selected } = this.getPredicateACLStatus(p, mask); diff --git a/client/src/components/ACL/JsonDataAdapter.js b/client/src/components/ACL/JsonDataAdapter.js index c10721b9..94f90a69 100644 --- a/client/src/components/ACL/JsonDataAdapter.js +++ b/client/src/components/ACL/JsonDataAdapter.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { executeQuery } from "lib/helpers"; @@ -106,8 +97,8 @@ export default function JsonDataAdapter( const resp = await sendMutation(`{ set { <${group.uid}> <dgraph.group.acl> ${JSON.stringify( - JSON.stringify(acl), - )} . + JSON.stringify(acl), + )} . } }`); if (resp?.data?.code !== "Success") { diff --git a/client/src/components/ACL/UserDetailsPane.js b/client/src/components/ACL/UserDetailsPane.js index 93d43acc..3750d47f 100644 --- a/client/src/components/ACL/UserDetailsPane.js +++ b/client/src/components/ACL/UserDetailsPane.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/AutosizeGrid.js b/client/src/components/AutosizeGrid.js index ae20f9ef..82e15b8c 100644 --- a/client/src/components/AutosizeGrid.js +++ b/client/src/components/AutosizeGrid.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import ReactDataGrid from "react-data-grid"; diff --git a/client/src/components/Backups/ConfirmBackupModal.js b/client/src/components/Backups/ConfirmBackupModal.js index 86ec74cd..9a37af55 100644 --- a/client/src/components/Backups/ConfirmBackupModal.js +++ b/client/src/components/Backups/ConfirmBackupModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/Backups/RadioSelect.js b/client/src/components/Backups/RadioSelect.js index 26adca72..dbb9514c 100644 --- a/client/src/components/Backups/RadioSelect.js +++ b/client/src/components/Backups/RadioSelect.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Col from "react-bootstrap/Col"; diff --git a/client/src/components/Backups/StartBackupModal.js b/client/src/components/Backups/StartBackupModal.js index a31fc0fc..82817c5d 100644 --- a/client/src/components/Backups/StartBackupModal.js +++ b/client/src/components/Backups/StartBackupModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/Backups/backupModel.js b/client/src/components/Backups/backupModel.js index a3a16290..1aef3bf0 100644 --- a/client/src/components/Backups/backupModel.js +++ b/client/src/components/Backups/backupModel.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { executeAdminGql } from "lib/helpers"; diff --git a/client/src/components/Backups/index.js b/client/src/components/Backups/index.js index 0fdec103..7607c6f8 100644 --- a/client/src/components/Backups/index.js +++ b/client/src/components/Backups/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Badge from "react-bootstrap/Badge"; diff --git a/client/src/components/Backups/index.scss b/client/src/components/Backups/index.scss index 1da35bbe..663aaf77 100644 --- a/client/src/components/Backups/index.scss +++ b/client/src/components/Backups/index.scss @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .backups { .backups-view { diff --git a/client/src/components/Cluster/ClusterPage.js b/client/src/components/Cluster/ClusterPage.js index 63fa660e..8c8aa344 100644 --- a/client/src/components/Cluster/ClusterPage.js +++ b/client/src/components/Cluster/ClusterPage.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect, useState } from "react"; import Card from "react-bootstrap/Card"; diff --git a/client/src/components/Cluster/ClusterPage.scss b/client/src/components/Cluster/ClusterPage.scss index 60b2080e..5afad118 100644 --- a/client/src/components/Cluster/ClusterPage.scss +++ b/client/src/components/Cluster/ClusterPage.scss @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .main-content.cluster { overflow-y: auto; diff --git a/client/src/components/Cluster/MoveTabletModal.js b/client/src/components/Cluster/MoveTabletModal.js index 4205ad4b..b1c3d780 100644 --- a/client/src/components/Cluster/MoveTabletModal.js +++ b/client/src/components/Cluster/MoveTabletModal.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; @@ -22,7 +13,6 @@ import { humanizeBytes, sanitizeUrl } from "lib/helpers"; import { updateZeroUrl } from "actions/connection"; import { getSpace } from "lib/utils"; - export default function MoveTabletModal({ fromGroup, tablet, groups, onHide }) { const currentServer = useSelector( state => state.connection.serverHistory[0], diff --git a/client/src/components/Cluster/RemoveNodeModal.js b/client/src/components/Cluster/RemoveNodeModal.js index 072ff1e6..e43a48f6 100644 --- a/client/src/components/Cluster/RemoveNodeModal.js +++ b/client/src/components/Cluster/RemoveNodeModal.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect, useState } from "react"; import { useDispatch, useSelector } from "react-redux"; diff --git a/client/src/components/ConsolePage/GeoView.js b/client/src/components/ConsolePage/GeoView.js index 2b646326..1ac5b3d0 100644 --- a/client/src/components/ConsolePage/GeoView.js +++ b/client/src/components/ConsolePage/GeoView.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import { useSelector } from "react-redux"; diff --git a/client/src/components/ConsolePage/GeoView.scss b/client/src/components/ConsolePage/GeoView.scss index b4116ab6..98f31fce 100644 --- a/client/src/components/ConsolePage/GeoView.scss +++ b/client/src/components/ConsolePage/GeoView.scss @@ -1,10 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Dgraph Community License (the "License"); you -// may not use this file except in compliance with the License. You -// may obtain a copy of the License at -// -// https://github.com/dgraph-io/ratel/blob/master/LICENSE +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ @import url("https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"); diff --git a/client/src/components/D3Graph/D3Graph.scss b/client/src/components/D3Graph/D3Graph.scss index 80abfe8c..190a7ced 100644 --- a/client/src/components/D3Graph/D3Graph.scss +++ b/client/src/components/D3Graph/D3Graph.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .graph-outer { position: relative; width: 100%; diff --git a/client/src/components/D3Graph/index.js b/client/src/components/D3Graph/index.js index 26b890ba..1e3b541e 100644 --- a/client/src/components/D3Graph/index.js +++ b/client/src/components/D3Graph/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import * as d3 from "d3"; diff --git a/client/src/components/DataExplorer/PathDisplay.js b/client/src/components/DataExplorer/PathDisplay.js index 4e9c53b0..458a4f68 100644 --- a/client/src/components/DataExplorer/PathDisplay.js +++ b/client/src/components/DataExplorer/PathDisplay.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/DataExplorer/index.js b/client/src/components/DataExplorer/index.js index d5bebec5..dfbc5e20 100644 --- a/client/src/components/DataExplorer/index.js +++ b/client/src/components/DataExplorer/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import ReactDataGrid from "react-data-grid"; diff --git a/client/src/components/DataExplorer/index.scss b/client/src/components/DataExplorer/index.scss index f013e42e..bf55d586 100644 --- a/client/src/components/DataExplorer/index.scss +++ b/client/src/components/DataExplorer/index.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .main-content.dataexplorer { background-color: transparent; diff --git a/client/src/components/EdgeProperties.js b/client/src/components/EdgeProperties.js index 91c7c4bc..861699d9 100644 --- a/client/src/components/EdgeProperties.js +++ b/client/src/components/EdgeProperties.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/EditorPanel.js b/client/src/components/EditorPanel.js index 074313eb..5dabe3b9 100644 --- a/client/src/components/EditorPanel.js +++ b/client/src/components/EditorPanel.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import { useDispatch, useSelector } from "react-redux"; diff --git a/client/src/components/EntitySelector.js b/client/src/components/EntitySelector.js index 6361ffd2..2f0c37c1 100644 --- a/client/src/components/EntitySelector.js +++ b/client/src/components/EntitySelector.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/FrameCodeTab.js b/client/src/components/FrameCodeTab.js index deba7b50..9b26f7cf 100644 --- a/client/src/components/FrameCodeTab.js +++ b/client/src/components/FrameCodeTab.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Clipboard from "react-clipboard.js"; @@ -89,8 +80,8 @@ export default class FrameCodeTab extends React.Component { {copyState === STATE_IDLE ? "Copy Text to Clipboard" : copyState === STATE_SUCCESS - ? "Copied!" - : "Error Occured!"} + ? "Copied!" + : "Error Occured!"} </span> </Clipboard> diff --git a/client/src/components/FrameItem.js b/client/src/components/FrameItem.js index 9f5f467a..b9be6090 100644 --- a/client/src/components/FrameItem.js +++ b/client/src/components/FrameItem.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; diff --git a/client/src/components/FrameLayout/FrameBodyToolbar.js b/client/src/components/FrameLayout/FrameBodyToolbar.js index eb1fabe8..e8f4f3b2 100644 --- a/client/src/components/FrameLayout/FrameBodyToolbar.js +++ b/client/src/components/FrameLayout/FrameBodyToolbar.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Tab from "react-bootstrap/Tab"; diff --git a/client/src/components/FrameLayout/FrameErrorMessage.js b/client/src/components/FrameLayout/FrameErrorMessage.js index 4414403c..b9d0f964 100644 --- a/client/src/components/FrameLayout/FrameErrorMessage.js +++ b/client/src/components/FrameLayout/FrameErrorMessage.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/FrameLayout/FrameHeader.js b/client/src/components/FrameLayout/FrameHeader.js index 398e912a..f2a0cb68 100644 --- a/client/src/components/FrameLayout/FrameHeader.js +++ b/client/src/components/FrameLayout/FrameHeader.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; diff --git a/client/src/components/FrameLayout/FrameHeader.scss b/client/src/components/FrameLayout/FrameHeader.scss index 148bdc0c..2102c45d 100644 --- a/client/src/components/FrameLayout/FrameHeader.scss +++ b/client/src/components/FrameLayout/FrameHeader.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + @import "../../assets/css/bootstrap-colors.scss"; .frame-item.collapsed .frame-header.active { diff --git a/client/src/components/FrameLayout/FrameHistoric.js b/client/src/components/FrameLayout/FrameHistoric.js index be7547a2..9894a28d 100644 --- a/client/src/components/FrameLayout/FrameHistoric.js +++ b/client/src/components/FrameLayout/FrameHistoric.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/FrameLayout/FrameMessage.js b/client/src/components/FrameLayout/FrameMessage.js index e1665528..e12579a0 100644 --- a/client/src/components/FrameLayout/FrameMessage.js +++ b/client/src/components/FrameLayout/FrameMessage.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import FrameErrorMessage from "./FrameErrorMessage"; diff --git a/client/src/components/FrameLayout/FrameSession.js b/client/src/components/FrameLayout/FrameSession.js index b23bdbe9..8ddae9fa 100644 --- a/client/src/components/FrameLayout/FrameSession.js +++ b/client/src/components/FrameLayout/FrameSession.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import memoize from "memoize-one"; diff --git a/client/src/components/FrameLayout/QueryPreview.js b/client/src/components/FrameLayout/QueryPreview.js index a5f47474..c9361a92 100644 --- a/client/src/components/FrameLayout/QueryPreview.js +++ b/client/src/components/FrameLayout/QueryPreview.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/FrameLayout/SessionFooter.js b/client/src/components/FrameLayout/SessionFooter.js index 67b66854..42e52a8d 100644 --- a/client/src/components/FrameLayout/SessionFooter.js +++ b/client/src/components/FrameLayout/SessionFooter.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/FrameLayout/SessionFooterProperties.js b/client/src/components/FrameLayout/SessionFooterProperties.js index a1a52046..dc9e31c0 100644 --- a/client/src/components/FrameLayout/SessionFooterProperties.js +++ b/client/src/components/FrameLayout/SessionFooterProperties.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; diff --git a/client/src/components/FrameLayout/SessionFooterResult.js b/client/src/components/FrameLayout/SessionFooterResult.js index fdb3dbe8..d6e5c510 100644 --- a/client/src/components/FrameLayout/SessionFooterResult.js +++ b/client/src/components/FrameLayout/SessionFooterResult.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import pluralize from "pluralize"; diff --git a/client/src/components/FrameLayout/SharingSettings.js b/client/src/components/FrameLayout/SharingSettings.js index 42b8a056..f37284f2 100644 --- a/client/src/components/FrameLayout/SharingSettings.js +++ b/client/src/components/FrameLayout/SharingSettings.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useCallback, useEffect, useRef, useState } from "react"; import Form from "react-bootstrap/Form"; diff --git a/client/src/components/FrameLayout/SharingSettings.scss b/client/src/components/FrameLayout/SharingSettings.scss index 5591190e..5f765011 100644 --- a/client/src/components/FrameLayout/SharingSettings.scss +++ b/client/src/components/FrameLayout/SharingSettings.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .sharingSettings { background-color: #eee; margin: -8px 0; diff --git a/client/src/components/FrameList.js b/client/src/components/FrameList.js index a3b31aaa..92d02d8c 100644 --- a/client/src/components/FrameList.js +++ b/client/src/components/FrameList.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/FrameLoading.js b/client/src/components/FrameLoading.js index e011feee..1548132c 100644 --- a/client/src/components/FrameLoading.js +++ b/client/src/components/FrameLoading.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/GraphContainer.js b/client/src/components/GraphContainer.js index aa110d23..8c4758d8 100644 --- a/client/src/components/GraphContainer.js +++ b/client/src/components/GraphContainer.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; @@ -123,12 +114,12 @@ export default ({ panelContent ? null : remainingNodes > 0 - ? `Showing ${ - nodesDataset.size + remainingNodes - } nodes (${remainingNodes} hidden) and ${ - edgesDataset.size - } edges` - : `Showing ${nodesDataset.size} nodes and ${edgesDataset.size} edges` + ? `Showing ${ + nodesDataset.size + remainingNodes + } nodes (${remainingNodes} hidden) and ${ + edgesDataset.size + } edges` + : `Showing ${nodesDataset.size} nodes and ${edgesDataset.size} edges` } height={panelHeight} width={panelWidth} diff --git a/client/src/components/GraphIcon.js b/client/src/components/GraphIcon.js index 6bc1465b..73b0def6 100644 --- a/client/src/components/GraphIcon.js +++ b/client/src/components/GraphIcon.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/HealthDot/index.js b/client/src/components/HealthDot/index.js index ab169173..0c8c70b8 100644 --- a/client/src/components/HealthDot/index.js +++ b/client/src/components/HealthDot/index.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/HealthDot/index.scss b/client/src/components/HealthDot/index.scss index fc24b881..cec31ab9 100644 --- a/client/src/components/HealthDot/index.scss +++ b/client/src/components/HealthDot/index.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .health-dot { display: inline-block; font-size: 0.75em; @@ -11,7 +16,9 @@ i { color: var(--dark); opacity: 0; - transition: opacity 250ms, color 750ms; + transition: + opacity 250ms, + color 750ms; } i:nth-child(n + 2) { diff --git a/client/src/components/Label.js b/client/src/components/Label.js index 2fe81744..44905b72 100644 --- a/client/src/components/Label.js +++ b/client/src/components/Label.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/LicenseWarning/LicenseWarning.scss b/client/src/components/LicenseWarning/LicenseWarning.scss index 18d61c13..a7c5eb9e 100644 --- a/client/src/components/LicenseWarning/LicenseWarning.scss +++ b/client/src/components/LicenseWarning/LicenseWarning.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .license-warning { background-color: rgba(240, 185, 141, 0.9); border-radius: 4px; diff --git a/client/src/components/LicenseWarning/index.js b/client/src/components/LicenseWarning/index.js index cf7737df..54edada7 100644 --- a/client/src/components/LicenseWarning/index.js +++ b/client/src/components/LicenseWarning/index.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import { useDispatch, useSelector } from "react-redux"; diff --git a/client/src/components/MovablePanel.js b/client/src/components/MovablePanel.js index 8323b8b7..f88a7ee9 100644 --- a/client/src/components/MovablePanel.js +++ b/client/src/components/MovablePanel.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; @@ -44,8 +35,8 @@ export default function MovablePanel({ height = collapsed ? COLLAPSED_HEIGHT : minimized - ? COLLAPSED_HEIGHT - : Math.max(MIN_HEIGHT, height); + ? COLLAPSED_HEIGHT + : Math.max(MIN_HEIGHT, height); const getAndUpdateBoundSize = (width, height) => { const el = document.querySelector(boundingSelector); diff --git a/client/src/components/NodeProperties.js b/client/src/components/NodeProperties.js index 3caff0d3..20212767 100644 --- a/client/src/components/NodeProperties.js +++ b/client/src/components/NodeProperties.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/PanelLayout/HorizontalPanelLayout.js b/client/src/components/PanelLayout/HorizontalPanelLayout.js index 41aaac0e..da7779d0 100644 --- a/client/src/components/PanelLayout/HorizontalPanelLayout.js +++ b/client/src/components/PanelLayout/HorizontalPanelLayout.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/PanelLayout/PanelLayout.scss b/client/src/components/PanelLayout/PanelLayout.scss index 50ffc0ad..97e56346 100644 --- a/client/src/components/PanelLayout/PanelLayout.scss +++ b/client/src/components/PanelLayout/PanelLayout.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + $separator-fullwidth: 8px; $separator-margin: 4px; diff --git a/client/src/components/PanelLayout/VerticalPanelLayout.js b/client/src/components/PanelLayout/VerticalPanelLayout.js index 7a99ae55..9d2475cf 100644 --- a/client/src/components/PanelLayout/VerticalPanelLayout.js +++ b/client/src/components/PanelLayout/VerticalPanelLayout.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Draggable from "react-draggable"; diff --git a/client/src/components/PanelLayout/VerticalPanelLayout.scss b/client/src/components/PanelLayout/VerticalPanelLayout.scss index be44a9ab..8faaf28a 100644 --- a/client/src/components/PanelLayout/VerticalPanelLayout.scss +++ b/client/src/components/PanelLayout/VerticalPanelLayout.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + $separator-fullwidth: 8px; $separator-margin: 4px; diff --git a/client/src/components/PanelLayout/index.js b/client/src/components/PanelLayout/index.js index 272be7ac..91569b4f 100644 --- a/client/src/components/PanelLayout/index.js +++ b/client/src/components/PanelLayout/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; diff --git a/client/src/components/PartialRenderInfo.js b/client/src/components/PartialRenderInfo.js index 69ef4844..60266ca7 100644 --- a/client/src/components/PartialRenderInfo.js +++ b/client/src/components/PartialRenderInfo.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/PredicateSearchBar.js b/client/src/components/PredicateSearchBar.js index 2da20360..0e6a71aa 100644 --- a/client/src/components/PredicateSearchBar.js +++ b/client/src/components/PredicateSearchBar.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/Progress.js b/client/src/components/Progress.js index 47dd6eff..3ac0ff39 100644 --- a/client/src/components/Progress.js +++ b/client/src/components/Progress.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import ProgressBar from "react-bootstrap/ProgressBar"; diff --git a/client/src/components/Properties.js b/client/src/components/Properties.js index f22fbe49..c17db041 100644 --- a/client/src/components/Properties.js +++ b/client/src/components/Properties.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/QueryVarsEditor/index.js b/client/src/components/QueryVarsEditor/index.js index 711c1e7b..b5915296 100644 --- a/client/src/components/QueryVarsEditor/index.js +++ b/client/src/components/QueryVarsEditor/index.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import { useDispatch, useSelector } from "react-redux"; diff --git a/client/src/components/QueryVarsEditor/index.scss b/client/src/components/QueryVarsEditor/index.scss index 1820a109..32ab3d12 100644 --- a/client/src/components/QueryVarsEditor/index.scss +++ b/client/src/components/QueryVarsEditor/index.scss @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .query-vars-editor { background-color: #fff; diff --git a/client/src/components/QueryView/QueryView.scss b/client/src/components/QueryView/QueryView.scss index 667430a5..b9dbcc60 100644 --- a/client/src/components/QueryView/QueryView.scss +++ b/client/src/components/QueryView/QueryView.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .query-view { display: flex; flex: 1; diff --git a/client/src/components/QueryView/index.js b/client/src/components/QueryView/index.js index c7d816ad..85924929 100644 --- a/client/src/components/QueryView/index.js +++ b/client/src/components/QueryView/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import { useSelector } from "react-redux"; diff --git a/client/src/components/SantaHat.js b/client/src/components/SantaHat.js index 1c03b0c1..f37e64bc 100644 --- a/client/src/components/SantaHat.js +++ b/client/src/components/SantaHat.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // Public domain image from https://commons.wikimedia.org/wiki/File:Santa_hat.svg diff --git a/client/src/components/ServerConnectionModal.js b/client/src/components/ServerConnectionModal.js index e8f22905..dd1d3cda 100644 --- a/client/src/components/ServerConnectionModal.js +++ b/client/src/components/ServerConnectionModal.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect, useState } from "react"; @@ -185,8 +176,8 @@ export default function ServerConnectionModal() { !activeServer || !alreadyConnected ? "" : activeServer.health === OK - ? "ok" - : "error", + ? "ok" + : "error", content: ( <a className="wizard-link" @@ -204,8 +195,8 @@ export default function ServerConnectionModal() { !activeServer || !alreadyConnected ? "" : activeServer.health === OK - ? "ok" - : "warning", + ? "ok" + : "warning", content: <i className="fas fa-heartbeat" />, }, @@ -218,8 +209,8 @@ export default function ServerConnectionModal() { !activeServer || !alreadyConnected ? "" : activeServer.aclState === OK - ? "ok" - : "warning", + ? "ok" + : "warning", content: activeServer?.aclState === OK ? ( <i className="fas fa-unlock-alt" /> diff --git a/client/src/components/ServerConnectionModal.scss b/client/src/components/ServerConnectionModal.scss index ea21f921..cd7b2fbd 100644 --- a/client/src/components/ServerConnectionModal.scss +++ b/client/src/components/ServerConnectionModal.scss @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .modal.server-connection .modal-content { .modal-header { diff --git a/client/src/components/ServerLoginWidget.js b/client/src/components/ServerLoginWidget.js index a5c5fd2d..2b3fa1ed 100644 --- a/client/src/components/ServerLoginWidget.js +++ b/client/src/components/ServerLoginWidget.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import jwt from "jsonwebtoken"; diff --git a/client/src/components/SessionList.js b/client/src/components/SessionList.js index 3cda4be7..879a18ec 100644 --- a/client/src/components/SessionList.js +++ b/client/src/components/SessionList.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import TransitionGroup from "react-transition-group/TransitionGroup"; diff --git a/client/src/components/Sidebar.js b/client/src/components/Sidebar.js index 25e2d0b0..b4fbb7f3 100644 --- a/client/src/components/Sidebar.js +++ b/client/src/components/Sidebar.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useEffect } from "react"; import classnames from "classnames"; diff --git a/client/src/components/SidebarInfo.js b/client/src/components/SidebarInfo.js index e06d5ad9..df353b60 100644 --- a/client/src/components/SidebarInfo.js +++ b/client/src/components/SidebarInfo.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/TreeIcon.js b/client/src/components/TreeIcon.js index 81fc366d..514f39b9 100644 --- a/client/src/components/TreeIcon.js +++ b/client/src/components/TreeIcon.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/WizardSteps/index.js b/client/src/components/WizardSteps/index.js index 01c12197..4744e9a1 100644 --- a/client/src/components/WizardSteps/index.js +++ b/client/src/components/WizardSteps/index.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/WizardSteps/index.scss b/client/src/components/WizardSteps/index.scss index 495bdae3..adf023a7 100644 --- a/client/src/components/WizardSteps/index.scss +++ b/client/src/components/WizardSteps/index.scss @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ .wizard-steps { display: flex; diff --git a/client/src/components/ZeroUrlWidget.js b/client/src/components/ZeroUrlWidget.js index 871d4c6a..0e9815e8 100644 --- a/client/src/components/ZeroUrlWidget.js +++ b/client/src/components/ZeroUrlWidget.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Form from "react-bootstrap/Form"; diff --git a/client/src/components/schema/EditTypeModal.js b/client/src/components/schema/EditTypeModal.js index bd990567..695db673 100644 --- a/client/src/components/schema/EditTypeModal.js +++ b/client/src/components/schema/EditTypeModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Button from "react-bootstrap/Button"; @@ -174,8 +165,8 @@ export default function EditTypeModal({ {updating ? "Updating..." : isCreate - ? "Create Type" - : "Save"} + ? "Create Type" + : "Save"} </Button> </Modal.Footer> </Modal> diff --git a/client/src/components/schema/PredicatePropertiesPanel.js b/client/src/components/schema/PredicatePropertiesPanel.js index 52d04d5b..1d990528 100644 --- a/client/src/components/schema/PredicatePropertiesPanel.js +++ b/client/src/components/schema/PredicatePropertiesPanel.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/schema/PredicateTabs.js b/client/src/components/schema/PredicateTabs.js index c1ccb17d..b44c9b40 100644 --- a/client/src/components/schema/PredicateTabs.js +++ b/client/src/components/schema/PredicateTabs.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; diff --git a/client/src/components/schema/PredicatesTable.js b/client/src/components/schema/PredicatesTable.js index c688b060..84bb0d94 100644 --- a/client/src/components/schema/PredicatesTable.js +++ b/client/src/components/schema/PredicatesTable.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; diff --git a/client/src/components/schema/SampleDataPanel/SamplesTable.js b/client/src/components/schema/SampleDataPanel/SamplesTable.js index e4684961..7fe8104e 100644 --- a/client/src/components/schema/SampleDataPanel/SamplesTable.js +++ b/client/src/components/schema/SampleDataPanel/SamplesTable.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; @@ -163,7 +154,8 @@ export default class SamplesTable extends React.Component { > <td>{key}</td> <td> - {Object.keys(value).length > 0 || value instanceof Object + {Object.keys(value).length > 0 || + value instanceof Object ? JSON.stringify(value) : value}   diff --git a/client/src/components/schema/SampleDataPanel/SamplesTable.test.js b/client/src/components/schema/SampleDataPanel/SamplesTable.test.js index dac6b45e..14fca647 100644 --- a/client/src/components/schema/SampleDataPanel/SamplesTable.test.js +++ b/client/src/components/schema/SampleDataPanel/SamplesTable.test.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Enzyme from "enzyme"; @@ -33,7 +24,7 @@ test("SamplesTable shouldn't crash on scalars or nested objects", () => { ]; const wrapper = mount( <SamplesTable - executeQuery={async function() { + executeQuery={async function () { return { data: { samples, diff --git a/client/src/components/schema/SampleDataPanel/index.js b/client/src/components/schema/SampleDataPanel/index.js index 38342fed..effca9ba 100644 --- a/client/src/components/schema/SampleDataPanel/index.js +++ b/client/src/components/schema/SampleDataPanel/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/schema/SampleDataPanel/index.scss b/client/src/components/schema/SampleDataPanel/index.scss index 7839ffd1..4ef25d1d 100644 --- a/client/src/components/schema/SampleDataPanel/index.scss +++ b/client/src/components/schema/SampleDataPanel/index.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .when-hovered { opacity: 0; transition: opacity 100ms; diff --git a/client/src/components/schema/Schema.js b/client/src/components/schema/Schema.js index 1506137d..86461894 100644 --- a/client/src/components/schema/Schema.js +++ b/client/src/components/schema/Schema.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import TimeAgo from "react-timeago"; diff --git a/client/src/components/schema/Schema.scss b/client/src/components/schema/Schema.scss index d1d61b03..95f6480a 100644 --- a/client/src/components/schema/Schema.scss +++ b/client/src/components/schema/Schema.scss @@ -1,3 +1,8 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + .main-content.schema { background-color: transparent; } diff --git a/client/src/components/schema/SchemaDropDataModal.js b/client/src/components/schema/SchemaDropDataModal.js index be72fff6..b4aedb03 100644 --- a/client/src/components/schema/SchemaDropDataModal.js +++ b/client/src/components/schema/SchemaDropDataModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Button from "react-bootstrap/Button"; diff --git a/client/src/components/schema/SchemaPredicateForm.js b/client/src/components/schema/SchemaPredicateForm.js index 33c288d5..78fddcc2 100644 --- a/client/src/components/schema/SchemaPredicateForm.js +++ b/client/src/components/schema/SchemaPredicateForm.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import cloneDeep from "lodash.clonedeep"; diff --git a/client/src/components/schema/SchemaPredicateModal.js b/client/src/components/schema/SchemaPredicateModal.js index 1be1cfbe..66acc317 100644 --- a/client/src/components/schema/SchemaPredicateModal.js +++ b/client/src/components/schema/SchemaPredicateModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import Modal from "react-bootstrap/Modal"; @@ -55,12 +46,8 @@ export default class SchemaPredicateModal extends React.Component { render() { const { predicate, onCancel } = this.props; - const { - updating, - clickedSubmit, - errorMsg, - predicateQuery, - } = this.state; + const { updating, clickedSubmit, errorMsg, predicateQuery } = + this.state; const predicateForm = this.predicateForm.current; const canUpdate = predicateForm && !predicateForm.hasErrors(); diff --git a/client/src/components/schema/SchemaRawModeModal.js b/client/src/components/schema/SchemaRawModeModal.js index 3175b09e..c7441649 100644 --- a/client/src/components/schema/SchemaRawModeModal.js +++ b/client/src/components/schema/SchemaRawModeModal.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; import Modal from "react-bootstrap/Modal"; diff --git a/client/src/components/schema/TypeProperties.js b/client/src/components/schema/TypeProperties.js index 7eff450e..2084fb7f 100644 --- a/client/src/components/schema/TypeProperties.js +++ b/client/src/components/schema/TypeProperties.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; diff --git a/client/src/components/schema/TypesTable.js b/client/src/components/schema/TypesTable.js index 10e435c1..08976add 100644 --- a/client/src/components/schema/TypesTable.js +++ b/client/src/components/schema/TypesTable.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useState } from "react"; diff --git a/client/src/containers/App.js b/client/src/containers/App.js index 561f7dff..c15f8be5 100644 --- a/client/src/containers/App.js +++ b/client/src/containers/App.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import classnames from "classnames"; diff --git a/client/src/containers/AppProvider.js b/client/src/containers/AppProvider.js index 843a97ca..71349dcc 100644 --- a/client/src/containers/AppProvider.js +++ b/client/src/containers/AppProvider.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React from "react"; import produce from "immer"; diff --git a/client/src/containers/CodeMirror.js b/client/src/containers/CodeMirror.js index daa40df0..acc3e0e5 100644 --- a/client/src/containers/CodeMirror.js +++ b/client/src/containers/CodeMirror.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import "codemirror/addon/hint/show-hint.css"; diff --git a/client/src/containers/Editor.js b/client/src/containers/Editor.js index 2b82c943..689d0e73 100644 --- a/client/src/containers/Editor.js +++ b/client/src/containers/Editor.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import React, { useCallback, useEffect, useRef, useState } from "react"; import { useSelector } from "react-redux"; @@ -60,7 +51,6 @@ export default function Editor({ const fetchSchema = useCallback(async () => { const client = await getDgraphClient(); try { - const schemaResponse = await client.newTxn().query("schema {}"); const schema = schemaResponse.data.schema; @@ -70,7 +60,7 @@ export default function Editor({ keywords.concat( schema.map(kw => kw.predicate), schema.map(kw => `<${kw.predicate}>`), - types.map(type => type.name) + types.map(type => type.name), ), ); } diff --git a/client/src/e2etests/acl/accessDenied.test.js b/client/src/e2etests/acl/accessDenied.test.js index c2b400f4..bffa67b9 100644 --- a/client/src/e2etests/acl/accessDenied.test.js +++ b/client/src/e2etests/acl/accessDenied.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/acl/aclHelpers.js b/client/src/e2etests/acl/aclHelpers.js index caf48fdd..01c5ff6d 100644 --- a/client/src/e2etests/acl/aclHelpers.js +++ b/client/src/e2etests/acl/aclHelpers.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/acl/changePermissions.test.js b/client/src/e2etests/acl/changePermissions.test.js index f67ecf07..48d82a0c 100644 --- a/client/src/e2etests/acl/changePermissions.test.js +++ b/client/src/e2etests/acl/changePermissions.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/acl/cliUser.test.js b/client/src/e2etests/acl/cliUser.test.js index 03f06f2f..62df606f 100644 --- a/client/src/e2etests/acl/cliUser.test.js +++ b/client/src/e2etests/acl/cliUser.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import { spawn } from "child_process"; import fetch from "isomorphic-fetch"; import puppeteer from "puppeteer"; diff --git a/client/src/e2etests/acl/createUser.DISABLED-test.js b/client/src/e2etests/acl/createUser.DISABLED-test.js index db73ef75..64eaeeaa 100644 --- a/client/src/e2etests/acl/createUser.DISABLED-test.js +++ b/client/src/e2etests/acl/createUser.DISABLED-test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/acl/dgraphType.DISABLED-test.js b/client/src/e2etests/acl/dgraphType.DISABLED-test.js index cc1ee809..b5a5e45e 100644 --- a/client/src/e2etests/acl/dgraphType.DISABLED-test.js +++ b/client/src/e2etests/acl/dgraphType.DISABLED-test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import { spawn } from "child_process"; import puppeteer from "puppeteer"; diff --git a/client/src/e2etests/acl/loginLogout.test.js b/client/src/e2etests/acl/loginLogout.test.js index b85a74ed..5d5cd553 100644 --- a/client/src/e2etests/acl/loginLogout.test.js +++ b/client/src/e2etests/acl/loginLogout.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { createTestTab, setupBrowser, waitForElement } from "../puppetHelpers"; diff --git a/client/src/e2etests/acl/passwordCheck.test.js b/client/src/e2etests/acl/passwordCheck.test.js index 191eedb9..f7eed28a 100644 --- a/client/src/e2etests/acl/passwordCheck.test.js +++ b/client/src/e2etests/acl/passwordCheck.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { createTestTab, setupBrowser, waitForElement } from "../puppetHelpers"; diff --git a/client/src/e2etests/acl/showGroot.test.js b/client/src/e2etests/acl/showGroot.test.js index f5167882..a23d669e 100644 --- a/client/src/e2etests/acl/showGroot.test.js +++ b/client/src/e2etests/acl/showGroot.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { createTestTab, setupBrowser, waitForElement } from "../puppetHelpers"; diff --git a/client/src/e2etests/basic.test.js b/client/src/e2etests/basic.test.js index 7601681d..f2d06aa6 100644 --- a/client/src/e2etests/basic.test.js +++ b/client/src/e2etests/basic.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import { createTestTab, easyUid, diff --git a/client/src/e2etests/bigInteger.test.js b/client/src/e2etests/bigInteger.test.js index 97ca110d..067d45d9 100644 --- a/client/src/e2etests/bigInteger.test.js +++ b/client/src/e2etests/bigInteger.test.js @@ -1,16 +1,8 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/dataExplorer.test.js-DISABLED b/client/src/e2etests/dataExplorer.test.js-DISABLED index 2002eede..d82fbe57 100644 --- a/client/src/e2etests/dataExplorer.test.js-DISABLED +++ b/client/src/e2etests/dataExplorer.test.js-DISABLED @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/expandGraph.test.js b/client/src/e2etests/expandGraph.test.js index e489c5e2..3509a22f 100644 --- a/client/src/e2etests/expandGraph.test.js +++ b/client/src/e2etests/expandGraph.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/jsonMutation.test.js b/client/src/e2etests/jsonMutation.test.js index 645e4daf..aece88ad 100644 --- a/client/src/e2etests/jsonMutation.test.js +++ b/client/src/e2etests/jsonMutation.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/noDuplicateMutations.test.js b/client/src/e2etests/noDuplicateMutations.test.js index 9a889b65..567cd106 100644 --- a/client/src/e2etests/noDuplicateMutations.test.js +++ b/client/src/e2etests/noDuplicateMutations.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/oneToOne.test.js b/client/src/e2etests/oneToOne.test.js index 8bdae1f8..1ea34488 100644 --- a/client/src/e2etests/oneToOne.test.js +++ b/client/src/e2etests/oneToOne.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/puppetHelpers.js b/client/src/e2etests/puppetHelpers.js index c49c1ec6..a6f4af20 100644 --- a/client/src/e2etests/puppetHelpers.js +++ b/client/src/e2etests/puppetHelpers.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import * as dgraph from "dgraph-js-http"; import puppeteer from "puppeteer"; diff --git a/client/src/e2etests/queryTimeout.test.js b/client/src/e2etests/queryTimeout.test.js index 02fabab2..57dfc803 100644 --- a/client/src/e2etests/queryTimeout.test.js +++ b/client/src/e2etests/queryTimeout.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { diff --git a/client/src/e2etests/typeSystem.test.js b/client/src/e2etests/typeSystem.test.js index b999ccce..82c07059 100644 --- a/client/src/e2etests/typeSystem.test.js +++ b/client/src/e2etests/typeSystem.test.js @@ -1,16 +1,8 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + import puppeteer from "puppeteer"; import { loginUser } from "./acl/aclHelpers"; diff --git a/client/src/index.js b/client/src/index.js index 7e20f48a..628281b4 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2019 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import "core-js/stable"; import "regenerator-runtime/runtime"; diff --git a/client/src/index.test.js b/client/src/index.test.js index 104c544a..54513714 100644 --- a/client/src/index.test.js +++ b/client/src/index.test.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import jsdom from "jsdom"; import React from "react"; diff --git a/client/src/lib/ColorGenerator.js b/client/src/lib/ColorGenerator.js index ccd0bf0c..372baeb2 100644 --- a/client/src/lib/ColorGenerator.js +++ b/client/src/lib/ColorGenerator.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import randomColor from "randomcolor"; diff --git a/client/src/lib/GraphLabeler.js b/client/src/lib/GraphLabeler.js index 14701474..45d9d838 100644 --- a/client/src/lib/GraphLabeler.js +++ b/client/src/lib/GraphLabeler.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import ColorGenerator from "./ColorGenerator"; diff --git a/client/src/lib/SchemaGraphParser.js b/client/src/lib/SchemaGraphParser.js index ce9f52fb..46dfc1b7 100644 --- a/client/src/lib/SchemaGraphParser.js +++ b/client/src/lib/SchemaGraphParser.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; diff --git a/client/src/lib/constants.js b/client/src/lib/constants.js index cc55905c..78d2d8ef 100644 --- a/client/src/lib/constants.js +++ b/client/src/lib/constants.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ export const Unknown = Symbol("Unknown"); export const Fetching = Symbol("Fetching"); diff --git a/client/src/lib/dgraph-syntax.js b/client/src/lib/dgraph-syntax.js index c997bbba..7d4fb168 100644 --- a/client/src/lib/dgraph-syntax.js +++ b/client/src/lib/dgraph-syntax.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { Unknown } from "./constants"; diff --git a/client/src/lib/graph.js b/client/src/lib/graph.js index 4df1653d..a7c9356e 100644 --- a/client/src/lib/graph.js +++ b/client/src/lib/graph.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import cloneDeep from "lodash.clonedeep"; import uuid from "uuid"; diff --git a/client/src/lib/graph.test.js b/client/src/lib/graph.test.js index 1dd3b4f4..dbb8b603 100644 --- a/client/src/lib/graph.test.js +++ b/client/src/lib/graph.test.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { processGraph } from "./graph"; diff --git a/client/src/lib/helpers.js b/client/src/lib/helpers.js index e01af080..fdd6eeb5 100644 --- a/client/src/lib/helpers.js +++ b/client/src/lib/helpers.js @@ -1,16 +1,7 @@ -// Copyright 2017-2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import * as dgraph from "dgraph-js-http"; import memoizeOne from "memoize-one"; diff --git a/client/src/lib/parsers/queryVars.js b/client/src/lib/parsers/queryVars.js index 42afbeb0..e9333006 100644 --- a/client/src/lib/parsers/queryVars.js +++ b/client/src/lib/parsers/queryVars.js @@ -1,16 +1,7 @@ -// Copyright 2020 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ // import peg from "pegjs"; // diff --git a/client/src/lib/utils.js b/client/src/lib/utils.js index a211c775..f13ac224 100644 --- a/client/src/lib/utils.js +++ b/client/src/lib/utils.js @@ -1,2 +1,7 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + export const getSpace = tablet => tablet ? tablet.space || tablet.onDiskBytes : null; diff --git a/client/src/reducers/backup.js b/client/src/reducers/backup.js index 9ccd067b..14b88484 100644 --- a/client/src/reducers/backup.js +++ b/client/src/reducers/backup.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; import { @@ -46,9 +37,8 @@ export default (state = defaultState, action) => case SAVE_BACKUP_RESULT: { const { backupId, result } = action; - draft.backups.find( - b => b.backupId === backupId, - ).result = result; + draft.backups.find(b => b.backupId === backupId).result = + result; break; } diff --git a/client/src/reducers/cluster.js b/client/src/reducers/cluster.js index 05b9486d..8696f78c 100644 --- a/client/src/reducers/cluster.js +++ b/client/src/reducers/cluster.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; diff --git a/client/src/reducers/connection.js b/client/src/reducers/connection.js index fa469f1a..8801fb7e 100644 --- a/client/src/reducers/connection.js +++ b/client/src/reducers/connection.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; diff --git a/client/src/reducers/frames.js b/client/src/reducers/frames.js index edff6d3a..0d78fe04 100644 --- a/client/src/reducers/frames.js +++ b/client/src/reducers/frames.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; import { @@ -39,11 +30,8 @@ function getFrameTiming(executionStart, extensions) { networkLatencyNs: fullRequestTimeNs, }; } - const { - parsing_ns, - processing_ns, - encoding_ns, - } = extensions.server_latency; + const { parsing_ns, processing_ns, encoding_ns } = + extensions.server_latency; const serverLatencyNs = parsing_ns + processing_ns + (encoding_ns || 0); return { serverLatencyNs, diff --git a/client/src/reducers/index.js b/client/src/reducers/index.js index 3065129e..d6b6b27c 100644 --- a/client/src/reducers/index.js +++ b/client/src/reducers/index.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import { persistCombineReducers } from "redux-persist"; diff --git a/client/src/reducers/query.js b/client/src/reducers/query.js index a9181331..845ea5ec 100644 --- a/client/src/reducers/query.js +++ b/client/src/reducers/query.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; import { diff --git a/client/src/reducers/ui.js b/client/src/reducers/ui.js index 3bd073e6..1f47eec1 100644 --- a/client/src/reducers/ui.js +++ b/client/src/reducers/ui.js @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ import produce from "immer"; diff --git a/client/src/reportWebVitals.js b/client/src/reportWebVitals.js index 5253d3ad..bc25f520 100644 --- a/client/src/reportWebVitals.js +++ b/client/src/reportWebVitals.js @@ -1,13 +1,20 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + const reportWebVitals = onPerfEntry => { - if (onPerfEntry && onPerfEntry instanceof Function) { - import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { - getCLS(onPerfEntry); - getFID(onPerfEntry); - getFCP(onPerfEntry); - getLCP(onPerfEntry); - getTTFB(onPerfEntry); - }); - } + if (onPerfEntry && onPerfEntry instanceof Function) { + import("web-vitals").then( + ({ getCLS, getFID, getFCP, getLCP, getTTFB }) => { + getCLS(onPerfEntry); + getFID(onPerfEntry); + getFCP(onPerfEntry); + getLCP(onPerfEntry); + getTTFB(onPerfEntry); + }, + ); + } }; export default reportWebVitals; diff --git a/client/src/setupTests.js b/client/src/setupTests.js index 8f2609b7..baa6a19c 100644 --- a/client/src/setupTests.js +++ b/client/src/setupTests.js @@ -1,5 +1,10 @@ +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ + // jest-dom adds custom jest matchers for asserting on DOM nodes. // allows you to do things like: // expect(element).toHaveTextContent(/react/i) // learn more: https://github.com/testing-library/jest-dom -import '@testing-library/jest-dom'; +import "@testing-library/jest-dom"; diff --git a/dev/readme.md b/dev/readme.md index cd773b31..e1b7cc0d 100644 --- a/dev/readme.md +++ b/dev/readme.md @@ -19,7 +19,6 @@ docker exec -it ratel_dev_1 bash ## Running the start script - if you already attached to the container, you can run the start script directly ```bash @@ -32,13 +31,13 @@ or you can run the start script from outside the container docker exec -it ratel_dev_1 bash -c "bash ./dev/run.sh" ``` - # Issues with Node.js -To run this project locally you have to use Node.js version 14.x. If you have a different version installed, you will get errors when running the development server. - +To run this project locally you have to use Node.js version 14.x. If you have a different version +installed, you will get errors when running the development server. -To downgrade Node.js, you can use the Node Version Manager (NVM). If you don't have NVM installed, you can install it with the following command: +To downgrade Node.js, you can use the Node Version Manager (NVM). If you don't have NVM installed, +you can install it with the following command: ```bash curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash @@ -46,14 +45,12 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash After installing NVM, restart your terminal or run: - ```bash source ~/.bashrc ``` Now, you can install a compatible Node.js version. For example, to install Node.js 14.x, run: - ```bash nvm install 14 @@ -65,4 +62,5 @@ To switch to the newly installed version: nvm use 14 ``` -After downgrading your Node.js version, try running your development server again. The error should be resolved, and your project should work as expected. \ No newline at end of file +After downgrading your Node.js version, try running your development server again. The error should +be resolved, and your project should work as expected. diff --git a/dev/run.sh b/dev/run.sh index 25f1bd96..1592077f 100644 --- a/dev/run.sh +++ b/dev/run.sh @@ -3,7 +3,7 @@ set -e # Fix files for Windows. Converting the files to unix type. -# This is necessary if you are developing from Windows and will be working in a Linux container. +# This is necessary if you are developing from Windows and will be working in a Linux container. # Because the file type is not compatible with Linux if it is on a Windows disk. # find ./* -type d \( -path *node_modules/* -o -path ./.git -o -path */3rdpartystatic/* \) -prune -o -name '*.js*' -print0 | xargs -0 dos2unix # find ./* -type d \( -path *node_modules/* -o -path ./.git -o -path */3rdpartystatic/* \) -prune -o -name '*.sh*' -print0 | xargs -0 dos2unix diff --git a/docker-compose.yml b/docker-compose.yml index d9c3ba4f..7d72ac8b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,5 @@ ## Please, read the readme file for more information about developing via container. -version: '3.8' +version: "3.8" services: dev: build: ./dev @@ -8,7 +8,7 @@ services: - /var/run/docker.sock:/var/run/docker.sock working_dir: /app environment: - # HOST: localhost + # HOST: localhost NODE_ENV: development command: /bin/sh -c "while sleep 1000; do :; done" network_mode: "host" diff --git a/main.go b/main.go index 696f2423..c1210779 100644 --- a/main.go +++ b/main.go @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ package main diff --git a/scripts/build.prod.sh b/scripts/build.prod.sh index 33371c6f..a182e7b4 100755 --- a/scripts/build.prod.sh +++ b/scripts/build.prod.sh @@ -2,64 +2,68 @@ set -e -dir="$( cd "$( printf '%s' "${BASH_SOURCE[0]%/*}" )" && pwd )" +dir="$(cd "$(printf '%s' "${BASH_SOURCE[0]%/*}")" && pwd)" rootDir=$(git rev-parse --show-toplevel) # cd to the scripts directory -pushd "$dir" > /dev/null - # setting metadata and flags - version="$(grep -i '"version"' < "$rootDir/client/package.json" | awk -F '"' '{print $4}')" - flagUploadToS3=false - buildClientFiles=false - buildServerBinary=false - commitID="$(git rev-parse --short HEAD)" - commitINFO="$(git show --pretty=format:"%h %ad %d" | head -n1)" +pushd "$dir" >/dev/null +# setting metadata and flags +version="$(grep -i '"version"' <"$rootDir/client/package.json" | awk -F '"' '{print $4}')" +flagUploadToS3=false +buildClientFiles=false +buildServerBinary=false +commitID="$(git rev-parse --short HEAD)" +commitINFO="$(git show --pretty=format:"%h %ad %d" | head -n1)" - while [ "$1" != "" ]; do - case $1 in - -v | --version ) shift - version=$1 - ;; - -u | --upload ) flagUploadToS3=true - ;; +while [ "$1" != "" ]; do + case $1 in + -v | --version) + shift + version=$1 + ;; + -u | --upload) + flagUploadToS3=true + ;; - -c | --client ) buildClientFiles=true - ;; + -c | --client) + buildClientFiles=true + ;; - -s | --server ) buildServerBinary=true - ;; - esac + -s | --server) + buildServerBinary=true + ;; + esac - shift - done + shift +done - # including functions to build client and server - source ./functions.sh -popd > /dev/null +# including functions to build client and server +source ./functions.sh +popd >/dev/null # cd to the root folder. -pushd "$rootDir" > /dev/null +pushd "$rootDir" >/dev/null - # no flag provided build all - if [ $buildClientFiles = false ] && [ $buildServerBinary = false ]; then - buildClientFiles=true - buildServerBinary=true - fi +# no flag provided build all +if [ $buildClientFiles = false ] && [ $buildServerBinary = false ]; then + buildClientFiles=true + buildServerBinary=true +fi - if [ $buildClientFiles = true ]; then - # build client - production flag set to true - buildClient true - fi +if [ $buildClientFiles = true ]; then + # build client - production flag set to true + buildClient true +fi - if [ $buildServerBinary = true ]; then - # build server - passing along the production flag and version - buildServer true "$version" - fi +if [ $buildServerBinary = true ]; then + # build server - passing along the production flag and version + buildServer true "$version" +fi - # uploading to s3 when the flagUploadToS3 flag set to true - if [ $flagUploadToS3 = true ]; then - uploadToS3 - fi -popd > /dev/null +# uploading to s3 when the flagUploadToS3 flag set to true +if [ $flagUploadToS3 = true ]; then + uploadToS3 +fi +popd >/dev/null printf "\nDONE\n" diff --git a/scripts/licensing/header.txt b/scripts/licensing/header.txt deleted file mode 100644 index c4acd813..00000000 --- a/scripts/licensing/header.txt +++ /dev/null @@ -1,13 +0,0 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. diff --git a/scripts/licensing/license.sh b/scripts/licensing/license.sh deleted file mode 100755 index edf0e210..00000000 --- a/scripts/licensing/license.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash - -tmpfile="$(mktemp)" -dir="$(dirname "$0")" -rateldir="$dir/../.." -files="$(find $rateldir -type f -not -path "*/client/node_modules/*" -name "*.js" -o -name "*.go" ! -name "bindata.go")" - -for f in $files -do - sed -i -E '/\/\/ Copyright 2017-2021 Dgraph Labs, Inc. and Contributors/,/\/\/ limitations under the License\./d' $f - cat "$dir/header.txt" $f > $tmpfile - cp $tmpfile $f - - year=$(git log --format=%aD $f | tail -1 | awk '{ print $4 }') - if [ "$year" != "2019" ]; then - sed -i "s/Copyright 2017-2021 Dgraph/Copyright $year-2019 Dgraph/g" $f - fi - - echo $f -done -rm $tmpfile diff --git a/scripts/provision.sh b/scripts/provision.sh index 5f30f95c..a640498f 100755 --- a/scripts/provision.sh +++ b/scripts/provision.sh @@ -21,44 +21,43 @@ apt-get install -y nodejs # puppeteer requirements apt-get install -y \ - ca-certificates \ - fonts-liberation \ - libappindicator3-1 \ - libasound2 \ - libatk-bridge2.0-0 \ - libatk1.0-0 \ - libc6 \ - libcairo2 \ - libcups2 \ - libdbus-1-3 \ - libexpat1 \ - libfontconfig1 \ - libgbm1 \ - libgcc1 \ - libglib2.0-0 \ - libgtk-3-0 \ - libnspr4 \ - libnss3 \ - libpango-1.0-0 \ - libpangocairo-1.0-0 \ - libstdc++6 \ - libx11-6 \ - libx11-xcb1 \ - libxcb1 \ - libxcomposite1 \ - libxcursor1 \ - libxdamage1 \ - libxext6 \ - libxfixes3 \ - libxi6 \ - libxrandr2 \ - libxrender1 \ - libxss1 \ - libxtst6 \ - lsb-release \ - wget \ - xdg-utils - + ca-certificates \ + fonts-liberation \ + libappindicator3-1 \ + libasound2 \ + libatk-bridge2.0-0 \ + libatk1.0-0 \ + libc6 \ + libcairo2 \ + libcups2 \ + libdbus-1-3 \ + libexpat1 \ + libfontconfig1 \ + libgbm1 \ + libgcc1 \ + libglib2.0-0 \ + libgtk-3-0 \ + libnspr4 \ + libnss3 \ + libpango-1.0-0 \ + libpangocairo-1.0-0 \ + libstdc++6 \ + libx11-6 \ + libx11-xcb1 \ + libxcb1 \ + libxcomposite1 \ + libxcursor1 \ + libxdamage1 \ + libxext6 \ + libxfixes3 \ + libxi6 \ + libxrandr2 \ + libxrender1 \ + libxss1 \ + libxtst6 \ + lsb-release \ + wget \ + xdg-utils # other apt install make diff --git a/scripts/test.sh b/scripts/test.sh index d4ac6427..32a721df 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -10,7 +10,7 @@ if [[ $DEGUG == "1" ]]; then set -x; fi function wait-for-healthy() { echo "wait-for-healthy($1): Waiting for $2 to return 200 OK" tries=0 - until curl -sL -w "%{http_code}\\n" "$2" -o /dev/null | grep -q 200; do + until curl -sL -w '%{http_code}\n' "$2" -o /dev/null | grep -q 200; do tries=$tries+1 if [[ $tries -gt 300 ]]; then echo "wait-for-healthy($1): Took longer than 1 minute to be healthy." @@ -23,82 +23,88 @@ function wait-for-healthy() { } function check_environment { - command -v docker > /dev/null || \ - { echo "ERROR: 'docker' command not not found" 1>&2; exit 1; } + command -v docker >/dev/null || + { + echo "ERROR: 'docker' command not not found" 1>&2 + exit 1 + } - if [[ -z $USE_DOCKER ]]; then - echo "INFO: \$USE_CONTAINER is not set. Running test from host" - command -v npm > /dev/null || \ - { echo "ERROR: 'npm' command not not found" 1>&2; exit 1; } - else - echo "INFO: \$USE_CONTAINER is set. Running tests with 'docker exec'" - fi + if [[ -z $USE_DOCKER ]]; then + echo 'INFO: $USE_CONTAINER is not set. Running test from host' + command -v npm >/dev/null || + { + echo "ERROR: 'npm' command not not found" 1>&2 + exit 1 + } + else + echo "INFO: \$USE_CONTAINER is set. Running tests with 'docker exec'" + fi } check_environment $@ -dir="$( cd "$( printf '%s' "${BASH_SOURCE[0]%/*}" )" && pwd )" +dir="$(cd "$(printf '%s' "${BASH_SOURCE[0]%/*}")" && pwd)" rootdir="$dir/.." clientdir="$dir/../client" composedir="$clientdir/src/e2etests" -pushd "$dir" > /dev/null - # Use this file for docker-compose commands - export COMPOSE_FILE=docker-compose.prod.yml +pushd "$dir" >/dev/null +# Use this file for docker-compose commands +export COMPOSE_FILE=docker-compose.prod.yml - # Build binary using outside of docker, set LEGACY=1 - if ! [[ -z $LEGACY ]]; then +# Build binary using outside of docker, set LEGACY=1 +if ! [[ -z $LEGACY ]]; then # NOTE: Build embedded in docker build - pushd "$rootdir" > /dev/null + pushd "$rootdir" >/dev/null if [ ! -f "$rootdir/build/ratel" ]; then - echo "Ratel binary not found. Starting full build. Tested path: \"$rootdir/build/ratel\"" - ./scripts/build.prod.sh + echo "Ratel binary not found. Starting full build. Tested path: \"$rootdir/build/ratel\"" + ./scripts/build.prod.sh fi - fi +fi - # Run Ratel and Dgraph - pushd "$composedir" > /dev/null - set -e - # TODO: remove the following two calls to `docker-compose down` - docker-compose down - docker-compose -p ratel_test down - docker-compose up --force-recreate --remove-orphans --detach - sleep 5 - set +e - popd > /dev/null +# Run Ratel and Dgraph +pushd "$composedir" >/dev/null +set -e +# TODO: remove the following two calls to `docker-compose down` +docker-compose down +docker-compose -p ratel_test down +docker-compose up --force-recreate --remove-orphans --detach +sleep 5 +set +e +popd >/dev/null - # Verifying that the docker containers are up and running - docker ps - ratelport="$(docker container port e2etests_ratel_1 8000 | cut -d: -f2)" - alphaport="$(docker container port e2etests_alpha_1 8080 | cut -d: -f2)" +# Verifying that the docker containers are up and running +docker ps +ratelport="$(docker container port e2etests_ratel_1 8000 | cut -d: -f2)" +alphaport="$(docker container port e2etests_alpha_1 8080 | cut -d: -f2)" - wait-for-healthy "Alpha" "localhost:$alphaport/health" - wait-for-healthy "Ratel" "localhost:$ratelport" +wait-for-healthy "Alpha" "localhost:$alphaport/health" +wait-for-healthy "Ratel" "localhost:$ratelport" - # Run tests - pushd "$clientdir" > /dev/null - if [[ -z $USE_DOCKER ]]; then - echo "INFO: TEST_DGRAPH_SERVER=\"http://localhost:$alphaport\"" - echo "INFO: TEST_RATEL_URL=\"http://localhost:$ratelport?local\"" - echo "INFO: Running tests with 'npm test'" +# Run tests +pushd "$clientdir" >/dev/null +if [[ -z $USE_DOCKER ]]; then + echo "INFO: TEST_DGRAPH_SERVER=\"http://localhost:$alphaport\"" + echo "INFO: TEST_RATEL_URL=\"http://localhost:$ratelport?local\"" + echo "INFO: Running tests with 'npm test'" - # Workaround: Use ?local to run production Ratel builds for e2e tests - TEST_DGRAPH_SERVER="http://localhost:$alphaport" TEST_RATEL_URL="http://localhost:$ratelport?local" \ + # Workaround: Use ?local to run production Ratel builds for e2e tests + TEST_DGRAPH_SERVER="http://localhost:$alphaport" TEST_RATEL_URL="http://localhost:$ratelport?local" \ npm test -- --runInBand --testTimeout 40000 --watchAll=false - else - echo "INFO: Running tests with 'docker exec'" - docker exec -t e2etests_test_1 npm test -- --runInBand --testTimeout 40000 --watchAll=false - fi - testresults="$?" - popd > /dev/null +else + echo "INFO: Running tests with 'docker exec'" + docker exec -t e2etests_test_1 npm test -- --runInBand --testTimeout 40000 --watchAll=false +fi +testresults="$?" +popd >/dev/null - # Cleanup - pushd "$composedir" > /dev/null - if [ $testresults != 0 ]; then - docker-compose logs - fi - docker-compose down && docker-compose rm -f - popd > /dev/null -popd > /dev/null +# Cleanup +pushd "$composedir" >/dev/null +if [ $testresults != 0 ]; then + docker-compose logs +fi +docker-compose down && docker-compose rm -f +popd >/dev/null +popd >/dev/null exit $testresults diff --git a/server/buffer.go b/server/buffer.go index eda6152e..aab9cf96 100644 --- a/server/buffer.go +++ b/server/buffer.go @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ package server diff --git a/server/content.go b/server/content.go index 3a2741a7..feb5d04b 100644 --- a/server/content.go +++ b/server/content.go @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ package server diff --git a/server/server.go b/server/server.go index 91efcb6e..5f257b1e 100644 --- a/server/server.go +++ b/server/server.go @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ package server diff --git a/server/validate.go b/server/validate.go index 5c7d439e..6bc1f296 100644 --- a/server/validate.go +++ b/server/validate.go @@ -1,16 +1,7 @@ -// Copyright 2017-2021 Dgraph Labs, Inc. and Contributors -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. +/* + * SPDX-FileCopyrightText: © Hypermode Inc. <hello@hypermode.com> + * SPDX-License-Identifier: Apache-2.0 + */ package server