Browse Source

Revert files

Andrzej Ressel 7 years ago
parent
commit
c4b57a2562
42 changed files with 1201 additions and 1104 deletions
  1. 25 28
      public/app/core/components/EmptyListCTA/EmptyListCTA.tsx
  2. 7 9
      public/app/core/components/Login/LoginBackground.tsx
  3. 9 6
      public/app/core/components/PasswordStrength.tsx
  4. 2 2
      public/app/core/components/colorpicker/ColorPalette.tsx
  5. 13 18
      public/app/core/components/colorpicker/ColorPickerPopover.tsx
  6. 12 12
      public/app/core/components/colorpicker/SpectrumPicker.tsx
  7. 8 5
      public/app/core/specs/PasswordStrength.jest.tsx
  8. 9 6
      public/app/features/dashboard/dashgrid/DashboardPanel.tsx
  9. 1 3
      public/app/features/templating/query_variable.ts
  10. 18 11
      public/sass/_variables.scss
  11. 13 13
      public/sass/base/_font_awesome.scss
  12. 22 22
      public/sass/base/_forms.scss
  13. 62 61
      public/sass/base/_grafana_icons.scss
  14. 10 10
      public/sass/base/_normalize.scss
  15. 4 4
      public/sass/base/_reboot.scss
  16. 2 1
      public/sass/base/font-awesome/_core.scss
  17. 4 3
      public/sass/base/font-awesome/_mixins.scss
  18. 12 7
      public/sass/base/font-awesome/_path.scss
  19. 788 788
      public/sass/base/font-awesome/_variables.scss
  20. 6 6
      public/sass/components/_drop.scss
  21. 3 3
      public/sass/components/_filter-list.scss
  22. 2 2
      public/sass/components/_footer.scss
  23. 3 3
      public/sass/components/_json_explorer.scss
  24. 2 2
      public/sass/components/_jsontree.scss
  25. 2 2
      public/sass/components/_panel_gettingstarted.scss
  26. 1 1
      public/sass/components/_row.scss
  27. 1 1
      public/sass/components/_shortcuts.scss
  28. 4 4
      public/sass/components/_switch.scss
  29. 7 2
      public/sass/components/_tabs.scss
  30. 2 2
      public/sass/components/_timepicker.scss
  31. 34 18
      public/sass/mixins/_drop_element.scss
  32. 2 1
      public/sass/mixins/_forms.scss
  33. 53 10
      public/sass/mixins/_mixins.scss
  34. 2 2
      public/sass/pages/_playlist.scss
  35. 1 1
      public/sass/utils/_validation.scss
  36. 18 18
      public/test/core/utils/version_specs.ts
  37. 4 0
      public/test/index.ts
  38. 2 1
      public/test/jest-shim.ts
  39. 11 2
      public/test/lib/common.ts
  40. 4 1
      public/test/mocks/backend_srv.ts
  41. 5 2
      public/test/specs/app_specs.ts
  42. 11 11
      public/test/specs/helpers.ts

+ 25 - 28
public/app/core/components/EmptyListCTA/EmptyListCTA.tsx

@@ -1,37 +1,34 @@
 import React, { Component } from 'react';
 
 export interface IProps {
-  model: any;
+    model: any;
 }
 
 class EmptyListCTA extends Component<IProps, any> {
-  render() {
-    const {
-      title,
-      buttonIcon,
-      buttonLink,
-      buttonTitle,
-      proTip,
-      proTipLink,
-      proTipLinkTitle,
-      proTipTarget,
-    } = this.props.model;
-    return (
-      <div className="empty-list-cta">
-        <div className="empty-list-cta__title">{title}</div>
-        <a href={buttonLink} className="empty-list-cta__button btn btn-xlarge btn-success">
-          <i className={buttonIcon} />
-          {buttonTitle}
-        </a>
-        <div className="empty-list-cta__pro-tip">
-          <i className="fa fa-rocket" /> ProTip: {proTip}
-          <a className="text-link empty-list-cta__pro-tip-link" href={proTipLink} target={proTipTarget}>
-            {proTipLinkTitle}
-          </a>
-        </div>
-      </div>
-    );
-  }
+    render() {
+        const {
+            title,
+            buttonIcon,
+            buttonLink,
+            buttonTitle,
+            proTip,
+            proTipLink,
+            proTipLinkTitle,
+            proTipTarget
+        } = this.props.model;
+        return (
+            <div className="empty-list-cta">
+                <div className="empty-list-cta__title">{title}</div>
+                <a href={buttonLink} className="empty-list-cta__button btn btn-xlarge btn-success"><i className={buttonIcon} />{buttonTitle}</a>
+                <div className="empty-list-cta__pro-tip">
+                    <i className="fa fa-rocket" /> ProTip: {proTip}
+                    <a className="text-link empty-list-cta__pro-tip-link"
+                        href={proTipLink}
+                        target={proTipTarget}>{proTipLinkTitle}</a>
+                </div>
+            </div>
+        );
+    }
 }
 
 export default EmptyListCTA;

+ 7 - 9
public/app/core/components/Login/LoginBackground.tsx

@@ -4,14 +4,10 @@ const xCount = 50;
 const yCount = 50;
 
 function Cell({ x, y, flipIndex }) {
-  const index = y * xCount + x;
+  const index = (y * xCount) + x;
   const bgColor1 = getColor(x, y);
   return (
-    <div
-      className={`login-bg__item ${flipIndex === index ? 'login-bg-flip' : ''}`}
-      key={index}
-      style={{ background: bgColor1 }}
-    />
+    <div className={`login-bg__item ${flipIndex === index ? 'login-bg-flip' : ''}`} key={index} style={{background: bgColor1}} />
   );
 }
 
@@ -35,7 +31,7 @@ export default class LoginBackground extends Component<any, any> {
   }
 
   flipElements() {
-    const elementIndexToFlip = getRandomInt(0, xCount * yCount - 1);
+    const elementIndexToFlip = getRandomInt(0, (xCount * yCount) - 1);
     this.setState(prevState => {
       return {
         ...prevState,
@@ -61,7 +57,9 @@ export default class LoginBackground extends Component<any, any> {
           return (
             <div className="login-bg__row">
               {Array.from(Array(xCount)).map((el2, x) => {
-                return <Cell y={y} x={x} flipIndex={this.state.flipIndex} />;
+                return (
+                  <Cell y={y} x={x} flipIndex={this.state.flipIndex} />
+                );
               })}
             </div>
           );
@@ -1238,5 +1236,5 @@ function getColor(x, y) {
   // let randY = getRandomInt(0, y);
   // let randIndex = randY * xCount + randX;
 
-  return colors[(y * xCount + x) % colors.length];
+  return colors[(y*xCount + x) % colors.length];
 }

+ 9 - 6
public/app/core/components/PasswordStrength.tsx

@@ -5,27 +5,28 @@ export interface IProps {
 }
 
 export class PasswordStrength extends React.Component<IProps, any> {
+
   constructor(props) {
     super(props);
   }
 
   render() {
     const { password } = this.props;
-    let strengthText = 'strength: strong like a bull.';
-    let strengthClass = 'password-strength-good';
+    let strengthText = "strength: strong like a bull.";
+    let strengthClass = "password-strength-good";
 
     if (!password) {
       return null;
     }
 
     if (password.length <= 8) {
-      strengthText = 'strength: you can do better.';
-      strengthClass = 'password-strength-ok';
+      strengthText = "strength: you can do better.";
+      strengthClass = "password-strength-ok";
     }
 
     if (password.length < 4) {
-      strengthText = 'strength: weak sauce.';
-      strengthClass = 'password-strength-bad';
+      strengthText = "strength: weak sauce.";
+      strengthClass = "password-strength-bad";
     }
 
     return (
@@ -35,3 +36,5 @@ export class PasswordStrength extends React.Component<IProps, any> {
     );
   }
 }
+
+

+ 2 - 2
public/app/core/components/colorpicker/ColorPalette.tsx

@@ -29,8 +29,7 @@ export class ColorPalette extends React.Component<IProps, any> {
           key={paletteColor}
           className={'pointer fa ' + cssClass}
           style={{ color: paletteColor }}
-          onClick={this.onColorSelect(paletteColor)}
-        >
+          onClick={this.onColorSelect(paletteColor)}>
           &nbsp;
         </i>
       );
@@ -42,3 +41,4 @@ export class ColorPalette extends React.Component<IProps, any> {
     );
   }
 }
+

+ 13 - 18
public/app/core/components/colorpicker/ColorPickerPopover.tsx

@@ -19,7 +19,7 @@ export class ColorPickerPopover extends React.Component<IProps, any> {
     this.state = {
       tab: 'palette',
       color: this.props.color || DEFAULT_COLOR,
-      colorString: this.props.color || DEFAULT_COLOR,
+      colorString: this.props.color || DEFAULT_COLOR
     };
   }
 
@@ -32,7 +32,7 @@ export class ColorPickerPopover extends React.Component<IProps, any> {
     if (newColor.isValid()) {
       this.setState({
         color: newColor.toString(),
-        colorString: newColor.toString(),
+        colorString: newColor.toString()
       });
       this.props.onColorSelect(color);
     }
@@ -50,7 +50,7 @@ export class ColorPickerPopover extends React.Component<IProps, any> {
   onColorStringChange(e) {
     let colorString = e.target.value;
     this.setState({
-      colorString: colorString,
+      colorString: colorString
     });
 
     let newColor = tinycolor(colorString);
@@ -71,11 +71,11 @@ export class ColorPickerPopover extends React.Component<IProps, any> {
 
   componentDidMount() {
     this.pickerNavElem.find('li:first').addClass('active');
-    this.pickerNavElem.on('show', e => {
+    this.pickerNavElem.on('show', (e) => {
       // use href attr (#name => name)
       let tab = e.target.hash.slice(1);
       this.setState({
-        tab: tab,
+        tab: tab
       });
     });
   }
@@ -97,24 +97,19 @@ export class ColorPickerPopover extends React.Component<IProps, any> {
       <div className="gf-color-picker">
         <ul className="nav nav-tabs" id="colorpickernav" ref={this.setPickerNavElem.bind(this)}>
           <li className="gf-tabs-item-colorpicker">
-            <a href="#palette" data-toggle="tab">
-              Colors
-            </a>
+            <a href="#palette" data-toggle="tab">Colors</a>
           </li>
           <li className="gf-tabs-item-colorpicker">
-            <a href="#spectrum" data-toggle="tab">
-              Custom
-            </a>
+            <a href="#spectrum" data-toggle="tab">Custom</a>
           </li>
         </ul>
-        <div className="gf-color-picker__body">{currentTab}</div>
+        <div className="gf-color-picker__body">
+          {currentTab}
+        </div>
         <div>
-          <input
-            className="gf-form-input gf-form-input--small"
-            value={this.state.colorString}
-            onChange={this.onColorStringChange.bind(this)}
-            onBlur={this.onColorStringBlur.bind(this)}
-          />
+          <input className="gf-form-input gf-form-input--small" value={this.state.colorString}
+            onChange={this.onColorStringChange.bind(this)} onBlur={this.onColorStringBlur.bind(this)}>
+          </input>
         </div>
       </div>
     );

+ 12 - 12
public/app/core/components/colorpicker/SpectrumPicker.tsx

@@ -29,17 +29,14 @@ export class SpectrumPicker extends React.Component<IProps, any> {
   }
 
   componentDidMount() {
-    let spectrumOptions = _.assignIn(
-      {
-        flat: true,
-        showAlpha: true,
-        showButtons: false,
-        color: this.props.color,
-        appendTo: this.elem,
-        move: this.onSpectrumMove,
-      },
-      this.props.options
-    );
+    let spectrumOptions = _.assignIn({
+      flat: true,
+      showAlpha: true,
+      showButtons: false,
+      color: this.props.color,
+      appendTo: this.elem,
+      move: this.onSpectrumMove,
+    }, this.props.options);
 
     this.elem.spectrum(spectrumOptions);
     this.elem.spectrum('show');
@@ -67,6 +64,9 @@ export class SpectrumPicker extends React.Component<IProps, any> {
   }
 
   render() {
-    return <div className="spectrum-container" ref={this.setComponentElem} />;
+    return (
+      <div className="spectrum-container" ref={this.setComponentElem}></div>
+    );
   }
 }
+

+ 8 - 5
public/app/core/specs/PasswordStrength.jest.tsx

@@ -1,21 +1,24 @@
 import React from 'react';
-import { shallow } from 'enzyme';
+import {shallow} from 'enzyme';
 
-import { PasswordStrength } from '../components/PasswordStrength';
+import {PasswordStrength} from '../components/PasswordStrength';
 
 describe('PasswordStrength', () => {
+
   it('should have class bad if length below 4', () => {
     const wrapper = shallow(<PasswordStrength password="asd" />);
-    expect(wrapper.find('.password-strength-bad')).toHaveLength(1);
+    expect(wrapper.find(".password-strength-bad")).toHaveLength(1);
   });
 
   it('should have class ok if length below 8', () => {
     const wrapper = shallow(<PasswordStrength password="asdasd" />);
-    expect(wrapper.find('.password-strength-ok')).toHaveLength(1);
+    expect(wrapper.find(".password-strength-ok")).toHaveLength(1);
   });
 
   it('should have class good if length above 8', () => {
     const wrapper = shallow(<PasswordStrength password="asdaasdda" />);
-    expect(wrapper.find('.password-strength-good')).toHaveLength(1);
+    expect(wrapper.find(".password-strength-good")).toHaveLength(1);
   });
+
 });
+

+ 9 - 6
public/app/features/dashboard/dashgrid/DashboardPanel.tsx

@@ -1,9 +1,9 @@
 import React from 'react';
-import { PanelModel } from '../panel_model';
-import { PanelContainer } from './PanelContainer';
-import { AttachedPanel } from './PanelLoader';
-import { DashboardRow } from './DashboardRow';
-import { AddPanelPanel } from './AddPanelPanel';
+import {PanelModel} from '../panel_model';
+import {PanelContainer} from './PanelContainer';
+import {AttachedPanel} from './PanelLoader';
+import {DashboardRow} from './DashboardRow';
+import {AddPanelPanel} from './AddPanelPanel';
 
 export interface DashboardPanelProps {
   panel: PanelModel;
@@ -46,6 +46,9 @@ export class DashboardPanel extends React.Component<DashboardPanelProps, any> {
       return <AddPanelPanel panel={this.props.panel} getPanelContainer={this.props.getPanelContainer} />;
     }
 
-    return <div ref={element => (this.element = element)} className="panel-height-helper" />;
+    return (
+      <div ref={element => this.element = element} className="panel-height-helper" />
+    );
   }
 }
+

+ 1 - 3
public/app/features/templating/query_variable.ts

@@ -198,9 +198,7 @@ export class QueryVariable implements Variable {
         }
       });
     } else if (sortType === 3) {
-      options = _.sortBy(options, opt => {
-        return _.toLower(opt.text);
-      });
+      options = _.sortBy(options, opt => { return _.toLower(opt.text); });
     }
 
     if (reverseSort) {

+ 18 - 11
public/sass/_variables.scss

@@ -53,9 +53,9 @@ $enable-flex: true;
 // Typography
 // -------------------------
 
-$font-family-sans-serif: 'Roboto', Helvetica, Arial, sans-serif;
-$font-family-serif: Georgia, 'Times New Roman', Times, serif;
-$font-family-monospace: Menlo, Monaco, Consolas, 'Courier New', monospace;
+$font-family-sans-serif: "Roboto", Helvetica, Arial, sans-serif;
+$font-family-serif: Georgia, "Times New Roman", Times, serif;
+$font-family-monospace: Menlo, Monaco, Consolas, "Courier New", monospace;
 $font-family-base: $font-family-sans-serif !default;
 
 $font-size-root: 14px !default;
@@ -90,7 +90,7 @@ $lead-font-size: 1.25rem !default;
 $lead-font-weight: 300 !default;
 
 $headings-margin-bottom: ($spacer / 2) !default;
-$headings-font-family: 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
+$headings-font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif;
 $headings-font-weight: 400 !default;
 $headings-line-height: 1.1 !default;
 
@@ -152,9 +152,16 @@ $input-padding-y-sm: 4px !default;
 $input-padding-x-lg: 20px !default;
 $input-padding-y-lg: 10px !default;
 
-$input-height: (($font-size-base * $line-height-base) + ($input-padding-y * 2)) !default;
-$input-height-lg: ( ($font-size-lg * $line-height-lg) + ($input-padding-y-lg * 2)) !default;
-$input-height-sm: ( ($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)) !default;
+$input-height: (($font-size-base * $line-height-base) + ($input-padding-y * 2))
+  !default;
+$input-height-lg: (
+     ($font-size-lg * $line-height-lg) + ($input-padding-y-lg * 2)
+  )
+  !default;
+$input-height-sm: (
+     ($font-size-sm * $line-height-sm) + ($input-padding-y-sm * 2)
+  )
+  !default;
 
 $form-group-margin-bottom: $spacer-y !default;
 $gf-form-margin: 0.2rem;
@@ -214,9 +221,9 @@ $panel-padding: 0px 10px 5px 10px;
 $tabs-padding: 10px 15px 9px;
 
 $external-services: (
-    github: (bgColor: #464646, borderColor: #393939, icon: ''),
-    google: (bgColor: #e84d3c, borderColor: #b83e31, icon: ''),
-    grafanacom: (bgColor: inherit, borderColor: #393939, icon: ''),
-    oauth: (bgColor: inherit, borderColor: #393939, icon: '')
+    github: (bgColor: #464646, borderColor: #393939, icon: ""),
+    google: (bgColor: #e84d3c, borderColor: #b83e31, icon: ""),
+    grafanacom: (bgColor: inherit, borderColor: #393939, icon: ""),
+    oauth: (bgColor: inherit, borderColor: #393939, icon: "")
   )
   !default;

+ 13 - 13
public/sass/base/_font_awesome.scss

@@ -3,16 +3,16 @@
  *  License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
  */
 
-@import './font-awesome/variables';
-@import './font-awesome/mixins';
-@import './font-awesome/path';
-@import './font-awesome/core';
-@import './font-awesome/larger';
-@import './font-awesome/fixed-width';
-@import './font-awesome/list';
-@import './font-awesome/bordered-pulled';
-@import './font-awesome/animated';
-@import './font-awesome/rotated-flipped';
-@import './font-awesome/stacked';
-@import './font-awesome/icons';
-@import './font-awesome/screen-reader';
+@import "./font-awesome/variables";
+@import "./font-awesome/mixins";
+@import "./font-awesome/path";
+@import "./font-awesome/core";
+@import "./font-awesome/larger";
+@import "./font-awesome/fixed-width";
+@import "./font-awesome/list";
+@import "./font-awesome/bordered-pulled";
+@import "./font-awesome/animated";
+@import "./font-awesome/rotated-flipped";
+@import "./font-awesome/stacked";
+@import "./font-awesome/icons";
+@import "./font-awesome/screen-reader";

+ 22 - 22
public/sass/base/_forms.scss

@@ -58,19 +58,19 @@ textarea {
 }
 
 // Reset width of input images, buttons, radios, checkboxes
-input[type='file'],
-input[type='image'],
-input[type='submit'],
-input[type='reset'],
-input[type='button'],
-input[type='radio'],
-input[type='checkbox'] {
+input[type="file"],
+input[type="image"],
+input[type="submit"],
+input[type="reset"],
+input[type="button"],
+input[type="radio"],
+input[type="checkbox"] {
   width: auto; // Override of generic input selector
 }
 
 // Set the height of select and file controls to match text inputs
 select,
-input[type='file'] {
+input[type="file"] {
   height: $input-height; /* In IE7, the height of the select element cannot be changed by height, only font-size */
   line-height: $input-height;
 }
@@ -90,19 +90,19 @@ select[size] {
 
 // Focus for select, file, radio, and checkbox
 select:focus,
-input[type='file']:focus,
-input[type='radio']:focus,
-input[type='checkbox']:focus {
+input[type="file"]:focus,
+input[type="radio"]:focus,
+input[type="checkbox"]:focus {
   @include tab-focus();
 }
 
 // not a big fan of number fields
-input[type='number']::-webkit-outer-spin-button,
-input[type='number']::-webkit-inner-spin-button {
+input[type="number"]::-webkit-outer-spin-button,
+input[type="number"]::-webkit-inner-spin-button {
   -webkit-appearance: none;
   margin: 0;
 }
-input[type='number'] {
+input[type="number"] {
   -moz-appearance: textfield;
 }
 // Placeholder
@@ -155,15 +155,15 @@ textarea[readonly] {
 }
 
 // Explicitly reset the colors here
-input[type='radio'][disabled],
-input[type='checkbox'][disabled],
-input[type='radio'][readonly],
-input[type='checkbox'][readonly] {
+input[type="radio"][disabled],
+input[type="checkbox"][disabled],
+input[type="radio"][readonly],
+input[type="checkbox"][readonly] {
   cursor: $cursor-disabled;
   background-color: transparent;
 }
 
-input[type='text'].input-fluid {
+input[type="text"].input-fluid {
   width: 100%;
   box-sizing: border-box;
   padding: 10px;
@@ -172,7 +172,7 @@ input[type='text'].input-fluid {
   height: 100%;
 }
 
-input[type='checkbox'].cr1 {
+input[type="checkbox"].cr1 {
   display: none;
 }
 
@@ -194,7 +194,7 @@ label.cr1 {
   cursor: pointer;
 }
 
-input[type='checkbox'].cr1:checked + label {
+input[type="checkbox"].cr1:checked + label {
   background: url($checkboxImageUrl) 0px -18px no-repeat;
 }
 
@@ -203,7 +203,7 @@ input[type='checkbox'].cr1:checked + label {
   display: block;
   overflow: hidden;
   padding-right: 10px;
-  input[type='text'] {
+  input[type="text"] {
     width: 100%;
     padding: 5px 6px;
     height: 100%;

+ 62 - 61
public/sass/base/_grafana_icons.scss

@@ -1,17 +1,18 @@
 @font-face {
-  font-family: 'grafana-icons';
-  src: url('../fonts/grafana-icons.eot?okx5td');
-  src: url('../fonts/grafana-icons.eot?okx5td#iefix') format('embedded-opentype'),
-    url('../fonts/grafana-icons.ttf?okx5td') format('truetype'),
-    url('../fonts/grafana-icons.woff?okx5td') format('woff'),
-    url('../fonts/grafana-icons.svg?okx5td#grafana-icons') format('svg');
+  font-family: "grafana-icons";
+  src: url("../fonts/grafana-icons.eot?okx5td");
+  src: url("../fonts/grafana-icons.eot?okx5td#iefix")
+      format("embedded-opentype"),
+    url("../fonts/grafana-icons.ttf?okx5td") format("truetype"),
+    url("../fonts/grafana-icons.woff?okx5td") format("woff"),
+    url("../fonts/grafana-icons.svg?okx5td#grafana-icons") format("svg");
   font-weight: normal;
   font-style: normal;
 }
 
 .icon-gf {
   /* use !important to prevent issues with browser extensions that change fonts */
-  font-family: 'grafana-icons' !important;
+  font-family: "grafana-icons" !important;
   speak: none;
   font-style: normal;
   font-weight: normal;
@@ -36,165 +37,165 @@
 }
 
 .icon-gf-raintank_wordmark:before {
-  content: '\e600';
+  content: "\e600";
 }
 .micon-gf-raintank_icn:before {
-  content: '\e601';
+  content: "\e601";
 }
 .icon-gf-raintank_r-icn:before {
-  content: '\e905';
+  content: "\e905";
 }
 .icon-gf-check-alt:before {
-  content: '\e603';
+  content: "\e603";
 }
 .icon-gf-check:before {
-  content: '\e604';
+  content: "\e604";
 }
 .icon-gf-collector:before {
-  content: '\e605';
+  content: "\e605";
 }
 .icon-gf-dashboard:before {
-  content: '\e606';
+  content: "\e606";
 }
 .icon-gf-panel:before {
-  content: '\e904';
+  content: "\e904";
 }
 .icon-gf-datasources:before {
-  content: '\e607';
+  content: "\e607";
 }
 .icon-gf-endpoint-tiny:before {
-  content: '\e608';
+  content: "\e608";
 }
 .icon-gf-endpoint:before {
-  content: '\e609';
+  content: "\e609";
 }
 .icon-gf-page:before {
-  content: '\e908';
+  content: "\e908";
 }
 .icon-gf-filter:before {
-  content: '\e60a';
+  content: "\e60a";
 }
 .icon-gf-status:before {
-  content: '\e60b';
+  content: "\e60b";
 }
 .icon-gf-monitoring:before {
-  content: '\e60c';
+  content: "\e60c";
 }
 .icon-gf-monitoring-tiny:before {
-  content: '\e620';
+  content: "\e620";
 }
 .icon-gf-jump-to-dashboard:before {
-  content: '\e60d';
+  content: "\e60d";
 }
 .icon-gf-warn,
 .icon-gf-warning:before {
-  content: '\e60e';
+  content: "\e60e";
 }
 .icon-gf-nodata:before {
-  content: '\e60f';
+  content: "\e60f";
 }
 .icon-gf-critical:before {
-  content: '\e610';
+  content: "\e610";
 }
 .icon-gf-crit:before {
-  content: '\e610';
+  content: "\e610";
 }
 .icon-gf-online:before {
-  content: '\e611';
+  content: "\e611";
 }
 .icon-gf-event-error:before {
-  content: '\e623';
+  content: "\e623";
 }
 .icon-gf-event:before {
-  content: '\e624';
+  content: "\e624";
 }
 .icon-gf-sadface:before {
-  content: '\e907';
+  content: "\e907";
 }
 .icon-gf-private-collector:before {
-  content: '\e612';
+  content: "\e612";
 }
 .icon-gf-alert:before {
-  content: '\e61f';
+  content: "\e61f";
 }
 .icon-gf-alert-disabled:before {
-  content: '\e621';
+  content: "\e621";
 }
 .icon-gf-refresh:before {
-  content: '\e613';
+  content: "\e613";
 }
 .icon-gf-save:before {
-  content: '\e614';
+  content: "\e614";
 }
 .icon-gf-share:before {
-  content: '\e616';
+  content: "\e616";
 }
 .icon-gf-star:before {
-  content: '\e617';
+  content: "\e617";
 }
 .icon-gf-search:before {
-  content: '\e618';
+  content: "\e618";
 }
 .icon-gf-settings:before {
-  content: '\e615';
+  content: "\e615";
 }
 .icon-gf-add:before {
-  content: '\e619';
+  content: "\e619";
 }
 .icon-gf-remove:before {
-  content: '\e61a';
+  content: "\e61a";
 }
 .icon-gf-video:before {
-  content: '\e61b';
+  content: "\e61b";
 }
 .icon-gf-bulk_action:before {
-  content: '\e61c';
+  content: "\e61c";
 }
 .icon-gf-grabber:before {
-  content: '\e90b';
+  content: "\e90b";
 }
 .icon-gf-users:before {
-  content: '\e622';
+  content: "\e622";
 }
 .icon-gf-globe:before {
-  content: '\e61d';
+  content: "\e61d";
 }
 .icon-gf-snapshot:before {
-  content: '\e61e';
+  content: "\e61e";
 }
 .icon-gf-play-grafana-icon:before {
-  content: '\e629';
+  content: "\e629";
 }
 .icon-gf-grafana-icon:before {
-  content: '\e625';
+  content: "\e625";
 }
 .icon-gf-email:before {
-  content: '\e628';
+  content: "\e628";
 }
 .icon-gf-stopwatch:before {
-  content: '\e626';
+  content: "\e626";
 }
 .icon-gf-skull:before {
-  content: '\e900';
+  content: "\e900";
 }
 .icon-gf-probe:before {
-  content: '\e901';
+  content: "\e901";
 }
 .icon-gf-apps:before {
-  content: '\e902';
+  content: "\e902";
 }
 .icon-gf-scale:before {
-  content: '\e906';
+  content: "\e906";
 }
 .icon-gf-pending:before {
-  content: '\e909';
+  content: "\e909";
 }
 .icon-gf-verified:before {
-  content: '\e90a';
+  content: "\e90a";
 }
 .icon-gf-worldping:before {
-  content: '\e627';
+  content: "\e627";
 }
 .icon-gf-grafana_wordmark:before {
-  content: '\e903';
+  content: "\e903";
 }

+ 10 - 10
public/sass/base/_normalize.scss

@@ -291,9 +291,9 @@ select {
 //
 
 button,
-html input[type='button'],
-// 1 input[type='reset'],
-input[type='submit'] {
+html input[type="button"],
+// 1 input[type="reset"],
+input[type="submit"] {
   -webkit-appearance: button; // 2
   cursor: pointer; // 3
 }
@@ -334,8 +334,8 @@ input {
 // 2. Remove excess padding in IE 8/9/10.
 //
 
-input[type='checkbox'],
-input[type='radio'] {
+input[type="checkbox"],
+input[type="radio"] {
   box-sizing: border-box; // 1
   padding: 0; // 2
 }
@@ -346,8 +346,8 @@ input[type='radio'] {
 // decrement button to change from `default` to `text`.
 //
 
-input[type='number']::-webkit-inner-spin-button,
-input[type='number']::-webkit-outer-spin-button {
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
   height: auto;
 }
 
@@ -355,7 +355,7 @@ input[type='number']::-webkit-outer-spin-button {
 // Address `appearance` set to `searchfield` in Safari and Chrome.
 //
 
-input[type='search'] {
+input[type="search"] {
   -webkit-appearance: textfield;
 }
 
@@ -365,8 +365,8 @@ input[type='search'] {
 // padding (and `textfield` appearance).
 //
 
-input[type='search']::-webkit-search-cancel-button,
-input[type='search']::-webkit-search-decoration {
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
   -webkit-appearance: none;
 }
 

+ 4 - 4
public/sass/base/_reboot.scss

@@ -87,7 +87,7 @@ body {
 // might still respond to pointer events.
 //
 // Credit: https://github.com/suitcss/base
-[tabindex='-1']:focus {
+[tabindex="-1"]:focus {
   outline: none !important;
 }
 
@@ -214,7 +214,7 @@ img {
 // for traditionally non-focusable elements with role="button"
 // see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
 
-[role='button'] {
+[role="button"] {
   cursor: pointer;
 }
 
@@ -231,7 +231,7 @@ img {
 a,
 area,
 button,
-[role='button'],
+[role="button"],
 input,
 label,
 select,
@@ -320,7 +320,7 @@ legend {
   //  border: 0;
 }
 
-input[type='search'] {
+input[type="search"] {
   // This overrides the extra rounded corners on search inputs in iOS so that our
   // `.form-control` class can properly style them. Note that this cannot simply
   // be added to `.form-control` as it's not specific enough. For details, see

+ 2 - 1
public/sass/base/font-awesome/_core.scss

@@ -3,7 +3,8 @@
 
 .#{$fa-css-prefix} {
   display: inline-block;
-  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
+  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;

+ 4 - 3
public/sass/base/font-awesome/_mixins.scss

@@ -3,7 +3,8 @@
 
 @mixin fa-icon() {
   display: inline-block;
-  font: normal normal normal #{$fa-font-size-base}/#{$fa-line-height-base} FontAwesome; // shortening font declaration
+  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;
@@ -11,14 +12,14 @@
 }
 
 @mixin fa-icon-rotate($degrees, $rotation) {
-  -ms-filter: 'progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation})';
+  -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)';
+  -ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation}, mirror=1)";
   -webkit-transform: scale($horiz, $vert);
   -ms-transform: scale($horiz, $vert);
   transform: scale($horiz, $vert);

+ 12 - 7
public/sass/base/font-awesome/_path.scss

@@ -2,13 +2,18 @@
  * -------------------------- */
 
 @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');
+  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;

+ 788 - 788
public/sass/base/font-awesome/_variables.scss

@@ -1,799 +1,799 @@
 // Variables
 // --------------------------
 
-$fa-font-path: '../fonts' !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-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';
-$fa-var-address-book-o: '\f2ba';
-$fa-var-address-card: '\f2bb';
-$fa-var-address-card-o: '\f2bc';
-$fa-var-adjust: '\f042';
-$fa-var-adn: '\f170';
-$fa-var-align-center: '\f037';
-$fa-var-align-justify: '\f039';
-$fa-var-align-left: '\f036';
-$fa-var-align-right: '\f038';
-$fa-var-amazon: '\f270';
-$fa-var-ambulance: '\f0f9';
-$fa-var-american-sign-language-interpreting: '\f2a3';
-$fa-var-anchor: '\f13d';
-$fa-var-android: '\f17b';
-$fa-var-angellist: '\f209';
-$fa-var-angle-double-down: '\f103';
-$fa-var-angle-double-left: '\f100';
-$fa-var-angle-double-right: '\f101';
-$fa-var-angle-double-up: '\f102';
-$fa-var-angle-down: '\f107';
-$fa-var-angle-left: '\f104';
-$fa-var-angle-right: '\f105';
-$fa-var-angle-up: '\f106';
-$fa-var-apple: '\f179';
-$fa-var-archive: '\f187';
-$fa-var-area-chart: '\f1fe';
-$fa-var-arrow-circle-down: '\f0ab';
-$fa-var-arrow-circle-left: '\f0a8';
-$fa-var-arrow-circle-o-down: '\f01a';
-$fa-var-arrow-circle-o-left: '\f190';
-$fa-var-arrow-circle-o-right: '\f18e';
-$fa-var-arrow-circle-o-up: '\f01b';
-$fa-var-arrow-circle-right: '\f0a9';
-$fa-var-arrow-circle-up: '\f0aa';
-$fa-var-arrow-down: '\f063';
-$fa-var-arrow-left: '\f060';
-$fa-var-arrow-right: '\f061';
-$fa-var-arrow-up: '\f062';
-$fa-var-arrows: '\f047';
-$fa-var-arrows-alt: '\f0b2';
-$fa-var-arrows-h: '\f07e';
-$fa-var-arrows-v: '\f07d';
-$fa-var-asl-interpreting: '\f2a3';
-$fa-var-assistive-listening-systems: '\f2a2';
-$fa-var-asterisk: '\f069';
-$fa-var-at: '\f1fa';
-$fa-var-audio-description: '\f29e';
-$fa-var-automobile: '\f1b9';
-$fa-var-backward: '\f04a';
-$fa-var-balance-scale: '\f24e';
-$fa-var-ban: '\f05e';
-$fa-var-bandcamp: '\f2d5';
-$fa-var-bank: '\f19c';
-$fa-var-bar-chart: '\f080';
-$fa-var-bar-chart-o: '\f080';
-$fa-var-barcode: '\f02a';
-$fa-var-bars: '\f0c9';
-$fa-var-bath: '\f2cd';
-$fa-var-bathtub: '\f2cd';
-$fa-var-battery: '\f240';
-$fa-var-battery-0: '\f244';
-$fa-var-battery-1: '\f243';
-$fa-var-battery-2: '\f242';
-$fa-var-battery-3: '\f241';
-$fa-var-battery-4: '\f240';
-$fa-var-battery-empty: '\f244';
-$fa-var-battery-full: '\f240';
-$fa-var-battery-half: '\f242';
-$fa-var-battery-quarter: '\f243';
-$fa-var-battery-three-quarters: '\f241';
-$fa-var-bed: '\f236';
-$fa-var-beer: '\f0fc';
-$fa-var-behance: '\f1b4';
-$fa-var-behance-square: '\f1b5';
-$fa-var-bell: '\f0f3';
-$fa-var-bell-o: '\f0a2';
-$fa-var-bell-slash: '\f1f6';
-$fa-var-bell-slash-o: '\f1f7';
-$fa-var-bicycle: '\f206';
-$fa-var-binoculars: '\f1e5';
-$fa-var-birthday-cake: '\f1fd';
-$fa-var-bitbucket: '\f171';
-$fa-var-bitbucket-square: '\f172';
-$fa-var-bitcoin: '\f15a';
-$fa-var-black-tie: '\f27e';
-$fa-var-blind: '\f29d';
-$fa-var-bluetooth: '\f293';
-$fa-var-bluetooth-b: '\f294';
-$fa-var-bold: '\f032';
-$fa-var-bolt: '\f0e7';
-$fa-var-bomb: '\f1e2';
-$fa-var-book: '\f02d';
-$fa-var-bookmark: '\f02e';
-$fa-var-bookmark-o: '\f097';
-$fa-var-braille: '\f2a1';
-$fa-var-briefcase: '\f0b1';
-$fa-var-btc: '\f15a';
-$fa-var-bug: '\f188';
-$fa-var-building: '\f1ad';
-$fa-var-building-o: '\f0f7';
-$fa-var-bullhorn: '\f0a1';
-$fa-var-bullseye: '\f140';
-$fa-var-bus: '\f207';
-$fa-var-buysellads: '\f20d';
-$fa-var-cab: '\f1ba';
-$fa-var-calculator: '\f1ec';
-$fa-var-calendar: '\f073';
-$fa-var-calendar-check-o: '\f274';
-$fa-var-calendar-minus-o: '\f272';
-$fa-var-calendar-o: '\f133';
-$fa-var-calendar-plus-o: '\f271';
-$fa-var-calendar-times-o: '\f273';
-$fa-var-camera: '\f030';
-$fa-var-camera-retro: '\f083';
-$fa-var-car: '\f1b9';
-$fa-var-caret-down: '\f0d7';
-$fa-var-caret-left: '\f0d9';
-$fa-var-caret-right: '\f0da';
-$fa-var-caret-square-o-down: '\f150';
-$fa-var-caret-square-o-left: '\f191';
-$fa-var-caret-square-o-right: '\f152';
-$fa-var-caret-square-o-up: '\f151';
-$fa-var-caret-up: '\f0d8';
-$fa-var-cart-arrow-down: '\f218';
-$fa-var-cart-plus: '\f217';
-$fa-var-cc: '\f20a';
-$fa-var-cc-amex: '\f1f3';
-$fa-var-cc-diners-club: '\f24c';
-$fa-var-cc-discover: '\f1f2';
-$fa-var-cc-jcb: '\f24b';
-$fa-var-cc-mastercard: '\f1f1';
-$fa-var-cc-paypal: '\f1f4';
-$fa-var-cc-stripe: '\f1f5';
-$fa-var-cc-visa: '\f1f0';
-$fa-var-certificate: '\f0a3';
-$fa-var-chain: '\f0c1';
-$fa-var-chain-broken: '\f127';
-$fa-var-check: '\f00c';
-$fa-var-check-circle: '\f058';
-$fa-var-check-circle-o: '\f05d';
-$fa-var-check-square: '\f14a';
-$fa-var-check-square-o: '\f046';
-$fa-var-chevron-circle-down: '\f13a';
-$fa-var-chevron-circle-left: '\f137';
-$fa-var-chevron-circle-right: '\f138';
-$fa-var-chevron-circle-up: '\f139';
-$fa-var-chevron-down: '\f078';
-$fa-var-chevron-left: '\f053';
-$fa-var-chevron-right: '\f054';
-$fa-var-chevron-up: '\f077';
-$fa-var-child: '\f1ae';
-$fa-var-chrome: '\f268';
-$fa-var-circle: '\f111';
-$fa-var-circle-o: '\f10c';
-$fa-var-circle-o-notch: '\f1ce';
-$fa-var-circle-thin: '\f1db';
-$fa-var-clipboard: '\f0ea';
-$fa-var-clock-o: '\f017';
-$fa-var-clone: '\f24d';
-$fa-var-close: '\f00d';
-$fa-var-cloud: '\f0c2';
-$fa-var-cloud-download: '\f0ed';
-$fa-var-cloud-upload: '\f0ee';
-$fa-var-cny: '\f157';
-$fa-var-code: '\f121';
-$fa-var-code-fork: '\f126';
-$fa-var-codepen: '\f1cb';
-$fa-var-codiepie: '\f284';
-$fa-var-coffee: '\f0f4';
-$fa-var-cog: '\f013';
-$fa-var-cogs: '\f085';
-$fa-var-columns: '\f0db';
-$fa-var-comment: '\f075';
-$fa-var-comment-o: '\f0e5';
-$fa-var-commenting: '\f27a';
-$fa-var-commenting-o: '\f27b';
-$fa-var-comments: '\f086';
-$fa-var-comments-o: '\f0e6';
-$fa-var-compass: '\f14e';
-$fa-var-compress: '\f066';
-$fa-var-connectdevelop: '\f20e';
-$fa-var-contao: '\f26d';
-$fa-var-copy: '\f0c5';
-$fa-var-copyright: '\f1f9';
-$fa-var-creative-commons: '\f25e';
-$fa-var-credit-card: '\f09d';
-$fa-var-credit-card-alt: '\f283';
-$fa-var-crop: '\f125';
-$fa-var-crosshairs: '\f05b';
-$fa-var-css3: '\f13c';
-$fa-var-cube: '\f1b2';
-$fa-var-cubes: '\f1b3';
-$fa-var-cut: '\f0c4';
-$fa-var-cutlery: '\f0f5';
-$fa-var-dashboard: '\f0e4';
-$fa-var-dashcube: '\f210';
-$fa-var-database: '\f1c0';
-$fa-var-deaf: '\f2a4';
-$fa-var-deafness: '\f2a4';
-$fa-var-dedent: '\f03b';
-$fa-var-delicious: '\f1a5';
-$fa-var-desktop: '\f108';
-$fa-var-deviantart: '\f1bd';
-$fa-var-diamond: '\f219';
-$fa-var-digg: '\f1a6';
-$fa-var-dollar: '\f155';
-$fa-var-dot-circle-o: '\f192';
-$fa-var-download: '\f019';
-$fa-var-dribbble: '\f17d';
-$fa-var-drivers-license: '\f2c2';
-$fa-var-drivers-license-o: '\f2c3';
-$fa-var-dropbox: '\f16b';
-$fa-var-drupal: '\f1a9';
-$fa-var-edge: '\f282';
-$fa-var-edit: '\f044';
-$fa-var-eercast: '\f2da';
-$fa-var-eject: '\f052';
-$fa-var-ellipsis-h: '\f141';
-$fa-var-ellipsis-v: '\f142';
-$fa-var-empire: '\f1d1';
-$fa-var-envelope: '\f0e0';
-$fa-var-envelope-o: '\f003';
-$fa-var-envelope-open: '\f2b6';
-$fa-var-envelope-open-o: '\f2b7';
-$fa-var-envelope-square: '\f199';
-$fa-var-envira: '\f299';
-$fa-var-eraser: '\f12d';
-$fa-var-etsy: '\f2d7';
-$fa-var-eur: '\f153';
-$fa-var-euro: '\f153';
-$fa-var-exchange: '\f0ec';
-$fa-var-exclamation: '\f12a';
-$fa-var-exclamation-circle: '\f06a';
-$fa-var-exclamation-triangle: '\f071';
-$fa-var-expand: '\f065';
-$fa-var-expeditedssl: '\f23e';
-$fa-var-external-link: '\f08e';
-$fa-var-external-link-square: '\f14c';
-$fa-var-eye: '\f06e';
-$fa-var-eye-slash: '\f070';
-$fa-var-eyedropper: '\f1fb';
-$fa-var-fa: '\f2b4';
-$fa-var-facebook: '\f09a';
-$fa-var-facebook-f: '\f09a';
-$fa-var-facebook-official: '\f230';
-$fa-var-facebook-square: '\f082';
-$fa-var-fast-backward: '\f049';
-$fa-var-fast-forward: '\f050';
-$fa-var-fax: '\f1ac';
-$fa-var-feed: '\f09e';
-$fa-var-female: '\f182';
-$fa-var-fighter-jet: '\f0fb';
-$fa-var-file: '\f15b';
-$fa-var-file-archive-o: '\f1c6';
-$fa-var-file-audio-o: '\f1c7';
-$fa-var-file-code-o: '\f1c9';
-$fa-var-file-excel-o: '\f1c3';
-$fa-var-file-image-o: '\f1c5';
-$fa-var-file-movie-o: '\f1c8';
-$fa-var-file-o: '\f016';
-$fa-var-file-pdf-o: '\f1c1';
-$fa-var-file-photo-o: '\f1c5';
-$fa-var-file-picture-o: '\f1c5';
-$fa-var-file-powerpoint-o: '\f1c4';
-$fa-var-file-sound-o: '\f1c7';
-$fa-var-file-text: '\f15c';
-$fa-var-file-text-o: '\f0f6';
-$fa-var-file-video-o: '\f1c8';
-$fa-var-file-word-o: '\f1c2';
-$fa-var-file-zip-o: '\f1c6';
-$fa-var-files-o: '\f0c5';
-$fa-var-film: '\f008';
-$fa-var-filter: '\f0b0';
-$fa-var-fire: '\f06d';
-$fa-var-fire-extinguisher: '\f134';
-$fa-var-firefox: '\f269';
-$fa-var-first-order: '\f2b0';
-$fa-var-flag: '\f024';
-$fa-var-flag-checkered: '\f11e';
-$fa-var-flag-o: '\f11d';
-$fa-var-flash: '\f0e7';
-$fa-var-flask: '\f0c3';
-$fa-var-flickr: '\f16e';
-$fa-var-floppy-o: '\f0c7';
-$fa-var-folder: '\f07b';
-$fa-var-folder-o: '\f114';
-$fa-var-folder-open: '\f07c';
-$fa-var-folder-open-o: '\f115';
-$fa-var-font: '\f031';
-$fa-var-font-awesome: '\f2b4';
-$fa-var-fonticons: '\f280';
-$fa-var-fort-awesome: '\f286';
-$fa-var-forumbee: '\f211';
-$fa-var-forward: '\f04e';
-$fa-var-foursquare: '\f180';
-$fa-var-free-code-camp: '\f2c5';
-$fa-var-frown-o: '\f119';
-$fa-var-futbol-o: '\f1e3';
-$fa-var-gamepad: '\f11b';
-$fa-var-gavel: '\f0e3';
-$fa-var-gbp: '\f154';
-$fa-var-ge: '\f1d1';
-$fa-var-gear: '\f013';
-$fa-var-gears: '\f085';
-$fa-var-genderless: '\f22d';
-$fa-var-get-pocket: '\f265';
-$fa-var-gg: '\f260';
-$fa-var-gg-circle: '\f261';
-$fa-var-gift: '\f06b';
-$fa-var-git: '\f1d3';
-$fa-var-git-square: '\f1d2';
-$fa-var-github: '\f09b';
-$fa-var-github-alt: '\f113';
-$fa-var-github-square: '\f092';
-$fa-var-gitlab: '\f296';
-$fa-var-gittip: '\f184';
-$fa-var-glass: '\f000';
-$fa-var-glide: '\f2a5';
-$fa-var-glide-g: '\f2a6';
-$fa-var-globe: '\f0ac';
-$fa-var-google: '\f1a0';
-$fa-var-google-plus: '\f0d5';
-$fa-var-google-plus-circle: '\f2b3';
-$fa-var-google-plus-official: '\f2b3';
-$fa-var-google-plus-square: '\f0d4';
-$fa-var-google-wallet: '\f1ee';
-$fa-var-graduation-cap: '\f19d';
-$fa-var-gratipay: '\f184';
-$fa-var-grav: '\f2d6';
-$fa-var-group: '\f0c0';
-$fa-var-h-square: '\f0fd';
-$fa-var-hacker-news: '\f1d4';
-$fa-var-hand-grab-o: '\f255';
-$fa-var-hand-lizard-o: '\f258';
-$fa-var-hand-o-down: '\f0a7';
-$fa-var-hand-o-left: '\f0a5';
-$fa-var-hand-o-right: '\f0a4';
-$fa-var-hand-o-up: '\f0a6';
-$fa-var-hand-paper-o: '\f256';
-$fa-var-hand-peace-o: '\f25b';
-$fa-var-hand-pointer-o: '\f25a';
-$fa-var-hand-rock-o: '\f255';
-$fa-var-hand-scissors-o: '\f257';
-$fa-var-hand-spock-o: '\f259';
-$fa-var-hand-stop-o: '\f256';
-$fa-var-handshake-o: '\f2b5';
-$fa-var-hard-of-hearing: '\f2a4';
-$fa-var-hashtag: '\f292';
-$fa-var-hdd-o: '\f0a0';
-$fa-var-header: '\f1dc';
-$fa-var-headphones: '\f025';
-$fa-var-heart: '\f004';
-$fa-var-heart-o: '\f08a';
-$fa-var-heartbeat: '\f21e';
-$fa-var-history: '\f1da';
-$fa-var-home: '\f015';
-$fa-var-hospital-o: '\f0f8';
-$fa-var-hotel: '\f236';
-$fa-var-hourglass: '\f254';
-$fa-var-hourglass-1: '\f251';
-$fa-var-hourglass-2: '\f252';
-$fa-var-hourglass-3: '\f253';
-$fa-var-hourglass-end: '\f253';
-$fa-var-hourglass-half: '\f252';
-$fa-var-hourglass-o: '\f250';
-$fa-var-hourglass-start: '\f251';
-$fa-var-houzz: '\f27c';
-$fa-var-html5: '\f13b';
-$fa-var-i-cursor: '\f246';
-$fa-var-id-badge: '\f2c1';
-$fa-var-id-card: '\f2c2';
-$fa-var-id-card-o: '\f2c3';
-$fa-var-ils: '\f20b';
-$fa-var-image: '\f03e';
-$fa-var-imdb: '\f2d8';
-$fa-var-inbox: '\f01c';
-$fa-var-indent: '\f03c';
-$fa-var-industry: '\f275';
-$fa-var-info: '\f129';
-$fa-var-info-circle: '\f05a';
-$fa-var-inr: '\f156';
-$fa-var-instagram: '\f16d';
-$fa-var-institution: '\f19c';
-$fa-var-internet-explorer: '\f26b';
-$fa-var-intersex: '\f224';
-$fa-var-ioxhost: '\f208';
-$fa-var-italic: '\f033';
-$fa-var-joomla: '\f1aa';
-$fa-var-jpy: '\f157';
-$fa-var-jsfiddle: '\f1cc';
-$fa-var-key: '\f084';
-$fa-var-keyboard-o: '\f11c';
-$fa-var-krw: '\f159';
-$fa-var-language: '\f1ab';
-$fa-var-laptop: '\f109';
-$fa-var-lastfm: '\f202';
-$fa-var-lastfm-square: '\f203';
-$fa-var-leaf: '\f06c';
-$fa-var-leanpub: '\f212';
-$fa-var-legal: '\f0e3';
-$fa-var-lemon-o: '\f094';
-$fa-var-level-down: '\f149';
-$fa-var-level-up: '\f148';
-$fa-var-life-bouy: '\f1cd';
-$fa-var-life-buoy: '\f1cd';
-$fa-var-life-ring: '\f1cd';
-$fa-var-life-saver: '\f1cd';
-$fa-var-lightbulb-o: '\f0eb';
-$fa-var-line-chart: '\f201';
-$fa-var-link: '\f0c1';
-$fa-var-linkedin: '\f0e1';
-$fa-var-linkedin-square: '\f08c';
-$fa-var-linode: '\f2b8';
-$fa-var-linux: '\f17c';
-$fa-var-list: '\f03a';
-$fa-var-list-alt: '\f022';
-$fa-var-list-ol: '\f0cb';
-$fa-var-list-ul: '\f0ca';
-$fa-var-location-arrow: '\f124';
-$fa-var-lock: '\f023';
-$fa-var-long-arrow-down: '\f175';
-$fa-var-long-arrow-left: '\f177';
-$fa-var-long-arrow-right: '\f178';
-$fa-var-long-arrow-up: '\f176';
-$fa-var-low-vision: '\f2a8';
-$fa-var-magic: '\f0d0';
-$fa-var-magnet: '\f076';
-$fa-var-mail-forward: '\f064';
-$fa-var-mail-reply: '\f112';
-$fa-var-mail-reply-all: '\f122';
-$fa-var-male: '\f183';
-$fa-var-map: '\f279';
-$fa-var-map-marker: '\f041';
-$fa-var-map-o: '\f278';
-$fa-var-map-pin: '\f276';
-$fa-var-map-signs: '\f277';
-$fa-var-mars: '\f222';
-$fa-var-mars-double: '\f227';
-$fa-var-mars-stroke: '\f229';
-$fa-var-mars-stroke-h: '\f22b';
-$fa-var-mars-stroke-v: '\f22a';
-$fa-var-maxcdn: '\f136';
-$fa-var-meanpath: '\f20c';
-$fa-var-medium: '\f23a';
-$fa-var-medkit: '\f0fa';
-$fa-var-meetup: '\f2e0';
-$fa-var-meh-o: '\f11a';
-$fa-var-mercury: '\f223';
-$fa-var-microchip: '\f2db';
-$fa-var-microphone: '\f130';
-$fa-var-microphone-slash: '\f131';
-$fa-var-minus: '\f068';
-$fa-var-minus-circle: '\f056';
-$fa-var-minus-square: '\f146';
-$fa-var-minus-square-o: '\f147';
-$fa-var-mixcloud: '\f289';
-$fa-var-mobile: '\f10b';
-$fa-var-mobile-phone: '\f10b';
-$fa-var-modx: '\f285';
-$fa-var-money: '\f0d6';
-$fa-var-moon-o: '\f186';
-$fa-var-mortar-board: '\f19d';
-$fa-var-motorcycle: '\f21c';
-$fa-var-mouse-pointer: '\f245';
-$fa-var-music: '\f001';
-$fa-var-navicon: '\f0c9';
-$fa-var-neuter: '\f22c';
-$fa-var-newspaper-o: '\f1ea';
-$fa-var-object-group: '\f247';
-$fa-var-object-ungroup: '\f248';
-$fa-var-odnoklassniki: '\f263';
-$fa-var-odnoklassniki-square: '\f264';
-$fa-var-opencart: '\f23d';
-$fa-var-openid: '\f19b';
-$fa-var-opera: '\f26a';
-$fa-var-optin-monster: '\f23c';
-$fa-var-outdent: '\f03b';
-$fa-var-pagelines: '\f18c';
-$fa-var-paint-brush: '\f1fc';
-$fa-var-paper-plane: '\f1d8';
-$fa-var-paper-plane-o: '\f1d9';
-$fa-var-paperclip: '\f0c6';
-$fa-var-paragraph: '\f1dd';
-$fa-var-paste: '\f0ea';
-$fa-var-pause: '\f04c';
-$fa-var-pause-circle: '\f28b';
-$fa-var-pause-circle-o: '\f28c';
-$fa-var-paw: '\f1b0';
-$fa-var-paypal: '\f1ed';
-$fa-var-pencil: '\f040';
-$fa-var-pencil-square: '\f14b';
-$fa-var-pencil-square-o: '\f044';
-$fa-var-percent: '\f295';
-$fa-var-phone: '\f095';
-$fa-var-phone-square: '\f098';
-$fa-var-photo: '\f03e';
-$fa-var-picture-o: '\f03e';
-$fa-var-pie-chart: '\f200';
-$fa-var-pied-piper: '\f2ae';
-$fa-var-pied-piper-alt: '\f1a8';
-$fa-var-pied-piper-pp: '\f1a7';
-$fa-var-pinterest: '\f0d2';
-$fa-var-pinterest-p: '\f231';
-$fa-var-pinterest-square: '\f0d3';
-$fa-var-plane: '\f072';
-$fa-var-play: '\f04b';
-$fa-var-play-circle: '\f144';
-$fa-var-play-circle-o: '\f01d';
-$fa-var-plug: '\f1e6';
-$fa-var-plus: '\f067';
-$fa-var-plus-circle: '\f055';
-$fa-var-plus-square: '\f0fe';
-$fa-var-plus-square-o: '\f196';
-$fa-var-podcast: '\f2ce';
-$fa-var-power-off: '\f011';
-$fa-var-print: '\f02f';
-$fa-var-product-hunt: '\f288';
-$fa-var-puzzle-piece: '\f12e';
-$fa-var-qq: '\f1d6';
-$fa-var-qrcode: '\f029';
-$fa-var-question: '\f128';
-$fa-var-question-circle: '\f059';
-$fa-var-question-circle-o: '\f29c';
-$fa-var-quora: '\f2c4';
-$fa-var-quote-left: '\f10d';
-$fa-var-quote-right: '\f10e';
-$fa-var-ra: '\f1d0';
-$fa-var-random: '\f074';
-$fa-var-ravelry: '\f2d9';
-$fa-var-rebel: '\f1d0';
-$fa-var-recycle: '\f1b8';
-$fa-var-reddit: '\f1a1';
-$fa-var-reddit-alien: '\f281';
-$fa-var-reddit-square: '\f1a2';
-$fa-var-refresh: '\f021';
-$fa-var-registered: '\f25d';
-$fa-var-remove: '\f00d';
-$fa-var-renren: '\f18b';
-$fa-var-reorder: '\f0c9';
-$fa-var-repeat: '\f01e';
-$fa-var-reply: '\f112';
-$fa-var-reply-all: '\f122';
-$fa-var-resistance: '\f1d0';
-$fa-var-retweet: '\f079';
-$fa-var-rmb: '\f157';
-$fa-var-road: '\f018';
-$fa-var-rocket: '\f135';
-$fa-var-rotate-left: '\f0e2';
-$fa-var-rotate-right: '\f01e';
-$fa-var-rouble: '\f158';
-$fa-var-rss: '\f09e';
-$fa-var-rss-square: '\f143';
-$fa-var-rub: '\f158';
-$fa-var-ruble: '\f158';
-$fa-var-rupee: '\f156';
-$fa-var-s15: '\f2cd';
-$fa-var-safari: '\f267';
-$fa-var-save: '\f0c7';
-$fa-var-scissors: '\f0c4';
-$fa-var-scribd: '\f28a';
-$fa-var-search: '\f002';
-$fa-var-search-minus: '\f010';
-$fa-var-search-plus: '\f00e';
-$fa-var-sellsy: '\f213';
-$fa-var-send: '\f1d8';
-$fa-var-send-o: '\f1d9';
-$fa-var-server: '\f233';
-$fa-var-share: '\f064';
-$fa-var-share-alt: '\f1e0';
-$fa-var-share-alt-square: '\f1e1';
-$fa-var-share-square: '\f14d';
-$fa-var-share-square-o: '\f045';
-$fa-var-shekel: '\f20b';
-$fa-var-sheqel: '\f20b';
-$fa-var-shield: '\f132';
-$fa-var-ship: '\f21a';
-$fa-var-shirtsinbulk: '\f214';
-$fa-var-shopping-bag: '\f290';
-$fa-var-shopping-basket: '\f291';
-$fa-var-shopping-cart: '\f07a';
-$fa-var-shower: '\f2cc';
-$fa-var-sign-in: '\f090';
-$fa-var-sign-language: '\f2a7';
-$fa-var-sign-out: '\f08b';
-$fa-var-signal: '\f012';
-$fa-var-signing: '\f2a7';
-$fa-var-simplybuilt: '\f215';
-$fa-var-sitemap: '\f0e8';
-$fa-var-skyatlas: '\f216';
-$fa-var-skype: '\f17e';
-$fa-var-slack: '\f198';
-$fa-var-sliders: '\f1de';
-$fa-var-slideshare: '\f1e7';
-$fa-var-smile-o: '\f118';
-$fa-var-snapchat: '\f2ab';
-$fa-var-snapchat-ghost: '\f2ac';
-$fa-var-snapchat-square: '\f2ad';
-$fa-var-snowflake-o: '\f2dc';
-$fa-var-soccer-ball-o: '\f1e3';
-$fa-var-sort: '\f0dc';
-$fa-var-sort-alpha-asc: '\f15d';
-$fa-var-sort-alpha-desc: '\f15e';
-$fa-var-sort-amount-asc: '\f160';
-$fa-var-sort-amount-desc: '\f161';
-$fa-var-sort-asc: '\f0de';
-$fa-var-sort-desc: '\f0dd';
-$fa-var-sort-down: '\f0dd';
-$fa-var-sort-numeric-asc: '\f162';
-$fa-var-sort-numeric-desc: '\f163';
-$fa-var-sort-up: '\f0de';
-$fa-var-soundcloud: '\f1be';
-$fa-var-space-shuttle: '\f197';
-$fa-var-spinner: '\f110';
-$fa-var-spoon: '\f1b1';
-$fa-var-spotify: '\f1bc';
-$fa-var-square: '\f0c8';
-$fa-var-square-o: '\f096';
-$fa-var-stack-exchange: '\f18d';
-$fa-var-stack-overflow: '\f16c';
-$fa-var-star: '\f005';
-$fa-var-star-half: '\f089';
-$fa-var-star-half-empty: '\f123';
-$fa-var-star-half-full: '\f123';
-$fa-var-star-half-o: '\f123';
-$fa-var-star-o: '\f006';
-$fa-var-steam: '\f1b6';
-$fa-var-steam-square: '\f1b7';
-$fa-var-step-backward: '\f048';
-$fa-var-step-forward: '\f051';
-$fa-var-stethoscope: '\f0f1';
-$fa-var-sticky-note: '\f249';
-$fa-var-sticky-note-o: '\f24a';
-$fa-var-stop: '\f04d';
-$fa-var-stop-circle: '\f28d';
-$fa-var-stop-circle-o: '\f28e';
-$fa-var-street-view: '\f21d';
-$fa-var-strikethrough: '\f0cc';
-$fa-var-stumbleupon: '\f1a4';
-$fa-var-stumbleupon-circle: '\f1a3';
-$fa-var-subscript: '\f12c';
-$fa-var-subway: '\f239';
-$fa-var-suitcase: '\f0f2';
-$fa-var-sun-o: '\f185';
-$fa-var-superpowers: '\f2dd';
-$fa-var-superscript: '\f12b';
-$fa-var-support: '\f1cd';
-$fa-var-table: '\f0ce';
-$fa-var-tablet: '\f10a';
-$fa-var-tachometer: '\f0e4';
-$fa-var-tag: '\f02b';
-$fa-var-tags: '\f02c';
-$fa-var-tasks: '\f0ae';
-$fa-var-taxi: '\f1ba';
-$fa-var-telegram: '\f2c6';
-$fa-var-television: '\f26c';
-$fa-var-tencent-weibo: '\f1d5';
-$fa-var-terminal: '\f120';
-$fa-var-text-height: '\f034';
-$fa-var-text-width: '\f035';
-$fa-var-th: '\f00a';
-$fa-var-th-large: '\f009';
-$fa-var-th-list: '\f00b';
-$fa-var-themeisle: '\f2b2';
-$fa-var-thermometer: '\f2c7';
-$fa-var-thermometer-0: '\f2cb';
-$fa-var-thermometer-1: '\f2ca';
-$fa-var-thermometer-2: '\f2c9';
-$fa-var-thermometer-3: '\f2c8';
-$fa-var-thermometer-4: '\f2c7';
-$fa-var-thermometer-empty: '\f2cb';
-$fa-var-thermometer-full: '\f2c7';
-$fa-var-thermometer-half: '\f2c9';
-$fa-var-thermometer-quarter: '\f2ca';
-$fa-var-thermometer-three-quarters: '\f2c8';
-$fa-var-thumb-tack: '\f08d';
-$fa-var-thumbs-down: '\f165';
-$fa-var-thumbs-o-down: '\f088';
-$fa-var-thumbs-o-up: '\f087';
-$fa-var-thumbs-up: '\f164';
-$fa-var-ticket: '\f145';
-$fa-var-times: '\f00d';
-$fa-var-times-circle: '\f057';
-$fa-var-times-circle-o: '\f05c';
-$fa-var-times-rectangle: '\f2d3';
-$fa-var-times-rectangle-o: '\f2d4';
-$fa-var-tint: '\f043';
-$fa-var-toggle-down: '\f150';
-$fa-var-toggle-left: '\f191';
-$fa-var-toggle-off: '\f204';
-$fa-var-toggle-on: '\f205';
-$fa-var-toggle-right: '\f152';
-$fa-var-toggle-up: '\f151';
-$fa-var-trademark: '\f25c';
-$fa-var-train: '\f238';
-$fa-var-transgender: '\f224';
-$fa-var-transgender-alt: '\f225';
-$fa-var-trash: '\f1f8';
-$fa-var-trash-o: '\f014';
-$fa-var-tree: '\f1bb';
-$fa-var-trello: '\f181';
-$fa-var-tripadvisor: '\f262';
-$fa-var-trophy: '\f091';
-$fa-var-truck: '\f0d1';
-$fa-var-try: '\f195';
-$fa-var-tty: '\f1e4';
-$fa-var-tumblr: '\f173';
-$fa-var-tumblr-square: '\f174';
-$fa-var-turkish-lira: '\f195';
-$fa-var-tv: '\f26c';
-$fa-var-twitch: '\f1e8';
-$fa-var-twitter: '\f099';
-$fa-var-twitter-square: '\f081';
-$fa-var-umbrella: '\f0e9';
-$fa-var-underline: '\f0cd';
-$fa-var-undo: '\f0e2';
-$fa-var-universal-access: '\f29a';
-$fa-var-university: '\f19c';
-$fa-var-unlink: '\f127';
-$fa-var-unlock: '\f09c';
-$fa-var-unlock-alt: '\f13e';
-$fa-var-unsorted: '\f0dc';
-$fa-var-upload: '\f093';
-$fa-var-usb: '\f287';
-$fa-var-usd: '\f155';
-$fa-var-user: '\f007';
-$fa-var-user-circle: '\f2bd';
-$fa-var-user-circle-o: '\f2be';
-$fa-var-user-md: '\f0f0';
-$fa-var-user-o: '\f2c0';
-$fa-var-user-plus: '\f234';
-$fa-var-user-secret: '\f21b';
-$fa-var-user-times: '\f235';
-$fa-var-users: '\f0c0';
-$fa-var-vcard: '\f2bb';
-$fa-var-vcard-o: '\f2bc';
-$fa-var-venus: '\f221';
-$fa-var-venus-double: '\f226';
-$fa-var-venus-mars: '\f228';
-$fa-var-viacoin: '\f237';
-$fa-var-viadeo: '\f2a9';
-$fa-var-viadeo-square: '\f2aa';
-$fa-var-video-camera: '\f03d';
-$fa-var-vimeo: '\f27d';
-$fa-var-vimeo-square: '\f194';
-$fa-var-vine: '\f1ca';
-$fa-var-vk: '\f189';
-$fa-var-volume-control-phone: '\f2a0';
-$fa-var-volume-down: '\f027';
-$fa-var-volume-off: '\f026';
-$fa-var-volume-up: '\f028';
-$fa-var-warning: '\f071';
-$fa-var-wechat: '\f1d7';
-$fa-var-weibo: '\f18a';
-$fa-var-weixin: '\f1d7';
-$fa-var-whatsapp: '\f232';
-$fa-var-wheelchair: '\f193';
-$fa-var-wheelchair-alt: '\f29b';
-$fa-var-wifi: '\f1eb';
-$fa-var-wikipedia-w: '\f266';
-$fa-var-window-close: '\f2d3';
-$fa-var-window-close-o: '\f2d4';
-$fa-var-window-maximize: '\f2d0';
-$fa-var-window-minimize: '\f2d1';
-$fa-var-window-restore: '\f2d2';
-$fa-var-windows: '\f17a';
-$fa-var-won: '\f159';
-$fa-var-wordpress: '\f19a';
-$fa-var-wpbeginner: '\f297';
-$fa-var-wpexplorer: '\f2de';
-$fa-var-wpforms: '\f298';
-$fa-var-wrench: '\f0ad';
-$fa-var-xing: '\f168';
-$fa-var-xing-square: '\f169';
-$fa-var-y-combinator: '\f23b';
-$fa-var-y-combinator-square: '\f1d4';
-$fa-var-yahoo: '\f19e';
-$fa-var-yc: '\f23b';
-$fa-var-yc-square: '\f1d4';
-$fa-var-yelp: '\f1e9';
-$fa-var-yen: '\f157';
-$fa-var-yoast: '\f2b1';
-$fa-var-youtube: '\f167';
-$fa-var-youtube-play: '\f16a';
-$fa-var-youtube-square: '\f166';
+$fa-var-500px: "\f26e";
+$fa-var-address-book: "\f2b9";
+$fa-var-address-book-o: "\f2ba";
+$fa-var-address-card: "\f2bb";
+$fa-var-address-card-o: "\f2bc";
+$fa-var-adjust: "\f042";
+$fa-var-adn: "\f170";
+$fa-var-align-center: "\f037";
+$fa-var-align-justify: "\f039";
+$fa-var-align-left: "\f036";
+$fa-var-align-right: "\f038";
+$fa-var-amazon: "\f270";
+$fa-var-ambulance: "\f0f9";
+$fa-var-american-sign-language-interpreting: "\f2a3";
+$fa-var-anchor: "\f13d";
+$fa-var-android: "\f17b";
+$fa-var-angellist: "\f209";
+$fa-var-angle-double-down: "\f103";
+$fa-var-angle-double-left: "\f100";
+$fa-var-angle-double-right: "\f101";
+$fa-var-angle-double-up: "\f102";
+$fa-var-angle-down: "\f107";
+$fa-var-angle-left: "\f104";
+$fa-var-angle-right: "\f105";
+$fa-var-angle-up: "\f106";
+$fa-var-apple: "\f179";
+$fa-var-archive: "\f187";
+$fa-var-area-chart: "\f1fe";
+$fa-var-arrow-circle-down: "\f0ab";
+$fa-var-arrow-circle-left: "\f0a8";
+$fa-var-arrow-circle-o-down: "\f01a";
+$fa-var-arrow-circle-o-left: "\f190";
+$fa-var-arrow-circle-o-right: "\f18e";
+$fa-var-arrow-circle-o-up: "\f01b";
+$fa-var-arrow-circle-right: "\f0a9";
+$fa-var-arrow-circle-up: "\f0aa";
+$fa-var-arrow-down: "\f063";
+$fa-var-arrow-left: "\f060";
+$fa-var-arrow-right: "\f061";
+$fa-var-arrow-up: "\f062";
+$fa-var-arrows: "\f047";
+$fa-var-arrows-alt: "\f0b2";
+$fa-var-arrows-h: "\f07e";
+$fa-var-arrows-v: "\f07d";
+$fa-var-asl-interpreting: "\f2a3";
+$fa-var-assistive-listening-systems: "\f2a2";
+$fa-var-asterisk: "\f069";
+$fa-var-at: "\f1fa";
+$fa-var-audio-description: "\f29e";
+$fa-var-automobile: "\f1b9";
+$fa-var-backward: "\f04a";
+$fa-var-balance-scale: "\f24e";
+$fa-var-ban: "\f05e";
+$fa-var-bandcamp: "\f2d5";
+$fa-var-bank: "\f19c";
+$fa-var-bar-chart: "\f080";
+$fa-var-bar-chart-o: "\f080";
+$fa-var-barcode: "\f02a";
+$fa-var-bars: "\f0c9";
+$fa-var-bath: "\f2cd";
+$fa-var-bathtub: "\f2cd";
+$fa-var-battery: "\f240";
+$fa-var-battery-0: "\f244";
+$fa-var-battery-1: "\f243";
+$fa-var-battery-2: "\f242";
+$fa-var-battery-3: "\f241";
+$fa-var-battery-4: "\f240";
+$fa-var-battery-empty: "\f244";
+$fa-var-battery-full: "\f240";
+$fa-var-battery-half: "\f242";
+$fa-var-battery-quarter: "\f243";
+$fa-var-battery-three-quarters: "\f241";
+$fa-var-bed: "\f236";
+$fa-var-beer: "\f0fc";
+$fa-var-behance: "\f1b4";
+$fa-var-behance-square: "\f1b5";
+$fa-var-bell: "\f0f3";
+$fa-var-bell-o: "\f0a2";
+$fa-var-bell-slash: "\f1f6";
+$fa-var-bell-slash-o: "\f1f7";
+$fa-var-bicycle: "\f206";
+$fa-var-binoculars: "\f1e5";
+$fa-var-birthday-cake: "\f1fd";
+$fa-var-bitbucket: "\f171";
+$fa-var-bitbucket-square: "\f172";
+$fa-var-bitcoin: "\f15a";
+$fa-var-black-tie: "\f27e";
+$fa-var-blind: "\f29d";
+$fa-var-bluetooth: "\f293";
+$fa-var-bluetooth-b: "\f294";
+$fa-var-bold: "\f032";
+$fa-var-bolt: "\f0e7";
+$fa-var-bomb: "\f1e2";
+$fa-var-book: "\f02d";
+$fa-var-bookmark: "\f02e";
+$fa-var-bookmark-o: "\f097";
+$fa-var-braille: "\f2a1";
+$fa-var-briefcase: "\f0b1";
+$fa-var-btc: "\f15a";
+$fa-var-bug: "\f188";
+$fa-var-building: "\f1ad";
+$fa-var-building-o: "\f0f7";
+$fa-var-bullhorn: "\f0a1";
+$fa-var-bullseye: "\f140";
+$fa-var-bus: "\f207";
+$fa-var-buysellads: "\f20d";
+$fa-var-cab: "\f1ba";
+$fa-var-calculator: "\f1ec";
+$fa-var-calendar: "\f073";
+$fa-var-calendar-check-o: "\f274";
+$fa-var-calendar-minus-o: "\f272";
+$fa-var-calendar-o: "\f133";
+$fa-var-calendar-plus-o: "\f271";
+$fa-var-calendar-times-o: "\f273";
+$fa-var-camera: "\f030";
+$fa-var-camera-retro: "\f083";
+$fa-var-car: "\f1b9";
+$fa-var-caret-down: "\f0d7";
+$fa-var-caret-left: "\f0d9";
+$fa-var-caret-right: "\f0da";
+$fa-var-caret-square-o-down: "\f150";
+$fa-var-caret-square-o-left: "\f191";
+$fa-var-caret-square-o-right: "\f152";
+$fa-var-caret-square-o-up: "\f151";
+$fa-var-caret-up: "\f0d8";
+$fa-var-cart-arrow-down: "\f218";
+$fa-var-cart-plus: "\f217";
+$fa-var-cc: "\f20a";
+$fa-var-cc-amex: "\f1f3";
+$fa-var-cc-diners-club: "\f24c";
+$fa-var-cc-discover: "\f1f2";
+$fa-var-cc-jcb: "\f24b";
+$fa-var-cc-mastercard: "\f1f1";
+$fa-var-cc-paypal: "\f1f4";
+$fa-var-cc-stripe: "\f1f5";
+$fa-var-cc-visa: "\f1f0";
+$fa-var-certificate: "\f0a3";
+$fa-var-chain: "\f0c1";
+$fa-var-chain-broken: "\f127";
+$fa-var-check: "\f00c";
+$fa-var-check-circle: "\f058";
+$fa-var-check-circle-o: "\f05d";
+$fa-var-check-square: "\f14a";
+$fa-var-check-square-o: "\f046";
+$fa-var-chevron-circle-down: "\f13a";
+$fa-var-chevron-circle-left: "\f137";
+$fa-var-chevron-circle-right: "\f138";
+$fa-var-chevron-circle-up: "\f139";
+$fa-var-chevron-down: "\f078";
+$fa-var-chevron-left: "\f053";
+$fa-var-chevron-right: "\f054";
+$fa-var-chevron-up: "\f077";
+$fa-var-child: "\f1ae";
+$fa-var-chrome: "\f268";
+$fa-var-circle: "\f111";
+$fa-var-circle-o: "\f10c";
+$fa-var-circle-o-notch: "\f1ce";
+$fa-var-circle-thin: "\f1db";
+$fa-var-clipboard: "\f0ea";
+$fa-var-clock-o: "\f017";
+$fa-var-clone: "\f24d";
+$fa-var-close: "\f00d";
+$fa-var-cloud: "\f0c2";
+$fa-var-cloud-download: "\f0ed";
+$fa-var-cloud-upload: "\f0ee";
+$fa-var-cny: "\f157";
+$fa-var-code: "\f121";
+$fa-var-code-fork: "\f126";
+$fa-var-codepen: "\f1cb";
+$fa-var-codiepie: "\f284";
+$fa-var-coffee: "\f0f4";
+$fa-var-cog: "\f013";
+$fa-var-cogs: "\f085";
+$fa-var-columns: "\f0db";
+$fa-var-comment: "\f075";
+$fa-var-comment-o: "\f0e5";
+$fa-var-commenting: "\f27a";
+$fa-var-commenting-o: "\f27b";
+$fa-var-comments: "\f086";
+$fa-var-comments-o: "\f0e6";
+$fa-var-compass: "\f14e";
+$fa-var-compress: "\f066";
+$fa-var-connectdevelop: "\f20e";
+$fa-var-contao: "\f26d";
+$fa-var-copy: "\f0c5";
+$fa-var-copyright: "\f1f9";
+$fa-var-creative-commons: "\f25e";
+$fa-var-credit-card: "\f09d";
+$fa-var-credit-card-alt: "\f283";
+$fa-var-crop: "\f125";
+$fa-var-crosshairs: "\f05b";
+$fa-var-css3: "\f13c";
+$fa-var-cube: "\f1b2";
+$fa-var-cubes: "\f1b3";
+$fa-var-cut: "\f0c4";
+$fa-var-cutlery: "\f0f5";
+$fa-var-dashboard: "\f0e4";
+$fa-var-dashcube: "\f210";
+$fa-var-database: "\f1c0";
+$fa-var-deaf: "\f2a4";
+$fa-var-deafness: "\f2a4";
+$fa-var-dedent: "\f03b";
+$fa-var-delicious: "\f1a5";
+$fa-var-desktop: "\f108";
+$fa-var-deviantart: "\f1bd";
+$fa-var-diamond: "\f219";
+$fa-var-digg: "\f1a6";
+$fa-var-dollar: "\f155";
+$fa-var-dot-circle-o: "\f192";
+$fa-var-download: "\f019";
+$fa-var-dribbble: "\f17d";
+$fa-var-drivers-license: "\f2c2";
+$fa-var-drivers-license-o: "\f2c3";
+$fa-var-dropbox: "\f16b";
+$fa-var-drupal: "\f1a9";
+$fa-var-edge: "\f282";
+$fa-var-edit: "\f044";
+$fa-var-eercast: "\f2da";
+$fa-var-eject: "\f052";
+$fa-var-ellipsis-h: "\f141";
+$fa-var-ellipsis-v: "\f142";
+$fa-var-empire: "\f1d1";
+$fa-var-envelope: "\f0e0";
+$fa-var-envelope-o: "\f003";
+$fa-var-envelope-open: "\f2b6";
+$fa-var-envelope-open-o: "\f2b7";
+$fa-var-envelope-square: "\f199";
+$fa-var-envira: "\f299";
+$fa-var-eraser: "\f12d";
+$fa-var-etsy: "\f2d7";
+$fa-var-eur: "\f153";
+$fa-var-euro: "\f153";
+$fa-var-exchange: "\f0ec";
+$fa-var-exclamation: "\f12a";
+$fa-var-exclamation-circle: "\f06a";
+$fa-var-exclamation-triangle: "\f071";
+$fa-var-expand: "\f065";
+$fa-var-expeditedssl: "\f23e";
+$fa-var-external-link: "\f08e";
+$fa-var-external-link-square: "\f14c";
+$fa-var-eye: "\f06e";
+$fa-var-eye-slash: "\f070";
+$fa-var-eyedropper: "\f1fb";
+$fa-var-fa: "\f2b4";
+$fa-var-facebook: "\f09a";
+$fa-var-facebook-f: "\f09a";
+$fa-var-facebook-official: "\f230";
+$fa-var-facebook-square: "\f082";
+$fa-var-fast-backward: "\f049";
+$fa-var-fast-forward: "\f050";
+$fa-var-fax: "\f1ac";
+$fa-var-feed: "\f09e";
+$fa-var-female: "\f182";
+$fa-var-fighter-jet: "\f0fb";
+$fa-var-file: "\f15b";
+$fa-var-file-archive-o: "\f1c6";
+$fa-var-file-audio-o: "\f1c7";
+$fa-var-file-code-o: "\f1c9";
+$fa-var-file-excel-o: "\f1c3";
+$fa-var-file-image-o: "\f1c5";
+$fa-var-file-movie-o: "\f1c8";
+$fa-var-file-o: "\f016";
+$fa-var-file-pdf-o: "\f1c1";
+$fa-var-file-photo-o: "\f1c5";
+$fa-var-file-picture-o: "\f1c5";
+$fa-var-file-powerpoint-o: "\f1c4";
+$fa-var-file-sound-o: "\f1c7";
+$fa-var-file-text: "\f15c";
+$fa-var-file-text-o: "\f0f6";
+$fa-var-file-video-o: "\f1c8";
+$fa-var-file-word-o: "\f1c2";
+$fa-var-file-zip-o: "\f1c6";
+$fa-var-files-o: "\f0c5";
+$fa-var-film: "\f008";
+$fa-var-filter: "\f0b0";
+$fa-var-fire: "\f06d";
+$fa-var-fire-extinguisher: "\f134";
+$fa-var-firefox: "\f269";
+$fa-var-first-order: "\f2b0";
+$fa-var-flag: "\f024";
+$fa-var-flag-checkered: "\f11e";
+$fa-var-flag-o: "\f11d";
+$fa-var-flash: "\f0e7";
+$fa-var-flask: "\f0c3";
+$fa-var-flickr: "\f16e";
+$fa-var-floppy-o: "\f0c7";
+$fa-var-folder: "\f07b";
+$fa-var-folder-o: "\f114";
+$fa-var-folder-open: "\f07c";
+$fa-var-folder-open-o: "\f115";
+$fa-var-font: "\f031";
+$fa-var-font-awesome: "\f2b4";
+$fa-var-fonticons: "\f280";
+$fa-var-fort-awesome: "\f286";
+$fa-var-forumbee: "\f211";
+$fa-var-forward: "\f04e";
+$fa-var-foursquare: "\f180";
+$fa-var-free-code-camp: "\f2c5";
+$fa-var-frown-o: "\f119";
+$fa-var-futbol-o: "\f1e3";
+$fa-var-gamepad: "\f11b";
+$fa-var-gavel: "\f0e3";
+$fa-var-gbp: "\f154";
+$fa-var-ge: "\f1d1";
+$fa-var-gear: "\f013";
+$fa-var-gears: "\f085";
+$fa-var-genderless: "\f22d";
+$fa-var-get-pocket: "\f265";
+$fa-var-gg: "\f260";
+$fa-var-gg-circle: "\f261";
+$fa-var-gift: "\f06b";
+$fa-var-git: "\f1d3";
+$fa-var-git-square: "\f1d2";
+$fa-var-github: "\f09b";
+$fa-var-github-alt: "\f113";
+$fa-var-github-square: "\f092";
+$fa-var-gitlab: "\f296";
+$fa-var-gittip: "\f184";
+$fa-var-glass: "\f000";
+$fa-var-glide: "\f2a5";
+$fa-var-glide-g: "\f2a6";
+$fa-var-globe: "\f0ac";
+$fa-var-google: "\f1a0";
+$fa-var-google-plus: "\f0d5";
+$fa-var-google-plus-circle: "\f2b3";
+$fa-var-google-plus-official: "\f2b3";
+$fa-var-google-plus-square: "\f0d4";
+$fa-var-google-wallet: "\f1ee";
+$fa-var-graduation-cap: "\f19d";
+$fa-var-gratipay: "\f184";
+$fa-var-grav: "\f2d6";
+$fa-var-group: "\f0c0";
+$fa-var-h-square: "\f0fd";
+$fa-var-hacker-news: "\f1d4";
+$fa-var-hand-grab-o: "\f255";
+$fa-var-hand-lizard-o: "\f258";
+$fa-var-hand-o-down: "\f0a7";
+$fa-var-hand-o-left: "\f0a5";
+$fa-var-hand-o-right: "\f0a4";
+$fa-var-hand-o-up: "\f0a6";
+$fa-var-hand-paper-o: "\f256";
+$fa-var-hand-peace-o: "\f25b";
+$fa-var-hand-pointer-o: "\f25a";
+$fa-var-hand-rock-o: "\f255";
+$fa-var-hand-scissors-o: "\f257";
+$fa-var-hand-spock-o: "\f259";
+$fa-var-hand-stop-o: "\f256";
+$fa-var-handshake-o: "\f2b5";
+$fa-var-hard-of-hearing: "\f2a4";
+$fa-var-hashtag: "\f292";
+$fa-var-hdd-o: "\f0a0";
+$fa-var-header: "\f1dc";
+$fa-var-headphones: "\f025";
+$fa-var-heart: "\f004";
+$fa-var-heart-o: "\f08a";
+$fa-var-heartbeat: "\f21e";
+$fa-var-history: "\f1da";
+$fa-var-home: "\f015";
+$fa-var-hospital-o: "\f0f8";
+$fa-var-hotel: "\f236";
+$fa-var-hourglass: "\f254";
+$fa-var-hourglass-1: "\f251";
+$fa-var-hourglass-2: "\f252";
+$fa-var-hourglass-3: "\f253";
+$fa-var-hourglass-end: "\f253";
+$fa-var-hourglass-half: "\f252";
+$fa-var-hourglass-o: "\f250";
+$fa-var-hourglass-start: "\f251";
+$fa-var-houzz: "\f27c";
+$fa-var-html5: "\f13b";
+$fa-var-i-cursor: "\f246";
+$fa-var-id-badge: "\f2c1";
+$fa-var-id-card: "\f2c2";
+$fa-var-id-card-o: "\f2c3";
+$fa-var-ils: "\f20b";
+$fa-var-image: "\f03e";
+$fa-var-imdb: "\f2d8";
+$fa-var-inbox: "\f01c";
+$fa-var-indent: "\f03c";
+$fa-var-industry: "\f275";
+$fa-var-info: "\f129";
+$fa-var-info-circle: "\f05a";
+$fa-var-inr: "\f156";
+$fa-var-instagram: "\f16d";
+$fa-var-institution: "\f19c";
+$fa-var-internet-explorer: "\f26b";
+$fa-var-intersex: "\f224";
+$fa-var-ioxhost: "\f208";
+$fa-var-italic: "\f033";
+$fa-var-joomla: "\f1aa";
+$fa-var-jpy: "\f157";
+$fa-var-jsfiddle: "\f1cc";
+$fa-var-key: "\f084";
+$fa-var-keyboard-o: "\f11c";
+$fa-var-krw: "\f159";
+$fa-var-language: "\f1ab";
+$fa-var-laptop: "\f109";
+$fa-var-lastfm: "\f202";
+$fa-var-lastfm-square: "\f203";
+$fa-var-leaf: "\f06c";
+$fa-var-leanpub: "\f212";
+$fa-var-legal: "\f0e3";
+$fa-var-lemon-o: "\f094";
+$fa-var-level-down: "\f149";
+$fa-var-level-up: "\f148";
+$fa-var-life-bouy: "\f1cd";
+$fa-var-life-buoy: "\f1cd";
+$fa-var-life-ring: "\f1cd";
+$fa-var-life-saver: "\f1cd";
+$fa-var-lightbulb-o: "\f0eb";
+$fa-var-line-chart: "\f201";
+$fa-var-link: "\f0c1";
+$fa-var-linkedin: "\f0e1";
+$fa-var-linkedin-square: "\f08c";
+$fa-var-linode: "\f2b8";
+$fa-var-linux: "\f17c";
+$fa-var-list: "\f03a";
+$fa-var-list-alt: "\f022";
+$fa-var-list-ol: "\f0cb";
+$fa-var-list-ul: "\f0ca";
+$fa-var-location-arrow: "\f124";
+$fa-var-lock: "\f023";
+$fa-var-long-arrow-down: "\f175";
+$fa-var-long-arrow-left: "\f177";
+$fa-var-long-arrow-right: "\f178";
+$fa-var-long-arrow-up: "\f176";
+$fa-var-low-vision: "\f2a8";
+$fa-var-magic: "\f0d0";
+$fa-var-magnet: "\f076";
+$fa-var-mail-forward: "\f064";
+$fa-var-mail-reply: "\f112";
+$fa-var-mail-reply-all: "\f122";
+$fa-var-male: "\f183";
+$fa-var-map: "\f279";
+$fa-var-map-marker: "\f041";
+$fa-var-map-o: "\f278";
+$fa-var-map-pin: "\f276";
+$fa-var-map-signs: "\f277";
+$fa-var-mars: "\f222";
+$fa-var-mars-double: "\f227";
+$fa-var-mars-stroke: "\f229";
+$fa-var-mars-stroke-h: "\f22b";
+$fa-var-mars-stroke-v: "\f22a";
+$fa-var-maxcdn: "\f136";
+$fa-var-meanpath: "\f20c";
+$fa-var-medium: "\f23a";
+$fa-var-medkit: "\f0fa";
+$fa-var-meetup: "\f2e0";
+$fa-var-meh-o: "\f11a";
+$fa-var-mercury: "\f223";
+$fa-var-microchip: "\f2db";
+$fa-var-microphone: "\f130";
+$fa-var-microphone-slash: "\f131";
+$fa-var-minus: "\f068";
+$fa-var-minus-circle: "\f056";
+$fa-var-minus-square: "\f146";
+$fa-var-minus-square-o: "\f147";
+$fa-var-mixcloud: "\f289";
+$fa-var-mobile: "\f10b";
+$fa-var-mobile-phone: "\f10b";
+$fa-var-modx: "\f285";
+$fa-var-money: "\f0d6";
+$fa-var-moon-o: "\f186";
+$fa-var-mortar-board: "\f19d";
+$fa-var-motorcycle: "\f21c";
+$fa-var-mouse-pointer: "\f245";
+$fa-var-music: "\f001";
+$fa-var-navicon: "\f0c9";
+$fa-var-neuter: "\f22c";
+$fa-var-newspaper-o: "\f1ea";
+$fa-var-object-group: "\f247";
+$fa-var-object-ungroup: "\f248";
+$fa-var-odnoklassniki: "\f263";
+$fa-var-odnoklassniki-square: "\f264";
+$fa-var-opencart: "\f23d";
+$fa-var-openid: "\f19b";
+$fa-var-opera: "\f26a";
+$fa-var-optin-monster: "\f23c";
+$fa-var-outdent: "\f03b";
+$fa-var-pagelines: "\f18c";
+$fa-var-paint-brush: "\f1fc";
+$fa-var-paper-plane: "\f1d8";
+$fa-var-paper-plane-o: "\f1d9";
+$fa-var-paperclip: "\f0c6";
+$fa-var-paragraph: "\f1dd";
+$fa-var-paste: "\f0ea";
+$fa-var-pause: "\f04c";
+$fa-var-pause-circle: "\f28b";
+$fa-var-pause-circle-o: "\f28c";
+$fa-var-paw: "\f1b0";
+$fa-var-paypal: "\f1ed";
+$fa-var-pencil: "\f040";
+$fa-var-pencil-square: "\f14b";
+$fa-var-pencil-square-o: "\f044";
+$fa-var-percent: "\f295";
+$fa-var-phone: "\f095";
+$fa-var-phone-square: "\f098";
+$fa-var-photo: "\f03e";
+$fa-var-picture-o: "\f03e";
+$fa-var-pie-chart: "\f200";
+$fa-var-pied-piper: "\f2ae";
+$fa-var-pied-piper-alt: "\f1a8";
+$fa-var-pied-piper-pp: "\f1a7";
+$fa-var-pinterest: "\f0d2";
+$fa-var-pinterest-p: "\f231";
+$fa-var-pinterest-square: "\f0d3";
+$fa-var-plane: "\f072";
+$fa-var-play: "\f04b";
+$fa-var-play-circle: "\f144";
+$fa-var-play-circle-o: "\f01d";
+$fa-var-plug: "\f1e6";
+$fa-var-plus: "\f067";
+$fa-var-plus-circle: "\f055";
+$fa-var-plus-square: "\f0fe";
+$fa-var-plus-square-o: "\f196";
+$fa-var-podcast: "\f2ce";
+$fa-var-power-off: "\f011";
+$fa-var-print: "\f02f";
+$fa-var-product-hunt: "\f288";
+$fa-var-puzzle-piece: "\f12e";
+$fa-var-qq: "\f1d6";
+$fa-var-qrcode: "\f029";
+$fa-var-question: "\f128";
+$fa-var-question-circle: "\f059";
+$fa-var-question-circle-o: "\f29c";
+$fa-var-quora: "\f2c4";
+$fa-var-quote-left: "\f10d";
+$fa-var-quote-right: "\f10e";
+$fa-var-ra: "\f1d0";
+$fa-var-random: "\f074";
+$fa-var-ravelry: "\f2d9";
+$fa-var-rebel: "\f1d0";
+$fa-var-recycle: "\f1b8";
+$fa-var-reddit: "\f1a1";
+$fa-var-reddit-alien: "\f281";
+$fa-var-reddit-square: "\f1a2";
+$fa-var-refresh: "\f021";
+$fa-var-registered: "\f25d";
+$fa-var-remove: "\f00d";
+$fa-var-renren: "\f18b";
+$fa-var-reorder: "\f0c9";
+$fa-var-repeat: "\f01e";
+$fa-var-reply: "\f112";
+$fa-var-reply-all: "\f122";
+$fa-var-resistance: "\f1d0";
+$fa-var-retweet: "\f079";
+$fa-var-rmb: "\f157";
+$fa-var-road: "\f018";
+$fa-var-rocket: "\f135";
+$fa-var-rotate-left: "\f0e2";
+$fa-var-rotate-right: "\f01e";
+$fa-var-rouble: "\f158";
+$fa-var-rss: "\f09e";
+$fa-var-rss-square: "\f143";
+$fa-var-rub: "\f158";
+$fa-var-ruble: "\f158";
+$fa-var-rupee: "\f156";
+$fa-var-s15: "\f2cd";
+$fa-var-safari: "\f267";
+$fa-var-save: "\f0c7";
+$fa-var-scissors: "\f0c4";
+$fa-var-scribd: "\f28a";
+$fa-var-search: "\f002";
+$fa-var-search-minus: "\f010";
+$fa-var-search-plus: "\f00e";
+$fa-var-sellsy: "\f213";
+$fa-var-send: "\f1d8";
+$fa-var-send-o: "\f1d9";
+$fa-var-server: "\f233";
+$fa-var-share: "\f064";
+$fa-var-share-alt: "\f1e0";
+$fa-var-share-alt-square: "\f1e1";
+$fa-var-share-square: "\f14d";
+$fa-var-share-square-o: "\f045";
+$fa-var-shekel: "\f20b";
+$fa-var-sheqel: "\f20b";
+$fa-var-shield: "\f132";
+$fa-var-ship: "\f21a";
+$fa-var-shirtsinbulk: "\f214";
+$fa-var-shopping-bag: "\f290";
+$fa-var-shopping-basket: "\f291";
+$fa-var-shopping-cart: "\f07a";
+$fa-var-shower: "\f2cc";
+$fa-var-sign-in: "\f090";
+$fa-var-sign-language: "\f2a7";
+$fa-var-sign-out: "\f08b";
+$fa-var-signal: "\f012";
+$fa-var-signing: "\f2a7";
+$fa-var-simplybuilt: "\f215";
+$fa-var-sitemap: "\f0e8";
+$fa-var-skyatlas: "\f216";
+$fa-var-skype: "\f17e";
+$fa-var-slack: "\f198";
+$fa-var-sliders: "\f1de";
+$fa-var-slideshare: "\f1e7";
+$fa-var-smile-o: "\f118";
+$fa-var-snapchat: "\f2ab";
+$fa-var-snapchat-ghost: "\f2ac";
+$fa-var-snapchat-square: "\f2ad";
+$fa-var-snowflake-o: "\f2dc";
+$fa-var-soccer-ball-o: "\f1e3";
+$fa-var-sort: "\f0dc";
+$fa-var-sort-alpha-asc: "\f15d";
+$fa-var-sort-alpha-desc: "\f15e";
+$fa-var-sort-amount-asc: "\f160";
+$fa-var-sort-amount-desc: "\f161";
+$fa-var-sort-asc: "\f0de";
+$fa-var-sort-desc: "\f0dd";
+$fa-var-sort-down: "\f0dd";
+$fa-var-sort-numeric-asc: "\f162";
+$fa-var-sort-numeric-desc: "\f163";
+$fa-var-sort-up: "\f0de";
+$fa-var-soundcloud: "\f1be";
+$fa-var-space-shuttle: "\f197";
+$fa-var-spinner: "\f110";
+$fa-var-spoon: "\f1b1";
+$fa-var-spotify: "\f1bc";
+$fa-var-square: "\f0c8";
+$fa-var-square-o: "\f096";
+$fa-var-stack-exchange: "\f18d";
+$fa-var-stack-overflow: "\f16c";
+$fa-var-star: "\f005";
+$fa-var-star-half: "\f089";
+$fa-var-star-half-empty: "\f123";
+$fa-var-star-half-full: "\f123";
+$fa-var-star-half-o: "\f123";
+$fa-var-star-o: "\f006";
+$fa-var-steam: "\f1b6";
+$fa-var-steam-square: "\f1b7";
+$fa-var-step-backward: "\f048";
+$fa-var-step-forward: "\f051";
+$fa-var-stethoscope: "\f0f1";
+$fa-var-sticky-note: "\f249";
+$fa-var-sticky-note-o: "\f24a";
+$fa-var-stop: "\f04d";
+$fa-var-stop-circle: "\f28d";
+$fa-var-stop-circle-o: "\f28e";
+$fa-var-street-view: "\f21d";
+$fa-var-strikethrough: "\f0cc";
+$fa-var-stumbleupon: "\f1a4";
+$fa-var-stumbleupon-circle: "\f1a3";
+$fa-var-subscript: "\f12c";
+$fa-var-subway: "\f239";
+$fa-var-suitcase: "\f0f2";
+$fa-var-sun-o: "\f185";
+$fa-var-superpowers: "\f2dd";
+$fa-var-superscript: "\f12b";
+$fa-var-support: "\f1cd";
+$fa-var-table: "\f0ce";
+$fa-var-tablet: "\f10a";
+$fa-var-tachometer: "\f0e4";
+$fa-var-tag: "\f02b";
+$fa-var-tags: "\f02c";
+$fa-var-tasks: "\f0ae";
+$fa-var-taxi: "\f1ba";
+$fa-var-telegram: "\f2c6";
+$fa-var-television: "\f26c";
+$fa-var-tencent-weibo: "\f1d5";
+$fa-var-terminal: "\f120";
+$fa-var-text-height: "\f034";
+$fa-var-text-width: "\f035";
+$fa-var-th: "\f00a";
+$fa-var-th-large: "\f009";
+$fa-var-th-list: "\f00b";
+$fa-var-themeisle: "\f2b2";
+$fa-var-thermometer: "\f2c7";
+$fa-var-thermometer-0: "\f2cb";
+$fa-var-thermometer-1: "\f2ca";
+$fa-var-thermometer-2: "\f2c9";
+$fa-var-thermometer-3: "\f2c8";
+$fa-var-thermometer-4: "\f2c7";
+$fa-var-thermometer-empty: "\f2cb";
+$fa-var-thermometer-full: "\f2c7";
+$fa-var-thermometer-half: "\f2c9";
+$fa-var-thermometer-quarter: "\f2ca";
+$fa-var-thermometer-three-quarters: "\f2c8";
+$fa-var-thumb-tack: "\f08d";
+$fa-var-thumbs-down: "\f165";
+$fa-var-thumbs-o-down: "\f088";
+$fa-var-thumbs-o-up: "\f087";
+$fa-var-thumbs-up: "\f164";
+$fa-var-ticket: "\f145";
+$fa-var-times: "\f00d";
+$fa-var-times-circle: "\f057";
+$fa-var-times-circle-o: "\f05c";
+$fa-var-times-rectangle: "\f2d3";
+$fa-var-times-rectangle-o: "\f2d4";
+$fa-var-tint: "\f043";
+$fa-var-toggle-down: "\f150";
+$fa-var-toggle-left: "\f191";
+$fa-var-toggle-off: "\f204";
+$fa-var-toggle-on: "\f205";
+$fa-var-toggle-right: "\f152";
+$fa-var-toggle-up: "\f151";
+$fa-var-trademark: "\f25c";
+$fa-var-train: "\f238";
+$fa-var-transgender: "\f224";
+$fa-var-transgender-alt: "\f225";
+$fa-var-trash: "\f1f8";
+$fa-var-trash-o: "\f014";
+$fa-var-tree: "\f1bb";
+$fa-var-trello: "\f181";
+$fa-var-tripadvisor: "\f262";
+$fa-var-trophy: "\f091";
+$fa-var-truck: "\f0d1";
+$fa-var-try: "\f195";
+$fa-var-tty: "\f1e4";
+$fa-var-tumblr: "\f173";
+$fa-var-tumblr-square: "\f174";
+$fa-var-turkish-lira: "\f195";
+$fa-var-tv: "\f26c";
+$fa-var-twitch: "\f1e8";
+$fa-var-twitter: "\f099";
+$fa-var-twitter-square: "\f081";
+$fa-var-umbrella: "\f0e9";
+$fa-var-underline: "\f0cd";
+$fa-var-undo: "\f0e2";
+$fa-var-universal-access: "\f29a";
+$fa-var-university: "\f19c";
+$fa-var-unlink: "\f127";
+$fa-var-unlock: "\f09c";
+$fa-var-unlock-alt: "\f13e";
+$fa-var-unsorted: "\f0dc";
+$fa-var-upload: "\f093";
+$fa-var-usb: "\f287";
+$fa-var-usd: "\f155";
+$fa-var-user: "\f007";
+$fa-var-user-circle: "\f2bd";
+$fa-var-user-circle-o: "\f2be";
+$fa-var-user-md: "\f0f0";
+$fa-var-user-o: "\f2c0";
+$fa-var-user-plus: "\f234";
+$fa-var-user-secret: "\f21b";
+$fa-var-user-times: "\f235";
+$fa-var-users: "\f0c0";
+$fa-var-vcard: "\f2bb";
+$fa-var-vcard-o: "\f2bc";
+$fa-var-venus: "\f221";
+$fa-var-venus-double: "\f226";
+$fa-var-venus-mars: "\f228";
+$fa-var-viacoin: "\f237";
+$fa-var-viadeo: "\f2a9";
+$fa-var-viadeo-square: "\f2aa";
+$fa-var-video-camera: "\f03d";
+$fa-var-vimeo: "\f27d";
+$fa-var-vimeo-square: "\f194";
+$fa-var-vine: "\f1ca";
+$fa-var-vk: "\f189";
+$fa-var-volume-control-phone: "\f2a0";
+$fa-var-volume-down: "\f027";
+$fa-var-volume-off: "\f026";
+$fa-var-volume-up: "\f028";
+$fa-var-warning: "\f071";
+$fa-var-wechat: "\f1d7";
+$fa-var-weibo: "\f18a";
+$fa-var-weixin: "\f1d7";
+$fa-var-whatsapp: "\f232";
+$fa-var-wheelchair: "\f193";
+$fa-var-wheelchair-alt: "\f29b";
+$fa-var-wifi: "\f1eb";
+$fa-var-wikipedia-w: "\f266";
+$fa-var-window-close: "\f2d3";
+$fa-var-window-close-o: "\f2d4";
+$fa-var-window-maximize: "\f2d0";
+$fa-var-window-minimize: "\f2d1";
+$fa-var-window-restore: "\f2d2";
+$fa-var-windows: "\f17a";
+$fa-var-won: "\f159";
+$fa-var-wordpress: "\f19a";
+$fa-var-wpbeginner: "\f297";
+$fa-var-wpexplorer: "\f2de";
+$fa-var-wpforms: "\f298";
+$fa-var-wrench: "\f0ad";
+$fa-var-xing: "\f168";
+$fa-var-xing-square: "\f169";
+$fa-var-y-combinator: "\f23b";
+$fa-var-y-combinator-square: "\f1d4";
+$fa-var-yahoo: "\f19e";
+$fa-var-yc: "\f23b";
+$fa-var-yc-square: "\f1d4";
+$fa-var-yelp: "\f1e9";
+$fa-var-yen: "\f157";
+$fa-var-yoast: "\f2b1";
+$fa-var-youtube: "\f167";
+$fa-var-youtube-play: "\f16a";
+$fa-var-youtube-square: "\f166";

+ 6 - 6
public/sass/components/_drop.scss

@@ -5,13 +5,13 @@ $useDropShadow: false;
 $attachmentOffset: 0%;
 $easing: cubic-bezier(0, 0, 0.265, 1);
 
-@include drop-theme('error', $popover-error-bg, $popover-color);
-@include drop-theme('popover', $popover-bg, $popover-color, $popover-border-color);
-@include drop-theme('help', $popover-help-bg, $popover-help-color);
+@include drop-theme("error", $popover-error-bg, $popover-color);
+@include drop-theme("popover", $popover-bg, $popover-color, $popover-border-color);
+@include drop-theme("help", $popover-help-bg, $popover-help-color);
 
-@include drop-animation-scale('drop', 'help', $attachmentOffset: $attachmentOffset, $easing: $easing);
-@include drop-animation-scale('drop', 'error', $attachmentOffset: $attachmentOffset, $easing: $easing);
-@include drop-animation-scale('drop', 'popover', $attachmentOffset: $attachmentOffset, $easing: $easing);
+@include drop-animation-scale("drop", "help", $attachmentOffset: $attachmentOffset, $easing: $easing);
+@include drop-animation-scale("drop", "error", $attachmentOffset: $attachmentOffset, $easing: $easing);
+@include drop-animation-scale("drop", "popover", $attachmentOffset: $attachmentOffset, $easing: $easing);
 
 .drop-element {
   z-index: 10000;

+ 3 - 3
public/sass/components/_filter-list.scss

@@ -67,17 +67,17 @@
   text-transform: uppercase;
 
   &.online {
-    background-image: url('/img/online.svg');
+    background-image: url("/img/online.svg");
     color: $online;
   }
 
   &.warn {
-    background-image: url('/img/warn-tiny.svg');
+    background-image: url("/img/warn-tiny.svg");
     color: $warn;
   }
 
   &.critical {
-    background-image: url('/img/critical.svg');
+    background-image: url("/img/critical.svg");
     color: $critical;
   }
 }

+ 2 - 2
public/sass/components/_footer.scss

@@ -25,7 +25,7 @@
     display: inline-block;
     padding-right: 2px;
     &::after {
-      content: ' | ';
+      content: " | ";
       padding-left: 2px;
     }
   }
@@ -33,7 +33,7 @@
   li:last-child {
     &::after {
       padding-left: 0;
-      content: '';
+      content: "";
     }
   }
 }

+ 3 - 3
public/sass/components/_json_explorer.scss

@@ -21,10 +21,10 @@
         display: none;
       }
       &.json-formatter-object::after {
-        content: 'No properties';
+        content: "No properties";
       }
       &.json-formatter-array::after {
-        content: '[]';
+        content: "[]";
       }
     }
   }
@@ -87,7 +87,7 @@
     &::after {
       display: inline-block;
       transition: transform $json-explorer-rotate-time ease-in;
-      content: '►';
+      content: "►";
     }
   }
 

+ 2 - 2
public/sass/components/_jsontree.scss

@@ -35,12 +35,12 @@ json-tree {
     color: $variable;
     padding: 5px 10px 5px 15px;
     &::after {
-      content: ':';
+      content: ":";
     }
   }
   json-node.expandable {
     &::before {
-      content: '\25b6';
+      content: "\25b6";
       position: absolute;
       left: 0px;
       font-size: 8px;

+ 2 - 2
public/sass/components/_panel_gettingstarted.scss

@@ -52,7 +52,7 @@ $path-position: $marker-size-half - ($path-height / 2);
 
   &::after {
     right: -50%;
-    content: '';
+    content: "";
     display: block;
     position: absolute;
     z-index: 1;
@@ -105,7 +105,7 @@ $path-position: $marker-size-half - ($path-height / 2);
 
       // change icon to check
       .icon-gf::before {
-        content: '\e604';
+        content: "\e604";
       }
     }
     .progress-text {

+ 1 - 1
public/sass/components/_row.scss

@@ -69,7 +69,7 @@
   cursor: move;
   width: 1rem;
   height: 100%;
-  background: url('../img/grab_dark.svg') no-repeat 50% 50%;
+  background: url("../img/grab_dark.svg") no-repeat 50% 50%;
   background-size: 8px;
   visibility: hidden;
   position: absolute;

+ 1 - 1
public/sass/components/_shortcuts.scss

@@ -33,7 +33,7 @@
   text-align: center;
   margin-right: 0.3rem;
   padding: 3px 5px;
-  font: 11px Consolas, 'Liberation Mono', Menlo, Courier, monospace;
+  font: 11px Consolas, "Liberation Mono", Menlo, Courier, monospace;
   line-height: 10px;
   color: #555;
   vertical-align: middle;

+ 4 - 4
public/sass/components/_switch.scss

@@ -64,8 +64,8 @@
   }
 
   input + label::before {
-    font-family: 'FontAwesome';
-    content: '\f096'; // square-o
+    font-family: "FontAwesome";
+    content: "\f096"; // square-o
     color: $text-color-weak;
     transition: transform 0.4s;
     backface-visibility: hidden;
@@ -73,11 +73,11 @@
   }
 
   input + label::after {
-    content: '\f046'; // check-square-o
+    content: "\f046"; // check-square-o
     color: $orange;
     text-shadow: $text-shadow-strong;
 
-    font-family: 'FontAwesome';
+    font-family: "FontAwesome";
     transition: transform 0.4s;
     transform: rotateY(180deg);
     backface-visibility: hidden;

+ 7 - 2
public/sass/components/_tabs.scss

@@ -44,13 +44,18 @@
 
     &::before {
       display: block;
-      content: ' ';
+      content: " ";
       position: absolute;
       left: 0;
       right: 0;
       height: 2px;
       top: 0;
-      background-image: linear-gradient(to right, #ffd500 0%, #ff4400 99%, #ff4400 100%);
+      background-image: linear-gradient(
+        to right,
+        #ffd500 0%,
+        #ff4400 99%,
+        #ff4400 100%
+      );
     }
   }
 }

+ 2 - 2
public/sass/components/_timepicker.scss

@@ -103,10 +103,10 @@
 }
 
 .fa-chevron-left::before {
-  content: '\f053';
+  content: "\f053";
 }
 .fa-chevron-right::before {
-  content: '\f054';
+  content: "\f054";
 }
 
 .glyphicon-chevron-right {

+ 34 - 18
public/sass/mixins/_drop_element.scss

@@ -15,7 +15,7 @@
       border: 1px solid $border-color;
 
       &:before {
-        content: '';
+        content: "";
         display: block;
         position: absolute;
         width: 0;
@@ -88,7 +88,8 @@
       left: $popover-arrow-size * 2;
     }
 
-    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-middle .drop-content {
+    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-middle
+      .drop-content {
       margin-top: $popover-arrow-size;
 
       &:before {
@@ -98,7 +99,8 @@
       }
     }
 
-    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-middle .drop-content {
+    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-middle
+      .drop-content {
       margin-top: $popover-arrow-size;
 
       &:before {
@@ -108,7 +110,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-middle .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-middle
+      .drop-content {
       margin-bottom: $popover-arrow-size;
 
       &:before {
@@ -118,7 +121,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-middle .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-middle
+      .drop-content {
       margin-bottom: $popover-arrow-size;
 
       &:before {
@@ -129,7 +133,8 @@
     }
 
     // Top and bottom corners
-    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-bottom .drop-content {
+    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-bottom
+      .drop-content {
       margin-top: $popover-arrow-size;
 
       &:before {
@@ -139,7 +144,8 @@
       }
     }
 
-    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-bottom .drop-content {
+    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-bottom
+      .drop-content {
       margin-top: $popover-arrow-size;
 
       &:before {
@@ -149,7 +155,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-top .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-top
+      .drop-content {
       margin-bottom: $popover-arrow-size;
 
       &:before {
@@ -159,7 +166,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-top .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-top
+      .drop-content {
       margin-bottom: $popover-arrow-size;
 
       &:before {
@@ -170,7 +178,8 @@
     }
 
     // Side corners
-    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-left .drop-content {
+    &.drop-element-attached-top.drop-element-attached-right.drop-target-attached-left
+      .drop-content {
       margin-right: $popover-arrow-size;
 
       &:before {
@@ -180,7 +189,8 @@
       }
     }
 
-    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-right .drop-content {
+    &.drop-element-attached-top.drop-element-attached-left.drop-target-attached-right
+      .drop-content {
       margin-left: $popover-arrow-size;
 
       &:before {
@@ -190,7 +200,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-left .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-right.drop-target-attached-left
+      .drop-content {
       margin-right: $popover-arrow-size;
 
       &:before {
@@ -200,7 +211,8 @@
       }
     }
 
-    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-right .drop-content {
+    &.drop-element-attached-bottom.drop-element-attached-left.drop-target-attached-right
+      .drop-content {
       margin-left: $popover-arrow-size;
 
       &:before {
@@ -212,7 +224,7 @@
   }
 }
 
-@mixin drop-animation-scale($themePrefix: 'drop', $themeName: 'default', $attachmentOffset: 0, $easing: 'linear') {
+@mixin drop-animation-scale($themePrefix: "drop", $themeName: "default", $attachmentOffset: 0, $easing: "linear") {
   .#{$themePrefix}-element.#{$themePrefix}-#{$themeName} {
     transform: translateZ(0);
     transition: opacity 100ms;
@@ -235,16 +247,20 @@
       }
     }
     // Centers and middles
-    &.#{$themePrefix}-element-attached-bottom.#{$themePrefix}-element-attached-center .#{$themePrefix}-content {
+    &.#{$themePrefix}-element-attached-bottom.#{$themePrefix}-element-attached-center
+      .#{$themePrefix}-content {
       transform-origin: 50% calc(100% + #{$attachmentOffset});
     }
-    &.#{$themePrefix}-element-attached-top.#{$themePrefix}-element-attached-center .#{$themePrefix}-content {
+    &.#{$themePrefix}-element-attached-top.#{$themePrefix}-element-attached-center
+      .#{$themePrefix}-content {
       transform-origin: 50% (-$attachmentOffset);
     }
-    &.#{$themePrefix}-element-attached-right.#{$themePrefix}-element-attached-middle .#{$themePrefix}-content {
+    &.#{$themePrefix}-element-attached-right.#{$themePrefix}-element-attached-middle
+      .#{$themePrefix}-content {
       transform-origin: calc(100% + #{$attachmentOffset}) 50%;
     }
-    &.#{$themePrefix}-element-attached-left.#{$themePrefix}-element-attached-middle .#{$themePrefix}-content {
+    &.#{$themePrefix}-element-attached-left.#{$themePrefix}-element-attached-middle
+      .#{$themePrefix}-content {
       transform-origin: -($attachmentOffset 50%);
     }
     // Top and bottom corners

+ 2 - 1
public/sass/mixins/_forms.scss

@@ -41,7 +41,8 @@
   &:focus {
     border-color: $input-border-focus;
     outline: none;
-    $shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 5px $input-box-shadow-focus;
+    $shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075),
+      0 0 5px $input-box-shadow-focus;
     @include box-shadow($shadow);
   }
 }

+ 53 - 10
public/sass/mixins/_mixins.scss

@@ -1,6 +1,6 @@
 @mixin clearfix() {
   &::after {
-    content: '';
+    content: "";
     display: table;
     clear: both;
   }
@@ -265,10 +265,20 @@
 // Add an alphatransparency value to any background or border color (via Elyse Holladay)
 #translucent {
   @mixin background($color: $white, $alpha: 1) {
-    background-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
+    background-color: hsla(
+      hue($color),
+      saturation($color),
+      lightness($color),
+      $alpha
+    );
   }
   @mixin border($color: $white, $alpha: 1) {
-    border-color: hsla(hue($color), saturation($color), lightness($color), $alpha);
+    border-color: hsla(
+      hue($color),
+      saturation($color),
+      lightness($color),
+      $alpha
+    );
     @include background-clip(padding-box);
   }
 }
@@ -284,37 +294,66 @@
 // Gradients
 @mixin gradient-horizontal($startColor: #555, $endColor: #333) {
   background-color: $endColor;
-  background-image: linear-gradient(to right, $startColor, $endColor); // Standard, IE10
+  background-image: linear-gradient(
+    to right,
+    $startColor,
+    $endColor
+  ); // Standard, IE10
   background-repeat: repeat-x;
 }
 
 @mixin gradient-vertical($startColor: #555, $endColor: #333) {
   background-color: mix($startColor, $endColor, 60%);
-  background-image: linear-gradient(to bottom, $startColor, $endColor); // Standard, IE10
+  background-image: linear-gradient(
+    to bottom,
+    $startColor,
+    $endColor
+  ); // Standard, IE10
   background-repeat: repeat-x;
 }
 
 @mixin gradient-directional($startColor: #555, $endColor: #333, $deg: 45deg) {
   background-color: $endColor;
   background-repeat: repeat-x;
-  background-image: linear-gradient($deg, $startColor, $endColor); // Standard, IE10
+  background-image: linear-gradient(
+    $deg,
+    $startColor,
+    $endColor
+  ); // Standard, IE10
 }
 
 @mixin gradient-horizontal-three-colors($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) {
   background-color: mix($midColor, $endColor, 80%);
-  background-image: linear-gradient(to right, $startColor, $midColor $colorStop, $endColor);
+  background-image: linear-gradient(
+    to right,
+    $startColor,
+    $midColor $colorStop,
+    $endColor
+  );
   background-repeat: no-repeat;
 }
 
 @mixin gradient-vertical-three-colors($startColor: #00b3ee, $midColor: #7a43b6, $colorStop: 50%, $endColor: #c3325f) {
   background-color: mix($midColor, $endColor, 80%);
-  background-image: linear-gradient($startColor, $midColor $colorStop, $endColor);
+  background-image: linear-gradient(
+    $startColor,
+    $midColor $colorStop,
+    $endColor
+  );
   background-repeat: no-repeat;
 }
 
 @mixin gradient-radial($innerColor: #555, $outerColor: #333) {
   background-color: $outerColor;
-  background-image: -webkit-gradient(radial, center center, 0, center center, 460, from($innerColor), to($outerColor));
+  background-image: -webkit-gradient(
+    radial,
+    center center,
+    0,
+    center center,
+    460,
+    from($innerColor),
+    to($outerColor)
+  );
   background-image: -webkit-radial-gradient(circle, $innerColor, $outerColor);
   background-image: -moz-radial-gradient(circle, $innerColor, $outerColor);
   background-image: -o-radial-gradient(circle, $innerColor, $outerColor);
@@ -341,7 +380,11 @@
 
 @mixin left-brand-border-gradient() {
   border: none;
-  border-image: linear-gradient(rgba(255, 213, 0, 1) 0%, rgba(255, 68, 0, 1) 99%, rgba(255, 68, 0, 1) 100%);
+  border-image: linear-gradient(
+    rgba(255, 213, 0, 1) 0%,
+    rgba(255, 68, 0, 1) 99%,
+    rgba(255, 68, 0, 1) 100%
+  );
   border-image-slice: 1;
   border-style: solid;
   border-top: 0;

+ 2 - 2
public/sass/pages/_playlist.scss

@@ -84,11 +84,11 @@
     background-color: $list-item-bg;
     margin-bottom: 4px;
     .search-result-icon:before {
-      content: '\f009';
+      content: "\f009";
     }
 
     &.search-item-dash-home .search-result-icon:before {
-      content: '\f015';
+      content: "\f015";
     }
   }
 

+ 1 - 1
public/sass/utils/_validation.scss

@@ -1,4 +1,4 @@
-input[type='text'].ng-dirty.ng-invalid {
+input[type="text"].ng-dirty.ng-invalid {
 }
 
 input.validation-error,

+ 18 - 18
public/test/core/utils/version_specs.ts

@@ -1,8 +1,8 @@
-import { describe, beforeEach, it, expect } from 'test/lib/common';
+import {describe, beforeEach, it, expect} from 'test/lib/common';
 
-import { SemVersion, isVersionGtOrEq } from 'app/core/utils/version';
+import {SemVersion, isVersionGtOrEq} from 'app/core/utils/version';
 
-describe('SemVersion', () => {
+describe("SemVersion", () => {
   let version = '1.0.0-alpha.1';
 
   describe('parsing', () => {
@@ -23,13 +23,13 @@ describe('SemVersion', () => {
     it('should detect greater version properly', () => {
       let semver = new SemVersion(version);
       let cases = [
-        { value: '3.4.5', expected: true },
-        { value: '3.4.4', expected: true },
-        { value: '3.4.6', expected: false },
-        { value: '4', expected: false },
-        { value: '3.5', expected: false },
+        {value: '3.4.5', expected: true},
+        {value: '3.4.4', expected: true},
+        {value: '3.4.6', expected: false},
+        {value: '4', expected: false},
+        {value: '3.5', expected: false},
       ];
-      cases.forEach(testCase => {
+      cases.forEach((testCase) => {
         expect(semver.isGtOrEq(testCase.value)).to.be(testCase.expected);
       });
     });
@@ -38,16 +38,16 @@ describe('SemVersion', () => {
   describe('isVersionGtOrEq', () => {
     it('should compare versions properly (a >= b)', () => {
       let cases = [
-        { values: ['3.4.5', '3.4.5'], expected: true },
-        { values: ['3.4.5', '3.4.4'], expected: true },
-        { values: ['3.4.5', '3.4.6'], expected: false },
-        { values: ['3.4', '3.4.0'], expected: true },
-        { values: ['3', '3.0.0'], expected: true },
-        { values: ['3.1.1-beta1', '3.1'], expected: true },
-        { values: ['3.4.5', '4'], expected: false },
-        { values: ['3.4.5', '3.5'], expected: false },
+        {values: ['3.4.5', '3.4.5'], expected: true},
+        {values: ['3.4.5', '3.4.4'] , expected: true},
+        {values: ['3.4.5', '3.4.6'], expected: false},
+        {values: ['3.4', '3.4.0'], expected: true},
+        {values: ['3', '3.0.0'], expected: true},
+        {values: ['3.1.1-beta1', '3.1'], expected: true},
+        {values: ['3.4.5', '4'], expected: false},
+        {values: ['3.4.5', '3.5'], expected: false},
       ];
-      cases.forEach(testCase => {
+      cases.forEach((testCase) => {
         expect(isVersionGtOrEq(testCase.values[0], testCase.values[1])).to.be(testCase.expected);
       });
     });

+ 4 - 0
public/test/index.ts

@@ -25,3 +25,7 @@ const context = (<any>require).context('../', true, /specs\.(tsx?|js)/);
 for (let key of context.keys()) {
   context(key);
 }
+
+
+
+

+ 2 - 1
public/test/jest-shim.ts

@@ -1,5 +1,6 @@
 declare var global: NodeJS.Global;
 
-(<any>global).requestAnimationFrame = callback => {
+(<any>global).requestAnimationFrame = (callback) => {
   setTimeout(callback, 0);
 };
+

+ 11 - 2
public/test/lib/common.ts

@@ -1,4 +1,4 @@
-var _global = <any>window;
+var _global = <any>(window);
 var beforeEach = _global.beforeEach;
 var afterEach = _global.afterEach;
 var before = _global.before;
@@ -12,4 +12,13 @@ var angularMocks = {
   inject: _global.inject,
 };
 
-export { beforeEach, afterEach, before, describe, it, sinon, expect, angularMocks };
+export {
+  beforeEach,
+  afterEach,
+  before,
+  describe,
+  it,
+  sinon,
+  expect,
+  angularMocks,
+};

+ 4 - 1
public/test/mocks/backend_srv.ts

@@ -1,5 +1,8 @@
 export class BackendSrvMock {
   search: any;
 
-  constructor() {}
+  constructor() {
+  }
+
 }
+

+ 5 - 2
public/test/specs/app_specs.ts

@@ -1,11 +1,14 @@
-import { describe, it, expect } from 'test/lib/common';
+import {describe, it, expect} from 'test/lib/common';
 
-import { GrafanaApp } from 'app/app';
+import {GrafanaApp} from 'app/app';
 
 describe('GrafanaApp', () => {
+
   var app = new GrafanaApp();
 
   it('can call inits', () => {
     expect(app).to.not.be(null);
   });
 });
+
+

+ 11 - 11
public/test/specs/helpers.ts

@@ -1,8 +1,8 @@
 import _ from 'lodash';
 import config from 'app/core/config';
 import * as dateMath from 'app/core/utils/datemath';
-import { angularMocks, sinon } from '../lib/common';
-import { PanelModel } from 'app/features/dashboard/panel_model';
+import {angularMocks, sinon} from '../lib/common';
+import {PanelModel} from 'app/features/dashboard/panel_model';
 
 export function ControllerTestContext() {
   var self = this;
@@ -42,8 +42,8 @@ export function ControllerTestContext() {
       self.$location = $location;
       self.$browser = $browser;
       self.$q = $q;
-      self.panel = new PanelModel({ type: 'test' });
-      self.dashboard = { meta: {} };
+      self.panel = new PanelModel({type: 'test'});
+      self.dashboard = {meta: {}};
 
       $rootScope.appEvent = sinon.spy();
       $rootScope.onAppEvent = sinon.spy();
@@ -53,14 +53,14 @@ export function ControllerTestContext() {
         $rootScope.colors.push('#' + i);
       }
 
-      config.panels['test'] = { info: {} };
+      config.panels['test'] = {info: {}};
       self.ctrl = $controller(
         Ctrl,
-        { $scope: self.scope },
+        {$scope: self.scope},
         {
           panel: self.panel,
           dashboard: self.dashboard,
-        }
+        },
       );
     });
   };
@@ -72,7 +72,7 @@ export function ControllerTestContext() {
       self.$browser = $browser;
       self.scope.contextSrv = {};
       self.scope.panel = {};
-      self.scope.dashboard = { meta: {} };
+      self.scope.dashboard = {meta: {}};
       self.scope.dashboardMeta = {};
       self.scope.dashboardViewState = new DashboardViewStateStub();
       self.scope.appEvent = sinon.spy();
@@ -131,7 +131,7 @@ export function DashboardViewStateStub() {
 
 export function TimeSrvStub() {
   this.init = sinon.spy();
-  this.time = { from: 'now-1h', to: 'now' };
+  this.time = {from: 'now-1h', to: 'now'};
   this.timeRange = function(parse) {
     if (parse === false) {
       return this.time;
@@ -159,7 +159,7 @@ export function ContextSrvStub() {
 
 export function TemplateSrvStub() {
   this.variables = [];
-  this.templateSettings = { interpolate: /\[\[([\s\S]+?)\]\]/g };
+  this.templateSettings = {interpolate: /\[\[([\s\S]+?)\]\]/g};
   this.data = {};
   this.replace = function(text) {
     return _.template(text, this.templateSettings)(this.data);
@@ -188,7 +188,7 @@ var allDeps = {
   TimeSrvStub: TimeSrvStub,
   ControllerTestContext: ControllerTestContext,
   ServiceTestContext: ServiceTestContext,
-  DashboardViewStateStub: DashboardViewStateStub,
+  DashboardViewStateStub: DashboardViewStateStub
 };
 
 // for legacy