diff --git a/api/publisher.go b/api/publisher.go
index d4bc35d..fd45957 100644
--- a/api/publisher.go
+++ b/api/publisher.go
@@ -4,7 +4,6 @@ import (
"log"
"github.com/didiercrunch/doormanserver/logpublisher"
- "github.com/didiercrunch/doormanserver/nanomsgpublisher"
"github.com/didiercrunch/doormanserver/nsqpublisher"
"github.com/didiercrunch/doormanserver/shared"
"gopkg.in/mgo.v2/bson"
@@ -25,21 +24,10 @@ func initNSQPublisher() {
}
}
-func initNanoMsgPublisher() {
- publisher = new(nanomsgpublisher.NanoMsgPublisher)
- if err := publisher.Init(); err != nil {
- log.Panic(err)
- return
- }
-}
-
func initPublisher(params *shared.Params) {
if params.UseNSQ() {
initNSQPublisher()
log.Println("using nsq as message queue")
- } else if params.UseNanomsg() {
- initNanoMsgPublisher()
- log.Println("using nanomsg as message queue")
} else {
publisher = &logpublisher.LogPublisher{log.Println}
log.Println("using stdout as message queue")
diff --git a/nanomsgpublisher/nanomsgpublisher.go b/nanomsgpublisher/nanomsgpublisher.go
deleted file mode 100644
index 2c2a767..0000000
--- a/nanomsgpublisher/nanomsgpublisher.go
+++ /dev/null
@@ -1,41 +0,0 @@
-package nanomsgpublisher
-
-import (
- "errors"
- "log"
-
- "github.com/didiercrunch/doormanserver/shared"
- "github.com/go-mangos/mangos"
- "github.com/go-mangos/mangos/protocol/pub"
- "github.com/go-mangos/mangos/transport/ipc"
- "github.com/go-mangos/mangos/transport/tcp"
- "gopkg.in/mgo.v2/bson"
-)
-
-type NanoMsgPublisher struct {
- Url string
- sock mangos.Socket
-}
-
-func (p *NanoMsgPublisher) Init() error {
- var err error
- if p.sock, err = pub.NewSocket(); err != nil {
- return errors.New("can't listen on pub socket:" + err.Error())
- }
- p.sock.AddTransport(ipc.NewTransport())
- p.sock.AddTransport(tcp.NewTransport())
- if err = p.sock.Listen(shared.GetParams().NanoMsg.NanoMsgUrl); err != nil {
- return errors.New("can't listen on pub socket: %s" + err.Error())
- }
- return nil
-
-}
-
-func (p *NanoMsgPublisher) Emit(doormanId bson.ObjectId, doorman shared.AsDoormanUpdatePayloader) error {
- log.Println("Emit for ", doormanId.Hex())
- if d, err := doorman.AsDoormanUpdatePayload(); err != nil {
- return err
- } else {
- return p.sock.Send(d)
- }
-}
diff --git a/static/.bowerrc b/static/.bowerrc
deleted file mode 100644
index 5773025..0000000
--- a/static/.bowerrc
+++ /dev/null
@@ -1,3 +0,0 @@
-{
- "directory": "app/bower_components"
-}
diff --git a/static/.gitignore b/static/.gitignore
deleted file mode 100644
index ea220bf..0000000
--- a/static/.gitignore
+++ /dev/null
@@ -1,7 +0,0 @@
-logs/*
-!.gitkeep
-node_modules/
-bower_components/
-tmp
-.DS_Store
-.idea
diff --git a/static/bower.json b/static/bower.json
deleted file mode 100644
index f931f32..0000000
--- a/static/bower.json
+++ /dev/null
@@ -1,28 +0,0 @@
-{
- "name": "angular-requirejs-seed",
- "description": "AngularJS seed project modified for requireJS support.",
- "version": "0.2.0",
- "homepage": "https://github.com/tnajdek/angular-requirejs-seed",
- "license": "MIT",
- "ignore": [
- "**/.*",
- "node_modules",
- "bower_components",
- "test",
- "tests"
- ],
- "dependencies": {
- "angular": "~1.2.1",
- "angular-route": "~1.2.1",
- "angular-scenario": "~1.2.1",
- "angular-mocks": "~1.2.1",
- "requirejs": "~2.1.9",
- "requirejs-text": "~2.0.10",
- "html5-boilerplate": "~4.3.0",
- "angularAMD": "~0.2.1",
- "angular-foundation": "~0.5.1",
- "lodash": "~3.9.3",
- "font-awesome": "~4.3.0",
- "bourbon": "~4.2.3"
- }
-}
diff --git a/static/coffee/app.coffee b/static/coffee/app.coffee
deleted file mode 100644
index 4a397dd..0000000
--- a/static/coffee/app.coffee
+++ /dev/null
@@ -1,64 +0,0 @@
-
-define [
- "angularAMD"
- "lodash"
- "angular-route"
- "foundation"
-
-], (angularAMD, _) ->
- app = angular.module("webapp", ["ngRoute", "mm.foundation"])
- app.config ($routeProvider) ->
- $routeProvider.when("/", angularAMD.route(
- templateUrl: "partials/home.html"
- controller: "HomeCtrl"
- controllerUrl: "controllers/homeCtrl"
- )).when("/serverspec", angularAMD.route(
- templateUrl: "partials/serverspec.html"
- controller: "ServerspecCtrl"
- controllerUrl: "controllers/serverspecCtrl"
- )).when("/apispec", angularAMD.route(
- templateUrl: "partials/apispec.html"
- controller: "ApispecCtrl"
- controllerUrl: "controllers/apispecCtrl"
- )).when("/newdoorman", angularAMD.route(
- templateUrl: "partials/newdoorman.html"
- controller: "NewDoormanCtrl"
- controllerUrl: "controllers/newdoormanCtrl"
- )).when("/doormen", angularAMD.route(
- templateUrl: "partials/doormen.html"
- controller: "DoormenCtrl"
- controllerUrl: "controllers/doormenCtrl"
- )).when("/doormen/error/:error/:id", angularAMD.route(
- templateUrl: "partials/doormanError.html"
- controller: "DoormanErrorCtrl"
- controllerUrl: "controllers/doormanErrorCtrl"
- )).when("/doormen/:id", angularAMD.route(
- templateUrl: "partials/doorman.html"
- controller: "DoormanCtrl"
- controllerUrl: "controllers/doormanCtrl"
- )).otherwise({redirectTo: "/"})
-
- document.getElementsByTagName("body")[0].style.visibility = ""
- return
-
- app.controller "topbarCtrl", ["$scope", "$rootScope", "$location", ($scope, $rootScope, $location) ->
-
- $scope.init = () ->
- $scope.email = localStorage.getItem("email")
- $scope.loggedIn = !!$scope.email
- if !$scope.loggedIn
- $location.path('/').replace()
-
- $scope.logout = () ->
- localStorage.setItem("email", "")
- $scope.email = ""
- $scope.loggedIn = false
- $scope.$emit("logout")
-
- $scope.init()
- $rootScope.$on('login', $scope.init)
- return
- ]
-
-
- angularAMD.bootstrap(app)
diff --git a/static/coffee/controllers/apispecCtrl.coffee b/static/coffee/controllers/apispecCtrl.coffee
deleted file mode 100644
index 6c7dac6..0000000
--- a/static/coffee/controllers/apispecCtrl.coffee
+++ /dev/null
@@ -1,32 +0,0 @@
-define ["app", "angularAMD"], (app, angularAMD) ->
- app.controller "ApispecCtrl",['$scope', '$http', ($scope, $http) ->
- $http.get("/api/documentation").then (res)->
- $scope.endpoints = res.data.endpoints
-
- $scope.methods =
- get: "GET"
- post: "POST"
- ]
-
- angularAMD.directive "wabMethod", () ->
- directive =
- restrict: 'E',
- scope:
- method: '@'
- link: (scope, element) ->
- scope.methods =
- get: "GET"
- put: "PUT"
- delete: "DELETE"
- post: "POST"
-
- template: '{{ methods[method] }}'
- return directive
-
- angularAMD.directive "wabApi", () ->
- directive =
- restrict: 'E',
- scope:
- endpoint: '@'
- template: '/api{{ endpoint }} '
- return directive
diff --git a/static/coffee/controllers/doormanCtrl.coffee b/static/coffee/controllers/doormanCtrl.coffee
deleted file mode 100644
index 5d9f23b..0000000
--- a/static/coffee/controllers/doormanCtrl.coffee
+++ /dev/null
@@ -1,76 +0,0 @@
-define ["app", "lodash", "directives/ratinput"], (app, _, ratinput) ->
-
- app.controller "DoormanCtrl", ["$scope", "$http","$routeParams","$location", "$timeout", ($scope, $http, $routeParams, $location, $timeout) ->
- $scope.doorman = {values: []}
- $scope.somevalue = "2/6"
- $scope.apiurl = "/api/doormen/#{$routeParams.id}"
- $scope.user = localStorage.getItem("email")
- $scope.doormanChanged = false
-
- $http.get($scope.apiurl).then((res) ->
- $scope.doorman = res.data
- $scope.isAdmin = _.contains($scope.doorman.emails, $scope.user)
- $scope.initEmails()
-
- ).catch((res) ->
- if res.status == 404
- $location.path("/doormen/error/#{res.status}/#{$routeParams.id}")
- )
-
- $scope.deleteDoorman = () ->
- console.log("not yet implemented")
-
- $scope.initEmails = () ->
- [$scope.leftEmailColumns, $scope.rightEmailColumns] = _.chunk($scope.doorman.emails, 2)
-
- $scope.rationalToFloat = (rat) ->
- if _.contains(rat, "/")
- num = Number(rat.substr(0, rat.indexOf("/")))
- denum = Number(rat.substr(rat.indexOf("/") + 1))
- return num / denum
- Number(rat)
-
-
- $scope.validate = ()->
- ret = 0
- for val in $scope.doorman.values
- ret += $scope.rationalToFloat(val.probability)
- return Math.abs(ret - 1.0) < 0.000001
-
- $scope.addNewAuthorEmail = () ->
- if not $scope.canAddNewEmail()
- return
- $scope.doorman.emails.push($scope.newEmail)
- $scope.updateDoorman()
- $scope.newEmail = ""
- $scope.initEmails()
-
- $scope.removeEmail = (email) ->
- $scope.doorman.emails = _.reject($scope.doorman.emails , (email_) -> email_ == email)
- $scope.initEmails()
- $scope.updateDoorman()
-
- $scope.canAddNewEmail = ()->
- if !$scope.newEmail or $scope.newEmail.length < 5
- return false
- not _.contains($scope.doorman.emails, $scope.newEmail)
-
-
- $scope.updateDoorman = () ->
- if !$scope.validate()
- return
- params = {params: {user: $scope.user}}
- $http.put($scope.apiurl, $scope.doorman, params).then((ret)->
- console.log "update"
- ).then((res) ->
- $scope.doormanChanged = true
- $timeout(() ->
- $scope.doormanChanged = false
- , 3000)
- ).catch((res) ->
- $scope.error =
- message: res.data
- status : res.status
- )
- ]
- return
diff --git a/static/coffee/controllers/doormanErrorCtrl.coffee b/static/coffee/controllers/doormanErrorCtrl.coffee
deleted file mode 100644
index aca9ead..0000000
--- a/static/coffee/controllers/doormanErrorCtrl.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-define ["app"], (app) ->
- app.controller "DoormanErrorCtrl", ["$scope","$routeParams", ($scope, $routeParams) ->
- $scope.id = $routeParams.id
- $scope.error = Number($routeParams.error)
- ]
- return
diff --git a/static/coffee/controllers/doormenCtrl.coffee b/static/coffee/controllers/doormenCtrl.coffee
deleted file mode 100644
index 0a15622..0000000
--- a/static/coffee/controllers/doormenCtrl.coffee
+++ /dev/null
@@ -1,9 +0,0 @@
-define ["app"], (app) ->
- app.controller "DoormenCtrl",[ "$scope", "$http", ($scope, $http) ->
- $scope.doormen = []
- $http.get("/api/doormen").then (res) ->
- $scope.doormen = res.data.doormen
- return
- ]
-
- return
diff --git a/static/coffee/controllers/homeCtrl.coffee b/static/coffee/controllers/homeCtrl.coffee
deleted file mode 100644
index 4115ff2..0000000
--- a/static/coffee/controllers/homeCtrl.coffee
+++ /dev/null
@@ -1,15 +0,0 @@
-define ["app"], (app) ->
- app.controller "HomeCtrl", ['$scope', '$rootScope', ($scope, $rootScope) ->
- $scope.init = () ->
- $scope.loggedEmail = localStorage.getItem("email")
-
- $scope.login = () ->
- if $scope.email
- localStorage.setItem("email", $scope.email)
- $scope.loggedEmail = $scope.email
- $scope.email = ""
- $scope.$emit("login")
-
- $scope.init()
- $rootScope.$on('logout', $scope.init)
- ]
diff --git a/static/coffee/controllers/newdoormanCtrl.coffee b/static/coffee/controllers/newdoormanCtrl.coffee
deleted file mode 100644
index b0d4107..0000000
--- a/static/coffee/controllers/newdoormanCtrl.coffee
+++ /dev/null
@@ -1,82 +0,0 @@
-epsilon = 0.0001
-
-define ["app", "lodash", "../filters", "directives/ratinput"], (app, _, filters, ratinput) ->
- app.controller "NewDoormanCtrl", ["$scope", "$http", "$location", "rationals", ($scope, $http, $location, rationals) ->
- $scope.error = ""
- $scope.user = localStorage.getItem("email")
- $scope.value = {probability: "1", name: ""}
- $scope.payload =
- name: ""
- values: []
- emails: [$scope.user]
-
- $scope.isValidValue = () ->
- return $scope.value.name
-
- $scope.addNewValue = () ->
- if !$scope.isValidValue()
- return
- $scope.payload.values.push($scope.value)
- $scope.value =
- name: ""
- probability: $scope.getProbabilityRemaining()
-
- $scope.removeValue = (idx) ->
- $scope.payload.values.splice(idx, 1);
-
- $scope.getProbabilityRemaining = () ->
- sum = rationals.sum(_.pluck($scope.payload.values, "probability")...)
- return rationals.minus("1", sum)
-
-
- $scope.redirectToDoorman = (doormanLocation) ->
- $http.get(doormanLocation).then (res) ->
- id = res.data.id
- return $location.url("/doormen/#{id}")
-
- $scope.getPayload = () ->
- payload = _.cloneDeep($scope.payload)
- for value in payload.values
- value.probability = value.probability
- return payload
-
- $scope.createDoorman = () ->
- if not $scope.isDoormanValid()
- return
- params = {params: {user: $scope.user}}
- $http.post("/api/doormen", $scope.getPayload(), params).
- then((res, s) ->
- $scope.redirectToDoorman(res.headers("location"))
- ).catch((res) ->
- $scope.error = res.data
- )
-
- $scope.isDoormanValid = () ->
- if not $scope.payload.name
- return false
- if $scope.payload.values.length < 2
- return false
- rationals.equal($scope.getProbabilityRemaining(), "0" )
-
-
- $scope.addEmail = () ->
- if not $scope.newEmail
- return
- $scope.payload.emails.push($scope.newEmail)
- $scope.newEmail = ""
-
- $scope.removeEmail = (idx) ->
- if $scope.payload.emails[idx] == $scope.user
- return
- $scope.payload.emails.splice(idx, 1);
-
- $scope.getSum = () ->
- probs = _.pluck($scope.payload.values, "probability")
- return rationals.pp(rationals.sum(probs...))
-
-
-
- return
- ]
-
- return
diff --git a/static/coffee/controllers/serverspecCtrl.coffee b/static/coffee/controllers/serverspecCtrl.coffee
deleted file mode 100644
index bfe5ccb..0000000
--- a/static/coffee/controllers/serverspecCtrl.coffee
+++ /dev/null
@@ -1,7 +0,0 @@
-define ["app"], (app) ->
- app.controller "ServerspecCtrl",["$scope", "$http", ($scope, $http) ->
- $scope.server = {}
- $http.get("/api/server").then (res) -> $scope.server = res.data
- return
- ]
- return
diff --git a/static/coffee/controllers/sideBarCtrl.coffee b/static/coffee/controllers/sideBarCtrl.coffee
deleted file mode 100644
index 9b586e6..0000000
--- a/static/coffee/controllers/sideBarCtrl.coffee
+++ /dev/null
@@ -1,6 +0,0 @@
-define ["app"], (app) ->
- app.controller "sideBarCtrl", ($scope) ->
- $scope.message = "Message from MyCtrl1"
- return
-
- return
diff --git a/static/coffee/directives/ratinput.coffee b/static/coffee/directives/ratinput.coffee
deleted file mode 100644
index 5a2edfe..0000000
--- a/static/coffee/directives/ratinput.coffee
+++ /dev/null
@@ -1,64 +0,0 @@
-template = """
-
-"""
-
-
-define ["app", "angularAMD", "lodash", "services/rationals"], (app, angularAMD, _, rationals) ->
-
- angularAMD.directive "ratInput", () ->
- directive =
- restrict: 'E',
- template: template
- scope:
- ngModel: "="
- ngDisabled: "="
- controller: [ '$scope', "rationals", ($scope, rationals) ->
-
- $scope.getNominator = ()->
- if _.contains($scope.ngModel, "/")
- return Number($scope.ngModel.substr(0, $scope.ngModel.indexOf("/")))
- Number($scope.ngModel)
-
- $scope.getDenominator = () ->
- if _.contains($scope.ngModel, "/")
- return Number($scope.ngModel.substr($scope.ngModel.indexOf("/") + 1))
- 1
-
- $scope.changeModel = ()->
- $scope.ngModel = rationals.newRat($scope.nominator, $scope.denominator)
-
- $scope.enableEdit = () ->
- if not $scope.ngDisabled
- $scope.edit = true
-
- $scope.init = () ->
- $scope.nominator = rationals.getNominator($scope.ngModel)
- $scope.denominator = $scope.getDenominator()
-
- $scope.$watch 'ngModel', () ->
- $scope.init()
-
- $scope.init()
-
- ]
- return directive
diff --git a/static/coffee/filters.coffee b/static/coffee/filters.coffee
deleted file mode 100644
index 8000215..0000000
--- a/static/coffee/filters.coffee
+++ /dev/null
@@ -1,7 +0,0 @@
-define ['angularAMD', 'app'], (angular, app) ->
- app.filter 'reverse', ->
- (items) ->
- if !Array.isArray(items)
- return false
- items.slice().reverse()
- return
diff --git a/static/coffee/main.coffee b/static/coffee/main.coffee
deleted file mode 100644
index 25e6863..0000000
--- a/static/coffee/main.coffee
+++ /dev/null
@@ -1,21 +0,0 @@
-require.config
- baseUrl: "js"
-
- # alias libraries paths. Must set 'angular'
- paths:
- "angular" : "/bower_components/angular/angular.min"
- "angular-route": "/bower_components/angular-route/angular-route.min"
- "angularAMD" : "/bower_components/angularAMD/angularAMD.min"
- "foundation" : "/bower_components/angular-foundation/mm-foundation-tpls"
- "lodash" : "/bower_components/lodash/lodash.min"
-
-
- # Add angular modules that does not support AMD out of the box, put it in a shim
- shim:
- "angularAMD": ["angular"]
- "angular-route": ["angular"]
- "foundation" : ["angular"]
-
-
- # kick start application
- deps: ["app"]
diff --git a/static/coffee/services/rationals.coffee b/static/coffee/services/rationals.coffee
deleted file mode 100644
index d31e483..0000000
--- a/static/coffee/services/rationals.coffee
+++ /dev/null
@@ -1,80 +0,0 @@
-define ["app", "angularAMD", "lodash"], (app, angularAMD, _) ->
-
- app.service "rationals", () ->
- service =
- getNominator: (rat) ->
- if _.contains(rat, "/")
- return Number(rat.substr(0, rat.indexOf("/")))
- Number(rat)
-
- getDenominator: (rat) ->
- if _.contains(rat, "/")
- return Number(rat.substr(rat.indexOf("/") + 1))
- 1
-
- getNomDenom: (rat) ->
- return [service.getNominator(rat), service.getDenominator(rat)]
-
- gcd: (a, b) ->
- if b == 0
- return a
- return service.gcd(b, a % b)
-
- lcm: (a, b) ->
- return a * b / service.gcd(a, b)
-
- changeDenominator: (rat, newDenom) ->
- [nom, denom] = service.getNomDenom(rat)
- return service.newRat( nom * newDenom / denom, newDenom)
-
- add: (rat1, rat2) ->
- [nom, denom] = service.getNomDenom(rat2)
- [nNom, nDenom] = service.getNomDenom(rat1)
- gcd = service.gcd(nDenom, denom)
-
- rNom = nom*nDenom + nNom * denom
- rDenom = denom * nDenom
- return service.newRat(rNom/gcd , rDenom/gcd)
-
- minus: (rat1, rat2) ->
- return service.add(rat1, service.opposite(rat2))
-
- reduce: (rat) ->
- [nom, denom] = service.getNomDenom(rat)
- gcd = service.gcd(nom, denom)
- return service.newRat(nom/gcd, denom/gcd)
-
- opposite: (rat) ->
- [nom, denom] = service.getNomDenom(rat)
- return service.newRat(-nom, denom)
-
-
- sum: (rats...) ->
- ret = "0/1"
- for rat in rats
- ret = service.add(ret, rat)
- return service.reduce(ret)
-
- equal: (rat1, rat2) ->
- [nom1, denom1] = service.getNomDenom(rat1)
- [nom2, denom2] = service.getNomDenom(rat2)
- return nom1 * denom2 == nom2 * denom1
-
- pp: (x) ->
- [num, denum] = service.getNomDenom(service.reduce(x))
- if denum == 1
- return num
- return "#{num}/#{denum}"
-
-
- newRat: (nom , denom) ->
- if nom * denom >= 0
- return "#{Math.abs(nom)}/#{Math.abs(denom)}"
- return "#{-Math.abs(nom)}/#{Math.abs(denom)}"
-
- return service
-
- app.filter "ratpp", ["rationals", (rationals) ->
- filter = (n) ->
- return rationals.pp(n)
- ]
diff --git a/static/gulpfile.js b/static/gulpfile.js
deleted file mode 100644
index 660ccfa..0000000
--- a/static/gulpfile.js
+++ /dev/null
@@ -1,51 +0,0 @@
-var bower = require('gulp-bower');
-var gulp = require('gulp');
-var coffee = require('gulp-coffee');
-var help = require('gulp-task-listing');
-var clean = require('gulp-clean');
-var sass = require('gulp-sass');
-var rjs = require("gulp-rjs");
-var gutil = require('gulp-util');
-
-
-gulp.task('help', help);
-
-gulp.task('bower', function() {
- return bower()
- .pipe(gulp.dest('bower_components/'))
-});
-
-gulp.task('sass', ['bower'], function () {
- return gulp.src('./scss/*.scss')
- .pipe(sass({includePaths: ['bower_components/foundation/scss', 'bower_components/bourbon/app/assets/stylesheets']}))
- .pipe(gulp.dest('./css'));
-});
-
-gulp.task('coffee', ['bower'], function() {
- return gulp.src('coffee/**/*.coffee')
- .pipe(coffee({bare: true}).on('error', gutil.log))
- .pipe(gulp.dest('js/'))
-});
-
-gulp.task('clean', function(){
- return gulp.src(["js/", "bower_components/", "css/"], {read: false})
- .pipe(clean())
-});
-
-
-gulp.task('rjs', ['coffee'], function(){
- return gulp.src('coffee/**/*.coffee')
- .pipe(coffee())
- .pipe(gulp.dest('./dist'))
- .pipe(rjs({baseUrl:'.'}))
-});
-
-
-gulp.task('default', ['bower', 'sass', 'coffee']);
-
-
-
-gulp.task('dev', ['bower', 'sass', 'coffee'], function(){
- gulp.watch('coffee/**/*.coffee', ['coffee']);
- gulp.watch('./scss/*.scss', ['sass']);
-});
diff --git a/static/img/.gitkeep b/static/img/.gitkeep
deleted file mode 100755
index e69de29..0000000
diff --git a/static/index.html b/static/index.html
index 485b4a9..7baecc3 100644
--- a/static/index.html
+++ b/static/index.html
@@ -1,47 +1,22 @@
+
+
+
+
-
- doorman
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
diff --git a/static/index.js b/static/index.js
new file mode 100644
index 0000000..97e916e
--- /dev/null
+++ b/static/index.js
@@ -0,0 +1,215 @@
+(function(){
+ const Ratio = (n, d) => ({
+ type: 'Ratio',
+ 'n': n, // numerator
+ 'd': d // denominator
+ });
+
+ const approxRatio = eps => n => {
+ const
+ gcde = (e, x, y) => {
+ const _gcd = (a, b) => (b < e ? a : _gcd(b, a % b));
+ return _gcd(Math.abs(x), Math.abs(y));
+ },
+ c = gcde(Boolean(eps) ? eps : (1 / 10000), 1, n);
+ return Ratio(
+ Math.floor(n / c), // numerator
+ Math.floor(1 / c) // denominator
+ );
+ };
+
+ var topBar = {}
+
+ function fontawesome(){
+ const classes = _.map(arguments, x => "." + x).reduce((s, n) => s + n);
+ return m('i' + classes);
+ }
+
+ var TopBar = {
+ view: function(){
+ return m('nav.navbar', [
+ m('div.navbar-brand',
+ m('a.navbar-item', {href: "#!/"}, "Doorman ", fontawesome('fas', 'fa-door-open'))),
+ m('div.navbar-menu', [
+ m('div.navbar-end', [
+ m('a.navbar-item', {href: "#!/server"}, "Server"),
+ m('a.navbar-item', {href: "#!/new-doorman"}, "New Doorman"),
+ ])
+ ])
+ ]);
+ }
+ }
+
+ var Home = {};
+
+ Home.doormen = [];
+
+ Home.oninit = function(){
+ m.request({method: "GET", url: "/api/doormen"}).then(data => Home.doormen = data.doormen);
+ }
+
+ Home.doorman = function(doorman, idx){
+ const link = "#!/doorman/" + doorman.id
+ return m('li', m('a', {href: link}, doorman.name));
+ }
+
+ Home.view = function() {
+ return m("main", [
+ m(TopBar),
+ m("h1", {class: "title"}, "Home"),
+ m('div.content',
+ m('ul', _.map(Home.doormen, Home.doorman)))
+ ]);
+ }
+
+ var NewDoorman = {}
+
+
+ NewDoorman.oninit = function(){
+ NewDoorman.clear();
+ }
+
+ NewDoorman.setToPayload = function(field){
+ return function(e){
+ _.set(NewDoorman.payload, field, e.target.value);
+ }
+ }
+
+ NewDoorman.nameField = function(){
+ const fields = {
+ type: 'text',
+ placeholder: 'Background Colour dsds',
+ onchange: NewDoorman.setToPayload('foo')};
+ return m('label.label', 'Name',
+ m('input.input', fields));
+ }
+
+ NewDoorman.ownerField = function(email, idx){
+ const label = 'Owner ' + (idx + 1);
+ const fields = {
+ type: 'text',
+ value: email,
+ onchange: NewDoorman.setToPayload(['OwnerEmails', idx])}
+ return m('label.label', label,
+ m('input.input', fields));
+ }
+
+ NewDoorman.putEmptyOwnerFields = function(){
+ NewDoorman.payload.OwnerEmails = _(NewDoorman.payload.OwnerEmails)
+ .filter(x => !_.isEmpty(x))
+ .concat('')
+ .value();
+ }
+
+ NewDoorman.ownerFields = function(){
+ return m('fieldset', {onchange: NewDoorman.putEmptyOwnerFields()},
+ m('legend', 'Owners'),
+ _.map(NewDoorman.payload.OwnerEmails, NewDoorman.ownerField));
+ }
+ NewDoorman.valueField = function(value, idx){
+ const nameField = m('div.field',
+ m('label', 'name',
+ m('input.input', {type: 'text', value: value.name, onchange: NewDoorman.setToPayload(['Values', idx, 'name'])})));
+ const valueField = m('div.field', m('label', 'value', m('input.input', {type: 'number', value: value.value, onchange: NewDoorman.setToPayload(['Values', idx, 'value'])})));
+
+ return m('div.columns',
+ m('div.column', nameField),
+ m('div.column', valueField));
+ }
+
+ NewDoorman.putEmptyValueFields = function() {
+ const hasEmptyNames = _(NewDoorman.payload.Values).map('name').filter(_.isEmpty).value().length;
+ const hasEmptyValues = _(NewDoorman.payload.Values).map('value').filter(_.isEmpty).value().length;
+ const sum = _(NewDoorman.payload.Values).map('value').map(x => parseInt(x)).sum();
+ if(sum >= 100 || hasEmptyNames || hasEmptyValues){
+ return;
+ }
+ NewDoorman.payload.Values.push({name: '', value: 100 - sum});
+ }
+
+ NewDoorman.valueFields = function(){
+ return m('fieldset', {onchange: NewDoorman.putEmptyValueFields}, m('legend', 'Values'),
+ _.map(NewDoorman.payload.Values, NewDoorman.valueField));
+ }
+
+ NewDoorman.clear = function(){
+ NewDoorman.payload = {
+ OwnerEmails: [],
+ Values: [{}]
+ };
+ }
+
+ NewDoorman.buttons = function(){
+ return m('div.buttons', [
+ m('button.button.is-primary.is-light', 'Create'),
+ m('button.button.is-danger.is-light', {onclick: NewDoorman.clear}, 'Clear')
+ ])
+ }
+
+ NewDoorman.view = function(){
+ return m('div',
+ m(TopBar),
+ m('form', [
+ NewDoorman.nameField(),
+ m('br'),
+ NewDoorman.ownerFields(),
+ m('br'),
+ NewDoorman.valueFields(),
+ m('br'),
+ NewDoorman.buttons()
+ ]))
+ }
+
+ var Server = {}
+
+ Server.data = {};
+
+ Server.oninit= function(){
+ m.request({method: "GET", url: "/api/server"})
+ .then(function(data) {
+ Server.data = data;
+ });
+ }
+
+ Server.renderRow = function(value, key){
+ return m('tr', [
+ m('td', key),
+ m('td', _.isObject(value) ? JSON.stringify(value) : value)]);
+ }
+
+ Server.renderTable = function(serverData){
+ const rows = _.map(serverData, Server.renderRow);
+ return m('table.table.is-bordered.is-striped.is-hoverable', rows);
+ }
+
+ Server.view = function() {
+ return m("div", [
+ m(TopBar),
+ m("h1", {class: "title"}, "Server"),
+ Server.renderTable(Server.data)
+ ]);
+ }
+
+ var Doorman = {};
+ Doorman.doorman = {}
+
+ Doorman.oninit = function(vnode){
+ m.request({method: "GET", url: "/api/doormen"})
+ .then(data => _(data.doormen).filter(x => x.id == vnode.attrs.doormanId).map('url').first())
+ .then(url => m.request({method: "GET", url: url}))
+ .then(data => Doorman.doorman = data);
+ }
+
+ Doorman.view = function(vnode){
+ return m('div', [m(TopBar),'blah' + JSON.stringify(Doorman.doorman)])
+
+ }
+
+ m.route(document.getElementById('mithril'), "/", {
+ "/": Home,
+ "/server": Server,
+ "/new-doorman": NewDoorman,
+ "/doorman/:doormanId": Doorman,
+ });
+
+})();
diff --git a/static/package.json b/static/package.json
deleted file mode 100644
index 75c3637..0000000
--- a/static/package.json
+++ /dev/null
@@ -1,15 +0,0 @@
-{
- "dependencies": {
- "gulp": "~3.8.9",
- "gulp-bower": "0.0.7",
- "gulp-clean": "~0.3.1",
- "gulp-coffee": "~2.2.0",
- "gulp-sass": "^1.2.4",
- "gulp-task-listing": "~0.3.0",
- "gulp-util": "^3.0.3",
- "node-sass": "~1.2.3"
- },
- "devDependencies": {
- "gulp-rjs": "^0.1.0"
- }
-}
diff --git a/static/partials/apispec.html b/static/partials/apispec.html
deleted file mode 100644
index c92098c..0000000
--- a/static/partials/apispec.html
+++ /dev/null
@@ -1,53 +0,0 @@
-
-
-
Api specification
-
-
-
-
-
-
-
-
-
- api endpoint
- method
- description
-
-
-
-
-
-
- {{ endpoint.method }}
-
- {{ endpoint.description }}
-
-
-
-
-
-
-
-
-
-
-
-
- All calls that change an asset requires authentication.
- Authentication is done by adding a
- user={user_name} parameter to the endpoint. For example, to
- authenticate to /api/doormen/zST8_FWcPDT2-14wDQAAAQ==
- with a user called "bob", the url becomes
- /api/doormen/zST8_FWcPDT2-14wDQAAAQ==?user=bob
-
-
-
diff --git a/static/partials/doorman.html b/static/partials/doorman.html
deleted file mode 100644
index 4f94f85..0000000
--- a/static/partials/doorman.html
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
{{ doorman.name }}
-
-
-
-
-
- doorman id: {{ doorman.id }}
-
-
-
-
-
-
-
- probability
-
-
-
-
-
-
-
-
-
- {{ error.status }} {{ error.message }}
-
-
-
-
-
-
-
-
- doorman changed
-
-
-
diff --git a/static/partials/doormanError.html b/static/partials/doormanError.html
deleted file mode 100644
index 63a3a81..0000000
--- a/static/partials/doormanError.html
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
- Error {{ error }} getting doorman {{ id }}
-
-
diff --git a/static/partials/doormen.html b/static/partials/doormen.html
deleted file mode 100644
index c469787..0000000
--- a/static/partials/doormen.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
diff --git a/static/partials/home.html b/static/partials/home.html
deleted file mode 100644
index c937bfc..0000000
--- a/static/partials/home.html
+++ /dev/null
@@ -1,31 +0,0 @@
-
-
-
Welcome to the world best a/b testing library
-
-
-
-
-
-
-
-
-
- You are currently logged in as
-
-
diff --git a/static/partials/newdoorman.html b/static/partials/newdoorman.html
deleted file mode 100644
index 4fd7b41..0000000
--- a/static/partials/newdoorman.html
+++ /dev/null
@@ -1,101 +0,0 @@
-
-
-
-
-
-
-
- doorman state
-
-
-
- name
-
-
- probability
-
-
-
-
-
-
-
-
-
- value
-
-
- probability
-
-
-
-
-
-
-
-
-
-
-
-
- administrator
-
-
-
-
-
-
-
-
-
-
-
-
-
- create
-
-
-
- propability remaning: {{ getProbabilityRemaining() | ratpp}}
-
-
diff --git a/static/partials/serverspec.html b/static/partials/serverspec.html
deleted file mode 100644
index 38149ba..0000000
--- a/static/partials/serverspec.html
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
server specification
-
-
-
-
-
-
general
-
-
-
- value
- key
-
-
-
-
- hostname
- {{server.hostname}}
-
-
- port
- {{server.port}}
-
-
- go version
- {{server.go_version}}
-
-
-
-
-
-
-
-
-
-
nano msg
-
-
-
- value
- key
-
-
-
-
- url
- {{server.nano_msg.url}}
-
-
-
-
-
-
diff --git a/static/scss/_doorman.scss b/static/scss/_doorman.scss
deleted file mode 100644
index 95bc472..0000000
--- a/static/scss/_doorman.scss
+++ /dev/null
@@ -1,67 +0,0 @@
-@import "settings";
-@import "bourbon";
-
-// @import url(http://fonts.googleapis.com/css?family=Orbitron:400,900,500,700);
-@font-face {
- font-family: 'Orbitron';
- font-style: normal;
- font-weight: 400;
- src: local('Orbitron-Light'), local('Orbitron-Regular'), url(/scss/font/orbitron/HmnHiRzvcnQr8CjBje6GQvesZW2xOQ-xsNqO47m55DA.woff2) format('woff2'), url(/scss/font/orbitron/94ug0rEgQO_WuI_xKJMFc_esZW2xOQ-xsNqO47m55DA.woff) format('woff');
-}
-
-
-h1, h2{
- font-family: 'Orbitron', sans-serif;
-}
-
-
-.wab-sidebar{
- background: $ghost;
-
- h1{
- text-align: center;
- color: $primary-color;
- }
-}
-.wab-apispect{
- h2{
- text-align: center;
- }
-}
-
-.rat-input{
- .fraction-box{
- font-family: monospace;
- font-size: 1.3em;
- border: 2px;
- padding: 0.3em;
- box-shadow: 2px 2px 1px #888;
- @include border-top-radius(5px);
- @include border-bottom-radius(5px);
-
- i{
- font-size: 1em;
- margin-left: 0.2em;
- }
- }
-
- .fraction-box:hover{
- border: 2px;
- padding: 0.3em;
- box-shadow: 2px 2px 1px red;
- }
-
- .edit{
- input{
- width: 4em;
- height: 2em;
- display: inline;
- padding: 0px;
- padding-left: 0.5em;
- }
- }
-}
-
-.light{
- border-style: none;
-}
diff --git a/static/scss/_settings.scss b/static/scss/_settings.scss
deleted file mode 100644
index 65266ba..0000000
--- a/static/scss/_settings.scss
+++ /dev/null
@@ -1,1453 +0,0 @@
-// Foundation by ZURB
-// foundation.zurb.com
-// Licensed under MIT Open Source
-
-//
-
-// Table of Contents
-// Foundation Settings
-//
-// a. Base
-// b. Grid
-// c. Global
-// d. Media Query Ranges
-// e. Typography
-// 01. Accordion
-// 02. Alert Boxes
-// 03. Block Grid
-// 04. Breadcrumbs
-// 05. Buttons
-// 06. Button Groups
-// 07. Clearing
-// 08. Dropdown
-// 09. Dropdown Buttons
-// 10. Flex Video
-// 11. Forms
-// 12. Icon Bar
-// 13. Inline Lists
-// 14. Joyride
-// 15. Keystrokes
-// 16. Labels
-// 17. Magellan
-// 18. Off-canvas
-// 19. Orbit
-// 20. Pagination
-// 21. Panels
-// 22. Pricing Tables
-// 23. Progress Bar
-// 24. Range Slider
-// 25. Reveal
-// 26. Side Nav
-// 27. Split Buttons
-// 28. Sub Nav
-// 29. Switch
-// 30. Tables
-// 31. Tabs
-// 32. Thumbnails
-// 33. Tooltips
-// 34. Top Bar
-// 36. Visibility Classes
-
-// a. Base
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// This is the default html and body font-size for the base rem value.
-// $rem-base: 16px;
-
-// Allows the use of rem-calc() or lower-bound() in your settings
-@import "foundation/functions";
-
-// The default font-size is set to 100% of the browser style sheet (usually 16px)
-// for compatibility with browser-based text zoom or user-set defaults.
-
-// Since the typical default browser font-size is 16px, that makes the calculation for grid size.
-// If you want your base font-size to be different and not have it affect the grid breakpoints,
-// set $rem-base to $base-font-size and make sure $base-font-size is a px value.
-// $base-font-size: 100%;
-
-// The $base-font-size is 100% while $base-line-height is 150%
-// $base-line-height: 150%;
-
-// We use this to control whether or not CSS classes come through in the gem files.
-$include-html-classes: true;
-// $include-print-styles: true;
-$include-html-global-classes: $include-html-classes;
-
-// b. Grid
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-grid-classes: $include-html-classes;
-// $include-xl-html-grid-classes: false;
-
-// $row-width: rem-calc(1000);
-// $total-columns: 12;
-// $column-gutter: rem-calc(30);
-
-// c. Global
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// We use these to define default font stacks
-// $font-family-sans-serif: "Helvetica Neue", Helvetica, Roboto, Arial, sans-serif;
-// $font-family-serif: Georgia, Cambria, "Times New Roman", Times, serif;
-// $font-family-monospace: Consolas, "Liberation Mono", Courier, monospace;
-
-// We use these to define default font weights
-// $font-weight-normal: normal !default;
-// $font-weight-bold: bold !default;
-
-// $white : #FFFFFF;
-// $ghost : #FAFAFA;
-// $snow : #F9F9F9;
-// $vapor : #F6F6F6;
-// $white-smoke : #F5F5F5;
-// $silver : #EFEFEF;
-// $smoke : #EEEEEE;
-// $gainsboro : #DDDDDD;
-// $iron : #CCCCCC;
-// $base : #AAAAAA;
-// $aluminum : #999999;
-// $jumbo : #888888;
-// $monsoon : #777777;
-// $steel : #666666;
-// $charcoal : #555555;
-// $tuatara : #444444;
-// $oil : #333333;
-// $jet : #222222;
-// $black : #000000;
-
-// We use these as default colors throughout
-// $primary-color: #008CBA;
-// $secondary-color: #e7e7e7;
-// $alert-color: #f04124;
-// $success-color: #43AC6A;
-// $warning-color: #f08a24;
-// $info-color: #a0d3e8;
-
-$primary-color: #153450;
-$secondary-color: #294052;
-$alert-color: #447294;
-$success-color: #73AFB6;
-$warning-color: #F4D6BC;
-$info-color: #F8E4CC;
-
-
-// We use these to control various global styles
-// $body-bg: $white;
-// $body-font-color: $jet;
-// $body-font-family: $font-family-sans-serif;
-// $body-font-weight: $font-weight-normal;
-// $body-font-style: normal;
-
-// We use this to control font-smoothing
-// $font-smoothing: antialiased;
-
-// We use these to control text direction settings
-// $text-direction: ltr;
-// $opposite-direction: right;
-// $default-float: left;
-// $last-child-float: $opposite-direction;
-
-// We use these to make sure border radius matches unless we want it different.
-// $global-radius: 3px;
-// $global-rounded: 1000px;
-
-// We use these to control inset shadow shiny edges and depressions.
-// $shiny-edge-size: 0 1px 0;
-// $shiny-edge-color: rgba($white, .5);
-// $shiny-edge-active-color: rgba($black, .2);
-
-// d. Media Query Ranges
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $small-range: (0em, 40em);
-// $medium-range: (40.063em, 64em);
-// $large-range: (64.063em, 90em);
-// $xlarge-range: (90.063em, 120em);
-// $xxlarge-range: (120.063em, 99999999em);
-
-// $screen: "only screen";
-
-// $landscape: "#{$screen} and (orientation: landscape)";
-// $portrait: "#{$screen} and (orientation: portrait)";
-
-// $small-up: $screen;
-// $small-only: "#{$screen} and (max-width: #{upper-bound($small-range)})";
-
-// $medium-up: "#{$screen} and (min-width:#{lower-bound($medium-range)})";
-// $medium-only: "#{$screen} and (min-width:#{lower-bound($medium-range)}) and (max-width:#{upper-bound($medium-range)})";
-
-// $large-up: "#{$screen} and (min-width:#{lower-bound($large-range)})";
-// $large-only: "#{$screen} and (min-width:#{lower-bound($large-range)}) and (max-width:#{upper-bound($large-range)})";
-
-// $xlarge-up: "#{$screen} and (min-width:#{lower-bound($xlarge-range)})";
-// $xlarge-only: "#{$screen} and (min-width:#{lower-bound($xlarge-range)}) and (max-width:#{upper-bound($xlarge-range)})";
-
-// $xxlarge-up: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)})";
-// $xxlarge-only: "#{$screen} and (min-width:#{lower-bound($xxlarge-range)}) and (max-width:#{upper-bound($xxlarge-range)})";
-
-// Legacy
-// $small: $medium-up;
-// $medium: $medium-up;
-// $large: $large-up;
-
-// We use this as cursors values for enabling the option of having custom cursors in the whole site's stylesheet
-// $cursor-crosshair-value: crosshair;
-// $cursor-default-value: default;
-// $cursor-pointer-value: pointer;
-// $cursor-help-value: help;
-// $cursor-text-value: text;
-
-// e. Typography
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-type-classes: $include-html-classes;
-
-// We use these to control header font styles
-// $header-font-family: $body-font-family;
-// $header-font-weight: $font-weight-normal;
-// $header-font-style: normal;
-// $header-font-color: $jet;
-// $header-line-height: 1.4;
-// $header-top-margin: .2rem;
-// $header-bottom-margin: .5rem;
-// $header-text-rendering: optimizeLegibility;
-
-// We use these to control header font sizes
-// $h1-font-size: rem-calc(44);
-// $h2-font-size: rem-calc(37);
-// $h3-font-size: rem-calc(27);
-// $h4-font-size: rem-calc(23);
-// $h5-font-size: rem-calc(18);
-// $h6-font-size: 1rem;
-
-// We use these to control header size reduction on small screens
-// $h1-font-reduction: rem-calc(10) !default;
-// $h2-font-reduction: rem-calc(10) !default;
-// $h3-font-reduction: rem-calc(5) !default;
-// $h4-font-reduction: rem-calc(5) !default;
-// $h5-font-reduction: 0 !default;
-// $h6-font-reduction: 0 !default;
-
-// These control how subheaders are styled.
-// $subheader-line-height: 1.4;
-// $subheader-font-color: scale-color($header-font-color, $lightness: 35%);
-// $subheader-font-weight: $font-weight-normal;
-// $subheader-top-margin: .2rem;
-// $subheader-bottom-margin: .5rem;
-
-// A general styling
-// $small-font-size: 60%;
-// $small-font-color: scale-color($header-font-color, $lightness: 35%);
-
-// We use these to style paragraphs
-// $paragraph-font-family: inherit;
-// $paragraph-font-weight: $font-weight-normal;
-// $paragraph-font-size: 1rem;
-// $paragraph-line-height: 1.6;
-// $paragraph-margin-bottom: rem-calc(20);
-// $paragraph-aside-font-size: rem-calc(14);
-// $paragraph-aside-line-height: 1.35;
-// $paragraph-aside-font-style: italic;
-// $paragraph-text-rendering: optimizeLegibility;
-
-// We use these to style tags
-// $code-color: $oil;
-// $code-font-family: $font-family-monospace;
-// $code-font-weight: $font-weight-normal;
-// $code-background-color: scale-color($secondary-color, $lightness: 70%);
-// $code-border-size: 1px;
-// $code-border-style: solid;
-// $code-border-color: scale-color($code-background-color, $lightness: -10%);
-// $code-padding: rem-calc(2) rem-calc(5) rem-calc(1);
-
-// We use these to style anchors
-// $anchor-text-decoration: none;
-// $anchor-text-decoration-hover: none;
-// $anchor-font-color: $primary-color;
-// $anchor-font-color-hover: scale-color($primary-color, $lightness: -14%);
-
-// We use these to style the element
-// $hr-border-width: 1px;
-// $hr-border-style: solid;
-// $hr-border-color: $gainsboro;
-// $hr-margin: rem-calc(20);
-
-// We use these to style lists
-// $list-font-family: $paragraph-font-family;
-// $list-font-size: $paragraph-font-size;
-// $list-line-height: $paragraph-line-height;
-// $list-margin-bottom: $paragraph-margin-bottom;
-// $list-style-position: outside;
-// $list-side-margin: 1.1rem;
-// $list-ordered-side-margin: 1.4rem;
-// $list-side-margin-no-bullet: 0;
-// $list-nested-margin: rem-calc(20);
-// $definition-list-header-weight: $font-weight-bold;
-// $definition-list-header-margin-bottom: .3rem;
-// $definition-list-margin-bottom: rem-calc(12);
-
-// We use these to style blockquotes
-// $blockquote-font-color: scale-color($header-font-color, $lightness: 35%);
-// $blockquote-padding: rem-calc(9 20 0 19);
-// $blockquote-border: 1px solid $gainsboro;
-// $blockquote-cite-font-size: rem-calc(13);
-// $blockquote-cite-font-color: scale-color($header-font-color, $lightness: 23%);
-// $blockquote-cite-link-color: $blockquote-cite-font-color;
-
-// Acronym styles
-// $acronym-underline: 1px dotted $gainsboro;
-
-// We use these to control padding and margin
-// $microformat-padding: rem-calc(10 12);
-// $microformat-margin: rem-calc(0 0 20 0);
-
-// We use these to control the border styles
-// $microformat-border-width: 1px;
-// $microformat-border-style: solid;
-// $microformat-border-color: $gainsboro;
-
-// We use these to control full name font styles
-// $microformat-fullname-font-weight: $font-weight-bold;
-// $microformat-fullname-font-size: rem-calc(15);
-
-// We use this to control the summary font styles
-// $microformat-summary-font-weight: $font-weight-bold;
-
-// We use this to control abbr padding
-// $microformat-abbr-padding: rem-calc(0 1);
-
-// We use this to control abbr font styles
-// $microformat-abbr-font-weight: $font-weight-bold;
-// $microformat-abbr-font-decoration: none;
-
-// 01. Accordion
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-accordion-classes: $include-html-classes;
-
-// $accordion-navigation-padding: rem-calc(16);
-// $accordion-navigation-bg-color: $silver;
-// $accordion-navigation-hover-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -5%);
-// $accordion-navigation-active-bg-color: scale-color($accordion-navigation-bg-color, $lightness: -3%);
-// $accordion-navigation-font-color: $jet;
-// $accordion-navigation-font-size: rem-calc(16);
-// $accordion-navigation-font-family: $body-font-family;
-
-// $accordion-content-padding: ($column-gutter/2);
-// $accordion-content-active-bg-color: $white;
-
-// 02. Alert Boxes
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-alert-classes: $include-html-classes;
-
-// We use this to control alert padding.
-// $alert-padding-top: rem-calc(14);
-// $alert-padding-default-float: $alert-padding-top;
-// $alert-padding-opposite-direction: $alert-padding-top + rem-calc(10);
-// $alert-padding-bottom: $alert-padding-top;
-
-// We use these to control text style.
-// $alert-font-weight: $font-weight-normal;
-// $alert-font-size: rem-calc(13);
-// $alert-font-color: $white;
-// $alert-font-color-alt: scale-color($secondary-color, $lightness: -66%);
-
-// We use this for close hover effect.
-// $alert-function-factor: -14%;
-
-// We use these to control border styles.
-// $alert-border-style: solid;
-// $alert-border-width: 1px;
-// $alert-border-color: scale-color($primary-color, $lightness: $alert-function-factor);
-// $alert-bottom-margin: rem-calc(20);
-
-// We use these to style the close buttons
-// $alert-close-color: $oil;
-// $alert-close-top: 50%;
-// $alert-close-position: rem-calc(4);
-// $alert-close-font-size: rem-calc(22);
-// $alert-close-opacity: 0.3;
-// $alert-close-opacity-hover: 0.5;
-// $alert-close-padding: 9px 6px 4px;
-
-// We use this to control border radius
-// $alert-radius: $global-radius;
-
-// We use this to control transition effects
-// $alert-transition-speed: 300ms;
-// $alert-transition-ease: ease-out;
-
-// 03. Block Grid
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-block-grid-classes: $include-html-classes;
-// $include-xl-html-block-grid-classes: false;
-
-// We use this to control the maximum number of block grid elements per row
-// $block-grid-elements: 12;
-// $block-grid-default-spacing: rem-calc(20);
-// $align-block-grid-to-grid: false;
-
-// Enables media queries for block-grid classes. Set to false if writing semantic HTML.
-// $block-grid-media-queries: true;
-
-// 04. Breadcrumbs
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-nav-classes: $include-html-classes;
-
-// We use this to set the background color for the breadcrumb container.
-// $crumb-bg: scale-color($secondary-color, $lightness: 55%);
-
-// We use these to set the padding around the breadcrumbs.
-// $crumb-padding: rem-calc(9 14 9);
-// $crumb-side-padding: rem-calc(12);
-
-// We use these to control border styles.
-// $crumb-function-factor: -10%;
-// $crumb-border-size: 1px;
-// $crumb-border-style: solid;
-// $crumb-border-color: scale-color($crumb-bg, $lightness: $crumb-function-factor);
-// $crumb-radius: $global-radius;
-
-// We use these to set various text styles for breadcrumbs.
-// $crumb-font-size: rem-calc(11);
-// $crumb-font-color: $primary-color;
-// $crumb-font-color-current: $oil;
-// $crumb-font-color-unavailable: $aluminum;
-// $crumb-font-transform: uppercase;
-// $crumb-link-decor: underline;
-
-// We use these to control the slash between breadcrumbs
-// $crumb-slash-color: $base;
-// $crumb-slash: "/";
-
-// 05. Buttons
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-button-classes: $include-html-classes;
-
-// We use these to build padding for buttons.
-// $button-tny: rem-calc(10);
-// $button-sml: rem-calc(14);
-// $button-med: rem-calc(16);
-// $button-lrg: rem-calc(18);
-
-// We use this to control the display property.
-// $button-display: inline-block;
-// $button-margin-bottom: rem-calc(20);
-
-// We use these to control button text styles.
-// $button-font-family: $body-font-family;
-// $button-font-color: $white;
-// $button-font-color-alt: $oil;
-// $button-font-tny: rem-calc(11);
-// $button-font-sml: rem-calc(13);
-// $button-font-med: rem-calc(16);
-// $button-font-lrg: rem-calc(20);
-// $button-font-weight: $font-weight-normal;
-// $button-font-align: center;
-
-// We use these to control various hover effects.
-// $button-function-factor: -20%;
-
-// We use these to control button border and hover styles.
-// $button-border-width: 0px;
-// $button-border-style: solid;
-// $button-bg-color: $primary-color;
-// $button-bg-hover: scale-color($button-bg-color, $lightness: $button-function-factor);
-// $button-border-color: $button-bg-hover;
-// $secondary-button-bg-hover: scale-color($secondary-color, $lightness: $button-function-factor);
-// $secondary-button-border-color: $secondary-button-bg-hover;
-// $success-button-bg-hover: scale-color($success-color, $lightness: $button-function-factor);
-// $success-button-border-color: $success-button-bg-hover;
-// $alert-button-bg-hover: scale-color($alert-color, $lightness: $button-function-factor);
-// $alert-button-border-color: $alert-button-bg-hover;
-
-// We use this to set the default radius used throughout the core.
-// $button-radius: $global-radius;
-// $button-round: $global-rounded;
-
-// We use this to set default opacity and cursor for disabled buttons.
-// $button-disabled-opacity: 0.7;
-// $button-disabled-cursor: $cursor-default-value;
-
-// 06. Button Groups
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-button-classes: $include-html-classes;
-
-// Sets the margin for the right side by default, and the left margin if right-to-left direction is used
-// $button-bar-margin-opposite: rem-calc(10);
-// $button-group-border-width: 1px;
-
-// 07. Clearing
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-clearing-classes: $include-html-classes;
-
-// We use these to set the background colors for parts of Clearing.
-// $clearing-bg: $oil;
-// $clearing-caption-bg: $clearing-bg;
-// $clearing-carousel-bg: rgba(51,51,51,0.8);
-// $clearing-img-bg: $clearing-bg;
-
-// We use these to style the close button
-// $clearing-close-color: $iron;
-// $clearing-close-size: 30px;
-
-// We use these to style the arrows
-// $clearing-arrow-size: 12px;
-// $clearing-arrow-color: $clearing-close-color;
-
-// We use these to style captions
-// $clearing-caption-font-color: $iron;
-// $clearing-caption-font-size: 0.875em;
-// $clearing-caption-padding: 10px 30px 20px;
-
-// We use these to make the image and carousel height and style
-// $clearing-active-img-height: 85%;
-// $clearing-carousel-height: 120px;
-// $clearing-carousel-thumb-width: 120px;
-// $clearing-carousel-thumb-active-border: 1px solid rgb(255,255,255);
-
-// 08. Dropdown
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-dropdown-classes: $include-html-classes;
-
-// We use these to controls height and width styles.
-// $f-dropdown-max-width: 200px;
-// $f-dropdown-height: auto;
-// $f-dropdown-max-height: none;
-
-// Used for bottom position
-// $f-dropdown-margin-top: 2px;
-
-// Used for right position
-// $f-dropdown-margin-left: $f-dropdown-margin-top;
-
-// Used for left position
-// $f-dropdown-margin-right: $f-dropdown-margin-top;
-
-// Used for top position
-// $f-dropdown-margin-bottom: $f-dropdown-margin-top;
-
-// We use this to control the background color
-// $f-dropdown-bg: $white;
-
-// We use this to set the border styles for dropdowns.
-// $f-dropdown-border-style: solid;
-// $f-dropdown-border-width: 1px;
-// $f-dropdown-border-color: scale-color($white, $lightness: -20%);
-
-// We use these to style the triangle pip.
-// $f-dropdown-triangle-size: 6px;
-// $f-dropdown-triangle-color: $white;
-// $f-dropdown-triangle-side-offset: 10px;
-
-// We use these to control styles for the list elements.
-// $f-dropdown-list-style: none;
-// $f-dropdown-font-color: $charcoal;
-// $f-dropdown-font-size: rem-calc(14);
-// $f-dropdown-list-padding: rem-calc(5, 10);
-// $f-dropdown-line-height: rem-calc(18);
-// $f-dropdown-list-hover-bg: $smoke;
-// $dropdown-mobile-default-float: 0;
-
-// We use this to control the styles for when the dropdown has custom content.
-// $f-dropdown-content-padding: rem-calc(20);
-
-// Default radius for dropdown.
-// $f-dropdown-radius: $global-radius;
-
-
-// 09. Dropdown Buttons
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-button-classes: $include-html-classes;
-
-// We use these to set the color of the pip in dropdown buttons
-// $dropdown-button-pip-color: $white;
-// $dropdown-button-pip-color-alt: $oil;
-
-// $button-pip-tny: rem-calc(6);
-// $button-pip-sml: rem-calc(7);
-// $button-pip-med: rem-calc(9);
-// $button-pip-lrg: rem-calc(11);
-
-// We use these to style tiny dropdown buttons
-// $dropdown-button-padding-tny: $button-pip-tny * 7;
-// $dropdown-button-pip-size-tny: $button-pip-tny;
-// $dropdown-button-pip-opposite-tny: $button-pip-tny * 3;
-// $dropdown-button-pip-top-tny: (-$button-pip-tny / 2) + rem-calc(1);
-
-// We use these to style small dropdown buttons
-// $dropdown-button-padding-sml: $button-pip-sml * 7;
-// $dropdown-button-pip-size-sml: $button-pip-sml;
-// $dropdown-button-pip-opposite-sml: $button-pip-sml * 3;
-// $dropdown-button-pip-top-sml: (-$button-pip-sml / 2) + rem-calc(1);
-
-// We use these to style medium dropdown buttons
-// $dropdown-button-padding-med: $button-pip-med * 6 + rem-calc(3);
-// $dropdown-button-pip-size-med: $button-pip-med - rem-calc(3);
-// $dropdown-button-pip-opposite-med: $button-pip-med * 2.5;
-// $dropdown-button-pip-top-med: (-$button-pip-med / 2) + rem-calc(2);
-
-// We use these to style large dropdown buttons
-// $dropdown-button-padding-lrg: $button-pip-lrg * 5 + rem-calc(3);
-// $dropdown-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
-// $dropdown-button-pip-opposite-lrg: $button-pip-lrg * 2.5;
-// $dropdown-button-pip-top-lrg: (-$button-pip-lrg / 2) + rem-calc(3);
-
-// 10. Flex Video
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-media-classes: $include-html-classes;
-
-// We use these to control video container padding and margins
-// $flex-video-padding-top: rem-calc(25);
-// $flex-video-padding-bottom: 67.5%;
-// $flex-video-margin-bottom: rem-calc(16);
-
-// We use this to control widescreen bottom padding
-// $flex-video-widescreen-padding-bottom: 56.34%;
-
-// 11. Forms
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-form-classes: $include-html-classes;
-
-// We use this to set the base for lots of form spacing and positioning styles
-// $form-spacing: rem-calc(16);
-
-// We use these to style the labels in different ways
-// $form-label-pointer: pointer;
-// $form-label-font-size: rem-calc(14);
-// $form-label-font-weight: $font-weight-normal;
-// $form-label-line-height: 1.5;
-// $form-label-font-color: scale-color($black, $lightness: 30%);
-// $form-label-small-transform: capitalize;
-// $form-label-bottom-margin: 0;
-// $input-font-family: inherit;
-// $input-font-color: rgba(0,0,0,0.75);
-// $input-font-size: rem-calc(14);
-// $input-bg-color: $white;
-// $input-focus-bg-color: scale-color($white, $lightness: -2%);
-// $input-border-color: scale-color($white, $lightness: -20%);
-// $input-focus-border-color: scale-color($white, $lightness: -40%);
-// $input-border-style: solid;
-// $input-border-width: 1px;
-// $input-border-radius: $global-radius;
-// $input-disabled-bg: $gainsboro;
-// $input-disabled-cursor: $cursor-default-value;
-// $input-box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
-
-// We use these to style the fieldset border and spacing.
-// $fieldset-border-style: solid;
-// $fieldset-border-width: 1px;
-// $fieldset-border-color: $gainsboro;
-// $fieldset-padding: rem-calc(20);
-// $fieldset-margin: rem-calc(18 0);
-
-// We use these to style the legends when you use them
-// $legend-bg: $white;
-// $legend-font-weight: $font-weight-bold;
-// $legend-padding: rem-calc(0 3);
-
-// We use these to style the prefix and postfix input elements
-// $input-prefix-bg: scale-color($white, $lightness: -5%);
-// $input-prefix-border-color: scale-color($white, $lightness: -20%);
-// $input-prefix-border-size: 1px;
-// $input-prefix-border-type: solid;
-// $input-prefix-overflow: hidden;
-// $input-prefix-font-color: $oil;
-// $input-prefix-font-color-alt: $white;
-
-// We use this setting to turn on/off HTML5 number spinners (the up/down arrows)
-// $input-number-spinners: true;
-
-// We use these to style the error states for inputs and labels
-// $input-error-message-padding: rem-calc(6 9 9);
-// $input-error-message-top: -1px;
-// $input-error-message-font-size: rem-calc(12);
-// $input-error-message-font-weight: $font-weight-normal;
-// $input-error-message-font-style: italic;
-// $input-error-message-font-color: $white;
-// $input-error-message-bg-color: $alert-color;
-// $input-error-message-font-color-alt: $oil;
-
-// We use this to style the glowing effect of inputs when focused
-// $input-include-glowing-effect: true;
-// $glowing-effect-fade-time: 0.45s;
-// $glowing-effect-color: $input-focus-border-color;
-
-// Select variables
-// $select-bg-color: $ghost;
-// $select-hover-bg-color: scale-color($select-bg-color, $lightness: -3%);
-
-// 12. Icon Bar
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// We use these to style the icon-bar and items
-// $include-html-icon-bar-classes: $include-html-classes;
-// $icon-bar-bg: $oil;
-// $icon-bar-font-color: $white;
-// $icon-bar-font-color-hover: $icon-bar-font-color;
-// $icon-bar-font-size: 1rem;
-// $icon-bar-hover-color: $primary-color;
-// $icon-bar-icon-color: $white;
-// $icon-bar-icon-color-hover: $icon-bar-icon-color;
-// $icon-bar-icon-size: 1.875rem;
-// $icon-bar-image-width: 1.875rem;
-// $icon-bar-image-height: 1.875rem;
-// $icon-bar-active-color: $primary-color;
-// $icon-bar-item-padding: 1.25rem;
-
-// 13. Inline Lists
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-inline-list-classes: $include-html-classes;
-
-// We use this to control the margins and padding of the inline list.
-// $inline-list-top-margin: 0;
-// $inline-list-opposite-margin: 0;
-// $inline-list-bottom-margin: rem-calc(17);
-// $inline-list-default-float-margin: rem-calc(-22);
-// $inline-list-default-float-list-margin: rem-calc(22);
-
-// $inline-list-padding: 0;
-
-// We use this to control the overflow of the inline list.
-// $inline-list-overflow: hidden;
-
-// We use this to control the list items
-// $inline-list-display: block;
-
-// We use this to control any elements within list items
-// $inline-list-children-display: block;
-
-// 14. Joyride
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-joyride-classes: $include-html-classes;
-
-// Controlling default Joyride styles
-// $joyride-tip-bg: $oil;
-// $joyride-tip-default-width: 300px;
-// $joyride-tip-padding: rem-calc(18 20 24);
-// $joyride-tip-border: solid 1px $charcoal;
-// $joyride-tip-radius: 4px;
-// $joyride-tip-position-offset: 22px;
-
-// Here, we're setting the tip font styles
-// $joyride-tip-font-color: $white;
-// $joyride-tip-font-size: rem-calc(14);
-// $joyride-tip-header-weight: $font-weight-bold;
-
-// This changes the nub size
-// $joyride-tip-nub-size: 10px;
-
-// This adjusts the styles for the timer when its enabled
-// $joyride-tip-timer-width: 50px;
-// $joyride-tip-timer-height: 3px;
-// $joyride-tip-timer-color: $steel;
-
-// This changes up the styles for the close button
-// $joyride-tip-close-color: $monsoon;
-// $joyride-tip-close-size: 24px;
-// $joyride-tip-close-weight: $font-weight-normal;
-
-// When Joyride is filling the screen, we use this style for the bg
-// $joyride-screenfill: rgba(0,0,0,0.5);
-
-// 15. Keystrokes
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-keystroke-classes: $include-html-classes;
-
-// We use these to control text styles.
-// $keystroke-font: "Consolas", "Menlo", "Courier", monospace;
-// $keystroke-font-size: inherit;
-// $keystroke-font-color: $jet;
-// $keystroke-font-color-alt: $white;
-// $keystroke-function-factor: -7%;
-
-// We use this to control keystroke padding.
-// $keystroke-padding: rem-calc(2 4 0);
-
-// We use these to control background and border styles.
-// $keystroke-bg: scale-color($white, $lightness: $keystroke-function-factor);
-// $keystroke-border-style: solid;
-// $keystroke-border-width: 1px;
-// $keystroke-border-color: scale-color($keystroke-bg, $lightness: $keystroke-function-factor);
-// $keystroke-radius: $global-radius;
-
-// 16. Labels
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-label-classes: $include-html-classes;
-
-// We use these to style the labels
-// $label-padding: rem-calc(4 8 4);
-// $label-radius: $global-radius;
-
-// We use these to style the label text
-// $label-font-sizing: rem-calc(11);
-// $label-font-weight: $font-weight-normal;
-// $label-font-color: $oil;
-// $label-font-color-alt: $white;
-// $label-font-family: $body-font-family;
-
-// 17. Magellan
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-magellan-classes: $include-html-classes;
-
-// $magellan-bg: $white;
-// $magellan-padding: 0 !important;
-
-// 18. Off-canvas
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-off-canvas-classes: $include-html-classes;
-
-// $tabbar-bg: $oil;
-// $tabbar-height: rem-calc(45);
-// $tabbar-icon-width: $tabbar-height;
-// $tabbar-line-height: $tabbar-height;
-// $tabbar-color: $white;
-// $tabbar-middle-padding: 0 rem-calc(10);
-
-// Off Canvas Divider Styles
-// $tabbar-right-section-border: solid 1px scale-color($tabbar-bg, $lightness: 13%);
-// $tabbar-left-section-border: solid 1px scale-color($tabbar-bg, $lightness: -50%);
-
-// Off Canvas Tab Bar Headers
-// $tabbar-header-color: $white;
-// $tabbar-header-weight: $font-weight-bold;
-// $tabbar-header-line-height: $tabbar-height;
-// $tabbar-header-margin: 0;
-
-// Off Canvas Menu Variables
-// $off-canvas-width: rem-calc(250);
-// $off-canvas-bg: $oil;
-// $off-canvas-bg-hover: scale-color($tabbar-bg, $lightness: -30%);
-
-// Off Canvas Menu List Variables
-// $off-canvas-label-padding: 0.3rem rem-calc(15);
-// $off-canvas-label-color: $aluminum;
-// $off-canvas-label-text-transform: uppercase;
-// $off-canvas-label-font-size: rem-calc(12);
-// $off-canvas-label-font-weight: $font-weight-bold;
-// $off-canvas-label-bg: $tuatara;
-// $off-canvas-label-border-top: 1px solid scale-color($tuatara, $lightness: 14%);
-// $off-canvas-label-border-bottom: none;
-// $off-canvas-label-margin:0;
-// $off-canvas-link-padding: rem-calc(10, 15);
-// $off-canvas-link-color: rgba($white, 0.7);
-// $off-canvas-link-border-bottom: 1px solid scale-color($off-canvas-bg, $lightness: -25%);
-// $off-canvas-back-bg: $tuatara;
-// $off-canvas-back-border-top: $off-canvas-label-border-top;
-// $off-canvas-back-border-bottom: $off-canvas-label-border-bottom;
-// $off-canvas-back-hover-bg: scale-color($off-canvas-back-bg, $lightness: -30%);
-// $off-canvas-back-hover-border-top: 1px solid scale-color($off-canvas-label-bg, $lightness: 14%);
-// $off-canvas-back-hover-border-bottom: none;
-
-// Off Canvas Menu Icon Variables
-// $tabbar-menu-icon-color: $white;
-// $tabbar-menu-icon-hover: scale-color($tabbar-menu-icon-color, $lightness: -30%);
-
-// $tabbar-menu-icon-text-indent: rem-calc(35);
-// $tabbar-menu-icon-width: $tabbar-height;
-// $tabbar-menu-icon-height: $tabbar-height;
-// $tabbar-menu-icon-padding: 0;
-
-// $tabbar-hamburger-icon-width: rem-calc(16);
-// $tabbar-hamburger-icon-left: false;
-// $tabbar-hamburger-icon-top: false;
-// $tabbar-hamburger-icon-thickness: 1px;
-// $tabbar-hamburger-icon-gap: 6px;
-
-// Off Canvas Back-Link Overlay
-// $off-canvas-overlay-transition: background 300ms ease;
-// $off-canvas-overlay-cursor: pointer;
-// $off-canvas-overlay-box-shadow: -4px 0 4px rgba($black, 0.5), 4px 0 4px rgba($black, 0.5);
-// $off-canvas-overlay-background: rgba($white, 0.2);
-// $off-canvas-overlay-background-hover: rgba($white, 0.05);
-
-// Transition Variables
-// $menu-slide: "transform 500ms ease";
-
-// 19. Orbit
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-orbit-classes: $include-html-classes;
-
-// We use these to control the caption styles
-// $orbit-container-bg: none;
-// $orbit-caption-bg: rgba(51,51,51, 0.8);
-// $orbit-caption-font-color: $white;
-// $orbit-caption-font-size: rem-calc(14);
-// $orbit-caption-position: "bottom"; // Supported values: "bottom", "under"
-// $orbit-caption-padding: rem-calc(10 14);
-// $orbit-caption-height: auto;
-
-// We use these to control the left/right nav styles
-// $orbit-nav-bg: transparent;
-// $orbit-nav-bg-hover: rgba(0,0,0,0.3);
-// $orbit-nav-arrow-color: $white;
-// $orbit-nav-arrow-color-hover: $white;
-
-// We use these to control the timer styles
-// $orbit-timer-bg: rgba(255,255,255,0.3);
-// $orbit-timer-show-progress-bar: true;
-
-// We use these to control the bullet nav styles
-// $orbit-bullet-nav-color: $iron;
-// $orbit-bullet-nav-color-active: $aluminum;
-// $orbit-bullet-radius: rem-calc(9);
-
-// We use these to controls the style of slide numbers
-// $orbit-slide-number-bg: rgba(0,0,0,0);
-// $orbit-slide-number-font-color: $white;
-// $orbit-slide-number-padding: rem-calc(5);
-
-// Hide controls on small
-// $orbit-nav-hide-for-small: true;
-// $orbit-bullet-hide-for-small: true;
-// $orbit-timer-hide-for-small: true;
-
-// Graceful Loading Wrapper and preloader
-// $wrapper-class: "slideshow-wrapper";
-// $preloader-class: "preloader";
-
-// 20. Pagination
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-pagination-classes: $include-html-classes;
-
-// We use these to control the pagination container
-// $pagination-height: rem-calc(24);
-// $pagination-margin: rem-calc(-5);
-
-// We use these to set the list-item properties
-// $pagination-li-float: $default-float;
-// $pagination-li-height: rem-calc(24);
-// $pagination-li-font-color: $jet;
-// $pagination-li-font-size: rem-calc(14);
-// $pagination-li-margin: rem-calc(5);
-
-// We use these for the pagination anchor links
-// $pagination-link-pad: rem-calc(1 10 1);
-// $pagination-link-font-color: $aluminum;
-// $pagination-link-active-bg: scale-color($white, $lightness: -10%);
-
-// We use these for disabled anchor links
-// $pagination-link-unavailable-cursor: default;
-// $pagination-link-unavailable-font-color: $aluminum;
-// $pagination-link-unavailable-bg-active: transparent;
-
-// We use these for currently selected anchor links
-// $pagination-link-current-background: $primary-color;
-// $pagination-link-current-font-color: $white;
-// $pagination-link-current-font-weight: $font-weight-bold;
-// $pagination-link-current-cursor: default;
-// $pagination-link-current-active-bg: $primary-color;
-
-// 21. Panels
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-panel-classes: $include-html-classes;
-
-// We use these to control the background and border styles
-// $panel-bg: scale-color($white, $lightness: -5%);
-// $panel-border-style: solid;
-// $panel-border-size: 1px;
-
-// We use this % to control how much we darken things on hover
-// $panel-function-factor: -11%;
-// $panel-border-color: scale-color($panel-bg, $lightness: $panel-function-factor);
-
-// We use these to set default inner padding and bottom margin
-// $panel-margin-bottom: rem-calc(20);
-// $panel-padding: rem-calc(20);
-
-// We use these to set default font colors
-// $panel-font-color: $oil;
-// $panel-font-color-alt: $white;
-
-// $panel-header-adjust: true;
-// $callout-panel-link-color: $primary-color;
-
-// 22. Pricing Tables
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-pricing-classes: $include-html-classes;
-
-// We use this to control the border color
-// $price-table-border: solid 1px $gainsboro;
-
-// We use this to control the bottom margin of the pricing table
-// $price-table-margin-bottom: rem-calc(20);
-
-// We use these to control the title styles
-// $price-title-bg: $oil;
-// $price-title-padding: rem-calc(15 20);
-// $price-title-align: center;
-// $price-title-color: $smoke;
-// $price-title-weight: $font-weight-normal;
-// $price-title-size: rem-calc(16);
-// $price-title-font-family: $body-font-family;
-
-// We use these to control the price styles
-// $price-money-bg: $vapor;
-// $price-money-padding: rem-calc(15 20);
-// $price-money-align: center;
-// $price-money-color: $oil;
-// $price-money-weight: $font-weight-normal;
-// $price-money-size: rem-calc(32);
-// $price-money-font-family: $body-font-family;
-
-// We use these to control the description styles
-// $price-bg: $white;
-// $price-desc-color: $monsoon;
-// $price-desc-padding: rem-calc(15);
-// $price-desc-align: center;
-// $price-desc-font-size: rem-calc(12);
-// $price-desc-weight: $font-weight-normal;
-// $price-desc-line-height: 1.4;
-// $price-desc-bottom-border: dotted 1px $gainsboro;
-
-// We use these to control the list item styles
-// $price-item-color: $oil;
-// $price-item-padding: rem-calc(15);
-// $price-item-align: center;
-// $price-item-font-size: rem-calc(14);
-// $price-item-weight: $font-weight-normal;
-// $price-item-bottom-border: dotted 1px $gainsboro;
-
-// We use these to control the CTA area styles
-// $price-cta-bg: $white;
-// $price-cta-align: center;
-// $price-cta-padding: rem-calc(20 20 0);
-
-// 23. Progress Bar
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-media-classes: $include-html-classes;
-
-// We use this to set the progress bar height
-// $progress-bar-height: rem-calc(25);
-// $progress-bar-color: $vapor ;
-
-// We use these to control the border styles
-// $progress-bar-border-color: scale-color($white, $lightness: 20%);
-// $progress-bar-border-size: 1px;
-// $progress-bar-border-style: solid;
-// $progress-bar-border-radius: $global-radius;
-
-// We use these to control the margin & padding
-// $progress-bar-pad: rem-calc(2);
-// $progress-bar-margin-bottom: rem-calc(10);
-
-// We use these to set the meter colors
-// $progress-meter-color: $primary-color;
-// $progress-meter-secondary-color: $secondary-color;
-// $progress-meter-success-color: $success-color;
-// $progress-meter-alert-color: $alert-color;
-
-// 24. Range Slider
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-range-slider-classes: $include-html-classes;
-
-// These variables define the slider bar styles
-// $range-slider-bar-width: 100%;
-// $range-slider-bar-height: rem-calc(16);
-
-// $range-slider-bar-border-width: 1px;
-// $range-slider-bar-border-style: solid;
-// $range-slider-bar-border-color: $gainsboro;
-// $range-slider-radius: $global-radius;
-// $range-slider-round: $global-rounded;
-// $range-slider-bar-bg-color: $ghost;
-
-// Vertical bar styles
-// $range-slider-vertical-bar-width: rem-calc(16);
-// $range-slider-vertical-bar-height: rem-calc(200);
-
-// These variables define the slider handle styles
-// $range-slider-handle-width: rem-calc(32);
-// $range-slider-handle-height: rem-calc(22);
-// $range-slider-handle-position-top: rem-calc(-5);
-// $range-slider-handle-bg-color: $primary-color;
-// $range-slider-handle-border-width: 1px;
-// $range-slider-handle-border-style: solid;
-// $range-slider-handle-border-color: none;
-// $range-slider-handle-radius: $global-radius;
-// $range-slider-handle-round: $global-rounded;
-// $range-slider-handle-bg-hover-color: scale-color($primary-color, $lightness: -12%);
-// $range-slider-handle-cursor: pointer;
-
-// 25. Reveal
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-reveal-classes: $include-html-classes;
-
-// We use these to control the style of the reveal overlay.
-// $reveal-overlay-bg: rgba($black, .45);
-// $reveal-overlay-bg-old: $black;
-
-// We use these to control the style of the modal itself.
-// $reveal-modal-bg: $white;
-// $reveal-position-top: rem-calc(100);
-// $reveal-default-width: 80%;
-// $reveal-max-width: $row-width;
-// $reveal-modal-padding: rem-calc(20);
-// $reveal-box-shadow: 0 0 10px rgba($black,.4);
-
-// We use these to style the reveal close button
-// $reveal-close-font-size: rem-calc(40);
-// $reveal-close-top: rem-calc(8);
-// $reveal-close-side: rem-calc(11);
-// $reveal-close-color: $base;
-// $reveal-close-weight: $font-weight-bold;
-
-// We use this to set the default radius used throughout the core.
-// $reveal-radius: $global-radius;
-// $reveal-round: $global-rounded;
-
-// We use these to control the modal border
-// $reveal-border-style: solid;
-// $reveal-border-width: 1px;
-// $reveal-border-color: $steel;
-
-// $reveal-modal-class: "reveal-modal";
-// $close-reveal-modal-class: "close-reveal-modal";
-
-// 26. Side Nav
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-nav-classes: $include-html-classes;
-
-// We use this to control padding.
-// $side-nav-padding: rem-calc(14 0);
-
-// We use these to control list styles.
-// $side-nav-list-type: none;
-// $side-nav-list-position: inside;
-// $side-nav-list-margin: rem-calc(0 0 7 0);
-
-// We use these to control link styles.
-// $side-nav-link-color: $primary-color;
-// $side-nav-link-color-active: scale-color($side-nav-link-color, $lightness: 30%);
-// $side-nav-link-color-hover: scale-color($side-nav-link-color, $lightness: 30%);
-// $side-nav-link-bg-hover: hsla(0, 0, 0, 0.025);
-// $side-nav-link-margin: 0;
-// $side-nav-link-padding: rem-calc(7 14);
-// $side-nav-font-size: rem-calc(14);
-// $side-nav-font-weight: $font-weight-normal;
-// $side-nav-font-weight-active: $side-nav-font-weight;
-// $side-nav-font-family: $body-font-family;
-// $side-nav-font-family-active: $side-nav-font-family;
-
-// We use these to control heading styles.
-// $side-nav-heading-color: $side-nav-link-color;
-// $side-nav-heading-font-size: $side-nav-font-size;
-// $side-nav-heading-font-weight: bold;
-// $side-nav-heading-text-transform: uppercase;
-
-// We use these to control border styles
-// $side-nav-divider-size: 1px;
-// $side-nav-divider-style: solid;
-// $side-nav-divider-color: scale-color($white, $lightness: 10%);
-
-// 27. Split Buttons
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-button-classes: $include-html-classes;
-
-// We use these to control different shared styles for Split Buttons
-// $split-button-function-factor: 10%;
-// $split-button-pip-color: $white;
-// $split-button-pip-color-alt: $oil;
-// $split-button-active-bg-tint: rgba(0,0,0,0.1);
-
-// We use these to control tiny split buttons
-// $split-button-padding-tny: $button-pip-tny * 10;
-// $split-button-span-width-tny: $button-pip-tny * 6;
-// $split-button-pip-size-tny: $button-pip-tny;
-// $split-button-pip-top-tny: $button-pip-tny * 2;
-// $split-button-pip-default-float-tny: rem-calc(-6);
-
-// We use these to control small split buttons
-// $split-button-padding-sml: $button-pip-sml * 10;
-// $split-button-span-width-sml: $button-pip-sml * 6;
-// $split-button-pip-size-sml: $button-pip-sml;
-// $split-button-pip-top-sml: $button-pip-sml * 1.5;
-// $split-button-pip-default-float-sml: rem-calc(-6);
-
-// We use these to control medium split buttons
-// $split-button-padding-med: $button-pip-med * 9;
-// $split-button-span-width-med: $button-pip-med * 5.5;
-// $split-button-pip-size-med: $button-pip-med - rem-calc(3);
-// $split-button-pip-top-med: $button-pip-med * 1.5;
-// $split-button-pip-default-float-med: rem-calc(-6);
-
-// We use these to control large split buttons
-// $split-button-padding-lrg: $button-pip-lrg * 8;
-// $split-button-span-width-lrg: $button-pip-lrg * 5;
-// $split-button-pip-size-lrg: $button-pip-lrg - rem-calc(6);
-// $split-button-pip-top-lrg: $button-pip-lrg + rem-calc(5);
-// $split-button-pip-default-float-lrg: rem-calc(-6);
-
-// 28. Sub Nav
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-nav-classes: $include-html-classes;
-
-// We use these to control margin and padding
-// $sub-nav-list-margin: rem-calc(-4 0 18);
-// $sub-nav-list-padding-top: rem-calc(4);
-
-// We use this to control the definition
-// $sub-nav-font-family: $body-font-family;
-// $sub-nav-font-size: rem-calc(14);
-// $sub-nav-font-color: $aluminum;
-// $sub-nav-font-weight: $font-weight-normal;
-// $sub-nav-text-decoration: none;
-// $sub-nav-padding: rem-calc(3 16);
-// $sub-nav-border-radius: 3px;
-// $sub-nav-font-color-hover: scale-color($sub-nav-font-color, $lightness: -25%);
-
-// We use these to control the active item styles
-// $sub-nav-active-font-weight: $font-weight-normal;
-// $sub-nav-active-bg: $primary-color;
-// $sub-nav-active-bg-hover: scale-color($sub-nav-active-bg, $lightness: -14%);
-// $sub-nav-active-color: $white;
-// $sub-nav-active-padding: $sub-nav-padding;
-// $sub-nav-active-cursor: default;
-
-// $sub-nav-item-divider: "";
-// $sub-nav-item-divider-margin: rem-calc(12);
-
-// 29. Switch
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-form-classes: $include-html-classes;
-
-// Controlling border styles and background colors for the switch container
-// $switch-border-color: scale-color($white, $lightness: -20%);
-// $switch-border-style: solid;
-// $switch-border-width: 1px;
-// $switch-bg: $white;
-
-// We use these to control the switch heights for our default classes
-// $switch-height-tny: rem-calc(22);
-// $switch-height-sml: rem-calc(28);
-// $switch-height-med: rem-calc(36);
-// $switch-height-lrg: rem-calc(44);
-// $switch-bottom-margin: rem-calc(20);
-
-// We use these to control default font sizes for our classes.
-// $switch-font-size-tny: 11px;
-// $switch-font-size-sml: 12px;
-// $switch-font-size-med: 14px;
-// $switch-font-size-lrg: 17px;
-// $switch-label-side-padding: 6px;
-
-// We use these to style the switch-paddle
-// $switch-paddle-bg: $white;
-// $switch-paddle-fade-to-color: scale-color($switch-paddle-bg, $lightness: -10%);
-// $switch-paddle-border-color: scale-color($switch-paddle-bg, $lightness: -35%);
-// $switch-paddle-border-width: 1px;
-// $switch-paddle-border-style: solid;
-// $switch-paddle-transition-speed: .1s;
-// $switch-paddle-transition-ease: ease-out;
-// $switch-positive-color: scale-color($success-color, $lightness: 94%);
-// $switch-negative-color: $white-smoke;
-
-// Outline Style for tabbing through switches
-// $switch-label-outline: 1px dotted $jumbo;
-
-// 30. Tables
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-table-classes: $include-html-classes;
-
-// These control the background color for the table and even rows
-// $table-bg: $white;
-// $table-even-row-bg: $snow;
-
-// These control the table cell border style
-// $table-border-style: solid;
-// $table-border-size: 1px;
-// $table-border-color: $gainsboro;
-
-// These control the table head styles
-// $table-head-bg: $white-smoke ;
-// $table-head-font-size: rem-calc(14);
-// $table-head-font-color: $jet;
-// $table-head-font-weight: $font-weight-bold;
-// $table-head-padding: rem-calc(8 10 10);
-
-// These control the row padding and font styles
-// $table-row-padding: rem-calc(9 10);
-// $table-row-font-size: rem-calc(14);
-// $table-row-font-color: $jet;
-// $table-line-height: rem-calc(18);
-
-// These are for controlling the layout, display and margin of tables
-// $table-layout: auto;
-// $table-display: table-cell;
-// $table-margin-bottom: rem-calc(20);
-
-// 31. Tabs
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-tabs-classes: $include-html-classes;
-
-// $tabs-navigation-padding: rem-calc(16);
-// $tabs-navigation-bg-color: $silver ;
-// $tabs-navigation-active-bg-color: $white;
-// $tabs-navigation-hover-bg-color: scale-color($tabs-navigation-bg-color, $lightness: -6%);
-// $tabs-navigation-font-color: $jet;
-// $tabs-navigation-active-font-color: $tabs-navigation-font-color;
-// $tabs-navigation-font-size: rem-calc(16);
-// $tabs-navigation-font-family: $body-font-family;
-
-// $tabs-content-margin-bottom: rem-calc(24);
-// $tabs-content-padding: ($column-gutter/2);
-
-// $tabs-vertical-navigation-margin-bottom: 1.25rem;
-
-// 32. Thumbnails
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-media-classes: $include-html-classes;
-
-// We use these to control border styles
-// $thumb-border-style: solid;
-// $thumb-border-width: 4px;
-// $thumb-border-color: $white;
-// $thumb-box-shadow: 0 0 0 1px rgba($black,.2);
-// $thumb-box-shadow-hover: 0 0 6px 1px rgba($primary-color,0.5);
-
-// Radius and transition speed for thumbs
-// $thumb-radius: $global-radius;
-// $thumb-transition-speed: 200ms;
-
-// 33. Tooltips
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-tooltip-classes: $include-html-classes;
-
-// $has-tip-border-bottom: dotted 1px $iron;
-// $has-tip-font-weight: $font-weight-bold;
-// $has-tip-font-color: $oil;
-// $has-tip-border-bottom-hover: dotted 1px scale-color($primary-color, $lightness: -55%);
-// $has-tip-font-color-hover: $primary-color;
-// $has-tip-cursor-type: help;
-
-// $tooltip-padding: rem-calc(12);
-// $tooltip-bg: $oil;
-// $tooltip-font-size: rem-calc(14);
-// $tooltip-font-weight: $font-weight-normal;
-// $tooltip-font-color: $white;
-// $tooltip-line-height: 1.3;
-// $tooltip-close-font-size: rem-calc(10);
-// $tooltip-close-font-weight: $font-weight-normal;
-// $tooltip-close-font-color: $monsoon;
-// $tooltip-font-size-sml: rem-calc(14);
-// $tooltip-radius: $global-radius;
-// $tooltip-rounded: $global-rounded;
-// $tooltip-pip-size: 5px;
-// $tooltip-max-width: 300px;
-
-// 34. Top Bar
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-top-bar-classes: $include-html-classes;
-
-// Background color for the top bar
-// $topbar-bg-color: $oil;
-// $topbar-bg: $topbar-bg-color;
-
-// Height and margin
-// $topbar-height: rem-calc(45);
-// $topbar-margin-bottom: 0;
-
-// Controlling the styles for the title in the top bar
-// $topbar-title-weight: $font-weight-normal;
-// $topbar-title-font-size: rem-calc(17);
-
-// Style the top bar dropdown elements
-// $topbar-dropdown-bg: $oil;
-// $topbar-dropdown-link-color: $white;
-// $topbar-dropdown-link-bg: $oil;
-// $topbar-dropdown-link-bg-hover: $oil;
-// $topbar-dropdown-link-weight: $font-weight-normal;
-// $topbar-dropdown-toggle-size: 5px;
-// $topbar-dropdown-toggle-color: $white;
-// $topbar-dropdown-toggle-alpha: 0.4;
-
-// Set the link colors and styles for top-level nav
-// $topbar-link-color: $white;
-// $topbar-link-color-hover: $white;
-// $topbar-link-color-active: $white;
-// $topbar-link-color-active-hover: $white;
-// $topbar-link-weight: $font-weight-normal;
-// $topbar-link-font-size: rem-calc(13);
-// $topbar-link-hover-lightness: -10%; // Darken by 10%
-// $topbar-link-bg: $topbar-bg;
-// $topbar-link-bg-color-hover: $charcoal;
-// $topbar-link-bg-hover: $oil;
-// $topbar-link-bg-active: $primary-color;
-// $topbar-link-bg-active-hover: scale-color($primary-color, $lightness: -14%);
-// $topbar-link-font-family: $body-font-family;
-// $topbar-link-text-transform: none;
-// $topbar-link-padding: ($topbar-height / 3);
-// $topbar-back-link-size: $h5-font-size;
-// $topbar-link-dropdown-padding: 20px;
-
-// $topbar-button-font-size: 0.75rem;
-// $topbar-button-top: 7px;
-
-// $topbar-dropdown-label-color: $monsoon;
-// $topbar-dropdown-label-text-transform: uppercase;
-// $topbar-dropdown-label-font-weight: $font-weight-bold;
-// $topbar-dropdown-label-font-size: rem-calc(10);
-// $topbar-dropdown-label-bg: $oil;
-
-// Top menu icon styles
-// $topbar-menu-link-transform: uppercase;
-// $topbar-menu-link-font-size: rem-calc(13);
-// $topbar-menu-link-weight: $font-weight-bold;
-// $topbar-menu-link-color: $white;
-// $topbar-menu-icon-color: $white;
-// $topbar-menu-link-color-toggled: $jumbo;
-// $topbar-menu-icon-color-toggled: $jumbo;
-
-// Transitions and breakpoint styles
-// $topbar-transition-speed: 300ms;
-// Using rem-calc for the below breakpoint causes issues with top bar
-// $topbar-breakpoint: #{lower-bound($medium-range)}; // Change to 9999px for always mobile layout
-// $topbar-media-query: $medium-up;
-
-// Divider Styles
-// $topbar-divider-border-bottom: solid 1px scale-color($topbar-bg-color, $lightness: 13%);
-// $topbar-divider-border-top: solid 1px scale-color($topbar-bg-color, $lightness: -50%);
-
-// Sticky Class
-// $topbar-sticky-class: ".sticky";
-// $topbar-arrows: true; //Set false to remove the triangle icon from the menu item
-
-// 36. Visibility Classes
-// - - - - - - - - - - - - - - - - - - - - - - - - -
-
-// $include-html-visibility-classes: $include-html-classes;
-// $include-table-visibility-classes: true;
-// $include-legacy-visibility-classes: true;
-// $include-accessibility-classes: true;
diff --git a/static/scss/style.scss b/static/scss/style.scss
deleted file mode 100644
index 5a8a37e..0000000
--- a/static/scss/style.scss
+++ /dev/null
@@ -1,41 +0,0 @@
-@import "settings";
-@import "foundation";
-@import "doorman";
-
-// Or selectively include components
-// @import
-// "foundation/components/accordion",
-// "foundation/components/alert-boxes",
-// "foundation/components/block-grid",
-// "foundation/components/breadcrumbs",
-// "foundation/components/button-groups",
-// "foundation/components/buttons",
-// "foundation/components/clearing",
-// "foundation/components/dropdown",
-// "foundation/components/dropdown-buttons",
-// "foundation/components/flex-video",
-// "foundation/components/forms",
-// "foundation/components/grid",
-// "foundation/components/inline-lists",
-// "foundation/components/joyride",
-// "foundation/components/keystrokes",
-// "foundation/components/labels",
-// "foundation/components/magellan",
-// "foundation/components/orbit",
-// "foundation/components/pagination",
-// "foundation/components/panels",
-// "foundation/components/pricing-tables",
-// "foundation/components/progress-bars",
-// "foundation/components/reveal",
-// "foundation/components/side-nav",
-// "foundation/components/split-buttons",
-// "foundation/components/sub-nav",
-// "foundation/components/switch",
-// "foundation/components/tables",
-// "foundation/components/tabs",
-// "foundation/components/thumbs",
-// "foundation/components/tooltips",
-// "foundation/components/top-bar",
-// "foundation/components/type",
-// "foundation/components/offcanvas",
-// "foundation/components/visibility";