diff --git a/README.md b/README.md deleted file mode 100644 index 1d8d42b..0000000 --- a/README.md +++ /dev/null @@ -1,2 +0,0 @@ -ethoinfo-framework [![Build Status](https://travis-ci.org/ethoinformatics/ethoinfo-framework.png)](https://travis-ci.org/ethoinformatics/ethoinfo-framework) -============= diff --git a/build-app.sh b/build-app.sh deleted file mode 100755 index 25a1316..0000000 --- a/build-app.sh +++ /dev/null @@ -1,19 +0,0 @@ -#! /usr/bin/env bash - -failure(){ - echo 'build failure' && exit 1; -} - -DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" - -cd "$DIR" -npm install; -node bundler.js - - -cd "$DIR"/ionic -cordova platform rm android || failure -cordova platform add android || failure -cordova build android || failure - -echo 'great job.' diff --git a/package.json b/package.json deleted file mode 100644 index e3508b0..0000000 --- a/package.json +++ /dev/null @@ -1,67 +0,0 @@ -{ - "name": "ethoinfo-framework", - "version": "0.0.1", - "description": "", - "main": "src/registrar/index.js", - "browserify": { - "transform": [ - "vashify", - "node-lessify" - ] - }, - "scripts": { - "start": "./node_modules/.bin/nodemon -e js,vash,less ./bundler.js", - "deploy": "cp -r public/* ./dist/", - "test": "mocha --reporter spec $(find . -path ./node_modules -prune -o -name '*.spec.js' -print)" - }, - "author": "ethoformatics", - "license": "none", - "bugs": { - "url": "https://github.com/ethoinformatics/sample-ui-browserify/issues" - }, - "homepage": "https://github.com/ethoinformatics/sample-ui-browserify", - "dependencies": { - "browserify": "^6.3.4", - "d3-timeline": "1.0.1", - "date-math": "0.0.1", - "es6ify": "^1.6.0", - "hammerjs": "^2.0.4", - "iscroll": "^5.1.3", - "jocal": "0.0.1", - "jquery": "^2.1.1", - "leaflet": "^0.7.3", - "lodash": "^3.6.0", - "merle": "^0.1.5", - "moment": "^2.8.2", - "node-lessify": "0.0.5", - "pouchdb": "^3.0.6", - "pouchdb-upsert": "^1.1.1", - "q": "^1.0.1", - "rgba-generate": "^1.0.0", - "vashify": "^0.3.3", - "velocity-animate": "^1.2.1" - }, - "devDependencies": { - "chai": "^3.2.0", - "mocha": "^2.2.5", - "nodemon": "^1.2.1" - }, - "browser": { - "app": "./src/app.js", - "breadcrumb": "./src/controls/breadcrumb/index.js", - "popup-buttons": "./src/controls/popup-buttons/index.js", - "map": "./src/controls/map/index.js", - "modal": "./src/controls/modal/index.js", - "dom-ready": "./src/dom-ready.js", - "geolocation": "./src/services/geolocation.js", - "create-new-dialog": "./src/views/create-new-dialog/index.js", - "view-existing-dialog": "./src/views/view-existing-dialog/index.js", - "edit-existing-dialog": "./src/views/edit-existing-dialog/index.js", - "edit-existing-form": "./src/views/edit-existing-form/index.js", - "insert-at-caret": "./src/insert-at-caret.js", - "activity-filter": "./src/views/activity-filter/index.js", - "form-builder": "./src/services/form-builder/index.js", - "timeline": "./src/timeline.js", - "device-settings": "./src/device-settings.js" - } -} diff --git a/src/activity-location-watch.js b/src/activity-location-watch.js deleted file mode 100644 index 73c352b..0000000 --- a/src/activity-location-watch.js +++ /dev/null @@ -1,75 +0,0 @@ -var geolocation = require('geolocation'), - q = require('q'), - app = require('app')(), - _ = require('lodash'); - -function _getDeviceSettingsObject(){ - var settingsDomain = app.getDomain('_etho-settings'); - var entityManager = settingsDomain.getService('entity-manager'); - - return entityManager.getAll() - .then(function(entities){ - return {}; - var mySettings = _.find(entities, function(entity){ - return entity.deviceId == device.uuid; - }); - - if (!mySettings) return { deviceId: device.uuid }; - - return mySettings; - }); -} - -module.exports = function(){ - function onLocationUpdate(err, data){ - if (err){ - console.log('geolocation error'); - return console.error(err); - } - - _getDeviceSettingsObject() - .then(function(settings){ - var savePromises = _.chain(app.getDomains('geo-aware')) - .map(function(domain){ - debugger - - var locationService = domain.getService('geo-aware'); - var entityManager = domain.getService('entity-manager'); - - // todo: figure out how to query for this in a more sane way - var savePromises = entityManager.getAll() - .then(function(entities){ - return entities - .map(function(entity){ - var needSave = locationService(entity, data, settings); - if (!needSave) return false; - - return entityManager.save(entity); - }); - }); - - return savePromises; - }) - .filter(Boolean) - .flatten() - .value(); - - q.all(savePromises) - .then(function(results){ - console.log('location update success.'); - console.dir(results); - }) - .catch(function(err){ - console.log('location update fail.'); - console.error(err); - }); - }); - } - - function onLocationError(err){ - console.log('location retrieve fail.'); - console.error(err); - } - - geolocation.watch(onLocationUpdate, onLocationError); -}; diff --git a/src/app.js b/src/app.js deleted file mode 100644 index f7fb686..0000000 --- a/src/app.js +++ /dev/null @@ -1,9 +0,0 @@ -var myApp; - -module.exports = function(app){ - if (app === undefined) return myApp; - - myApp = app; - return myApp; -}; - diff --git a/src/controls/breadcrumb/crumb.vash b/src/controls/breadcrumb/crumb.vash deleted file mode 100644 index 8d62817..0000000 --- a/src/controls/breadcrumb/crumb.vash +++ /dev/null @@ -1,6 +0,0 @@ - - @model.label - - - - diff --git a/src/controls/breadcrumb/index.js b/src/controls/breadcrumb/index.js deleted file mode 100644 index f37f4ac..0000000 --- a/src/controls/breadcrumb/index.js +++ /dev/null @@ -1,72 +0,0 @@ -require('./index.less'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - -var template = require('./index.vash'), - crumbTemplate = require('./crumb.vash'), - _ = require('lodash'), - $ = require('jquery'), - velocity = require('velocity-animate'); - - -function Breadcrumb(opt){ - function toElement(crumb){ - crumb.label = crumb.label || 'missing label '; - var $el = $(crumbTemplate(crumb)); - - $el.on('click', function(){ - var clickedElement = this; - var remove = false, found = false; - - $cntr.find('.js-crumb-container') - .toArray() - .reverse() - .forEach(function(el){ - if (el == clickedElement) found = true; - var $el = $(el); - - if (found) { - velocity($el, 'stop'); - $el.css('opacity', '1') - .removeClass('js-faded'); - } else { - $el.addClass('js-faded'); - velocity($el, {opacity: 0.2}, { - duration: 450, - complete: function(){ - - }, - }); - } - - }); - - self.emit('selection', {context: crumb.context}); - }); - - return $el; - } - - var self = this; - - EventEmitter.call(this); - - self.$element = $(template({crumbs: opt.crumbs})); - var $cntr = self.$element.find('.js-crumbs'); - - self.add = function(crumb){ - var el = toElement(crumb); - $cntr.append(el); - - $cntr.find('.js-crumb-container.js-faded') - .remove(); - }; - self.$element.find('.js-breadcrumb-close') - .on('click', function(){self.emit('close');}); - - opt.crumbs.forEach(function(crumb){self.add(crumb);}); -} - -util.inherits(Breadcrumb, EventEmitter); -module.exports = Breadcrumb; diff --git a/src/controls/breadcrumb/index.less b/src/controls/breadcrumb/index.less deleted file mode 100644 index 3a606b4..0000000 --- a/src/controls/breadcrumb/index.less +++ /dev/null @@ -1,126 +0,0 @@ -@background-color: #444; -@color: white; - -.etho-breadcrumb{ - .breadcrumb { - width: 1000px; - overflow: hidden; - white-space: nowrap; - height: 39px; - display: inline-block; - box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35); - overflow: hidden; - border-radius: 5px; - font-style: bold; - .ion-home{ - font-size:20px; - } - .spacer{ - width: 0px; - height: 0px; - position: relative; - display: block; - float:left; - right: 19px; - - .space{ - float:left; - background: @background-color; - color: @color; - transition: all 0.5s; - position: absolute; - top: 0; - /*same dimension as the line-height of .breadcrumb a */ - width: 36px; - height: 36px; - /*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: - length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem) - if diagonal required = 1; length = 1/1.414 = 0.707*/ - transform: scale(0.707) rotate(45deg); - - z-index: 1; - background: @background-color; - - box-shadow: - 2px -2px 0 2px rgba(0, 0, 0, 0.4), - 3px -3px 0 2px rgba(255, 255, 255, 0.1); - /* - 5px - for rounded arrows and - 50px - to prevent hover glitches on the border created using shadows*/ - border-radius: 0 5px 0 50px; - } - } - span.home-crumb-container{ - a{ - position: fixed; - } - } - span.crumb-container{ - a{ - background: @background-color; - color: @color; - transition: all 0.5s; - text-decoration: none; - outline: none; - display: block; - float: left; - font-size: 12px; - line-height: 36px; - color: @color; - padding: 0 10px 0 30px; - background: @background-color; - position: relative; - } - - } - span.crumb-container:first-child { - a{ - padding-left: 16px; - border-radius: 5px 0 0 5px; /*to match with the parent's radius*/ - } - } - } - - - .breadcrumb a { - } - /*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/ - .breadcrumb a:first-child { - padding-left: 16px; - border-radius: 5px 0 0 5px; /*to match with the parent's radius*/ - } - .breadcrumb a:first-child:before { - left: 14px; - } - .breadcrumb a:last-child { - border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/ - padding-right: 20px; - } - - - /*we dont need an arrow after the last link*/ - .breadcrumb a:last-child:after { - content: none; - } - /*we will use the :before element to show numbers*/ - .breadcrumb a:before { - /*some styles now*/ - border-radius: 100%; - width: 20px; - height: 20px; - line-height: 20px; - margin: 8px 0; - position: absolute; - top: 0; - left: 30px; - background: #444; - background: linear-gradient(#444, #222); - font-weight: bold; - } - - - .flat a:before { - background: @background-color; - box-shadow: 0 0 0 1px green; - } -} diff --git a/src/controls/breadcrumb/index.vash b/src/controls/breadcrumb/index.vash deleted file mode 100644 index 284cb7f..0000000 --- a/src/controls/breadcrumb/index.vash +++ /dev/null @@ -1,10 +0,0 @@ -
- -
diff --git a/src/controls/global-add-button/index.js b/src/controls/global-add-button/index.js deleted file mode 100644 index 654adb3..0000000 --- a/src/controls/global-add-button/index.js +++ /dev/null @@ -1,69 +0,0 @@ - -var $ = require('jquery'), - _ = require('lodash'), - q = require('q'), - app = require('app')(), - CreateSelectMenu = require('../../views/create-select-dialog'), - ViewExistingDialog = require('../../views/view-existing-dialog'), - //FormDialog = require('form-dialog'), - //sampleData = require('sample-data'), - tmpl = require('./index.vash'); - -var EventEmitter = require('events').EventEmitter, - util = require('util'); - - - -function _getTopLevelDomains(){ - var domains = app.getDomains() - .filter(function(domain){ - return !domain.getService('code-domain') && !/^_/.test(domain.name); - }); - - return domains.filter(function(d){ - return !_.any(domains, function(otherDomain){ - return !!_.find(otherDomain.getChildren(), function(d2){ - return d2.name == d.name; - }); - }); - }); -} - -function GlobalAddButton(){ - EventEmitter.call(this); - var self = this; - - var createSelectMenu = new CreateSelectMenu({ - domains: _getTopLevelDomains(), - }); - - self.$element = $(tmpl({})); - - self.$element.on('click', function(ev){ - createSelectMenu.on('created', function(entity){ - var domain = app.getDomain(entity.domainName); - var entityManager = domain.getService('entity-manager'); - - self.emit('created', entity); - entityManager.save(entity) - .then(function(info){ - entity._id = info.id; - entity._rev = info.rev; - - var dialog = new ViewExistingDialog({ - entity: entity, - }); - - dialog.show(); - }) - .catch(function(err){ - console.error(err); - }); - }); - - createSelectMenu.show(ev); - }); -} - -util.inherits(GlobalAddButton, EventEmitter); -module.exports = GlobalAddButton; diff --git a/src/controls/global-add-button/index.vash b/src/controls/global-add-button/index.vash deleted file mode 100644 index 62b8efd..0000000 --- a/src/controls/global-add-button/index.vash +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/controls/map/index.js b/src/controls/map/index.js deleted file mode 100644 index 15f351b..0000000 --- a/src/controls/map/index.js +++ /dev/null @@ -1,97 +0,0 @@ -require('./index.less'); -require('./leaflet.usermarker.js'); - -var template = require('./index.vash'), - L = require('leaflet'), - geolocation = require('geolocation'), - $ = require('jquery'); - -L.Icon.Default.imagePath = 'images'; - -var GEOJSON_STYLE = { - //color: "#ff7800", - color: '#EECF20', - weight: 5, - opacity: 0.65, -}; - -function _ensureProperSize(map){ - setTimeout(function(){ - map.invalidateSize(); - }, 0); -} - -function _trackLocationOnMap(map){ - var currentLocationMarker; - - function locationUpdate(err, data){ - // var latLng = L.latLng(data.coords.latitude, data.coords.longitude); - // if (!currentLocationMarker){ - // currentLocationMarker = L.userMarker(latLng, {pulsing:true, accuracy:data.coords.accuracy || 1000, smallIcon:true}); - // currentLocationMarker.addTo(map); - // } - // currentLocationMarker.setLatLng(latLng); - } - - function locationError(err){ - console.error(err); - } - - - geolocation.watch(locationUpdate); -} - -function _getBounds(){ - var southWest = L.latLng(-16.5467, 23.8898), - northEast = L.latLng(-12.5653, 29.4708), - bounds = L.latLngBounds(southWest, northEast); - - return bounds; -} - -function MapView(){ - var self = this; - - self.$element = $(template({})); - var $map = self.$element.find('.js-etho-map') - .css('height', window.innerHeight-78) - .css('width', window.innerWidth); - - - var map = L.map($map[0],{ - //center: [-13.4484, 28.072], - //maxBounds: bounds, - center: [40.774484, -73.917], - zoom: 15, - }); - self.getLeaflet = function(){return L;}; - self.getLeafletMap = function(){return map;}; - - //var tiles = 'http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png'; - L.tileLayer('http://{s}.tile.openstreetmap.se/hydda/full/{z}/{x}/{y}.png', { - //L.tileLayer('lib/img/MapQuest/{z}/{x}/{y}.jpg', { - //L.tileLayer(tiles, { - maxZoom: 17, - minZoom: 8, - id: 'examples.map-i875mjb7' - }).addTo(map); - - - - var geoJsonLayer; - self.showGeoJson = function(geojson){ - _ensureProperSize(map); - - // if (!geojson) return; - // if (geoJsonLayer) - // map.removeLayer(map); - - - }; - - self.show = _ensureProperSize.bind(null, map); - - _trackLocationOnMap(map); -} - -module.exports = MapView; diff --git a/src/controls/map/index.less b/src/controls/map/index.less deleted file mode 100644 index 494083a..0000000 --- a/src/controls/map/index.less +++ /dev/null @@ -1,94 +0,0 @@ - -@-moz-keyframes leaflet-usermarker-pulsate { - from { - -moz-transform: scale(0.5); - opacity: 1.0; - } - 95% { - -moz-transform: scale(1.3); - opacity: 0; - } - to { - -moz-transform: scale(0.7); - opacity: 0; - } -} -@-webkit-keyframes leaflet-usermarker-pulsate { - from { - -webkit-transform: scale(0.5); - opacity: 1.0; - } - 95% { - -webkit-transform: scale(1.3); - opacity: 0; - } - to { - -webkit-transform: scale(0.7); - opacity: 0; - } -} -@keyframes leaflet-usermarker-pulsate { - from { - transform: scale(0.5); - opacity: 1.0; - } - 95% { - transform: scale(1.3); - opacity: 0; - } - to { - transform: scale(0.7); - opacity: 0; - } -} - -.leaflet-usermarker, -.leaflet-usermarker-small { - width: 34px; - height: 34px; - background: url(lib/img/bluedot.png); - background-size: 100%; -} -.leaflet-usermarker-small { - width: 17px; - height: 17px; -} - -.leaflet-usermarker i.pulse, -.leaflet-usermarker-small i.pulse { - display: block; - - -moz-animation: leaflet-usermarker-pulsate 1.5s ease-in-out infinite; - -webkit-animation: leaflet-usermarker-pulsate 1.5s ease-in-out infinite; - animation: leaflet-usermarker-pulsate 1.5s ease-in-out infinite; - border:1pt solid #fff; - /* make a circle */ - -moz-border-radius:51px; - -webkit-border-radius:51px; - border-radius:51px; - /* multiply the shadows, inside and outside the circle */ - -moz-box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f; - -webkit-box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f; - box-shadow:inset 0 0 5px #06f, inset 0 0 5px #06f, inset 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f, 0 0 5px #06f; - /* set the ring's new dimension and re-center it */ - height:61px!important; - margin:-14px 0 0 -14px; - width:61px!important; -} - -.leaflet-usermarker-small i.pulse { - height: 31px !important; - width: 31px !important; - margin: -7px 0 0 -7px; -} - -.map-container{ - position: relative; - width: 100%; - height: 100%; - #temp-map{ - position: relative; - width: 100%; - height: 100%; - } -} diff --git a/src/controls/map/index.vash b/src/controls/map/index.vash deleted file mode 100644 index c5bdef6..0000000 --- a/src/controls/map/index.vash +++ /dev/null @@ -1,4 +0,0 @@ - -
-
-
diff --git a/src/controls/map/leaflet.usermarker.js b/src/controls/map/leaflet.usermarker.js deleted file mode 100644 index 541b108..0000000 --- a/src/controls/map/leaflet.usermarker.js +++ /dev/null @@ -1,105 +0,0 @@ -var L = require('leaflet'); -/** - * Leaflet.UserMarker v1.0 - * - * Author: Jonatan Heyman - */ - -(function(window) { - var icon = L.divIcon({ - className: "leaflet-usermarker", - iconSize: [34, 34], - iconAnchor: [17, 17], - popupAnchor: [0, -20], - labelAnchor: [11, -3], - html: '' - }); - var iconPulsing = L.divIcon({ - className: "leaflet-usermarker", - iconSize: [34, 34], - iconAnchor: [17, 17], - popupAnchor: [0, -20], - labelAnchor: [11, -3], - html: '' - }); - - var iconSmall = L.divIcon({ - className: "leaflet-usermarker-small", - iconSize: [17, 17], - iconAnchor: [9, 9], - popupAnchor: [0, -10], - labelAnchor: [3, -4], - html: '' - }); - var iconPulsingSmall = L.divIcon({ - className: "leaflet-usermarker-small", - iconSize: [17, 17], - iconAnchor: [9, 9], - popupAnchor: [0, -10], - labelAnchor: [3, -4], - html: '' - }); - var circleStyle = { - stroke: true, - color: "#03f", - weight: 3, - opacity: 0.5, - fillOpacity: 0.15, - fillColor: "#03f", - clickable: false - }; - - L.UserMarker = L.Marker.extend({ - options: { - pulsing: false, - smallIcon: false, - accuracy: 0, - circleOpts: circleStyle - }, - - initialize: function(latlng, options) { - options = L.Util.setOptions(this, options); - - this.setPulsing(this.options.pulsing); - this._accMarker = L.circle(latlng, this.options.accuracy, this.options.circleOpts); - - // call super - L.Marker.prototype.initialize.call(this, latlng, this.options); - - this.on("move", function() { - this._accMarker.setLatLng(this.getLatLng()); - }).on("remove", function() { - this._map.removeLayer(this._accMarker); - }); - }, - - setPulsing: function(pulsing) { - this._pulsing = pulsing; - - if (this.options.smallIcon) { - this.setIcon(!!this._pulsing ? iconPulsingSmall : iconSmall); - } else { - this.setIcon(!!this._pulsing ? iconPulsing : icon); - } - }, - - setAccuracy: function(accuracy) { - this._accuracy = accuracy; - if (!this._accMarker) { - this._accMarker = L.circle(this._latlng, accuracy, this.options.circleOpts).addTo(this._map); - } else { - this._accMarker.setRadius(accuracy); - } - }, - - onAdd: function(map) { - // super - L.Marker.prototype.onAdd.call(this, map); - this._accMarker.addTo(map); - } - }); - - L.userMarker = function (latlng, options) { - return new L.UserMarker(latlng, options); - }; -})(window); diff --git a/src/controls/modal/index.js b/src/controls/modal/index.js deleted file mode 100644 index ecb72c7..0000000 --- a/src/controls/modal/index.js +++ /dev/null @@ -1,127 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - velocity = require('velocity-animate'), - Scroll = require('iscroll'), - EventEmitter = require('events').EventEmitter, - _ = require('lodash'), - util = require('util'), - modalTemplate = require('./modal.vash'); - - -var ANIMATION_DURATION=400; -var DEFAULTS = { - hideOkay: false, -}; - -function Modal(options){ - var self = this, $modal; - var $header; - - if (options.title){ - $header = $('

').text(options.title); - } else { - $header = options.$header; - } - - options = _.extend({}, DEFAULTS, options); - - options = Object(options); - EventEmitter.call(self); - - var $myContent = $myContent || options.$content; - - $modal = $(modalTemplate({ - showBackButton: !!options.backAction, - hideClose: !!options.hideClose, - })); - - $modal.find('.js-header-placeholder').replaceWith($header); - - $modal.find('.modal-body') - .empty() - .append($myContent); - - $modal.find('.js-back') - .on('click', function(ev){ - ev.preventDefault(); - if (_.isFunction(options.backAction)) - options.backAction(); - }); - - $modal.find('.js-close') - .on('click', function(ev){ - ev.preventDefault(); - - self.hide(); - }); - - $modal.find('.js-ok') - .on('click', function(ev){ - ev.preventDefault(); - - self.emit('ok'); - $modal.slideUp('fast', function(){ - $modal.remove(); - }); - }); - - if (options.hideOkay){ - $modal.find('.js-button-bar').hide(); - } else { - $modal.find('.js-button-bar').show(); - } - - $('body').append($modal); - - this.hide = this.close = function(){ - if (!$modal) return; - - velocity($modal, {top:window.innerHeight}, { - duration:ANIMATION_DURATION, - complete: function(){ - $modal.hide(); - self.emit('closed'); - }, - }); - }; - - this.remove = this.close = function(){ - if (!$modal) return; - - velocity($modal, {top:window.innerHeight+1}, { - duration:ANIMATION_DURATION, - complete: function(){ - $modal.remove(); - }, - }); - }; - - this.show = function(){ - $modal - .css('height', window.innerHeight+1) - .css('top', window.innerHeight) - .show(); - - - - velocity($modal, {top:0}, { - duration:ANIMATION_DURATION, - complete: function(){ - if (options.scroll){ - var $content = $modal.find('.content'); - $content - .css('height', window.innerHeight-44); - - var scroll = new Scroll($content[0], { - mouseWheel: true, - scrollbars: true, - }); - } - }, - }); - }; -} - -util.inherits(Modal, EventEmitter); -module.exports = Modal; diff --git a/src/controls/modal/index.less b/src/controls/modal/index.less deleted file mode 100644 index 909f926..0000000 --- a/src/controls/modal/index.less +++ /dev/null @@ -1,15 +0,0 @@ - -.modal{ - top: 0 ; - bottom: 0 ; - left: 0 ; - right: 0 ; - width: 100% ; - - .bar-header{ - .ion-close{ - position: absolute; - right: 8px; - } - } -} diff --git a/src/controls/modal/modal.vash b/src/controls/modal/modal.vash deleted file mode 100644 index 2faa3c7..0000000 --- a/src/controls/modal/modal.vash +++ /dev/null @@ -1,21 +0,0 @@ - diff --git a/src/controls/popup-buttons/index.js b/src/controls/popup-buttons/index.js deleted file mode 100644 index a217384..0000000 --- a/src/controls/popup-buttons/index.js +++ /dev/null @@ -1,66 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - velocity = require('velocity-animate'), - EventEmitter = require('events').EventEmitter, - util = require('util'), - Hammer = require('util'), - template = require('./index.vash'); - -function PopupButtons(opt){ - EventEmitter.call(this); - opt = Object(opt); - - var self = this, - items = opt.items || []; - - items.forEach(function(item){ - item.label = item.label || item.value; - item.value = item.value || item.label; - item['class'] = item['class'] || 'button-dark'; - }); - - var $element = $(template({ - items: items, - })); - - - $('body').append($element); - - $element - .find('.js-button') - .on('click', function(){ - var $this = $(this); - self.emit('click', $this.val() || 'unknown'); - }); - - function _watchForOutsideClick(){ - setTimeout(function(){ - console.log('watching for click'); - $(window.document).one('click', function(){ - $element.hide(); - self.emit('closed'); - }); - },100); - } - - function _showMenu(ev, delayClickWatch){ - $element - .css('top', ev.pageY) - .css('right', window.innerWidth - ev.pageX); - - velocity($element, 'fadeIn', {duration: 300}); - - if (!delayClickWatch){ - _watchForOutsideClick(); - } - } - - this.show = function(ev, wait){ _showMenu(ev, wait); }; - this.opened = _watchForOutsideClick; - this.hide = function(){ $element.hide(); }; - this.remove = function(){ $element.remove(); }; -} - -util.inherits(PopupButtons, EventEmitter); -module.exports = PopupButtons; diff --git a/src/controls/popup-buttons/index.less b/src/controls/popup-buttons/index.less deleted file mode 100644 index 3961eeb..0000000 --- a/src/controls/popup-buttons/index.less +++ /dev/null @@ -1,8 +0,0 @@ -.create-select-menu{ - display: none; - position: fixed; - z-index: 100; - background-color: whitesmoke; - padding: 0px 6px 0px 6px; - border: 1px solid #989898; -} diff --git a/src/controls/popup-buttons/index.vash b/src/controls/popup-buttons/index.vash deleted file mode 100644 index c575233..0000000 --- a/src/controls/popup-buttons/index.vash +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/device-settings.js b/src/device-settings.js deleted file mode 100644 index 7a085c0..0000000 --- a/src/device-settings.js +++ /dev/null @@ -1,60 +0,0 @@ -var _ = require('lodash'), - fakeDeviceId = require('jocal').bind(null, 'fake_device_id'); - -function _getDeviceId(){ - var id; - - // when not running on a real device, just invent a deviceId and put it in local storage - if (!window.device){ - id = fakeDeviceId(); - if (!id){ - id = Date.now(); // okay for now - fakeDeviceId(id); - } - - return id; - } - - return window.device.uuid; -} - -function _getSettingsObject(){ - var app = require('app')(); - var settingsDomain = app.getDomain('_etho-settings'); - var entityManager = settingsDomain.getService('entity-manager'); - - return entityManager.getAll() - .then(function(entities){ - var deviceId = _getDeviceId(); - - var mySettings = _.find(entities, function(entity){ - return entity.deviceId == deviceId; - }); - - if (!mySettings) return { deviceId: deviceId }; - - return mySettings; - }); -} - -function _setSettingsObject(settings){ - var app = require('app')(); - var settingsDomain = app.getDomain('_etho-settings'); - var entityManager = settingsDomain.getService('entity-manager'); - - return entityManager.save(settings); -} - - -module.exports = function(settings){ - if (settings === undefined){ - return _getSettingsObject(); - } - - return _getSettingsObject() - .then(function(oldSettings){ - settings = _.extend({}, oldSettings, settings); - return _setSettingsObject(settings); - }); -}; - diff --git a/src/dom-ready.js b/src/dom-ready.js deleted file mode 100644 index f47a78f..0000000 --- a/src/dom-ready.js +++ /dev/null @@ -1,27 +0,0 @@ -var q = require('q'), - d = q.defer(), - $ = require('jquery'), - readyCallbacks = $.Callbacks(); - -module.exports = readyCallbacks.add.bind(readyCallbacks); -module.exports.promise = d.promise; - -$(function(){ - window.isCordova = false; - - if(document.URL.indexOf("http://") === -1 && document.URL.indexOf("https://") === -1) { - window.isCordova = true; - } - - if(window.isCordova) { - document.addEventListener("deviceready", onDeviceReady, false); - } else { - onDeviceReady(); - } - -}); - -function onDeviceReady(){ - readyCallbacks.fire(); - d.resolve(); -} diff --git a/src/insert-at-caret.js b/src/insert-at-caret.js deleted file mode 100644 index d8865d9..0000000 --- a/src/insert-at-caret.js +++ /dev/null @@ -1,20 +0,0 @@ -module.exports = function insertAtCaret(txtarea,text) { - var scrollPos = txtarea.scrollTop; - var strPos = 0; - var br = ((txtarea.selectionStart || txtarea.selectionStart == '0') ? - "ff" : (document.selection ? "ie" : false ) ); - - if (br == "ff") strPos = txtarea.selectionStart; - - var front = (txtarea.value).substring(0,strPos); - var back = (txtarea.value).substring(strPos,txtarea.value.length); - txtarea.value=front+text+back; - strPos = strPos + text.length; - - if (br == "ff") { - txtarea.selectionStart = strPos; - txtarea.selectionEnd = strPos; - txtarea.focus(); - } - txtarea.scrollTop = scrollPos; -}; diff --git a/src/ionic.css b/src/ionic.css deleted file mode 100644 index ef9f414..0000000 --- a/src/ionic.css +++ /dev/null @@ -1,7813 +0,0 @@ -/*! - * Copyright 2014 Drifty Co. - * http://drifty.com/ - * - * Ionic, v1.0.0-beta.13 - * A powerful HTML5 mobile app framework. - * http://ionicframework.com/ - * - * By @maxlynch, @benjsperry, @adamdbradley <3 - * - * Licensed under the MIT license. Please see LICENSE for more information. - * - */ -/*! - Ionicons, v1.5.2 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons -*/ -@font-face { - font-family: "Ionicons"; - src: url("../fonts/ionicons.eot?v=1.5.2"); - src: url("../fonts/ionicons.eot?v=1.5.2#iefix") format("embedded-opentype"), url("../fonts/ionicons.ttf?v=1.5.2") format("truetype"), url("../fonts/ionicons.woff?v=1.5.2") format("woff"), url("../fonts/ionicons.svg?v=1.5.2#Ionicons") format("svg"); - font-weight: normal; - font-style: normal; } - -.ion, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading, .ionicons, .ion-alert:before, .ion-alert-circled:before, .ion-android-add:before, .ion-android-add-contact:before, .ion-android-alarm:before, .ion-android-archive:before, .ion-android-arrow-back:before, .ion-android-arrow-down-left:before, .ion-android-arrow-down-right:before, .ion-android-arrow-forward:before, .ion-android-arrow-up-left:before, .ion-android-arrow-up-right:before, .ion-android-battery:before, .ion-android-book:before, .ion-android-calendar:before, .ion-android-call:before, .ion-android-camera:before, .ion-android-chat:before, .ion-android-checkmark:before, .ion-android-clock:before, .ion-android-close:before, .ion-android-contact:before, .ion-android-contacts:before, .ion-android-data:before, .ion-android-developer:before, .ion-android-display:before, .ion-android-download:before, .ion-android-drawer:before, .ion-android-dropdown:before, .ion-android-earth:before, .ion-android-folder:before, .ion-android-forums:before, .ion-android-friends:before, .ion-android-hand:before, .ion-android-image:before, .ion-android-inbox:before, .ion-android-information:before, .ion-android-keypad:before, .ion-android-lightbulb:before, .ion-android-locate:before, .ion-android-location:before, .ion-android-mail:before, .ion-android-microphone:before, .ion-android-mixer:before, .ion-android-more:before, .ion-android-note:before, .ion-android-playstore:before, .ion-android-printer:before, .ion-android-promotion:before, .ion-android-reminder:before, .ion-android-remove:before, .ion-android-search:before, .ion-android-send:before, .ion-android-settings:before, .ion-android-share:before, .ion-android-social:before, .ion-android-social-user:before, .ion-android-sort:before, .ion-android-stair-drawer:before, .ion-android-star:before, .ion-android-stopwatch:before, .ion-android-storage:before, .ion-android-system-back:before, .ion-android-system-home:before, .ion-android-system-windows:before, .ion-android-timer:before, .ion-android-trash:before, .ion-android-user-menu:before, .ion-android-volume:before, .ion-android-wifi:before, .ion-aperture:before, .ion-archive:before, .ion-arrow-down-a:before, .ion-arrow-down-b:before, .ion-arrow-down-c:before, .ion-arrow-expand:before, .ion-arrow-graph-down-left:before, .ion-arrow-graph-down-right:before, .ion-arrow-graph-up-left:before, .ion-arrow-graph-up-right:before, .ion-arrow-left-a:before, .ion-arrow-left-b:before, .ion-arrow-left-c:before, .ion-arrow-move:before, .ion-arrow-resize:before, .ion-arrow-return-left:before, .ion-arrow-return-right:before, .ion-arrow-right-a:before, .ion-arrow-right-b:before, .ion-arrow-right-c:before, .ion-arrow-shrink:before, .ion-arrow-swap:before, .ion-arrow-up-a:before, .ion-arrow-up-b:before, .ion-arrow-up-c:before, .ion-asterisk:before, .ion-at:before, .ion-bag:before, .ion-battery-charging:before, .ion-battery-empty:before, .ion-battery-full:before, .ion-battery-half:before, .ion-battery-low:before, .ion-beaker:before, .ion-beer:before, .ion-bluetooth:before, .ion-bonfire:before, .ion-bookmark:before, .ion-briefcase:before, .ion-bug:before, .ion-calculator:before, .ion-calendar:before, .ion-camera:before, .ion-card:before, .ion-cash:before, .ion-chatbox:before, .ion-chatbox-working:before, .ion-chatboxes:before, .ion-chatbubble:before, .ion-chatbubble-working:before, .ion-chatbubbles:before, .ion-checkmark:before, .ion-checkmark-circled:before, .ion-checkmark-round:before, .ion-chevron-down:before, .ion-chevron-left:before, .ion-chevron-right:before, .ion-chevron-up:before, .ion-clipboard:before, .ion-clock:before, .ion-close:before, .ion-close-circled:before, .ion-close-round:before, .ion-closed-captioning:before, .ion-cloud:before, .ion-code:before, .ion-code-download:before, .ion-code-working:before, .ion-coffee:before, .ion-compass:before, .ion-compose:before, .ion-connection-bars:before, .ion-contrast:before, .ion-cube:before, .ion-disc:before, .ion-document:before, .ion-document-text:before, .ion-drag:before, .ion-earth:before, .ion-edit:before, .ion-egg:before, .ion-eject:before, .ion-email:before, .ion-eye:before, .ion-eye-disabled:before, .ion-female:before, .ion-filing:before, .ion-film-marker:before, .ion-fireball:before, .ion-flag:before, .ion-flame:before, .ion-flash:before, .ion-flash-off:before, .ion-flask:before, .ion-folder:before, .ion-fork:before, .ion-fork-repo:before, .ion-forward:before, .ion-funnel:before, .ion-game-controller-a:before, .ion-game-controller-b:before, .ion-gear-a:before, .ion-gear-b:before, .ion-grid:before, .ion-hammer:before, .ion-happy:before, .ion-headphone:before, .ion-heart:before, .ion-heart-broken:before, .ion-help:before, .ion-help-buoy:before, .ion-help-circled:before, .ion-home:before, .ion-icecream:before, .ion-icon-social-google-plus:before, .ion-icon-social-google-plus-outline:before, .ion-image:before, .ion-images:before, .ion-information:before, .ion-information-circled:before, .ion-ionic:before, .ion-ios7-alarm:before, .ion-ios7-alarm-outline:before, .ion-ios7-albums:before, .ion-ios7-albums-outline:before, .ion-ios7-americanfootball:before, .ion-ios7-americanfootball-outline:before, .ion-ios7-analytics:before, .ion-ios7-analytics-outline:before, .ion-ios7-arrow-back:before, .ion-ios7-arrow-down:before, .ion-ios7-arrow-forward:before, .ion-ios7-arrow-left:before, .ion-ios7-arrow-right:before, .ion-ios7-arrow-thin-down:before, .ion-ios7-arrow-thin-left:before, .ion-ios7-arrow-thin-right:before, .ion-ios7-arrow-thin-up:before, .ion-ios7-arrow-up:before, .ion-ios7-at:before, .ion-ios7-at-outline:before, .ion-ios7-barcode:before, .ion-ios7-barcode-outline:before, .ion-ios7-baseball:before, .ion-ios7-baseball-outline:before, .ion-ios7-basketball:before, .ion-ios7-basketball-outline:before, .ion-ios7-bell:before, .ion-ios7-bell-outline:before, .ion-ios7-bolt:before, .ion-ios7-bolt-outline:before, .ion-ios7-bookmarks:before, .ion-ios7-bookmarks-outline:before, .ion-ios7-box:before, .ion-ios7-box-outline:before, .ion-ios7-briefcase:before, .ion-ios7-briefcase-outline:before, .ion-ios7-browsers:before, .ion-ios7-browsers-outline:before, .ion-ios7-calculator:before, .ion-ios7-calculator-outline:before, .ion-ios7-calendar:before, .ion-ios7-calendar-outline:before, .ion-ios7-camera:before, .ion-ios7-camera-outline:before, .ion-ios7-cart:before, .ion-ios7-cart-outline:before, .ion-ios7-chatboxes:before, .ion-ios7-chatboxes-outline:before, .ion-ios7-chatbubble:before, .ion-ios7-chatbubble-outline:before, .ion-ios7-checkmark:before, .ion-ios7-checkmark-empty:before, .ion-ios7-checkmark-outline:before, .ion-ios7-circle-filled:before, .ion-ios7-circle-outline:before, .ion-ios7-clock:before, .ion-ios7-clock-outline:before, .ion-ios7-close:before, .ion-ios7-close-empty:before, .ion-ios7-close-outline:before, .ion-ios7-cloud:before, .ion-ios7-cloud-download:before, .ion-ios7-cloud-download-outline:before, .ion-ios7-cloud-outline:before, .ion-ios7-cloud-upload:before, .ion-ios7-cloud-upload-outline:before, .ion-ios7-cloudy:before, .ion-ios7-cloudy-night:before, .ion-ios7-cloudy-night-outline:before, .ion-ios7-cloudy-outline:before, .ion-ios7-cog:before, .ion-ios7-cog-outline:before, .ion-ios7-compose:before, .ion-ios7-compose-outline:before, .ion-ios7-contact:before, .ion-ios7-contact-outline:before, .ion-ios7-copy:before, .ion-ios7-copy-outline:before, .ion-ios7-download:before, .ion-ios7-download-outline:before, .ion-ios7-drag:before, .ion-ios7-email:before, .ion-ios7-email-outline:before, .ion-ios7-expand:before, .ion-ios7-eye:before, .ion-ios7-eye-outline:before, .ion-ios7-fastforward:before, .ion-ios7-fastforward-outline:before, .ion-ios7-filing:before, .ion-ios7-filing-outline:before, .ion-ios7-film:before, .ion-ios7-film-outline:before, .ion-ios7-flag:before, .ion-ios7-flag-outline:before, .ion-ios7-folder:before, .ion-ios7-folder-outline:before, .ion-ios7-football:before, .ion-ios7-football-outline:before, .ion-ios7-gear:before, .ion-ios7-gear-outline:before, .ion-ios7-glasses:before, .ion-ios7-glasses-outline:before, .ion-ios7-heart:before, .ion-ios7-heart-outline:before, .ion-ios7-help:before, .ion-ios7-help-empty:before, .ion-ios7-help-outline:before, .ion-ios7-home:before, .ion-ios7-home-outline:before, .ion-ios7-infinite:before, .ion-ios7-infinite-outline:before, .ion-ios7-information:before, .ion-ios7-information-empty:before, .ion-ios7-information-outline:before, .ion-ios7-ionic-outline:before, .ion-ios7-keypad:before, .ion-ios7-keypad-outline:before, .ion-ios7-lightbulb:before, .ion-ios7-lightbulb-outline:before, .ion-ios7-location:before, .ion-ios7-location-outline:before, .ion-ios7-locked:before, .ion-ios7-locked-outline:before, .ion-ios7-loop:before, .ion-ios7-loop-strong:before, .ion-ios7-medkit:before, .ion-ios7-medkit-outline:before, .ion-ios7-mic:before, .ion-ios7-mic-off:before, .ion-ios7-mic-outline:before, .ion-ios7-minus:before, .ion-ios7-minus-empty:before, .ion-ios7-minus-outline:before, .ion-ios7-monitor:before, .ion-ios7-monitor-outline:before, .ion-ios7-moon:before, .ion-ios7-moon-outline:before, .ion-ios7-more:before, .ion-ios7-more-outline:before, .ion-ios7-musical-note:before, .ion-ios7-musical-notes:before, .ion-ios7-navigate:before, .ion-ios7-navigate-outline:before, .ion-ios7-paper:before, .ion-ios7-paper-outline:before, .ion-ios7-paperplane:before, .ion-ios7-paperplane-outline:before, .ion-ios7-partlysunny:before, .ion-ios7-partlysunny-outline:before, .ion-ios7-pause:before, .ion-ios7-pause-outline:before, .ion-ios7-paw:before, .ion-ios7-paw-outline:before, .ion-ios7-people:before, .ion-ios7-people-outline:before, .ion-ios7-person:before, .ion-ios7-person-outline:before, .ion-ios7-personadd:before, .ion-ios7-personadd-outline:before, .ion-ios7-photos:before, .ion-ios7-photos-outline:before, .ion-ios7-pie:before, .ion-ios7-pie-outline:before, .ion-ios7-play:before, .ion-ios7-play-outline:before, .ion-ios7-plus:before, .ion-ios7-plus-empty:before, .ion-ios7-plus-outline:before, .ion-ios7-pricetag:before, .ion-ios7-pricetag-outline:before, .ion-ios7-pricetags:before, .ion-ios7-pricetags-outline:before, .ion-ios7-printer:before, .ion-ios7-printer-outline:before, .ion-ios7-pulse:before, .ion-ios7-pulse-strong:before, .ion-ios7-rainy:before, .ion-ios7-rainy-outline:before, .ion-ios7-recording:before, .ion-ios7-recording-outline:before, .ion-ios7-redo:before, .ion-ios7-redo-outline:before, .ion-ios7-refresh:before, .ion-ios7-refresh-empty:before, .ion-ios7-refresh-outline:before, .ion-ios7-reload:before, .ion-ios7-reloading:before, .ion-ios7-reverse-camera:before, .ion-ios7-reverse-camera-outline:before, .ion-ios7-rewind:before, .ion-ios7-rewind-outline:before, .ion-ios7-search:before, .ion-ios7-search-strong:before, .ion-ios7-settings:before, .ion-ios7-settings-strong:before, .ion-ios7-shrink:before, .ion-ios7-skipbackward:before, .ion-ios7-skipbackward-outline:before, .ion-ios7-skipforward:before, .ion-ios7-skipforward-outline:before, .ion-ios7-snowy:before, .ion-ios7-speedometer:before, .ion-ios7-speedometer-outline:before, .ion-ios7-star:before, .ion-ios7-star-half:before, .ion-ios7-star-outline:before, .ion-ios7-stopwatch:before, .ion-ios7-stopwatch-outline:before, .ion-ios7-sunny:before, .ion-ios7-sunny-outline:before, .ion-ios7-telephone:before, .ion-ios7-telephone-outline:before, .ion-ios7-tennisball:before, .ion-ios7-tennisball-outline:before, .ion-ios7-thunderstorm:before, .ion-ios7-thunderstorm-outline:before, .ion-ios7-time:before, .ion-ios7-time-outline:before, .ion-ios7-timer:before, .ion-ios7-timer-outline:before, .ion-ios7-toggle:before, .ion-ios7-toggle-outline:before, .ion-ios7-trash:before, .ion-ios7-trash-outline:before, .ion-ios7-undo:before, .ion-ios7-undo-outline:before, .ion-ios7-unlocked:before, .ion-ios7-unlocked-outline:before, .ion-ios7-upload:before, .ion-ios7-upload-outline:before, .ion-ios7-videocam:before, .ion-ios7-videocam-outline:before, .ion-ios7-volume-high:before, .ion-ios7-volume-low:before, .ion-ios7-wineglass:before, .ion-ios7-wineglass-outline:before, .ion-ios7-world:before, .ion-ios7-world-outline:before, .ion-ipad:before, .ion-iphone:before, .ion-ipod:before, .ion-jet:before, .ion-key:before, .ion-knife:before, .ion-laptop:before, .ion-leaf:before, .ion-levels:before, .ion-lightbulb:before, .ion-link:before, .ion-load-a:before, .ion-loading-a:before, .ion-load-b:before, .ion-loading-b:before, .ion-load-c:before, .ion-loading-c:before, .ion-load-d:before, .ion-loading-d:before, .ion-location:before, .ion-locked:before, .ion-log-in:before, .ion-log-out:before, .ion-loop:before, .ion-looping:before, .ion-magnet:before, .ion-male:before, .ion-man:before, .ion-map:before, .ion-medkit:before, .ion-merge:before, .ion-mic-a:before, .ion-mic-b:before, .ion-mic-c:before, .ion-minus:before, .ion-minus-circled:before, .ion-minus-round:before, .ion-model-s:before, .ion-monitor:before, .ion-more:before, .ion-mouse:before, .ion-music-note:before, .ion-navicon:before, .ion-navicon-round:before, .ion-navigate:before, .ion-network:before, .ion-no-smoking:before, .ion-nuclear:before, .ion-outlet:before, .ion-paper-airplane:before, .ion-paperclip:before, .ion-pause:before, .ion-person:before, .ion-person-add:before, .ion-person-stalker:before, .ion-pie-graph:before, .ion-pin:before, .ion-pinpoint:before, .ion-pizza:before, .ion-plane:before, .ion-planet:before, .ion-play:before, .ion-playstation:before, .ion-plus:before, .ion-plus-circled:before, .ion-plus-round:before, .ion-podium:before, .ion-pound:before, .ion-power:before, .ion-pricetag:before, .ion-pricetags:before, .ion-printer:before, .ion-pull-request:before, .ion-qr-scanner:before, .ion-quote:before, .ion-radio-waves:before, .ion-record:before, .ion-refresh:before, .ion-refreshing:before, .ion-reply:before, .ion-reply-all:before, .ion-ribbon-a:before, .ion-ribbon-b:before, .ion-sad:before, .ion-scissors:before, .ion-search:before, .ion-settings:before, .ion-share:before, .ion-shuffle:before, .ion-skip-backward:before, .ion-skip-forward:before, .ion-social-android:before, .ion-social-android-outline:before, .ion-social-apple:before, .ion-social-apple-outline:before, .ion-social-bitcoin:before, .ion-social-bitcoin-outline:before, .ion-social-buffer:before, .ion-social-buffer-outline:before, .ion-social-designernews:before, .ion-social-designernews-outline:before, .ion-social-dribbble:before, .ion-social-dribbble-outline:before, .ion-social-dropbox:before, .ion-social-dropbox-outline:before, .ion-social-facebook:before, .ion-social-facebook-outline:before, .ion-social-foursquare:before, .ion-social-foursquare-outline:before, .ion-social-freebsd-devil:before, .ion-social-github:before, .ion-social-github-outline:before, .ion-social-google:before, .ion-social-google-outline:before, .ion-social-googleplus:before, .ion-social-googleplus-outline:before, .ion-social-hackernews:before, .ion-social-hackernews-outline:before, .ion-social-instagram:before, .ion-social-instagram-outline:before, .ion-social-linkedin:before, .ion-social-linkedin-outline:before, .ion-social-pinterest:before, .ion-social-pinterest-outline:before, .ion-social-reddit:before, .ion-social-reddit-outline:before, .ion-social-rss:before, .ion-social-rss-outline:before, .ion-social-skype:before, .ion-social-skype-outline:before, .ion-social-tumblr:before, .ion-social-tumblr-outline:before, .ion-social-tux:before, .ion-social-twitter:before, .ion-social-twitter-outline:before, .ion-social-usd:before, .ion-social-usd-outline:before, .ion-social-vimeo:before, .ion-social-vimeo-outline:before, .ion-social-windows:before, .ion-social-windows-outline:before, .ion-social-wordpress:before, .ion-social-wordpress-outline:before, .ion-social-yahoo:before, .ion-social-yahoo-outline:before, .ion-social-youtube:before, .ion-social-youtube-outline:before, .ion-speakerphone:before, .ion-speedometer:before, .ion-spoon:before, .ion-star:before, .ion-stats-bars:before, .ion-steam:before, .ion-stop:before, .ion-thermometer:before, .ion-thumbsdown:before, .ion-thumbsup:before, .ion-toggle:before, .ion-toggle-filled:before, .ion-trash-a:before, .ion-trash-b:before, .ion-trophy:before, .ion-umbrella:before, .ion-university:before, .ion-unlocked:before, .ion-upload:before, .ion-usb:before, .ion-videocamera:before, .ion-volume-high:before, .ion-volume-low:before, .ion-volume-medium:before, .ion-volume-mute:before, .ion-wand:before, .ion-waterdrop:before, .ion-wifi:before, .ion-wineglass:before, .ion-woman:before, .ion-wrench:before, .ion-xbox:before { - display: inline-block; - font-family: "Ionicons"; - speak: none; - font-style: normal; - font-weight: normal; - font-variant: normal; - text-transform: none; - text-rendering: auto; - line-height: 1; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; } - -.ion-spin, .ion-loading-a, .ion-loading-b, .ion-loading-c, .ion-loading-d, .ion-looping, .ion-refreshing, .ion-ios7-reloading { - -webkit-animation: spin 1s infinite linear; - -moz-animation: spin 1s infinite linear; - -o-animation: spin 1s infinite linear; - animation: spin 1s infinite linear; } - -@-moz-keyframes spin { - 0% { - -moz-transform: rotate(0deg); } - - 100% { - -moz-transform: rotate(359deg); } } - -@-webkit-keyframes spin { - 0% { - -webkit-transform: rotate(0deg); } - - 100% { - -webkit-transform: rotate(359deg); } } - -@-o-keyframes spin { - 0% { - -o-transform: rotate(0deg); } - - 100% { - -o-transform: rotate(359deg); } } - -@-ms-keyframes spin { - 0% { - -ms-transform: rotate(0deg); } - - 100% { - -ms-transform: rotate(359deg); } } - -@keyframes spin { - 0% { - transform: rotate(0deg); } - - 100% { - transform: rotate(359deg); } } - -.ion-loading-a { - -webkit-animation-timing-function: steps(8, start); - -moz-animation-timing-function: steps(8, start); - animation-timing-function: steps(8, start); } - -.ion-alert:before { - content: "\f101"; } - -.ion-alert-circled:before { - content: "\f100"; } - -.ion-android-add:before { - content: "\f2c7"; } - -.ion-android-add-contact:before { - content: "\f2c6"; } - -.ion-android-alarm:before { - content: "\f2c8"; } - -.ion-android-archive:before { - content: "\f2c9"; } - -.ion-android-arrow-back:before { - content: "\f2ca"; } - -.ion-android-arrow-down-left:before { - content: "\f2cb"; } - -.ion-android-arrow-down-right:before { - content: "\f2cc"; } - -.ion-android-arrow-forward:before { - content: "\f30f"; } - -.ion-android-arrow-up-left:before { - content: "\f2cd"; } - -.ion-android-arrow-up-right:before { - content: "\f2ce"; } - -.ion-android-battery:before { - content: "\f2cf"; } - -.ion-android-book:before { - content: "\f2d0"; } - -.ion-android-calendar:before { - content: "\f2d1"; } - -.ion-android-call:before { - content: "\f2d2"; } - -.ion-android-camera:before { - content: "\f2d3"; } - -.ion-android-chat:before { - content: "\f2d4"; } - -.ion-android-checkmark:before { - content: "\f2d5"; } - -.ion-android-clock:before { - content: "\f2d6"; } - -.ion-android-close:before { - content: "\f2d7"; } - -.ion-android-contact:before { - content: "\f2d8"; } - -.ion-android-contacts:before { - content: "\f2d9"; } - -.ion-android-data:before { - content: "\f2da"; } - -.ion-android-developer:before { - content: "\f2db"; } - -.ion-android-display:before { - content: "\f2dc"; } - -.ion-android-download:before { - content: "\f2dd"; } - -.ion-android-drawer:before { - content: "\f310"; } - -.ion-android-dropdown:before { - content: "\f2de"; } - -.ion-android-earth:before { - content: "\f2df"; } - -.ion-android-folder:before { - content: "\f2e0"; } - -.ion-android-forums:before { - content: "\f2e1"; } - -.ion-android-friends:before { - content: "\f2e2"; } - -.ion-android-hand:before { - content: "\f2e3"; } - -.ion-android-image:before { - content: "\f2e4"; } - -.ion-android-inbox:before { - content: "\f2e5"; } - -.ion-android-information:before { - content: "\f2e6"; } - -.ion-android-keypad:before { - content: "\f2e7"; } - -.ion-android-lightbulb:before { - content: "\f2e8"; } - -.ion-android-locate:before { - content: "\f2e9"; } - -.ion-android-location:before { - content: "\f2ea"; } - -.ion-android-mail:before { - content: "\f2eb"; } - -.ion-android-microphone:before { - content: "\f2ec"; } - -.ion-android-mixer:before { - content: "\f2ed"; } - -.ion-android-more:before { - content: "\f2ee"; } - -.ion-android-note:before { - content: "\f2ef"; } - -.ion-android-playstore:before { - content: "\f2f0"; } - -.ion-android-printer:before { - content: "\f2f1"; } - -.ion-android-promotion:before { - content: "\f2f2"; } - -.ion-android-reminder:before { - content: "\f2f3"; } - -.ion-android-remove:before { - content: "\f2f4"; } - -.ion-android-search:before { - content: "\f2f5"; } - -.ion-android-send:before { - content: "\f2f6"; } - -.ion-android-settings:before { - content: "\f2f7"; } - -.ion-android-share:before { - content: "\f2f8"; } - -.ion-android-social:before { - content: "\f2fa"; } - -.ion-android-social-user:before { - content: "\f2f9"; } - -.ion-android-sort:before { - content: "\f2fb"; } - -.ion-android-stair-drawer:before { - content: "\f311"; } - -.ion-android-star:before { - content: "\f2fc"; } - -.ion-android-stopwatch:before { - content: "\f2fd"; } - -.ion-android-storage:before { - content: "\f2fe"; } - -.ion-android-system-back:before { - content: "\f2ff"; } - -.ion-android-system-home:before { - content: "\f300"; } - -.ion-android-system-windows:before { - content: "\f301"; } - -.ion-android-timer:before { - content: "\f302"; } - -.ion-android-trash:before { - content: "\f303"; } - -.ion-android-user-menu:before { - content: "\f312"; } - -.ion-android-volume:before { - content: "\f304"; } - -.ion-android-wifi:before { - content: "\f305"; } - -.ion-aperture:before { - content: "\f313"; } - -.ion-archive:before { - content: "\f102"; } - -.ion-arrow-down-a:before { - content: "\f103"; } - -.ion-arrow-down-b:before { - content: "\f104"; } - -.ion-arrow-down-c:before { - content: "\f105"; } - -.ion-arrow-expand:before { - content: "\f25e"; } - -.ion-arrow-graph-down-left:before { - content: "\f25f"; } - -.ion-arrow-graph-down-right:before { - content: "\f260"; } - -.ion-arrow-graph-up-left:before { - content: "\f261"; } - -.ion-arrow-graph-up-right:before { - content: "\f262"; } - -.ion-arrow-left-a:before { - content: "\f106"; } - -.ion-arrow-left-b:before { - content: "\f107"; } - -.ion-arrow-left-c:before { - content: "\f108"; } - -.ion-arrow-move:before { - content: "\f263"; } - -.ion-arrow-resize:before { - content: "\f264"; } - -.ion-arrow-return-left:before { - content: "\f265"; } - -.ion-arrow-return-right:before { - content: "\f266"; } - -.ion-arrow-right-a:before { - content: "\f109"; } - -.ion-arrow-right-b:before { - content: "\f10a"; } - -.ion-arrow-right-c:before { - content: "\f10b"; } - -.ion-arrow-shrink:before { - content: "\f267"; } - -.ion-arrow-swap:before { - content: "\f268"; } - -.ion-arrow-up-a:before { - content: "\f10c"; } - -.ion-arrow-up-b:before { - content: "\f10d"; } - -.ion-arrow-up-c:before { - content: "\f10e"; } - -.ion-asterisk:before { - content: "\f314"; } - -.ion-at:before { - content: "\f10f"; } - -.ion-bag:before { - content: "\f110"; } - -.ion-battery-charging:before { - content: "\f111"; } - -.ion-battery-empty:before { - content: "\f112"; } - -.ion-battery-full:before { - content: "\f113"; } - -.ion-battery-half:before { - content: "\f114"; } - -.ion-battery-low:before { - content: "\f115"; } - -.ion-beaker:before { - content: "\f269"; } - -.ion-beer:before { - content: "\f26a"; } - -.ion-bluetooth:before { - content: "\f116"; } - -.ion-bonfire:before { - content: "\f315"; } - -.ion-bookmark:before { - content: "\f26b"; } - -.ion-briefcase:before { - content: "\f26c"; } - -.ion-bug:before { - content: "\f2be"; } - -.ion-calculator:before { - content: "\f26d"; } - -.ion-calendar:before { - content: "\f117"; } - -.ion-camera:before { - content: "\f118"; } - -.ion-card:before { - content: "\f119"; } - -.ion-cash:before { - content: "\f316"; } - -.ion-chatbox:before { - content: "\f11b"; } - -.ion-chatbox-working:before { - content: "\f11a"; } - -.ion-chatboxes:before { - content: "\f11c"; } - -.ion-chatbubble:before { - content: "\f11e"; } - -.ion-chatbubble-working:before { - content: "\f11d"; } - -.ion-chatbubbles:before { - content: "\f11f"; } - -.ion-checkmark:before { - content: "\f122"; } - -.ion-checkmark-circled:before { - content: "\f120"; } - -.ion-checkmark-round:before { - content: "\f121"; } - -.ion-chevron-down:before { - content: "\f123"; } - -.ion-chevron-left:before { - content: "\f124"; } - -.ion-chevron-right:before { - content: "\f125"; } - -.ion-chevron-up:before { - content: "\f126"; } - -.ion-clipboard:before { - content: "\f127"; } - -.ion-clock:before { - content: "\f26e"; } - -.ion-close:before { - content: "\f12a"; } - -.ion-close-circled:before { - content: "\f128"; } - -.ion-close-round:before { - content: "\f129"; } - -.ion-closed-captioning:before { - content: "\f317"; } - -.ion-cloud:before { - content: "\f12b"; } - -.ion-code:before { - content: "\f271"; } - -.ion-code-download:before { - content: "\f26f"; } - -.ion-code-working:before { - content: "\f270"; } - -.ion-coffee:before { - content: "\f272"; } - -.ion-compass:before { - content: "\f273"; } - -.ion-compose:before { - content: "\f12c"; } - -.ion-connection-bars:before { - content: "\f274"; } - -.ion-contrast:before { - content: "\f275"; } - -.ion-cube:before { - content: "\f318"; } - -.ion-disc:before { - content: "\f12d"; } - -.ion-document:before { - content: "\f12f"; } - -.ion-document-text:before { - content: "\f12e"; } - -.ion-drag:before { - content: "\f130"; } - -.ion-earth:before { - content: "\f276"; } - -.ion-edit:before { - content: "\f2bf"; } - -.ion-egg:before { - content: "\f277"; } - -.ion-eject:before { - content: "\f131"; } - -.ion-email:before { - content: "\f132"; } - -.ion-eye:before { - content: "\f133"; } - -.ion-eye-disabled:before { - content: "\f306"; } - -.ion-female:before { - content: "\f278"; } - -.ion-filing:before { - content: "\f134"; } - -.ion-film-marker:before { - content: "\f135"; } - -.ion-fireball:before { - content: "\f319"; } - -.ion-flag:before { - content: "\f279"; } - -.ion-flame:before { - content: "\f31a"; } - -.ion-flash:before { - content: "\f137"; } - -.ion-flash-off:before { - content: "\f136"; } - -.ion-flask:before { - content: "\f138"; } - -.ion-folder:before { - content: "\f139"; } - -.ion-fork:before { - content: "\f27a"; } - -.ion-fork-repo:before { - content: "\f2c0"; } - -.ion-forward:before { - content: "\f13a"; } - -.ion-funnel:before { - content: "\f31b"; } - -.ion-game-controller-a:before { - content: "\f13b"; } - -.ion-game-controller-b:before { - content: "\f13c"; } - -.ion-gear-a:before { - content: "\f13d"; } - -.ion-gear-b:before { - content: "\f13e"; } - -.ion-grid:before { - content: "\f13f"; } - -.ion-hammer:before { - content: "\f27b"; } - -.ion-happy:before { - content: "\f31c"; } - -.ion-headphone:before { - content: "\f140"; } - -.ion-heart:before { - content: "\f141"; } - -.ion-heart-broken:before { - content: "\f31d"; } - -.ion-help:before { - content: "\f143"; } - -.ion-help-buoy:before { - content: "\f27c"; } - -.ion-help-circled:before { - content: "\f142"; } - -.ion-home:before { - content: "\f144"; } - -.ion-icecream:before { - content: "\f27d"; } - -.ion-icon-social-google-plus:before { - content: "\f146"; } - -.ion-icon-social-google-plus-outline:before { - content: "\f145"; } - -.ion-image:before { - content: "\f147"; } - -.ion-images:before { - content: "\f148"; } - -.ion-information:before { - content: "\f14a"; } - -.ion-information-circled:before { - content: "\f149"; } - -.ion-ionic:before { - content: "\f14b"; } - -.ion-ios7-alarm:before { - content: "\f14d"; } - -.ion-ios7-alarm-outline:before { - content: "\f14c"; } - -.ion-ios7-albums:before { - content: "\f14f"; } - -.ion-ios7-albums-outline:before { - content: "\f14e"; } - -.ion-ios7-americanfootball:before { - content: "\f31f"; } - -.ion-ios7-americanfootball-outline:before { - content: "\f31e"; } - -.ion-ios7-analytics:before { - content: "\f321"; } - -.ion-ios7-analytics-outline:before { - content: "\f320"; } - -.ion-ios7-arrow-back:before { - content: "\f150"; } - -.ion-ios7-arrow-down:before { - content: "\f151"; } - -.ion-ios7-arrow-forward:before { - content: "\f152"; } - -.ion-ios7-arrow-left:before { - content: "\f153"; } - -.ion-ios7-arrow-right:before { - content: "\f154"; } - -.ion-ios7-arrow-thin-down:before { - content: "\f27e"; } - -.ion-ios7-arrow-thin-left:before { - content: "\f27f"; } - -.ion-ios7-arrow-thin-right:before { - content: "\f280"; } - -.ion-ios7-arrow-thin-up:before { - content: "\f281"; } - -.ion-ios7-arrow-up:before { - content: "\f155"; } - -.ion-ios7-at:before { - content: "\f157"; } - -.ion-ios7-at-outline:before { - content: "\f156"; } - -.ion-ios7-barcode:before { - content: "\f323"; } - -.ion-ios7-barcode-outline:before { - content: "\f322"; } - -.ion-ios7-baseball:before { - content: "\f325"; } - -.ion-ios7-baseball-outline:before { - content: "\f324"; } - -.ion-ios7-basketball:before { - content: "\f327"; } - -.ion-ios7-basketball-outline:before { - content: "\f326"; } - -.ion-ios7-bell:before { - content: "\f159"; } - -.ion-ios7-bell-outline:before { - content: "\f158"; } - -.ion-ios7-bolt:before { - content: "\f15b"; } - -.ion-ios7-bolt-outline:before { - content: "\f15a"; } - -.ion-ios7-bookmarks:before { - content: "\f15d"; } - -.ion-ios7-bookmarks-outline:before { - content: "\f15c"; } - -.ion-ios7-box:before { - content: "\f15f"; } - -.ion-ios7-box-outline:before { - content: "\f15e"; } - -.ion-ios7-briefcase:before { - content: "\f283"; } - -.ion-ios7-briefcase-outline:before { - content: "\f282"; } - -.ion-ios7-browsers:before { - content: "\f161"; } - -.ion-ios7-browsers-outline:before { - content: "\f160"; } - -.ion-ios7-calculator:before { - content: "\f285"; } - -.ion-ios7-calculator-outline:before { - content: "\f284"; } - -.ion-ios7-calendar:before { - content: "\f163"; } - -.ion-ios7-calendar-outline:before { - content: "\f162"; } - -.ion-ios7-camera:before { - content: "\f165"; } - -.ion-ios7-camera-outline:before { - content: "\f164"; } - -.ion-ios7-cart:before { - content: "\f167"; } - -.ion-ios7-cart-outline:before { - content: "\f166"; } - -.ion-ios7-chatboxes:before { - content: "\f169"; } - -.ion-ios7-chatboxes-outline:before { - content: "\f168"; } - -.ion-ios7-chatbubble:before { - content: "\f16b"; } - -.ion-ios7-chatbubble-outline:before { - content: "\f16a"; } - -.ion-ios7-checkmark:before { - content: "\f16e"; } - -.ion-ios7-checkmark-empty:before { - content: "\f16c"; } - -.ion-ios7-checkmark-outline:before { - content: "\f16d"; } - -.ion-ios7-circle-filled:before { - content: "\f16f"; } - -.ion-ios7-circle-outline:before { - content: "\f170"; } - -.ion-ios7-clock:before { - content: "\f172"; } - -.ion-ios7-clock-outline:before { - content: "\f171"; } - -.ion-ios7-close:before { - content: "\f2bc"; } - -.ion-ios7-close-empty:before { - content: "\f2bd"; } - -.ion-ios7-close-outline:before { - content: "\f2bb"; } - -.ion-ios7-cloud:before { - content: "\f178"; } - -.ion-ios7-cloud-download:before { - content: "\f174"; } - -.ion-ios7-cloud-download-outline:before { - content: "\f173"; } - -.ion-ios7-cloud-outline:before { - content: "\f175"; } - -.ion-ios7-cloud-upload:before { - content: "\f177"; } - -.ion-ios7-cloud-upload-outline:before { - content: "\f176"; } - -.ion-ios7-cloudy:before { - content: "\f17a"; } - -.ion-ios7-cloudy-night:before { - content: "\f308"; } - -.ion-ios7-cloudy-night-outline:before { - content: "\f307"; } - -.ion-ios7-cloudy-outline:before { - content: "\f179"; } - -.ion-ios7-cog:before { - content: "\f17c"; } - -.ion-ios7-cog-outline:before { - content: "\f17b"; } - -.ion-ios7-compose:before { - content: "\f17e"; } - -.ion-ios7-compose-outline:before { - content: "\f17d"; } - -.ion-ios7-contact:before { - content: "\f180"; } - -.ion-ios7-contact-outline:before { - content: "\f17f"; } - -.ion-ios7-copy:before { - content: "\f182"; } - -.ion-ios7-copy-outline:before { - content: "\f181"; } - -.ion-ios7-download:before { - content: "\f184"; } - -.ion-ios7-download-outline:before { - content: "\f183"; } - -.ion-ios7-drag:before { - content: "\f185"; } - -.ion-ios7-email:before { - content: "\f187"; } - -.ion-ios7-email-outline:before { - content: "\f186"; } - -.ion-ios7-expand:before { - content: "\f30d"; } - -.ion-ios7-eye:before { - content: "\f189"; } - -.ion-ios7-eye-outline:before { - content: "\f188"; } - -.ion-ios7-fastforward:before { - content: "\f18b"; } - -.ion-ios7-fastforward-outline:before { - content: "\f18a"; } - -.ion-ios7-filing:before { - content: "\f18d"; } - -.ion-ios7-filing-outline:before { - content: "\f18c"; } - -.ion-ios7-film:before { - content: "\f18f"; } - -.ion-ios7-film-outline:before { - content: "\f18e"; } - -.ion-ios7-flag:before { - content: "\f191"; } - -.ion-ios7-flag-outline:before { - content: "\f190"; } - -.ion-ios7-folder:before { - content: "\f193"; } - -.ion-ios7-folder-outline:before { - content: "\f192"; } - -.ion-ios7-football:before { - content: "\f329"; } - -.ion-ios7-football-outline:before { - content: "\f328"; } - -.ion-ios7-gear:before { - content: "\f195"; } - -.ion-ios7-gear-outline:before { - content: "\f194"; } - -.ion-ios7-glasses:before { - content: "\f197"; } - -.ion-ios7-glasses-outline:before { - content: "\f196"; } - -.ion-ios7-heart:before { - content: "\f199"; } - -.ion-ios7-heart-outline:before { - content: "\f198"; } - -.ion-ios7-help:before { - content: "\f19c"; } - -.ion-ios7-help-empty:before { - content: "\f19a"; } - -.ion-ios7-help-outline:before { - content: "\f19b"; } - -.ion-ios7-home:before { - content: "\f32b"; } - -.ion-ios7-home-outline:before { - content: "\f32a"; } - -.ion-ios7-infinite:before { - content: "\f19e"; } - -.ion-ios7-infinite-outline:before { - content: "\f19d"; } - -.ion-ios7-information:before { - content: "\f1a1"; } - -.ion-ios7-information-empty:before { - content: "\f19f"; } - -.ion-ios7-information-outline:before { - content: "\f1a0"; } - -.ion-ios7-ionic-outline:before { - content: "\f1a2"; } - -.ion-ios7-keypad:before { - content: "\f1a4"; } - -.ion-ios7-keypad-outline:before { - content: "\f1a3"; } - -.ion-ios7-lightbulb:before { - content: "\f287"; } - -.ion-ios7-lightbulb-outline:before { - content: "\f286"; } - -.ion-ios7-location:before { - content: "\f1a6"; } - -.ion-ios7-location-outline:before { - content: "\f1a5"; } - -.ion-ios7-locked:before { - content: "\f1a8"; } - -.ion-ios7-locked-outline:before { - content: "\f1a7"; } - -.ion-ios7-loop:before { - content: "\f32d"; } - -.ion-ios7-loop-strong:before { - content: "\f32c"; } - -.ion-ios7-medkit:before { - content: "\f289"; } - -.ion-ios7-medkit-outline:before { - content: "\f288"; } - -.ion-ios7-mic:before { - content: "\f1ab"; } - -.ion-ios7-mic-off:before { - content: "\f1a9"; } - -.ion-ios7-mic-outline:before { - content: "\f1aa"; } - -.ion-ios7-minus:before { - content: "\f1ae"; } - -.ion-ios7-minus-empty:before { - content: "\f1ac"; } - -.ion-ios7-minus-outline:before { - content: "\f1ad"; } - -.ion-ios7-monitor:before { - content: "\f1b0"; } - -.ion-ios7-monitor-outline:before { - content: "\f1af"; } - -.ion-ios7-moon:before { - content: "\f1b2"; } - -.ion-ios7-moon-outline:before { - content: "\f1b1"; } - -.ion-ios7-more:before { - content: "\f1b4"; } - -.ion-ios7-more-outline:before { - content: "\f1b3"; } - -.ion-ios7-musical-note:before { - content: "\f1b5"; } - -.ion-ios7-musical-notes:before { - content: "\f1b6"; } - -.ion-ios7-navigate:before { - content: "\f1b8"; } - -.ion-ios7-navigate-outline:before { - content: "\f1b7"; } - -.ion-ios7-paper:before { - content: "\f32f"; } - -.ion-ios7-paper-outline:before { - content: "\f32e"; } - -.ion-ios7-paperplane:before { - content: "\f1ba"; } - -.ion-ios7-paperplane-outline:before { - content: "\f1b9"; } - -.ion-ios7-partlysunny:before { - content: "\f1bc"; } - -.ion-ios7-partlysunny-outline:before { - content: "\f1bb"; } - -.ion-ios7-pause:before { - content: "\f1be"; } - -.ion-ios7-pause-outline:before { - content: "\f1bd"; } - -.ion-ios7-paw:before { - content: "\f331"; } - -.ion-ios7-paw-outline:before { - content: "\f330"; } - -.ion-ios7-people:before { - content: "\f1c0"; } - -.ion-ios7-people-outline:before { - content: "\f1bf"; } - -.ion-ios7-person:before { - content: "\f1c2"; } - -.ion-ios7-person-outline:before { - content: "\f1c1"; } - -.ion-ios7-personadd:before { - content: "\f1c4"; } - -.ion-ios7-personadd-outline:before { - content: "\f1c3"; } - -.ion-ios7-photos:before { - content: "\f1c6"; } - -.ion-ios7-photos-outline:before { - content: "\f1c5"; } - -.ion-ios7-pie:before { - content: "\f28b"; } - -.ion-ios7-pie-outline:before { - content: "\f28a"; } - -.ion-ios7-play:before { - content: "\f1c8"; } - -.ion-ios7-play-outline:before { - content: "\f1c7"; } - -.ion-ios7-plus:before { - content: "\f1cb"; } - -.ion-ios7-plus-empty:before { - content: "\f1c9"; } - -.ion-ios7-plus-outline:before { - content: "\f1ca"; } - -.ion-ios7-pricetag:before { - content: "\f28d"; } - -.ion-ios7-pricetag-outline:before { - content: "\f28c"; } - -.ion-ios7-pricetags:before { - content: "\f333"; } - -.ion-ios7-pricetags-outline:before { - content: "\f332"; } - -.ion-ios7-printer:before { - content: "\f1cd"; } - -.ion-ios7-printer-outline:before { - content: "\f1cc"; } - -.ion-ios7-pulse:before { - content: "\f335"; } - -.ion-ios7-pulse-strong:before { - content: "\f334"; } - -.ion-ios7-rainy:before { - content: "\f1cf"; } - -.ion-ios7-rainy-outline:before { - content: "\f1ce"; } - -.ion-ios7-recording:before { - content: "\f1d1"; } - -.ion-ios7-recording-outline:before { - content: "\f1d0"; } - -.ion-ios7-redo:before { - content: "\f1d3"; } - -.ion-ios7-redo-outline:before { - content: "\f1d2"; } - -.ion-ios7-refresh:before { - content: "\f1d6"; } - -.ion-ios7-refresh-empty:before { - content: "\f1d4"; } - -.ion-ios7-refresh-outline:before { - content: "\f1d5"; } - -.ion-ios7-reload:before, .ion-ios7-reloading:before { - content: "\f28e"; } - -.ion-ios7-reverse-camera:before { - content: "\f337"; } - -.ion-ios7-reverse-camera-outline:before { - content: "\f336"; } - -.ion-ios7-rewind:before { - content: "\f1d8"; } - -.ion-ios7-rewind-outline:before { - content: "\f1d7"; } - -.ion-ios7-search:before { - content: "\f1da"; } - -.ion-ios7-search-strong:before { - content: "\f1d9"; } - -.ion-ios7-settings:before { - content: "\f339"; } - -.ion-ios7-settings-strong:before { - content: "\f338"; } - -.ion-ios7-shrink:before { - content: "\f30e"; } - -.ion-ios7-skipbackward:before { - content: "\f1dc"; } - -.ion-ios7-skipbackward-outline:before { - content: "\f1db"; } - -.ion-ios7-skipforward:before { - content: "\f1de"; } - -.ion-ios7-skipforward-outline:before { - content: "\f1dd"; } - -.ion-ios7-snowy:before { - content: "\f309"; } - -.ion-ios7-speedometer:before { - content: "\f290"; } - -.ion-ios7-speedometer-outline:before { - content: "\f28f"; } - -.ion-ios7-star:before { - content: "\f1e0"; } - -.ion-ios7-star-half:before { - content: "\f33a"; } - -.ion-ios7-star-outline:before { - content: "\f1df"; } - -.ion-ios7-stopwatch:before { - content: "\f1e2"; } - -.ion-ios7-stopwatch-outline:before { - content: "\f1e1"; } - -.ion-ios7-sunny:before { - content: "\f1e4"; } - -.ion-ios7-sunny-outline:before { - content: "\f1e3"; } - -.ion-ios7-telephone:before { - content: "\f1e6"; } - -.ion-ios7-telephone-outline:before { - content: "\f1e5"; } - -.ion-ios7-tennisball:before { - content: "\f33c"; } - -.ion-ios7-tennisball-outline:before { - content: "\f33b"; } - -.ion-ios7-thunderstorm:before { - content: "\f1e8"; } - -.ion-ios7-thunderstorm-outline:before { - content: "\f1e7"; } - -.ion-ios7-time:before { - content: "\f292"; } - -.ion-ios7-time-outline:before { - content: "\f291"; } - -.ion-ios7-timer:before { - content: "\f1ea"; } - -.ion-ios7-timer-outline:before { - content: "\f1e9"; } - -.ion-ios7-toggle:before { - content: "\f33e"; } - -.ion-ios7-toggle-outline:before { - content: "\f33d"; } - -.ion-ios7-trash:before { - content: "\f1ec"; } - -.ion-ios7-trash-outline:before { - content: "\f1eb"; } - -.ion-ios7-undo:before { - content: "\f1ee"; } - -.ion-ios7-undo-outline:before { - content: "\f1ed"; } - -.ion-ios7-unlocked:before { - content: "\f1f0"; } - -.ion-ios7-unlocked-outline:before { - content: "\f1ef"; } - -.ion-ios7-upload:before { - content: "\f1f2"; } - -.ion-ios7-upload-outline:before { - content: "\f1f1"; } - -.ion-ios7-videocam:before { - content: "\f1f4"; } - -.ion-ios7-videocam-outline:before { - content: "\f1f3"; } - -.ion-ios7-volume-high:before { - content: "\f1f5"; } - -.ion-ios7-volume-low:before { - content: "\f1f6"; } - -.ion-ios7-wineglass:before { - content: "\f294"; } - -.ion-ios7-wineglass-outline:before { - content: "\f293"; } - -.ion-ios7-world:before { - content: "\f1f8"; } - -.ion-ios7-world-outline:before { - content: "\f1f7"; } - -.ion-ipad:before { - content: "\f1f9"; } - -.ion-iphone:before { - content: "\f1fa"; } - -.ion-ipod:before { - content: "\f1fb"; } - -.ion-jet:before { - content: "\f295"; } - -.ion-key:before { - content: "\f296"; } - -.ion-knife:before { - content: "\f297"; } - -.ion-laptop:before { - content: "\f1fc"; } - -.ion-leaf:before { - content: "\f1fd"; } - -.ion-levels:before { - content: "\f298"; } - -.ion-lightbulb:before { - content: "\f299"; } - -.ion-link:before { - content: "\f1fe"; } - -.ion-load-a:before, .ion-loading-a:before { - content: "\f29a"; } - -.ion-load-b:before, .ion-loading-b:before { - content: "\f29b"; } - -.ion-load-c:before, .ion-loading-c:before { - content: "\f29c"; } - -.ion-load-d:before, .ion-loading-d:before { - content: "\f29d"; } - -.ion-location:before { - content: "\f1ff"; } - -.ion-locked:before { - content: "\f200"; } - -.ion-log-in:before { - content: "\f29e"; } - -.ion-log-out:before { - content: "\f29f"; } - -.ion-loop:before, .ion-looping:before { - content: "\f201"; } - -.ion-magnet:before { - content: "\f2a0"; } - -.ion-male:before { - content: "\f2a1"; } - -.ion-man:before { - content: "\f202"; } - -.ion-map:before { - content: "\f203"; } - -.ion-medkit:before { - content: "\f2a2"; } - -.ion-merge:before { - content: "\f33f"; } - -.ion-mic-a:before { - content: "\f204"; } - -.ion-mic-b:before { - content: "\f205"; } - -.ion-mic-c:before { - content: "\f206"; } - -.ion-minus:before { - content: "\f209"; } - -.ion-minus-circled:before { - content: "\f207"; } - -.ion-minus-round:before { - content: "\f208"; } - -.ion-model-s:before { - content: "\f2c1"; } - -.ion-monitor:before { - content: "\f20a"; } - -.ion-more:before { - content: "\f20b"; } - -.ion-mouse:before { - content: "\f340"; } - -.ion-music-note:before { - content: "\f20c"; } - -.ion-navicon:before { - content: "\f20e"; } - -.ion-navicon-round:before { - content: "\f20d"; } - -.ion-navigate:before { - content: "\f2a3"; } - -.ion-network:before { - content: "\f341"; } - -.ion-no-smoking:before { - content: "\f2c2"; } - -.ion-nuclear:before { - content: "\f2a4"; } - -.ion-outlet:before { - content: "\f342"; } - -.ion-paper-airplane:before { - content: "\f2c3"; } - -.ion-paperclip:before { - content: "\f20f"; } - -.ion-pause:before { - content: "\f210"; } - -.ion-person:before { - content: "\f213"; } - -.ion-person-add:before { - content: "\f211"; } - -.ion-person-stalker:before { - content: "\f212"; } - -.ion-pie-graph:before { - content: "\f2a5"; } - -.ion-pin:before { - content: "\f2a6"; } - -.ion-pinpoint:before { - content: "\f2a7"; } - -.ion-pizza:before { - content: "\f2a8"; } - -.ion-plane:before { - content: "\f214"; } - -.ion-planet:before { - content: "\f343"; } - -.ion-play:before { - content: "\f215"; } - -.ion-playstation:before { - content: "\f30a"; } - -.ion-plus:before { - content: "\f218"; } - -.ion-plus-circled:before { - content: "\f216"; } - -.ion-plus-round:before { - content: "\f217"; } - -.ion-podium:before { - content: "\f344"; } - -.ion-pound:before { - content: "\f219"; } - -.ion-power:before { - content: "\f2a9"; } - -.ion-pricetag:before { - content: "\f2aa"; } - -.ion-pricetags:before { - content: "\f2ab"; } - -.ion-printer:before { - content: "\f21a"; } - -.ion-pull-request:before { - content: "\f345"; } - -.ion-qr-scanner:before { - content: "\f346"; } - -.ion-quote:before { - content: "\f347"; } - -.ion-radio-waves:before { - content: "\f2ac"; } - -.ion-record:before { - content: "\f21b"; } - -.ion-refresh:before, .ion-refreshing:before { - content: "\f21c"; } - -.ion-reply:before { - content: "\f21e"; } - -.ion-reply-all:before { - content: "\f21d"; } - -.ion-ribbon-a:before { - content: "\f348"; } - -.ion-ribbon-b:before { - content: "\f349"; } - -.ion-sad:before { - content: "\f34a"; } - -.ion-scissors:before { - content: "\f34b"; } - -.ion-search:before { - content: "\f21f"; } - -.ion-settings:before { - content: "\f2ad"; } - -.ion-share:before { - content: "\f220"; } - -.ion-shuffle:before { - content: "\f221"; } - -.ion-skip-backward:before { - content: "\f222"; } - -.ion-skip-forward:before { - content: "\f223"; } - -.ion-social-android:before { - content: "\f225"; } - -.ion-social-android-outline:before { - content: "\f224"; } - -.ion-social-apple:before { - content: "\f227"; } - -.ion-social-apple-outline:before { - content: "\f226"; } - -.ion-social-bitcoin:before { - content: "\f2af"; } - -.ion-social-bitcoin-outline:before { - content: "\f2ae"; } - -.ion-social-buffer:before { - content: "\f229"; } - -.ion-social-buffer-outline:before { - content: "\f228"; } - -.ion-social-designernews:before { - content: "\f22b"; } - -.ion-social-designernews-outline:before { - content: "\f22a"; } - -.ion-social-dribbble:before { - content: "\f22d"; } - -.ion-social-dribbble-outline:before { - content: "\f22c"; } - -.ion-social-dropbox:before { - content: "\f22f"; } - -.ion-social-dropbox-outline:before { - content: "\f22e"; } - -.ion-social-facebook:before { - content: "\f231"; } - -.ion-social-facebook-outline:before { - content: "\f230"; } - -.ion-social-foursquare:before { - content: "\f34d"; } - -.ion-social-foursquare-outline:before { - content: "\f34c"; } - -.ion-social-freebsd-devil:before { - content: "\f2c4"; } - -.ion-social-github:before { - content: "\f233"; } - -.ion-social-github-outline:before { - content: "\f232"; } - -.ion-social-google:before { - content: "\f34f"; } - -.ion-social-google-outline:before { - content: "\f34e"; } - -.ion-social-googleplus:before { - content: "\f235"; } - -.ion-social-googleplus-outline:before { - content: "\f234"; } - -.ion-social-hackernews:before { - content: "\f237"; } - -.ion-social-hackernews-outline:before { - content: "\f236"; } - -.ion-social-instagram:before { - content: "\f351"; } - -.ion-social-instagram-outline:before { - content: "\f350"; } - -.ion-social-linkedin:before { - content: "\f239"; } - -.ion-social-linkedin-outline:before { - content: "\f238"; } - -.ion-social-pinterest:before { - content: "\f2b1"; } - -.ion-social-pinterest-outline:before { - content: "\f2b0"; } - -.ion-social-reddit:before { - content: "\f23b"; } - -.ion-social-reddit-outline:before { - content: "\f23a"; } - -.ion-social-rss:before { - content: "\f23d"; } - -.ion-social-rss-outline:before { - content: "\f23c"; } - -.ion-social-skype:before { - content: "\f23f"; } - -.ion-social-skype-outline:before { - content: "\f23e"; } - -.ion-social-tumblr:before { - content: "\f241"; } - -.ion-social-tumblr-outline:before { - content: "\f240"; } - -.ion-social-tux:before { - content: "\f2c5"; } - -.ion-social-twitter:before { - content: "\f243"; } - -.ion-social-twitter-outline:before { - content: "\f242"; } - -.ion-social-usd:before { - content: "\f353"; } - -.ion-social-usd-outline:before { - content: "\f352"; } - -.ion-social-vimeo:before { - content: "\f245"; } - -.ion-social-vimeo-outline:before { - content: "\f244"; } - -.ion-social-windows:before { - content: "\f247"; } - -.ion-social-windows-outline:before { - content: "\f246"; } - -.ion-social-wordpress:before { - content: "\f249"; } - -.ion-social-wordpress-outline:before { - content: "\f248"; } - -.ion-social-yahoo:before { - content: "\f24b"; } - -.ion-social-yahoo-outline:before { - content: "\f24a"; } - -.ion-social-youtube:before { - content: "\f24d"; } - -.ion-social-youtube-outline:before { - content: "\f24c"; } - -.ion-speakerphone:before { - content: "\f2b2"; } - -.ion-speedometer:before { - content: "\f2b3"; } - -.ion-spoon:before { - content: "\f2b4"; } - -.ion-star:before { - content: "\f24e"; } - -.ion-stats-bars:before { - content: "\f2b5"; } - -.ion-steam:before { - content: "\f30b"; } - -.ion-stop:before { - content: "\f24f"; } - -.ion-thermometer:before { - content: "\f2b6"; } - -.ion-thumbsdown:before { - content: "\f250"; } - -.ion-thumbsup:before { - content: "\f251"; } - -.ion-toggle:before { - content: "\f355"; } - -.ion-toggle-filled:before { - content: "\f354"; } - -.ion-trash-a:before { - content: "\f252"; } - -.ion-trash-b:before { - content: "\f253"; } - -.ion-trophy:before { - content: "\f356"; } - -.ion-umbrella:before { - content: "\f2b7"; } - -.ion-university:before { - content: "\f357"; } - -.ion-unlocked:before { - content: "\f254"; } - -.ion-upload:before { - content: "\f255"; } - -.ion-usb:before { - content: "\f2b8"; } - -.ion-videocamera:before { - content: "\f256"; } - -.ion-volume-high:before { - content: "\f257"; } - -.ion-volume-low:before { - content: "\f258"; } - -.ion-volume-medium:before { - content: "\f259"; } - -.ion-volume-mute:before { - content: "\f25a"; } - -.ion-wand:before { - content: "\f358"; } - -.ion-waterdrop:before { - content: "\f25b"; } - -.ion-wifi:before { - content: "\f25c"; } - -.ion-wineglass:before { - content: "\f2b9"; } - -.ion-woman:before { - content: "\f25d"; } - -.ion-wrench:before { - content: "\f2ba"; } - -.ion-xbox:before { - content: "\f30c"; } - -/** - * Resets - * -------------------------------------------------- - * Adapted from normalize.css and some reset.css. We don't care even one - * bit about old IE, so we don't need any hacks for that in here. - * - * There are probably other things we could remove here, as well. - * - * normalize.css v2.1.2 | MIT License | git.io/normalize - - * Eric Meyer's Reset CSS v2.0 (http://meyerweb.com/eric/tools/css/reset/) - * http://cssreset.com - */ -html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, i, u, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, fieldset, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video { - margin: 0; - padding: 0; - border: 0; - vertical-align: baseline; - font: inherit; - font-size: 100%; } - -ol, ul { - list-style: none; } - -blockquote, q { - quotes: none; } - -blockquote:before, blockquote:after, q:before, q:after { - content: ''; - content: none; } - -/** - * Prevent modern browsers from displaying `audio` without controls. - * Remove excess height in iOS 5 devices. - */ -audio:not([controls]) { - display: none; - height: 0; } - -/** - * Hide the `template` element in IE, Safari, and Firefox < 22. - */ -[hidden], template { - display: none; } - -script { - display: none !important; } - -/* ========================================================================== - Base - ========================================================================== */ -/** - * 1. Set default font family to sans-serif. - * 2. Prevent iOS text size adjust after orientation change, without disabling - * user zoom. - */ -html { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - font-family: sans-serif; - /* 1 */ - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100%; - /* 2 */ - -webkit-text-size-adjust: 100%; - /* 2 */ } - -/** - * Remove default margin. - */ -body { - margin: 0; - line-height: 1; } - -/** - * Remove default outlines. - */ -a, button, :focus, a:focus, button:focus, a:active, a:hover { - outline: 0; } - -/* * - * Remove tap highlight color - */ -a { - -webkit-user-drag: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-tap-highlight-color: transparent; } - a[href]:hover { - cursor: pointer; } - -/* ========================================================================== - Typography - ========================================================================== */ -/** - * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome. - */ -b, strong { - font-weight: bold; } - -/** - * Address styling not present in Safari 5 and Chrome. - */ -dfn { - font-style: italic; } - -/** - * Address differences between Firefox and other browsers. - */ -hr { - -moz-box-sizing: content-box; - box-sizing: content-box; - height: 0; } - -/** - * Correct font family set oddly in Safari 5 and Chrome. - */ -code, kbd, pre, samp { - font-size: 1em; - font-family: monospace, serif; } - -/** - * Improve readability of pre-formatted text in all browsers. - */ -pre { - white-space: pre-wrap; } - -/** - * Set consistent quote types. - */ -q { - quotes: "\201C" "\201D" "\2018" "\2019"; } - -/** - * Address inconsistent and variable font size in all browsers. - */ -small { - font-size: 80%; } - -/** - * Prevent `sub` and `sup` affecting `line-height` in all browsers. - */ -sub, sup { - position: relative; - vertical-align: baseline; - font-size: 75%; - line-height: 0; } - -sup { - top: -0.5em; } - -sub { - bottom: -0.25em; } - -/** - * Define consistent border, margin, and padding. - */ -fieldset { - margin: 0 2px; - padding: 0.35em 0.625em 0.75em; - border: 1px solid #c0c0c0; } - -/** - * 1. Correct `color` not being inherited in IE 8/9. - * 2. Remove padding so people aren't caught out if they zero out fieldsets. - */ -legend { - padding: 0; - /* 2 */ - border: 0; - /* 1 */ } - -/** - * 1. Correct font family not being inherited in all browsers. - * 2. Correct font size not being inherited in all browsers. - * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome. - * 4. Remove any default :focus styles - * 5. Make sure webkit font smoothing is being inherited - * 6. Remove default gradient in Android Firefox / FirefoxOS - */ -button, input, select, textarea { - margin: 0; - /* 3 */ - font-size: 100%; - /* 2 */ - font-family: inherit; - /* 1 */ - outline-offset: 0; - /* 4 */ - outline-style: none; - /* 4 */ - outline-width: 0; - /* 4 */ - -webkit-font-smoothing: inherit; - /* 5 */ - background-image: none; - /* 6 */ } - -/** - * Address Firefox 4+ setting `line-height` on `input` using `importnt` in - * the UA stylesheet. - */ -button, input { - line-height: normal; } - -/** - * Address inconsistent `text-transform` inheritance for `button` and `select`. - * All other form control elements do not inherit `text-transform` values. - * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+. - * Correct `select` style inheritance in Firefox 4+ and Opera. - */ -button, select { - text-transform: none; } - -/** - * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` - * and `video` controls. - * 2. Correct inability to style clickable `input` types in iOS. - * 3. Improve usability and consistency of cursor style between image-type - * `input` and others. - */ -button, html input[type="button"], input[type="reset"], input[type="submit"] { - cursor: pointer; - /* 3 */ - -webkit-appearance: button; - /* 2 */ } - -/** - * Re-set default cursor for disabled elements. - */ -button[disabled], html input[disabled] { - cursor: default; } - -/** - * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome. - * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome - * (include `-moz` to future-proof). - */ -input[type="search"] { - -webkit-box-sizing: content-box; - /* 2 */ - -moz-box-sizing: content-box; - box-sizing: content-box; - -webkit-appearance: textfield; - /* 1 */ } - -/** - * Remove inner padding and search cancel button in Safari 5 and Chrome - * on OS X. - */ -input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; } - -/** - * Remove inner padding and border in Firefox 4+. - */ -button::-moz-focus-inner, input::-moz-focus-inner { - padding: 0; - border: 0; } - -/** - * 1. Remove default vertical scrollbar in IE 8/9. - * 2. Improve readability and alignment in all browsers. - */ -textarea { - overflow: auto; - /* 1 */ - vertical-align: top; - /* 2 */ } - -img { - -webkit-user-drag: none; } - -/* ========================================================================== - Tables - ========================================================================== */ -/** - * Remove most spacing between table cells. - */ -table { - border-spacing: 0; - border-collapse: collapse; } - -/** - * Scaffolding - * -------------------------------------------------- - */ -*, *:before, *:after { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - -html { - overflow: hidden; - -ms-touch-action: pan-y; - touch-action: pan-y; } - -body, .ionic-body { - -webkit-touch-callout: none; - -webkit-font-smoothing: antialiased; - font-smoothing: antialiased; - -webkit-text-size-adjust: none; - -moz-text-size-adjust: none; - text-size-adjust: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-tap-highlight-color: transparent; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - top: 0; - right: 0; - bottom: 0; - left: 0; - overflow: hidden; - margin: 0; - padding: 0; - color: #000; - word-wrap: break-word; - font-size: 14px; - font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; - line-height: 20px; - text-rendering: optimizeLegibility; - -webkit-backface-visibility: hidden; - -webkit-user-drag: none; } - -body.grade-b, body.grade-c { - text-rendering: auto; } - -.content { - position: relative; } - -.scroll-content { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - overflow: hidden; - margin-top: -1px; - padding-top: 1px; - width: auto; - height: auto; } - -.scroll-content-false, .menu .scroll-content.scroll-content-false { - z-index: 11; } - -.scroll-view { - position: relative; - display: block; - overflow: hidden; - margin-top: -1px; } - -/** - * Scroll is the scroll view component available for complex and custom - * scroll view functionality. - */ -.scroll { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-text-size-adjust: none; - -moz-text-size-adjust: none; - text-size-adjust: none; - -webkit-transform-origin: left top; - -moz-transform-origin: left top; - transform-origin: left top; } - -::-webkit-scrollbar { - display: none; } - -.scroll-bar { - position: absolute; - z-index: 9999; } - -.ng-animate .scroll-bar { - visibility: hidden; } - -.scroll-bar-h { - right: 2px; - bottom: 3px; - left: 2px; - height: 3px; } - .scroll-bar-h .scroll-bar-indicator { - height: 100%; } - -.scroll-bar-v { - top: 2px; - right: 3px; - bottom: 2px; - width: 3px; } - .scroll-bar-v .scroll-bar-indicator { - width: 100%; } - -.scroll-bar-indicator { - position: absolute; - border-radius: 4px; - background: rgba(0, 0, 0, 0.3); - opacity: 1; - -webkit-transition: opacity 0.3s linear; - -moz-transition: opacity 0.3s linear; - transition: opacity 0.3s linear; } - .scroll-bar-indicator.scroll-bar-fade-out { - opacity: 0; } - -.grade-b .scroll-bar-indicator, .grade-c .scroll-bar-indicator { - border-radius: 0; - background: #aaa; } - .grade-b .scroll-bar-indicator.scroll-bar-fade-out, .grade-c .scroll-bar-indicator.scroll-bar-fade-out { - -webkit-transition: none; - -moz-transition: none; - transition: none; } - -@keyframes refresh-spin { - 0% { - transform: translate3d(0, 0, 0) rotate(0); } - - 100% { - transform: translate3d(0, 0, 0) rotate(180deg); } } - -@-webkit-keyframes refresh-spin { - 0% { - -webkit-transform: translate3d(0, 0, 0) rotate(0); } - - 100% { - -webkit-transform: translate3d(0, 0, 0) rotate(180deg); } } - -@keyframes refresh-spin-back { - 0% { - transform: translate3d(0, 0, 0) rotate(180deg); } - - 100% { - transform: translate3d(0, 0, 0) rotate(0); } } - -@-webkit-keyframes refresh-spin-back { - 0% { - -webkit-transform: translate3d(0, 0, 0) rotate(180deg); } - - 100% { - -webkit-transform: translate3d(0, 0, 0) rotate(0); } } - -.scroll-refresher { - position: absolute; - top: -60px; - right: 0; - left: 0; - overflow: hidden; - margin: auto; - height: 60px; } - .scroll-refresher .ionic-refresher-content { - position: absolute; - bottom: 15px; - left: 0; - width: 100%; - color: #666666; - text-align: center; - font-size: 30px; } - .scroll-refresher .ionic-refresher-content .text-refreshing, .scroll-refresher .ionic-refresher-content .text-pulling { - font-size: 16px; - line-height: 16px; } - .scroll-refresher .ionic-refresher-content.ionic-refresher-with-text { - bottom: 10px; } - .scroll-refresher .icon-refreshing, .scroll-refresher .icon-pulling { - width: 100%; - -webkit-backface-visibility: hidden; - -webkit-transform-style: preserve-3d; - backface-visibility: hidden; - transform-style: preserve-3d; } - .scroll-refresher .icon-pulling { - -webkit-animation-name: refresh-spin-back; - -moz-animation-name: refresh-spin-back; - animation-name: refresh-spin-back; - -webkit-animation-duration: 200ms; - -moz-animation-duration: 200ms; - animation-duration: 200ms; - -webkit-animation-timing-function: linear; - -moz-animation-timing-function: linear; - animation-timing-function: linear; - -webkit-animation-fill-mode: none; - -moz-animation-fill-mode: none; - animation-fill-mode: none; - -webkit-transform: translate3d(0, 0, 0) rotate(0deg); - transform: translate3d(0, 0, 0) rotate(0deg); } - .scroll-refresher .icon-refreshing, .scroll-refresher .text-refreshing { - display: none; } - .scroll-refresher .icon-refreshing { - -webkit-animation-duration: 1.5s; - -moz-animation-duration: 1.5s; - animation-duration: 1.5s; } - .scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled) { - -webkit-animation-name: refresh-spin; - -moz-animation-name: refresh-spin; - animation-name: refresh-spin; - -webkit-transform: translate3d(0, 0, 0) rotate(-180deg); - transform: translate3d(0, 0, 0) rotate(-180deg); } - .scroll-refresher.active.refreshing { - -webkit-transition: transform 0.2s; - -moz-transition: transform 0.2s; - transition: transform 0.2s; - -webkit-transition: -webkit-transform 0.2s; - -moz-transition: -webkit-transform 0.2s; - transition: -webkit-transform 0.2s; - -webkit-transform: scale(1, 1); - transform: scale(1, 1); } - .scroll-refresher.active.refreshing .icon-pulling, .scroll-refresher.active.refreshing .text-pulling { - display: none; } - .scroll-refresher.active.refreshing .icon-refreshing, .scroll-refresher.active.refreshing .text-refreshing { - display: block; } - .scroll-refresher.active.refreshing.refreshing-tail { - -webkit-transform: scale(0, 0); - transform: scale(0, 0); } - -ion-infinite-scroll { - height: 60px; - width: 100%; - opacity: 0; - display: block; - -webkit-transition: opacity 0.25s; - -moz-transition: opacity 0.25s; - transition: opacity 0.25s; - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-direction: normal; - -webkit-box-orient: horizontal; - -webkit-flex-direction: row; - -moz-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - -moz-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; } - ion-infinite-scroll .icon { - color: #666666; - font-size: 30px; - color: #666666; } - ion-infinite-scroll.active { - opacity: 1; } - -.overflow-scroll { - overflow-x: hidden; - overflow-y: scroll; - -webkit-overflow-scrolling: touch; - top: 0; - right: 0; - bottom: 0; - left: 0; - position: absolute; } - .overflow-scroll .scroll { - position: static; - height: 100%; - -webkit-transform: translate3d(0, 0, 0); } - -/* If you change these, change platform.scss as well */ -.has-header { - top: 44px; } - -.no-header { - top: 0; } - -.has-subheader { - top: 88px; } - -.has-tabs-top { - top: 93px; } - -.has-header.has-subheader.has-tabs-top { - top: 137px; } - -.has-footer { - bottom: 44px; } - -.has-subfooter { - bottom: 88px; } - -.has-tabs, .bar-footer.has-tabs { - bottom: 49px; } - -.has-footer.has-tabs { - bottom: 93px; } - -.pane { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - z-index: 1; } - -.view { - z-index: 1; } - -.pane, .view { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - width: 100%; - height: 100%; - background-color: #fff; - overflow: hidden; } - -ion-nav-view { - position: absolute; - top: 0; - left: 0; - width: 100%; - height: 100%; - background-color: #000; } - -/** - * Typography - * -------------------------------------------------- - */ -p { - margin: 0 0 10px; } - -small { - font-size: 85%; } - -cite { - font-style: normal; } - -.text-left { - text-align: left; } - -.text-right { - text-align: right; } - -.text-center { - text-align: center; } - -h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 { - color: #000; - font-weight: 500; - font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; - line-height: 1.2; } - h1 small, h2 small, h3 small, h4 small, h5 small, h6 small, .h1 small, .h2 small, .h3 small, .h4 small, .h5 small, .h6 small { - font-weight: normal; - line-height: 1; } - -h1, .h1, h2, .h2, h3, .h3 { - margin-top: 20px; - margin-bottom: 10px; } - h1:first-child, .h1:first-child, h2:first-child, .h2:first-child, h3:first-child, .h3:first-child { - margin-top: 0; } - h1 + h1, h1 + .h1, h1 + h2, h1 + .h2, h1 + h3, h1 + .h3, .h1 + h1, .h1 + .h1, .h1 + h2, .h1 + .h2, .h1 + h3, .h1 + .h3, h2 + h1, h2 + .h1, h2 + h2, h2 + .h2, h2 + h3, h2 + .h3, .h2 + h1, .h2 + .h1, .h2 + h2, .h2 + .h2, .h2 + h3, .h2 + .h3, h3 + h1, h3 + .h1, h3 + h2, h3 + .h2, h3 + h3, h3 + .h3, .h3 + h1, .h3 + .h1, .h3 + h2, .h3 + .h2, .h3 + h3, .h3 + .h3 { - margin-top: 10px; } - -h4, .h4, h5, .h5, h6, .h6 { - margin-top: 10px; - margin-bottom: 10px; } - -h1, .h1 { - font-size: 36px; } - -h2, .h2 { - font-size: 30px; } - -h3, .h3 { - font-size: 24px; } - -h4, .h4 { - font-size: 18px; } - -h5, .h5 { - font-size: 14px; } - -h6, .h6 { - font-size: 12px; } - -h1 small, .h1 small { - font-size: 24px; } - -h2 small, .h2 small { - font-size: 18px; } - -h3 small, .h3 small, h4 small, .h4 small { - font-size: 14px; } - -dl { - margin-bottom: 20px; } - -dt, dd { - line-height: 1.42857; } - -dt { - font-weight: bold; } - -blockquote { - margin: 0 0 20px; - padding: 10px 20px; - border-left: 5px solid gray; } - blockquote p { - font-weight: 300; - font-size: 17.5px; - line-height: 1.25; } - blockquote p:last-child { - margin-bottom: 0; } - blockquote small { - display: block; - line-height: 1.42857; } - blockquote small:before { - content: '\2014 \00A0'; } - -q:before, q:after, blockquote:before, blockquote:after { - content: ""; } - -address { - display: block; - margin-bottom: 20px; - font-style: normal; - line-height: 1.42857; } - -a.subdued { - padding-right: 10px; - color: #888; - text-decoration: none; } - a.subdued:hover { - text-decoration: none; } - a.subdued:last-child { - padding-right: 0; } - -/** - * Action Sheets - * -------------------------------------------------- - */ -.action-sheet-backdrop { - -webkit-transition: background-color 300ms ease-in-out; - -moz-transition: background-color 300ms ease-in-out; - transition: background-color 300ms ease-in-out; - position: fixed; - top: 0; - left: 0; - z-index: 11; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0); } - .action-sheet-backdrop.active { - background-color: rgba(0, 0, 0, 0.5); } - -.action-sheet-wrapper { - -webkit-transform: translate3d(0, 100%, 0); - -moz-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); - -webkit-transition: all ease-in-out 300ms; - -moz-transition: all ease-in-out 300ms; - transition: all ease-in-out 300ms; - position: absolute; - bottom: 0; - width: 100%; } - -.action-sheet-up { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - -.action-sheet { - margin-left: 15px; - margin-right: 15px; - width: auto; - z-index: 11; - overflow: hidden; } - .action-sheet .button { - display: block; - padding: 1px; - width: 100%; - border-radius: 0; - background-color: transparent; - color: #4a87ee; - font-size: 18px; } - .action-sheet .button.destructive { - color: #ef4e3a; } - -.action-sheet-title { - padding: 10px; - color: #666666; - text-align: center; - font-size: 12px; } - -.action-sheet-group { - margin-bottom: 5px; - border-radius: 3px 3px 3px 3px; - background-color: #fff; } - .action-sheet-group .button { - border-width: 1px 0px 0px 0px; - border-radius: 0; } - .action-sheet-group .button.active { - background-color: transparent; - color: inherit; } - .action-sheet-group .button:first-child:last-child { - border-width: 0; } - -.action-sheet-open { - pointer-events: none; } - .action-sheet-open.modal-open .modal { - pointer-events: none; } - .action-sheet-open .action-sheet-backdrop { - pointer-events: auto; } - -.backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 11; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0.4); - visibility: hidden; - opacity: 0; - -webkit-transition: 0.1s opacity linear; - -moz-transition: 0.1s opacity linear; - transition: 0.1s opacity linear; } - .backdrop.visible { - visibility: visible; } - .backdrop.active { - opacity: 1; } - -/** - * Bar (Headers and Footers) - * -------------------------------------------------- - */ -.bar { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - position: absolute; - right: 0; - left: 0; - z-index: 10; - box-sizing: border-box; - padding: 5px; - width: 100%; - height: 44px; - border-width: 0; - border-style: solid; - border-top: 1px solid transparent; - border-bottom: 1px solid #ddd; - background-color: white; - /* border-width: 1px will actually create 2 device pixels on retina */ - /* this nifty trick sets an actual 1px border on hi-res displays */ - background-size: 0; } - @media (min--moz-device-pixel-ratio: 1.5), (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { - .bar { - border: none; - background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); - background-position: bottom; - background-size: 100% 1px; - background-repeat: no-repeat; } } - .bar.bar-clear { - border: none; - background: none; - color: #fff; } - .bar.bar-clear .button { - color: #fff; } - .bar.bar-clear .title { - color: #fff; } - .bar.item-input-inset .item-input-wrapper { - margin-top: -1px; } - .bar.item-input-inset .item-input-wrapper input { - padding-left: 8px; - width: 94%; - height: 28px; - background: transparent; } - .bar.bar-light { - border-color: #ddd; - background-color: white; - background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); - color: #444; } - .bar.bar-light .title { - color: #444; } - .bar.bar-light.bar-footer { - background-image: linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%); } - .bar.bar-stable { - border-color: #b2b2b2; - background-color: #f8f8f8; - background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); - color: #444; } - .bar.bar-stable .title { - color: #444; } - .bar.bar-stable.bar-footer { - background-image: linear-gradient(180deg, #b2b2b2, #b2b2b2 50%, transparent 50%); } - .bar.bar-positive { - border-color: #145fd7; - background-color: #4a87ee; - background-image: linear-gradient(0deg, #145fd7, #145fd7 50%, transparent 50%); - color: #fff; } - .bar.bar-positive .title { - color: #fff; } - .bar.bar-positive.bar-footer { - background-image: linear-gradient(180deg, #145fd7, #145fd7 50%, transparent 50%); } - .bar.bar-calm { - border-color: #1aacc3; - background-color: #43cee6; - background-image: linear-gradient(0deg, #1aacc3, #1aacc3 50%, transparent 50%); - color: #fff; } - .bar.bar-calm .title { - color: #fff; } - .bar.bar-calm.bar-footer { - background-image: linear-gradient(180deg, #1aacc3, #1aacc3 50%, transparent 50%); } - .bar.bar-assertive { - border-color: #cc2311; - background-color: #ef4e3a; - background-image: linear-gradient(0deg, #cc2311, #cc2311 50%, transparent 50%); - color: #fff; } - .bar.bar-assertive .title { - color: #fff; } - .bar.bar-assertive.bar-footer { - background-image: linear-gradient(180deg, #cc2311, #cc2311 50%, transparent 50%); } - .bar.bar-balanced { - border-color: #498f24; - background-color: #66cc33; - background-image: linear-gradient(0deg, #498f24, #498f24 50%, transparent 50%); - color: #fff; } - .bar.bar-balanced .title { - color: #fff; } - .bar.bar-balanced.bar-footer { - background-image: linear-gradient(180deg, #498f24, #145fd7 50%, transparent 50%); } - .bar.bar-energized { - border-color: #d39211; - background-color: #f0b840; - background-image: linear-gradient(0deg, #d39211, #d39211 50%, transparent 50%); - color: #fff; } - .bar.bar-energized .title { - color: #fff; } - .bar.bar-energized.bar-footer { - background-image: linear-gradient(180deg, #d39211, #d39211 50%, transparent 50%); } - .bar.bar-royal { - border-color: #552bdf; - background-color: #8a6de9; - background-image: linear-gradient(0deg, #552bdf, #552bdf 50%, transparent 50%); - color: #fff; } - .bar.bar-royal .title { - color: #fff; } - .bar.bar-royal.bar-footer { - background-image: linear-gradient(180deg, #552bdf, #552bdf 50%, transparent 50%); } - .bar.bar-dark { - border-color: #111; - background-color: #444444; - background-image: linear-gradient(0deg, #111, #111 50%, transparent 50%); - color: #fff; } - .bar.bar-dark .title { - color: #fff; } - .bar.bar-dark.bar-footer { - background-image: linear-gradient(180deg, #111, #111 50%, transparent 50%); } - .bar .title { - position: absolute; - top: 0; - right: 0; - left: 0; - z-index: 0; - overflow: hidden; - margin: 0 10px; - min-width: 30px; - height: 43px; - text-align: center; - text-overflow: ellipsis; - white-space: nowrap; - font-size: 17px; - line-height: 44px; } - .bar .title.title-left { - text-align: left; } - .bar .title.title-right { - text-align: right; } - .bar .title a { - color: inherit; } - .bar .button { - z-index: 1; - padding: 0 8px; - min-width: initial; - min-height: 31px; - font-weight: 400; - font-size: 13px; - line-height: 32px; } - .bar .button.button-icon:before, .bar .button .icon:before, .bar .button.icon:before, .bar .button.icon-left:before, .bar .button.icon-right:before { - padding-right: 2px; - padding-left: 2px; - font-size: 20px; - line-height: 32px; } - .bar .button.button-icon { - font-size: 17px; } - .bar .button.button-icon .icon:before, .bar .button.button-icon:before, .bar .button.button-icon.icon-left:before, .bar .button.button-icon.icon-right:before { - vertical-align: top; - font-size: 32px; - line-height: 32px; } - .bar .button.button-clear { - padding-right: 2px; - padding-left: 2px; - font-weight: 300; - font-size: 17px; } - .bar .button.button-clear .icon:before, .bar .button.button-clear.icon:before, .bar .button.button-clear.icon-left:before, .bar .button.button-clear.icon-right:before { - font-size: 32px; - line-height: 32px; } - .bar .button.back-button { - padding: 0; - opacity: 0.8; } - .bar .button.back-button .back-button-title { - display: inline-block; - vertical-align: middle; - margin-left: 4px; } - .bar .button.back-button.active, .bar .button.back-button.activated { - opacity: 1; } - .bar .button-bar > .button, .bar .buttons > .button { - min-height: 31px; - line-height: 32px; } - .bar .button-bar + .button, .bar .button + .button-bar { - margin-left: 5px; } - .bar .buttons, .bar .buttons.left-buttons, .bar .buttons.right-buttons { - display: inherit; } - .bar .buttons span { - display: inline-flex; } - .bar .title + .button:last-child, .bar > .button + .button:last-child, .bar > .button.pull-right, .bar .buttons.pull-right, .bar .title + .buttons { - position: absolute; - top: 5px; - right: 5px; - bottom: 5px; } - -.bar-light .button { - border-color: #ddd; - background-color: white; - color: #444; } - .bar-light .button:hover { - color: #444; - text-decoration: none; } - .bar-light .button.active, .bar-light .button.activated { - border-color: #ccc; - background-color: #fafafa; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-light .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #444; - font-size: 17px; } - .bar-light .button.button-icon { - border-color: transparent; - background: none; } - -.bar-stable .button { - border-color: #b2b2b2; - background-color: #f8f8f8; - color: #444; } - .bar-stable .button:hover { - color: #444; - text-decoration: none; } - .bar-stable .button.active, .bar-stable .button.activated { - border-color: #a2a2a2; - background-color: #e5e5e5; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-stable .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #444; - font-size: 17px; } - .bar-stable .button.button-icon { - border-color: transparent; - background: none; } - -.bar-positive .button { - border-color: #145fd7; - background-color: #4a87ee; - color: #fff; } - .bar-positive .button:hover { - color: #fff; - text-decoration: none; } - .bar-positive .button.active, .bar-positive .button.activated { - border-color: #145fd7; - background-color: #145fd7; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-positive .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-positive .button.button-icon { - border-color: transparent; - background: none; } - -.bar-calm .button { - border-color: #1aacc3; - background-color: #43cee6; - color: #fff; } - .bar-calm .button:hover { - color: #fff; - text-decoration: none; } - .bar-calm .button.active, .bar-calm .button.activated { - border-color: #1aacc3; - background-color: #1aacc3; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-calm .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-calm .button.button-icon { - border-color: transparent; - background: none; } - -.bar-assertive .button { - border-color: #cc2311; - background-color: #ef4e3a; - color: #fff; } - .bar-assertive .button:hover { - color: #fff; - text-decoration: none; } - .bar-assertive .button.active, .bar-assertive .button.activated { - border-color: #cc2311; - background-color: #cc2311; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-assertive .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-assertive .button.button-icon { - border-color: transparent; - background: none; } - -.bar-balanced .button { - border-color: #498f24; - background-color: #66cc33; - color: #fff; } - .bar-balanced .button:hover { - color: #fff; - text-decoration: none; } - .bar-balanced .button.active, .bar-balanced .button.activated { - border-color: #498f24; - background-color: #498f24; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-balanced .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-balanced .button.button-icon { - border-color: transparent; - background: none; } - -.bar-energized .button { - border-color: #d39211; - background-color: #f0b840; - color: #fff; } - .bar-energized .button:hover { - color: #fff; - text-decoration: none; } - .bar-energized .button.active, .bar-energized .button.activated { - border-color: #d39211; - background-color: #d39211; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-energized .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-energized .button.button-icon { - border-color: transparent; - background: none; } - -.bar-royal .button { - border-color: #552bdf; - background-color: #8a6de9; - color: #fff; } - .bar-royal .button:hover { - color: #fff; - text-decoration: none; } - .bar-royal .button.active, .bar-royal .button.activated { - border-color: #552bdf; - background-color: #552bdf; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-royal .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-royal .button.button-icon { - border-color: transparent; - background: none; } - -.bar-dark .button { - border-color: #111; - background-color: #444444; - color: #fff; } - .bar-dark .button:hover { - color: #fff; - text-decoration: none; } - .bar-dark .button.active, .bar-dark .button.activated { - border-color: #000; - background-color: #262626; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .bar-dark .button.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #fff; - font-size: 17px; } - .bar-dark .button.button-icon { - border-color: transparent; - background: none; } - -.bar-header { - top: 0; - border-top-width: 0; - border-bottom-width: 1px; } - .bar-header.has-tabs-top { - border-bottom-width: 0px; } - -.bar-footer { - bottom: 0; - border-top-width: 1px; - border-bottom-width: 0; - background-position: top; } - .bar-footer.item-input-inset { - position: absolute; } - -.bar-tabs { - padding: 0; } - -.bar-subheader { - top: 44px; - display: block; } - -.bar-subfooter { - bottom: 44px; - display: block; } - -/** - * Tabs - * -------------------------------------------------- - * A navigation bar with any number of tab items supported. - */ -.tabs { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-direction: normal; - -webkit-box-orient: horizontal; - -webkit-flex-direction: horizontal; - -moz-flex-direction: horizontal; - -ms-flex-direction: horizontal; - flex-direction: horizontal; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - -moz-justify-content: center; - justify-content: center; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - border-color: #b2b2b2; - background-color: #f8f8f8; - background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); - color: #444; - position: absolute; - bottom: 0; - z-index: 5; - width: 100%; - height: 49px; - border-style: solid; - border-top-width: 1px; - background-size: 0; - line-height: 49px; } - .tabs .tab-item .badge { - background-color: #444; - color: #f8f8f8; } - @media (min--moz-device-pixel-ratio: 1.5), (-webkit-min-device-pixel-ratio: 1.5), (min-device-pixel-ratio: 1.5), (min-resolution: 144dpi), (min-resolution: 1.5dppx) { - .tabs { - padding-top: 2px; - border-top: none !important; - border-bottom: none; - background-position: top; - background-size: 100% 1px; - background-repeat: no-repeat; } } - -/* Allow parent element of tabs to define color, or just the tab itself */ -.tabs-light > .tabs, .tabs.tabs-light { - border-color: #ddd; - background-color: #fff; - background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%); - color: #444; } - .tabs-light > .tabs .tab-item .badge, .tabs.tabs-light .tab-item .badge { - background-color: #444; - color: #fff; } - -.tabs-stable > .tabs, .tabs.tabs-stable { - border-color: #b2b2b2; - background-color: #f8f8f8; - background-image: linear-gradient(0deg, #b2b2b2, #b2b2b2 50%, transparent 50%); - color: #444; } - .tabs-stable > .tabs .tab-item .badge, .tabs.tabs-stable .tab-item .badge { - background-color: #444; - color: #f8f8f8; } - -.tabs-positive > .tabs, .tabs.tabs-positive { - border-color: #145fd7; - background-color: #4a87ee; - background-image: linear-gradient(0deg, #145fd7, #145fd7 50%, transparent 50%); - color: #fff; } - .tabs-positive > .tabs .tab-item .badge, .tabs.tabs-positive .tab-item .badge { - background-color: #fff; - color: #4a87ee; } - -.tabs-calm > .tabs, .tabs.tabs-calm { - border-color: #1aacc3; - background-color: #43cee6; - background-image: linear-gradient(0deg, #1aacc3, #1aacc3 50%, transparent 50%); - color: #fff; } - .tabs-calm > .tabs .tab-item .badge, .tabs.tabs-calm .tab-item .badge { - background-color: #fff; - color: #43cee6; } - -.tabs-assertive > .tabs, .tabs.tabs-assertive { - border-color: #cc2311; - background-color: #ef4e3a; - background-image: linear-gradient(0deg, #cc2311, #cc2311 50%, transparent 50%); - color: #fff; } - .tabs-assertive > .tabs .tab-item .badge, .tabs.tabs-assertive .tab-item .badge { - background-color: #fff; - color: #ef4e3a; } - -.tabs-balanced > .tabs, .tabs.tabs-balanced { - border-color: #498f24; - background-color: #66cc33; - background-image: linear-gradient(0deg, #498f24, #498f24 50%, transparent 50%); - color: #fff; } - .tabs-balanced > .tabs .tab-item .badge, .tabs.tabs-balanced .tab-item .badge { - background-color: #fff; - color: #66cc33; } - -.tabs-energized > .tabs, .tabs.tabs-energized { - border-color: #d39211; - background-color: #f0b840; - background-image: linear-gradient(0deg, #d39211, #d39211 50%, transparent 50%); - color: #fff; } - .tabs-energized > .tabs .tab-item .badge, .tabs.tabs-energized .tab-item .badge { - background-color: #fff; - color: #f0b840; } - -.tabs-royal > .tabs, .tabs.tabs-royal { - border-color: #552bdf; - background-color: #8a6de9; - background-image: linear-gradient(0deg, #552bdf, #552bdf 50%, transparent 50%); - color: #fff; } - .tabs-royal > .tabs .tab-item .badge, .tabs.tabs-royal .tab-item .badge { - background-color: #fff; - color: #8a6de9; } - -.tabs-dark > .tabs, .tabs.tabs-dark { - border-color: #111; - background-color: #444; - background-image: linear-gradient(0deg, #111, #111 50%, transparent 50%); - color: #fff; } - .tabs-dark > .tabs .tab-item .badge, .tabs.tabs-dark .tab-item .badge { - background-color: #fff; - color: #444; } - -.tabs-striped .tabs { - background-color: white; - background-image: none; - border: none; - box-shadow: 0 2px 3px rgba(0, 0, 0, 0.15); - padding-top: 2px; } -.tabs-striped .tab-item.tab-item-active, .tabs-striped .tab-item.active, .tabs-striped .tab-item.activated { - margin-top: -2px; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #444; } -.tabs-striped.tabs-light .tabs { - background-color: #444; } -.tabs-striped.tabs-light .tab-item { - color: rgba(255, 255, 255, 0.4); - opacity: 1; } - .tabs-striped.tabs-light .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-light .tab-item.tab-item-active, .tabs-striped.tabs-light .tab-item.active, .tabs-striped.tabs-light .tab-item.activated { - margin-top: -2px; - color: #fff; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #fff; } - .tabs-striped.tabs-light .tab-item.tab-item-active .badge, .tabs-striped.tabs-light .tab-item.active .badge, .tabs-striped.tabs-light .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-stable .tabs { - background-color: #444; } -.tabs-striped.tabs-stable .tab-item { - color: rgba(248, 248, 248, 0.4); - opacity: 1; } - .tabs-striped.tabs-stable .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-stable .tab-item.tab-item-active, .tabs-striped.tabs-stable .tab-item.active, .tabs-striped.tabs-stable .tab-item.activated { - margin-top: -2px; - color: #f8f8f8; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #f8f8f8; } - .tabs-striped.tabs-stable .tab-item.tab-item-active .badge, .tabs-striped.tabs-stable .tab-item.active .badge, .tabs-striped.tabs-stable .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-positive .tabs { - background-color: #fff; } -.tabs-striped.tabs-positive .tab-item { - color: rgba(74, 135, 238, 0.4); - opacity: 1; } - .tabs-striped.tabs-positive .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-positive .tab-item.tab-item-active, .tabs-striped.tabs-positive .tab-item.active, .tabs-striped.tabs-positive .tab-item.activated { - margin-top: -2px; - color: #4a87ee; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #4a87ee; } - .tabs-striped.tabs-positive .tab-item.tab-item-active .badge, .tabs-striped.tabs-positive .tab-item.active .badge, .tabs-striped.tabs-positive .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-calm .tabs { - background-color: #fff; } -.tabs-striped.tabs-calm .tab-item { - color: rgba(67, 206, 230, 0.4); - opacity: 1; } - .tabs-striped.tabs-calm .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-calm .tab-item.tab-item-active, .tabs-striped.tabs-calm .tab-item.active, .tabs-striped.tabs-calm .tab-item.activated { - margin-top: -2px; - color: #43cee6; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #43cee6; } - .tabs-striped.tabs-calm .tab-item.tab-item-active .badge, .tabs-striped.tabs-calm .tab-item.active .badge, .tabs-striped.tabs-calm .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-assertive .tabs { - background-color: #fff; } -.tabs-striped.tabs-assertive .tab-item { - color: rgba(239, 78, 58, 0.4); - opacity: 1; } - .tabs-striped.tabs-assertive .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-assertive .tab-item.tab-item-active, .tabs-striped.tabs-assertive .tab-item.active, .tabs-striped.tabs-assertive .tab-item.activated { - margin-top: -2px; - color: #ef4e3a; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #ef4e3a; } - .tabs-striped.tabs-assertive .tab-item.tab-item-active .badge, .tabs-striped.tabs-assertive .tab-item.active .badge, .tabs-striped.tabs-assertive .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-balanced .tabs { - background-color: #fff; } -.tabs-striped.tabs-balanced .tab-item { - color: rgba(102, 204, 51, 0.4); - opacity: 1; } - .tabs-striped.tabs-balanced .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-balanced .tab-item.tab-item-active, .tabs-striped.tabs-balanced .tab-item.active, .tabs-striped.tabs-balanced .tab-item.activated { - margin-top: -2px; - color: #66cc33; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #66cc33; } - .tabs-striped.tabs-balanced .tab-item.tab-item-active .badge, .tabs-striped.tabs-balanced .tab-item.active .badge, .tabs-striped.tabs-balanced .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-energized .tabs { - background-color: #fff; } -.tabs-striped.tabs-energized .tab-item { - color: rgba(240, 184, 64, 0.4); - opacity: 1; } - .tabs-striped.tabs-energized .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-energized .tab-item.tab-item-active, .tabs-striped.tabs-energized .tab-item.active, .tabs-striped.tabs-energized .tab-item.activated { - margin-top: -2px; - color: #f0b840; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #f0b840; } - .tabs-striped.tabs-energized .tab-item.tab-item-active .badge, .tabs-striped.tabs-energized .tab-item.active .badge, .tabs-striped.tabs-energized .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-royal .tabs { - background-color: #fff; } -.tabs-striped.tabs-royal .tab-item { - color: rgba(138, 109, 233, 0.4); - opacity: 1; } - .tabs-striped.tabs-royal .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-royal .tab-item.tab-item-active, .tabs-striped.tabs-royal .tab-item.active, .tabs-striped.tabs-royal .tab-item.activated { - margin-top: -2px; - color: #8a6de9; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #8a6de9; } - .tabs-striped.tabs-royal .tab-item.tab-item-active .badge, .tabs-striped.tabs-royal .tab-item.active .badge, .tabs-striped.tabs-royal .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-dark .tabs { - background-color: #fff; } -.tabs-striped.tabs-dark .tab-item { - color: rgba(68, 68, 68, 0.4); - opacity: 1; } - .tabs-striped.tabs-dark .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-dark .tab-item.tab-item-active, .tabs-striped.tabs-dark .tab-item.active, .tabs-striped.tabs-dark .tab-item.activated { - margin-top: -2px; - color: #444; - border-style: solid; - border-width: 2px 0 0 0; - border-color: #444; } - .tabs-striped.tabs-dark .tab-item.tab-item-active .badge, .tabs-striped.tabs-dark .tab-item.active .badge, .tabs-striped.tabs-dark .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-top .tab-item.tab-item-active .badge, .tabs-striped.tabs-top .tab-item.active .badge, .tabs-striped.tabs-top .tab-item.activated .badge { - top: 4%; } -.tabs-striped.tabs-background-light .tabs { - background-color: #fff; } -.tabs-striped.tabs-background-stable .tabs { - background-color: #f8f8f8; } -.tabs-striped.tabs-background-positive .tabs { - background-color: #4a87ee; } -.tabs-striped.tabs-background-calm .tabs { - background-color: #43cee6; } -.tabs-striped.tabs-background-assertive .tabs { - background-color: #ef4e3a; } -.tabs-striped.tabs-background-balanced .tabs { - background-color: #66cc33; } -.tabs-striped.tabs-background-energized .tabs { - background-color: #f0b840; } -.tabs-striped.tabs-background-royal .tabs { - background-color: #8a6de9; } -.tabs-striped.tabs-background-dark .tabs { - background-color: #444; } -.tabs-striped.tabs-color-light .tab-item { - color: rgba(255, 255, 255, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-light .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-light .tab-item.tab-item-active, .tabs-striped.tabs-color-light .tab-item.active, .tabs-striped.tabs-color-light .tab-item.activated { - margin-top: -2px; - color: #fff; - border: 0 solid #fff; - border-top-width: 2px; } - .tabs-striped.tabs-color-light .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-light .tab-item.active .badge, .tabs-striped.tabs-color-light .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-stable .tab-item { - color: rgba(248, 248, 248, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-stable .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-stable .tab-item.tab-item-active, .tabs-striped.tabs-color-stable .tab-item.active, .tabs-striped.tabs-color-stable .tab-item.activated { - margin-top: -2px; - color: #f8f8f8; - border: 0 solid #f8f8f8; - border-top-width: 2px; } - .tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-stable .tab-item.active .badge, .tabs-striped.tabs-color-stable .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-positive .tab-item { - color: rgba(74, 135, 238, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-positive .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-positive .tab-item.tab-item-active, .tabs-striped.tabs-color-positive .tab-item.active, .tabs-striped.tabs-color-positive .tab-item.activated { - margin-top: -2px; - color: #4a87ee; - border: 0 solid #4a87ee; - border-top-width: 2px; } - .tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-positive .tab-item.active .badge, .tabs-striped.tabs-color-positive .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-calm .tab-item { - color: rgba(67, 206, 230, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-calm .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-calm .tab-item.tab-item-active, .tabs-striped.tabs-color-calm .tab-item.active, .tabs-striped.tabs-color-calm .tab-item.activated { - margin-top: -2px; - color: #43cee6; - border: 0 solid #43cee6; - border-top-width: 2px; } - .tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-calm .tab-item.active .badge, .tabs-striped.tabs-color-calm .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-assertive .tab-item { - color: rgba(239, 78, 58, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-assertive .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-assertive .tab-item.tab-item-active, .tabs-striped.tabs-color-assertive .tab-item.active, .tabs-striped.tabs-color-assertive .tab-item.activated { - margin-top: -2px; - color: #ef4e3a; - border: 0 solid #ef4e3a; - border-top-width: 2px; } - .tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-assertive .tab-item.active .badge, .tabs-striped.tabs-color-assertive .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-balanced .tab-item { - color: rgba(102, 204, 51, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-balanced .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-balanced .tab-item.tab-item-active, .tabs-striped.tabs-color-balanced .tab-item.active, .tabs-striped.tabs-color-balanced .tab-item.activated { - margin-top: -2px; - color: #66cc33; - border: 0 solid #66cc33; - border-top-width: 2px; } - .tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-balanced .tab-item.active .badge, .tabs-striped.tabs-color-balanced .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-energized .tab-item { - color: rgba(240, 184, 64, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-energized .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-energized .tab-item.tab-item-active, .tabs-striped.tabs-color-energized .tab-item.active, .tabs-striped.tabs-color-energized .tab-item.activated { - margin-top: -2px; - color: #f0b840; - border: 0 solid #f0b840; - border-top-width: 2px; } - .tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-energized .tab-item.active .badge, .tabs-striped.tabs-color-energized .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-royal .tab-item { - color: rgba(138, 109, 233, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-royal .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-royal .tab-item.tab-item-active, .tabs-striped.tabs-color-royal .tab-item.active, .tabs-striped.tabs-color-royal .tab-item.activated { - margin-top: -2px; - color: #8a6de9; - border: 0 solid #8a6de9; - border-top-width: 2px; } - .tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-royal .tab-item.active .badge, .tabs-striped.tabs-color-royal .tab-item.activated .badge { - top: 2px; - opacity: 1; } -.tabs-striped.tabs-color-dark .tab-item { - color: rgba(68, 68, 68, 0.4); - opacity: 1; } - .tabs-striped.tabs-color-dark .tab-item .badge { - opacity: 0.4; } - .tabs-striped.tabs-color-dark .tab-item.tab-item-active, .tabs-striped.tabs-color-dark .tab-item.active, .tabs-striped.tabs-color-dark .tab-item.activated { - margin-top: -2px; - color: #444; - border: 0 solid #444; - border-top-width: 2px; } - .tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge, .tabs-striped.tabs-color-dark .tab-item.active .badge, .tabs-striped.tabs-color-dark .tab-item.activated .badge { - top: 2px; - opacity: 1; } - -.tabs-top.tabs-striped { - padding-bottom: 0; } - .tabs-top.tabs-striped .tab-item { - background: transparent; - -webkit-transition: all 0.1s ease; - -moz-transition: all 0.1s ease; - -ms-transition: all 0.1s ease; - -o-transition: all 0.1s ease; - transition: all 0.1s ease; } - .tabs-top.tabs-striped .tab-item.tab-item-active, .tabs-top.tabs-striped .tab-item.active, .tabs-top.tabs-striped .tab-item.activated { - margin-top: 0; - margin-bottom: -2px; - border-width: 0px 0px 2px 0px !important; - border-style: solid; } - .tabs-top.tabs-striped .tab-item .badge { - -webkit-transition: all 0.2s ease; - -moz-transition: all 0.2s ease; - -ms-transition: all 0.2s ease; - -o-transition: all 0.2s ease; - transition: all 0.2s ease; } - -/* Allow parent element to have tabs-top */ -/* If you change this, change platform.scss as well */ -.tabs-top > .tabs, .tabs.tabs-top { - top: 44px; - padding-top: 0; - background-position: bottom; } - .tabs-top > .tabs .tab-item.tab-item-active .badge, .tabs-top > .tabs .tab-item.active .badge, .tabs-top > .tabs .tab-item.activated .badge, .tabs.tabs-top .tab-item.tab-item-active .badge, .tabs.tabs-top .tab-item.active .badge, .tabs.tabs-top .tab-item.activated .badge { - top: 4%; } - -.tabs-top ~ .bar-header { - border-bottom-width: 0; } - -.tab-item { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - display: block; - overflow: hidden; - max-width: 150px; - height: 100%; - color: inherit; - text-align: center; - text-decoration: none; - text-overflow: ellipsis; - white-space: nowrap; - font-weight: 400; - font-size: 14px; - font-family: "Helvetica Neue-Light", "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; - opacity: 0.7; } - .tab-item:hover { - cursor: pointer; } - .tab-item.tab-hidden { - display: none; } - -.tabs-item-hide > .tabs, .tabs.tabs-item-hide { - display: none; } - -.tabs-icon-top > .tabs .tab-item, .tabs-icon-top.tabs .tab-item, .tabs-icon-bottom > .tabs .tab-item, .tabs-icon-bottom.tabs .tab-item { - font-size: 12px; - line-height: 14px; } - -.tab-item .icon { - display: block; - margin: 0 auto; - height: 32px; - font-size: 32px; } - -.tabs-icon-left.tabs .tab-item, .tabs-icon-left > .tabs .tab-item, .tabs-icon-right.tabs .tab-item, .tabs-icon-right > .tabs .tab-item { - font-size: 12px; } - .tabs-icon-left.tabs .tab-item .icon, .tabs-icon-left > .tabs .tab-item .icon, .tabs-icon-right.tabs .tab-item .icon, .tabs-icon-right > .tabs .tab-item .icon { - display: inline-block; - vertical-align: top; - margin-top: -0.1em; } - .tabs-icon-left.tabs .tab-item .icon:before, .tabs-icon-left > .tabs .tab-item .icon:before, .tabs-icon-right.tabs .tab-item .icon:before, .tabs-icon-right > .tabs .tab-item .icon:before { - font-size: 24px; - line-height: 49px; } - -.tabs-icon-left > .tabs .tab-item .icon, .tabs-icon-left.tabs .tab-item .icon { - padding-right: 3px; } - -.tabs-icon-right > .tabs .tab-item .icon, .tabs-icon-right.tabs .tab-item .icon { - padding-left: 3px; } - -.tabs-icon-only > .tabs .icon, .tabs-icon-only.tabs .icon { - line-height: inherit; } - -.tab-item.has-badge { - position: relative; } - -.tab-item .badge { - position: absolute; - top: 4%; - right: 33%; - right: calc(50% - 26px); - padding: 1px 6px; - height: auto; - font-size: 12px; - line-height: 16px; } - -/* Navigational tab */ -/* Active state for tab */ -.tab-item.tab-item-active, .tab-item.active, .tab-item.activated { - opacity: 1; } - .tab-item.tab-item-active.tab-item-light, .tab-item.active.tab-item-light, .tab-item.activated.tab-item-light { - color: #fff; } - .tab-item.tab-item-active.tab-item-stable, .tab-item.active.tab-item-stable, .tab-item.activated.tab-item-stable { - color: #f8f8f8; } - .tab-item.tab-item-active.tab-item-positive, .tab-item.active.tab-item-positive, .tab-item.activated.tab-item-positive { - color: #4a87ee; } - .tab-item.tab-item-active.tab-item-calm, .tab-item.active.tab-item-calm, .tab-item.activated.tab-item-calm { - color: #43cee6; } - .tab-item.tab-item-active.tab-item-assertive, .tab-item.active.tab-item-assertive, .tab-item.activated.tab-item-assertive { - color: #ef4e3a; } - .tab-item.tab-item-active.tab-item-balanced, .tab-item.active.tab-item-balanced, .tab-item.activated.tab-item-balanced { - color: #66cc33; } - .tab-item.tab-item-active.tab-item-energized, .tab-item.active.tab-item-energized, .tab-item.activated.tab-item-energized { - color: #f0b840; } - .tab-item.tab-item-active.tab-item-royal, .tab-item.active.tab-item-royal, .tab-item.activated.tab-item-royal { - color: #8a6de9; } - .tab-item.tab-item-active.tab-item-dark, .tab-item.active.tab-item-dark, .tab-item.activated.tab-item-dark { - color: #444; } - -.item.tabs { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - padding: 0; } - .item.tabs .icon:before { - position: relative; } - -.tab-item.disabled, .tab-item[disabled] { - opacity: 0.4; - cursor: default; - pointer-events: none; } - -/** Platform styles **/ -.tab-item.tab-item-android { - border-top: 2px solid inherit; } - -/** - * Menus - * -------------------------------------------------- - * Side panel structure - */ -.menu { - position: absolute; - top: 0; - bottom: 0; - z-index: 0; - overflow: hidden; - min-height: 100%; - max-height: 100%; - width: 275px; - background-color: #fff; } - .menu .scroll-content { - z-index: 10; } - .menu .bar-header { - z-index: 11; } - -.menu-content { - -webkit-transform: none; - -moz-transform: none; - transform: none; - box-shadow: -1px 0px 2px rgba(0, 0, 0, 0.2), 1px 0px 2px rgba(0, 0, 0, 0.2); } - -.menu-open .menu-content .pane, .menu-open .menu-content .scroll-content { - pointer-events: none; } - -.grade-b .menu-content, .grade-c .menu-content { - -webkit-box-sizing: content-box; - -moz-box-sizing: content-box; - box-sizing: content-box; - right: -1px; - left: -1px; - border-right: 1px solid #ccc; - border-left: 1px solid #ccc; - box-shadow: none; } - -.menu-left { - left: 0; } - -.menu-right { - right: 0; } - -.aside-open.aside-resizing .menu-right { - display: none; } - -.menu-animated { - -webkit-transition: -webkit-transform 200ms ease; - -moz-transition: -moz-transform 200ms ease; - transition: transform 200ms ease; } - -/** - * Modals - * -------------------------------------------------- - * Modals are independent windows that slide in from off-screen. - */ -.modal-backdrop { - -webkit-transition: background-color 300ms ease-in-out; - -moz-transition: background-color 300ms ease-in-out; - transition: background-color 300ms ease-in-out; - position: fixed; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0); } - .modal-backdrop.active { - background-color: rgba(0, 0, 0, 0.5); } - -.modal { - display: block; - position: absolute; - top: 0; - z-index: 10; - overflow: hidden; - min-height: 100%; - width: 100%; - background-color: #fff; } - -@media (min-width: 680px) { - .modal { - top: 20%; - right: 20%; - bottom: 20%; - left: 20%; - overflow: visible; - min-height: 240px; - width: 60%; } - .modal.ng-leave-active { - bottom: 0; } - .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) { - height: 44px; } - .platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader) > * { - margin-top: 0; } - .platform-ios.platform-cordova .modal-wrapper .modal .tabs-top > .tabs, .platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top { - top: 44px; } - .platform-ios.platform-cordova .modal-wrapper .modal .has-header, .platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader { - top: 44px; } - .platform-ios.platform-cordova .modal-wrapper .modal .has-subheader { - top: 88px; } - .platform-ios.platform-cordova .modal-wrapper .modal .has-tabs-top { - top: 93px; } - .platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top { - top: 137px; } } - -.modal-open { - pointer-events: none; } - .modal-open .modal, .modal-open .modal-backdrop { - pointer-events: auto; } - .modal-open.loading-active .modal, .modal-open.loading-active .modal-backdrop { - pointer-events: none; } - -/** - * Popovers - * -------------------------------------------------- - * Popovers are independent views which float over content - */ -.popover-backdrop { - position: fixed; - top: 0; - left: 0; - z-index: 10; - width: 100%; - height: 100%; - background-color: rgba(0, 0, 0, 0); } - .popover-backdrop.active { - background-color: rgba(0, 0, 0, 0.1); } - -.popover { - position: absolute; - top: 25%; - left: 50%; - z-index: 10; - display: block; - margin-top: 12px; - margin-left: -110px; - height: 280px; - width: 220px; - background-color: #fff; - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.4); - opacity: 0; } - .popover .item:first-child { - border-top: 0; } - .popover .item:last-child { - border-bottom: 0; } - .popover.popover-bottom { - margin-top: -12px; } - -.popover, .popover .bar-header { - border-radius: 2px; } - -.popover .scroll-content { - z-index: 1; - margin: 2px 0; } - -.popover .bar-header { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; } - -.popover .has-header { - border-top-right-radius: 0; - border-top-left-radius: 0; } - -.popover-arrow { - display: none; } - -.platform-ios .popover { - box-shadow: 0 0 40px rgba(0, 0, 0, 0.08); } -.platform-ios .popover, .platform-ios .popover .bar-header { - border-radius: 10px; } -.platform-ios .popover .scroll-content { - margin: 8px 0; - border-radius: 10px; } -.platform-ios .popover .scroll-content.has-header { - margin-top: 0; } -.platform-ios .popover-arrow { - position: absolute; - display: block; - top: -17px; - width: 30px; - height: 19px; - overflow: hidden; } - .platform-ios .popover-arrow:after { - position: absolute; - top: 12px; - left: 5px; - width: 20px; - height: 20px; - background-color: #fff; - border-radius: 3px; - content: ''; - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - transform: rotate(-45deg); } -.platform-ios .popover-bottom .popover-arrow { - top: auto; - bottom: -10px; } - .platform-ios .popover-bottom .popover-arrow:after { - top: -6px; } - -.platform-android .popover { - margin-top: -32px; - background-color: #fafafa; - box-shadow: 0 2px 6px rgba(0, 0, 0, 0.35); } - .platform-android .popover .item { - border-color: #fafafa; - background-color: #fafafa; - color: #4d4d4d; } - .platform-android .popover.popover-bottom { - margin-top: 32px; } -.platform-android .popover-backdrop, .platform-android .popover-backdrop.active { - background-color: transparent; } - -.popover-open { - pointer-events: none; } - .popover-open .popover, .popover-open .popover-backdrop { - pointer-events: auto; } - .popover-open.loading-active .popover, .popover-open.loading-active .popover-backdrop { - pointer-events: none; } - -@media (min-width: 680px) { - .popover { - width: 360px; } } - -/** - * Popups - * -------------------------------------------------- - */ -.popup-container { - position: absolute; - top: 0; - left: 0; - bottom: 0; - right: 0; - background: rgba(0, 0, 0, 0); - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - -moz-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - z-index: 12; - visibility: hidden; } - .popup-container.popup-showing { - visibility: visible; } - .popup-container.popup-hidden .popup { - -webkit-animation-name: scaleOut; - -moz-animation-name: scaleOut; - animation-name: scaleOut; - -webkit-animation-duration: 0.1s; - -moz-animation-duration: 0.1s; - animation-duration: 0.1s; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .popup-container.active .popup { - -webkit-animation-name: superScaleIn; - -moz-animation-name: superScaleIn; - animation-name: superScaleIn; - -webkit-animation-duration: 0.2s; - -moz-animation-duration: 0.2s; - animation-duration: 0.2s; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .popup-container .popup { - width: 250px; - max-width: 100%; - max-height: 90%; - border-radius: 0px; - background-color: rgba(255, 255, 255, 0.9); - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-direction: normal; - -webkit-box-orient: vertical; - -webkit-flex-direction: column; - -moz-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - -.popup-head { - padding: 15px 10px; - border-bottom: 1px solid #eee; - text-align: center; } - -.popup-title { - margin: 0; - padding: 0; - font-size: 15px; } - -.popup-sub-title { - margin: 5px 0 0 0; - padding: 0; - font-weight: normal; - font-size: 11px; } - -.popup-body { - padding: 10px; - overflow: scroll; } - -.popup-buttons { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-direction: normal; - -webkit-box-orient: horizontal; - -webkit-flex-direction: row; - -moz-flex-direction: row; - -ms-flex-direction: row; - flex-direction: row; - padding: 10px; - min-height: 65px; } - .popup-buttons .button { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - display: block; - min-height: 45px; - border-radius: 2px; - line-height: 20px; - margin-right: 5px; } - .popup-buttons .button:last-child { - margin-right: 0px; } - -.popup-open { - pointer-events: none; } - .popup-open.modal-open .modal { - pointer-events: none; } - .popup-open .popup-backdrop, .popup-open .popup { - pointer-events: auto; } - -/** - * Loading - * -------------------------------------------------- - */ -.loading-container { - position: absolute; - left: 0; - top: 0; - right: 0; - bottom: 0; - z-index: 13; - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-pack: center; - -ms-flex-pack: center; - -webkit-justify-content: center; - -moz-justify-content: center; - justify-content: center; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - -webkit-transition: 0.2s opacity linear; - -moz-transition: 0.2s opacity linear; - transition: 0.2s opacity linear; - visibility: hidden; - opacity: 0; } - .loading-container:not(.visible) .icon { - display: none; } - .loading-container.visible { - visibility: visible; } - .loading-container.active { - opacity: 1; } - .loading-container .loading { - padding: 20px; - border-radius: 5px; - background-color: rgba(0, 0, 0, 0.7); - color: #fff; - text-align: center; - text-overflow: ellipsis; - font-size: 15px; } - .loading-container .loading h1, .loading-container .loading h2, .loading-container .loading h3, .loading-container .loading h4, .loading-container .loading h5, .loading-container .loading h6 { - color: #fff; } - -/** - * Items - * -------------------------------------------------- - */ -.item { - border-color: #ddd; - background-color: #fff; - color: #444; - position: relative; - z-index: 2; - display: block; - margin: -1px; - padding: 16px; - border-width: 1px; - border-style: solid; - font-size: 16px; } - .item h2 { - margin: 0 0 4px 0; - font-size: 16px; } - .item h3 { - margin: 0 0 4px 0; - font-size: 14px; } - .item h4 { - margin: 0 0 4px 0; - font-size: 12px; } - .item h5, .item h6 { - margin: 0 0 3px 0; - font-size: 10px; } - .item p { - color: #666; - font-size: 14px; } - .item h1:last-child, .item h2:last-child, .item h3:last-child, .item h4:last-child, .item h5:last-child, .item h6:last-child, .item p:last-child { - margin-bottom: 0; } - .item .badge { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - position: absolute; - top: 16px; - right: 32px; } - .item.item-button-right .badge { - right: 67px; } - .item.item-divider .badge { - top: 8px; } - .item .badge + .badge { - margin-right: 5px; } - .item.item-light { - border-color: #ddd; - background-color: #fff; - color: #444; } - .item.item-stable { - border-color: #b2b2b2; - background-color: #f8f8f8; - color: #444; } - .item.item-positive { - border-color: #145fd7; - background-color: #4a87ee; - color: #fff; } - .item.item-calm { - border-color: #1aacc3; - background-color: #43cee6; - color: #fff; } - .item.item-assertive { - border-color: #cc2311; - background-color: #ef4e3a; - color: #fff; } - .item.item-balanced { - border-color: #498f24; - background-color: #66cc33; - color: #fff; } - .item.item-energized { - border-color: #d39211; - background-color: #f0b840; - color: #fff; } - .item.item-royal { - border-color: #552bdf; - background-color: #8a6de9; - color: #fff; } - .item.item-dark { - border-color: #111; - background-color: #444; - color: #fff; } - .item[ng-click]:hover { - cursor: pointer; } - -.item.active, .item.activated, .item-complex.active .item-content, .item-complex.activated .item-content, .item .item-content.active, .item .item-content.activated { - border-color: #ccc; - background-color: #D9D9D9; } - .item.active.item-light, .item.activated.item-light, .item-complex.active .item-content.item-light, .item-complex.activated .item-content.item-light, .item .item-content.active.item-light, .item .item-content.activated.item-light { - border-color: #ccc; - background-color: #fafafa; } - .item.active.item-stable, .item.activated.item-stable, .item-complex.active .item-content.item-stable, .item-complex.activated .item-content.item-stable, .item .item-content.active.item-stable, .item .item-content.activated.item-stable { - border-color: #a2a2a2; - background-color: #e5e5e5; } - .item.active.item-positive, .item.activated.item-positive, .item-complex.active .item-content.item-positive, .item-complex.activated .item-content.item-positive, .item .item-content.active.item-positive, .item .item-content.activated.item-positive { - border-color: #145fd7; - background-color: #145fd7; } - .item.active.item-calm, .item.activated.item-calm, .item-complex.active .item-content.item-calm, .item-complex.activated .item-content.item-calm, .item .item-content.active.item-calm, .item .item-content.activated.item-calm { - border-color: #1aacc3; - background-color: #1aacc3; } - .item.active.item-assertive, .item.activated.item-assertive, .item-complex.active .item-content.item-assertive, .item-complex.activated .item-content.item-assertive, .item .item-content.active.item-assertive, .item .item-content.activated.item-assertive { - border-color: #cc2311; - background-color: #cc2311; } - .item.active.item-balanced, .item.activated.item-balanced, .item-complex.active .item-content.item-balanced, .item-complex.activated .item-content.item-balanced, .item .item-content.active.item-balanced, .item .item-content.activated.item-balanced { - border-color: #498f24; - background-color: #498f24; } - .item.active.item-energized, .item.activated.item-energized, .item-complex.active .item-content.item-energized, .item-complex.activated .item-content.item-energized, .item .item-content.active.item-energized, .item .item-content.activated.item-energized { - border-color: #d39211; - background-color: #d39211; } - .item.active.item-royal, .item.activated.item-royal, .item-complex.active .item-content.item-royal, .item-complex.activated .item-content.item-royal, .item .item-content.active.item-royal, .item .item-content.activated.item-royal { - border-color: #552bdf; - background-color: #552bdf; } - .item.active.item-dark, .item.activated.item-dark, .item-complex.active .item-content.item-dark, .item-complex.activated .item-content.item-dark, .item .item-content.active.item-dark, .item .item-content.activated.item-dark { - border-color: #000; - background-color: #262626; } - -.item, .item h1, .item h2, .item h3, .item h4, .item h5, .item h6, .item p, .item-content, .item-content h1, .item-content h2, .item-content h3, .item-content h4, .item-content h5, .item-content h6, .item-content p { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -a.item { - color: inherit; - text-decoration: none; } - a.item:hover, a.item:focus { - text-decoration: none; } - -/** - * Complex Items - * -------------------------------------------------- - * Adding .item-complex allows the .item to be slidable and - * have options underneath the button, but also requires an - * additional .item-content element inside .item. - * Basically .item-complex removes any default settings which - * .item added, so that .item-content looks them as just .item. - */ -.item-complex, a.item.item-complex, button.item.item-complex { - padding: 0; } - -.item-complex .item-content, .item-radio .item-content { - position: relative; - z-index: 2; - padding: 16px 49px 16px 16px; - border: none; - background-color: white; } - -a.item-content { - display: block; - color: inherit; - text-decoration: none; } - -.item-text-wrap .item, .item-text-wrap .item-content, .item-text-wrap, .item-text-wrap h1, .item-text-wrap h2, .item-text-wrap h3, .item-text-wrap h4, .item-text-wrap h5, .item-text-wrap h6, .item-text-wrap p, .item-complex.item-text-wrap .item-content, .item-body h1, .item-body h2, .item-body h3, .item-body h4, .item-body h5, .item-body h6, .item-body p { - overflow: visible; - white-space: normal; } - -.item-complex.item-text-wrap, .item-complex.item-text-wrap h1, .item-complex.item-text-wrap h2, .item-complex.item-text-wrap h3, .item-complex.item-text-wrap h4, .item-complex.item-text-wrap h5, .item-complex.item-text-wrap h6, .item-complex.item-text-wrap p { - overflow: visible; - white-space: normal; } - -.item-complex.item-light > .item-content { - border-color: #ddd; - background-color: #fff; - color: #444; } - .item-complex.item-light > .item-content.active, .item-complex.item-light > .item-content:active { - border-color: #ccc; - background-color: #fafafa; } -.item-complex.item-stable > .item-content { - border-color: #b2b2b2; - background-color: #f8f8f8; - color: #444; } - .item-complex.item-stable > .item-content.active, .item-complex.item-stable > .item-content:active { - border-color: #a2a2a2; - background-color: #e5e5e5; } -.item-complex.item-positive > .item-content { - border-color: #145fd7; - background-color: #4a87ee; - color: #fff; } - .item-complex.item-positive > .item-content.active, .item-complex.item-positive > .item-content:active { - border-color: #145fd7; - background-color: #145fd7; } -.item-complex.item-calm > .item-content { - border-color: #1aacc3; - background-color: #43cee6; - color: #fff; } - .item-complex.item-calm > .item-content.active, .item-complex.item-calm > .item-content:active { - border-color: #1aacc3; - background-color: #1aacc3; } -.item-complex.item-assertive > .item-content { - border-color: #cc2311; - background-color: #ef4e3a; - color: #fff; } - .item-complex.item-assertive > .item-content.active, .item-complex.item-assertive > .item-content:active { - border-color: #cc2311; - background-color: #cc2311; } -.item-complex.item-balanced > .item-content { - border-color: #498f24; - background-color: #66cc33; - color: #fff; } - .item-complex.item-balanced > .item-content.active, .item-complex.item-balanced > .item-content:active { - border-color: #498f24; - background-color: #498f24; } -.item-complex.item-energized > .item-content { - border-color: #d39211; - background-color: #f0b840; - color: #fff; } - .item-complex.item-energized > .item-content.active, .item-complex.item-energized > .item-content:active { - border-color: #d39211; - background-color: #d39211; } -.item-complex.item-royal > .item-content { - border-color: #552bdf; - background-color: #8a6de9; - color: #fff; } - .item-complex.item-royal > .item-content.active, .item-complex.item-royal > .item-content:active { - border-color: #552bdf; - background-color: #552bdf; } -.item-complex.item-dark > .item-content { - border-color: #111; - background-color: #444; - color: #fff; } - .item-complex.item-dark > .item-content.active, .item-complex.item-dark > .item-content:active { - border-color: #000; - background-color: #262626; } - -/** - * Item Icons - * -------------------------------------------------- - */ -.item-icon-left .icon, .item-icon-right .icon { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: absolute; - top: 0; - height: 100%; - font-size: 32px; } - .item-icon-left .icon:before, .item-icon-right .icon:before { - display: block; - width: 32px; - text-align: center; } - -.item .fill-icon { - min-width: 30px; - min-height: 30px; - font-size: 28px; } - -.item-icon-left { - padding-left: 54px; } - .item-icon-left .icon { - left: 11px; } - -.item-complex.item-icon-left { - padding-left: 0; } - .item-complex.item-icon-left .item-content { - padding-left: 54px; } - -.item-icon-right { - padding-right: 54px; } - .item-icon-right .icon { - right: 11px; } - -.item-complex.item-icon-right { - padding-right: 0; } - .item-complex.item-icon-right .item-content { - padding-right: 54px; } - -.item-icon-left.item-icon-right .icon:first-child { - right: auto; } - -.item-icon-left.item-icon-right .icon:last-child, .item-icon-left .item-delete .icon { - left: auto; } - -.item-icon-left .icon-accessory, .item-icon-right .icon-accessory { - color: #ccc; - font-size: 16px; } - -.item-icon-left .icon-accessory { - left: 3px; } - -.item-icon-right .icon-accessory { - right: 3px; } - -/** - * Item Button - * -------------------------------------------------- - * An item button is a child button inside an .item (not the entire .item) - */ -.item-button-left { - padding-left: 72px; } - -.item-button-left > .button, .item-button-left .item-content > .button { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: absolute; - top: 8px; - left: 11px; - min-width: 34px; - min-height: 34px; - font-size: 18px; - line-height: 32px; } - .item-button-left > .button .icon:before, .item-button-left .item-content > .button .icon:before { - position: relative; - left: auto; - width: auto; - line-height: 31px; } - .item-button-left > .button > .button, .item-button-left .item-content > .button > .button { - margin: 0px 2px; - min-height: 34px; - font-size: 18px; - line-height: 32px; } - -.item-button-right, a.item.item-button-right, button.item.item-button-right { - padding-right: 80px; } - -.item-button-right > .button, .item-button-right .item-content > .button, .item-button-right > .buttons, .item-button-right .item-content > .buttons { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: absolute; - top: 8px; - right: 16px; - min-width: 34px; - min-height: 34px; - font-size: 18px; - line-height: 32px; } - .item-button-right > .button .icon:before, .item-button-right .item-content > .button .icon:before, .item-button-right > .buttons .icon:before, .item-button-right .item-content > .buttons .icon:before { - position: relative; - left: auto; - width: auto; - line-height: 31px; } - .item-button-right > .button > .button, .item-button-right .item-content > .button > .button, .item-button-right > .buttons > .button, .item-button-right .item-content > .buttons > .button { - margin: 0px 2px; - min-width: 34px; - min-height: 34px; - font-size: 18px; - line-height: 32px; } - -.item-avatar, .item-avatar .item-content, .item-avatar-left, .item-avatar-left .item-content { - padding-left: 72px; - min-height: 72px; } - .item-avatar > img:first-child, .item-avatar .item-image, .item-avatar .item-content > img:first-child, .item-avatar .item-content .item-image, .item-avatar-left > img:first-child, .item-avatar-left .item-image, .item-avatar-left .item-content > img:first-child, .item-avatar-left .item-content .item-image { - position: absolute; - top: 16px; - left: 16px; - max-width: 40px; - max-height: 40px; - width: 100%; - border-radius: 4px; } - -.item-avatar-right, .item-avatar-right .item-content { - padding-right: 72px; - min-height: 72px; } - .item-avatar-right > img:first-child, .item-avatar-right .item-image, .item-avatar-right .item-content > img:first-child, .item-avatar-right .item-content .item-image { - position: absolute; - top: 16px; - right: 16px; - max-width: 40px; - max-height: 40px; - width: 100%; - border-radius: 4px; } - -.item-thumbnail-left, .item-thumbnail-left .item-content { - padding-left: 106px; - min-height: 100px; } - .item-thumbnail-left > img:first-child, .item-thumbnail-left .item-image, .item-thumbnail-left .item-content > img:first-child, .item-thumbnail-left .item-content .item-image { - position: absolute; - top: 10px; - left: 10px; - max-width: 80px; - max-height: 80px; - width: 100%; } - -.item-avatar.item-complex, .item-avatar-left.item-complex, .item-thumbnail-left.item-complex { - padding-left: 0; } - -.item-thumbnail-right, .item-thumbnail-right .item-content { - padding-right: 106px; - min-height: 100px; } - .item-thumbnail-right > img:first-child, .item-thumbnail-right .item-image, .item-thumbnail-right .item-content > img:first-child, .item-thumbnail-right .item-content .item-image { - position: absolute; - top: 10px; - right: 10px; - max-width: 80px; - max-height: 80px; - width: 100%; } - -.item-avatar-right.item-complex, .item-thumbnail-right.item-complex { - padding-right: 0; } - -.item-image { - padding: 0; - text-align: center; } - .item-image img:first-child, .item-image .list-img { - width: 100%; - vertical-align: middle; } - -.item-body { - overflow: auto; - padding: 16px; - text-overflow: inherit; - white-space: normal; } - .item-body h1, .item-body h2, .item-body h3, .item-body h4, .item-body h5, .item-body h6, .item-body p { - margin-top: 16px; - margin-bottom: 16px; } - -.item-divider { - padding-top: 8px; - padding-bottom: 8px; - min-height: 30px; - background-color: #f5f5f5; - color: #222; - font-weight: bold; } - -.item-note { - float: right; - color: #aaa; - font-size: 14px; } - -.item-left-editable .item-content, .item-right-editable .item-content { - -webkit-transition-duration: 250ms; - -moz-transition-duration: 250ms; - transition-duration: 250ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; - -webkit-transition-property: -webkit-transform; - -moz-transition-property: -moz-transform; - transition-property: transform; } - -.list-left-editing .item-left-editable .item-content, .item-left-editing.item-left-editable .item-content { - -webkit-transform: translate3d(50px, 0, 0); - -moz-transform: translate3d(50px, 0, 0); - transform: translate3d(50px, 0, 0); } - -.list-right-editing .item-right-editable .item-content, .item-right-editing.item-right-editable .item-content { - -webkit-transform: translate3d(-50px, 0, 0); - -moz-transform: translate3d(-50px, 0, 0); - transform: translate3d(-50px, 0, 0); } - -.item-left-edit { - -webkit-transition: all ease-in-out 125ms; - -moz-transition: all ease-in-out 125ms; - transition: all ease-in-out 125ms; - position: absolute; - top: 0; - left: 0; - z-index: 0; - width: 50px; - height: 100%; - line-height: 100%; - display: none; - opacity: 0; - -webkit-transform: translate3d(-21px, 0, 0); - -moz-transform: translate3d(-21px, 0, 0); - transform: translate3d(-21px, 0, 0); } - .item-left-edit .button { - height: 100%; } - .item-left-edit .button.icon { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: absolute; - top: 0; - height: 100%; } - .item-left-edit.visible { - display: block; } - .item-left-edit.visible.active { - opacity: 1; - -webkit-transform: translate3d(8px, 0, 0); - -moz-transform: translate3d(8px, 0, 0); - transform: translate3d(8px, 0, 0); } - -.list-left-editing .item-left-edit { - -webkit-transition-delay: 125ms; - -moz-transition-delay: 125ms; - transition-delay: 125ms; } - -.item-delete .button.icon { - color: #ef4e3a; - font-size: 24px; } - .item-delete .button.icon:hover { - opacity: 0.7; } - -.item-right-edit { - -webkit-transition: all ease-in-out 125ms; - -moz-transition: all ease-in-out 125ms; - transition: all ease-in-out 125ms; - position: absolute; - top: 0; - right: 0; - z-index: 0; - width: 75px; - height: 100%; - background: inherit; - padding-left: 20px; - display: none; - opacity: 0; - -webkit-transform: translate3d(25px, 0, 0); - -moz-transform: translate3d(25px, 0, 0); - transform: translate3d(25px, 0, 0); } - .item-right-edit .button { - min-width: 50px; - height: 100%; } - .item-right-edit .button.icon { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: absolute; - top: 0; - height: 100%; - font-size: 32px; } - .item-right-edit.visible { - display: block; - z-index: 3; } - .item-right-edit.visible.active { - opacity: 1; - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - -.list-right-editing .item-right-edit { - -webkit-transition-delay: 125ms; - -moz-transition-delay: 125ms; - transition-delay: 125ms; } - -.item-reorder .button.icon { - color: #444; - font-size: 32px; } - -.item-reordering { - position: absolute; - left: 0; - top: 0; - z-index: 9; - width: 100%; - box-shadow: 0px 0px 10px 0px #aaa; } - .item-reordering .item-reorder { - z-index: 1; } - -.item-placeholder { - opacity: 0.7; } - -/** - * The hidden right-side buttons that can be exposed under a list item - * with dragging. - */ -.item-options { - position: absolute; - top: 0; - right: 0; - z-index: 1; - height: 100%; } - .item-options .button { - height: 100%; - border: none; - border-radius: 0; } - -/** - * Lists - * -------------------------------------------------- - */ -.list { - position: relative; - padding-top: 1px; - padding-bottom: 1px; - padding-left: 0; - margin-bottom: 20px; } - -.list:last-child { - margin-bottom: 0px; } - .list:last-child.card { - margin-bottom: 40px; } - -/** - * List Header - * -------------------------------------------------- - */ -.list-header { - margin-top: 20px; - padding: 5px 15px; - background-color: transparent; - color: #222; - font-weight: bold; } - -.card.list .list-item { - padding-right: 1px; - padding-left: 1px; } - -/** - * Cards and Inset Lists - * -------------------------------------------------- - * A card and list-inset are close to the same thing, except a card as a box shadow. - */ -.card, .list-inset { - overflow: hidden; - margin: 20px 10px; - border-radius: 2px; - background-color: #fff; } - -.card { - padding-top: 1px; - padding-bottom: 1px; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); } - -.padding .card, .padding .list-inset { - margin-left: 0; - margin-right: 0; } - -.card .item:first-child, .list-inset .item:first-child, .padding > .list .item:first-child { - border-top-left-radius: 2px; - border-top-right-radius: 2px; } - .card .item:first-child .item-content, .list-inset .item:first-child .item-content, .padding > .list .item:first-child .item-content { - border-top-left-radius: 2px; - border-top-right-radius: 2px; } -.card .item:last-child, .list-inset .item:last-child, .padding > .list .item:last-child { - border-bottom-right-radius: 2px; - border-bottom-left-radius: 2px; } - .card .item:last-child .item-content, .list-inset .item:last-child .item-content, .padding > .list .item:last-child .item-content { - border-bottom-right-radius: 2px; - border-bottom-left-radius: 2px; } - -.card .item:last-child, .list-inset .item:last-child { - margin-bottom: -1px; } - -.card .item, .list-inset .item, .padding > .list .item, .padding-horizontal > .list .item { - margin-right: 0; - margin-left: 0; } - .card .item.item-input input, .list-inset .item.item-input input, .padding > .list .item.item-input input, .padding-horizontal > .list .item.item-input input { - padding-right: 44px; } - -.padding-left > .list .item { - margin-left: 0; } - -.padding-right > .list .item { - margin-right: 0; } - -/** - * Badges - * -------------------------------------------------- - */ -.badge { - background-color: transparent; - color: #AAAAAA; - z-index: 1; - display: inline-block; - padding: 3px 8px; - min-width: 10px; - border-radius: 10px; - vertical-align: baseline; - text-align: center; - white-space: nowrap; - font-weight: bold; - font-size: 14px; - line-height: 16px; } - .badge:empty { - display: none; } - -.tabs .tab-item .badge.badge-light, .badge.badge-light { - background-color: #fff; - color: #444; } -.tabs .tab-item .badge.badge-stable, .badge.badge-stable { - background-color: #f8f8f8; - color: #444; } -.tabs .tab-item .badge.badge-positive, .badge.badge-positive { - background-color: #4a87ee; - color: #fff; } -.tabs .tab-item .badge.badge-calm, .badge.badge-calm { - background-color: #43cee6; - color: #fff; } -.tabs .tab-item .badge.badge-assertive, .badge.badge-assertive { - background-color: #ef4e3a; - color: #fff; } -.tabs .tab-item .badge.badge-balanced, .badge.badge-balanced { - background-color: #66cc33; - color: #fff; } -.tabs .tab-item .badge.badge-energized, .badge.badge-energized { - background-color: #f0b840; - color: #fff; } -.tabs .tab-item .badge.badge-royal, .badge.badge-royal { - background-color: #8a6de9; - color: #fff; } -.tabs .tab-item .badge.badge-dark, .badge.badge-dark { - background-color: #444; - color: #fff; } - -.button .badge { - position: relative; - top: -1px; } - -/** - * Slide Box - * -------------------------------------------------- - */ -.slider { - position: relative; - visibility: hidden; - overflow: hidden; } - -.slider-slides { - position: relative; - height: 100%; } - -.slider-slide { - position: relative; - display: block; - float: left; - width: 100%; - height: 100%; - vertical-align: top; } - -.slider-slide-image > img { - width: 100%; } - -.slider-pager { - position: absolute; - bottom: 20px; - z-index: 1; - width: 100%; - height: 15px; - text-align: center; } - .slider-pager .slider-pager-page { - display: inline-block; - margin: 0px 3px; - width: 15px; - color: #000; - text-decoration: none; - opacity: 0.3; } - .slider-pager .slider-pager-page.active { - -webkit-transition: opacity 0.4s ease-in; - -moz-transition: opacity 0.4s ease-in; - transition: opacity 0.4s ease-in; - opacity: 1; } - -/** - * Forms - * -------------------------------------------------- - */ -form { - margin: 0 0 1.42857; } - -legend { - display: block; - margin-bottom: 1.42857; - padding: 0; - width: 100%; - border: 1px solid #ddd; - color: #444; - font-size: 21px; - line-height: 2.85714; } - legend small { - color: #f8f8f8; - font-size: 1.07143; } - -label, input, button, select, textarea { - font-weight: normal; - font-size: 14px; - line-height: 1.42857; } - -input, button, select, textarea { - font-family: "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } - -.item-input { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: relative; - overflow: hidden; - padding: 6px 0 5px 16px; } - .item-input input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-flex: 1; - -webkit-flex: 1 0 220px; - -moz-box-flex: 1; - -moz-flex: 1 0 220px; - -ms-flex: 1 0 220px; - flex: 1 0 220px; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - margin: 0; - padding-right: 24px; - background-color: transparent; } - .item-input .button .icon { - -webkit-box-flex: 0; - -webkit-flex: 0 0 24px; - -moz-box-flex: 0; - -moz-flex: 0 0 24px; - -ms-flex: 0 0 24px; - flex: 0 0 24px; - position: static; - display: inline-block; - height: auto; - text-align: center; - font-size: 16px; } - .item-input .button-bar { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; - -webkit-box-flex: 1; - -webkit-flex: 1 0 220px; - -moz-box-flex: 1; - -moz-flex: 1 0 220px; - -ms-flex: 1 0 220px; - flex: 1 0 220px; - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; } - .item-input .icon { - min-width: 14px; } - -.item-input-inset { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - position: relative; - overflow: hidden; - padding: 10.66667px; } - -.item-input-wrapper { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1 0; - -moz-box-flex: 1; - -moz-flex: 1 0; - -ms-flex: 1 0; - flex: 1 0; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - padding-right: 8px; - padding-left: 8px; - background: #eee; } - -.item-input-inset .item-input-wrapper input { - padding-left: 4px; - height: 29px; - background: transparent; - line-height: 18px; } - -.item-input-wrapper ~ .button { - margin-left: 10.66667px; } - -.input-label { - -webkit-box-flex: 1; - -webkit-flex: 1 0 100px; - -moz-box-flex: 1; - -moz-flex: 1 0 100px; - -ms-flex: 1 0 100px; - flex: 1 0 100px; - display: table; - padding: 7px 10px 7px 0px; - max-width: 200px; - width: 35%; - color: #444; - font-size: 16px; } - -.placeholder-icon { - color: #aaa; } - .placeholder-icon:first-child { - padding-right: 6px; } - .placeholder-icon:last-child { - padding-left: 6px; } - -.item-stacked-label { - display: block; - background-color: transparent; - box-shadow: none; } - .item-stacked-label .input-label, .item-stacked-label .icon { - display: inline-block; - padding: 4px 0 0 0px; - vertical-align: middle; } - -.item-stacked-label input, .item-stacked-label textarea { - -webkit-border-radius: 2px; - -moz-border-radius: 2px; - border-radius: 2px; - padding: 4px 8px 3px 0; - border: none; - background-color: #fff; } - -.item-stacked-label input { - overflow: hidden; - height: 46px; } - -.item-floating-label { - display: block; - background-color: transparent; - box-shadow: none; } - .item-floating-label .input-label { - position: relative; - padding: 5px 0 0 0; - opacity: 0; - top: 10px; - -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; - -moz-transition: opacity 0.15s ease-in, top 0.2s linear; - transition: opacity 0.15s ease-in, top 0.2s linear; } - .item-floating-label .input-label.has-input { - opacity: 1; - top: 0; - -webkit-transition: opacity 0.15s ease-in, top 0.2s linear; - -moz-transition: opacity 0.15s ease-in, top 0.2s linear; - transition: opacity 0.15s ease-in, top 0.2s linear; } - -textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { - display: block; - padding-top: 2px; - padding-left: 0; - height: 34px; - color: #111; - vertical-align: middle; - font-size: 14px; - line-height: 16px; } - -.platform-ios input[type="datetime-local"], .platform-ios input[type="date"], .platform-ios input[type="month"], .platform-ios input[type="time"], .platform-ios input[type="week"], .platform-android input[type="datetime-local"], .platform-android input[type="date"], .platform-android input[type="month"], .platform-android input[type="time"], .platform-android input[type="week"] { - padding-top: 8px; } - -input, textarea { - width: 100%; } - -textarea { - padding-left: 0; } - textarea::-moz-placeholder { - /* Firefox 19+ */ - color: #aaaaaa; } - textarea:-ms-input-placeholder { - color: #aaaaaa; } - textarea::-webkit-input-placeholder { - color: #aaaaaa; - text-indent: -3px; } - -textarea { - height: auto; } - -textarea, input[type="text"], input[type="password"], input[type="datetime"], input[type="datetime-local"], input[type="date"], input[type="month"], input[type="time"], input[type="week"], input[type="number"], input[type="email"], input[type="url"], input[type="search"], input[type="tel"], input[type="color"] { - border: 0; } - -input[type="radio"], input[type="checkbox"] { - margin: 0; - line-height: normal; } - -input[type="file"], input[type="image"], input[type="submit"], input[type="reset"], input[type="button"], input[type="radio"], input[type="checkbox"] { - width: auto; } - -input[type="file"] { - line-height: 34px; } - -.previous-input-focus, .cloned-text-input + input, .cloned-text-input + textarea { - position: absolute !important; - left: -9999px; - width: 200px; } - -input::-moz-placeholder, textarea::-moz-placeholder { - /* Firefox 19+ */ - color: #aaaaaa; } -input:-ms-input-placeholder, textarea:-ms-input-placeholder { - color: #aaaaaa; } -input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { - color: #aaaaaa; - text-indent: 0; } - -input[disabled], select[disabled], textarea[disabled], input[readonly]:not(.cloned-text-input), textarea[readonly]:not(.cloned-text-input), select[readonly] { - background-color: #f8f8f8; - cursor: not-allowed; } - -input[type="radio"][disabled], input[type="checkbox"][disabled], input[type="radio"][readonly], input[type="checkbox"][readonly] { - background-color: transparent; } - -/** - * Checkbox - * -------------------------------------------------- - */ -.checkbox { - position: relative; - display: inline-block; - padding: 7px 7px; - cursor: pointer; } - .checkbox input:before, .checkbox .checkbox-icon:before { - border-color: #4a87ee; } - .checkbox input:checked:before, .checkbox input:checked + .checkbox-icon:before { - background: #4a87ee; } - -.checkbox-light input:before, .checkbox-light .checkbox-icon:before { - border-color: #ddd; } -.checkbox-light input:checked:before, .checkbox-light input:checked + .checkbox-icon:before { - background: #ddd; } - -.checkbox-stable input:before, .checkbox-stable .checkbox-icon:before { - border-color: #b2b2b2; } -.checkbox-stable input:checked:before, .checkbox-stable input:checked + .checkbox-icon:before { - background: #b2b2b2; } - -.checkbox-positive input:before, .checkbox-positive .checkbox-icon:before { - border-color: #4a87ee; } -.checkbox-positive input:checked:before, .checkbox-positive input:checked + .checkbox-icon:before { - background: #4a87ee; } - -.checkbox-calm input:before, .checkbox-calm .checkbox-icon:before { - border-color: #43cee6; } -.checkbox-calm input:checked:before, .checkbox-calm input:checked + .checkbox-icon:before { - background: #43cee6; } - -.checkbox-assertive input:before, .checkbox-assertive .checkbox-icon:before { - border-color: #ef4e3a; } -.checkbox-assertive input:checked:before, .checkbox-assertive input:checked + .checkbox-icon:before { - background: #ef4e3a; } - -.checkbox-balanced input:before, .checkbox-balanced .checkbox-icon:before { - border-color: #66cc33; } -.checkbox-balanced input:checked:before, .checkbox-balanced input:checked + .checkbox-icon:before { - background: #66cc33; } - -.checkbox-energized input:before, .checkbox-energized .checkbox-icon:before { - border-color: #f0b840; } -.checkbox-energized input:checked:before, .checkbox-energized input:checked + .checkbox-icon:before { - background: #f0b840; } - -.checkbox-royal input:before, .checkbox-royal .checkbox-icon:before { - border-color: #8a6de9; } -.checkbox-royal input:checked:before, .checkbox-royal input:checked + .checkbox-icon:before { - background: #8a6de9; } - -.checkbox-dark input:before, .checkbox-dark .checkbox-icon:before { - border-color: #444; } -.checkbox-dark input:checked:before, .checkbox-dark input:checked + .checkbox-icon:before { - background: #444; } - -.checkbox input:disabled:before, .checkbox input:disabled + .checkbox-icon:before { - border-color: #ddd; } - -.checkbox input:disabled:checked:before, .checkbox input:disabled:checked + .checkbox-icon:before { - background: #ddd; } - -.checkbox.checkbox-input-hidden input { - display: none !important; } - -.checkbox input, .checkbox-icon { - position: relative; - width: 28px; - height: 28px; - display: block; - border: 0; - background: transparent; - cursor: pointer; - -webkit-appearance: none; } - .checkbox input:before, .checkbox-icon:before { - display: table; - width: 100%; - height: 100%; - border-width: 1px; - border-style: solid; - border-radius: 28px; - background: #fff; - content: ' '; - transition: background-color 20ms ease-in-out; } - -.checkbox input:checked:before, input:checked + .checkbox-icon:before { - border-width: 2px; } - -.checkbox input:after, .checkbox-icon:after { - -webkit-transition: opacity 0.05s ease-in-out; - -moz-transition: opacity 0.05s ease-in-out; - transition: opacity 0.05s ease-in-out; - -webkit-transform: rotate(-45deg); - -moz-transform: rotate(-45deg); - transform: rotate(-45deg); - position: absolute; - top: 30%; - left: 26%; - display: table; - width: 15px; - height: 10.33333px; - border: 3px solid #fff; - border-top: 0; - border-right: 0; - content: ' '; - opacity: 0; } - -.grade-c .checkbox input:after, .grade-c .checkbox-icon:after { - -webkit-transform: rotate(0); - -moz-transform: rotate(0); - transform: rotate(0); - top: 3px; - left: 4px; - border: none; - color: #fff; - content: '\2713'; - font-weight: bold; - font-size: 20px; } - -.checkbox input:checked:after, input:checked + .checkbox-icon:after { - opacity: 1; } - -.item-checkbox { - padding-left: 60px; } - .item-checkbox.active { - box-shadow: none; } - -.item-checkbox .checkbox { - position: absolute; - top: 50%; - right: 8px; - left: 8px; - z-index: 3; - margin-top: -21px; } - -.item-checkbox.item-checkbox-right { - padding-right: 60px; - padding-left: 16px; } - -.item-checkbox-right .checkbox input, .item-checkbox-right .checkbox-icon { - float: right; } - -/** - * Toggle - * -------------------------------------------------- - */ -.item-toggle { - pointer-events: none; } - -.toggle { - position: relative; - display: inline-block; - pointer-events: auto; - margin: -5px; - padding: 5px; } - .toggle input:checked + .track { - border-color: #4a87ee; - background-color: #4a87ee; } - .toggle.dragging .handle { - background-color: #f2f2f2 !important; } - .toggle.toggle-light input:checked + .track { - border-color: #ddd; - background-color: #ddd; } - .toggle.toggle-stable input:checked + .track { - border-color: #b2b2b2; - background-color: #b2b2b2; } - .toggle.toggle-positive input:checked + .track { - border-color: #4a87ee; - background-color: #4a87ee; } - .toggle.toggle-calm input:checked + .track { - border-color: #43cee6; - background-color: #43cee6; } - .toggle.toggle-assertive input:checked + .track { - border-color: #ef4e3a; - background-color: #ef4e3a; } - .toggle.toggle-balanced input:checked + .track { - border-color: #66cc33; - background-color: #66cc33; } - .toggle.toggle-energized input:checked + .track { - border-color: #f0b840; - background-color: #f0b840; } - .toggle.toggle-royal input:checked + .track { - border-color: #8a6de9; - background-color: #8a6de9; } - .toggle.toggle-dark input:checked + .track { - border-color: #444; - background-color: #444; } - -.toggle input { - display: none; } - -/* the track appearance when the toggle is "off" */ -.toggle .track { - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; - -webkit-transition-duration: 0.2s; - -moz-transition-duration: 0.2s; - transition-duration: 0.2s; - -webkit-transition-property: background-color, border; - -moz-transition-property: background-color, border; - transition-property: background-color, border; - display: inline-block; - box-sizing: border-box; - width: 54px; - height: 32px; - border: solid 2px #E5E5E5; - border-radius: 20px; - background-color: #E5E5E5; - content: ' '; - cursor: pointer; - pointer-events: none; } - -/* Fix to avoid background color bleeding */ -/* (occured on (at least) Android 4.2, Asus MeMO Pad HD7 ME173X) */ -.platform-android4_2 .toggle .track { - -webkit-background-clip: padding-box; } - -/* the handle (circle) thats inside the toggle's track area */ -/* also the handle's appearance when it is "off" */ -.toggle .handle { - -webkit-transition: 0.2s ease-in-out; - -moz-transition: 0.2s ease-in-out; - transition: 0.2s ease-in-out; - position: absolute; - display: block; - width: 28px; - height: 28px; - border-radius: 28px; - background-color: #fff; - top: 7px; - left: 7px; } - .toggle .handle:before { - position: absolute; - top: -4px; - left: -22px; - padding: 19px 35px; - content: " "; } - -.toggle input:checked + .track .handle { - -webkit-transform: translate3d(22px, 0, 0); - -moz-transform: translate3d(22px, 0, 0); - transform: translate3d(22px, 0, 0); - background-color: #fff; } - -.item-toggle.active { - box-shadow: none; } - -.item-toggle, .item-toggle.item-complex .item-content { - padding-right: 102px; } - -.item-toggle.item-complex { - padding-right: 0; } - -.item-toggle .toggle { - position: absolute; - top: 8px; - right: 16px; - z-index: 3; } - -.toggle input:disabled + .track { - opacity: 0.6; } - -/** - * Radio Button Inputs - * -------------------------------------------------- - */ -.item-radio { - padding: 0; } - .item-radio:hover { - cursor: pointer; } - -.item-radio .item-content { - /* give some room to the right for the checkmark icon */ - padding-right: 64px; } - -.item-radio .radio-icon { - /* checkmark icon will be hidden by default */ - position: absolute; - top: 0; - right: 0; - z-index: 3; - visibility: hidden; - padding: 14px; - height: 100%; - font-size: 24px; } - -.item-radio input { - /* hide any radio button inputs elements (the ugly circles) */ - position: absolute; - left: -9999px; } - .item-radio input:checked ~ .item-content { - /* style the item content when its checked */ - background: #f7f7f7; } - .item-radio input:checked ~ .radio-icon { - /* show the checkmark icon when its checked */ - visibility: visible; } - -.platform-android.grade-b .item-radio, .platform-android.grade-c .item-radio { - -webkit-animation: androidCheckedbugfix infinite 1s; } - -@-webkit-keyframes androidCheckedbugfix { - from { - padding: 0; } - - to { - padding: 0; } } - -/** - * Range - * -------------------------------------------------- - */ -input[type="range"] { - display: inline-block; - overflow: hidden; - margin-top: 5px; - margin-bottom: 5px; - padding-right: 2px; - padding-left: 1px; - width: auto; - height: 35px; - outline: none; - background: -webkit-gradient(linear, 50% 0%, 50% 100%, color-stop(0%, #ccc), color-stop(100%, #ccc)); - background: linear-gradient(to right, #ccc 0%, #ccc 100%); - background-position: center; - background-size: 99% 4px; - background-repeat: no-repeat; - -webkit-appearance: none; } - input[type="range"]::-webkit-slider-thumb { - position: relative; - width: 20px; - height: 20px; - border-radius: 10px; - background-color: #fff; - box-shadow: 0 0 2px rgba(0, 0, 0, 0.5), 1px 3px 5px rgba(0, 0, 0, 0.25); - cursor: pointer; - -webkit-appearance: none; } - input[type="range"]::-webkit-slider-thumb:before { - /* what creates the colorful line on the left side of the slider */ - position: absolute; - top: 8px; - left: -2001px; - width: 2000px; - height: 4px; - background: #444; - content: ' '; } - input[type="range"]::-webkit-slider-thumb:after { - /* create a larger (but hidden) hit area */ - position: absolute; - top: -20px; - left: -20px; - padding: 30px; - content: ' '; } - -.range { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; - padding: 2px 11px; } - .range.range-light input::-webkit-slider-thumb:before { - background: #ddd; } - .range.range-stable input::-webkit-slider-thumb:before { - background: #b2b2b2; } - .range.range-positive input::-webkit-slider-thumb:before { - background: #4a87ee; } - .range.range-calm input::-webkit-slider-thumb:before { - background: #43cee6; } - .range.range-balanced input::-webkit-slider-thumb:before { - background: #66cc33; } - .range.range-assertive input::-webkit-slider-thumb:before { - background: #ef4e3a; } - .range.range-energized input::-webkit-slider-thumb:before { - background: #f0b840; } - .range.range-royal input::-webkit-slider-thumb:before { - background: #8a6de9; } - .range.range-dark input::-webkit-slider-thumb:before { - background: #444; } - -.range .icon { - -webkit-box-flex: 0; - -webkit-flex: 0; - -moz-box-flex: 0; - -moz-flex: 0; - -ms-flex: 0; - flex: 0; - display: block; - min-width: 24px; - text-align: center; - font-size: 24px; } - -.range input { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - display: block; - margin-right: 10px; - margin-left: 10px; } - -.range-label { - -webkit-box-flex: 0; - -webkit-flex: 0 0 auto; - -moz-box-flex: 0; - -moz-flex: 0 0 auto; - -ms-flex: 0 0 auto; - flex: 0 0 auto; - display: block; - white-space: nowrap; } - -.range-label:first-child { - padding-left: 5px; } - -.range input + .range-label { - padding-right: 5px; - padding-left: 0; } - -/** - * Select - * -------------------------------------------------- - */ -.item-select { - position: relative; } - .item-select select { - -webkit-appearance: none; - -moz-appearance: none; - appearance: none; - position: absolute; - top: 0; - right: 0; - padding: 14px 48px 16px 16px; - max-width: 65%; - border: none; - background: #fff; - color: #333; - text-indent: 0.01px; - text-overflow: ''; - white-space: nowrap; - font-size: 14px; - cursor: pointer; - direction: rtl; } - .item-select select::-ms-expand { - display: none; } - .item-select option { - direction: ltr; } - .item-select:after { - position: absolute; - top: 50%; - right: 16px; - margin-top: -3px; - width: 0; - height: 0; - border-top: 5px solid; - border-right: 5px solid rgba(0, 0, 0, 0); - border-left: 5px solid rgba(0, 0, 0, 0); - color: #999; - content: ""; - pointer-events: none; } - .item-select.item-light select { - background: #fff; - color: #444; } - .item-select.item-stable select { - background: #f8f8f8; - color: #444; } - .item-select.item-stable:after, .item-select.item-stable .input-label { - color: #656565; } - .item-select.item-positive select { - background: #4a87ee; - color: #fff; } - .item-select.item-positive:after, .item-select.item-positive .input-label { - color: #fff; } - .item-select.item-calm select { - background: #43cee6; - color: #fff; } - .item-select.item-calm:after, .item-select.item-calm .input-label { - color: #fff; } - .item-select.item-assertive select { - background: #ef4e3a; - color: #fff; } - .item-select.item-assertive:after, .item-select.item-assertive .input-label { - color: #fff; } - .item-select.item-balanced select { - background: #66cc33; - color: #fff; } - .item-select.item-balanced:after, .item-select.item-balanced .input-label { - color: #fff; } - .item-select.item-energized select { - background: #f0b840; - color: #fff; } - .item-select.item-energized:after, .item-select.item-energized .input-label { - color: #fff; } - .item-select.item-royal select { - background: #8a6de9; - color: #fff; } - .item-select.item-royal:after, .item-select.item-royal .input-label { - color: #fff; } - .item-select.item-dark select { - background: #444; - color: #fff; } - .item-select.item-dark:after, .item-select.item-dark .input-label { - color: #fff; } - -select[multiple], select[size] { - height: auto; } - -/** - * Progress - * -------------------------------------------------- - */ -progress { - display: block; - margin: 15px auto; - width: 100%; } - -/** - * Buttons - * -------------------------------------------------- - */ -.button { - border-color: #b2b2b2; - background-color: #f8f8f8; - color: #444; - position: relative; - display: inline-block; - margin: 0; - padding: 0 12px; - min-width: 52px; - min-height: 47px; - border-width: 1px; - border-style: solid; - border-radius: 2px; - vertical-align: top; - text-align: center; - text-overflow: ellipsis; - font-size: 16px; - line-height: 42px; - cursor: pointer; } - .button:hover { - color: #444; - text-decoration: none; } - .button.active, .button.activated { - border-color: #a2a2a2; - background-color: #e5e5e5; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button:after { - position: absolute; - top: -6px; - right: -6px; - bottom: -6px; - left: -6px; - content: ' '; } - .button .icon { - vertical-align: top; - pointer-events: none; } - .button .icon:before, .button.icon:before, .button.icon-left:before, .button.icon-right:before { - display: inline-block; - padding: 0 0 1px 0; - vertical-align: inherit; - font-size: 24px; - line-height: 41px; - pointer-events: none; } - .button.icon-left:before { - float: left; - padding-right: 0.2em; - padding-left: 0; } - .button.icon-right:before { - float: right; - padding-right: 0; - padding-left: 0.2em; } - .button.button-block, .button.button-full { - margin-top: 10px; - margin-bottom: 10px; } - .button.button-light { - border-color: #ddd; - background-color: #fff; - color: #444; } - .button.button-light:hover { - color: #444; - text-decoration: none; } - .button.button-light.active, .button.button-light.activated { - border-color: #ccc; - background-color: #fafafa; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-light.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #ddd; } - .button.button-light.button-icon { - border-color: transparent; - background: none; } - .button.button-light.button-outline { - border-color: #ddd; - background: transparent; - color: #ddd; } - .button.button-light.button-outline.active, .button.button-light.button-outline.activated { - background-color: #ddd; - box-shadow: none; - color: #fff; } - .button.button-stable { - border-color: #b2b2b2; - background-color: #f8f8f8; - color: #444; } - .button.button-stable:hover { - color: #444; - text-decoration: none; } - .button.button-stable.active, .button.button-stable.activated { - border-color: #a2a2a2; - background-color: #e5e5e5; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-stable.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #b2b2b2; } - .button.button-stable.button-icon { - border-color: transparent; - background: none; } - .button.button-stable.button-outline { - border-color: #b2b2b2; - background: transparent; - color: #b2b2b2; } - .button.button-stable.button-outline.active, .button.button-stable.button-outline.activated { - background-color: #b2b2b2; - box-shadow: none; - color: #fff; } - .button.button-positive { - border-color: #145fd7; - background-color: #4a87ee; - color: #fff; } - .button.button-positive:hover { - color: #fff; - text-decoration: none; } - .button.button-positive.active, .button.button-positive.activated { - border-color: #145fd7; - background-color: #145fd7; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-positive.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #4a87ee; } - .button.button-positive.button-icon { - border-color: transparent; - background: none; } - .button.button-positive.button-outline { - border-color: #4a87ee; - background: transparent; - color: #4a87ee; } - .button.button-positive.button-outline.active, .button.button-positive.button-outline.activated { - background-color: #4a87ee; - box-shadow: none; - color: #fff; } - .button.button-calm { - border-color: #1aacc3; - background-color: #43cee6; - color: #fff; } - .button.button-calm:hover { - color: #fff; - text-decoration: none; } - .button.button-calm.active, .button.button-calm.activated { - border-color: #1aacc3; - background-color: #1aacc3; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-calm.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #43cee6; } - .button.button-calm.button-icon { - border-color: transparent; - background: none; } - .button.button-calm.button-outline { - border-color: #43cee6; - background: transparent; - color: #43cee6; } - .button.button-calm.button-outline.active, .button.button-calm.button-outline.activated { - background-color: #43cee6; - box-shadow: none; - color: #fff; } - .button.button-assertive { - border-color: #cc2311; - background-color: #ef4e3a; - color: #fff; } - .button.button-assertive:hover { - color: #fff; - text-decoration: none; } - .button.button-assertive.active, .button.button-assertive.activated { - border-color: #cc2311; - background-color: #cc2311; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-assertive.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #ef4e3a; } - .button.button-assertive.button-icon { - border-color: transparent; - background: none; } - .button.button-assertive.button-outline { - border-color: #ef4e3a; - background: transparent; - color: #ef4e3a; } - .button.button-assertive.button-outline.active, .button.button-assertive.button-outline.activated { - background-color: #ef4e3a; - box-shadow: none; - color: #fff; } - .button.button-balanced { - border-color: #498f24; - background-color: #66cc33; - color: #fff; } - .button.button-balanced:hover { - color: #fff; - text-decoration: none; } - .button.button-balanced.active, .button.button-balanced.activated { - border-color: #498f24; - background-color: #498f24; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-balanced.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #66cc33; } - .button.button-balanced.button-icon { - border-color: transparent; - background: none; } - .button.button-balanced.button-outline { - border-color: #66cc33; - background: transparent; - color: #66cc33; } - .button.button-balanced.button-outline.active, .button.button-balanced.button-outline.activated { - background-color: #66cc33; - box-shadow: none; - color: #fff; } - .button.button-energized { - border-color: #d39211; - background-color: #f0b840; - color: #fff; } - .button.button-energized:hover { - color: #fff; - text-decoration: none; } - .button.button-energized.active, .button.button-energized.activated { - border-color: #d39211; - background-color: #d39211; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-energized.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #f0b840; } - .button.button-energized.button-icon { - border-color: transparent; - background: none; } - .button.button-energized.button-outline { - border-color: #f0b840; - background: transparent; - color: #f0b840; } - .button.button-energized.button-outline.active, .button.button-energized.button-outline.activated { - background-color: #f0b840; - box-shadow: none; - color: #fff; } - .button.button-royal { - border-color: #552bdf; - background-color: #8a6de9; - color: #fff; } - .button.button-royal:hover { - color: #fff; - text-decoration: none; } - .button.button-royal.active, .button.button-royal.activated { - border-color: #552bdf; - background-color: #552bdf; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-royal.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #8a6de9; } - .button.button-royal.button-icon { - border-color: transparent; - background: none; } - .button.button-royal.button-outline { - border-color: #8a6de9; - background: transparent; - color: #8a6de9; } - .button.button-royal.button-outline.active, .button.button-royal.button-outline.activated { - background-color: #8a6de9; - box-shadow: none; - color: #fff; } - .button.button-dark { - border-color: #111; - background-color: #444; - color: #fff; } - .button.button-dark:hover { - color: #fff; - text-decoration: none; } - .button.button-dark.active, .button.button-dark.activated { - border-color: #000; - background-color: #262626; - box-shadow: inset 0px 1px 3px rgba(0, 0, 0, 0.15); } - .button.button-dark.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #444; } - .button.button-dark.button-icon { - border-color: transparent; - background: none; } - .button.button-dark.button-outline { - border-color: #444; - background: transparent; - color: #444; } - .button.button-dark.button-outline.active, .button.button-dark.button-outline.activated { - background-color: #444; - box-shadow: none; - color: #fff; } - -.button-small { - padding: 2px 4px 1px; - min-width: 28px; - min-height: 30px; - font-size: 12px; - line-height: 26px; } - .button-small .icon:before, .button-small.icon:before, .button-small.icon-left:before, .button-small.icon-right:before { - font-size: 16px; - line-height: 19px; - margin-top: 3px; } - -.button-large { - padding: 0 16px; - min-width: 68px; - min-height: 59px; - font-size: 20px; - line-height: 53px; } - .button-large .icon:before, .button-large.icon:before, .button-large.icon-left:before, .button-large.icon-right:before { - padding-bottom: 2px; - font-size: 32px; - line-height: 51px; } - -.button-icon { - -webkit-transition: opacity 0.1s; - -moz-transition: opacity 0.1s; - transition: opacity 0.1s; - padding: 0 6px; - min-width: initial; - border-color: transparent; - background: none; } - .button-icon.button.active, .button-icon.button.activated { - border-color: transparent; - background: none; - box-shadow: none; - opacity: 0.3; } - .button-icon .icon:before, .button-icon.icon:before { - font-size: 32px; } - -.button-clear { - -webkit-transition: opacity 0.1s; - -moz-transition: opacity 0.1s; - transition: opacity 0.1s; - padding: 0 6px; - max-height: 42px; - border-color: transparent; - background: none; - box-shadow: none; } - .button-clear.button-clear { - border-color: transparent; - background: none; - box-shadow: none; - color: #b2b2b2; } - .button-clear.button-icon { - border-color: transparent; - background: none; } - .button-clear.active, .button-clear.activated { - opacity: 0.3; } - -.button-outline { - -webkit-transition: opacity 0.1s; - -moz-transition: opacity 0.1s; - transition: opacity 0.1s; - background: none; - box-shadow: none; } - .button-outline.button-outline { - border-color: #b2b2b2; - background: transparent; - color: #b2b2b2; } - .button-outline.button-outline.active, .button-outline.button-outline.activated { - background-color: #b2b2b2; - box-shadow: none; - color: #fff; } - -.padding > .button.button-block:first-child { - margin-top: 0; } - -.button-block { - display: block; - clear: both; } - .button-block:after { - clear: both; } - -.button-full, .button-full > .button { - display: block; - margin-right: 0; - margin-left: 0; - border-right-width: 0; - border-left-width: 0; - border-radius: 0; } - -button.button-block, button.button-full, .button-full > button.button, input.button.button-block { - width: 100%; } - -a.button { - text-decoration: none; } - a.button .icon:before, a.button.icon:before, a.button.icon-left:before, a.button.icon-right:before { - margin-top: 2px; } - -.button.disabled, .button[disabled] { - opacity: 0.4; - cursor: default !important; - pointer-events: none; } - -/** - * Button Bar - * -------------------------------------------------- - */ -.button-bar { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - width: 100%; } - .button-bar.button-bar-inline { - display: block; - width: auto; - *zoom: 1; } - .button-bar.button-bar-inline:before, .button-bar.button-bar-inline:after { - display: table; - content: ""; - line-height: 0; } - .button-bar.button-bar-inline:after { - clear: both; } - .button-bar.button-bar-inline > .button { - width: auto; - display: inline-block; - float: left; } - -.button-bar > .button { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - display: block; - overflow: hidden; - padding: 0 16px; - width: 0; - border-width: 1px 0px 1px 1px; - border-radius: 0; - text-align: center; - text-overflow: ellipsis; - white-space: nowrap; } - .button-bar > .button:before, .button-bar > .button .icon:before { - line-height: 44px; } - .button-bar > .button:first-child { - border-radius: 2px 0px 0px 2px; } - .button-bar > .button:last-child { - border-right-width: 1px; - border-radius: 0px 2px 2px 0px; } - -/** - * Animations - * -------------------------------------------------- - * The animations in this file are "simple" - not too complex - * and pretty easy on performance. They can be overidden - * and enhanced easily. - */ -/** - * Keyframes - * -------------------------------------------------- - */ -@-webkit-keyframes slideInUp { - 0% { - -webkit-transform: translate3d(0, 100%, 0); } - - 100% { - -webkit-transform: translate3d(0, 0, 0); } } - -@-moz-keyframes slideInUp { - 0% { - -moz-transform: translate3d(0, 100%, 0); } - - 100% { - -moz-transform: translate3d(0, 0, 0); } } - -@keyframes slideInUp { - 0% { - transform: translate3d(0, 100%, 0); } - - 100% { - transform: translate3d(0, 0, 0); } } - -@-webkit-keyframes slideOutUp { - 0% { - -webkit-transform: translate3d(0, 0, 0); } - - 100% { - -webkit-transform: translate3d(0, 100%, 0); } } - -@-moz-keyframes slideOutUp { - 0% { - -moz-transform: translate3d(0, 0, 0); } - - 100% { - -moz-transform: translate3d(0, 100%, 0); } } - -@keyframes slideOutUp { - 0% { - transform: translate3d(0, 0, 0); } - - 100% { - transform: translate3d(0, 100%, 0); } } - -@-webkit-keyframes slideInFromLeft { - from { - -webkit-transform: translate3d(-100%, 0, 0); } - - to { - -webkit-transform: translate3d(0, 0, 0); } } - -@-moz-keyframes slideInFromLeft { - from { - -moz-transform: translateX(-100%); } - - to { - -moz-transform: translateX(0); } } - -@keyframes slideInFromLeft { - from { - transform: translateX(-100%); } - - to { - transform: translateX(0); } } - -@-webkit-keyframes slideInFromRight { - from { - -webkit-transform: translate3d(100%, 0, 0); } - - to { - -webkit-transform: translate3d(0, 0, 0); } } - -@-moz-keyframes slideInFromRight { - from { - -moz-transform: translateX(100%); } - - to { - -moz-transform: translateX(0); } } - -@keyframes slideInFromRight { - from { - transform: translateX(100%); } - - to { - transform: translateX(0); } } - -@-webkit-keyframes slideOutToLeft { - from { - -webkit-transform: translate3d(0, 0, 0); } - - to { - -webkit-transform: translate3d(-100%, 0, 0); } } - -@-moz-keyframes slideOutToLeft { - from { - -moz-transform: translateX(0); } - - to { - -moz-transform: translateX(-100%); } } - -@keyframes slideOutToLeft { - from { - transform: translateX(0); } - - to { - transform: translateX(-100%); } } - -@-webkit-keyframes slideOutToRight { - from { - -webkit-transform: translate3d(0, 0, 0); } - - to { - -webkit-transform: translate3d(100%, 0, 0); } } - -@-moz-keyframes slideOutToRight { - from { - -moz-transform: translateX(0); } - - to { - -moz-transform: translateX(100%); } } - -@keyframes slideOutToRight { - from { - transform: translateX(0); } - - to { - transform: translateX(100%); } } - -@-webkit-keyframes fadeOut { - from { - opacity: 1; } - - to { - opacity: 0; } } - -@-moz-keyframes fadeOut { - from { - opacity: 1; } - - to { - opacity: 0; } } - -@keyframes fadeOut { - from { - opacity: 1; } - - to { - opacity: 0; } } - -@-webkit-keyframes fadeIn { - from { - opacity: 0; } - - to { - opacity: 1; } } - -@-moz-keyframes fadeIn { - from { - opacity: 0; } - - to { - opacity: 1; } } - -@keyframes fadeIn { - from { - opacity: 0; } - - to { - opacity: 1; } } - -@-webkit-keyframes fadeInHalf { - from { - background-color: rgba(0, 0, 0, 0); } - - to { - background-color: rgba(0, 0, 0, 0.5); } } - -@-moz-keyframes fadeInHalf { - from { - background-color: rgba(0, 0, 0, 0); } - - to { - background-color: rgba(0, 0, 0, 0.5); } } - -@keyframes fadeInHalf { - from { - background-color: rgba(0, 0, 0, 0); } - - to { - background-color: rgba(0, 0, 0, 0.5); } } - -@-webkit-keyframes fadeOutHalf { - from { - background-color: rgba(0, 0, 0, 0.5); } - - to { - background-color: rgba(0, 0, 0, 0); } } - -@-moz-keyframes fadeOutHalf { - from { - background-color: rgba(0, 0, 0, 0.5); } - - to { - background-color: rgba(0, 0, 0, 0); } } - -@keyframes fadeOutHalf { - from { - background-color: rgba(0, 0, 0, 0.5); } - - to { - background-color: rgba(0, 0, 0, 0); } } - -@-webkit-keyframes scaleOut { - from { - -webkit-transform: scale(1); - opacity: 1; } - - to { - -webkit-transform: scale(0.8); - opacity: 0; } } - -@-moz-keyframes scaleOut { - from { - -moz-transform: scale(1); - opacity: 1; } - - to { - -moz-transform: scale(0.8); - opacity: 0; } } - -@keyframes scaleOut { - from { - transform: scale(1); - opacity: 1; } - - to { - transform: scale(0.8); - opacity: 0; } } - -@-webkit-keyframes scaleIn { - from { - -webkit-transform: scale(0); } - - to { - -webkit-transform: scale(1); } } - -@-moz-keyframes scaleIn { - from { - -moz-transform: scale(0); } - - to { - -moz-transform: scale(1); } } - -@keyframes scaleIn { - from { - transform: scale(0); } - - to { - transform: scale(1); } } - -@-webkit-keyframes superScaleIn { - from { - -webkit-transform: scale(1.2); - opacity: 0; } - - to { - -webkit-transform: scale(1); - opacity: 1; } } - -@-moz-keyframes superScaleIn { - from { - -moz-transform: scale(1.2); - opacity: 0; } - - to { - -moz-transform: scale(1); - opacity: 1; } } - -@keyframes superScaleIn { - from { - transform: scale(1.2); - opacity: 0; } - - to { - transform: scale(1); - opacity: 1; } } - -@-webkit-keyframes spin { - 100% { - -webkit-transform: rotate(360deg); } } - -@-moz-keyframes spin { - 100% { - -moz-transform: rotate(360deg); } } - -@keyframes spin { - 100% { - transform: rotate(360deg); } } - -.no-animation > .ng-enter, .no-animation.ng-enter, .no-animation > .ng-leave, .no-animation.ng-leave { - -webkit-transition: none; - -moz-transition: none; - transition: none; } - -.noop-animation > .ng-enter, .noop-animation.ng-enter, .noop-animation > .ng-leave, .noop-animation.ng-leave { - -webkit-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - -moz-transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - transition: all cubic-bezier(0.25, 0.46, 0.45, 0.94) 250ms; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; } - -.ng-animate .pane { - position: absolute; } - -/** - * Slide Left-Right, and Right-Left, each with the reserve - * -------------------------------------------------- - * NEW content slides IN from the RIGHT, OLD slides OUT to the LEFT - * Reverse: NEW content slides IN from the LEFT, OLD slides OUT to the RIGHT - */ -.slide-left-right > .ng-enter, .slide-left-right.ng-enter, .slide-left-right > .ng-leave, .slide-left-right.ng-leave, .slide-right-left.reverse > .ng-enter, .slide-right-left.reverse.ng-enter, .slide-right-left.reverse > .ng-leave, .slide-right-left.reverse.ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; } -.slide-left-right > .ng-enter, .slide-left-right.ng-enter, .slide-right-left.reverse > .ng-enter, .slide-right-left.reverse.ng-enter { - /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } -.slide-left-right > .ng-enter.ng-enter-active, .slide-left-right.ng-enter.ng-enter-active, .slide-right-left.reverse > .ng-enter.ng-enter-active, .slide-right-left.reverse.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the RIGHT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-left-right > .ng-leave.ng-leave-active, .slide-left-right.ng-leave.ng-leave-active, .slide-right-left.reverse > .ng-leave.ng-leave-active, .slide-right-left.reverse.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the LEFT */ - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } - -.slide-left-right.reverse > .ng-enter, .slide-left-right.reverse.ng-enter, .slide-left-right.reverse > .ng-leave, .slide-left-right.reverse.ng-leave, .slide-right-left > .ng-enter, .slide-right-left.ng-enter, .slide-right-left > .ng-leave, .slide-right-left.ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; } -.slide-left-right.reverse > .ng-enter, .slide-left-right.reverse.ng-enter, .slide-right-left > .ng-enter, .slide-right-left.ng-enter { - /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } -.slide-left-right.reverse > .ng-enter.ng-enter-active, .slide-left-right.reverse.ng-enter.ng-enter-active, .slide-right-left > .ng-enter.ng-enter-active, .slide-right-left.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the LEFT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-left-right.reverse > .ng-leave.ng-leave-active, .slide-left-right.reverse.ng-leave.ng-leave-active, .slide-right-left > .ng-leave.ng-leave-active, .slide-right-left.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } - -/** - * iOS style slide left to right - * -------------------------------------------------- - */ -/* -$ios-transition-box-shadow-start: -200px 0px 200px rgba(0,0,0,0), -5px 0px 5px rgba(0,0,0,0.01); -$ios-transition-box-shadow-end: -200px 0px 200px rgba(0,0,0,0.15), -5px 0px 5px rgba(0,0,0,0.18); -*/ -.slide-ios > .ng-enter, .slide-ios.ng-enter, .slide-ios > .ng-leave, .slide-ios.ng-leave, .slide-left-right-ios7 > .ng-enter, .slide-left-right-ios7.ng-enter, .slide-left-right-ios7 > .ng-leave, .slide-left-right-ios7.ng-leave, .slide-right-left-ios7.reverse > .ng-enter, .slide-right-left-ios7.reverse.ng-enter, .slide-right-left-ios7.reverse > .ng-leave, .slide-right-left-ios7.reverse.ng-leave { - -webkit-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - -moz-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - position: absolute; - top: 0; - bottom: 0; - width: auto; - border-right: none; - border-left: none; } - .slide-ios > .ng-enter:not(.bar), .slide-ios.ng-enter:not(.bar), .slide-ios > .ng-leave:not(.bar), .slide-ios.ng-leave:not(.bar), .slide-left-right-ios7 > .ng-enter:not(.bar), .slide-left-right-ios7.ng-enter:not(.bar), .slide-left-right-ios7 > .ng-leave:not(.bar), .slide-left-right-ios7.ng-leave:not(.bar), .slide-right-left-ios7.reverse > .ng-enter:not(.bar), .slide-right-left-ios7.reverse.ng-enter:not(.bar), .slide-right-left-ios7.reverse > .ng-leave:not(.bar), .slide-right-left-ios7.reverse.ng-leave:not(.bar) { - border-right: none; - border-left: none; } -.slide-ios > .ng-enter, .slide-ios.ng-enter, .slide-left-right-ios7 > .ng-enter, .slide-left-right-ios7.ng-enter, .slide-right-left-ios7.reverse > .ng-enter, .slide-right-left-ios7.reverse.ng-enter { - /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } -.slide-ios > .ng-leave, .slide-ios.ng-leave, .slide-left-right-ios7 > .ng-leave, .slide-left-right-ios7.ng-leave, .slide-right-left-ios7.reverse > .ng-leave, .slide-right-left-ios7.reverse.ng-leave { - z-index: 1; } -.slide-ios > .ng-enter.ng-enter-active, .slide-ios.ng-enter.ng-enter-active, .slide-left-right-ios7 > .ng-enter.ng-enter-active, .slide-left-right-ios7.ng-enter.ng-enter-active, .slide-right-left-ios7.reverse > .ng-enter.ng-enter-active, .slide-right-left-ios7.reverse.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the RIGHT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-ios > .ng-leave.ng-leave-active, .slide-ios.ng-leave.ng-leave-active, .slide-left-right-ios7 > .ng-leave.ng-leave-active, .slide-left-right-ios7.ng-leave.ng-leave-active, .slide-right-left-ios7.reverse > .ng-leave.ng-leave-active, .slide-right-left-ios7.reverse.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the LEFT */ - -webkit-transform: translate3d(-20%, 0, 0); - -moz-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); } - -.slide-ios.reverse > .ng-enter, .slide-ios.reverse.ng-enter, .slide-ios.reverse > .ng-leave, .slide-ios.reverse.ng-leave, .slide-left-right-ios7.reverse > .ng-enter, .slide-left-right-ios7.reverse.ng-enter, .slide-left-right-ios7.reverse > .ng-leave, .slide-left-right-ios7.reverse.ng-leave, .slide-right-left-ios7 > .ng-enter, .slide-right-left-ios7.ng-enter, .slide-right-left-ios7 > .ng-leave, .slide-right-left-ios7.ng-leave { - -webkit-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - -moz-transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - transition: all cubic-bezier(0.4, 0.6, 0.2, 1) 400ms; - position: absolute; - top: 0; - bottom: 0; - width: auto; - border-right: none; - border-left: none; } -.slide-ios.reverse > .ng-enter, .slide-ios.reverse.ng-enter, .slide-left-right-ios7.reverse > .ng-enter, .slide-left-right-ios7.reverse.ng-enter, .slide-right-left-ios7 > .ng-enter, .slide-right-left-ios7.ng-enter { - /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ - -webkit-transform: translate3d(-20%, 0, 0); - -moz-transform: translate3d(-20%, 0, 0); - transform: translate3d(-20%, 0, 0); } -.slide-ios.reverse > .ng-leave, .slide-ios.reverse.ng-leave, .slide-left-right-ios7.reverse > .ng-leave, .slide-left-right-ios7.reverse.ng-leave, .slide-right-left-ios7 > .ng-leave, .slide-right-left-ios7.ng-leave { - z-index: 2; } -.slide-ios.reverse > .ng-enter.ng-enter-active, .slide-ios.reverse.ng-enter.ng-enter-active, .slide-left-right-ios7.reverse > .ng-enter.ng-enter-active, .slide-left-right-ios7.reverse.ng-enter.ng-enter-active, .slide-right-left-ios7 > .ng-enter.ng-enter-active, .slide-right-left-ios7.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the LEFT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-ios.reverse > .ng-leave.ng-leave-active, .slide-ios.reverse.ng-leave.ng-leave-active, .slide-left-right-ios7.reverse > .ng-leave.ng-leave-active, .slide-left-right-ios7.reverse.ng-leave.ng-leave-active, .slide-right-left-ios7 > .ng-leave.ng-leave-active, .slide-right-left-ios7.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } - -/** - * iPad doesn't like box shadows - */ -.grade-a .slide-ios > .ng-enter:not(.platform-ipad), .grade-a .slide-ios.ng-enter:not(.platform-ipad), .grade-a .slide-left-right-ios7 > .ng-enter:not(.platform-ipad), .grade-a .slide-left-right-ios7.ng-enter:not(.platform-ipad), .grade-a .slide-right-left-ios7.reverse > .ng-enter:not(.platform-ipad), .grade-a .slide-right-left-ios7.reverse.ng-enter:not(.platform-ipad) { - box-shadow: none; } -.grade-a .slide-ios > .ng-enter.ng-enter-active:not(.platform-ipad), .grade-a .slide-ios.ng-enter.ng-enter-active:not(.platform-ipad), .grade-a .slide-left-right-ios7 > .ng-enter.ng-enter-active:not(.platform-ipad), .grade-a .slide-left-right-ios7.ng-enter.ng-enter-active:not(.platform-ipad), .grade-a .slide-right-left-ios7.reverse > .ng-enter.ng-enter-active:not(.platform-ipad), .grade-a .slide-right-left-ios7.reverse.ng-enter.ng-enter-active:not(.platform-ipad) { - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); } -.grade-a .slide-ios > .ng-leave, .grade-a .slide-ios.ng-leave, .grade-a .slide-left-right-ios7 > .ng-leave, .grade-a .slide-left-right-ios7.ng-leave, .grade-a .slide-right-left-ios7.reverse > .ng-leave, .grade-a .slide-right-left-ios7.reverse.ng-leave { - opacity: 1; } -.grade-a .slide-ios > .ng-leave.ng-leave-active, .grade-a .slide-ios.ng-leave.ng-leave-active, .grade-a .slide-left-right-ios7 > .ng-leave.ng-leave-active, .grade-a .slide-left-right-ios7.ng-leave.ng-leave-active, .grade-a .slide-right-left-ios7.reverse > .ng-leave.ng-leave-active, .grade-a .slide-right-left-ios7.reverse.ng-leave.ng-leave-active { - opacity: 0.9; } -.grade-a .slide-ios.reverse > .ng-enter, .grade-a .slide-ios.reverse.ng-enter, .grade-a .slide-left-right-ios7.reverse > .ng-enter, .grade-a .slide-left-right-ios7.reverse.ng-enter, .grade-a .slide-right-left-ios7 > .ng-enter, .grade-a .slide-right-left-ios7.ng-enter { - opacity: 0.9; } -.grade-a .slide-ios.reverse > .ng-enter.ng-enter-active, .grade-a .slide-ios.reverse.ng-enter.ng-enter-active, .grade-a .slide-left-right-ios7.reverse > .ng-enter.ng-enter-active, .grade-a .slide-left-right-ios7.reverse.ng-enter.ng-enter-active, .grade-a .slide-right-left-ios7 > .ng-enter.ng-enter-active, .grade-a .slide-right-left-ios7.ng-enter.ng-enter-active { - opacity: 1; } -.grade-a .slide-ios.reverse > .ng-leave, .grade-a .slide-ios.reverse.ng-leave, .grade-a .slide-left-right-ios7.reverse > .ng-leave, .grade-a .slide-left-right-ios7.reverse.ng-leave, .grade-a .slide-right-left-ios7 > .ng-leave, .grade-a .slide-right-left-ios7.ng-leave { - box-shadow: 0px 0px 12px rgba(0, 0, 0, 0.5); - opacity: 1; } -.grade-a .slide-ios.reverse > .ng-leave.ng-leave-active, .grade-a .slide-ios.reverse.ng-leave.ng-leave-active, .grade-a .slide-left-right-ios7.reverse > .ng-leave.ng-leave-active, .grade-a .slide-left-right-ios7.reverse.ng-leave.ng-leave-active, .grade-a .slide-right-left-ios7 > .ng-leave.ng-leave-active, .grade-a .slide-right-left-ios7.ng-leave.ng-leave-active { - box-shadow: none; } - -.slide-full > .ng-enter, .slide-full.ng-enter, .slide-full > .ng-leave, .slide-full.ng-leave { - -webkit-transition: all ease-in-out 400ms; - -moz-transition: all ease-in-out 400ms; - transition: all ease-in-out 400ms; - position: absolute; - top: 0; - right: -1px; - bottom: 0; - left: -1px; - width: auto; - border-right: none; - border-left: none; } - .slide-full > .ng-enter:not(.bar), .slide-full.ng-enter:not(.bar), .slide-full > .ng-leave:not(.bar), .slide-full.ng-leave:not(.bar) { - border-right: none; - border-left: none; } -.slide-full > .ng-enter, .slide-full.ng-enter { - /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } -.slide-full > .ng-leave, .slide-full.ng-leave { - z-index: 1; } -.slide-full > .ng-enter.ng-enter-active, .slide-full.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the RIGHT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-full > .ng-leave.ng-leave-active, .slide-full.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the LEFT */ - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } - -.slide-full.reverse > .ng-enter, .slide-full.reverse.ng-enter, .slide-full.reverse > .ng-leave, .slide-full.reverse.ng-leave { - -webkit-transition: all ease-in-out 400ms; - -moz-transition: all ease-in-out 400ms; - transition: all ease-in-out 400ms; - position: absolute; - top: 0; - right: -1px; - bottom: 0; - left: -1px; - width: auto; - border-right: none; - border-left: none; } -.slide-full.reverse > .ng-enter, .slide-full.reverse.ng-enter { - /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } -.slide-full.reverse > .ng-leave, .slide-full.reverse.ng-leave { - z-index: 2; } -.slide-full.reverse > .ng-enter.ng-enter-active, .slide-full.reverse.ng-enter.ng-enter-active { - /* NEW content ACTIVELY sliding IN from the LEFT */ - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } -.slide-full.reverse > .ng-leave.ng-leave-active, .slide-full.reverse.ng-leave.ng-leave-active { - /* OLD content ACTIVELY sliding OUT to the RIGHT */ - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } - -.fade-explode.reverse > .ng-enter, .fade-explode.reverse.ng-enter, .fade-explode.reverse > .ng-leave, .fade-explode.reverse.ng-leave { - -webkit-transition: all ease-out 300ms; - -moz-transition: all ease-out 300ms; - transition: all ease-out 300ms; - position: absolute; - top: 0; - right: -1px; - bottom: 0; - left: -1px; - width: auto; } - .fade-explode.reverse > .ng-enter:not(.bar), .fade-explode.reverse.ng-enter:not(.bar), .fade-explode.reverse > .ng-leave:not(.bar), .fade-explode.reverse.ng-leave:not(.bar) { - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; } -.fade-explode.reverse > .ng-enter, .fade-explode.reverse.ng-enter { - /* NEW content placed far LEFT BEFORE it slides IN from the LEFT */ - -webkit-transform: scale(0.95); - -moz-transform: scale(0.95); - transform: scale(0.95); - opacity: 0; - z-index: 1; } -.fade-explode.reverse > .ng-leave, .fade-explode.reverse.ng-leave { - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); - opacity: 1; - z-index: 2; } -.fade-explode.reverse > .ng-enter.ng-enter-active, .fade-explode.reverse.ng-enter.ng-enter-active { - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); - opacity: 1; } -.fade-explode.reverse > .ng-leave.ng-leave-active, .fade-explode.reverse.ng-leave.ng-leave-active { - -webkit-transform: scale(1.6); - -moz-transform: scale(1.6); - transform: scale(1.6); - opacity: 0; } - -/** - * Android style "pop in" with fade and scale - */ -.fade-implode > .ng-enter, .fade-implode.ng-enter, .fade-implode > .ng-leave, .fade-implode.ng-leave { - -webkit-transition: all ease-out 200ms; - -moz-transition: all ease-out 200ms; - transition: all ease-out 200ms; - position: absolute; - top: 0; - right: -1px; - bottom: 0; - left: -1px; - width: auto; } - .fade-implode > .ng-enter:not(.bar), .fade-implode.ng-enter:not(.bar), .fade-implode > .ng-leave:not(.bar), .fade-implode.ng-leave:not(.bar) { - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; } -.fade-implode > .ng-enter, .fade-implode.ng-enter { - /* NEW content placed far RIGHT BEFORE it slides IN from the RIGHT */ - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - transform: scale(0.8); - opacity: 0; - z-index: 2; } -.fade-implode > .ng-leave, .fade-implode.ng-leave { - z-index: 1; } -.fade-implode > .ng-enter.ng-enter-active, .fade-implode.ng-enter.ng-enter-active { - /* NEW content */ - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); - opacity: 1; } - -.fade-implode.reverse > .ng-enter, .fade-implode.reverse.ng-enter, .fade-implode.reverse > .ng-leave, .fade-implode.reverse.ng-leave { - -webkit-transition: all ease-out 200ms; - -moz-transition: all ease-out 200ms; - transition: all ease-out 200ms; - position: absolute; - top: 0; - right: -1px; - bottom: 0; - left: -1px; - width: auto; - border-right: 1px solid #ddd; - border-left: 1px solid #ddd; } -.fade-implode.reverse > .ng-enter, .fade-implode.reverse.ng-enter { - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); - opacity: 1; - z-index: 1; } -.fade-implode.reverse > .ng-leave, .fade-implode.reverse.ng-leave { - -webkit-transform: scale(1); - -moz-transform: scale(1); - transform: scale(1); - opacity: 1; - z-index: 2; } -.fade-implode.reverse > .ng-enter.ng-enter-active, .fade-implode.reverse.ng-enter.ng-enter-active { - opacity: 1; } -.fade-implode.reverse > .ng-leave.ng-leave-active, .fade-implode.reverse.ng-leave.ng-leave-active { - -webkit-transform: scale(0.8); - -moz-transform: scale(0.8); - transform: scale(0.8); - opacity: 0; } - -/** - * Simple slide-in animation - */ -.slide-in-left { - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - .slide-in-left.ng-enter, .slide-in-left > .ng-enter { - -webkit-animation-name: slideInFromLeft; - -moz-animation-name: slideInFromLeft; - animation-name: slideInFromLeft; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .slide-in-left.ng-leave, .slide-in-left > .ng-leave { - -webkit-animation-name: slideOutToLeft; - -moz-animation-name: slideOutToLeft; - animation-name: slideOutToLeft; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-in-left-add { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-in-left-add-active { - -webkit-animation-name: slideInFromLeft; - -moz-animation-name: slideInFromLeft; - animation-name: slideInFromLeft; } - -.slide-out-left { - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); } - .slide-out-left.ng-enter, .slide-out-left > .ng-enter { - -webkit-animation-name: slideOutToLeft; - -moz-animation-name: slideOutToLeft; - animation-name: slideOutToLeft; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .slide-out-left.ng-leave, .slide-out-left > .ng-leave { - -webkit-animation-name: slideOutToLeft; - -moz-animation-name: slideOutToLeft; - animation-name: slideOutToLeft; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-out-left-add { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-out-left-add-active { - -webkit-animation-name: slideOutToLeft; - -moz-animation-name: slideOutToLeft; - animation-name: slideOutToLeft; } - -.slide-in-right { - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); } - .slide-in-right.ng-enter, .slide-in-right > .ng-enter { - -webkit-animation-name: slideInFromRight; - -moz-animation-name: slideInFromRight; - animation-name: slideInFromRight; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .slide-in-right.ng-leave, .slide-in-right > .ng-leave { - -webkit-animation-name: slideOutToRight; - -moz-animation-name: slideOutToRight; - animation-name: slideOutToRight; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-in-right-add { - -webkit-transform: translate3d(-100%, 0, 0); - -moz-transform: translate3d(-100%, 0, 0); - transform: translate3d(-100%, 0, 0); - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-in-right-add-active { - -webkit-animation-name: slideInFromRight; - -moz-animation-name: slideInFromRight; - animation-name: slideInFromRight; } - -.slide-out-right { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } - .slide-out-right.ng-enter, .slide-out-right > .ng-enter { - -webkit-animation-name: slideOutToRight; - -moz-animation-name: slideOutToRight; - animation-name: slideOutToRight; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - .slide-out-right.ng-leave, .slide-out-right > .ng-leave { - -webkit-animation-name: slideOutToRight; - -moz-animation-name: slideOutToRight; - animation-name: slideOutToRight; - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-out-right-add { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - -webkit-animation-duration: 250ms; - -moz-animation-duration: 250ms; - animation-duration: 250ms; - -webkit-animation-timing-function: ease-in-out; - -moz-animation-timing-function: ease-in-out; - animation-timing-function: ease-in-out; - -webkit-animation-fill-mode: both; - -moz-animation-fill-mode: both; - animation-fill-mode: both; } - -.slide-out-right-add-active { - -webkit-animation-name: slideOutToRight; - -moz-animation-name: slideOutToRight; - animation-name: slideOutToRight; } - -/** - * Slide up from the bottom, used for modals - * -------------------------------------------------- - */ -.slide-in-up { - -webkit-transform: translate3d(0, 100%, 0); - -moz-transform: translate3d(0, 100%, 0); - transform: translate3d(0, 100%, 0); } - -.slide-in-up.ng-enter, .slide-in-up > .ng-enter { - -webkit-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; - -moz-transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; - transition: all cubic-bezier(0.1, 0.7, 0.1, 1) 400ms; } - -.slide-in-up.ng-enter-active, .slide-in-up > .ng-enter-active { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); } - -.slide-in-up.ng-leave, .slide-in-up > .ng-leave { - -webkit-transition: all ease-in-out 250ms; - -moz-transition: all ease-in-out 250ms; - transition: all ease-in-out 250ms; } - -.fade-in { - -webkit-animation: fadeOut 0.3s; - -moz-animation: fadeOut 0.3s; - animation: fadeOut 0.3s; } - .fade-in.active { - -webkit-animation: fadeIn 0.3s; - -moz-animation: fadeIn 0.3s; - animation: fadeIn 0.3s; } - -.fade-in-not-out.ng-enter, .fade-in-not-out .ng-enter { - -webkit-animation: fadeIn 0.3s; - -moz-animation: fadeIn 0.3s; - animation: fadeIn 0.3s; - position: relative; } -.fade-in-not-out.ng-leave, .fade-in-not-out .ng-leave { - display: none; } - -/** - * Some component specific animations - */ -.nav-title-slide-ios:not(.no-animation) .button.back-button, .nav-title-slide-ios7:not(.no-animation) .button.back-button { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); - opacity: 1; } - .nav-title-slide-ios:not(.no-animation) .button.back-button.active, .nav-title-slide-ios:not(.no-animation) .button.back-button.activated, .nav-title-slide-ios7:not(.no-animation) .button.back-button.active, .nav-title-slide-ios7:not(.no-animation) .button.back-button.activated { - opacity: 0.5; } - .nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide, .nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide { - opacity: 0; - -webkit-transform: translate3d(30%, 0, 0); - -moz-transform: translate3d(30%, 0, 0); - transform: translate3d(30%, 0, 0); } - .nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-remove, .nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-remove { - display: block !important; } - .nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add { - position: absolute; } -.nav-title-slide-ios > .ng-enter, .nav-title-slide-ios.ng-enter, .nav-title-slide-ios > .ng-leave, .nav-title-slide-ios.ng-leave, .nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter, .nav-title-slide-ios7 > .ng-leave, .nav-title-slide-ios7.ng-leave { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - opacity: 1; } -.nav-title-slide-ios > .ng-enter, .nav-title-slide-ios.ng-enter, .nav-title-slide-ios7 > .ng-enter, .nav-title-slide-ios7.ng-enter { - -webkit-transform: translate3d(30%, 0, 0); - -moz-transform: translate3d(30%, 0, 0); - transform: translate3d(30%, 0, 0); - opacity: 0; } - .nav-title-slide-ios > .ng-enter.title, .nav-title-slide-ios.ng-enter.title, .nav-title-slide-ios7 > .ng-enter.title, .nav-title-slide-ios7.ng-enter.title { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } -.nav-title-slide-ios > .ng-enter.ng-enter-active, .nav-title-slide-ios.ng-enter.ng-enter-active, .nav-title-slide-ios7 > .ng-enter.ng-enter-active, .nav-title-slide-ios7.ng-enter.ng-enter-active { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; } -.nav-title-slide-ios > .ng-leave.ng-leave-active, .nav-title-slide-ios.ng-leave.ng-leave-active, .nav-title-slide-ios7 > .ng-leave.ng-leave-active, .nav-title-slide-ios7.ng-leave.ng-leave-active { - -webkit-transform: translate3d(-30%, 0, 0); - -moz-transform: translate3d(-30%, 0, 0); - transform: translate3d(-30%, 0, 0); - opacity: 0; } -.nav-title-slide-ios.reverse > .ng-enter, .nav-title-slide-ios.reverse.ng-enter, .nav-title-slide-ios.reverse > .ng-leave, .nav-title-slide-ios.reverse.ng-leave, .nav-title-slide-ios7.reverse > .ng-enter, .nav-title-slide-ios7.reverse.ng-enter, .nav-title-slide-ios7.reverse > .ng-leave, .nav-title-slide-ios7.reverse.ng-leave { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - -moz-transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - transition-timing-function: cubic-bezier(0.4, 0.6, 0.2, 1); - opacity: 1; } -.nav-title-slide-ios.reverse > .ng-enter, .nav-title-slide-ios.reverse.ng-enter, .nav-title-slide-ios7.reverse > .ng-enter, .nav-title-slide-ios7.reverse.ng-enter { - -webkit-transform: translate3d(-30%, 0, 0); - -moz-transform: translate3d(-30%, 0, 0); - transform: translate3d(-30%, 0, 0); - opacity: 0; } -.nav-title-slide-ios.reverse > .ng-enter.ng-enter-active, .nav-title-slide-ios.reverse.ng-enter.ng-enter-active, .nav-title-slide-ios7.reverse > .ng-enter.ng-enter-active, .nav-title-slide-ios7.reverse.ng-enter.ng-enter-active { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; } -.nav-title-slide-ios.reverse > .ng-leave.ng-leave-active, .nav-title-slide-ios.reverse.ng-leave.ng-leave-active, .nav-title-slide-ios7.reverse > .ng-leave.ng-leave-active, .nav-title-slide-ios7.reverse.ng-leave.ng-leave-active { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - opacity: 0; } - -/** - * Some component specific animations - */ -.nav-title-slide-full:not(.no-animation) .button.back-button { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; - -webkit-transform: translate3d(0%, 0, 0); - -moz-transform: translate3d(0%, 0, 0); - transform: translate3d(0%, 0, 0); - opacity: 1; } - .nav-title-slide-full:not(.no-animation) .button.back-button.active, .nav-title-slide-full:not(.no-animation) .button.back-button.activated { - opacity: 0.5; } - .nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide { - opacity: 0; - -webkit-transform: translate3d(30%, 0, 0); - -moz-transform: translate3d(30%, 0, 0); - transform: translate3d(30%, 0, 0); } - .nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-remove { - display: block !important; } - .nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-add { - position: absolute; } -.nav-title-slide-full > .ng-enter, .nav-title-slide-full.ng-enter, .nav-title-slide-full > .ng-leave, .nav-title-slide-full.ng-leave { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; - opacity: 1; } -.nav-title-slide-full > .ng-enter, .nav-title-slide-full.ng-enter { - -webkit-transform: translate3d(30%, 0, 0); - -moz-transform: translate3d(30%, 0, 0); - transform: translate3d(30%, 0, 0); - opacity: 0; } - .nav-title-slide-full > .ng-enter.title, .nav-title-slide-full.ng-enter.title { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); } -.nav-title-slide-full > .ng-enter.ng-enter-active, .nav-title-slide-full.ng-enter.ng-enter-active { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; } -.nav-title-slide-full > .ng-leave.ng-leave-active, .nav-title-slide-full.ng-leave.ng-leave-active { - -webkit-transform: translate3d(-30%, 0, 0); - -moz-transform: translate3d(-30%, 0, 0); - transform: translate3d(-30%, 0, 0); - opacity: 0; } -.nav-title-slide-full.reverse > .ng-enter, .nav-title-slide-full.reverse.ng-enter, .nav-title-slide-full.reverse > .ng-leave, .nav-title-slide-full.reverse.ng-leave { - -webkit-transition: all 400ms; - -moz-transition: all 400ms; - transition: all 400ms; - -webkit-transition-timing-function: ease-in-out; - -moz-transition-timing-function: ease-in-out; - transition-timing-function: ease-in-out; - opacity: 1; } -.nav-title-slide-full.reverse > .ng-enter, .nav-title-slide-full.reverse.ng-enter { - -webkit-transform: translate3d(-30%, 0, 0); - -moz-transform: translate3d(-30%, 0, 0); - transform: translate3d(-30%, 0, 0); - opacity: 0; } -.nav-title-slide-full.reverse > .ng-enter.ng-enter-active, .nav-title-slide-full.reverse.ng-enter.ng-enter-active { - -webkit-transform: translate3d(0, 0, 0); - -moz-transform: translate3d(0, 0, 0); - transform: translate3d(0, 0, 0); - opacity: 1; } -.nav-title-slide-full.reverse > .ng-leave.ng-leave-active, .nav-title-slide-full.reverse.ng-leave.ng-leave-active { - -webkit-transform: translate3d(100%, 0, 0); - -moz-transform: translate3d(100%, 0, 0); - transform: translate3d(100%, 0, 0); - opacity: 0; } - -.nav-title-android:not(.no-animation) .button.back-button { - -webkit-transition: all 200ms; - -moz-transition: all 200ms; - transition: all 200ms; - -webkit-transition-timing-function: linear; - -moz-transition-timing-function: linear; - transition-timing-function: linear; - opacity: 1; } - .nav-title-android:not(.no-animation) .button.back-button.ng-hide { - opacity: 0; } - .nav-title-android:not(.no-animation) .button.back-button.ng-hide-add, .nav-title-android:not(.no-animation) .button.back-button.ng-hide-remove { - display: block !important; } - .nav-title-android:not(.no-animation) .button.back-button.ng-hide-add { - position: absolute; } -.nav-title-android > .ng-enter, .nav-title-android.ng-enter, .nav-title-android > .ng-leave, .nav-title-android.ng-leave { - -webkit-transition: all 200ms; - -moz-transition: all 200ms; - transition: all 200ms; - -webkit-transition-timing-function: linear; - -moz-transition-timing-function: linear; - transition-timing-function: linear; } -.nav-title-android > .ng-enter, .nav-title-android.ng-enter { - opacity: 0; } -.nav-title-android > .ng-enter.ng-enter-active, .nav-title-android.ng-enter.ng-enter-active { - opacity: 1; } -.nav-title-android > .ng-leave.ng-leave-active, .nav-title-android.ng-leave.ng-leave-active { - opacity: 0; } - -/** - * Grid - * -------------------------------------------------- - * Using flexbox for the grid, inspired by Philip Walton: - * http://philipwalton.github.io/solved-by-flexbox/demos/grids/ - * By default each .col within a .row will evenly take up - * available width, and the height of each .col with take - * up the height of the tallest .col in the same .row. - */ -.row { - display: -webkit-box; - display: -webkit-flex; - display: -moz-box; - display: -moz-flex; - display: -ms-flexbox; - display: flex; - padding: 5px; - width: 100%; } - -.row-wrap { - -webkit-flex-wrap: wrap; - -moz-flex-wrap: wrap; - -ms-flex-wrap: wrap; - flex-wrap: wrap; } - -.row + .row { - margin-top: -5px; - padding-top: 0; } - -.col { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - display: block; - padding: 5px; - width: 100%; } - -/* Vertically Align Columns */ -/* .row-* vertically aligns every .col in the .row */ -.row-top { - -webkit-box-align: start; - -ms-flex-align: start; - -webkit-align-items: flex-start; - -moz-align-items: flex-start; - align-items: flex-start; } - -.row-bottom { - -webkit-box-align: end; - -ms-flex-align: end; - -webkit-align-items: flex-end; - -moz-align-items: flex-end; - align-items: flex-end; } - -.row-center { - -webkit-box-align: center; - -ms-flex-align: center; - -webkit-align-items: center; - -moz-align-items: center; - align-items: center; } - -.row-stretch { - -webkit-box-align: stretch; - -ms-flex-align: stretch; - -webkit-align-items: stretch; - -moz-align-items: stretch; - align-items: stretch; } - -.row-baseline { - -webkit-box-align: baseline; - -ms-flex-align: baseline; - -webkit-align-items: baseline; - -moz-align-items: baseline; - align-items: baseline; } - -/* .col-* vertically aligns an individual .col */ -.col-top { - -webkit-align-self: flex-start; - -moz-align-self: flex-start; - -ms-flex-item-align: start; - align-self: flex-start; } - -.col-bottom { - -webkit-align-self: flex-end; - -moz-align-self: flex-end; - -ms-flex-item-align: end; - align-self: flex-end; } - -.col-center { - -webkit-align-self: center; - -moz-align-self: center; - -ms-flex-item-align: center; - align-self: center; } - -/* Column Offsets */ -.col-offset-10 { - margin-left: 10%; } - -.col-offset-20 { - margin-left: 20%; } - -.col-offset-25 { - margin-left: 25%; } - -.col-offset-33, .col-offset-34 { - margin-left: 33.3333%; } - -.col-offset-50 { - margin-left: 50%; } - -.col-offset-66, .col-offset-67 { - margin-left: 66.6666%; } - -.col-offset-75 { - margin-left: 75%; } - -.col-offset-80 { - margin-left: 80%; } - -.col-offset-90 { - margin-left: 90%; } - -/* Explicit Column Percent Sizes */ -/* By default each grid column will evenly distribute */ -/* across the grid. However, you can specify individual */ -/* columns to take up a certain size of the available area */ -.col-10 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 10%; - -moz-box-flex: 0; - -moz-flex: 0 0 10%; - -ms-flex: 0 0 10%; - flex: 0 0 10%; - max-width: 10%; } - -.col-20 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 20%; - -moz-box-flex: 0; - -moz-flex: 0 0 20%; - -ms-flex: 0 0 20%; - flex: 0 0 20%; - max-width: 20%; } - -.col-25 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 25%; - -moz-box-flex: 0; - -moz-flex: 0 0 25%; - -ms-flex: 0 0 25%; - flex: 0 0 25%; - max-width: 25%; } - -.col-33, .col-34 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 33.3333%; - -moz-box-flex: 0; - -moz-flex: 0 0 33.3333%; - -ms-flex: 0 0 33.3333%; - flex: 0 0 33.3333%; - max-width: 33.3333%; } - -.col-50 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 50%; - -moz-box-flex: 0; - -moz-flex: 0 0 50%; - -ms-flex: 0 0 50%; - flex: 0 0 50%; - max-width: 50%; } - -.col-66, .col-67 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 66.6666%; - -moz-box-flex: 0; - -moz-flex: 0 0 66.6666%; - -ms-flex: 0 0 66.6666%; - flex: 0 0 66.6666%; - max-width: 66.6666%; } - -.col-75 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 75%; - -moz-box-flex: 0; - -moz-flex: 0 0 75%; - -ms-flex: 0 0 75%; - flex: 0 0 75%; - max-width: 75%; } - -.col-80 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 80%; - -moz-box-flex: 0; - -moz-flex: 0 0 80%; - -ms-flex: 0 0 80%; - flex: 0 0 80%; - max-width: 80%; } - -.col-90 { - -webkit-box-flex: 0; - -webkit-flex: 0 0 90%; - -moz-box-flex: 0; - -moz-flex: 0 0 90%; - -ms-flex: 0 0 90%; - flex: 0 0 90%; - max-width: 90%; } - -/* Responsive Grid Classes */ -/* Adding a class of responsive-X to a row */ -/* will trigger the flex-direction to */ -/* change to column and add some margin */ -/* to any columns in the row for clearity */ -@media (max-width: 567px) { - .responsive-sm { - -webkit-box-direction: normal; - -moz-box-direction: normal; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .responsive-sm .col, .responsive-sm .col-10, .responsive-sm .col-20, .responsive-sm .col-25, .responsive-sm .col-33, .responsive-sm .col-34, .responsive-sm .col-50, .responsive-sm .col-66, .responsive-sm .col-67, .responsive-sm .col-75, .responsive-sm .col-80, .responsive-sm .col-90 { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - margin-bottom: 15px; - margin-left: 0; - max-width: 100%; - width: 100%; } } - -@media (max-width: 767px) { - .responsive-md { - -webkit-box-direction: normal; - -moz-box-direction: normal; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .responsive-md .col, .responsive-md .col-10, .responsive-md .col-20, .responsive-md .col-25, .responsive-md .col-33, .responsive-md .col-34, .responsive-md .col-50, .responsive-md .col-66, .responsive-md .col-67, .responsive-md .col-75, .responsive-md .col-80, .responsive-md .col-90 { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - margin-bottom: 15px; - margin-left: 0; - max-width: 100%; - width: 100%; } } - -@media (max-width: 1023px) { - .responsive-lg { - -webkit-box-direction: normal; - -moz-box-direction: normal; - -webkit-box-orient: vertical; - -moz-box-orient: vertical; - -webkit-flex-direction: column; - -ms-flex-direction: column; - flex-direction: column; } - .responsive-lg .col, .responsive-lg .col-10, .responsive-lg .col-20, .responsive-lg .col-25, .responsive-lg .col-33, .responsive-lg .col-34, .responsive-lg .col-50, .responsive-lg .col-66, .responsive-lg .col-67, .responsive-lg .col-75, .responsive-lg .col-80, .responsive-lg .col-90 { - -webkit-box-flex: 1; - -webkit-flex: 1; - -moz-box-flex: 1; - -moz-flex: 1; - -ms-flex: 1; - flex: 1; - margin-bottom: 15px; - margin-left: 0; - max-width: 100%; - width: 100%; } } - -/** - * Utility Classes - * -------------------------------------------------- - */ -.hide { - display: none; } - -.opacity-hide { - opacity: 0; } - -.grade-b .opacity-hide, .grade-c .opacity-hide { - opacity: 1; - display: none; } - -.show { - display: block; } - -.opacity-show { - opacity: 1; } - -.invisible { - visibility: hidden; } - -.keyboard-open .hide-on-keyboard-open { - display: none; } - -.keyboard-open .tabs.hide-on-keyboard-open + .pane .has-tabs, .keyboard-open .bar-footer.hide-on-keyboard-open + .pane .has-footer { - bottom: 0; } - -.inline { - display: inline-block; } - -.disable-pointer-events { - pointer-events: none; } - -.enable-pointer-events { - pointer-events: auto; } - -.disable-user-behavior { - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-touch-callout: none; - -webkit-tap-highlight-color: rgba(0, 0, 0, 0); - -webkit-tap-highlight-color: transparent; - -webkit-user-drag: none; - -ms-touch-action: none; - -ms-content-zooming: none; } - -.click-block { - position: absolute; - top: 0; - left: 0; - z-index: 99999; - width: 100%; - height: 100%; - background: transparent; } - -.no-resize { - resize: none; } - -.block { - display: block; - clear: both; } - .block:after { - display: block; - visibility: hidden; - clear: both; - height: 0; - content: "."; } - -.full-image { - width: 100%; } - -.clearfix { - *zoom: 1; } - .clearfix:before, .clearfix:after { - display: table; - content: ""; - line-height: 0; } - .clearfix:after { - clear: both; } - -/** - * Content Padding - * -------------------------------------------------- - */ -.padding { - padding: 10px; } - -.padding-top, .padding-vertical { - padding-top: 10px; } - -.padding-right, .padding-horizontal { - padding-right: 10px; } - -.padding-bottom, .padding-vertical { - padding-bottom: 10px; } - -.padding-left, .padding-horizontal { - padding-left: 10px; } - -/** - * Rounded - * -------------------------------------------------- - */ -.rounded { - border-radius: 4px; } - -/** - * Utility Colors - * -------------------------------------------------- - * Utility colors are added to help set a naming convention. You'll - * notice we purposely do not use words like "red" or "blue", but - * instead have colors which represent an emotion or generic theme. - */ -.light, a.light { - color: #fff; } - -.light-bg { - background-color: #fff; } - -.light-border { - border-color: #ddd; } - -.stable, a.stable { - color: #f8f8f8; } - -.stable-bg { - background-color: #f8f8f8; } - -.stable-border { - border-color: #b2b2b2; } - -.positive, a.positive { - color: #4a87ee; } - -.positive-bg { - background-color: #4a87ee; } - -.positive-border { - border-color: #145fd7; } - -.calm, a.calm { - color: #43cee6; } - -.calm-bg { - background-color: #43cee6; } - -.calm-border { - border-color: #1aacc3; } - -.assertive, a.assertive { - color: #ef4e3a; } - -.assertive-bg { - background-color: #ef4e3a; } - -.assertive-border { - border-color: #cc2311; } - -.balanced, a.balanced { - color: #66cc33; } - -.balanced-bg { - background-color: #66cc33; } - -.balanced-border { - border-color: #498f24; } - -.energized, a.energized { - color: #f0b840; } - -.energized-bg { - background-color: #f0b840; } - -.energized-border { - border-color: #d39211; } - -.royal, a.royal { - color: #8a6de9; } - -.royal-bg { - background-color: #8a6de9; } - -.royal-border { - border-color: #552bdf; } - -.dark, a.dark { - color: #444; } - -.dark-bg { - background-color: #444; } - -.dark-border { - border-color: #111; } - -/** - * Platform - * -------------------------------------------------- - * Platform specific tweaks - */ -/** - * Apply roboto font - */ -.roboto { - font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } - .roboto input { - font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, "Lucida Grande", sans-serif; } - -/* -.platform-android { - - - .bar { - padding: 0; - - line-height: 40px; - - .button { - line-height: 40px; - } - - .button-icon:before { - font-size: 24px; - } - } - - .back-button { - &.button-icon:before { - line-height: 40px; - } - margin-left: -3px; - padding: 0px 2px !important; - &.ion-android-arrow-back:before { - font-size: 12px; - } - - &.back-button.active, - &.back-button.activated { - background-color: rgba(0,0,0,0.1); - } - } - - .item-divider { - background: none; - border-top-width: 0; - border-bottom-width: 2px; - text-transform: uppercase; - margin-top: 10px; - font-size: 14px; - } - .item { - border-left-width: 0; - border-right-width: 0; - } - - .item-divider ~ .item:not(.item-divider) { - border-bottom-width: 0; - } - - .back-button:not(.ng-hide) + .left-buttons + .title { - // Don't allow normal titles in this mode - display: none; - } - - .bar .title { - text-align: left; - font-weight: normal; - } - - font-family: 'Roboto'; - - h1, h2, h3, h4, h5 { - font-family: 'Roboto', $font-family-base; - } - - .tab-item { - font-family: 'Roboto', $font-family-base; - } - - - input, button, select, textarea { - font-family: 'Roboto', $font-family-base; - } - */ -.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader) { - height: 64px; } - .platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper { - margin-top: 19px !important; } - .platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader) > * { - margin-top: 20px; } -.platform-ios.platform-cordova:not(.fullscreen) .tabs-top > .tabs, .platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top { - top: 64px; } -.platform-ios.platform-cordova:not(.fullscreen) .has-header, .platform-ios.platform-cordova:not(.fullscreen) .bar-subheader { - top: 64px; } -.platform-ios.platform-cordova:not(.fullscreen) .has-subheader { - top: 108px; } -.platform-ios.platform-cordova:not(.fullscreen) .has-tabs-top { - top: 113px; } -.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top { - top: 157px; } -.platform-ios.platform-cordova.status-bar-hide { - margin-bottom: 20px; } - -@media (orientation: landscape) { - .platform-ios.platform-browser.platform-ipad { - position: fixed; } } - -.platform-c:not(.enable-transitions) * { - -webkit-transition: none !important; - transition: none !important; } diff --git a/src/ionic.min.css b/src/ionic.min.css deleted file mode 100644 index 43b87ed..0000000 --- a/src/ionic.min.css +++ /dev/null @@ -1,18 +0,0 @@ -/*! - * Copyright 2014 Drifty Co. - * http://drifty.com/ - * - * Ionic, v1.0.0-beta.13 - * A powerful HTML5 mobile app framework. - * http://ionicframework.com/ - * - * By @maxlynch, @benjsperry, @adamdbradley <3 - * - * Licensed under the MIT license. Please see LICENSE for more information. - * - *//*! - Ionicons, v1.5.2 - Created by Ben Sperry for the Ionic Framework, http://ionicons.com/ - https://twitter.com/benjsperry https://twitter.com/ionicframework - MIT License: https://github.com/driftyco/ionicons -*/@font-face{font-family:Ionicons;src:url(../fonts/ionicons.eot?v=1.5.2);src:url(../fonts/ionicons.eot?v=1.5.2#iefix) format("embedded-opentype"),url(../fonts/ionicons.ttf?v=1.5.2) format("truetype"),url(../fonts/ionicons.woff?v=1.5.2) format("woff"),url(../fonts/ionicons.svg?v=1.5.2#Ionicons) format("svg");font-weight:400;font-style:normal}.ion,.ion-alert-circled:before,.ion-alert:before,.ion-android-add-contact:before,.ion-android-add:before,.ion-android-alarm:before,.ion-android-archive:before,.ion-android-arrow-back:before,.ion-android-arrow-down-left:before,.ion-android-arrow-down-right:before,.ion-android-arrow-forward:before,.ion-android-arrow-up-left:before,.ion-android-arrow-up-right:before,.ion-android-battery:before,.ion-android-book:before,.ion-android-calendar:before,.ion-android-call:before,.ion-android-camera:before,.ion-android-chat:before,.ion-android-checkmark:before,.ion-android-clock:before,.ion-android-close:before,.ion-android-contact:before,.ion-android-contacts:before,.ion-android-data:before,.ion-android-developer:before,.ion-android-display:before,.ion-android-download:before,.ion-android-drawer:before,.ion-android-dropdown:before,.ion-android-earth:before,.ion-android-folder:before,.ion-android-forums:before,.ion-android-friends:before,.ion-android-hand:before,.ion-android-image:before,.ion-android-inbox:before,.ion-android-information:before,.ion-android-keypad:before,.ion-android-lightbulb:before,.ion-android-locate:before,.ion-android-location:before,.ion-android-mail:before,.ion-android-microphone:before,.ion-android-mixer:before,.ion-android-more:before,.ion-android-note:before,.ion-android-playstore:before,.ion-android-printer:before,.ion-android-promotion:before,.ion-android-reminder:before,.ion-android-remove:before,.ion-android-search:before,.ion-android-send:before,.ion-android-settings:before,.ion-android-share:before,.ion-android-social-user:before,.ion-android-social:before,.ion-android-sort:before,.ion-android-stair-drawer:before,.ion-android-star:before,.ion-android-stopwatch:before,.ion-android-storage:before,.ion-android-system-back:before,.ion-android-system-home:before,.ion-android-system-windows:before,.ion-android-timer:before,.ion-android-trash:before,.ion-android-user-menu:before,.ion-android-volume:before,.ion-android-wifi:before,.ion-aperture:before,.ion-archive:before,.ion-arrow-down-a:before,.ion-arrow-down-b:before,.ion-arrow-down-c:before,.ion-arrow-expand:before,.ion-arrow-graph-down-left:before,.ion-arrow-graph-down-right:before,.ion-arrow-graph-up-left:before,.ion-arrow-graph-up-right:before,.ion-arrow-left-a:before,.ion-arrow-left-b:before,.ion-arrow-left-c:before,.ion-arrow-move:before,.ion-arrow-resize:before,.ion-arrow-return-left:before,.ion-arrow-return-right:before,.ion-arrow-right-a:before,.ion-arrow-right-b:before,.ion-arrow-right-c:before,.ion-arrow-shrink:before,.ion-arrow-swap:before,.ion-arrow-up-a:before,.ion-arrow-up-b:before,.ion-arrow-up-c:before,.ion-asterisk:before,.ion-at:before,.ion-bag:before,.ion-battery-charging:before,.ion-battery-empty:before,.ion-battery-full:before,.ion-battery-half:before,.ion-battery-low:before,.ion-beaker:before,.ion-beer:before,.ion-bluetooth:before,.ion-bonfire:before,.ion-bookmark:before,.ion-briefcase:before,.ion-bug:before,.ion-calculator:before,.ion-calendar:before,.ion-camera:before,.ion-card:before,.ion-cash:before,.ion-chatbox-working:before,.ion-chatbox:before,.ion-chatboxes:before,.ion-chatbubble-working:before,.ion-chatbubble:before,.ion-chatbubbles:before,.ion-checkmark-circled:before,.ion-checkmark-round:before,.ion-checkmark:before,.ion-chevron-down:before,.ion-chevron-left:before,.ion-chevron-right:before,.ion-chevron-up:before,.ion-clipboard:before,.ion-clock:before,.ion-close-circled:before,.ion-close-round:before,.ion-close:before,.ion-closed-captioning:before,.ion-cloud:before,.ion-code-download:before,.ion-code-working:before,.ion-code:before,.ion-coffee:before,.ion-compass:before,.ion-compose:before,.ion-connection-bars:before,.ion-contrast:before,.ion-cube:before,.ion-disc:before,.ion-document-text:before,.ion-document:before,.ion-drag:before,.ion-earth:before,.ion-edit:before,.ion-egg:before,.ion-eject:before,.ion-email:before,.ion-eye-disabled:before,.ion-eye:before,.ion-female:before,.ion-filing:before,.ion-film-marker:before,.ion-fireball:before,.ion-flag:before,.ion-flame:before,.ion-flash-off:before,.ion-flash:before,.ion-flask:before,.ion-folder:before,.ion-fork-repo:before,.ion-fork:before,.ion-forward:before,.ion-funnel:before,.ion-game-controller-a:before,.ion-game-controller-b:before,.ion-gear-a:before,.ion-gear-b:before,.ion-grid:before,.ion-hammer:before,.ion-happy:before,.ion-headphone:before,.ion-heart-broken:before,.ion-heart:before,.ion-help-buoy:before,.ion-help-circled:before,.ion-help:before,.ion-home:before,.ion-icecream:before,.ion-icon-social-google-plus-outline:before,.ion-icon-social-google-plus:before,.ion-image:before,.ion-images:before,.ion-information-circled:before,.ion-information:before,.ion-ionic:before,.ion-ios7-alarm-outline:before,.ion-ios7-alarm:before,.ion-ios7-albums-outline:before,.ion-ios7-albums:before,.ion-ios7-americanfootball-outline:before,.ion-ios7-americanfootball:before,.ion-ios7-analytics-outline:before,.ion-ios7-analytics:before,.ion-ios7-arrow-back:before,.ion-ios7-arrow-down:before,.ion-ios7-arrow-forward:before,.ion-ios7-arrow-left:before,.ion-ios7-arrow-right:before,.ion-ios7-arrow-thin-down:before,.ion-ios7-arrow-thin-left:before,.ion-ios7-arrow-thin-right:before,.ion-ios7-arrow-thin-up:before,.ion-ios7-arrow-up:before,.ion-ios7-at-outline:before,.ion-ios7-at:before,.ion-ios7-barcode-outline:before,.ion-ios7-barcode:before,.ion-ios7-baseball-outline:before,.ion-ios7-baseball:before,.ion-ios7-basketball-outline:before,.ion-ios7-basketball:before,.ion-ios7-bell-outline:before,.ion-ios7-bell:before,.ion-ios7-bolt-outline:before,.ion-ios7-bolt:before,.ion-ios7-bookmarks-outline:before,.ion-ios7-bookmarks:before,.ion-ios7-box-outline:before,.ion-ios7-box:before,.ion-ios7-briefcase-outline:before,.ion-ios7-briefcase:before,.ion-ios7-browsers-outline:before,.ion-ios7-browsers:before,.ion-ios7-calculator-outline:before,.ion-ios7-calculator:before,.ion-ios7-calendar-outline:before,.ion-ios7-calendar:before,.ion-ios7-camera-outline:before,.ion-ios7-camera:before,.ion-ios7-cart-outline:before,.ion-ios7-cart:before,.ion-ios7-chatboxes-outline:before,.ion-ios7-chatboxes:before,.ion-ios7-chatbubble-outline:before,.ion-ios7-chatbubble:before,.ion-ios7-checkmark-empty:before,.ion-ios7-checkmark-outline:before,.ion-ios7-checkmark:before,.ion-ios7-circle-filled:before,.ion-ios7-circle-outline:before,.ion-ios7-clock-outline:before,.ion-ios7-clock:before,.ion-ios7-close-empty:before,.ion-ios7-close-outline:before,.ion-ios7-close:before,.ion-ios7-cloud-download-outline:before,.ion-ios7-cloud-download:before,.ion-ios7-cloud-outline:before,.ion-ios7-cloud-upload-outline:before,.ion-ios7-cloud-upload:before,.ion-ios7-cloud:before,.ion-ios7-cloudy-night-outline:before,.ion-ios7-cloudy-night:before,.ion-ios7-cloudy-outline:before,.ion-ios7-cloudy:before,.ion-ios7-cog-outline:before,.ion-ios7-cog:before,.ion-ios7-compose-outline:before,.ion-ios7-compose:before,.ion-ios7-contact-outline:before,.ion-ios7-contact:before,.ion-ios7-copy-outline:before,.ion-ios7-copy:before,.ion-ios7-download-outline:before,.ion-ios7-download:before,.ion-ios7-drag:before,.ion-ios7-email-outline:before,.ion-ios7-email:before,.ion-ios7-expand:before,.ion-ios7-eye-outline:before,.ion-ios7-eye:before,.ion-ios7-fastforward-outline:before,.ion-ios7-fastforward:before,.ion-ios7-filing-outline:before,.ion-ios7-filing:before,.ion-ios7-film-outline:before,.ion-ios7-film:before,.ion-ios7-flag-outline:before,.ion-ios7-flag:before,.ion-ios7-folder-outline:before,.ion-ios7-folder:before,.ion-ios7-football-outline:before,.ion-ios7-football:before,.ion-ios7-gear-outline:before,.ion-ios7-gear:before,.ion-ios7-glasses-outline:before,.ion-ios7-glasses:before,.ion-ios7-heart-outline:before,.ion-ios7-heart:before,.ion-ios7-help-empty:before,.ion-ios7-help-outline:before,.ion-ios7-help:before,.ion-ios7-home-outline:before,.ion-ios7-home:before,.ion-ios7-infinite-outline:before,.ion-ios7-infinite:before,.ion-ios7-information-empty:before,.ion-ios7-information-outline:before,.ion-ios7-information:before,.ion-ios7-ionic-outline:before,.ion-ios7-keypad-outline:before,.ion-ios7-keypad:before,.ion-ios7-lightbulb-outline:before,.ion-ios7-lightbulb:before,.ion-ios7-location-outline:before,.ion-ios7-location:before,.ion-ios7-locked-outline:before,.ion-ios7-locked:before,.ion-ios7-loop-strong:before,.ion-ios7-loop:before,.ion-ios7-medkit-outline:before,.ion-ios7-medkit:before,.ion-ios7-mic-off:before,.ion-ios7-mic-outline:before,.ion-ios7-mic:before,.ion-ios7-minus-empty:before,.ion-ios7-minus-outline:before,.ion-ios7-minus:before,.ion-ios7-monitor-outline:before,.ion-ios7-monitor:before,.ion-ios7-moon-outline:before,.ion-ios7-moon:before,.ion-ios7-more-outline:before,.ion-ios7-more:before,.ion-ios7-musical-note:before,.ion-ios7-musical-notes:before,.ion-ios7-navigate-outline:before,.ion-ios7-navigate:before,.ion-ios7-paper-outline:before,.ion-ios7-paper:before,.ion-ios7-paperplane-outline:before,.ion-ios7-paperplane:before,.ion-ios7-partlysunny-outline:before,.ion-ios7-partlysunny:before,.ion-ios7-pause-outline:before,.ion-ios7-pause:before,.ion-ios7-paw-outline:before,.ion-ios7-paw:before,.ion-ios7-people-outline:before,.ion-ios7-people:before,.ion-ios7-person-outline:before,.ion-ios7-person:before,.ion-ios7-personadd-outline:before,.ion-ios7-personadd:before,.ion-ios7-photos-outline:before,.ion-ios7-photos:before,.ion-ios7-pie-outline:before,.ion-ios7-pie:before,.ion-ios7-play-outline:before,.ion-ios7-play:before,.ion-ios7-plus-empty:before,.ion-ios7-plus-outline:before,.ion-ios7-plus:before,.ion-ios7-pricetag-outline:before,.ion-ios7-pricetag:before,.ion-ios7-pricetags-outline:before,.ion-ios7-pricetags:before,.ion-ios7-printer-outline:before,.ion-ios7-printer:before,.ion-ios7-pulse-strong:before,.ion-ios7-pulse:before,.ion-ios7-rainy-outline:before,.ion-ios7-rainy:before,.ion-ios7-recording-outline:before,.ion-ios7-recording:before,.ion-ios7-redo-outline:before,.ion-ios7-redo:before,.ion-ios7-refresh-empty:before,.ion-ios7-refresh-outline:before,.ion-ios7-refresh:before,.ion-ios7-reload:before,.ion-ios7-reloading,.ion-ios7-reloading:before,.ion-ios7-reverse-camera-outline:before,.ion-ios7-reverse-camera:before,.ion-ios7-rewind-outline:before,.ion-ios7-rewind:before,.ion-ios7-search-strong:before,.ion-ios7-search:before,.ion-ios7-settings-strong:before,.ion-ios7-settings:before,.ion-ios7-shrink:before,.ion-ios7-skipbackward-outline:before,.ion-ios7-skipbackward:before,.ion-ios7-skipforward-outline:before,.ion-ios7-skipforward:before,.ion-ios7-snowy:before,.ion-ios7-speedometer-outline:before,.ion-ios7-speedometer:before,.ion-ios7-star-half:before,.ion-ios7-star-outline:before,.ion-ios7-star:before,.ion-ios7-stopwatch-outline:before,.ion-ios7-stopwatch:before,.ion-ios7-sunny-outline:before,.ion-ios7-sunny:before,.ion-ios7-telephone-outline:before,.ion-ios7-telephone:before,.ion-ios7-tennisball-outline:before,.ion-ios7-tennisball:before,.ion-ios7-thunderstorm-outline:before,.ion-ios7-thunderstorm:before,.ion-ios7-time-outline:before,.ion-ios7-time:before,.ion-ios7-timer-outline:before,.ion-ios7-timer:before,.ion-ios7-toggle-outline:before,.ion-ios7-toggle:before,.ion-ios7-trash-outline:before,.ion-ios7-trash:before,.ion-ios7-undo-outline:before,.ion-ios7-undo:before,.ion-ios7-unlocked-outline:before,.ion-ios7-unlocked:before,.ion-ios7-upload-outline:before,.ion-ios7-upload:before,.ion-ios7-videocam-outline:before,.ion-ios7-videocam:before,.ion-ios7-volume-high:before,.ion-ios7-volume-low:before,.ion-ios7-wineglass-outline:before,.ion-ios7-wineglass:before,.ion-ios7-world-outline:before,.ion-ios7-world:before,.ion-ipad:before,.ion-iphone:before,.ion-ipod:before,.ion-jet:before,.ion-key:before,.ion-knife:before,.ion-laptop:before,.ion-leaf:before,.ion-levels:before,.ion-lightbulb:before,.ion-link:before,.ion-load-a:before,.ion-load-b:before,.ion-load-c:before,.ion-load-d:before,.ion-loading-a,.ion-loading-a:before,.ion-loading-b,.ion-loading-b:before,.ion-loading-c,.ion-loading-c:before,.ion-loading-d,.ion-loading-d:before,.ion-location:before,.ion-locked:before,.ion-log-in:before,.ion-log-out:before,.ion-loop:before,.ion-looping,.ion-looping:before,.ion-magnet:before,.ion-male:before,.ion-man:before,.ion-map:before,.ion-medkit:before,.ion-merge:before,.ion-mic-a:before,.ion-mic-b:before,.ion-mic-c:before,.ion-minus-circled:before,.ion-minus-round:before,.ion-minus:before,.ion-model-s:before,.ion-monitor:before,.ion-more:before,.ion-mouse:before,.ion-music-note:before,.ion-navicon-round:before,.ion-navicon:before,.ion-navigate:before,.ion-network:before,.ion-no-smoking:before,.ion-nuclear:before,.ion-outlet:before,.ion-paper-airplane:before,.ion-paperclip:before,.ion-pause:before,.ion-person-add:before,.ion-person-stalker:before,.ion-person:before,.ion-pie-graph:before,.ion-pin:before,.ion-pinpoint:before,.ion-pizza:before,.ion-plane:before,.ion-planet:before,.ion-play:before,.ion-playstation:before,.ion-plus-circled:before,.ion-plus-round:before,.ion-plus:before,.ion-podium:before,.ion-pound:before,.ion-power:before,.ion-pricetag:before,.ion-pricetags:before,.ion-printer:before,.ion-pull-request:before,.ion-qr-scanner:before,.ion-quote:before,.ion-radio-waves:before,.ion-record:before,.ion-refresh:before,.ion-refreshing,.ion-refreshing:before,.ion-reply-all:before,.ion-reply:before,.ion-ribbon-a:before,.ion-ribbon-b:before,.ion-sad:before,.ion-scissors:before,.ion-search:before,.ion-settings:before,.ion-share:before,.ion-shuffle:before,.ion-skip-backward:before,.ion-skip-forward:before,.ion-social-android-outline:before,.ion-social-android:before,.ion-social-apple-outline:before,.ion-social-apple:before,.ion-social-bitcoin-outline:before,.ion-social-bitcoin:before,.ion-social-buffer-outline:before,.ion-social-buffer:before,.ion-social-designernews-outline:before,.ion-social-designernews:before,.ion-social-dribbble-outline:before,.ion-social-dribbble:before,.ion-social-dropbox-outline:before,.ion-social-dropbox:before,.ion-social-facebook-outline:before,.ion-social-facebook:before,.ion-social-foursquare-outline:before,.ion-social-foursquare:before,.ion-social-freebsd-devil:before,.ion-social-github-outline:before,.ion-social-github:before,.ion-social-google-outline:before,.ion-social-google:before,.ion-social-googleplus-outline:before,.ion-social-googleplus:before,.ion-social-hackernews-outline:before,.ion-social-hackernews:before,.ion-social-instagram-outline:before,.ion-social-instagram:before,.ion-social-linkedin-outline:before,.ion-social-linkedin:before,.ion-social-pinterest-outline:before,.ion-social-pinterest:before,.ion-social-reddit-outline:before,.ion-social-reddit:before,.ion-social-rss-outline:before,.ion-social-rss:before,.ion-social-skype-outline:before,.ion-social-skype:before,.ion-social-tumblr-outline:before,.ion-social-tumblr:before,.ion-social-tux:before,.ion-social-twitter-outline:before,.ion-social-twitter:before,.ion-social-usd-outline:before,.ion-social-usd:before,.ion-social-vimeo-outline:before,.ion-social-vimeo:before,.ion-social-windows-outline:before,.ion-social-windows:before,.ion-social-wordpress-outline:before,.ion-social-wordpress:before,.ion-social-yahoo-outline:before,.ion-social-yahoo:before,.ion-social-youtube-outline:before,.ion-social-youtube:before,.ion-speakerphone:before,.ion-speedometer:before,.ion-spoon:before,.ion-star:before,.ion-stats-bars:before,.ion-steam:before,.ion-stop:before,.ion-thermometer:before,.ion-thumbsdown:before,.ion-thumbsup:before,.ion-toggle-filled:before,.ion-toggle:before,.ion-trash-a:before,.ion-trash-b:before,.ion-trophy:before,.ion-umbrella:before,.ion-university:before,.ion-unlocked:before,.ion-upload:before,.ion-usb:before,.ion-videocamera:before,.ion-volume-high:before,.ion-volume-low:before,.ion-volume-medium:before,.ion-volume-mute:before,.ion-wand:before,.ion-waterdrop:before,.ion-wifi:before,.ion-wineglass:before,.ion-woman:before,.ion-wrench:before,.ion-xbox:before,.ionicons{display:inline-block;font-family:Ionicons;speak:none;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;text-rendering:auto;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ion-ios7-reloading,.ion-loading-a,.ion-loading-b,.ion-loading-c,.ion-loading-d,.ion-looping,.ion-refreshing,.ion-spin{-webkit-animation:spin 1s infinite linear;-moz-animation:spin 1s infinite linear;-o-animation:spin 1s infinite linear;animation:spin 1s infinite linear}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@-ms-keyframes spin{0%{-ms-transform:rotate(0deg)}100%{-ms-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.ion-loading-a{-webkit-animation-timing-function:steps(8,start);-moz-animation-timing-function:steps(8,start);animation-timing-function:steps(8,start)}.ion-alert:before{content:"\f101"}.ion-alert-circled:before{content:"\f100"}.ion-android-add:before{content:"\f2c7"}.ion-android-add-contact:before{content:"\f2c6"}.ion-android-alarm:before{content:"\f2c8"}.ion-android-archive:before{content:"\f2c9"}.ion-android-arrow-back:before{content:"\f2ca"}.ion-android-arrow-down-left:before{content:"\f2cb"}.ion-android-arrow-down-right:before{content:"\f2cc"}.ion-android-arrow-forward:before{content:"\f30f"}.ion-android-arrow-up-left:before{content:"\f2cd"}.ion-android-arrow-up-right:before{content:"\f2ce"}.ion-android-battery:before{content:"\f2cf"}.ion-android-book:before{content:"\f2d0"}.ion-android-calendar:before{content:"\f2d1"}.ion-android-call:before{content:"\f2d2"}.ion-android-camera:before{content:"\f2d3"}.ion-android-chat:before{content:"\f2d4"}.ion-android-checkmark:before{content:"\f2d5"}.ion-android-clock:before{content:"\f2d6"}.ion-android-close:before{content:"\f2d7"}.ion-android-contact:before{content:"\f2d8"}.ion-android-contacts:before{content:"\f2d9"}.ion-android-data:before{content:"\f2da"}.ion-android-developer:before{content:"\f2db"}.ion-android-display:before{content:"\f2dc"}.ion-android-download:before{content:"\f2dd"}.ion-android-drawer:before{content:"\f310"}.ion-android-dropdown:before{content:"\f2de"}.ion-android-earth:before{content:"\f2df"}.ion-android-folder:before{content:"\f2e0"}.ion-android-forums:before{content:"\f2e1"}.ion-android-friends:before{content:"\f2e2"}.ion-android-hand:before{content:"\f2e3"}.ion-android-image:before{content:"\f2e4"}.ion-android-inbox:before{content:"\f2e5"}.ion-android-information:before{content:"\f2e6"}.ion-android-keypad:before{content:"\f2e7"}.ion-android-lightbulb:before{content:"\f2e8"}.ion-android-locate:before{content:"\f2e9"}.ion-android-location:before{content:"\f2ea"}.ion-android-mail:before{content:"\f2eb"}.ion-android-microphone:before{content:"\f2ec"}.ion-android-mixer:before{content:"\f2ed"}.ion-android-more:before{content:"\f2ee"}.ion-android-note:before{content:"\f2ef"}.ion-android-playstore:before{content:"\f2f0"}.ion-android-printer:before{content:"\f2f1"}.ion-android-promotion:before{content:"\f2f2"}.ion-android-reminder:before{content:"\f2f3"}.ion-android-remove:before{content:"\f2f4"}.ion-android-search:before{content:"\f2f5"}.ion-android-send:before{content:"\f2f6"}.ion-android-settings:before{content:"\f2f7"}.ion-android-share:before{content:"\f2f8"}.ion-android-social:before{content:"\f2fa"}.ion-android-social-user:before{content:"\f2f9"}.ion-android-sort:before{content:"\f2fb"}.ion-android-stair-drawer:before{content:"\f311"}.ion-android-star:before{content:"\f2fc"}.ion-android-stopwatch:before{content:"\f2fd"}.ion-android-storage:before{content:"\f2fe"}.ion-android-system-back:before{content:"\f2ff"}.ion-android-system-home:before{content:"\f300"}.ion-android-system-windows:before{content:"\f301"}.ion-android-timer:before{content:"\f302"}.ion-android-trash:before{content:"\f303"}.ion-android-user-menu:before{content:"\f312"}.ion-android-volume:before{content:"\f304"}.ion-android-wifi:before{content:"\f305"}.ion-aperture:before{content:"\f313"}.ion-archive:before{content:"\f102"}.ion-arrow-down-a:before{content:"\f103"}.ion-arrow-down-b:before{content:"\f104"}.ion-arrow-down-c:before{content:"\f105"}.ion-arrow-expand:before{content:"\f25e"}.ion-arrow-graph-down-left:before{content:"\f25f"}.ion-arrow-graph-down-right:before{content:"\f260"}.ion-arrow-graph-up-left:before{content:"\f261"}.ion-arrow-graph-up-right:before{content:"\f262"}.ion-arrow-left-a:before{content:"\f106"}.ion-arrow-left-b:before{content:"\f107"}.ion-arrow-left-c:before{content:"\f108"}.ion-arrow-move:before{content:"\f263"}.ion-arrow-resize:before{content:"\f264"}.ion-arrow-return-left:before{content:"\f265"}.ion-arrow-return-right:before{content:"\f266"}.ion-arrow-right-a:before{content:"\f109"}.ion-arrow-right-b:before{content:"\f10a"}.ion-arrow-right-c:before{content:"\f10b"}.ion-arrow-shrink:before{content:"\f267"}.ion-arrow-swap:before{content:"\f268"}.ion-arrow-up-a:before{content:"\f10c"}.ion-arrow-up-b:before{content:"\f10d"}.ion-arrow-up-c:before{content:"\f10e"}.ion-asterisk:before{content:"\f314"}.ion-at:before{content:"\f10f"}.ion-bag:before{content:"\f110"}.ion-battery-charging:before{content:"\f111"}.ion-battery-empty:before{content:"\f112"}.ion-battery-full:before{content:"\f113"}.ion-battery-half:before{content:"\f114"}.ion-battery-low:before{content:"\f115"}.ion-beaker:before{content:"\f269"}.ion-beer:before{content:"\f26a"}.ion-bluetooth:before{content:"\f116"}.ion-bonfire:before{content:"\f315"}.ion-bookmark:before{content:"\f26b"}.ion-briefcase:before{content:"\f26c"}.ion-bug:before{content:"\f2be"}.ion-calculator:before{content:"\f26d"}.ion-calendar:before{content:"\f117"}.ion-camera:before{content:"\f118"}.ion-card:before{content:"\f119"}.ion-cash:before{content:"\f316"}.ion-chatbox:before{content:"\f11b"}.ion-chatbox-working:before{content:"\f11a"}.ion-chatboxes:before{content:"\f11c"}.ion-chatbubble:before{content:"\f11e"}.ion-chatbubble-working:before{content:"\f11d"}.ion-chatbubbles:before{content:"\f11f"}.ion-checkmark:before{content:"\f122"}.ion-checkmark-circled:before{content:"\f120"}.ion-checkmark-round:before{content:"\f121"}.ion-chevron-down:before{content:"\f123"}.ion-chevron-left:before{content:"\f124"}.ion-chevron-right:before{content:"\f125"}.ion-chevron-up:before{content:"\f126"}.ion-clipboard:before{content:"\f127"}.ion-clock:before{content:"\f26e"}.ion-close:before{content:"\f12a"}.ion-close-circled:before{content:"\f128"}.ion-close-round:before{content:"\f129"}.ion-closed-captioning:before{content:"\f317"}.ion-cloud:before{content:"\f12b"}.ion-code:before{content:"\f271"}.ion-code-download:before{content:"\f26f"}.ion-code-working:before{content:"\f270"}.ion-coffee:before{content:"\f272"}.ion-compass:before{content:"\f273"}.ion-compose:before{content:"\f12c"}.ion-connection-bars:before{content:"\f274"}.ion-contrast:before{content:"\f275"}.ion-cube:before{content:"\f318"}.ion-disc:before{content:"\f12d"}.ion-document:before{content:"\f12f"}.ion-document-text:before{content:"\f12e"}.ion-drag:before{content:"\f130"}.ion-earth:before{content:"\f276"}.ion-edit:before{content:"\f2bf"}.ion-egg:before{content:"\f277"}.ion-eject:before{content:"\f131"}.ion-email:before{content:"\f132"}.ion-eye:before{content:"\f133"}.ion-eye-disabled:before{content:"\f306"}.ion-female:before{content:"\f278"}.ion-filing:before{content:"\f134"}.ion-film-marker:before{content:"\f135"}.ion-fireball:before{content:"\f319"}.ion-flag:before{content:"\f279"}.ion-flame:before{content:"\f31a"}.ion-flash:before{content:"\f137"}.ion-flash-off:before{content:"\f136"}.ion-flask:before{content:"\f138"}.ion-folder:before{content:"\f139"}.ion-fork:before{content:"\f27a"}.ion-fork-repo:before{content:"\f2c0"}.ion-forward:before{content:"\f13a"}.ion-funnel:before{content:"\f31b"}.ion-game-controller-a:before{content:"\f13b"}.ion-game-controller-b:before{content:"\f13c"}.ion-gear-a:before{content:"\f13d"}.ion-gear-b:before{content:"\f13e"}.ion-grid:before{content:"\f13f"}.ion-hammer:before{content:"\f27b"}.ion-happy:before{content:"\f31c"}.ion-headphone:before{content:"\f140"}.ion-heart:before{content:"\f141"}.ion-heart-broken:before{content:"\f31d"}.ion-help:before{content:"\f143"}.ion-help-buoy:before{content:"\f27c"}.ion-help-circled:before{content:"\f142"}.ion-home:before{content:"\f144"}.ion-icecream:before{content:"\f27d"}.ion-icon-social-google-plus:before{content:"\f146"}.ion-icon-social-google-plus-outline:before{content:"\f145"}.ion-image:before{content:"\f147"}.ion-images:before{content:"\f148"}.ion-information:before{content:"\f14a"}.ion-information-circled:before{content:"\f149"}.ion-ionic:before{content:"\f14b"}.ion-ios7-alarm:before{content:"\f14d"}.ion-ios7-alarm-outline:before{content:"\f14c"}.ion-ios7-albums:before{content:"\f14f"}.ion-ios7-albums-outline:before{content:"\f14e"}.ion-ios7-americanfootball:before{content:"\f31f"}.ion-ios7-americanfootball-outline:before{content:"\f31e"}.ion-ios7-analytics:before{content:"\f321"}.ion-ios7-analytics-outline:before{content:"\f320"}.ion-ios7-arrow-back:before{content:"\f150"}.ion-ios7-arrow-down:before{content:"\f151"}.ion-ios7-arrow-forward:before{content:"\f152"}.ion-ios7-arrow-left:before{content:"\f153"}.ion-ios7-arrow-right:before{content:"\f154"}.ion-ios7-arrow-thin-down:before{content:"\f27e"}.ion-ios7-arrow-thin-left:before{content:"\f27f"}.ion-ios7-arrow-thin-right:before{content:"\f280"}.ion-ios7-arrow-thin-up:before{content:"\f281"}.ion-ios7-arrow-up:before{content:"\f155"}.ion-ios7-at:before{content:"\f157"}.ion-ios7-at-outline:before{content:"\f156"}.ion-ios7-barcode:before{content:"\f323"}.ion-ios7-barcode-outline:before{content:"\f322"}.ion-ios7-baseball:before{content:"\f325"}.ion-ios7-baseball-outline:before{content:"\f324"}.ion-ios7-basketball:before{content:"\f327"}.ion-ios7-basketball-outline:before{content:"\f326"}.ion-ios7-bell:before{content:"\f159"}.ion-ios7-bell-outline:before{content:"\f158"}.ion-ios7-bolt:before{content:"\f15b"}.ion-ios7-bolt-outline:before{content:"\f15a"}.ion-ios7-bookmarks:before{content:"\f15d"}.ion-ios7-bookmarks-outline:before{content:"\f15c"}.ion-ios7-box:before{content:"\f15f"}.ion-ios7-box-outline:before{content:"\f15e"}.ion-ios7-briefcase:before{content:"\f283"}.ion-ios7-briefcase-outline:before{content:"\f282"}.ion-ios7-browsers:before{content:"\f161"}.ion-ios7-browsers-outline:before{content:"\f160"}.ion-ios7-calculator:before{content:"\f285"}.ion-ios7-calculator-outline:before{content:"\f284"}.ion-ios7-calendar:before{content:"\f163"}.ion-ios7-calendar-outline:before{content:"\f162"}.ion-ios7-camera:before{content:"\f165"}.ion-ios7-camera-outline:before{content:"\f164"}.ion-ios7-cart:before{content:"\f167"}.ion-ios7-cart-outline:before{content:"\f166"}.ion-ios7-chatboxes:before{content:"\f169"}.ion-ios7-chatboxes-outline:before{content:"\f168"}.ion-ios7-chatbubble:before{content:"\f16b"}.ion-ios7-chatbubble-outline:before{content:"\f16a"}.ion-ios7-checkmark:before{content:"\f16e"}.ion-ios7-checkmark-empty:before{content:"\f16c"}.ion-ios7-checkmark-outline:before{content:"\f16d"}.ion-ios7-circle-filled:before{content:"\f16f"}.ion-ios7-circle-outline:before{content:"\f170"}.ion-ios7-clock:before{content:"\f172"}.ion-ios7-clock-outline:before{content:"\f171"}.ion-ios7-close:before{content:"\f2bc"}.ion-ios7-close-empty:before{content:"\f2bd"}.ion-ios7-close-outline:before{content:"\f2bb"}.ion-ios7-cloud:before{content:"\f178"}.ion-ios7-cloud-download:before{content:"\f174"}.ion-ios7-cloud-download-outline:before{content:"\f173"}.ion-ios7-cloud-outline:before{content:"\f175"}.ion-ios7-cloud-upload:before{content:"\f177"}.ion-ios7-cloud-upload-outline:before{content:"\f176"}.ion-ios7-cloudy:before{content:"\f17a"}.ion-ios7-cloudy-night:before{content:"\f308"}.ion-ios7-cloudy-night-outline:before{content:"\f307"}.ion-ios7-cloudy-outline:before{content:"\f179"}.ion-ios7-cog:before{content:"\f17c"}.ion-ios7-cog-outline:before{content:"\f17b"}.ion-ios7-compose:before{content:"\f17e"}.ion-ios7-compose-outline:before{content:"\f17d"}.ion-ios7-contact:before{content:"\f180"}.ion-ios7-contact-outline:before{content:"\f17f"}.ion-ios7-copy:before{content:"\f182"}.ion-ios7-copy-outline:before{content:"\f181"}.ion-ios7-download:before{content:"\f184"}.ion-ios7-download-outline:before{content:"\f183"}.ion-ios7-drag:before{content:"\f185"}.ion-ios7-email:before{content:"\f187"}.ion-ios7-email-outline:before{content:"\f186"}.ion-ios7-expand:before{content:"\f30d"}.ion-ios7-eye:before{content:"\f189"}.ion-ios7-eye-outline:before{content:"\f188"}.ion-ios7-fastforward:before{content:"\f18b"}.ion-ios7-fastforward-outline:before{content:"\f18a"}.ion-ios7-filing:before{content:"\f18d"}.ion-ios7-filing-outline:before{content:"\f18c"}.ion-ios7-film:before{content:"\f18f"}.ion-ios7-film-outline:before{content:"\f18e"}.ion-ios7-flag:before{content:"\f191"}.ion-ios7-flag-outline:before{content:"\f190"}.ion-ios7-folder:before{content:"\f193"}.ion-ios7-folder-outline:before{content:"\f192"}.ion-ios7-football:before{content:"\f329"}.ion-ios7-football-outline:before{content:"\f328"}.ion-ios7-gear:before{content:"\f195"}.ion-ios7-gear-outline:before{content:"\f194"}.ion-ios7-glasses:before{content:"\f197"}.ion-ios7-glasses-outline:before{content:"\f196"}.ion-ios7-heart:before{content:"\f199"}.ion-ios7-heart-outline:before{content:"\f198"}.ion-ios7-help:before{content:"\f19c"}.ion-ios7-help-empty:before{content:"\f19a"}.ion-ios7-help-outline:before{content:"\f19b"}.ion-ios7-home:before{content:"\f32b"}.ion-ios7-home-outline:before{content:"\f32a"}.ion-ios7-infinite:before{content:"\f19e"}.ion-ios7-infinite-outline:before{content:"\f19d"}.ion-ios7-information:before{content:"\f1a1"}.ion-ios7-information-empty:before{content:"\f19f"}.ion-ios7-information-outline:before{content:"\f1a0"}.ion-ios7-ionic-outline:before{content:"\f1a2"}.ion-ios7-keypad:before{content:"\f1a4"}.ion-ios7-keypad-outline:before{content:"\f1a3"}.ion-ios7-lightbulb:before{content:"\f287"}.ion-ios7-lightbulb-outline:before{content:"\f286"}.ion-ios7-location:before{content:"\f1a6"}.ion-ios7-location-outline:before{content:"\f1a5"}.ion-ios7-locked:before{content:"\f1a8"}.ion-ios7-locked-outline:before{content:"\f1a7"}.ion-ios7-loop:before{content:"\f32d"}.ion-ios7-loop-strong:before{content:"\f32c"}.ion-ios7-medkit:before{content:"\f289"}.ion-ios7-medkit-outline:before{content:"\f288"}.ion-ios7-mic:before{content:"\f1ab"}.ion-ios7-mic-off:before{content:"\f1a9"}.ion-ios7-mic-outline:before{content:"\f1aa"}.ion-ios7-minus:before{content:"\f1ae"}.ion-ios7-minus-empty:before{content:"\f1ac"}.ion-ios7-minus-outline:before{content:"\f1ad"}.ion-ios7-monitor:before{content:"\f1b0"}.ion-ios7-monitor-outline:before{content:"\f1af"}.ion-ios7-moon:before{content:"\f1b2"}.ion-ios7-moon-outline:before{content:"\f1b1"}.ion-ios7-more:before{content:"\f1b4"}.ion-ios7-more-outline:before{content:"\f1b3"}.ion-ios7-musical-note:before{content:"\f1b5"}.ion-ios7-musical-notes:before{content:"\f1b6"}.ion-ios7-navigate:before{content:"\f1b8"}.ion-ios7-navigate-outline:before{content:"\f1b7"}.ion-ios7-paper:before{content:"\f32f"}.ion-ios7-paper-outline:before{content:"\f32e"}.ion-ios7-paperplane:before{content:"\f1ba"}.ion-ios7-paperplane-outline:before{content:"\f1b9"}.ion-ios7-partlysunny:before{content:"\f1bc"}.ion-ios7-partlysunny-outline:before{content:"\f1bb"}.ion-ios7-pause:before{content:"\f1be"}.ion-ios7-pause-outline:before{content:"\f1bd"}.ion-ios7-paw:before{content:"\f331"}.ion-ios7-paw-outline:before{content:"\f330"}.ion-ios7-people:before{content:"\f1c0"}.ion-ios7-people-outline:before{content:"\f1bf"}.ion-ios7-person:before{content:"\f1c2"}.ion-ios7-person-outline:before{content:"\f1c1"}.ion-ios7-personadd:before{content:"\f1c4"}.ion-ios7-personadd-outline:before{content:"\f1c3"}.ion-ios7-photos:before{content:"\f1c6"}.ion-ios7-photos-outline:before{content:"\f1c5"}.ion-ios7-pie:before{content:"\f28b"}.ion-ios7-pie-outline:before{content:"\f28a"}.ion-ios7-play:before{content:"\f1c8"}.ion-ios7-play-outline:before{content:"\f1c7"}.ion-ios7-plus:before{content:"\f1cb"}.ion-ios7-plus-empty:before{content:"\f1c9"}.ion-ios7-plus-outline:before{content:"\f1ca"}.ion-ios7-pricetag:before{content:"\f28d"}.ion-ios7-pricetag-outline:before{content:"\f28c"}.ion-ios7-pricetags:before{content:"\f333"}.ion-ios7-pricetags-outline:before{content:"\f332"}.ion-ios7-printer:before{content:"\f1cd"}.ion-ios7-printer-outline:before{content:"\f1cc"}.ion-ios7-pulse:before{content:"\f335"}.ion-ios7-pulse-strong:before{content:"\f334"}.ion-ios7-rainy:before{content:"\f1cf"}.ion-ios7-rainy-outline:before{content:"\f1ce"}.ion-ios7-recording:before{content:"\f1d1"}.ion-ios7-recording-outline:before{content:"\f1d0"}.ion-ios7-redo:before{content:"\f1d3"}.ion-ios7-redo-outline:before{content:"\f1d2"}.ion-ios7-refresh:before{content:"\f1d6"}.ion-ios7-refresh-empty:before{content:"\f1d4"}.ion-ios7-refresh-outline:before{content:"\f1d5"}.ion-ios7-reload:before,.ion-ios7-reloading:before{content:"\f28e"}.ion-ios7-reverse-camera:before{content:"\f337"}.ion-ios7-reverse-camera-outline:before{content:"\f336"}.ion-ios7-rewind:before{content:"\f1d8"}.ion-ios7-rewind-outline:before{content:"\f1d7"}.ion-ios7-search:before{content:"\f1da"}.ion-ios7-search-strong:before{content:"\f1d9"}.ion-ios7-settings:before{content:"\f339"}.ion-ios7-settings-strong:before{content:"\f338"}.ion-ios7-shrink:before{content:"\f30e"}.ion-ios7-skipbackward:before{content:"\f1dc"}.ion-ios7-skipbackward-outline:before{content:"\f1db"}.ion-ios7-skipforward:before{content:"\f1de"}.ion-ios7-skipforward-outline:before{content:"\f1dd"}.ion-ios7-snowy:before{content:"\f309"}.ion-ios7-speedometer:before{content:"\f290"}.ion-ios7-speedometer-outline:before{content:"\f28f"}.ion-ios7-star:before{content:"\f1e0"}.ion-ios7-star-half:before{content:"\f33a"}.ion-ios7-star-outline:before{content:"\f1df"}.ion-ios7-stopwatch:before{content:"\f1e2"}.ion-ios7-stopwatch-outline:before{content:"\f1e1"}.ion-ios7-sunny:before{content:"\f1e4"}.ion-ios7-sunny-outline:before{content:"\f1e3"}.ion-ios7-telephone:before{content:"\f1e6"}.ion-ios7-telephone-outline:before{content:"\f1e5"}.ion-ios7-tennisball:before{content:"\f33c"}.ion-ios7-tennisball-outline:before{content:"\f33b"}.ion-ios7-thunderstorm:before{content:"\f1e8"}.ion-ios7-thunderstorm-outline:before{content:"\f1e7"}.ion-ios7-time:before{content:"\f292"}.ion-ios7-time-outline:before{content:"\f291"}.ion-ios7-timer:before{content:"\f1ea"}.ion-ios7-timer-outline:before{content:"\f1e9"}.ion-ios7-toggle:before{content:"\f33e"}.ion-ios7-toggle-outline:before{content:"\f33d"}.ion-ios7-trash:before{content:"\f1ec"}.ion-ios7-trash-outline:before{content:"\f1eb"}.ion-ios7-undo:before{content:"\f1ee"}.ion-ios7-undo-outline:before{content:"\f1ed"}.ion-ios7-unlocked:before{content:"\f1f0"}.ion-ios7-unlocked-outline:before{content:"\f1ef"}.ion-ios7-upload:before{content:"\f1f2"}.ion-ios7-upload-outline:before{content:"\f1f1"}.ion-ios7-videocam:before{content:"\f1f4"}.ion-ios7-videocam-outline:before{content:"\f1f3"}.ion-ios7-volume-high:before{content:"\f1f5"}.ion-ios7-volume-low:before{content:"\f1f6"}.ion-ios7-wineglass:before{content:"\f294"}.ion-ios7-wineglass-outline:before{content:"\f293"}.ion-ios7-world:before{content:"\f1f8"}.ion-ios7-world-outline:before{content:"\f1f7"}.ion-ipad:before{content:"\f1f9"}.ion-iphone:before{content:"\f1fa"}.ion-ipod:before{content:"\f1fb"}.ion-jet:before{content:"\f295"}.ion-key:before{content:"\f296"}.ion-knife:before{content:"\f297"}.ion-laptop:before{content:"\f1fc"}.ion-leaf:before{content:"\f1fd"}.ion-levels:before{content:"\f298"}.ion-lightbulb:before{content:"\f299"}.ion-link:before{content:"\f1fe"}.ion-load-a:before,.ion-loading-a:before{content:"\f29a"}.ion-load-b:before,.ion-loading-b:before{content:"\f29b"}.ion-load-c:before,.ion-loading-c:before{content:"\f29c"}.ion-load-d:before,.ion-loading-d:before{content:"\f29d"}.ion-location:before{content:"\f1ff"}.ion-locked:before{content:"\f200"}.ion-log-in:before{content:"\f29e"}.ion-log-out:before{content:"\f29f"}.ion-loop:before,.ion-looping:before{content:"\f201"}.ion-magnet:before{content:"\f2a0"}.ion-male:before{content:"\f2a1"}.ion-man:before{content:"\f202"}.ion-map:before{content:"\f203"}.ion-medkit:before{content:"\f2a2"}.ion-merge:before{content:"\f33f"}.ion-mic-a:before{content:"\f204"}.ion-mic-b:before{content:"\f205"}.ion-mic-c:before{content:"\f206"}.ion-minus:before{content:"\f209"}.ion-minus-circled:before{content:"\f207"}.ion-minus-round:before{content:"\f208"}.ion-model-s:before{content:"\f2c1"}.ion-monitor:before{content:"\f20a"}.ion-more:before{content:"\f20b"}.ion-mouse:before{content:"\f340"}.ion-music-note:before{content:"\f20c"}.ion-navicon:before{content:"\f20e"}.ion-navicon-round:before{content:"\f20d"}.ion-navigate:before{content:"\f2a3"}.ion-network:before{content:"\f341"}.ion-no-smoking:before{content:"\f2c2"}.ion-nuclear:before{content:"\f2a4"}.ion-outlet:before{content:"\f342"}.ion-paper-airplane:before{content:"\f2c3"}.ion-paperclip:before{content:"\f20f"}.ion-pause:before{content:"\f210"}.ion-person:before{content:"\f213"}.ion-person-add:before{content:"\f211"}.ion-person-stalker:before{content:"\f212"}.ion-pie-graph:before{content:"\f2a5"}.ion-pin:before{content:"\f2a6"}.ion-pinpoint:before{content:"\f2a7"}.ion-pizza:before{content:"\f2a8"}.ion-plane:before{content:"\f214"}.ion-planet:before{content:"\f343"}.ion-play:before{content:"\f215"}.ion-playstation:before{content:"\f30a"}.ion-plus:before{content:"\f218"}.ion-plus-circled:before{content:"\f216"}.ion-plus-round:before{content:"\f217"}.ion-podium:before{content:"\f344"}.ion-pound:before{content:"\f219"}.ion-power:before{content:"\f2a9"}.ion-pricetag:before{content:"\f2aa"}.ion-pricetags:before{content:"\f2ab"}.ion-printer:before{content:"\f21a"}.ion-pull-request:before{content:"\f345"}.ion-qr-scanner:before{content:"\f346"}.ion-quote:before{content:"\f347"}.ion-radio-waves:before{content:"\f2ac"}.ion-record:before{content:"\f21b"}.ion-refresh:before,.ion-refreshing:before{content:"\f21c"}.ion-reply:before{content:"\f21e"}.ion-reply-all:before{content:"\f21d"}.ion-ribbon-a:before{content:"\f348"}.ion-ribbon-b:before{content:"\f349"}.ion-sad:before{content:"\f34a"}.ion-scissors:before{content:"\f34b"}.ion-search:before{content:"\f21f"}.ion-settings:before{content:"\f2ad"}.ion-share:before{content:"\f220"}.ion-shuffle:before{content:"\f221"}.ion-skip-backward:before{content:"\f222"}.ion-skip-forward:before{content:"\f223"}.ion-social-android:before{content:"\f225"}.ion-social-android-outline:before{content:"\f224"}.ion-social-apple:before{content:"\f227"}.ion-social-apple-outline:before{content:"\f226"}.ion-social-bitcoin:before{content:"\f2af"}.ion-social-bitcoin-outline:before{content:"\f2ae"}.ion-social-buffer:before{content:"\f229"}.ion-social-buffer-outline:before{content:"\f228"}.ion-social-designernews:before{content:"\f22b"}.ion-social-designernews-outline:before{content:"\f22a"}.ion-social-dribbble:before{content:"\f22d"}.ion-social-dribbble-outline:before{content:"\f22c"}.ion-social-dropbox:before{content:"\f22f"}.ion-social-dropbox-outline:before{content:"\f22e"}.ion-social-facebook:before{content:"\f231"}.ion-social-facebook-outline:before{content:"\f230"}.ion-social-foursquare:before{content:"\f34d"}.ion-social-foursquare-outline:before{content:"\f34c"}.ion-social-freebsd-devil:before{content:"\f2c4"}.ion-social-github:before{content:"\f233"}.ion-social-github-outline:before{content:"\f232"}.ion-social-google:before{content:"\f34f"}.ion-social-google-outline:before{content:"\f34e"}.ion-social-googleplus:before{content:"\f235"}.ion-social-googleplus-outline:before{content:"\f234"}.ion-social-hackernews:before{content:"\f237"}.ion-social-hackernews-outline:before{content:"\f236"}.ion-social-instagram:before{content:"\f351"}.ion-social-instagram-outline:before{content:"\f350"}.ion-social-linkedin:before{content:"\f239"}.ion-social-linkedin-outline:before{content:"\f238"}.ion-social-pinterest:before{content:"\f2b1"}.ion-social-pinterest-outline:before{content:"\f2b0"}.ion-social-reddit:before{content:"\f23b"}.ion-social-reddit-outline:before{content:"\f23a"}.ion-social-rss:before{content:"\f23d"}.ion-social-rss-outline:before{content:"\f23c"}.ion-social-skype:before{content:"\f23f"}.ion-social-skype-outline:before{content:"\f23e"}.ion-social-tumblr:before{content:"\f241"}.ion-social-tumblr-outline:before{content:"\f240"}.ion-social-tux:before{content:"\f2c5"}.ion-social-twitter:before{content:"\f243"}.ion-social-twitter-outline:before{content:"\f242"}.ion-social-usd:before{content:"\f353"}.ion-social-usd-outline:before{content:"\f352"}.ion-social-vimeo:before{content:"\f245"}.ion-social-vimeo-outline:before{content:"\f244"}.ion-social-windows:before{content:"\f247"}.ion-social-windows-outline:before{content:"\f246"}.ion-social-wordpress:before{content:"\f249"}.ion-social-wordpress-outline:before{content:"\f248"}.ion-social-yahoo:before{content:"\f24b"}.ion-social-yahoo-outline:before{content:"\f24a"}.ion-social-youtube:before{content:"\f24d"}.ion-social-youtube-outline:before{content:"\f24c"}.ion-speakerphone:before{content:"\f2b2"}.ion-speedometer:before{content:"\f2b3"}.ion-spoon:before{content:"\f2b4"}.ion-star:before{content:"\f24e"}.ion-stats-bars:before{content:"\f2b5"}.ion-steam:before{content:"\f30b"}.ion-stop:before{content:"\f24f"}.ion-thermometer:before{content:"\f2b6"}.ion-thumbsdown:before{content:"\f250"}.ion-thumbsup:before{content:"\f251"}.ion-toggle:before{content:"\f355"}.ion-toggle-filled:before{content:"\f354"}.ion-trash-a:before{content:"\f252"}.ion-trash-b:before{content:"\f253"}.ion-trophy:before{content:"\f356"}.ion-umbrella:before{content:"\f2b7"}.ion-university:before{content:"\f357"}.ion-unlocked:before{content:"\f254"}.ion-upload:before{content:"\f255"}.ion-usb:before{content:"\f2b8"}.ion-videocamera:before{content:"\f256"}.ion-volume-high:before{content:"\f257"}.ion-volume-low:before{content:"\f258"}.ion-volume-medium:before{content:"\f259"}.ion-volume-mute:before{content:"\f25a"}.ion-wand:before{content:"\f358"}.ion-waterdrop:before{content:"\f25b"}.ion-wifi:before{content:"\f25c"}.ion-wineglass:before{content:"\f2b9"}.ion-woman:before{content:"\f25d"}.ion-wrench:before{content:"\f2ba"}.ion-xbox:before{content:"\f30c"}a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{margin:0;padding:0;border:0;vertical-align:baseline;font:inherit;font-size:100%}ol,ul{list-style:none}blockquote,q{quotes:none}audio:not([controls]){display:none;height:0}[hidden],template{display:none}script{display:none!important}html{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;font-family:sans-serif;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%}:focus,a,a:active,a:focus,a:hover,button,button:focus{outline:0}a{-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}a[href]:hover{cursor:pointer}b,strong{font-weight:700}dfn{font-style:italic}hr{-moz-box-sizing:content-box;box-sizing:content-box;height:0}code,kbd,pre,samp{font-size:1em;font-family:monospace,serif}pre{white-space:pre-wrap}q{quotes:"\201C" "\201D" "\2018" "\2019"}sub,sup{position:relative;vertical-align:baseline;font-size:75%;line-height:0}sup{top:-.5em}sub{bottom:-.25em}fieldset{margin:0 2px;padding:.35em .625em .75em;border:1px solid silver}button,input,select,textarea{margin:0;outline-offset:0;outline-style:none;outline-width:0;-webkit-font-smoothing:inherit;background-image:none}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}textarea{overflow:auto}img{-webkit-user-drag:none}table{border-spacing:0;border-collapse:collapse}*,:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{overflow:hidden;-ms-touch-action:pan-y;touch-action:pan-y}.ionic-body,body{-webkit-touch-callout:none;-webkit-font-smoothing:antialiased;font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;top:0;right:0;bottom:0;left:0;overflow:hidden;margin:0;padding:0;color:#000;word-wrap:break-word;font-size:14px;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:20px;text-rendering:optimizeLegibility;-webkit-backface-visibility:hidden;-webkit-user-drag:none}body.grade-b,body.grade-c{text-rendering:auto}.content{position:relative}.scroll-content{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;margin-top:-1px;padding-top:1px;width:auto;height:auto}.menu .scroll-content.scroll-content-false,.scroll-content-false{z-index:11}.scroll-view{position:relative;display:block;overflow:hidden;margin-top:-1px}.scroll{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;-webkit-transform-origin:left top;-moz-transform-origin:left top;transform-origin:left top}::-webkit-scrollbar{display:none}.scroll-bar{position:absolute;z-index:9999}.ng-animate .scroll-bar{visibility:hidden}.scroll-bar-h{right:2px;bottom:3px;left:2px;height:3px}.scroll-bar-h .scroll-bar-indicator{height:100%}.scroll-bar-v{top:2px;right:3px;bottom:2px;width:3px}.scroll-bar-v .scroll-bar-indicator{width:100%}.scroll-bar-indicator{position:absolute;border-radius:4px;background:rgba(0,0,0,.3);opacity:1;-webkit-transition:opacity .3s linear;-moz-transition:opacity .3s linear;transition:opacity .3s linear}.scroll-bar-indicator.scroll-bar-fade-out{opacity:0}.grade-b .scroll-bar-indicator,.grade-c .scroll-bar-indicator{border-radius:0;background:#aaa}.grade-b .scroll-bar-indicator.scroll-bar-fade-out,.grade-c .scroll-bar-indicator.scroll-bar-fade-out{-webkit-transition:none;-moz-transition:none;transition:none}@keyframes refresh-spin{0%{transform:translate3d(0,0,0) rotate(0)}100%{transform:translate3d(0,0,0) rotate(180deg)}}@-webkit-keyframes refresh-spin{0%{-webkit-transform:translate3d(0,0,0) rotate(0)}100%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}}@keyframes refresh-spin-back{0%{transform:translate3d(0,0,0) rotate(180deg)}100%{transform:translate3d(0,0,0) rotate(0)}}@-webkit-keyframes refresh-spin-back{0%{-webkit-transform:translate3d(0,0,0) rotate(180deg)}100%{-webkit-transform:translate3d(0,0,0) rotate(0)}}.scroll-refresher{position:absolute;top:-60px;right:0;left:0;overflow:hidden;margin:auto;height:60px}.scroll-refresher .ionic-refresher-content{position:absolute;bottom:15px;left:0;width:100%;color:#666;text-align:center;font-size:30px}.scroll-refresher .ionic-refresher-content .text-pulling,.scroll-refresher .ionic-refresher-content .text-refreshing{font-size:16px;line-height:16px}.scroll-refresher .ionic-refresher-content.ionic-refresher-with-text{bottom:10px}.scroll-refresher .icon-pulling,.scroll-refresher .icon-refreshing{width:100%;-webkit-backface-visibility:hidden;-webkit-transform-style:preserve-3d;backface-visibility:hidden;transform-style:preserve-3d}.scroll-refresher .icon-pulling{-webkit-animation-name:refresh-spin-back;-moz-animation-name:refresh-spin-back;animation-name:refresh-spin-back;-webkit-animation-duration:200ms;-moz-animation-duration:200ms;animation-duration:200ms;-webkit-animation-timing-function:linear;-moz-animation-timing-function:linear;animation-timing-function:linear;-webkit-animation-fill-mode:none;-moz-animation-fill-mode:none;animation-fill-mode:none;-webkit-transform:translate3d(0,0,0) rotate(0deg);transform:translate3d(0,0,0) rotate(0deg)}.scroll-refresher .icon-refreshing,.scroll-refresher .text-refreshing{display:none}.scroll-refresher .icon-refreshing{-webkit-animation-duration:1.5s;-moz-animation-duration:1.5s;animation-duration:1.5s}.scroll-refresher.active .icon-pulling:not(.pulling-rotation-disabled){-webkit-animation-name:refresh-spin;-moz-animation-name:refresh-spin;animation-name:refresh-spin;-webkit-transform:translate3d(0,0,0) rotate(-180deg);transform:translate3d(0,0,0) rotate(-180deg)}.scroll-refresher.active.refreshing{-webkit-transition:-webkit-transform .2s;-moz-transition:-webkit-transform .2s;transition:-webkit-transform .2s;-webkit-transform:scale(1,1);transform:scale(1,1)}.scroll-refresher.active.refreshing .icon-pulling,.scroll-refresher.active.refreshing .text-pulling{display:none}.scroll-refresher.active.refreshing .icon-refreshing,.scroll-refresher.active.refreshing .text-refreshing{display:block}.scroll-refresher.active.refreshing.refreshing-tail{-webkit-transform:scale(0,0);transform:scale(0,0)}ion-infinite-scroll{height:60px;width:100%;opacity:0;-webkit-transition:opacity .25s;-moz-transition:opacity .25s;transition:opacity .25s;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}ion-infinite-scroll .icon{font-size:30px;color:#666}ion-infinite-scroll.active{opacity:1}.overflow-scroll{overflow-x:hidden;overflow-y:scroll;-webkit-overflow-scrolling:touch;top:0;right:0;bottom:0;left:0;position:absolute}.overflow-scroll .scroll{position:static;height:100%;-webkit-transform:translate3d(0,0,0)}.has-header{top:44px}.no-header{top:0}.has-subheader{top:88px}.has-tabs-top{top:93px}.has-header.has-subheader.has-tabs-top{top:137px}.has-footer{bottom:44px}.has-subfooter{bottom:88px}.bar-footer.has-tabs,.has-tabs{bottom:49px}.has-footer.has-tabs{bottom:93px}.pane{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);z-index:1}.view{z-index:1}.pane,.view{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;background-color:#fff;overflow:hidden}ion-nav-view{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#000}p{margin:0 0 10px}small{font-size:85%}cite{font-style:normal}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{color:#000;font-weight:500;font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;line-height:1.2}.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 small,h2 small,h3 small,h4 small,h5 small,h6 small{font-weight:400;line-height:1}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1:first-child,.h2:first-child,.h3:first-child,h1:first-child,h2:first-child,h3:first-child{margin-top:0}.h1+.h1,.h1+.h2,.h1+.h3,.h1+h1,.h1+h2,.h1+h3,.h2+.h1,.h2+.h2,.h2+.h3,.h2+h1,.h2+h2,.h2+h3,.h3+.h1,.h3+.h2,.h3+.h3,.h3+h1,.h3+h2,.h3+h3,h1+.h1,h1+.h2,h1+.h3,h1+h1,h1+h2,h1+h3,h2+.h1,h2+.h2,h2+.h3,h2+h1,h2+h2,h2+h3,h3+.h1,h3+.h2,h3+.h3,h3+h1,h3+h2,h3+h3{margin-top:10px}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}.h1 small,h1 small{font-size:24px}.h2 small,h2 small{font-size:18px}.h3 small,.h4 small,h3 small,h4 small{font-size:14px}dl{margin-bottom:20px}dd,dt{line-height:1.42857}dt{font-weight:700}blockquote{margin:0 0 20px;padding:10px 20px;border-left:5px solid gray}blockquote p{font-weight:300;font-size:17.5px;line-height:1.25}blockquote p:last-child{margin-bottom:0}blockquote small{display:block;line-height:1.42857}blockquote small:before{content:'\2014 \00A0'}blockquote:after,blockquote:before,q:after,q:before{content:""}address{display:block;margin-bottom:20px;font-style:normal;line-height:1.42857}a.subdued{padding-right:10px;color:#888;text-decoration:none}a.subdued:hover{text-decoration:none}a.subdued:last-child{padding-right:0}.action-sheet-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:transparent}.action-sheet-backdrop.active{background-color:rgba(0,0,0,.5)}.action-sheet-wrapper{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);-webkit-transition:all ease-in-out 300ms;-moz-transition:all ease-in-out 300ms;transition:all ease-in-out 300ms;position:absolute;bottom:0;width:100%}.action-sheet-up{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.action-sheet{margin-left:15px;margin-right:15px;width:auto;z-index:11;overflow:hidden}.action-sheet .button{display:block;padding:1px;width:100%;border-radius:0;background-color:transparent;color:#4a87ee;font-size:18px}.action-sheet .button.destructive{color:#ef4e3a}.action-sheet-title{padding:10px;color:#666;text-align:center;font-size:12px}.action-sheet-group{margin-bottom:5px;border-radius:3px;background-color:#fff}.action-sheet-group .button{border-width:1px 0 0;border-radius:0}.action-sheet-group .button.active{background-color:transparent;color:inherit}.action-sheet-group .button:first-child:last-child{border-width:0}.action-sheet-open,.action-sheet-open.modal-open .modal{pointer-events:none}.action-sheet-open .action-sheet-backdrop{pointer-events:auto}.backdrop{position:fixed;top:0;left:0;z-index:11;width:100%;height:100%;background-color:rgba(0,0,0,.4);visibility:hidden;opacity:0;-webkit-transition:.1s opacity linear;-moz-transition:.1s opacity linear;transition:.1s opacity linear}.backdrop.visible{visibility:visible}.backdrop.active{opacity:1}.bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;position:absolute;right:0;left:0;z-index:10;box-sizing:border-box;padding:5px;width:100%;height:44px;border-width:0;border-style:solid;border-top:1px solid transparent;border-bottom:1px solid #ddd;background-color:#fff;background-size:0}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.bar{border:none;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);background-position:bottom;background-size:100% 1px;background-repeat:no-repeat}}.bar.bar-clear{border:none;background:0 0;color:#fff}.bar.bar-clear .button,.bar.bar-clear .title{color:#fff}.bar.item-input-inset .item-input-wrapper{margin-top:-1px}.bar.item-input-inset .item-input-wrapper input{padding-left:8px;width:94%;height:28px;background:0 0}.bar.bar-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.bar.bar-light .title{color:#444}.bar.bar-light.bar-footer{background-image:linear-gradient(180deg,#ddd,#ddd 50%,transparent 50%)}.bar.bar-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.bar.bar-stable .title{color:#444}.bar.bar-stable.bar-footer{background-image:linear-gradient(180deg,#b2b2b2,#b2b2b2 50%,transparent 50%)}.bar.bar-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.bar.bar-positive .title{color:#fff}.bar.bar-positive.bar-footer{background-image:linear-gradient(180deg,#145fd7,#145fd7 50%,transparent 50%)}.bar.bar-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.bar.bar-calm .title{color:#fff}.bar.bar-calm.bar-footer{background-image:linear-gradient(180deg,#1aacc3,#1aacc3 50%,transparent 50%)}.bar.bar-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.bar.bar-assertive .title{color:#fff}.bar.bar-assertive.bar-footer{background-image:linear-gradient(180deg,#cc2311,#cc2311 50%,transparent 50%)}.bar.bar-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.bar.bar-balanced .title{color:#fff}.bar.bar-balanced.bar-footer{background-image:linear-gradient(180deg,#498f24,#145fd7 50%,transparent 50%)}.bar.bar-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.bar.bar-energized .title{color:#fff}.bar.bar-energized.bar-footer{background-image:linear-gradient(180deg,#d39211,#d39211 50%,transparent 50%)}.bar.bar-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.bar.bar-royal .title{color:#fff}.bar.bar-royal.bar-footer{background-image:linear-gradient(180deg,#552bdf,#552bdf 50%,transparent 50%)}.bar.bar-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.bar.bar-dark .title{color:#fff}.bar.bar-dark.bar-footer{background-image:linear-gradient(180deg,#111,#111 50%,transparent 50%)}.bar .title{position:absolute;top:0;right:0;left:0;z-index:0;overflow:hidden;margin:0 10px;min-width:30px;height:43px;text-align:center;text-overflow:ellipsis;white-space:nowrap;font-size:17px;line-height:44px}.bar .title.title-left{text-align:left}.bar .title.title-right{text-align:right}.bar .title a{color:inherit}.bar .button{z-index:1;padding:0 8px;min-width:initial;min-height:31px;font-weight:400;font-size:13px;line-height:32px}.bar .button .icon:before,.bar .button.button-icon:before,.bar .button.icon-left:before,.bar .button.icon-right:before,.bar .button.icon:before{padding-right:2px;padding-left:2px;font-size:20px;line-height:32px}.bar .button.button-icon{font-size:17px}.bar .button.button-icon .icon:before,.bar .button.button-icon.icon-left:before,.bar .button.button-icon.icon-right:before,.bar .button.button-icon:before{vertical-align:top;font-size:32px;line-height:32px}.bar .button.button-clear{padding-right:2px;padding-left:2px;font-weight:300;font-size:17px}.bar .button.button-clear .icon:before,.bar .button.button-clear.icon-left:before,.bar .button.button-clear.icon-right:before,.bar .button.button-clear.icon:before{font-size:32px;line-height:32px}.bar .button.back-button{padding:0;opacity:.8}.bar .button.back-button .back-button-title{display:inline-block;vertical-align:middle;margin-left:4px}.bar .button.back-button.activated,.bar .button.back-button.active{opacity:1}.bar .button-bar>.button,.bar .buttons>.button{min-height:31px;line-height:32px}.bar .button+.button-bar,.bar .button-bar+.button{margin-left:5px}.bar .buttons,.bar .buttons.left-buttons,.bar .buttons.right-buttons{display:inherit}.bar .buttons span{display:inline-flex}.bar .buttons.pull-right,.bar .title+.button:last-child,.bar .title+.buttons,.bar>.button+.button:last-child,.bar>.button.pull-right{position:absolute;top:5px;right:5px;bottom:5px}.bar-light .button{border-color:#ddd;background-color:#fff;color:#444}.bar-light .button:hover{color:#444;text-decoration:none}.bar-light .button.activated,.bar-light .button.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-light .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-light .button.button-icon{border-color:transparent;background:0 0}.bar-stable .button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.bar-stable .button:hover{color:#444;text-decoration:none}.bar-stable .button.activated,.bar-stable .button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-stable .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444;font-size:17px}.bar-stable .button.button-icon{border-color:transparent;background:0 0}.bar-positive .button{border-color:#145fd7;background-color:#4a87ee;color:#fff}.bar-positive .button:hover{color:#fff;text-decoration:none}.bar-positive .button.activated,.bar-positive .button.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-positive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-positive .button.button-icon{border-color:transparent;background:0 0}.bar-calm .button{border-color:#1aacc3;background-color:#43cee6;color:#fff}.bar-calm .button:hover{color:#fff;text-decoration:none}.bar-calm .button.activated,.bar-calm .button.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-calm .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-calm .button.button-icon{border-color:transparent;background:0 0}.bar-assertive .button{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.bar-assertive .button:hover{color:#fff;text-decoration:none}.bar-assertive .button.activated,.bar-assertive .button.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-assertive .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-assertive .button.button-icon{border-color:transparent;background:0 0}.bar-balanced .button{border-color:#498f24;background-color:#6c3;color:#fff}.bar-balanced .button:hover{color:#fff;text-decoration:none}.bar-balanced .button.activated,.bar-balanced .button.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-balanced .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-balanced .button.button-icon{border-color:transparent;background:0 0}.bar-energized .button{border-color:#d39211;background-color:#f0b840;color:#fff}.bar-energized .button:hover{color:#fff;text-decoration:none}.bar-energized .button.activated,.bar-energized .button.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-energized .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-energized .button.button-icon{border-color:transparent;background:0 0}.bar-royal .button{border-color:#552bdf;background-color:#8a6de9;color:#fff}.bar-royal .button:hover{color:#fff;text-decoration:none}.bar-royal .button.activated,.bar-royal .button.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-royal .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-royal .button.button-icon{border-color:transparent;background:0 0}.bar-dark .button{border-color:#111;background-color:#444;color:#fff}.bar-dark .button:hover{color:#fff;text-decoration:none}.bar-dark .button.activated,.bar-dark .button.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.bar-dark .button.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#fff;font-size:17px}.bar-dark .button.button-icon{border-color:transparent;background:0 0}.bar-header{top:0;border-top-width:0;border-bottom-width:1px}.bar-header.has-tabs-top{border-bottom-width:0}.bar-footer{bottom:0;border-top-width:1px;border-bottom-width:0;background-position:top}.bar-footer.item-input-inset{position:absolute}.bar-tabs{padding:0}.bar-subheader{top:44px;display:block}.bar-subfooter{bottom:44px;display:block}.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:horizontal;-moz-flex-direction:horizontal;-ms-flex-direction:horizontal;flex-direction:horizontal;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444;position:absolute;bottom:0;z-index:5;width:100%;height:49px;border-style:solid;border-top-width:1px;background-size:0;line-height:49px}.tabs .tab-item .badge{background-color:#444;color:#f8f8f8}@media (min--moz-device-pixel-ratio:1.5),(-webkit-min-device-pixel-ratio:1.5),(min-device-pixel-ratio:1.5),(min-resolution:144dpi),(min-resolution:1.5dppx){.tabs{padding-top:2px;border-top:none!important;border-bottom:none;background-position:top;background-size:100% 1px;background-repeat:no-repeat}}.tabs-light>.tabs,.tabs.tabs-light{border-color:#ddd;background-color:#fff;background-image:linear-gradient(0deg,#ddd,#ddd 50%,transparent 50%);color:#444}.tabs-light>.tabs .tab-item .badge,.tabs.tabs-light .tab-item .badge{background-color:#444;color:#fff}.tabs-stable>.tabs,.tabs.tabs-stable{border-color:#b2b2b2;background-color:#f8f8f8;background-image:linear-gradient(0deg,#b2b2b2,#b2b2b2 50%,transparent 50%);color:#444}.tabs-stable>.tabs .tab-item .badge,.tabs.tabs-stable .tab-item .badge{background-color:#444;color:#f8f8f8}.tabs-positive>.tabs,.tabs.tabs-positive{border-color:#145fd7;background-color:#4a87ee;background-image:linear-gradient(0deg,#145fd7,#145fd7 50%,transparent 50%);color:#fff}.tabs-positive>.tabs .tab-item .badge,.tabs.tabs-positive .tab-item .badge{background-color:#fff;color:#4a87ee}.tabs-calm>.tabs,.tabs.tabs-calm{border-color:#1aacc3;background-color:#43cee6;background-image:linear-gradient(0deg,#1aacc3,#1aacc3 50%,transparent 50%);color:#fff}.tabs-calm>.tabs .tab-item .badge,.tabs.tabs-calm .tab-item .badge{background-color:#fff;color:#43cee6}.tabs-assertive>.tabs,.tabs.tabs-assertive{border-color:#cc2311;background-color:#ef4e3a;background-image:linear-gradient(0deg,#cc2311,#cc2311 50%,transparent 50%);color:#fff}.tabs-assertive>.tabs .tab-item .badge,.tabs.tabs-assertive .tab-item .badge{background-color:#fff;color:#ef4e3a}.tabs-balanced>.tabs,.tabs.tabs-balanced{border-color:#498f24;background-color:#6c3;background-image:linear-gradient(0deg,#498f24,#498f24 50%,transparent 50%);color:#fff}.tabs-balanced>.tabs .tab-item .badge,.tabs.tabs-balanced .tab-item .badge{background-color:#fff;color:#6c3}.tabs-energized>.tabs,.tabs.tabs-energized{border-color:#d39211;background-color:#f0b840;background-image:linear-gradient(0deg,#d39211,#d39211 50%,transparent 50%);color:#fff}.tabs-energized>.tabs .tab-item .badge,.tabs.tabs-energized .tab-item .badge{background-color:#fff;color:#f0b840}.tabs-royal>.tabs,.tabs.tabs-royal{border-color:#552bdf;background-color:#8a6de9;background-image:linear-gradient(0deg,#552bdf,#552bdf 50%,transparent 50%);color:#fff}.tabs-royal>.tabs .tab-item .badge,.tabs.tabs-royal .tab-item .badge{background-color:#fff;color:#8a6de9}.tabs-dark>.tabs,.tabs.tabs-dark{border-color:#111;background-color:#444;background-image:linear-gradient(0deg,#111,#111 50%,transparent 50%);color:#fff}.tabs-dark>.tabs .tab-item .badge,.tabs.tabs-dark .tab-item .badge{background-color:#fff;color:#444}.tabs-striped .tabs{background-color:#fff;background-image:none;border:none;box-shadow:0 2px 3px rgba(0,0,0,.15);padding-top:2px}.tabs-striped .tab-item.activated,.tabs-striped .tab-item.active,.tabs-striped .tab-item.tab-item-active{margin-top:-2px;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-light .tabs{background-color:#444}.tabs-striped.tabs-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-light .tab-item.activated,.tabs-striped.tabs-light .tab-item.active,.tabs-striped.tabs-light .tab-item.tab-item-active{margin-top:-2px;color:#fff;border-style:solid;border-width:2px 0 0;border-color:#fff}.tabs-striped.tabs-light .tab-item.activated .badge,.tabs-striped.tabs-light .tab-item.active .badge,.tabs-striped.tabs-light .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-stable .tabs{background-color:#444}.tabs-striped.tabs-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-striped.tabs-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-stable .tab-item.activated,.tabs-striped.tabs-stable .tab-item.active,.tabs-striped.tabs-stable .tab-item.tab-item-active{margin-top:-2px;color:#f8f8f8;border-style:solid;border-width:2px 0 0;border-color:#f8f8f8}.tabs-striped.tabs-stable .tab-item.activated .badge,.tabs-striped.tabs-stable .tab-item.active .badge,.tabs-striped.tabs-stable .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-positive .tabs{background-color:#fff}.tabs-striped.tabs-positive .tab-item{color:rgba(74,135,238,.4);opacity:1}.tabs-striped.tabs-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-positive .tab-item.activated,.tabs-striped.tabs-positive .tab-item.active,.tabs-striped.tabs-positive .tab-item.tab-item-active{margin-top:-2px;color:#4a87ee;border-style:solid;border-width:2px 0 0;border-color:#4a87ee}.tabs-striped.tabs-positive .tab-item.activated .badge,.tabs-striped.tabs-positive .tab-item.active .badge,.tabs-striped.tabs-positive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-calm .tabs{background-color:#fff}.tabs-striped.tabs-calm .tab-item{color:rgba(67,206,230,.4);opacity:1}.tabs-striped.tabs-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-calm .tab-item.activated,.tabs-striped.tabs-calm .tab-item.active,.tabs-striped.tabs-calm .tab-item.tab-item-active{margin-top:-2px;color:#43cee6;border-style:solid;border-width:2px 0 0;border-color:#43cee6}.tabs-striped.tabs-calm .tab-item.activated .badge,.tabs-striped.tabs-calm .tab-item.active .badge,.tabs-striped.tabs-calm .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-assertive .tabs{background-color:#fff}.tabs-striped.tabs-assertive .tab-item{color:rgba(239,78,58,.4);opacity:1}.tabs-striped.tabs-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-assertive .tab-item.activated,.tabs-striped.tabs-assertive .tab-item.active,.tabs-striped.tabs-assertive .tab-item.tab-item-active{margin-top:-2px;color:#ef4e3a;border-style:solid;border-width:2px 0 0;border-color:#ef4e3a}.tabs-striped.tabs-assertive .tab-item.activated .badge,.tabs-striped.tabs-assertive .tab-item.active .badge,.tabs-striped.tabs-assertive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-balanced .tabs{background-color:#fff}.tabs-striped.tabs-balanced .tab-item{color:rgba(102,204,51,.4);opacity:1}.tabs-striped.tabs-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-balanced .tab-item.activated,.tabs-striped.tabs-balanced .tab-item.active,.tabs-striped.tabs-balanced .tab-item.tab-item-active{margin-top:-2px;color:#6c3;border-style:solid;border-width:2px 0 0;border-color:#6c3}.tabs-striped.tabs-balanced .tab-item.activated .badge,.tabs-striped.tabs-balanced .tab-item.active .badge,.tabs-striped.tabs-balanced .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-energized .tabs{background-color:#fff}.tabs-striped.tabs-energized .tab-item{color:rgba(240,184,64,.4);opacity:1}.tabs-striped.tabs-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-energized .tab-item.activated,.tabs-striped.tabs-energized .tab-item.active,.tabs-striped.tabs-energized .tab-item.tab-item-active{margin-top:-2px;color:#f0b840;border-style:solid;border-width:2px 0 0;border-color:#f0b840}.tabs-striped.tabs-energized .tab-item.activated .badge,.tabs-striped.tabs-energized .tab-item.active .badge,.tabs-striped.tabs-energized .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-royal .tabs{background-color:#fff}.tabs-striped.tabs-royal .tab-item{color:rgba(138,109,233,.4);opacity:1}.tabs-striped.tabs-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-royal .tab-item.activated,.tabs-striped.tabs-royal .tab-item.active,.tabs-striped.tabs-royal .tab-item.tab-item-active{margin-top:-2px;color:#8a6de9;border-style:solid;border-width:2px 0 0;border-color:#8a6de9}.tabs-striped.tabs-royal .tab-item.activated .badge,.tabs-striped.tabs-royal .tab-item.active .badge,.tabs-striped.tabs-royal .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-dark .tabs{background-color:#fff}.tabs-striped.tabs-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-dark .tab-item.activated,.tabs-striped.tabs-dark .tab-item.active,.tabs-striped.tabs-dark .tab-item.tab-item-active{margin-top:-2px;color:#444;border-style:solid;border-width:2px 0 0;border-color:#444}.tabs-striped.tabs-dark .tab-item.activated .badge,.tabs-striped.tabs-dark .tab-item.active .badge,.tabs-striped.tabs-dark .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-top .tab-item.activated .badge,.tabs-striped.tabs-top .tab-item.active .badge,.tabs-striped.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-striped.tabs-background-light .tabs{background-color:#fff}.tabs-striped.tabs-background-stable .tabs{background-color:#f8f8f8}.tabs-striped.tabs-background-positive .tabs{background-color:#4a87ee}.tabs-striped.tabs-background-calm .tabs{background-color:#43cee6}.tabs-striped.tabs-background-assertive .tabs{background-color:#ef4e3a}.tabs-striped.tabs-background-balanced .tabs{background-color:#6c3}.tabs-striped.tabs-background-energized .tabs{background-color:#f0b840}.tabs-striped.tabs-background-royal .tabs{background-color:#8a6de9}.tabs-striped.tabs-background-dark .tabs{background-color:#444}.tabs-striped.tabs-color-light .tab-item{color:rgba(255,255,255,.4);opacity:1}.tabs-striped.tabs-color-light .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-light .tab-item.activated,.tabs-striped.tabs-color-light .tab-item.active,.tabs-striped.tabs-color-light .tab-item.tab-item-active{margin-top:-2px;color:#fff;border:0 solid #fff;border-top-width:2px}.tabs-striped.tabs-color-light .tab-item.activated .badge,.tabs-striped.tabs-color-light .tab-item.active .badge,.tabs-striped.tabs-color-light .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-stable .tab-item{color:rgba(248,248,248,.4);opacity:1}.tabs-striped.tabs-color-stable .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-stable .tab-item.activated,.tabs-striped.tabs-color-stable .tab-item.active,.tabs-striped.tabs-color-stable .tab-item.tab-item-active{margin-top:-2px;color:#f8f8f8;border:0 solid #f8f8f8;border-top-width:2px}.tabs-striped.tabs-color-stable .tab-item.activated .badge,.tabs-striped.tabs-color-stable .tab-item.active .badge,.tabs-striped.tabs-color-stable .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-positive .tab-item{color:rgba(74,135,238,.4);opacity:1}.tabs-striped.tabs-color-positive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-positive .tab-item.activated,.tabs-striped.tabs-color-positive .tab-item.active,.tabs-striped.tabs-color-positive .tab-item.tab-item-active{margin-top:-2px;color:#4a87ee;border:0 solid #4a87ee;border-top-width:2px}.tabs-striped.tabs-color-positive .tab-item.activated .badge,.tabs-striped.tabs-color-positive .tab-item.active .badge,.tabs-striped.tabs-color-positive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-calm .tab-item{color:rgba(67,206,230,.4);opacity:1}.tabs-striped.tabs-color-calm .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-calm .tab-item.activated,.tabs-striped.tabs-color-calm .tab-item.active,.tabs-striped.tabs-color-calm .tab-item.tab-item-active{margin-top:-2px;color:#43cee6;border:0 solid #43cee6;border-top-width:2px}.tabs-striped.tabs-color-calm .tab-item.activated .badge,.tabs-striped.tabs-color-calm .tab-item.active .badge,.tabs-striped.tabs-color-calm .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-assertive .tab-item{color:rgba(239,78,58,.4);opacity:1}.tabs-striped.tabs-color-assertive .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-assertive .tab-item.activated,.tabs-striped.tabs-color-assertive .tab-item.active,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active{margin-top:-2px;color:#ef4e3a;border:0 solid #ef4e3a;border-top-width:2px}.tabs-striped.tabs-color-assertive .tab-item.activated .badge,.tabs-striped.tabs-color-assertive .tab-item.active .badge,.tabs-striped.tabs-color-assertive .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-balanced .tab-item{color:rgba(102,204,51,.4);opacity:1}.tabs-striped.tabs-color-balanced .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-balanced .tab-item.activated,.tabs-striped.tabs-color-balanced .tab-item.active,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active{margin-top:-2px;color:#6c3;border:0 solid #6c3;border-top-width:2px}.tabs-striped.tabs-color-balanced .tab-item.activated .badge,.tabs-striped.tabs-color-balanced .tab-item.active .badge,.tabs-striped.tabs-color-balanced .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-energized .tab-item{color:rgba(240,184,64,.4);opacity:1}.tabs-striped.tabs-color-energized .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-energized .tab-item.activated,.tabs-striped.tabs-color-energized .tab-item.active,.tabs-striped.tabs-color-energized .tab-item.tab-item-active{margin-top:-2px;color:#f0b840;border:0 solid #f0b840;border-top-width:2px}.tabs-striped.tabs-color-energized .tab-item.activated .badge,.tabs-striped.tabs-color-energized .tab-item.active .badge,.tabs-striped.tabs-color-energized .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-royal .tab-item{color:rgba(138,109,233,.4);opacity:1}.tabs-striped.tabs-color-royal .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-royal .tab-item.activated,.tabs-striped.tabs-color-royal .tab-item.active,.tabs-striped.tabs-color-royal .tab-item.tab-item-active{margin-top:-2px;color:#8a6de9;border:0 solid #8a6de9;border-top-width:2px}.tabs-striped.tabs-color-royal .tab-item.activated .badge,.tabs-striped.tabs-color-royal .tab-item.active .badge,.tabs-striped.tabs-color-royal .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-striped.tabs-color-dark .tab-item{color:rgba(68,68,68,.4);opacity:1}.tabs-striped.tabs-color-dark .tab-item .badge{opacity:.4}.tabs-striped.tabs-color-dark .tab-item.activated,.tabs-striped.tabs-color-dark .tab-item.active,.tabs-striped.tabs-color-dark .tab-item.tab-item-active{margin-top:-2px;color:#444;border:0 solid #444;border-top-width:2px}.tabs-striped.tabs-color-dark .tab-item.activated .badge,.tabs-striped.tabs-color-dark .tab-item.active .badge,.tabs-striped.tabs-color-dark .tab-item.tab-item-active .badge{top:2px;opacity:1}.tabs-top.tabs-striped{padding-bottom:0}.tabs-top.tabs-striped .tab-item{background:0 0;-webkit-transition:all .1s ease;-moz-transition:all .1s ease;-ms-transition:all .1s ease;-o-transition:all .1s ease;transition:all .1s ease}.tabs-top.tabs-striped .tab-item.activated,.tabs-top.tabs-striped .tab-item.active,.tabs-top.tabs-striped .tab-item.tab-item-active{margin-top:0;margin-bottom:-2px;border-width:0 0 2px!important;border-style:solid}.tabs-top.tabs-striped .tab-item .badge{-webkit-transition:all .2s ease;-moz-transition:all .2s ease;-ms-transition:all .2s ease;-o-transition:all .2s ease;transition:all .2s ease}.tabs-top>.tabs,.tabs.tabs-top{top:44px;padding-top:0;background-position:bottom}.tabs-top>.tabs .tab-item.activated .badge,.tabs-top>.tabs .tab-item.active .badge,.tabs-top>.tabs .tab-item.tab-item-active .badge,.tabs.tabs-top .tab-item.activated .badge,.tabs.tabs-top .tab-item.active .badge,.tabs.tabs-top .tab-item.tab-item-active .badge{top:4%}.tabs-top~.bar-header{border-bottom-width:0}.tab-item{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;max-width:150px;height:100%;color:inherit;text-align:center;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;font-weight:400;font-size:14px;font-family:"Helvetica Neue-Light","Helvetica Neue Light","Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif;opacity:.7}.tab-item:hover{cursor:pointer}.tab-item.tab-hidden,.tabs-item-hide>.tabs,.tabs.tabs-item-hide{display:none}.tabs-icon-bottom.tabs .tab-item,.tabs-icon-bottom>.tabs .tab-item,.tabs-icon-top.tabs .tab-item,.tabs-icon-top>.tabs .tab-item{font-size:12px;line-height:14px}.tab-item .icon{display:block;margin:0 auto;height:32px;font-size:32px}.tabs-icon-left.tabs .tab-item,.tabs-icon-left>.tabs .tab-item,.tabs-icon-right.tabs .tab-item,.tabs-icon-right>.tabs .tab-item{font-size:12px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon,.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{display:inline-block;vertical-align:top;margin-top:-.1em}.tabs-icon-left.tabs .tab-item .icon:before,.tabs-icon-left>.tabs .tab-item .icon:before,.tabs-icon-right.tabs .tab-item .icon:before,.tabs-icon-right>.tabs .tab-item .icon:before{font-size:24px;line-height:49px}.tabs-icon-left.tabs .tab-item .icon,.tabs-icon-left>.tabs .tab-item .icon{padding-right:3px}.tabs-icon-right.tabs .tab-item .icon,.tabs-icon-right>.tabs .tab-item .icon{padding-left:3px}.tabs-icon-only.tabs .icon,.tabs-icon-only>.tabs .icon{line-height:inherit}.tab-item.has-badge{position:relative}.tab-item .badge{position:absolute;top:4%;right:33%;right:calc(50% - 26px);padding:1px 6px;height:auto;font-size:12px;line-height:16px}.tab-item.activated,.tab-item.active,.tab-item.tab-item-active{opacity:1}.tab-item.activated.tab-item-light,.tab-item.active.tab-item-light,.tab-item.tab-item-active.tab-item-light{color:#fff}.tab-item.activated.tab-item-stable,.tab-item.active.tab-item-stable,.tab-item.tab-item-active.tab-item-stable{color:#f8f8f8}.tab-item.activated.tab-item-positive,.tab-item.active.tab-item-positive,.tab-item.tab-item-active.tab-item-positive{color:#4a87ee}.tab-item.activated.tab-item-calm,.tab-item.active.tab-item-calm,.tab-item.tab-item-active.tab-item-calm{color:#43cee6}.tab-item.activated.tab-item-assertive,.tab-item.active.tab-item-assertive,.tab-item.tab-item-active.tab-item-assertive{color:#ef4e3a}.tab-item.activated.tab-item-balanced,.tab-item.active.tab-item-balanced,.tab-item.tab-item-active.tab-item-balanced{color:#6c3}.tab-item.activated.tab-item-energized,.tab-item.active.tab-item-energized,.tab-item.tab-item-active.tab-item-energized{color:#f0b840}.tab-item.activated.tab-item-royal,.tab-item.active.tab-item-royal,.tab-item.tab-item-active.tab-item-royal{color:#8a6de9}.tab-item.activated.tab-item-dark,.tab-item.active.tab-item-dark,.tab-item.tab-item-active.tab-item-dark{color:#444}.item.tabs{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:0}.item.tabs .icon:before{position:relative}.tab-item.disabled,.tab-item[disabled]{opacity:.4;cursor:default;pointer-events:none}.tab-item.tab-item-android{border-top:2px solid inherit}.menu{position:absolute;top:0;bottom:0;z-index:0;overflow:hidden;min-height:100%;max-height:100%;width:275px;background-color:#fff}.menu .scroll-content{z-index:10}.menu .bar-header{z-index:11}.menu-content{-webkit-transform:none;-moz-transform:none;transform:none;box-shadow:-1px 0 2px rgba(0,0,0,.2),1px 0 2px rgba(0,0,0,.2)}.menu-open .menu-content .pane,.menu-open .menu-content .scroll-content{pointer-events:none}.grade-b .menu-content,.grade-c .menu-content{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;right:-1px;left:-1px;border-right:1px solid #ccc;border-left:1px solid #ccc;box-shadow:none}.menu-left{left:0}.menu-right{right:0}.aside-open.aside-resizing .menu-right{display:none}.menu-animated{-webkit-transition:-webkit-transform 200ms ease;-moz-transition:-moz-transform 200ms ease;transition:transform 200ms ease}.modal-backdrop{-webkit-transition:background-color 300ms ease-in-out;-moz-transition:background-color 300ms ease-in-out;transition:background-color 300ms ease-in-out;position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.modal-backdrop.active{background-color:rgba(0,0,0,.5)}.modal{display:block;position:absolute;top:0;z-index:10;overflow:hidden;min-height:100%;width:100%;background-color:#fff}@media (min-width:680px){.modal{top:20%;right:20%;bottom:20%;left:20%;overflow:visible;min-height:240px;width:60%}.modal.ng-leave-active{bottom:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader){height:44px}.platform-ios.platform-cordova .modal-wrapper .modal .bar-header:not(.bar-subheader)>*{margin-top:0}.platform-ios.platform-cordova .modal-wrapper .modal .bar-subheader,.platform-ios.platform-cordova .modal-wrapper .modal .has-header,.platform-ios.platform-cordova .modal-wrapper .modal .tabs-top>.tabs,.platform-ios.platform-cordova .modal-wrapper .modal .tabs.tabs-top{top:44px}.platform-ios.platform-cordova .modal-wrapper .modal .has-subheader{top:88px}.platform-ios.platform-cordova .modal-wrapper .modal .has-tabs-top{top:93px}.platform-ios.platform-cordova .modal-wrapper .modal .has-header.has-subheader.has-tabs-top{top:137px}}.modal-open{pointer-events:none}.modal-open .modal,.modal-open .modal-backdrop{pointer-events:auto}.modal-open.loading-active .modal,.modal-open.loading-active .modal-backdrop{pointer-events:none}.popover-backdrop{position:fixed;top:0;left:0;z-index:10;width:100%;height:100%;background-color:transparent}.popover-backdrop.active{background-color:rgba(0,0,0,.1)}.popover{position:absolute;top:25%;left:50%;z-index:10;display:block;margin-top:12px;margin-left:-110px;height:280px;width:220px;background-color:#fff;box-shadow:0 1px 3px rgba(0,0,0,.4);opacity:0}.popover .item:first-child{border-top:0}.popover .item:last-child{border-bottom:0}.popover.popover-bottom{margin-top:-12px}.popover,.popover .bar-header{border-radius:2px}.popover .scroll-content{z-index:1;margin:2px 0}.popover .bar-header{border-bottom-right-radius:0;border-bottom-left-radius:0}.popover .has-header{border-top-right-radius:0;border-top-left-radius:0}.popover-arrow{display:none}.platform-ios .popover{box-shadow:0 0 40px rgba(0,0,0,.08)}.platform-ios .popover,.platform-ios .popover .bar-header{border-radius:10px}.platform-ios .popover .scroll-content{margin:8px 0;border-radius:10px}.platform-ios .popover .scroll-content.has-header{margin-top:0}.platform-ios .popover-arrow{position:absolute;display:block;top:-17px;width:30px;height:19px;overflow:hidden}.platform-ios .popover-arrow:after{position:absolute;top:12px;left:5px;width:20px;height:20px;background-color:#fff;border-radius:3px;content:'';-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg)}.platform-ios .popover-bottom .popover-arrow{top:auto;bottom:-10px}.platform-ios .popover-bottom .popover-arrow:after{top:-6px}.platform-android .popover{margin-top:-32px;background-color:#fafafa;box-shadow:0 2px 6px rgba(0,0,0,.35)}.platform-android .popover .item{border-color:#fafafa;background-color:#fafafa;color:#4d4d4d}.platform-android .popover.popover-bottom{margin-top:32px}.platform-android .popover-backdrop,.platform-android .popover-backdrop.active{background-color:transparent}.popover-open{pointer-events:none}.popover-open .popover,.popover-open .popover-backdrop{pointer-events:auto}.popover-open.loading-active .popover,.popover-open.loading-active .popover-backdrop{pointer-events:none}@media (min-width:680px){.popover{width:360px}}.popup-container{position:absolute;top:0;left:0;bottom:0;right:0;background:0 0;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;z-index:12;visibility:hidden}.popup-container.popup-showing{visibility:visible}.popup-container.popup-hidden .popup{-webkit-animation-name:scaleOut;-moz-animation-name:scaleOut;animation-name:scaleOut;-webkit-animation-duration:.1s;-moz-animation-duration:.1s;animation-duration:.1s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup-container.active .popup{-webkit-animation-name:superScaleIn;-moz-animation-name:superScaleIn;animation-name:superScaleIn;-webkit-animation-duration:.2s;-moz-animation-duration:.2s;animation-duration:.2s;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.popup-container .popup{width:250px;max-width:100%;max-height:90%;border-radius:0;background-color:rgba(255,255,255,.9);display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:vertical;-webkit-flex-direction:column;-moz-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.popup-head{padding:15px 10px;border-bottom:1px solid #eee;text-align:center}.popup-title{margin:0;padding:0;font-size:15px}.popup-sub-title{margin:5px 0 0;padding:0;font-weight:400;font-size:11px}.popup-body{padding:10px;overflow:scroll}.popup-buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;-webkit-box-orient:horizontal;-webkit-flex-direction:row;-moz-flex-direction:row;-ms-flex-direction:row;flex-direction:row;padding:10px;min-height:65px}.popup-buttons .button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;min-height:45px;border-radius:2px;line-height:20px;margin-right:5px}.popup-buttons .button:last-child{margin-right:0}.popup-open,.popup-open.modal-open .modal{pointer-events:none}.popup-open .popup,.popup-open .popup-backdrop{pointer-events:auto}.loading-container{position:absolute;left:0;top:0;right:0;bottom:0;z-index:13;display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;-moz-justify-content:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-transition:.2s opacity linear;-moz-transition:.2s opacity linear;transition:.2s opacity linear;visibility:hidden;opacity:0}.loading-container:not(.visible) .icon{display:none}.loading-container.visible{visibility:visible}.loading-container.active{opacity:1}.loading-container .loading{padding:20px;border-radius:5px;background-color:rgba(0,0,0,.7);color:#fff;text-align:center;text-overflow:ellipsis;font-size:15px}.loading-container .loading h1,.loading-container .loading h2,.loading-container .loading h3,.loading-container .loading h4,.loading-container .loading h5,.loading-container .loading h6{color:#fff}.item{border-color:#ddd;background-color:#fff;color:#444;position:relative;z-index:2;display:block;margin:-1px;padding:16px;border-width:1px;border-style:solid;font-size:16px}.item h2{margin:0 0 4px;font-size:16px}.item h3{margin:0 0 4px;font-size:14px}.item h4{margin:0 0 4px;font-size:12px}.item h5,.item h6{margin:0 0 3px;font-size:10px}.item p{color:#666;font-size:14px}.item h1:last-child,.item h2:last-child,.item h3:last-child,.item h4:last-child,.item h5:last-child,.item h6:last-child,.item p:last-child{margin-bottom:0}.item .badge{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;position:absolute;top:16px;right:32px}.item.item-button-right .badge{right:67px}.item.item-divider .badge{top:8px}.item .badge+.badge{margin-right:5px}.item.item-light{border-color:#ddd;background-color:#fff;color:#444}.item.item-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item.item-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.item.item-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.item.item-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.item.item-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.item.item-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.item.item-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.item.item-dark{border-color:#111;background-color:#444;color:#fff}.item[ng-click]:hover{cursor:pointer}.item .item-content.activated,.item .item-content.active,.item-complex.activated .item-content,.item-complex.active .item-content,.item.activated,.item.active{border-color:#ccc;background-color:#D9D9D9}.item .item-content.activated.item-light,.item .item-content.active.item-light,.item-complex.activated .item-content.item-light,.item-complex.active .item-content.item-light,.item.activated.item-light,.item.active.item-light{border-color:#ccc;background-color:#fafafa}.item .item-content.activated.item-stable,.item .item-content.active.item-stable,.item-complex.activated .item-content.item-stable,.item-complex.active .item-content.item-stable,.item.activated.item-stable,.item.active.item-stable{border-color:#a2a2a2;background-color:#e5e5e5}.item .item-content.activated.item-positive,.item .item-content.active.item-positive,.item-complex.activated .item-content.item-positive,.item-complex.active .item-content.item-positive,.item.activated.item-positive,.item.active.item-positive{border-color:#145fd7;background-color:#145fd7}.item .item-content.activated.item-calm,.item .item-content.active.item-calm,.item-complex.activated .item-content.item-calm,.item-complex.active .item-content.item-calm,.item.activated.item-calm,.item.active.item-calm{border-color:#1aacc3;background-color:#1aacc3}.item .item-content.activated.item-assertive,.item .item-content.active.item-assertive,.item-complex.activated .item-content.item-assertive,.item-complex.active .item-content.item-assertive,.item.activated.item-assertive,.item.active.item-assertive{border-color:#cc2311;background-color:#cc2311}.item .item-content.activated.item-balanced,.item .item-content.active.item-balanced,.item-complex.activated .item-content.item-balanced,.item-complex.active .item-content.item-balanced,.item.activated.item-balanced,.item.active.item-balanced{border-color:#498f24;background-color:#498f24}.item .item-content.activated.item-energized,.item .item-content.active.item-energized,.item-complex.activated .item-content.item-energized,.item-complex.active .item-content.item-energized,.item.activated.item-energized,.item.active.item-energized{border-color:#d39211;background-color:#d39211}.item .item-content.activated.item-royal,.item .item-content.active.item-royal,.item-complex.activated .item-content.item-royal,.item-complex.active .item-content.item-royal,.item.activated.item-royal,.item.active.item-royal{border-color:#552bdf;background-color:#552bdf}.item .item-content.activated.item-dark,.item .item-content.active.item-dark,.item-complex.activated .item-content.item-dark,.item-complex.active .item-content.item-dark,.item.activated.item-dark,.item.active.item-dark{border-color:#000;background-color:#262626}.item,.item h1,.item h2,.item h3,.item h4,.item h5,.item h6,.item p,.item-content,.item-content h1,.item-content h2,.item-content h3,.item-content h4,.item-content h5,.item-content h6,.item-content p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}a.item{color:inherit;text-decoration:none}a.item:focus,a.item:hover{text-decoration:none}.item-complex,a.item.item-complex,button.item.item-complex{padding:0}.item-complex .item-content,.item-radio .item-content{position:relative;z-index:2;padding:16px 49px 16px 16px;border:none;background-color:#fff}a.item-content{display:block;color:inherit;text-decoration:none}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p,.item-complex.item-text-wrap,.item-complex.item-text-wrap .item-content,.item-complex.item-text-wrap h1,.item-complex.item-text-wrap h2,.item-complex.item-text-wrap h3,.item-complex.item-text-wrap h4,.item-complex.item-text-wrap h5,.item-complex.item-text-wrap h6,.item-complex.item-text-wrap p,.item-text-wrap,.item-text-wrap .item,.item-text-wrap .item-content,.item-text-wrap h1,.item-text-wrap h2,.item-text-wrap h3,.item-text-wrap h4,.item-text-wrap h5,.item-text-wrap h6,.item-text-wrap p{overflow:visible;white-space:normal}.item-complex.item-light>.item-content{border-color:#ddd;background-color:#fff;color:#444}.item-complex.item-light>.item-content.active,.item-complex.item-light>.item-content:active{border-color:#ccc;background-color:#fafafa}.item-complex.item-stable>.item-content{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.item-complex.item-stable>.item-content.active,.item-complex.item-stable>.item-content:active{border-color:#a2a2a2;background-color:#e5e5e5}.item-complex.item-positive>.item-content{border-color:#145fd7;background-color:#4a87ee;color:#fff}.item-complex.item-positive>.item-content.active,.item-complex.item-positive>.item-content:active{border-color:#145fd7;background-color:#145fd7}.item-complex.item-calm>.item-content{border-color:#1aacc3;background-color:#43cee6;color:#fff}.item-complex.item-calm>.item-content.active,.item-complex.item-calm>.item-content:active{border-color:#1aacc3;background-color:#1aacc3}.item-complex.item-assertive>.item-content{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.item-complex.item-assertive>.item-content.active,.item-complex.item-assertive>.item-content:active{border-color:#cc2311;background-color:#cc2311}.item-complex.item-balanced>.item-content{border-color:#498f24;background-color:#6c3;color:#fff}.item-complex.item-balanced>.item-content.active,.item-complex.item-balanced>.item-content:active{border-color:#498f24;background-color:#498f24}.item-complex.item-energized>.item-content{border-color:#d39211;background-color:#f0b840;color:#fff}.item-complex.item-energized>.item-content.active,.item-complex.item-energized>.item-content:active{border-color:#d39211;background-color:#d39211}.item-complex.item-royal>.item-content{border-color:#552bdf;background-color:#8a6de9;color:#fff}.item-complex.item-royal>.item-content.active,.item-complex.item-royal>.item-content:active{border-color:#552bdf;background-color:#552bdf}.item-complex.item-dark>.item-content{border-color:#111;background-color:#444;color:#fff}.item-complex.item-dark>.item-content.active,.item-complex.item-dark>.item-content:active{border-color:#000;background-color:#262626}.item-icon-left .icon,.item-icon-right .icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-icon-left .icon:before,.item-icon-right .icon:before{display:block;width:32px;text-align:center}.item .fill-icon{min-width:30px;min-height:30px;font-size:28px}.item-icon-left{padding-left:54px}.item-icon-left .icon{left:11px}.item-complex.item-icon-left{padding-left:0}.item-complex.item-icon-left .item-content{padding-left:54px}.item-icon-right{padding-right:54px}.item-icon-right .icon{right:11px}.item-complex.item-icon-right{padding-right:0}.item-complex.item-icon-right .item-content{padding-right:54px}.item-icon-left.item-icon-right .icon:first-child{right:auto}.item-icon-left .item-delete .icon,.item-icon-left.item-icon-right .icon:last-child{left:auto}.item-icon-left .icon-accessory,.item-icon-right .icon-accessory{color:#ccc;font-size:16px}.item-icon-left .icon-accessory{left:3px}.item-icon-right .icon-accessory{right:3px}.item-button-left{padding-left:72px}.item-button-left .item-content>.button,.item-button-left>.button{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;left:11px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-left .item-content>.button .icon:before,.item-button-left>.button .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-left .item-content>.button>.button,.item-button-left>.button>.button{margin:0 2px;min-height:34px;font-size:18px;line-height:32px}.item-button-right,a.item.item-button-right,button.item.item-button-right{padding-right:80px}.item-button-right .item-content>.button,.item-button-right .item-content>.buttons,.item-button-right>.button,.item-button-right>.buttons{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:8px;right:16px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-button-right .item-content>.button .icon:before,.item-button-right .item-content>.buttons .icon:before,.item-button-right>.button .icon:before,.item-button-right>.buttons .icon:before{position:relative;left:auto;width:auto;line-height:31px}.item-button-right .item-content>.button>.button,.item-button-right .item-content>.buttons>.button,.item-button-right>.button>.button,.item-button-right>.buttons>.button{margin:0 2px;min-width:34px;min-height:34px;font-size:18px;line-height:32px}.item-avatar,.item-avatar .item-content,.item-avatar-left,.item-avatar-left .item-content{padding-left:72px;min-height:72px}.item-avatar .item-content .item-image,.item-avatar .item-content>img:first-child,.item-avatar .item-image,.item-avatar-left .item-content .item-image,.item-avatar-left .item-content>img:first-child,.item-avatar-left .item-image,.item-avatar-left>img:first-child,.item-avatar>img:first-child{position:absolute;top:16px;left:16px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-avatar-right,.item-avatar-right .item-content{padding-right:72px;min-height:72px}.item-avatar-right .item-content .item-image,.item-avatar-right .item-content>img:first-child,.item-avatar-right .item-image,.item-avatar-right>img:first-child{position:absolute;top:16px;right:16px;max-width:40px;max-height:40px;width:100%;border-radius:4px}.item-thumbnail-left,.item-thumbnail-left .item-content{padding-left:106px;min-height:100px}.item-thumbnail-left .item-content .item-image,.item-thumbnail-left .item-content>img:first-child,.item-thumbnail-left .item-image,.item-thumbnail-left>img:first-child{position:absolute;top:10px;left:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-left.item-complex,.item-avatar.item-complex,.item-thumbnail-left.item-complex{padding-left:0}.item-thumbnail-right,.item-thumbnail-right .item-content{padding-right:106px;min-height:100px}.item-thumbnail-right .item-content .item-image,.item-thumbnail-right .item-content>img:first-child,.item-thumbnail-right .item-image,.item-thumbnail-right>img:first-child{position:absolute;top:10px;right:10px;max-width:80px;max-height:80px;width:100%}.item-avatar-right.item-complex,.item-thumbnail-right.item-complex{padding-right:0}.item-image{padding:0;text-align:center}.item-image .list-img,.item-image img:first-child{width:100%;vertical-align:middle}.item-body{overflow:auto;padding:16px;text-overflow:inherit;white-space:normal}.item-body h1,.item-body h2,.item-body h3,.item-body h4,.item-body h5,.item-body h6,.item-body p{margin-top:16px;margin-bottom:16px}.item-divider{padding-top:8px;padding-bottom:8px;min-height:30px;background-color:#f5f5f5;color:#222;font-weight:700}.item-note{float:right;color:#aaa;font-size:14px}.item-left-editable .item-content,.item-right-editable .item-content{-webkit-transition-duration:250ms;-moz-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-property:-webkit-transform;-moz-transition-property:-moz-transform;transition-property:transform}.item-left-editing.item-left-editable .item-content,.list-left-editing .item-left-editable .item-content{-webkit-transform:translate3d(50px,0,0);-moz-transform:translate3d(50px,0,0);transform:translate3d(50px,0,0)}.item-right-editing.item-right-editable .item-content,.list-right-editing .item-right-editable .item-content{-webkit-transform:translate3d(-50px,0,0);-moz-transform:translate3d(-50px,0,0);transform:translate3d(-50px,0,0)}.item-left-edit{-webkit-transition:all ease-in-out 125ms;-moz-transition:all ease-in-out 125ms;transition:all ease-in-out 125ms;position:absolute;top:0;left:0;z-index:0;width:50px;height:100%;line-height:100%;display:none;opacity:0;-webkit-transform:translate3d(-21px,0,0);-moz-transform:translate3d(-21px,0,0);transform:translate3d(-21px,0,0)}.item-left-edit .button{height:100%}.item-left-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%}.item-left-edit.visible{display:block}.item-left-edit.visible.active{opacity:1;-webkit-transform:translate3d(8px,0,0);-moz-transform:translate3d(8px,0,0);transform:translate3d(8px,0,0)}.list-left-editing .item-left-edit{-webkit-transition-delay:125ms;-moz-transition-delay:125ms;transition-delay:125ms}.item-delete .button.icon{color:#ef4e3a;font-size:24px}.item-delete .button.icon:hover{opacity:.7}.item-right-edit{-webkit-transition:all ease-in-out 125ms;-moz-transition:all ease-in-out 125ms;transition:all ease-in-out 125ms;position:absolute;top:0;right:0;z-index:0;width:75px;height:100%;background:inherit;padding-left:20px;display:none;opacity:0;-webkit-transform:translate3d(25px,0,0);-moz-transform:translate3d(25px,0,0);transform:translate3d(25px,0,0)}.item-right-edit .button{min-width:50px;height:100%}.item-right-edit .button.icon{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:absolute;top:0;height:100%;font-size:32px}.item-right-edit.visible{display:block;z-index:3}.item-right-edit.visible.active{opacity:1;-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.list-right-editing .item-right-edit{-webkit-transition-delay:125ms;-moz-transition-delay:125ms;transition-delay:125ms}.item-reorder .button.icon{color:#444;font-size:32px}.item-reordering{position:absolute;left:0;top:0;z-index:9;width:100%;box-shadow:0 0 10px 0 #aaa}.item-reordering .item-reorder{z-index:1}.item-placeholder{opacity:.7}.item-options{position:absolute;top:0;right:0;z-index:1;height:100%}.item-options .button{height:100%;border:none;border-radius:0}.list{position:relative;padding-top:1px;padding-bottom:1px;padding-left:0;margin-bottom:20px}.list:last-child{margin-bottom:0}.list:last-child.card{margin-bottom:40px}.list-header{margin-top:20px;padding:5px 15px;background-color:transparent;color:#222;font-weight:700}.card.list .list-item{padding-right:1px;padding-left:1px}.card,.list-inset{overflow:hidden;margin:20px 10px;border-radius:2px;background-color:#fff}.card{padding-top:1px;padding-bottom:1px;box-shadow:0 1px 2px rgba(0,0,0,.1)}.padding .card,.padding .list-inset{margin-left:0;margin-right:0}.card .item:first-child,.card .item:first-child .item-content,.list-inset .item:first-child,.list-inset .item:first-child .item-content,.padding>.list .item:first-child,.padding>.list .item:first-child .item-content{border-top-left-radius:2px;border-top-right-radius:2px}.card .item:last-child,.card .item:last-child .item-content,.list-inset .item:last-child,.list-inset .item:last-child .item-content,.padding>.list .item:last-child,.padding>.list .item:last-child .item-content{border-bottom-right-radius:2px;border-bottom-left-radius:2px}.card .item:last-child,.list-inset .item:last-child{margin-bottom:-1px}.card .item,.list-inset .item,.padding-horizontal>.list .item,.padding>.list .item{margin-right:0;margin-left:0}.card .item.item-input input,.list-inset .item.item-input input,.padding-horizontal>.list .item.item-input input,.padding>.list .item.item-input input{padding-right:44px}.padding-left>.list .item{margin-left:0}.padding-right>.list .item{margin-right:0}.badge{background-color:transparent;color:#AAA;z-index:1;display:inline-block;padding:3px 8px;min-width:10px;border-radius:10px;vertical-align:baseline;text-align:center;white-space:nowrap;font-weight:700;font-size:14px;line-height:16px}.badge:empty{display:none}.badge.badge-light,.tabs .tab-item .badge.badge-light{background-color:#fff;color:#444}.badge.badge-stable,.tabs .tab-item .badge.badge-stable{background-color:#f8f8f8;color:#444}.badge.badge-positive,.tabs .tab-item .badge.badge-positive{background-color:#4a87ee;color:#fff}.badge.badge-calm,.tabs .tab-item .badge.badge-calm{background-color:#43cee6;color:#fff}.badge.badge-assertive,.tabs .tab-item .badge.badge-assertive{background-color:#ef4e3a;color:#fff}.badge.badge-balanced,.tabs .tab-item .badge.badge-balanced{background-color:#6c3;color:#fff}.badge.badge-energized,.tabs .tab-item .badge.badge-energized{background-color:#f0b840;color:#fff}.badge.badge-royal,.tabs .tab-item .badge.badge-royal{background-color:#8a6de9;color:#fff}.badge.badge-dark,.tabs .tab-item .badge.badge-dark{background-color:#444;color:#fff}.button .badge{position:relative;top:-1px}.slider{position:relative;visibility:hidden;overflow:hidden}.slider-slides{position:relative;height:100%}.slider-slide{position:relative;display:block;float:left;width:100%;height:100%;vertical-align:top}.slider-slide-image>img{width:100%}.slider-pager{position:absolute;bottom:20px;z-index:1;width:100%;height:15px;text-align:center}.slider-pager .slider-pager-page{display:inline-block;margin:0 3px;width:15px;color:#000;text-decoration:none;opacity:.3}.slider-pager .slider-pager-page.active{-webkit-transition:opacity .4s ease-in;-moz-transition:opacity .4s ease-in;transition:opacity .4s ease-in;opacity:1}form{margin:0 0 1.42857}legend{display:block;margin-bottom:1.42857;padding:0;width:100%;border:1px solid #ddd;color:#444;font-size:21px;line-height:2.85714}legend small{color:#f8f8f8;font-size:1.07143}button,input,label,select,textarea{font-weight:400;font-size:14px;line-height:1.42857}button,input,select,textarea{font-family:"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.item-input{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:6px 0 5px 16px}.item-input input{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;padding-right:24px;background-color:transparent}.item-input .button .icon{-webkit-box-flex:0;-webkit-flex:0 0 24px;-moz-box-flex:0;-moz-flex:0 0 24px;-ms-flex:0 0 24px;flex:0 0 24px;position:static;display:inline-block;height:auto;text-align:center;font-size:16px}.item-input .button-bar{-webkit-border-radius:0;-moz-border-radius:0;border-radius:0;-webkit-box-flex:1;-webkit-flex:1 0 220px;-moz-box-flex:1;-moz-flex:1 0 220px;-ms-flex:1 0 220px;flex:1 0 220px;-webkit-appearance:none;-moz-appearance:none;appearance:none}.item-input .icon{min-width:14px}.item-input-inset{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;position:relative;overflow:hidden;padding:10.67px}.item-input-wrapper{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1 0;-moz-box-flex:1;-moz-flex:1 0;-ms-flex:1 0;flex:1 0;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;padding-right:8px;padding-left:8px;background:#eee}.item-input-inset .item-input-wrapper input{padding-left:4px;height:29px;background:0 0;line-height:18px}.item-input-wrapper~.button{margin-left:10.67px}.input-label{-webkit-box-flex:1;-webkit-flex:1 0 100px;-moz-box-flex:1;-moz-flex:1 0 100px;-ms-flex:1 0 100px;flex:1 0 100px;display:table;padding:7px 10px 7px 0;max-width:200px;width:35%;color:#444;font-size:16px}.placeholder-icon{color:#aaa}.placeholder-icon:first-child{padding-right:6px}.placeholder-icon:last-child{padding-left:6px}.item-stacked-label{display:block;background-color:transparent;box-shadow:none}.item-stacked-label .icon,.item-stacked-label .input-label{display:inline-block;padding:4px 0 0;vertical-align:middle}.item-stacked-label input,.item-stacked-label textarea{-webkit-border-radius:2px;-moz-border-radius:2px;border-radius:2px;padding:4px 8px 3px 0;border:none;background-color:#fff}.item-stacked-label input{overflow:hidden;height:46px}.item-floating-label{display:block;background-color:transparent;box-shadow:none}.item-floating-label .input-label{position:relative;padding:5px 0 0;opacity:0;top:10px;-webkit-transition:opacity .15s ease-in,top .2s linear;-moz-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}.item-floating-label .input-label.has-input{opacity:1;top:0;-webkit-transition:opacity .15s ease-in,top .2s linear;-moz-transition:opacity .15s ease-in,top .2s linear;transition:opacity .15s ease-in,top .2s linear}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{display:block;padding-top:2px;padding-left:0;height:34px;color:#111;vertical-align:middle;font-size:14px;line-height:16px}.platform-android input[type=date],.platform-android input[type=datetime-local],.platform-android input[type=month],.platform-android input[type=time],.platform-android input[type=week],.platform-ios input[type=date],.platform-ios input[type=datetime-local],.platform-ios input[type=month],.platform-ios input[type=time],.platform-ios input[type=week]{padding-top:8px}input,textarea{width:100%}textarea{padding-left:0}textarea::-moz-placeholder{color:#aaa}textarea:-ms-input-placeholder{color:#aaa}textarea::-webkit-input-placeholder{color:#aaa;text-indent:-3px}textarea{height:auto}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],textarea{border:0}input[type=checkbox],input[type=radio]{margin:0;line-height:normal}input[type=button],input[type=checkbox],input[type=file],input[type=image],input[type=radio],input[type=reset],input[type=submit]{width:auto}input[type=file]{line-height:34px}.cloned-text-input+input,.cloned-text-input+textarea,.previous-input-focus{position:absolute!important;left:-9999px;width:200px}input::-moz-placeholder,textarea::-moz-placeholder{color:#aaa}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#aaa}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#aaa;text-indent:0}input[disabled],input[readonly]:not(.cloned-text-input),select[disabled],select[readonly],textarea[disabled],textarea[readonly]:not(.cloned-text-input){background-color:#f8f8f8;cursor:not-allowed}input[type=checkbox][disabled],input[type=checkbox][readonly],input[type=radio][disabled],input[type=radio][readonly]{background-color:transparent}.checkbox{position:relative;display:inline-block;padding:7px;cursor:pointer}.checkbox .checkbox-icon:before,.checkbox input:before{border-color:#4a87ee}.checkbox input:checked+.checkbox-icon:before,.checkbox input:checked:before{background:#4a87ee}.checkbox-light .checkbox-icon:before,.checkbox-light input:before{border-color:#ddd}.checkbox-light input:checked+.checkbox-icon:before,.checkbox-light input:checked:before{background:#ddd}.checkbox-stable .checkbox-icon:before,.checkbox-stable input:before{border-color:#b2b2b2}.checkbox-stable input:checked+.checkbox-icon:before,.checkbox-stable input:checked:before{background:#b2b2b2}.checkbox-positive .checkbox-icon:before,.checkbox-positive input:before{border-color:#4a87ee}.checkbox-positive input:checked+.checkbox-icon:before,.checkbox-positive input:checked:before{background:#4a87ee}.checkbox-calm .checkbox-icon:before,.checkbox-calm input:before{border-color:#43cee6}.checkbox-calm input:checked+.checkbox-icon:before,.checkbox-calm input:checked:before{background:#43cee6}.checkbox-assertive .checkbox-icon:before,.checkbox-assertive input:before{border-color:#ef4e3a}.checkbox-assertive input:checked+.checkbox-icon:before,.checkbox-assertive input:checked:before{background:#ef4e3a}.checkbox-balanced .checkbox-icon:before,.checkbox-balanced input:before{border-color:#6c3}.checkbox-balanced input:checked+.checkbox-icon:before,.checkbox-balanced input:checked:before{background:#6c3}.checkbox-energized .checkbox-icon:before,.checkbox-energized input:before{border-color:#f0b840}.checkbox-energized input:checked+.checkbox-icon:before,.checkbox-energized input:checked:before{background:#f0b840}.checkbox-royal .checkbox-icon:before,.checkbox-royal input:before{border-color:#8a6de9}.checkbox-royal input:checked+.checkbox-icon:before,.checkbox-royal input:checked:before{background:#8a6de9}.checkbox-dark .checkbox-icon:before,.checkbox-dark input:before{border-color:#444}.checkbox-dark input:checked+.checkbox-icon:before,.checkbox-dark input:checked:before{background:#444}.checkbox input:disabled+.checkbox-icon:before,.checkbox input:disabled:before{border-color:#ddd}.checkbox input:disabled:checked+.checkbox-icon:before,.checkbox input:disabled:checked:before{background:#ddd}.checkbox.checkbox-input-hidden input{display:none!important}.checkbox input,.checkbox-icon{position:relative;width:28px;height:28px;display:block;border:0;background:0 0;cursor:pointer;-webkit-appearance:none}.checkbox input:before,.checkbox-icon:before{display:table;width:100%;height:100%;border-width:1px;border-style:solid;border-radius:28px;background:#fff;content:' ';transition:background-color 20ms ease-in-out}.checkbox input:checked:before,input:checked+.checkbox-icon:before{border-width:2px}.checkbox input:after,.checkbox-icon:after{-webkit-transition:opacity .05s ease-in-out;-moz-transition:opacity .05s ease-in-out;transition:opacity .05s ease-in-out;-webkit-transform:rotate(-45deg);-moz-transform:rotate(-45deg);transform:rotate(-45deg);position:absolute;top:30%;left:26%;display:table;width:15px;height:10.33px;border:3px solid #fff;border-top:0;border-right:0;content:' ';opacity:0}.grade-c .checkbox input:after,.grade-c .checkbox-icon:after{-webkit-transform:rotate(0);-moz-transform:rotate(0);transform:rotate(0);top:3px;left:4px;border:none;color:#fff;content:'\2713';font-weight:700;font-size:20px}.checkbox input:checked:after,input:checked+.checkbox-icon:after{opacity:1}.item-checkbox{padding-left:60px}.item-checkbox.active{box-shadow:none}.item-checkbox .checkbox{position:absolute;top:50%;right:8px;left:8px;z-index:3;margin-top:-21px}.item-checkbox.item-checkbox-right{padding-right:60px;padding-left:16px}.item-checkbox-right .checkbox input,.item-checkbox-right .checkbox-icon{float:right}.item-toggle{pointer-events:none}.toggle{position:relative;display:inline-block;pointer-events:auto;margin:-5px;padding:5px}.toggle input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.dragging .handle{background-color:#f2f2f2!important}.toggle.toggle-light input:checked+.track{border-color:#ddd;background-color:#ddd}.toggle.toggle-stable input:checked+.track{border-color:#b2b2b2;background-color:#b2b2b2}.toggle.toggle-positive input:checked+.track{border-color:#4a87ee;background-color:#4a87ee}.toggle.toggle-calm input:checked+.track{border-color:#43cee6;background-color:#43cee6}.toggle.toggle-assertive input:checked+.track{border-color:#ef4e3a;background-color:#ef4e3a}.toggle.toggle-balanced input:checked+.track{border-color:#6c3;background-color:#6c3}.toggle.toggle-energized input:checked+.track{border-color:#f0b840;background-color:#f0b840}.toggle.toggle-royal input:checked+.track{border-color:#8a6de9;background-color:#8a6de9}.toggle.toggle-dark input:checked+.track{border-color:#444;background-color:#444}.toggle input{display:none}.toggle .track{-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;-moz-transition-property:background-color,border;transition-property:background-color,border;display:inline-block;box-sizing:border-box;width:54px;height:32px;border:2px solid #E5E5E5;border-radius:20px;background-color:#E5E5E5;content:' ';cursor:pointer;pointer-events:none}.platform-android4_2 .toggle .track{-webkit-background-clip:padding-box}.toggle .handle{-webkit-transition:.2s ease-in-out;-moz-transition:.2s ease-in-out;transition:.2s ease-in-out;position:absolute;display:block;width:28px;height:28px;border-radius:28px;background-color:#fff;top:7px;left:7px}.toggle .handle:before{position:absolute;top:-4px;left:-22px;padding:19px 35px;content:" "}.toggle input:checked+.track .handle{-webkit-transform:translate3d(22px,0,0);-moz-transform:translate3d(22px,0,0);transform:translate3d(22px,0,0);background-color:#fff}.item-toggle.active{box-shadow:none}.item-toggle,.item-toggle.item-complex .item-content{padding-right:102px}.item-toggle.item-complex{padding-right:0}.item-toggle .toggle{position:absolute;top:8px;right:16px;z-index:3}.toggle input:disabled+.track{opacity:.6}.item-radio{padding:0}.item-radio:hover{cursor:pointer}.item-radio .item-content{padding-right:64px}.item-radio .radio-icon{position:absolute;top:0;right:0;z-index:3;visibility:hidden;padding:14px;height:100%;font-size:24px}.item-radio input{position:absolute;left:-9999px}.item-radio input:checked~.item-content{background:#f7f7f7}.item-radio input:checked~.radio-icon{visibility:visible}.platform-android.grade-b .item-radio,.platform-android.grade-c .item-radio{-webkit-animation:androidCheckedbugfix infinite 1s}@-webkit-keyframes androidCheckedbugfix{from,to{padding:0}}input[type=range]{display:inline-block;overflow:hidden;margin-top:5px;margin-bottom:5px;padding-right:2px;padding-left:1px;width:auto;height:35px;outline:0;background:-webkit-gradient(linear,50% 0,50% 100%,color-stop(0%,#ccc),color-stop(100%,#ccc)) center/99% 4px no-repeat;background:linear-gradient(to right,#ccc 0,#ccc 100%) center/99% 4px no-repeat;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb{position:relative;width:20px;height:20px;border-radius:10px;background-color:#fff;box-shadow:0 0 2px rgba(0,0,0,.5),1px 3px 5px rgba(0,0,0,.25);cursor:pointer;-webkit-appearance:none}input[type=range]::-webkit-slider-thumb:before{position:absolute;top:8px;left:-2001px;width:2000px;height:4px;background:#444;content:' '}input[type=range]::-webkit-slider-thumb:after{position:absolute;top:-20px;left:-20px;padding:30px;content:' '}.range{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center;padding:2px 11px}.range.range-light input::-webkit-slider-thumb:before{background:#ddd}.range.range-stable input::-webkit-slider-thumb:before{background:#b2b2b2}.range.range-positive input::-webkit-slider-thumb:before{background:#4a87ee}.range.range-calm input::-webkit-slider-thumb:before{background:#43cee6}.range.range-balanced input::-webkit-slider-thumb:before{background:#6c3}.range.range-assertive input::-webkit-slider-thumb:before{background:#ef4e3a}.range.range-energized input::-webkit-slider-thumb:before{background:#f0b840}.range.range-royal input::-webkit-slider-thumb:before{background:#8a6de9}.range.range-dark input::-webkit-slider-thumb:before{background:#444}.range .icon{-webkit-box-flex:0;-webkit-flex:0;-moz-box-flex:0;-moz-flex:0;-ms-flex:0;flex:0;display:block;min-width:24px;text-align:center;font-size:24px}.range input{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;margin-right:10px;margin-left:10px}.range-label{-webkit-box-flex:0;-webkit-flex:0 0 auto;-moz-box-flex:0;-moz-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;display:block;white-space:nowrap}.range-label:first-child{padding-left:5px}.range input+.range-label{padding-right:5px;padding-left:0}.item-select{position:relative}.item-select select{-webkit-appearance:none;-moz-appearance:none;appearance:none;position:absolute;top:0;right:0;padding:14px 48px 16px 16px;max-width:65%;border:none;background:#fff;color:#333;text-indent:.01px;text-overflow:'';white-space:nowrap;font-size:14px;cursor:pointer;direction:rtl}.item-select select::-ms-expand{display:none}.item-select option{direction:ltr}.item-select:after{position:absolute;top:50%;right:16px;margin-top:-3px;width:0;height:0;border-top:5px solid;border-right:5px solid transparent;border-left:5px solid transparent;color:#999;content:"";pointer-events:none}.item-select.item-light select{background:#fff;color:#444}.item-select.item-stable select{background:#f8f8f8;color:#444}.item-select.item-stable .input-label,.item-select.item-stable:after{color:#656565}.item-select.item-positive select{background:#4a87ee;color:#fff}.item-select.item-positive .input-label,.item-select.item-positive:after{color:#fff}.item-select.item-calm select{background:#43cee6;color:#fff}.item-select.item-calm .input-label,.item-select.item-calm:after{color:#fff}.item-select.item-assertive select{background:#ef4e3a;color:#fff}.item-select.item-assertive .input-label,.item-select.item-assertive:after{color:#fff}.item-select.item-balanced select{background:#6c3;color:#fff}.item-select.item-balanced .input-label,.item-select.item-balanced:after{color:#fff}.item-select.item-energized select{background:#f0b840;color:#fff}.item-select.item-energized .input-label,.item-select.item-energized:after{color:#fff}.item-select.item-royal select{background:#8a6de9;color:#fff}.item-select.item-royal .input-label,.item-select.item-royal:after{color:#fff}.item-select.item-dark select{background:#444;color:#fff}.item-select.item-dark .input-label,.item-select.item-dark:after{color:#fff}select[multiple],select[size]{height:auto}progress{display:block;margin:15px auto;width:100%}.button{border-color:#b2b2b2;background-color:#f8f8f8;color:#444;position:relative;display:inline-block;margin:0;padding:0 12px;min-width:52px;min-height:47px;border-width:1px;border-style:solid;border-radius:2px;vertical-align:top;text-align:center;text-overflow:ellipsis;font-size:16px;line-height:42px;cursor:pointer}.button:hover{color:#444;text-decoration:none}.button.activated,.button.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button:after{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;content:' '}.button .icon{vertical-align:top;pointer-events:none}.button .icon:before,.button.icon-left:before,.button.icon-right:before,.button.icon:before{display:inline-block;padding:0 0 1px;vertical-align:inherit;font-size:24px;line-height:41px;pointer-events:none}.button.icon-left:before{float:left;padding-right:.2em;padding-left:0}.button.icon-right:before{float:right;padding-right:0;padding-left:.2em}.button.button-block,.button.button-full{margin-top:10px;margin-bottom:10px}.button.button-light{border-color:#ddd;background-color:#fff;color:#444}.button.button-light:hover{color:#444;text-decoration:none}.button.button-light.activated,.button.button-light.active{border-color:#ccc;background-color:#fafafa;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-light.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ddd}.button.button-light.button-icon{border-color:transparent;background:0 0}.button.button-light.button-outline{border-color:#ddd;background:0 0;color:#ddd}.button.button-light.button-outline.activated,.button.button-light.button-outline.active{background-color:#ddd;box-shadow:none;color:#fff}.button.button-stable{border-color:#b2b2b2;background-color:#f8f8f8;color:#444}.button.button-stable:hover{color:#444;text-decoration:none}.button.button-stable.activated,.button.button-stable.active{border-color:#a2a2a2;background-color:#e5e5e5;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-stable.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button.button-stable.button-icon{border-color:transparent;background:0 0}.button.button-stable.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button.button-stable.button-outline.activated,.button.button-stable.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.button.button-positive{border-color:#145fd7;background-color:#4a87ee;color:#fff}.button.button-positive:hover{color:#fff;text-decoration:none}.button.button-positive.activated,.button.button-positive.active{border-color:#145fd7;background-color:#145fd7;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-positive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#4a87ee}.button.button-positive.button-icon{border-color:transparent;background:0 0}.button.button-positive.button-outline{border-color:#4a87ee;background:0 0;color:#4a87ee}.button.button-positive.button-outline.activated,.button.button-positive.button-outline.active{background-color:#4a87ee;box-shadow:none;color:#fff}.button.button-calm{border-color:#1aacc3;background-color:#43cee6;color:#fff}.button.button-calm:hover{color:#fff;text-decoration:none}.button.button-calm.activated,.button.button-calm.active{border-color:#1aacc3;background-color:#1aacc3;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-calm.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#43cee6}.button.button-calm.button-icon{border-color:transparent;background:0 0}.button.button-calm.button-outline{border-color:#43cee6;background:0 0;color:#43cee6}.button.button-calm.button-outline.activated,.button.button-calm.button-outline.active{background-color:#43cee6;box-shadow:none;color:#fff}.button.button-assertive{border-color:#cc2311;background-color:#ef4e3a;color:#fff}.button.button-assertive:hover{color:#fff;text-decoration:none}.button.button-assertive.activated,.button.button-assertive.active{border-color:#cc2311;background-color:#cc2311;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-assertive.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#ef4e3a}.button.button-assertive.button-icon{border-color:transparent;background:0 0}.button.button-assertive.button-outline{border-color:#ef4e3a;background:0 0;color:#ef4e3a}.button.button-assertive.button-outline.activated,.button.button-assertive.button-outline.active{background-color:#ef4e3a;box-shadow:none;color:#fff}.button.button-balanced{border-color:#498f24;background-color:#6c3;color:#fff}.button.button-balanced:hover{color:#fff;text-decoration:none}.button.button-balanced.activated,.button.button-balanced.active{border-color:#498f24;background-color:#498f24;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-balanced.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#6c3}.button.button-balanced.button-icon{border-color:transparent;background:0 0}.button.button-balanced.button-outline{border-color:#6c3;background:0 0;color:#6c3}.button.button-balanced.button-outline.activated,.button.button-balanced.button-outline.active{background-color:#6c3;box-shadow:none;color:#fff}.button.button-energized{border-color:#d39211;background-color:#f0b840;color:#fff}.button.button-energized:hover{color:#fff;text-decoration:none}.button.button-energized.activated,.button.button-energized.active{border-color:#d39211;background-color:#d39211;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-energized.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#f0b840}.button.button-energized.button-icon{border-color:transparent;background:0 0}.button.button-energized.button-outline{border-color:#f0b840;background:0 0;color:#f0b840}.button.button-energized.button-outline.activated,.button.button-energized.button-outline.active{background-color:#f0b840;box-shadow:none;color:#fff}.button.button-royal{border-color:#552bdf;background-color:#8a6de9;color:#fff}.button.button-royal:hover{color:#fff;text-decoration:none}.button.button-royal.activated,.button.button-royal.active{border-color:#552bdf;background-color:#552bdf;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-royal.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#8a6de9}.button.button-royal.button-icon{border-color:transparent;background:0 0}.button.button-royal.button-outline{border-color:#8a6de9;background:0 0;color:#8a6de9}.button.button-royal.button-outline.activated,.button.button-royal.button-outline.active{background-color:#8a6de9;box-shadow:none;color:#fff}.button.button-dark{border-color:#111;background-color:#444;color:#fff}.button.button-dark:hover{color:#fff;text-decoration:none}.button.button-dark.activated,.button.button-dark.active{border-color:#000;background-color:#262626;box-shadow:inset 0 1px 3px rgba(0,0,0,.15)}.button.button-dark.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#444}.button.button-dark.button-icon{border-color:transparent;background:0 0}.button.button-dark.button-outline{border-color:#444;background:0 0;color:#444}.button.button-dark.button-outline.activated,.button.button-dark.button-outline.active{background-color:#444;box-shadow:none;color:#fff}.button-small{padding:2px 4px 1px;min-width:28px;min-height:30px;font-size:12px;line-height:26px}.button-small .icon:before,.button-small.icon-left:before,.button-small.icon-right:before,.button-small.icon:before{font-size:16px;line-height:19px;margin-top:3px}.button-large{padding:0 16px;min-width:68px;min-height:59px;font-size:20px;line-height:53px}.button-large .icon:before,.button-large.icon-left:before,.button-large.icon-right:before,.button-large.icon:before{padding-bottom:2px;font-size:32px;line-height:51px}.button-icon{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;min-width:initial;border-color:transparent;background:0 0}.button-icon.button.activated,.button-icon.button.active{border-color:transparent;background:0 0;box-shadow:none;opacity:.3}.button-icon .icon:before,.button-icon.icon:before{font-size:32px}.button-clear{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;padding:0 6px;max-height:42px;border-color:transparent;background:0 0;box-shadow:none}.button-clear.button-clear{border-color:transparent;background:0 0;box-shadow:none;color:#b2b2b2}.button-clear.button-icon{border-color:transparent;background:0 0}.button-clear.activated,.button-clear.active{opacity:.3}.button-outline{-webkit-transition:opacity .1s;-moz-transition:opacity .1s;transition:opacity .1s;background:0 0;box-shadow:none}.button-outline.button-outline{border-color:#b2b2b2;background:0 0;color:#b2b2b2}.button-outline.button-outline.activated,.button-outline.button-outline.active{background-color:#b2b2b2;box-shadow:none;color:#fff}.padding>.button.button-block:first-child{margin-top:0}.button-block{display:block;clear:both}.button-block:after{clear:both}.button-full,.button-full>.button{display:block;margin-right:0;margin-left:0;border-right-width:0;border-left-width:0;border-radius:0}.button-full>button.button,button.button-block,button.button-full,input.button.button-block{width:100%}a.button{text-decoration:none}a.button .icon:before,a.button.icon-left:before,a.button.icon-right:before,a.button.icon:before{margin-top:2px}.button.disabled,.button[disabled]{opacity:.4;cursor:default!important;pointer-events:none}.button-bar{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;width:100%}.button-bar.button-bar-inline{display:block;width:auto}.button-bar.button-bar-inline:after,.button-bar.button-bar-inline:before{display:table;content:"";line-height:0}.button-bar.button-bar-inline:after{clear:both}.button-bar.button-bar-inline>.button{width:auto;display:inline-block;float:left}.button-bar>.button{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;overflow:hidden;padding:0 16px;width:0;border-width:1px 0 1px 1px;border-radius:0;text-align:center;text-overflow:ellipsis;white-space:nowrap}.button-bar>.button .icon:before,.button-bar>.button:before{line-height:44px}.button-bar>.button:first-child{border-radius:2px 0 0 2px}.button-bar>.button:last-child{border-right-width:1px;border-radius:0 2px 2px 0}@-webkit-keyframes slideInUp{0%{-webkit-transform:translate3d(0,100%,0)}100%{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInUp{0%{-moz-transform:translate3d(0,100%,0)}100%{-moz-transform:translate3d(0,0,0)}}@keyframes slideInUp{0%{transform:translate3d(0,100%,0)}100%{transform:translate3d(0,0,0)}}@-webkit-keyframes slideOutUp{0%{-webkit-transform:translate3d(0,0,0)}100%{-webkit-transform:translate3d(0,100%,0)}}@-moz-keyframes slideOutUp{0%{-moz-transform:translate3d(0,0,0)}100%{-moz-transform:translate3d(0,100%,0)}}@keyframes slideOutUp{0%{transform:translate3d(0,0,0)}100%{transform:translate3d(0,100%,0)}}@-webkit-keyframes slideInFromLeft{from{-webkit-transform:translate3d(-100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromLeft{from{-moz-transform:translateX(-100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromLeft{from{transform:translateX(-100%)}to{transform:translateX(0)}}@-webkit-keyframes slideInFromRight{from{-webkit-transform:translate3d(100%,0,0)}to{-webkit-transform:translate3d(0,0,0)}}@-moz-keyframes slideInFromRight{from{-moz-transform:translateX(100%)}to{-moz-transform:translateX(0)}}@keyframes slideInFromRight{from{transform:translateX(100%)}to{transform:translateX(0)}}@-webkit-keyframes slideOutToLeft{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(-100%,0,0)}}@-moz-keyframes slideOutToLeft{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(-100%)}}@keyframes slideOutToLeft{from{transform:translateX(0)}to{transform:translateX(-100%)}}@-webkit-keyframes slideOutToRight{from{-webkit-transform:translate3d(0,0,0)}to{-webkit-transform:translate3d(100%,0,0)}}@-moz-keyframes slideOutToRight{from{-moz-transform:translateX(0)}to{-moz-transform:translateX(100%)}}@keyframes slideOutToRight{from{transform:translateX(0)}to{transform:translateX(100%)}}@-webkit-keyframes fadeOut{from{opacity:1}to{opacity:0}}@-moz-keyframes fadeOut{from{opacity:1}to{opacity:0}}@keyframes fadeOut{from{opacity:1}to{opacity:0}}@-webkit-keyframes fadeIn{from{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@-webkit-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-moz-keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@keyframes fadeInHalf{from{background-color:rgba(0,0,0,0)}to{background-color:rgba(0,0,0,.5)}}@-webkit-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@-moz-keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:rgba(0,0,0,0)}}@keyframes fadeOutHalf{from{background-color:rgba(0,0,0,.5)}to{background-color:transparent}}@-webkit-keyframes scaleOut{from{-webkit-transform:scale(1);opacity:1}to{-webkit-transform:scale(0.8);opacity:0}}@-moz-keyframes scaleOut{from{-moz-transform:scale(1);opacity:1}to{-moz-transform:scale(0.8);opacity:0}}@keyframes scaleOut{from{transform:scale(1);opacity:1}to{transform:scale(0.8);opacity:0}}@-webkit-keyframes scaleIn{from{-webkit-transform:scale(0)}to{-webkit-transform:scale(1)}}@-moz-keyframes scaleIn{from{-moz-transform:scale(0)}to{-moz-transform:scale(1)}}@keyframes scaleIn{from{transform:scale(0)}to{transform:scale(1)}}@-webkit-keyframes superScaleIn{from{-webkit-transform:scale(1.2);opacity:0}to{-webkit-transform:scale(1);opacity:1}}@-moz-keyframes superScaleIn{from{-moz-transform:scale(1.2);opacity:0}to{-moz-transform:scale(1);opacity:1}}@keyframes superScaleIn{from{transform:scale(1.2);opacity:0}to{transform:scale(1);opacity:1}}@-webkit-keyframes spin{100%{-webkit-transform:rotate(360deg)}}@-moz-keyframes spin{100%{-moz-transform:rotate(360deg)}}@keyframes spin{100%{transform:rotate(360deg)}}.no-animation.ng-enter,.no-animation.ng-leave,.no-animation>.ng-enter,.no-animation>.ng-leave{-webkit-transition:none;-moz-transition:none;transition:none}.noop-animation.ng-enter,.noop-animation.ng-leave,.noop-animation>.ng-enter,.noop-animation>.ng-leave{-webkit-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;-moz-transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;transition:all cubic-bezier(0.25,.46,.45,.94) 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.ng-animate .pane{position:absolute}.slide-left-right.ng-enter,.slide-left-right.ng-leave,.slide-left-right>.ng-enter,.slide-left-right>.ng-leave,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse.ng-leave,.slide-right-left.reverse>.ng-enter,.slide-right-left.reverse>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.ng-enter,.slide-left-right>.ng-enter,.slide-right-left.reverse.ng-enter,.slide-right-left.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-left-right.ng-enter.ng-enter-active,.slide-left-right>.ng-enter.ng-enter-active,.slide-right-left.reverse.ng-enter.ng-enter-active,.slide-right-left.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.ng-leave.ng-leave-active,.slide-left-right>.ng-leave.ng-leave-active,.slide-right-left.reverse.ng-leave.ng-leave-active,.slide-right-left.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse.ng-leave,.slide-left-right.reverse>.ng-enter,.slide-left-right.reverse>.ng-leave,.slide-right-left.ng-enter,.slide-right-left.ng-leave,.slide-right-left>.ng-enter,.slide-right-left>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms;position:absolute;top:0;right:0;bottom:0;left:0}.slide-left-right.reverse.ng-enter,.slide-left-right.reverse>.ng-enter,.slide-right-left.ng-enter,.slide-right-left>.ng-enter{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-left-right.reverse.ng-enter.ng-enter-active,.slide-left-right.reverse>.ng-enter.ng-enter-active,.slide-right-left.ng-enter.ng-enter-active,.slide-right-left>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-left-right.reverse.ng-leave.ng-leave-active,.slide-left-right.reverse>.ng-leave.ng-leave-active,.slide-right-left.ng-leave.ng-leave-active,.slide-right-left>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-ios.ng-enter,.slide-ios.ng-leave,.slide-ios>.ng-enter,.slide-ios>.ng-leave,.slide-left-right-ios7.ng-enter,.slide-left-right-ios7.ng-leave,.slide-left-right-ios7>.ng-enter,.slide-left-right-ios7>.ng-leave,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse.ng-leave,.slide-right-left-ios7.reverse>.ng-enter,.slide-right-left-ios7.reverse>.ng-leave{-webkit-transition:all cubic-bezier(0.4,.6,.2,1) 400ms;-moz-transition:all cubic-bezier(0.4,.6,.2,1) 400ms;transition:all cubic-bezier(0.4,.6,.2,1) 400ms;position:absolute;top:0;bottom:0;width:auto;border-right:none;border-left:none}.slide-ios.ng-enter:not(.bar),.slide-ios.ng-leave:not(.bar),.slide-ios>.ng-enter:not(.bar),.slide-ios>.ng-leave:not(.bar),.slide-left-right-ios7.ng-enter:not(.bar),.slide-left-right-ios7.ng-leave:not(.bar),.slide-left-right-ios7>.ng-enter:not(.bar),.slide-left-right-ios7>.ng-leave:not(.bar),.slide-right-left-ios7.reverse.ng-enter:not(.bar),.slide-right-left-ios7.reverse.ng-leave:not(.bar),.slide-right-left-ios7.reverse>.ng-enter:not(.bar),.slide-right-left-ios7.reverse>.ng-leave:not(.bar){border-right:none;border-left:none}.slide-ios.ng-enter,.slide-ios>.ng-enter,.slide-left-right-ios7.ng-enter,.slide-left-right-ios7>.ng-enter,.slide-right-left-ios7.reverse.ng-enter,.slide-right-left-ios7.reverse>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-ios.ng-leave,.slide-ios>.ng-leave,.slide-left-right-ios7.ng-leave,.slide-left-right-ios7>.ng-leave,.slide-right-left-ios7.reverse.ng-leave,.slide-right-left-ios7.reverse>.ng-leave{z-index:1}.slide-ios.ng-enter.ng-enter-active,.slide-ios>.ng-enter.ng-enter-active,.slide-left-right-ios7.ng-enter.ng-enter-active,.slide-left-right-ios7>.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse.ng-enter.ng-enter-active,.slide-right-left-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-ios.ng-leave.ng-leave-active,.slide-ios>.ng-leave.ng-leave-active,.slide-left-right-ios7.ng-leave.ng-leave-active,.slide-left-right-ios7>.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse.ng-leave.ng-leave-active,.slide-right-left-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-20%,0,0);-moz-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0)}.slide-ios.reverse.ng-enter,.slide-ios.reverse.ng-leave,.slide-ios.reverse>.ng-enter,.slide-ios.reverse>.ng-leave,.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse.ng-leave,.slide-left-right-ios7.reverse>.ng-enter,.slide-left-right-ios7.reverse>.ng-leave,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7.ng-leave,.slide-right-left-ios7>.ng-enter,.slide-right-left-ios7>.ng-leave{-webkit-transition:all cubic-bezier(0.4,.6,.2,1) 400ms;-moz-transition:all cubic-bezier(0.4,.6,.2,1) 400ms;transition:all cubic-bezier(0.4,.6,.2,1) 400ms;position:absolute;top:0;bottom:0;width:auto;border-right:none;border-left:none}.slide-ios.reverse.ng-enter,.slide-ios.reverse>.ng-enter,.slide-left-right-ios7.reverse.ng-enter,.slide-left-right-ios7.reverse>.ng-enter,.slide-right-left-ios7.ng-enter,.slide-right-left-ios7>.ng-enter{-webkit-transform:translate3d(-20%,0,0);-moz-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0)}.slide-ios.reverse.ng-leave,.slide-ios.reverse>.ng-leave,.slide-left-right-ios7.reverse.ng-leave,.slide-left-right-ios7.reverse>.ng-leave,.slide-right-left-ios7.ng-leave,.slide-right-left-ios7>.ng-leave{z-index:2}.slide-ios.reverse.ng-enter.ng-enter-active,.slide-ios.reverse>.ng-enter.ng-enter-active,.slide-left-right-ios7.reverse.ng-enter.ng-enter-active,.slide-left-right-ios7.reverse>.ng-enter.ng-enter-active,.slide-right-left-ios7.ng-enter.ng-enter-active,.slide-right-left-ios7>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-ios.reverse.ng-leave.ng-leave-active,.slide-ios.reverse>.ng-leave.ng-leave-active,.slide-left-right-ios7.reverse.ng-leave.ng-leave-active,.slide-left-right-ios7.reverse>.ng-leave.ng-leave-active,.slide-right-left-ios7.ng-leave.ng-leave-active,.slide-right-left-ios7>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.grade-a .slide-ios.ng-enter:not(.platform-ipad),.grade-a .slide-ios>.ng-enter:not(.platform-ipad),.grade-a .slide-left-right-ios7.ng-enter:not(.platform-ipad),.grade-a .slide-left-right-ios7>.ng-enter:not(.platform-ipad),.grade-a .slide-right-left-ios7.reverse.ng-enter:not(.platform-ipad),.grade-a .slide-right-left-ios7.reverse>.ng-enter:not(.platform-ipad){box-shadow:none}.grade-a .slide-ios.ng-enter.ng-enter-active:not(.platform-ipad),.grade-a .slide-ios>.ng-enter.ng-enter-active:not(.platform-ipad),.grade-a .slide-left-right-ios7.ng-enter.ng-enter-active:not(.platform-ipad),.grade-a .slide-left-right-ios7>.ng-enter.ng-enter-active:not(.platform-ipad),.grade-a .slide-right-left-ios7.reverse.ng-enter.ng-enter-active:not(.platform-ipad),.grade-a .slide-right-left-ios7.reverse>.ng-enter.ng-enter-active:not(.platform-ipad){box-shadow:0 0 12px rgba(0,0,0,.5)}.grade-a .slide-ios.ng-leave,.grade-a .slide-ios>.ng-leave,.grade-a .slide-left-right-ios7.ng-leave,.grade-a .slide-left-right-ios7>.ng-leave,.grade-a .slide-right-left-ios7.reverse.ng-leave,.grade-a .slide-right-left-ios7.reverse>.ng-leave{opacity:1}.grade-a .slide-ios.ng-leave.ng-leave-active,.grade-a .slide-ios.reverse.ng-enter,.grade-a .slide-ios.reverse>.ng-enter,.grade-a .slide-ios>.ng-leave.ng-leave-active,.grade-a .slide-left-right-ios7.ng-leave.ng-leave-active,.grade-a .slide-left-right-ios7.reverse.ng-enter,.grade-a .slide-left-right-ios7.reverse>.ng-enter,.grade-a .slide-left-right-ios7>.ng-leave.ng-leave-active,.grade-a .slide-right-left-ios7.ng-enter,.grade-a .slide-right-left-ios7.reverse.ng-leave.ng-leave-active,.grade-a .slide-right-left-ios7.reverse>.ng-leave.ng-leave-active,.grade-a .slide-right-left-ios7>.ng-enter{opacity:.9}.grade-a .slide-ios.reverse.ng-enter.ng-enter-active,.grade-a .slide-ios.reverse>.ng-enter.ng-enter-active,.grade-a .slide-left-right-ios7.reverse.ng-enter.ng-enter-active,.grade-a .slide-left-right-ios7.reverse>.ng-enter.ng-enter-active,.grade-a .slide-right-left-ios7.ng-enter.ng-enter-active,.grade-a .slide-right-left-ios7>.ng-enter.ng-enter-active{opacity:1}.grade-a .slide-ios.reverse.ng-leave,.grade-a .slide-ios.reverse>.ng-leave,.grade-a .slide-left-right-ios7.reverse.ng-leave,.grade-a .slide-left-right-ios7.reverse>.ng-leave,.grade-a .slide-right-left-ios7.ng-leave,.grade-a .slide-right-left-ios7>.ng-leave{box-shadow:0 0 12px rgba(0,0,0,.5);opacity:1}.grade-a .slide-ios.reverse.ng-leave.ng-leave-active,.grade-a .slide-ios.reverse>.ng-leave.ng-leave-active,.grade-a .slide-left-right-ios7.reverse.ng-leave.ng-leave-active,.grade-a .slide-left-right-ios7.reverse>.ng-leave.ng-leave-active,.grade-a .slide-right-left-ios7.ng-leave.ng-leave-active,.grade-a .slide-right-left-ios7>.ng-leave.ng-leave-active{box-shadow:none}.slide-full.ng-enter,.slide-full.ng-leave,.slide-full>.ng-enter,.slide-full>.ng-leave{-webkit-transition:all ease-in-out 400ms;-moz-transition:all ease-in-out 400ms;transition:all ease-in-out 400ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:none;border-left:none}.slide-full.ng-enter:not(.bar),.slide-full.ng-leave:not(.bar),.slide-full>.ng-enter:not(.bar),.slide-full>.ng-leave:not(.bar){border-right:none;border-left:none}.slide-full.ng-enter,.slide-full>.ng-enter{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-full.ng-leave,.slide-full>.ng-leave{z-index:1}.slide-full.ng-enter.ng-enter-active,.slide-full>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-full.ng-leave.ng-leave-active,.slide-full>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-full.reverse.ng-enter,.slide-full.reverse.ng-leave,.slide-full.reverse>.ng-enter,.slide-full.reverse>.ng-leave{-webkit-transition:all ease-in-out 400ms;-moz-transition:all ease-in-out 400ms;transition:all ease-in-out 400ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:none;border-left:none}.slide-full.reverse.ng-enter,.slide-full.reverse>.ng-enter{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-full.reverse.ng-leave,.slide-full.reverse>.ng-leave{z-index:2}.slide-full.reverse.ng-enter.ng-enter-active,.slide-full.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-full.reverse.ng-leave.ng-leave-active,.slide-full.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.fade-explode.reverse.ng-enter,.fade-explode.reverse.ng-leave,.fade-explode.reverse>.ng-enter,.fade-explode.reverse>.ng-leave{-webkit-transition:all ease-out 300ms;-moz-transition:all ease-out 300ms;transition:all ease-out 300ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.fade-explode.reverse.ng-enter:not(.bar),.fade-explode.reverse.ng-leave:not(.bar),.fade-explode.reverse>.ng-enter:not(.bar),.fade-explode.reverse>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-explode.reverse.ng-enter,.fade-explode.reverse>.ng-enter{-webkit-transform:scale(0.95);-moz-transform:scale(0.95);transform:scale(0.95);opacity:0;z-index:1}.fade-explode.reverse.ng-leave,.fade-explode.reverse>.ng-leave{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:2}.fade-explode.reverse.ng-enter.ng-enter-active,.fade-explode.reverse>.ng-enter.ng-enter-active{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}.fade-explode.reverse.ng-leave.ng-leave-active,.fade-explode.reverse>.ng-leave.ng-leave-active{-webkit-transform:scale(1.6);-moz-transform:scale(1.6);transform:scale(1.6);opacity:0}.fade-implode.ng-enter,.fade-implode.ng-leave,.fade-implode>.ng-enter,.fade-implode>.ng-leave{-webkit-transition:all ease-out 200ms;-moz-transition:all ease-out 200ms;transition:all ease-out 200ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto}.fade-implode.ng-enter:not(.bar),.fade-implode.ng-leave:not(.bar),.fade-implode>.ng-enter:not(.bar),.fade-implode>.ng-leave:not(.bar){border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-implode.ng-enter,.fade-implode>.ng-enter{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);transform:scale(0.8);opacity:0;z-index:2}.fade-implode.ng-leave,.fade-implode>.ng-leave{z-index:1}.fade-implode.ng-enter.ng-enter-active,.fade-implode>.ng-enter.ng-enter-active{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1}.fade-implode.reverse.ng-enter,.fade-implode.reverse.ng-leave,.fade-implode.reverse>.ng-enter,.fade-implode.reverse>.ng-leave{-webkit-transition:all ease-out 200ms;-moz-transition:all ease-out 200ms;transition:all ease-out 200ms;position:absolute;top:0;right:-1px;bottom:0;left:-1px;width:auto;border-right:1px solid #ddd;border-left:1px solid #ddd}.fade-implode.reverse.ng-enter,.fade-implode.reverse>.ng-enter{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:1}.fade-implode.reverse.ng-leave,.fade-implode.reverse>.ng-leave{-webkit-transform:scale(1);-moz-transform:scale(1);transform:scale(1);opacity:1;z-index:2}.fade-implode.reverse.ng-enter.ng-enter-active,.fade-implode.reverse>.ng-enter.ng-enter-active{opacity:1}.fade-implode.reverse.ng-leave.ng-leave-active,.fade-implode.reverse>.ng-leave.ng-leave-active{-webkit-transform:scale(0.8);-moz-transform:scale(0.8);transform:scale(0.8);opacity:0}.slide-in-left{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-left.ng-enter,.slide-in-left>.ng-enter{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left.ng-leave,.slide-in-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-left-add-active{-webkit-animation-name:slideInFromLeft;-moz-animation-name:slideInFromLeft;animation-name:slideInFromLeft}.slide-out-left{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.slide-out-left.ng-enter,.slide-out-left.ng-leave,.slide-out-left>.ng-enter,.slide-out-left>.ng-leave{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-left-add-active{-webkit-animation-name:slideOutToLeft;-moz-animation-name:slideOutToLeft;animation-name:slideOutToLeft}.slide-in-right{-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0)}.slide-in-right.ng-enter,.slide-in-right>.ng-enter{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right.ng-leave,.slide-in-right>.ng-leave{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add{-webkit-transform:translate3d(-100%,0,0);-moz-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-in-right-add-active{-webkit-animation-name:slideInFromRight;-moz-animation-name:slideInFromRight;animation-name:slideInFromRight}.slide-out-right{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.slide-out-right.ng-enter,.slide-out-right.ng-leave,.slide-out-right>.ng-enter,.slide-out-right>.ng-leave{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight;-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-animation-duration:250ms;-moz-animation-duration:250ms;animation-duration:250ms;-webkit-animation-timing-function:ease-in-out;-moz-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out;-webkit-animation-fill-mode:both;-moz-animation-fill-mode:both;animation-fill-mode:both}.slide-out-right-add-active{-webkit-animation-name:slideOutToRight;-moz-animation-name:slideOutToRight;animation-name:slideOutToRight}.slide-in-up{-webkit-transform:translate3d(0,100%,0);-moz-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.slide-in-up.ng-enter,.slide-in-up>.ng-enter{-webkit-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;-moz-transition:all cubic-bezier(0.1,.7,.1,1) 400ms;transition:all cubic-bezier(0.1,.7,.1,1) 400ms}.slide-in-up.ng-enter-active,.slide-in-up>.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.slide-in-up.ng-leave,.slide-in-up>.ng-leave{-webkit-transition:all ease-in-out 250ms;-moz-transition:all ease-in-out 250ms;transition:all ease-in-out 250ms}.fade-in{-webkit-animation:fadeOut .3s;-moz-animation:fadeOut .3s;animation:fadeOut .3s}.fade-in.active{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s}.fade-in-not-out .ng-enter,.fade-in-not-out.ng-enter{-webkit-animation:fadeIn .3s;-moz-animation:fadeIn .3s;animation:fadeIn .3s;position:relative}.fade-in-not-out .ng-leave,.fade-in-not-out.ng-leave{display:none}.nav-title-slide-ios7:not(.no-animation) .button.back-button,.nav-title-slide-ios:not(.no-animation) .button.back-button{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0);opacity:1}.nav-title-slide-ios7:not(.no-animation) .button.back-button.activated,.nav-title-slide-ios7:not(.no-animation) .button.back-button.active,.nav-title-slide-ios:not(.no-animation) .button.back-button.activated,.nav-title-slide-ios:not(.no-animation) .button.back-button.active{opacity:.5}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide,.nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide{opacity:0;-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0)}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-remove,.nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-slide-ios7:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-ios:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-slide-ios.ng-enter,.nav-title-slide-ios.ng-leave,.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7.ng-leave,.nav-title-slide-ios7>.ng-enter,.nav-title-slide-ios7>.ng-leave,.nav-title-slide-ios>.ng-enter,.nav-title-slide-ios>.ng-leave{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);opacity:1}.nav-title-slide-ios.ng-enter,.nav-title-slide-ios7.ng-enter,.nav-title-slide-ios7>.ng-enter,.nav-title-slide-ios>.ng-enter{-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0);opacity:0}.nav-title-slide-ios.ng-enter.title,.nav-title-slide-ios7.ng-enter.title,.nav-title-slide-ios7>.ng-enter.title,.nav-title-slide-ios>.ng-enter.title{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.nav-title-slide-ios.ng-enter.ng-enter-active,.nav-title-slide-ios7.ng-enter.ng-enter-active,.nav-title-slide-ios7>.ng-enter.ng-enter-active,.nav-title-slide-ios>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios.ng-leave.ng-leave-active,.nav-title-slide-ios7.ng-leave.ng-leave-active,.nav-title-slide-ios7>.ng-leave.ng-leave-active,.nav-title-slide-ios>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios.reverse.ng-enter,.nav-title-slide-ios.reverse.ng-leave,.nav-title-slide-ios.reverse>.ng-enter,.nav-title-slide-ios.reverse>.ng-leave,.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse.ng-leave,.nav-title-slide-ios7.reverse>.ng-enter,.nav-title-slide-ios7.reverse>.ng-leave{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:cubic-bezier(0.4,.6,.2,1);-moz-transition-timing-function:cubic-bezier(0.4,.6,.2,1);transition-timing-function:cubic-bezier(0.4,.6,.2,1);opacity:1}.nav-title-slide-ios.reverse.ng-enter,.nav-title-slide-ios.reverse>.ng-enter,.nav-title-slide-ios7.reverse.ng-enter,.nav-title-slide-ios7.reverse>.ng-enter{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-ios.reverse.ng-enter.ng-enter-active,.nav-title-slide-ios.reverse>.ng-enter.ng-enter-active,.nav-title-slide-ios7.reverse.ng-enter.ng-enter-active,.nav-title-slide-ios7.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-ios.reverse.ng-leave.ng-leave-active,.nav-title-slide-ios.reverse>.ng-leave.ng-leave-active,.nav-title-slide-ios7.reverse.ng-leave.ng-leave-active,.nav-title-slide-ios7.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.nav-title-slide-full:not(.no-animation) .button.back-button{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transform:translate3d(0%,0,0);-moz-transform:translate3d(0%,0,0);transform:translate3d(0%,0,0);opacity:1}.nav-title-slide-full:not(.no-animation) .button.back-button.activated,.nav-title-slide-full:not(.no-animation) .button.back-button.active{opacity:.5}.nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide{opacity:0;-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0)}.nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-slide-full:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-slide-full.ng-enter,.nav-title-slide-full.ng-leave,.nav-title-slide-full>.ng-enter,.nav-title-slide-full>.ng-leave{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;opacity:1}.nav-title-slide-full.ng-enter,.nav-title-slide-full>.ng-enter{-webkit-transform:translate3d(30%,0,0);-moz-transform:translate3d(30%,0,0);transform:translate3d(30%,0,0);opacity:0}.nav-title-slide-full.ng-enter.title,.nav-title-slide-full>.ng-enter.title{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.nav-title-slide-full.ng-enter.ng-enter-active,.nav-title-slide-full>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-full.ng-leave.ng-leave-active,.nav-title-slide-full>.ng-leave.ng-leave-active{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-full.reverse.ng-enter,.nav-title-slide-full.reverse.ng-leave,.nav-title-slide-full.reverse>.ng-enter,.nav-title-slide-full.reverse>.ng-leave{-webkit-transition:all 400ms;-moz-transition:all 400ms;transition:all 400ms;-webkit-transition-timing-function:ease-in-out;-moz-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;opacity:1}.nav-title-slide-full.reverse.ng-enter,.nav-title-slide-full.reverse>.ng-enter{-webkit-transform:translate3d(-30%,0,0);-moz-transform:translate3d(-30%,0,0);transform:translate3d(-30%,0,0);opacity:0}.nav-title-slide-full.reverse.ng-enter.ng-enter-active,.nav-title-slide-full.reverse>.ng-enter.ng-enter-active{-webkit-transform:translate3d(0,0,0);-moz-transform:translate3d(0,0,0);transform:translate3d(0,0,0);opacity:1}.nav-title-slide-full.reverse.ng-leave.ng-leave-active,.nav-title-slide-full.reverse>.ng-leave.ng-leave-active{-webkit-transform:translate3d(100%,0,0);-moz-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);opacity:0}.nav-title-android:not(.no-animation) .button.back-button{-webkit-transition:all 200ms;-moz-transition:all 200ms;transition:all 200ms;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear;transition-timing-function:linear;opacity:1}.nav-title-android:not(.no-animation) .button.back-button.ng-hide{opacity:0}.nav-title-android:not(.no-animation) .button.back-button.ng-hide-add,.nav-title-android:not(.no-animation) .button.back-button.ng-hide-remove{display:block!important}.nav-title-android:not(.no-animation) .button.back-button.ng-hide-add{position:absolute}.nav-title-android.ng-enter,.nav-title-android.ng-leave,.nav-title-android>.ng-enter,.nav-title-android>.ng-leave{-webkit-transition:all 200ms;-moz-transition:all 200ms;transition:all 200ms;-webkit-transition-timing-function:linear;-moz-transition-timing-function:linear;transition-timing-function:linear}.nav-title-android.ng-enter,.nav-title-android>.ng-enter{opacity:0}.nav-title-android.ng-enter.ng-enter-active,.nav-title-android>.ng-enter.ng-enter-active{opacity:1}.nav-title-android.ng-leave.ng-leave-active,.nav-title-android>.ng-leave.ng-leave-active{opacity:0}.row{display:-webkit-box;display:-webkit-flex;display:-moz-box;display:-moz-flex;display:-ms-flexbox;display:flex;padding:5px;width:100%}.row-wrap{-webkit-flex-wrap:wrap;-moz-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap}.row+.row{margin-top:-5px;padding-top:0}.col{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;display:block;padding:5px;width:100%}.row-top{-webkit-box-align:start;-ms-flex-align:start;-webkit-align-items:flex-start;-moz-align-items:flex-start;align-items:flex-start}.row-bottom{-webkit-box-align:end;-ms-flex-align:end;-webkit-align-items:flex-end;-moz-align-items:flex-end;align-items:flex-end}.row-center{-webkit-box-align:center;-ms-flex-align:center;-webkit-align-items:center;-moz-align-items:center;align-items:center}.row-stretch{-webkit-box-align:stretch;-ms-flex-align:stretch;-webkit-align-items:stretch;-moz-align-items:stretch;align-items:stretch}.row-baseline{-webkit-box-align:baseline;-ms-flex-align:baseline;-webkit-align-items:baseline;-moz-align-items:baseline;align-items:baseline}.col-top{-webkit-align-self:flex-start;-moz-align-self:flex-start;-ms-flex-item-align:start;align-self:flex-start}.col-bottom{-webkit-align-self:flex-end;-moz-align-self:flex-end;-ms-flex-item-align:end;align-self:flex-end}.col-center{-webkit-align-self:center;-moz-align-self:center;-ms-flex-item-align:center;align-self:center}.col-offset-10{margin-left:10%}.col-offset-20{margin-left:20%}.col-offset-25{margin-left:25%}.col-offset-33,.col-offset-34{margin-left:33.3333%}.col-offset-50{margin-left:50%}.col-offset-66,.col-offset-67{margin-left:66.6666%}.col-offset-75{margin-left:75%}.col-offset-80{margin-left:80%}.col-offset-90{margin-left:90%}.col-10{-webkit-box-flex:0;-webkit-flex:0 0 10%;-moz-box-flex:0;-moz-flex:0 0 10%;-ms-flex:0 0 10%;flex:0 0 10%;max-width:10%}.col-20{-webkit-box-flex:0;-webkit-flex:0 0 20%;-moz-box-flex:0;-moz-flex:0 0 20%;-ms-flex:0 0 20%;flex:0 0 20%;max-width:20%}.col-25{-webkit-box-flex:0;-webkit-flex:0 0 25%;-moz-box-flex:0;-moz-flex:0 0 25%;-ms-flex:0 0 25%;flex:0 0 25%;max-width:25%}.col-33,.col-34{-webkit-box-flex:0;-webkit-flex:0 0 33.3333%;-moz-box-flex:0;-moz-flex:0 0 33.3333%;-ms-flex:0 0 33.3333%;flex:0 0 33.3333%;max-width:33.3333%}.col-50{-webkit-box-flex:0;-webkit-flex:0 0 50%;-moz-box-flex:0;-moz-flex:0 0 50%;-ms-flex:0 0 50%;flex:0 0 50%;max-width:50%}.col-66,.col-67{-webkit-box-flex:0;-webkit-flex:0 0 66.6666%;-moz-box-flex:0;-moz-flex:0 0 66.6666%;-ms-flex:0 0 66.6666%;flex:0 0 66.6666%;max-width:66.6666%}.col-75{-webkit-box-flex:0;-webkit-flex:0 0 75%;-moz-box-flex:0;-moz-flex:0 0 75%;-ms-flex:0 0 75%;flex:0 0 75%;max-width:75%}.col-80{-webkit-box-flex:0;-webkit-flex:0 0 80%;-moz-box-flex:0;-moz-flex:0 0 80%;-ms-flex:0 0 80%;flex:0 0 80%;max-width:80%}.col-90{-webkit-box-flex:0;-webkit-flex:0 0 90%;-moz-box-flex:0;-moz-flex:0 0 90%;-ms-flex:0 0 90%;flex:0 0 90%;max-width:90%}@media (max-width:567px){.responsive-sm{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-sm .col,.responsive-sm .col-10,.responsive-sm .col-20,.responsive-sm .col-25,.responsive-sm .col-33,.responsive-sm .col-34,.responsive-sm .col-50,.responsive-sm .col-66,.responsive-sm .col-67,.responsive-sm .col-75,.responsive-sm .col-80,.responsive-sm .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:767px){.responsive-md{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-md .col,.responsive-md .col-10,.responsive-md .col-20,.responsive-md .col-25,.responsive-md .col-33,.responsive-md .col-34,.responsive-md .col-50,.responsive-md .col-66,.responsive-md .col-67,.responsive-md .col-75,.responsive-md .col-80,.responsive-md .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}@media (max-width:1023px){.responsive-lg{-webkit-box-direction:normal;-moz-box-direction:normal;-webkit-box-orient:vertical;-moz-box-orient:vertical;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column}.responsive-lg .col,.responsive-lg .col-10,.responsive-lg .col-20,.responsive-lg .col-25,.responsive-lg .col-33,.responsive-lg .col-34,.responsive-lg .col-50,.responsive-lg .col-66,.responsive-lg .col-67,.responsive-lg .col-75,.responsive-lg .col-80,.responsive-lg .col-90{-webkit-box-flex:1;-webkit-flex:1;-moz-box-flex:1;-moz-flex:1;-ms-flex:1;flex:1;margin-bottom:15px;margin-left:0;max-width:100%;width:100%}}.hide{display:none}.opacity-hide{opacity:0}.grade-b .opacity-hide,.grade-c .opacity-hide{opacity:1;display:none}.show{display:block}.opacity-show{opacity:1}.invisible{visibility:hidden}.keyboard-open .hide-on-keyboard-open{display:none}.keyboard-open .bar-footer.hide-on-keyboard-open+.pane .has-footer,.keyboard-open .tabs.hide-on-keyboard-open+.pane .has-tabs{bottom:0}.inline{display:inline-block}.disable-pointer-events{pointer-events:none}.enable-pointer-events{pointer-events:auto}.disable-user-behavior{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;-ms-touch-action:none;-ms-content-zooming:none}.click-block{position:absolute;top:0;left:0;z-index:99999;width:100%;height:100%;background:0 0}.no-resize{resize:none}.block{display:block;clear:both}.block:after{display:block;visibility:hidden;clear:both;height:0;content:"."}.full-image{width:100%}.clearfix:after,.clearfix:before{display:table;content:"";line-height:0}.clearfix:after{clear:both}.padding{padding:10px}.padding-top,.padding-vertical{padding-top:10px}.padding-horizontal,.padding-right{padding-right:10px}.padding-bottom,.padding-vertical{padding-bottom:10px}.padding-horizontal,.padding-left{padding-left:10px}.rounded{border-radius:4px}.light,a.light{color:#fff}.light-bg{background-color:#fff}.light-border{border-color:#ddd}.stable,a.stable{color:#f8f8f8}.stable-bg{background-color:#f8f8f8}.stable-border{border-color:#b2b2b2}.positive,a.positive{color:#4a87ee}.positive-bg{background-color:#4a87ee}.positive-border{border-color:#145fd7}.calm,a.calm{color:#43cee6}.calm-bg{background-color:#43cee6}.calm-border{border-color:#1aacc3}.assertive,a.assertive{color:#ef4e3a}.assertive-bg{background-color:#ef4e3a}.assertive-border{border-color:#cc2311}.balanced,a.balanced{color:#6c3}.balanced-bg{background-color:#6c3}.balanced-border{border-color:#498f24}.energized,a.energized{color:#f0b840}.energized-bg{background-color:#f0b840}.energized-border{border-color:#d39211}.royal,a.royal{color:#8a6de9}.royal-bg{background-color:#8a6de9}.royal-border{border-color:#552bdf}.dark,a.dark{color:#444}.dark-bg{background-color:#444}.dark-border{border-color:#111}.roboto,.roboto input{font-family:Roboto,"Helvetica Neue",Helvetica,Arial,"Lucida Grande",sans-serif}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader){height:64px}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader).item-input-inset .item-input-wrapper{margin-top:19px!important}.platform-ios.platform-cordova:not(.fullscreen) .bar-header:not(.bar-subheader)>*{margin-top:20px}.platform-ios.platform-cordova:not(.fullscreen) .bar-subheader,.platform-ios.platform-cordova:not(.fullscreen) .has-header,.platform-ios.platform-cordova:not(.fullscreen) .tabs-top>.tabs,.platform-ios.platform-cordova:not(.fullscreen) .tabs.tabs-top{top:64px}.platform-ios.platform-cordova:not(.fullscreen) .has-subheader{top:108px}.platform-ios.platform-cordova:not(.fullscreen) .has-tabs-top{top:113px}.platform-ios.platform-cordova:not(.fullscreen) .has-header.has-subheader.has-tabs-top{top:157px}.platform-ios.platform-cordova.status-bar-hide{margin-bottom:20px}@media (orientation:landscape){.platform-ios.platform-browser.platform-ipad{position:fixed}}.platform-c:not(.enable-transitions) *{-webkit-transition:none!important;transition:none!important} \ No newline at end of file diff --git a/src/main.js b/src/main.js deleted file mode 100644 index 3872521..0000000 --- a/src/main.js +++ /dev/null @@ -1,75 +0,0 @@ -require('./main.less'); -require('../node_modules/leaflet/dist/leaflet.css'); - -var $ = require('jquery'), - GlobalAddButton = require('./controls/global-add-button/'), - UploadDialog = require('./views/upload-dialog/'), - CodeManager = require('./views/code-manager/'), - Settings = require('./views/settings/'), - GeolocationViewer = require('./views/geolocation-viewer/'), - SideMenu = require('./views/side-menu/'), - ListView = require('./views/list-view/'), - mainTemplate = require('./main.vash'), - ready = require('dom-ready'); - //locationWatch = require('./activity-location-watch'); - -// function keepAppAlive(){ -// if (typeof cordova == 'undefined') return; - -// try { -// cordova.plugins.backgroundMode.setDefaults({ -// title: 'Ethoinformatics', -// text:'The app is in background mode.', -// ticker:'Ethoinformatics is still running.', -// }); -// cordova.plugins.backgroundMode.enable(); -// } catch (e){ -// } -// } - -ready(function appLoad(){ - var app = require('app'); - - var $body = $('body'); - var $mainContainer = $(mainTemplate({})) - .css('height', window.innerHeight-44); - - var $content = $mainContainer.find('#main-content'); - $body.append($mainContainer); - - var sideMenu = new SideMenu({content: $mainContainer}), - uploadDialog = new UploadDialog(), - codeManager = new CodeManager(), - settings = new Settings(), - listView = new ListView(), - addButton = new GlobalAddButton(), - geolocationViewer = new GeolocationViewer(); - - $body.append(sideMenu.$element); - $body.find('.js-menu').append(addButton.$element); - $body.find('#main-content').append(listView.$element); - - addButton.on('created', function(){ listView.refresh(); }); - sideMenu.on('click', function(moduleName){ - sideMenu.close(); - - if (moduleName == 'code-manager') codeManager.show(); - if (moduleName == 'sync') uploadDialog.show(); - if (moduleName == 'settings') settings.show(); - if (moduleName == 'geolocation-viewer') geolocationViewer.show(); - }); - - uploadDialog.on('closed', function(){ - //activityPage.render(); - }); - - $content.click(function(){ - sideMenu.close(); - }); - - //locationWatch(); - //keepAppAlive(); -}); - - - diff --git a/src/main.less b/src/main.less deleted file mode 100644 index 3e450a4..0000000 --- a/src/main.less +++ /dev/null @@ -1,65 +0,0 @@ -#main-container{ - border-left: 1px solid white; - font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; - position:fixed; - top:0; - bottom:0; - left:0; - right:0; - z-index: 10; - width: 100%; - - .bar-header{ - position:absolute; - display:block; - } - - #main-content{ - background-color:orange; - .relay-content{ - } - - position:relative; - width: 100%; - height: 100%; - - top:44px; - overflow: hidden; - padding: 0; - margin: 0; - .card{ - } - - .workflow-scroll-wrapper{ - position:relative; - width: 100%; - height: 100%; - #workflow-container{ - position:relative; - width:100%; - min-height:100%; - } - } - - #modal-container{ - position:absolute; - top: 0; - bottom: 0; - left: 0; - right: 0; - z-index:101; - } - } -} -#left-menu{ - z-index: 1; - overflow:hidden; - position:absolute; - top:0; - bottom:0; - width:240px; - .bar-header{ - height:44px; - position:relative; - } -} diff --git a/src/main.vash b/src/main.vash deleted file mode 100644 index 3ef9fab..0000000 --- a/src/main.vash +++ /dev/null @@ -1,8 +0,0 @@ -
-
- -

Ethoinformatics

-
-
-
-
diff --git a/src/registrar/index.js b/src/registrar/index.js deleted file mode 100644 index 371b377..0000000 --- a/src/registrar/index.js +++ /dev/null @@ -1,152 +0,0 @@ -var _ = require('lodash'), - DOMAIN_SETTINGS_KEY = 'DOMAIN_SETTING_KEY', - lookup = Object.create(null), - domainDefaults = Object.create(null), - EntityManager = require('../services/entity-manager'), - uuidGenerator = require('../services/uuid-generator'), - DescriptionManager = require('../services/description-manager'); - -// register global/default services here -domainDefaults['entity-manager'] = { ctor: EntityManager }; -domainDefaults['description-manager'] = { ctor: DescriptionManager }; -domainDefaults['uuid-generator'] = uuidGenerator; - -function getService(domainName, serviceName){ - var d = lookup[domainName], - service = d[serviceName]; - - if (service && _.isFunction(service.ctor)){ - service = new service.ctor(registry, domainName); - } - - return service; -} - - -var registry = { - setDomainService: function(domainName, serviceName, args){ - lookup[domainName][serviceName] = args; - }, - getDomains: function(serviceName){ - var domainNames = Object.keys(lookup), - self = this; - - return domainNames.filter(function(n){ - return !serviceName || !!lookup[n][serviceName]; - }) - .map(function(n){ - return self.createDomain(n); - }); - }, - getDomain: function(domainName){ - var domain = this.getDomains() - .filter(function(d){ return d.name === domainName; })[0]; - - if (!domain) return; - - return this.createDomain(domainName); - }, - getService: getService, - createDomain: function(opts){ - if (!opts) return; - if (typeof opts === 'string') opts = {name: opts}; - - var domainData = lookup[opts.name]; - if (domainData){ - opts = _.extend(domainData[DOMAIN_SETTINGS_KEY] || {}, opts); - } - - opts.label = opts.label || opts.name; - - lookup[opts.name] = lookup[opts.name] || Object.create(domainDefaults); - lookup[opts.name].name = opts.name; - lookup[opts.name][DOMAIN_SETTINGS_KEY] = opts; - lookup[opts.name]['children-domains'] = lookup[opts.name]['children-domains'] || []; - - var domain = Object.create(opts); - domain.getService = getService.bind(this, opts.name); - domain.getChildren = this.getChildDomains.bind(this, opts.name); - - return domain; - }, - setChildDomain: function(parentDomainName, propertyName, childDomain, options){ - options = Object(options); - options.name = childDomain.name; - - lookup[parentDomainName]['children-domains'].push(options); - - // kind of bootleg... entity-manager will reference - // this sercret value... - lookup[childDomain.name]['parent-'+parentDomainName] = propertyName; - }, - getChildDomains: function(parentDomainName){ - var self = this; - - var domains = lookup[parentDomainName]['children-domains'] - .map(function(d){ - var childDomain = self.getDomain(d.name); - var tmp = _.extend(_.create(childDomain), d); - return tmp; - }); - - return domains; - }, -}; - -function App(){ - var self = this, - settings = Object.create(null); - - self.register = function(serviceName){ - var args = _.rest(arguments); - registry.setGlobalService(serviceName, args); - }; - - self.createDomain = function(opts){ - if (typeof opts === 'string') opts = {name: opts}; - - var domain = registry.createDomain(opts); - - return { - _isEthoinfoDomain: true, - name: domain.name, - register: function(serviceName, service, relationshipOptions){ - relationshipOptions = Object(relationshipOptions); - - if (serviceName && serviceName._isEthoinfoDomain){ - registry.setChildDomain(opts.name, 'children', serviceName); - } else if (service._isEthoinfoDomain){ - registry.setChildDomain(opts.name, serviceName, service, relationshipOptions); - } else { - registry.setDomainService(opts.name, serviceName, service); - } - }, - }; - }; - - self.setting = function(settingName, value){ - if (value !== undefined){ - settings[settingName] = value; - } - - return settings[settingName]; - }; - - self.getRegistry = function(){ - - registry.setting = self.setting.bind(self); - return registry; - }; - - self.run = function(){ - require('../app.js')(self.getRegistry()); - require('../main.js'); - }; - -} - -var theApp = new App(); - -theApp.createDomain('_etho-settings'); - -module.exports = theApp; diff --git a/src/registrar/index.spec.js b/src/registrar/index.spec.js deleted file mode 100644 index 2cbd258..0000000 --- a/src/registrar/index.spec.js +++ /dev/null @@ -1,27 +0,0 @@ -var registrar = require('./index.js'); -var expect = require('chai').expect; - -describe('the registrar', function(){ - it('should be able to create a domain', function(){ - var domain = registrar.createDomain({name: 'test_domain'}); - - expect(domain).to.be.ok; - expect(domain.name).to.be.equal('test_domain'); - expect(domain.register).to.be.a('function'); - }); - - it('should be able to register a child domain', function(){ - var p = registrar.createDomain({name: 'parent_domain'}); - var c = registrar.createDomain({name: 'child_domain'}); - p.register('myList', c); - - var registry = registrar.getRegistry(); - var children = registry.getDomain('parent_domain').getChildren(); - - expect(children).to.be.ok; - console.dir(children); - expect(children).to.be.have.length(1); - expect(children[0]).to.be.ok; - expect(children[0].name).to.be.equal('child_domain'); - }); -}); diff --git a/src/services/description-manager.js b/src/services/description-manager.js deleted file mode 100644 index 2ca9c5e..0000000 --- a/src/services/description-manager.js +++ /dev/null @@ -1,96 +0,0 @@ -var _ = require('lodash'), - q = require('q'); - - -function DescriptionManager(registry, domainName){ - var self = this; - - - var app = require('app')(); - var domain = app.getDomain(domainName), - fields = domain.getService('form-fields'); - - function getCodes(field){ - if (!field) return q([]); - - var codeDomain = app.getDomain(field.domain); - if (!codeDomain) return q([]); - - var codeDescManager = codeDomain.getService('description-manager'), - codeEntitymanager = codeDomain.getService('entity-manager'); - - return codeEntitymanager - .getAll() - .then(function(codes){ - return codes.map(function(code){ - return { - value: code._id, - description: codeDescManager.getShortDescription(code), - }; - }); - }); - } - - self.getShortDescription = function(entity){ - var service = domain.getService('short-description'); - - if (_.isFunction(service)){ - return service(entity); - } else if (_.isString(service)){ - return entity[service]; - } else { - return entity.name || entity.title || entity._id; - } - - return ''; - }; - - var service = domain.getService('long-description'); - - var codedFields = _.chain(fields) - .pluck('fields') - .map(function(o){ return _.pairs(o); }) - .flatten() - .map(function(pair){ - return _.extend({}, {name: pair[0]}, pair[1]); - }) - .filter(function(field){ - return field.type == 'lookup'; - }) - .value(); - - var loadCodePromises = codedFields - .map(function(field){ - return getCodes(field); - }); - - self.getLongDescription = function(entity){ - if (!service) return q(self.getShortDescription(entity)); - - return q.all(loadCodePromises) - .then(function(results){ - var codeLookups = _.zip(codedFields, results); - var self = { - getDescription: function(fieldName, value){ - value = value || entity[fieldName]; - - var codeLookup = _.find(codeLookups, function(pair){ - return pair[0].name == fieldName; - }); - - if (!codeLookup) return 'invalid value'; - - var code = _.find(codeLookup[1], function(code){ - return code.value == value; - }); - - return code ? code.description : 'invalid value'; - }, - }; - - return service.call(self, entity); - }); - }; -} - -module.exports = DescriptionManager; diff --git a/src/services/entity-manager.js b/src/services/entity-manager.js deleted file mode 100644 index 02519f0..0000000 --- a/src/services/entity-manager.js +++ /dev/null @@ -1,96 +0,0 @@ -var PouchDb = require('pouchdb'), - _ = require('lodash'), - q = require('q'); - -var DB_NAME = 'new_pp_db'; - -PouchDb.plugin(require('pouchdb-upsert')); - -function createDesignDoc(name, mapFunction) { - var ddoc = { - _id: '_design/' + name, - views: { - } - }; - ddoc.views[name] = { map: mapFunction.toString() }; - return ddoc; -} - -function CrudManager(registry, domainName){ - var db = new PouchDb(DB_NAME), - self = this; - - function createView(name, map){ - var designDoc = createDesignDoc(name, map); - return db.putIfNotExists(designDoc); - } - - var views = [ - ['domain_name_index', function(d){return emit(d.domainName);}], - ]; - - var viewsLoadedPromise = q.all(views.map(function(pair){ - return createView(pair[0], pair[1]); - })) - .then(function(){ - return q.all(views.map(function(pair){ - return db.query(pair[0], {stale: 'update_after'}); - })); - }); - - self.save = function(entity){ - entity.domainName = entity.domainName || domainName; - - var domain = registry.getDomain(domainName), - uuidGenerator = domain.getService('uuid-generator'); - - entity._id = entity._id || uuidGenerator(entity); - - return q.denodeify(db.put.bind(db, entity))(); - }; - - self.byId = function(id){ - return q.denodeify(db.get.bind(db, id))(); - }; - - self.remove = function(doc){ - return q.denodeify(db.remove.bind(db, doc, {}))(); - }; - - self.getAll = function(){ - return viewsLoadedPromise - .then(function(){ - return q(db.query('domain_name_index', {key: domainName, include_docs:true})) - .then(function(result){ - return _.map(result.rows, 'doc'); - }); - }); - }; - - self.addToParent = function(parent, child){ - var childDomain = registry.getDomain(domainName); - - child.id = child.id || PouchDb.utils.uuid(); - - // sorry, cheap hack - // todo: hide this somewhere - var parentPropertyName = childDomain.getService('parent-'+parent.domainName); - - parent[parentPropertyName] = _.chain(parent[parentPropertyName]) - .toArray() - .push(child) - .value(); - - // by default no events in the same collection can have overlapping times - _.chain(parent[parentPropertyName]) - .toArray() - .reject(function(c){return c== child;}) - .value() - .forEach(function(c){ - c.endTime = c.endTime || child.beginTime; - }); - - }; -} - -module.exports = CrudManager; diff --git a/src/services/entity-manager.spec.js b/src/services/entity-manager.spec.js deleted file mode 100644 index 80d07ac..0000000 --- a/src/services/entity-manager.spec.js +++ /dev/null @@ -1,26 +0,0 @@ -var registrar = require('../registrar/'); -var expect = require('chai').expect; - - -describe('entity manager', function(){ - it('should generate an id property for a new child', function(){ - // todo: get registrar out of here - var PARENT_DOMAIN_NAME = Date.now()+'parent'; - var CHILD_DOMAIN_NAME = Date.now()+'child'; - var p = registrar.createDomain({name: PARENT_DOMAIN_NAME}); - var c = registrar.createDomain({name: CHILD_DOMAIN_NAME}); - p.register('myList', c); - - var parentEntity = {myList:[], }; - var childEntity = {message: 'hey there, i am a child entity.'}; - - var registry = registrar.getRegistry(); - var childDomain = registry.getDomain(CHILD_DOMAIN_NAME); - var childEntityManager = childDomain.getService('entity-manager'); - - childEntityManager.addToParent(parentEntity, childEntity); - - expect(childEntity.id).to.be.ok; - }); -}); - diff --git a/src/services/form-builder/create-popup.vash b/src/services/form-builder/create-popup.vash deleted file mode 100644 index e394dc7..0000000 --- a/src/services/form-builder/create-popup.vash +++ /dev/null @@ -1,11 +0,0 @@ -
-
-

Add @model.label

- -
-
-
-
- -
-
diff --git a/src/services/form-builder/fields/date.vash b/src/services/form-builder/fields/date.vash deleted file mode 100644 index 1775dea..0000000 --- a/src/services/form-builder/fields/date.vash +++ /dev/null @@ -1,5 +0,0 @@ -
  • - @model.label - -
  • - diff --git a/src/services/form-builder/fields/select.vash b/src/services/form-builder/fields/select.vash deleted file mode 100644 index 9e9f212..0000000 --- a/src/services/form-builder/fields/select.vash +++ /dev/null @@ -1,15 +0,0 @@ -
  • -
    - @model.label -
    - - @if (model.isInlineCreate){ - - } -
  • - diff --git a/src/services/form-builder/fields/text.vash b/src/services/form-builder/fields/text.vash deleted file mode 100644 index f2035d4..0000000 --- a/src/services/form-builder/fields/text.vash +++ /dev/null @@ -1,5 +0,0 @@ -
  • - @model.label - -
  • - diff --git a/src/services/form-builder/fields/textarea.vash b/src/services/form-builder/fields/textarea.vash deleted file mode 100644 index 2eb1047..0000000 --- a/src/services/form-builder/fields/textarea.vash +++ /dev/null @@ -1,5 +0,0 @@ - -
  • - @model.label - -
  • diff --git a/src/services/form-builder/index.js b/src/services/form-builder/index.js deleted file mode 100644 index 20859e9..0000000 --- a/src/services/form-builder/index.js +++ /dev/null @@ -1,361 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - _ = require('lodash'), - template = require('./index.vash'), - searchPopupTemplate = require('./search-popup.vash'), - createPopupTemplate = require('./create-popup.vash'), - app = require('app')(), - Scroll = require('iscroll'), - vash = require('vash-runtime'), - templates = { - text: require('./fields/text.vash'), - date: require('./fields/date.vash'), - select: require('./fields/select.vash'), - lookup: require('./fields/select.vash'), - textarea: require('./fields/textarea.vash'), - }; - -vash.helpers.field = function(fieldName, field, data){ - var t = templates[field.type] || templates.text, - features = field.features || []; - - features = features.map(function(str){return str.toLowerCase();}); - - var items = _.chain(field.items) - .toArray() - .map(function(item){ - return { - value: item.value || item.label, - label: item.label || item.value, - }; - }) - .value(); - - return t({ - name: fieldName, - domain: field.domain, - label: field.label || fieldName, - items: items, - value: data ? data[fieldName] : undefined, - isInlineCreate: _.contains(features, 'inline-create'), - }); -}; - -function _buildDataEntryForm(domain, data, fieldFilter){ - if (!fieldFilter && _.isFunction(data)){ - fieldFilter = data; - data = undefined; - } - - var metadata = domain.getService('form-fields'); - var isNew = !data; - - // we allow two formats. - // an array of tabs, or just an object of fields. - if (!_.isArray(metadata)){ - metadata = [ - { fields: metadata, } - ]; - } - if (fieldFilter){ - metadata = metadata.map(function(tab){ - var filteredTab = _.cloneDeep(tab), - keys = Object.keys(filteredTab.fields); - - keys.forEach(function(key){ - if (!fieldFilter(filteredTab.fields[key])){ - delete filteredTab.fields[key]; - } - }); - - return filteredTab; - }); - } - - data = Object(data); - - var $root = $(template({ - tabs: metadata, - entity: data, - })); - - // find the coded fields, fetch their values, and finally populate the select elements. - _.chain(metadata) - .pluck('fields') - .map(function(o){ return _.pairs(o); }) - .flatten() - .map(function(pair){ - return _.extend({}, {name: pair[0]}, pair[1]); - }) - .filter(function(field){ - return /^lookup$/i.test(field.type); }) - .value() - .forEach(function(field){ - var $select = $root.find('select[data-name='+field.name+']'), - codeDomain = app.getDomain(field.domain), - descManager = codeDomain.getService('description-manager'); - - codeDomain - .getService('entity-manager') - .getAll() - .then(function(codeValues){ - _.chain(codeValues) - .map(function(codeValue){ - return { - _id: codeValue._id, - text: descManager.getShortDescription(codeValue), - }; - }) - .sortBy('text') - .value() - .forEach(function(codeValue){ - var $opt = $('') - .attr('value', codeValue._id) - .text(codeValue.text); - - if (data && data[field.name] == codeValue._id){ - $opt.prop('selected', true); - } - - $select.append($opt); - }); - }) - .catch(function(err){ - console.log('error loading codes for '+field.name); - console.error(err); - }); - }); - - var $btnInlineCreate = $root.find('.js-inline-create'); - var $tabButtons = $root.find('.js-tabs *[data-index]'); - var $tabs = $root.find('.js-tab-container *[data-index]'); - - $tabButtons.click(function(){ - var $this = $(this); - - $tabButtons.removeClass('active'); - $this.addClass('active'); - $tabs.hide(); - $($tabs[$this.data('index')]).show(); - }); - - $btnInlineCreate.click(function(ev){ - ev.preventDefault(); - - var $this = $(this), - $container = $this.closest('li'), - domainName = $container.data('domain-name'), - inlineDomain = app.getDomain(domainName), - inlineSearchForm = _buildDataEntryForm(inlineDomain, function(field){ - return field.type=='lookup'; - }), - $searchPopup = $(searchPopupTemplate({ - label: inlineDomain.label, - })), - scroll = new Scroll($searchPopup.find('.result-scroll-wrapper')[0], { - mouseWheel: true, - }); - - function _showCreatePopup(){ - var $createPopup = $(createPopupTemplate({ - label: inlineDomain.label, - })), - inlineCreateForm = _buildDataEntryForm(inlineDomain, inlineSearchForm.getData()) - ; - - _setPopupSize($createPopup); - $createPopup - .find('.js-form-container') - .append(inlineCreateForm.$element); - - $createPopup.find('.js-close') - .click(function(){ - $createPopup.remove(); - }); - - $createPopup.find('.js-inline-save') - .click(function(){ - var entityManager = inlineDomain.getService('entity-manager'), - descManager = inlineDomain.getService('description-manager'), - entity = inlineCreateForm.getData(); - - entityManager.save(entity) - .then(function(result){ - $createPopup.remove(); - - var $newOption = $('') - .text(descManager.getShortDescription(entity)) - .attr('value', result.id); - - $container - .find('select') - .append($newOption) - .val(result.id); - }) - .catch(function(err){ - console.error(err); - }); - - }); - - $('body').append($createPopup); - } - - function _setPopupSize($el){ - $el - .css('right', window.innerWidth-ev.pageX) - .css('top', ev.pageY) - .css('max-height', window.innerHeight-(ev.pageY+24)) - .show(); - } - $searchPopup - .find('.js-create-new') - .click(function(){ - - }); - $searchPopup - .find('.js-search-clear') - .click(function(){ - inlineSearchForm.$element - .find('select') - .val('select one'); //todo: don't hardcode this - - _doSearch(); - }); - - function _doSearch(){ - var criteria = inlineSearchForm.getData(); - var inlineEntityManager = inlineDomain.getService('entity-manager'), - inlineDescManager = inlineDomain.getService('description-manager'); - - inlineEntityManager.getAll() - .then(function(entities){ - var fieldPairs = _.pairs(criteria) - .filter(function(pair){ - var value = pair[1]; - - return !!value; - }); - - return _.chain(entities) - .toArray() - .filter(function(entity){ - var isPass = true; - fieldPairs.forEach(function(fieldPair){ - var name = fieldPair[0], - value = fieldPair[1]; - - if (entity[name] != value) - isPass = false; - }); - - return isPass; - }) - .value(); - }) - .then(function(entities){ - - var $resultContainer = $searchPopup - .find('.js-result-container'); - - $resultContainer - .find('.js-search-result') - .remove(); - - if (_.isEmpty(entities)){ - $resultContainer.append( - $('
  • ') - .text('No matches...') - .addClass('js-search-result search-result item') - ); - } - - _.chain(entities) - .sortBy(function(entity){ - return (inlineDescManager.getShortDescription(entity) || '').toLowerCase(); - }) - .value() - .forEach(function(entity){ - var $item = $('
  • ') - .text(inlineDescManager.getShortDescription(entity)) - .addClass('js-search-result search-result item'); - - $item.click(function(){ - $container.find('select').val(entity._id); - $searchPopup.remove(); - }); - - $resultContainer.append($item); - }); - }) - .then(function(){ - scroll.refresh(); - }); - } - - _doSearch(); - - inlineSearchForm.$element - .find('select') - .on('change', function(){ - _doSearch(); - }); - - _setPopupSize($searchPopup); - $searchPopup - .find('.js-form-container') - .append(inlineSearchForm.$element); - - $searchPopup.find('.js-close') - .click(function(){ - $searchPopup.remove(); - }); - - $searchPopup.find('.js-create-new') - .click(function(){ - $searchPopup.remove(); - _showCreatePopup(); - }); - - $('body').append($searchPopup); - }); - - if (isNew || _.isEmpty(domain.getService('child-domains'))){ - $tabButtons.filter('.js-children-tab-item').hide(); - } - - return { - setData: function(formData){ - $root - .find('*[data-name]') - .each(function(){ - var $this = $(this), - name = $this.data('name'), - value = formData[name]; - - $this.val(value); - }); - }, - getData: function(){ - var formData = { - domainName: domain.name, - }; - $root - .find('*[data-name]') - .each(function(){ - var $this = $(this), - name = $this.data('name'), - value = $this.val(); - - formData[name] = value; - }); - - return _.extend({}, data, formData); - }, - $element: $root, - }; -} - -module.exports.buildDataEntryForm = _buildDataEntryForm; - diff --git a/src/services/form-builder/index.less b/src/services/form-builder/index.less deleted file mode 100644 index 394a383..0000000 --- a/src/services/form-builder/index.less +++ /dev/null @@ -1,61 +0,0 @@ - -.form-builder{ - .input-label{ - text-transform: capitalize; - } - .tabs{ - top:0px; - } - .tab-container{ - top:44px; - } - .item-select{ - &.inline-create-item{ - .btn-inline-create{ - position: absolute; - top: 10px; - right: 10px; - z-index: 10; - } - select{ - right: 70px; - } - } - } -} - -.inline-create-popup{ - .form-container{ - margin-top: 44px; - margin-bottom: 0px; - } -} - -.inline-create-popup, -.inline-search-popup{ - position: fixed; - width: 75%; - padding: 4px; - border: 1px solid black; - z-index: 200; - background-color: white; - .search-criteria{ - ul.list.criteria-header{ - margin-top: 44px; - margin-bottom: 0px; - } - } - ul.list.result-header{ - margin-bottom: 0px; - } - - .result-scroll-wrapper{ - overflow: relative; - height:250px; - overflow: hidden; - .result-container{ - border: 1px solid #f5f5f5; - } - } - -} diff --git a/src/services/form-builder/index.vash b/src/services/form-builder/index.vash deleted file mode 100644 index 507cb85..0000000 --- a/src/services/form-builder/index.vash +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -
    -
    - @model.tabs.forEach(function(tab, i){ - - - @(tab.label || tab.name || '') - - }) - - - Children - -
    -
    -
    - @model.tabs.forEach(function(tab, i){ -
    -
    -
      - @Object.keys(tab.fields).forEach(function(fieldName){ - @html.raw(html.field(fieldName, tab.fields[fieldName], @model.entity)) - }) -
    -
    -
    - }) -
    diff --git a/src/services/form-builder/search-popup.vash b/src/services/form-builder/search-popup.vash deleted file mode 100644 index 380c61d..0000000 --- a/src/services/form-builder/search-popup.vash +++ /dev/null @@ -1,26 +0,0 @@ -
    -
    -

    @model.label Search

    - -
    -
    -
      -
    • - Criteria -
    • -
    -
    - -
    -
      -
    -
    -
    - - -
    -
    diff --git a/src/services/geolocation.js b/src/services/geolocation.js deleted file mode 100644 index f04b933..0000000 --- a/src/services/geolocation.js +++ /dev/null @@ -1,137 +0,0 @@ -var q = require('q'); -var $ = require('jquery'); -var callbacks = $.Callbacks('unique'); -var latestCoordinates; - -var DEFAULTS = { - enableHighAccuracy: true, - maximumAge : 30000, - timeout : 27000 -}; - -$(function(){ - window.isCordova = false; - - if(document.URL.indexOf("http://") === -1 && document.URL.indexOf("https://") === -1) { - window.isCordova = true; - } - - if(window.isCordova) { - document.addEventListener("deviceready", onDeviceReady, false); - } else { - onDeviceReady(); - } -}); - -function onDeviceReady(){ - navigator - .geolocation - .watchPosition(success, error, DEFAULTS); -} - -var success = function(data){ - - try { - if (data){ - latestCoordinates = { - coords: { - speed: data.coords.speed, - heading: data.coords.heading, - altitudeAccuracy: data.coords.altitudeAccuracy, - accuracy: data.coords.accuracy, - altitude: data.coords.altitude, - longitude: data.coords.longitude, - latitude: data.coords.latitude, - }, - timestamp: data.timestamp, - }; - } - - } catch (e){ - - } - - - fireFireFire(); -}; - -var error = function(err){ - console.log('there was an error getting the position'); - console.dir(err); - callbacks.fire(err); -}; - -var fireFireFire = function(){ callbacks.fire(null, latestCoordinates); }; - -exports.watch = function(fnSuccess){ - var myCoords = latestCoordinates; - if (myCoords){ - process.nextTick(function(){ - fnSuccess(null, myCoords); - callbacks.add(fnSuccess); - }); - } else { - callbacks.add(fnSuccess); - } -}; - -exports.unwatch = function(fnSuccess){ - callbacks.remove(fnSuccess); -}; - -var ONCE_DEFAULTS = { - enableHighAccuracy: false, - maximumAge: 0, - timeout: 2000, -}; - -exports.once = function(){ - var d = q.defer(); - - var fnSuccess = function(data){ - d.resolve({ - coords: { - speed: data.coords.speed, - heading: data.coords.heading, - altitudeAccuracy: data.coords.altitudeAccuracy, - accuracy: data.coords.accuracy, - altitude: data.coords.altitude, - longitude: data.coords.longitude, - latitude: data.coords.latitude, - }, - source: 'current', - timestamp: data.timestamp, - }); - }; - - var fnError = function(err){ - if (!latestCoordinates) return d.reject(err); - - return d.resolve({ - coords: latestCoordinates.coords, - timestamp: latestCoordinates.timestamp, - source: 'stale', - }); - }; - - var time = 1000*60*12; - if (latestCoordinates){ - var locationAge = ((Date.now() -latestCoordinates.timestamp)/1000)/60; - console.log('geolocaiton data is ' + Math.round(locationAge) + ' minutes old'); - } - - if (latestCoordinates && latestCoordinates.timestamp >= (Date.now()-time)){ - console.dir('using last location'); - d.resolve({ - coords: latestCoordinates.coords, - source: 'stale', - }); - } else { - navigator - .geolocation - .getCurrentPosition(fnSuccess, fnError, ONCE_DEFAULTS); - } - - return d.promise; -}; - diff --git a/src/services/uuid-generator.js b/src/services/uuid-generator.js deleted file mode 100644 index f9e05fa..0000000 --- a/src/services/uuid-generator.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = function(){ - return Date.now().toString(); -}; diff --git a/src/timeline.js b/src/timeline.js deleted file mode 100644 index 4c75995..0000000 --- a/src/timeline.js +++ /dev/null @@ -1,34 +0,0 @@ -var app = require('app')(), - createTimeline = require('d3-timeline'), - _ = require('lodash'); - -var DEFAULTS = { - getBegin: function(d){ - var domain = app.getDomain(d.domainName); - return domain.getService('get-begin-time')(d); - }, - getEnd: function(d){ - var domain = app.getDomain(d.domainName); - return domain.getService('get-end-time')(d); - }, - getLabel: function(d){ - var domain = app.getDomain(d.domainName); - var service = domain.getService('description-manager'); - - return service ? service.getShortDescription(d) : 'no label'; - }, - getColor: function(d){ - var domain = app.getDomain(d.domainName); - return domain.getService('color') || 'purple'; - }, - getKey: function(d){ - return d.id || d._id; - }, - }; - -var HEADER_HEIGHT = 100; -module.exports = function(opts){ - opts = _.extend({}, DEFAULTS, opts); - opts.height = opts.height || window.innerHeight - HEADER_HEIGHT; - return createTimeline(opts); -}; diff --git a/src/views/code-manager/index.js b/src/views/code-manager/index.js deleted file mode 100644 index ddb55c6..0000000 --- a/src/views/code-manager/index.js +++ /dev/null @@ -1,205 +0,0 @@ -require('./index.less'); -var tmpl = require('./index.vash'), - CreateNewDialog = require('create-new-dialog'), - EditExistingDialog = require('edit-existing-dialog'), - Scroll = require('iscroll'), - _ = require('lodash'), - $ = require('jquery'), - EventEmitter = require('events').EventEmitter, - util = require('util'), - Modal = require('modal'), - listItemTemplate = require('./list-item-template.vash'), - app = require('app')(); - -function CodeManager(){ - EventEmitter.call(this); - var self = this, - codeDomains = _.chain(app.getDomains('code-domain')) - .sortBy('label') - .value(); - - var $element = $(tmpl({ - domains: codeDomains, - })); - - var $domainSelect = $element.find('.js-select-domain'), - $codeList = $element.find('.js-codes'); - - - $domainSelect.on('change', function(){ - _load(); - }); - - $element.find('.scroll-wrapper') - .css('width', window.innerWidth) - .css('height', window.innerHeight-(96+44)); - - var scroll = new Scroll($element.find('.scroll-wrapper')[0], { - mouseWheel: true, - scrollbars: true, - }); - - $codeList.on('click', '.js-item', function(){ - if (_.isEmpty(_currentEntities)) return; - - var $this = $(this), - $item = $this.closest('.item'), - _id = $item.data('_id'); - - var dialog = new EditExistingDialog({ - domain: self.currentDomain, - entity: _.find(_currentEntities, function(e){return e._id == _id;}), - }); - - dialog.on('edited', function(data){ - dialog.hide(); - - self.entityManager.save(data) - .then(function(){ - _load(); - }) - .catch(function(err){ - console.error(err); - }); - }); - - dialog.on('closed', function(){ - dialog.remove(); - }); - - dialog.show(); - }); - - $codeList.on('click', '.js-delete', function(ev){ - ev.stopPropagation(); - - if (!window.confirm('Are you sure?')) return; - - var $this = $(this), - $item = $this.closest('.item'), - _id = $item.data('_id'), - _rev = $item.data('_rev'); - - self.entityManager.remove({_id: _id, _rev: _rev}) - .then(function(){ - $item.fadeOut(function(){ - $item.remove(); - }); - }) - .catch(function(err){ - console.error(err); - }); - }); - - $element.find('.js-btn-add') - .click(function(ev){ - ev.preventDefault(); - - var createNewDialog = new CreateNewDialog({ - domain: self.currentDomain, - }); - - createNewDialog.on('created', function(data){ - createNewDialog.hide(); - modal.show(); - - self.entityManager.save(data) - .then(function(){ - _load(); - }) - .catch(function(err){ - console.error(err); - }); - }); - - createNewDialog.on('closed', function(){ - createNewDialog.remove(); - }); - - createNewDialog.show(); - }); - - var modal = new Modal({ - title: 'Coded field manager', - $content: $element, - hideOkay: true, - }); - - modal.on('closed', function(){ - self.emit('closed'); - }); - - self.show = function(){ - modal.show(); - _load(); - }; - - Object.defineProperty(self, 'currentDomain', { - get: function(){ - if (!$domainSelect) return null; - - var selectedDomainName = $domainSelect.val(); - return _.find(codeDomains, function(d){ return d.name == selectedDomainName; }); - }, - }); - - Object.defineProperty(self, 'entityManager', { - get: function(){ - if (!self.currentDomain) return null; - - return self.currentDomain.getService('entity-manager'); - }, - }); - - Object.defineProperty(self, 'descriptionManager', { - get: function(){ - if (!self.currentDomain) return null; - - return self.currentDomain.getService('description-manager'); - }, - }); - - function _createListItemElement(viewModel){ - return listItemTemplate(viewModel); - } - - var _currentEntities; - function _load(){ - $codeList.empty() - .append('Loading...'); - - return self.entityManager.getAll() - .then(function(entities){ - $codeList.empty(); - - if (_.isEmpty(entities)){ - $codeList.append('There are no ' + self.currentDomain.label.toLowerCase() + ' codes.'); - } - - _currentEntities = entities; - - _.chain(entities) - .map(function(entity){ - return { - _id: entity._id, - _rev: entity._rev, - label: self.descriptionManager.getShortDescription(entity), - }; - }) - .sortBy('label') - .map(_createListItemElement) - .value() - .forEach(function(el){ - $codeList.append(el); - }); - - setTimeout(function(){ - scroll.refresh(); - },100); - }) - .done(); - } -} - -util.inherits(CodeManager, EventEmitter); -module.exports = CodeManager; diff --git a/src/views/code-manager/index.less b/src/views/code-manager/index.less deleted file mode 100644 index 5fde1bf..0000000 --- a/src/views/code-manager/index.less +++ /dev/null @@ -1,24 +0,0 @@ -.code-manager{ - select{ - background-color: #f5f5f5; - } - .tools{ - margin-bottom: 0; - border-bottom: none; - .toolbar{ - float: right; - } - } - .icon.delete{ - cursor: pointer; - } - .scroll-wrapper{ - overflow:hidden; - position:relative; - top:0px; - bottom:0px; - width: 100%; - .scroller{ - } - } -} diff --git a/src/views/code-manager/index.vash b/src/views/code-manager/index.vash deleted file mode 100644 index e88cd22..0000000 --- a/src/views/code-manager/index.vash +++ /dev/null @@ -1,31 +0,0 @@ -
    - -
    -
    -
      -
    -
    -
    -
    - diff --git a/src/views/code-manager/list-item-template.vash b/src/views/code-manager/list-item-template.vash deleted file mode 100644 index 73697dd..0000000 --- a/src/views/code-manager/list-item-template.vash +++ /dev/null @@ -1,4 +0,0 @@ -
  • - @model.label - -
  • diff --git a/src/views/create-new-dialog/index.js b/src/views/create-new-dialog/index.js deleted file mode 100644 index d8c5c46..0000000 --- a/src/views/create-new-dialog/index.js +++ /dev/null @@ -1,144 +0,0 @@ -require('./index.less'); - -var Modal = require('modal'), - geolocation = require('geolocation'), - _ = require('lodash'), - q = require('q'), - $ = require('jquery'), - deviceSettings = require('device-settings'), - formBuilder = require('form-builder'), - geolocation = require('geolocation'), - util = require('util'), - app = require('app')(), - EventEmitter = require('events').EventEmitter, - template = require('./index.vash'); - -function getTemplate(){ return template; } - -function CreateNewDialog(opt){ - var domain = opt.domain; - - var self = this; - EventEmitter.call(self); - - var modal, crumbs = []; - - this.setCrumbs = function(myCrumbs){ - crumbs = myCrumbs || []; - }; - - var title = 'Create '+ domain.label; - - var form = formBuilder.buildDataEntryForm(domain); - - var template = getTemplate(domain); - var $content = $(template({ - isNew: true, - crumbs: crumbs, - })); - - $content.find('.js-form').append(form.$element); - - var $btnSave = $content.find('.js-save'); - - modal = new Modal({ - title: title, - $content: $content, - hideOkay: true, - backAction: opt.backAction, - }); - - function _handleSave(keepOpen){ - var now = Date.now(); - - var entity = { - domainName: domain.name, - beginTime: now, - endTime: keepOpen ? null : now, - geo: {}, - }; - - entity = _.extend(entity, form.getData()); - - var activityService = domain.getService('activity'); - if (activityService){ - activityService.start(entity); - } - - var eventService = domain.getService('event'); - if (eventService){ - eventService.create(entity); - } - - return q.all([ - deviceSettings(), - geolocation.once(), - ]) - .spread(function(settings, locationData){ - entity.observerId = settings.user; - entity.geo.create = { - type: 'Point', - coordinates: [ - locationData.coords.longitude, - locationData.coords.latitude, - locationData.coords.altitude, - ], - properties: { - timestamp: Date.now(), - }, - }; - return entity; - }); - } - - function _createButtonClick(keepActivityRunning, ev){ - console.log('gotta click'); - - var $this = $(this), - oldText = $this.text(); - - $this.parent() - .find('input,button') - .attr('disabled', 'disabled'); - - $this.text('Please wait...'); - - ev.preventDefault(); - return _handleSave(keepActivityRunning) - .then(function(data){ - console.dir('emiting created'); - console.dir(data); - self.emit('created', data); - }) - .catch(function(err){ - console.dir('error in CreateNewDialog'); - console.error(err); - }) - .finally(function(){ - $this.text(oldText); - $this.parent() - .find('input,button') - .removeAttr('disabled'); - }); - } - - $btnSave.click(_.partial(_createButtonClick, true)); - modal.on('closed', function(){ - self.emit('closed'); - }); - - this.show = function(){ - modal.show(); - }; - - this.hide = function(){ - modal.hide(); - }; - this.remove = function(){ - modal.remove(); - }; -} - - -util.inherits(CreateNewDialog, EventEmitter); -module.exports = CreateNewDialog; diff --git a/src/views/create-new-dialog/index.less b/src/views/create-new-dialog/index.less deleted file mode 100644 index 9b32229..0000000 --- a/src/views/create-new-dialog/index.less +++ /dev/null @@ -1,10 +0,0 @@ -.button-container{ - background-color: #f5f5f5; - - .button-bar{ - padding:20px; - .button-tool{ - opacity: .7 - } - } -} diff --git a/src/views/create-new-dialog/index.vash b/src/views/create-new-dialog/index.vash deleted file mode 100644 index 153281f..0000000 --- a/src/views/create-new-dialog/index.vash +++ /dev/null @@ -1,19 +0,0 @@ -
    - -
    -
    -
    -
    -
    -
    -
    -
    - -
    -
    -
    diff --git a/src/views/create-select-dialog/index.js b/src/views/create-select-dialog/index.js deleted file mode 100644 index fb01591..0000000 --- a/src/views/create-select-dialog/index.js +++ /dev/null @@ -1,93 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - EventEmitter = require('events').EventEmitter, - _ = require('lodash'), - util = require('util'), - template = require('./index.vash'), - app = require('app')(), - CreateNewDialog = require('create-new-dialog'); - -function CreateSelectDialog(opt){ - var self = this; - EventEmitter.call(self); - opt = Object(opt); - - var formDomains = opt.domains || app.getDomains('form-fields'); - - var crumbs = opt.crumbs || []; - var $element = $(template({ - activityTypes: formDomains, - })), - createNewDialog; - - $('body').append($element); - - $element - .find('.js-new-activity') - .on('click', function(){ - var $this = $(this), - domainName = $this.val(), - domain = app.getDomain(domainName); - - _showCreateForm(domain); - }); - - function _showCreateForm(domain){ - createNewDialog = new CreateNewDialog({ - domain: domain, - backAction: opt.backAction, - }); - - var myCrumbs = _.chain(crumbs) - .clone() - .value(); - - createNewDialog.setCrumbs(myCrumbs); - - createNewDialog.on('created', function(data){ - createNewDialog.remove(); - self.emit('created', data); - }); - - createNewDialog.on('closed', function(){ - createNewDialog.remove(); - }); - - createNewDialog.show(); - } - - function _showMenu(ev){ - $element - .css('top', ev.pageY) - .css('right', window.innerWidth - ev.pageX) - .show(); - - setTimeout(function(){ - $('body').one('click', function(){ - $element.hide(); - self.emit('closed'); - }); - },0); - } - - this.show = function(ev){ - if (_.size(formDomains) === 1){ - _showCreateForm(formDomains[0]); - } else { - _showMenu(ev); - } - }; - - this.hide = function(){ - $element.hide(); - if (createNewDialog) createNewDialog.hide(); - }; - this.remove = function(){ - $element.remove(); - if (createNewDialog) createNewDialog.remove(); - }; -} - -util.inherits(CreateSelectDialog, EventEmitter); -module.exports = CreateSelectDialog; diff --git a/src/views/create-select-dialog/index.less b/src/views/create-select-dialog/index.less deleted file mode 100644 index 3961eeb..0000000 --- a/src/views/create-select-dialog/index.less +++ /dev/null @@ -1,8 +0,0 @@ -.create-select-menu{ - display: none; - position: fixed; - z-index: 100; - background-color: whitesmoke; - padding: 0px 6px 0px 6px; - border: 1px solid #989898; -} diff --git a/src/views/create-select-dialog/index.vash b/src/views/create-select-dialog/index.vash deleted file mode 100644 index 2815596..0000000 --- a/src/views/create-select-dialog/index.vash +++ /dev/null @@ -1,9 +0,0 @@ - diff --git a/src/views/edit-existing-dialog/index.js b/src/views/edit-existing-dialog/index.js deleted file mode 100644 index f384d97..0000000 --- a/src/views/edit-existing-dialog/index.js +++ /dev/null @@ -1,54 +0,0 @@ -var Modal = require('modal'), - EditExistingForm = require('edit-existing-form'), - util = require('util'), - q = require('q'), - app = require('app')(), - $ = require('jquery'), - EventEmitter = require('events').EventEmitter; - -function EditExistingDialog(opt){ - var entity = opt.entity, - form = new EditExistingForm(opt), - domain = app.getDomain(entity.domainName); - - var self = this; - EventEmitter.call(self); - - var modal, crumbs = []; - - this.setCrumbs = function(myCrumbs){ - crumbs = myCrumbs || []; - }; - - var title = 'Edit '+ domain.label; - - modal = new Modal({ - title: title, - $content: form.$element, - hideOkay: true, - backAction: opt.backAction, - }); - - form.on('edited', function(data){ - self.emit('edited', data); - }); - - modal.on('closed', function(){ - self.emit('closed'); - }); - - this.show = function(){ - modal.show(); - }; - - this.hide = function(){ - modal.hide(); - }; - this.remove = function(){ - modal.remove(); - }; -} - - -util.inherits(EditExistingDialog, EventEmitter); -module.exports = EditExistingDialog; diff --git a/src/views/edit-existing-form/index.js b/src/views/edit-existing-form/index.js deleted file mode 100644 index 732d471..0000000 --- a/src/views/edit-existing-form/index.js +++ /dev/null @@ -1,61 +0,0 @@ -require('./index.less'); - -var _ = require('lodash'), - q = require('q'), - $ = require('jquery'), - formBuilder = require('form-builder'), - util = require('util'), - app = require('app')(), - EventEmitter = require('events').EventEmitter, - template = require('./index.vash'); - -function getTemplate(){ return template; } - -function EditExistingDialog(opt){ - var entity = opt.entity, - domain = app.getDomain(entity.domainName); - - var self = this; - EventEmitter.call(self); - - - var form = formBuilder.buildDataEntryForm(domain, entity); - - var template = getTemplate(domain); - self.$element = $(template({ })); - self.$element.find('.js-form').append(form.$element); - - var $btnSave = self.$element.find('.js-save'); - - self.updateFields = function(){ - _.extend(entity, form.getData()); - return entity; - }; - - function _onCreateButtonClick(keepActivityRunning, ev){ - var $this = $(this), - oldText = $this.text(); - - $this.parent() - .find('input,button') - .attr('disabled', 'disabled'); - - $this.text('Please wait...'); - - ev.preventDefault(); - - _updateFields(); - self.emit('edited', entity); - - $this.text(oldText); - $this.parent() - .find('input,button') - .removeAttr('disabled'); - } - - $btnSave.click(_.partial(_onCreateButtonClick, true)); -} - - -util.inherits(EditExistingDialog, EventEmitter); -module.exports = EditExistingDialog; diff --git a/src/views/edit-existing-form/index.less b/src/views/edit-existing-form/index.less deleted file mode 100644 index 9b32229..0000000 --- a/src/views/edit-existing-form/index.less +++ /dev/null @@ -1,10 +0,0 @@ -.button-container{ - background-color: #f5f5f5; - - .button-bar{ - padding:20px; - .button-tool{ - opacity: .7 - } - } -} diff --git a/src/views/edit-existing-form/index.vash b/src/views/edit-existing-form/index.vash deleted file mode 100644 index 810cb48..0000000 --- a/src/views/edit-existing-form/index.vash +++ /dev/null @@ -1,8 +0,0 @@ -
    -
    -
    -
    -
    -
    -
    -
    diff --git a/src/views/geolocation-viewer/index.js b/src/views/geolocation-viewer/index.js deleted file mode 100644 index 8519bf6..0000000 --- a/src/views/geolocation-viewer/index.js +++ /dev/null @@ -1,73 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - tmpl = require('./index.vash'), - velocity = require('velocity-animate'), - geolocation = require('geolocation'), - Modal = require('modal'); - -function GeolocationViewer(){ - var self = this, - $element = $(tmpl({})), - $pre = $element.find('pre'), - $status = $element.find('.status'); - - function _resetColor(){ - setTimeout(function(){ - velocity($status, {'backgroundColor': '#FFFFFF', color:'#000000'}, { - duration: 600, - }); - }, 1400); - } - - var watch = function(err, result){ - _resetColor(); - if (err){ - console.log('geo error'); - console.dir(err); - - $status.text('Failure!') - .css('color', 'white') - .css('background-color', 'red'); - - $pre.empty() - .text(JSON.stringify(err, '\t', 2)); - - return; - } - - $status.text('Success!') - .css('color', 'white') - .css('background-color', 'green'); - - $pre.empty() - .text(JSON.stringify(result, '\t', 2)); - - }; - - - geolocation.watch(watch); - - var modal = new Modal({ - title: 'Geolocation viewer', - $content: $element, - hideOkay: true, - }); - - self.show = function(){ - modal.show(); - }; - - self.hide = function(){ - modal.hide(); - }; - - self.remove = function(){ - self.$element.remove(); - geolocation.unwatch(watch); - }; - - -} - -module.exports = GeolocationViewer; diff --git a/src/views/geolocation-viewer/index.less b/src/views/geolocation-viewer/index.less deleted file mode 100644 index c682dde..0000000 --- a/src/views/geolocation-viewer/index.less +++ /dev/null @@ -1,9 +0,0 @@ -#geolocation-viewer{ - padding: 8px; - .success{ - color: green; - } - .failure{ - color: darkred; - } -} diff --git a/src/views/geolocation-viewer/index.vash b/src/views/geolocation-viewer/index.vash deleted file mode 100644 index 23ab3e8..0000000 --- a/src/views/geolocation-viewer/index.vash +++ /dev/null @@ -1,4 +0,0 @@ -
    -

    -
    
    -
    diff --git a/src/views/list-view/index.js b/src/views/list-view/index.js deleted file mode 100644 index d957baf..0000000 --- a/src/views/list-view/index.js +++ /dev/null @@ -1,111 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - _ = require('lodash'), - Hammer = require('hammerjs'), - q = require('q'), - Scroll = require('iscroll'), - app = require('app')(), - ViewExistingDialog = require('../view-existing-dialog'), - pageTemplate = require('./index.vash'), - itemTemplate = require('./item.vash'); - - -function _getTopLevelDomains(){ - var domains = app.getDomains() - .filter(function(domain){ - return !domain.getService('code-domain') && !/^_/.test(domain.name); - }); - - return domains.filter(function(d){ - return !_.any(domains, function(otherDomain){ - return !!_.find(otherDomain.getChildren(), function(d2){ - return d2.name == d.name; - }); - }); - }); -} - -function _getEntities(){ - return _.chain(_getTopLevelDomains()) - .map(function(domain){ - var entityManager = domain.getService('entity-manager'); - return entityManager.getAll(); - }) - .thru(q.all) - .value() - .then(function(results){ - return _.chain(results) - .flatten() - .sortBy(function(d){ - var domain = app.getDomain(d.domainName); - var sortBy = domain ? domain.getService('sort-by') : false; - - if (!sortBy) return d._id || d.id; - - return d[sortBy]; - }) - .reverse() - .value(); - }); -} - -function _createViewModel(entity){ - var domain = app.getDomain(entity.domainName), - descManager = domain.getService('description-manager'); - - return { - label: descManager.getShortDescription(entity), - domainName: entity.domainName, - id: entity._id || entity.id, - }; -} -function ListPage(){ - var self = this; - - self.$element = $(pageTemplate({ })); - var scroll = new Scroll(self.$element.find('.scroll-wrapper')[0], { - mouseWheel: true, - scrollbars: true, - }); - - self.refresh = function(){ - _getEntities() - .then(function(entities){ - var $ul = self.$element.find('ul.list'); - $ul.empty(); - - entities.forEach(function(entity){ - var $item = $(itemTemplate(_createViewModel(entity))); - $ul.append($item); - var hammer = new Hammer($item[0]); - hammer.on('tap', _itemClick.bind(null, entity.domainName, entity._id)); - - - }); - - scroll.refresh(); - }); - }; - - function _itemClick(domainName, _id){ - console.log('opening: ' + domainName + ' ' + _id); - var domain = app.getDomain(domainName), - entityManager = domain.getService('entity-manager'); - - - entityManager.byId(_id) - .then(function(entity){ - if (!entity) return window.alert('unable to find entity'); - var m = new ViewExistingDialog({ entity: entity, }); - m.show(); - }) - .catch(function(err){ - console.error(err); - }); - } - - self.refresh(); -} - -module.exports = ListPage; diff --git a/src/views/list-view/index.less b/src/views/list-view/index.less deleted file mode 100644 index ec58081..0000000 --- a/src/views/list-view/index.less +++ /dev/null @@ -1,20 +0,0 @@ -.list-page{ - .item.item-icon-right{ - .icon.color-box{ - display: inline-block; - width: 6px; - right: 0px; - } - } - - .scroll-wrapper{ - overflow:hidden; - position:relative; - top:0px; - bottom:0px; - width: 100%; - .scroller{ - } - } - -} diff --git a/src/views/list-view/index.vash b/src/views/list-view/index.vash deleted file mode 100644 index 408b891..0000000 --- a/src/views/list-view/index.vash +++ /dev/null @@ -1,8 +0,0 @@ -
    -
    -
    -
      -
    -
    -
    -
    diff --git a/src/views/list-view/item.vash b/src/views/list-view/item.vash deleted file mode 100644 index 3910188..0000000 --- a/src/views/list-view/item.vash +++ /dev/null @@ -1,3 +0,0 @@ -
  • - @model.label -
  • diff --git a/src/views/settings/index.js b/src/views/settings/index.js deleted file mode 100644 index aba8169..0000000 --- a/src/views/settings/index.js +++ /dev/null @@ -1,100 +0,0 @@ -require('./index.less'); -var tmpl = require('./index.vash'), - deviceSettings = require('device-settings'), - q = require('q'), - _ = require('lodash'), - $ = require('jquery'), - EventEmitter = require('events').EventEmitter, - util = require('util'), - Modal = require('modal'), - app = require('app')(); - -function CodeManager(){ - EventEmitter.call(this); - var self = this, - settingLookupDomains = _.chain(app.getDomains('setting-lookup')) - .sortBy('label') - .value(); - - var $element = $(tmpl({ - settings: settingLookupDomains.map(function(domain){ - return { - name: domain.name, - label: domain.label, - }; - }), - })); - - function loadSettings(){ - var loadedSelects = settingLookupDomains.map(function(domain){ - var descManager = domain.getService('description-manager'); - return domain.getService('entity-manager').getAll() - .then(function(entities){ - var $select = $element.find('#'+domain.name); - entities.forEach(function(entity){ - var $opt = $(''); - $opt.val(entity._id); - $opt.text(descManager.getShortDescription(entity)); - - $select.append($opt); - }); - - return $select; - }); - }); - - q.all(loadedSelects) - .then(function(selects){ - deviceSettings() - .then(function(settings){ - Object.keys(settings) - .forEach(function(key){ - var $select = _.find(selects, function($select){ return $select.attr('id') == key;}); - - if ($select) - $select.val(settings[key]); - }); - }); - - }); - } - - $element.find('.scroll-wrapper') - .css('width', window.innerWidth) - .css('height', window.innerHeight-(96+44)); - - var modal = new Modal({ - title: 'Settings', - $content: $element, - hideOkay: true, - }); - - modal.on('closed', function(){ - self.emit('closed'); - }); - - self.show = function(){ - loadSettings(); - modal.show(); - }; - - $element.find('#btn-save-settings').click(function(){ - deviceSettings() - .then(function(settings){ - $element.find('select').each(function(){ - var $select = $(this); - settings[$select.attr('id')] = $select.val(); - }); - - deviceSettings(settings) - .then(function(res){ - console.dir(res); - modal.hide(); - }); - - }); - }); -} - -util.inherits(CodeManager, EventEmitter); -module.exports = CodeManager; diff --git a/src/views/settings/index.less b/src/views/settings/index.less deleted file mode 100644 index 8ae7ff3..0000000 --- a/src/views/settings/index.less +++ /dev/null @@ -1,19 +0,0 @@ -.settings-manager{ - .setting{ - label{ - text-transform: capitalize; - } - } - .icon.delete{ - cursor: pointer; - } - .scroll-wrapper{ - overflow:hidden; - position:relative; - top:0px; - bottom:0px; - width: 100%; - .scroller{ - } - } -} diff --git a/src/views/settings/index.vash b/src/views/settings/index.vash deleted file mode 100644 index fa09780..0000000 --- a/src/views/settings/index.vash +++ /dev/null @@ -1,21 +0,0 @@ -
    - - -
    - -
    -
    - diff --git a/src/views/side-menu/index.js b/src/views/side-menu/index.js deleted file mode 100644 index 351e7a3..0000000 --- a/src/views/side-menu/index.js +++ /dev/null @@ -1,56 +0,0 @@ -var velocity = require('velocity-animate'), - $ = require('jquery'), - EventEmitter = require('events').EventEmitter, - template = require('./index.vash'); - -function SideMenu(opt){ - var $content = $(opt.content); - var self = new EventEmitter(); - - self.$element = $(template({})); - - self.$element.on('click', '.js-upload', function(){ - self.emit('click', 'sync'); - }); - - self.$element.on('click', '.js-code-manager', function(){ - self.emit('click', 'code-manager'); - }); - - self.$element.on('click', '.js-settings', function(){ - self.emit('click', 'settings'); - }); - - self.$element.on('click', '.js-geolocation-viewer', function(){ - self.emit('click', 'geolocation-viewer'); - }); - - var $showLeftMenu = $('.js-show-left-menu'), - isLeftMenuOpen = false; - - - self.close = function(){ - if (!isLeftMenuOpen) return; - openCloseLeftMenu(); - }; - - function openCloseLeftMenu(){ - velocity($content, {left: isLeftMenuOpen? '0':'240'}, { - duration:140, - complete: function(){ - - }, - }); - isLeftMenuOpen = !isLeftMenuOpen; - } - - $showLeftMenu.click(function(ev){ - ev.stopPropagation(); - - openCloseLeftMenu(); - }); - - return self; -} - -module.exports = SideMenu; diff --git a/src/views/side-menu/index.vash b/src/views/side-menu/index.vash deleted file mode 100644 index 722f8d0..0000000 --- a/src/views/side-menu/index.vash +++ /dev/null @@ -1,29 +0,0 @@ -
    -
    -

    -
    - -
    diff --git a/src/views/timeline-page/index.js b/src/views/timeline-page/index.js deleted file mode 100644 index 69ff831..0000000 --- a/src/views/timeline-page/index.js +++ /dev/null @@ -1,160 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - _ = require('lodash'), - q = require('q'), - app = require('app')(), - createTimeline = require('timeline'), - CreateSelectMenu = require('../create-select-dialog'), - ViewExistingDialog = require('../view-existing-dialog'), - //FormDialog = require('form-dialog'), - //sampleData = require('sample-data'), - pageTemplate = require('./index.vash'); - - -function _getTopLevelDomains(){ - var domains = app.getDomains() - .filter(function(domain){ - return !domain.getService('code-domain') && !/^_/.test(domain.name); - }); - - return domains.filter(function(d){ - return !_.any(domains, function(otherDomain){ - return !!_.find(otherDomain.getChildren(), function(d2){ - return d2.name == d.name; - }); - }); - }); -} - -function TimelinePage(){ - var self = this; - - - var timeline = createTimeline({ - }); - var createSelectMenu = new CreateSelectMenu({ - domains: _getTopLevelDomains(), - }); - - self.$element = $(pageTemplate({})); - self.$element.find('#timeline-container').append(timeline.element); - - self.render = function(){ - console.log('timeline - render'); - timeline.clear(); - - var fetchPromises = app.getDomains('get-start-time') - .map(function(domain){ - var entityManager = domain.getService('entity-manager'); - return entityManager.getAll(); - }); - - return q.all(fetchPromises) - .then(function(results){ - var entities = _.flatten(results) - .filter(function(d){ return d.domainName=='diary'; }); - - timeline.add(_.sortBy(entities, 'eventDate')); - - return entities; - }) - .done(); - }; - - window.addEventListener('orientationchange', function(){ - self.render(); - }); - - - $('body').on('click','.js-btn-top-level-add', function(ev){ - createSelectMenu.on('created', function(entity){ - var domain = app.getDomain(entity.domainName); - var entityManager = domain.getService('entity-manager'); - - entityManager.save(entity) - .then(function(info){ - entity._id = info.id; - entity._rev = info.rev; - - timeline.add(entity); - - var dialog = new ViewExistingDialog({ - entity: entity, - }); - - dialog.on('removed', function(){ - setTimeout(function(){ - timeline.remove(entity); - }, 400); - }); - dialog.show(); - }) - .catch(function(err){ - console.dir(err); - }) - .finally(function(){ - console.log('ok'); - }); - }); - - createSelectMenu.show(ev); - }); - - timeline.on('activity-click', function(d){ - var domain = app.getDomain(d.domainName), - entityManager = domain.getService('entity-manager'); - - var m = new ViewExistingDialog({ - entity: d, - }); - - m.on('removed', function(){ - setTimeout(function(){ - timeline.remove(d); - }, 400); - }); - - m.on('updated', function(){ - m.hide(); - self.render(); - - }); - m.on('save', function(entity){ - entityManager.save(entity) - .then(function(){ - - m.hide(); - timeline.update(); - }).done(); - }); - - m.on('delete', function(entity){ - if (!window.confirm('Are you sure?')) return; - - entityManager.remove(entity) - .then(function(){ - m.hide(); - timeline.remove(entity); - }).done(); - }); - - m.on('closed', function(){ - m.remove(); - }); - - m.show(); - }); - - - self.hide = self.$element.hide.bind(self.$element); - self.show = function (){ - self.$element.show(); - }; - - process.nextTick(function(){ - self.render(); - }); -} - -module.exports = TimelinePage; diff --git a/src/views/timeline-page/index.less b/src/views/timeline-page/index.less deleted file mode 100644 index 08da4c8..0000000 --- a/src/views/timeline-page/index.less +++ /dev/null @@ -1,42 +0,0 @@ -#activity-page{ - .item.item-icon-right{ - .icon.color-box{ - display: inline-block; - width: 6px; - right: 0px; - } - } - - #timeline-container{ - height:100%; - - text.timeline-label{ - color:white; - font-weight:bolder; - } - svg{ - g.selected{ - rect.foreground{ - box-shadow: 0 0 20px yellow; - } - } - g.activity{ - rect.background{ - fill: #f5f5f5; - } - } - .time-axis{ - path, line{ - fill: none; - stroke: black; - shape-rendering: crisp-edges; - } - text{ - font-family: sans-serif; - font-size: 11px; - } - - } - } - } -} diff --git a/src/views/timeline-page/index.vash b/src/views/timeline-page/index.vash deleted file mode 100644 index 2f69628..0000000 --- a/src/views/timeline-page/index.vash +++ /dev/null @@ -1,7 +0,0 @@ -
    - - -
    diff --git a/src/views/timeline-page/mtouch-events.js b/src/views/timeline-page/mtouch-events.js deleted file mode 100644 index 3e8fbd1..0000000 --- a/src/views/timeline-page/mtouch-events.js +++ /dev/null @@ -1,214 +0,0 @@ -https://gist.githubusercontent.com/eweitnauer/7144421/raw/8b610000737e9c0bf31c1b3f02702528cab51b19/mtouch-events.js - -/// Based on the d3.behavior.drag and d3.behavior.zoom. -mtouch_events = function() { - var event = d3_eventDispatch(mtouch, "tap", "dbltap", "hold", "drag", "mdrag", 'touch', 'release') - ,fingers = [] // array of augmented touches = fingers - ,id2finger = {} // maps ids to fingers - ,last_taps = [] // [{timeStamp: xxx, pos: [x,y]}, ...], used to detect dbltaps - ,mouse_id = 'mouse' - ,tap_max_time = 250 - ,tap_max_dist2 = 10*10 - ,hold_time = 500 - ,hold_max_dist2 = 10*10 - ,dbltap_max_delay = 400 - ,dbltap_max_dist = 20; - - function mtouch() { - this.on("touchstart.mtouch", touchstarted) - .on("mousedown.mtouch", mousedown) - .on("touchmove.mtouch", touchmoved) - .on("touchend.mtouch", touchended) - .on("touchcancel.mtouch", touchended); - } - - mtouch.call = function(f) { - f.apply(mtouch, arguments); return this; - } - - /// On mousedown, start listening for mousemove and mouseup events on the - /// whole window. Also call the touchstarted function. If it was not the left - /// mousebutton that was pressed, do nothing. - function mousedown() { - if (!detectLeftButton(d3.event)) return; - var w = d3.select(window); - var thiz = this, argumentz = arguments; - w.on("mousemove.mtouch", function() { touchmoved.apply(thiz, argumentz) }); - w.on("mouseup.mtouch", function() { - w.on("mousemove.mtouch", null); - w.on("mouseup.mtouch", null); - touchended.apply(thiz, argumentz); - }); - touchstarted.apply(this, arguments); - } - - function touchstarted() { - d3.event.preventDefault(); - var target = this - ,event_ = event.of(target, arguments) - ,touches = get_changed_touches(); - - for (var i=0,N=touches.length; i hold_max_dist2) { - this.cancel_hold(); - } - - if (this.gesture) return; - - event({type: 'drag', finger: this, x: this.pos[0], y: this.pos[1] - ,dx: this.dx, dy: this.dy, fingers: fingers}); - } - - Finger.prototype.end = function(event) { - var dt = d3.event.timeStamp - this.timeStamp0; - if (dt <= tap_max_time && (this.dist_x*this.dist_x+this.dist_y*this.dist_y) <= tap_max_dist2) { - if (match_tap(d3.event.timeStamp, this.pos[0], this.pos[1])) { - event({type: 'dbltap', finger: this, fingers: fingers}); - } else { - event({type: 'tap', finger: this, fingers: fingers}); - } - } - this.cancel_hold(); - } - - function get_changed_touches() { - return d3.event.changedTouches || [{identifier: mouse_id}]; - } - - function detectLeftButton(event) { - if ('buttons' in event) return event.buttons === 1; - else if ('which' in event) return event.which === 1; - else return event.button === 1; - } - - /// Returns true if any tap in the last_taps list is spatially and temporally - /// close enough to the passed time and postion to count as a dbltap. If not, - /// the passed data is added as new tap. All taps that are too old are removed. - function match_tap(timeStamp, x, y) { - var idx = -1, pos = [x,y]; - last_taps = last_taps.filter(function (tap, i) { - if (timeStamp - tap.timeStamp <= dbltap_max_delay - && get_distance(tap.pos, pos) <= dbltap_max_dist) idx = i; - return tap.timeStamp-timeStamp <= dbltap_max_delay && idx !== i; - }); - if (idx === -1) last_taps.push({timeStamp: timeStamp, pos: pos}); - return idx !== -1; - } - - function get_position(container, id) { - if (id === mouse_id) return d3.mouse(container); - else return d3.touches(container).filter(function(p) { return p.identifier === id; })[0]; - } - - function get_distance(p1, p2) { - return Math.sqrt((p1[0]-p2[0])*(p1[0]-p2[0]) + (p1[1]-p2[1])*(p1[1]-p2[1])); - } - - return d3.rebind(mtouch, event, "on"); -}; - -/// Replication of the internal d3_eventDispatch method. -function d3_eventDispatch(target) { - var dispatch = d3.dispatch.apply(this, Array.apply(null, arguments).slice(1)); - - dispatch.of = function(thiz, argumentz) { - return function(e1) { - try { - var e0 = - e1.sourceEvent = d3.event; - e1.target = target; - d3.event = e1; - dispatch[e1.type].apply(thiz, argumentz); - } finally { - d3.event = e0; - } - }; - }; - - return dispatch; -} diff --git a/src/views/upload-dialog/index.js b/src/views/upload-dialog/index.js deleted file mode 100644 index 34a145d..0000000 --- a/src/views/upload-dialog/index.js +++ /dev/null @@ -1,106 +0,0 @@ -require('./index.less'); - -var DB_NAME = 'new_pp_db'; -var PouchDb = require('pouchdb'), - EventEmitter = require('events').EventEmitter, - util = require('util'), - template = require('./index.vash'), - _ = require('lodash'), - $ = require('jquery'), - storage = require('jocal'), - passwordStore = storage.bind(null, 'etho-pw'), - app = require('app')(), - Modal = require('modal'); - -function UploadDialog(){ - EventEmitter.call(this); - var self = this, - $element = $(template({ - url: app.setting('couch-base-url'), - username: app.setting('couch-username'), - password: passwordStore(), - })), - $status = $element.find('.js-status'), - $userName = $element.find('.js-username'), - $password = $element.find('.js-password'), - $url = $element.find('.js-url'), - modal = new Modal({ - title:'Upload', - $content:$element, - hideOkay:true - }); - - modal.on('closed', function(){ - self.emit('closed'); - }); - - self.show = function(){ - modal.show(); - }; - - function _showMessage(selector, text){ - $status.find('.message') - .hide() - .filter(selector) - .show() - .find('span') - .text(text); - } - - var _showWorking = _.partial(_showMessage, '.js-working'), - _showSuccess = _.partial(_showMessage, '.js-success'), - _showError = _.partial(_showMessage, '.js-failure'); - - function _getUrl(){ - var url = $url.val(); - url = url.replace('//', '//'+$userName.val() + ':' + $password.val() + '@'); - console.dir(url); - - return url; - } - - $element.find('.js-upload').click(function(){ - var db = new PouchDb(DB_NAME), - password = $password.val(); - _showWorking('Uploading...'); - - db.replicate.to(_getUrl(), {live:false}) - .on('complete', function(info){ - passwordStore(password); - if (info.docs_written === 0){ - _showSuccess('No new data to upload.'); - } else if (info.docs_written === 1){ - _showSuccess('Upload complete. Sent 1 change.'); - } else { - _showSuccess('Upload complete. Sent ' + info.docs_written + ' changes.'); - } - }) - .on('error', function(err){ - _showError('Upload errror: ' + err.message); - }); - }); - - $element.find('.js-download').click(function(){ - var db = new PouchDb(DB_NAME), - password = $password.val(); - - _showWorking('Downloading...'); - db.replicate.from(_getUrl(), {live: false}) - .on('complete', function(info){ - passwordStore(password); - if (info.docs_written === 0){ - _showSuccess('Already up to date.'); - } else if (info.docs_written === 1){ - _showSuccess('Download complete. Received 1 change.'); - } else { - _showSuccess('Upload complete. Received ' + info.docs_written + ' changes.'); - } - }) - .on('error', function(err){ - _showError('Download errror: ' + err.message); - }); - }); -} - -util.inherits(UploadDialog, EventEmitter); -module.exports = UploadDialog; diff --git a/src/views/upload-dialog/index.less b/src/views/upload-dialog/index.less deleted file mode 100644 index 0361864..0000000 --- a/src/views/upload-dialog/index.less +++ /dev/null @@ -1,10 +0,0 @@ -.sync-dialog{ - .message{ - display: none; - } - .button-bar{ - button{ - margin:4px; - } - } -} diff --git a/src/views/upload-dialog/index.vash b/src/views/upload-dialog/index.vash deleted file mode 100644 index fa92aa4..0000000 --- a/src/views/upload-dialog/index.vash +++ /dev/null @@ -1,39 +0,0 @@ -
    -
    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    -
    - -
      -
    • - Couch URL - -
    • -
    • - Username - -
    • -
    • - Password - -
    • -
    • -
      - - -
      -
    • -
    -
    diff --git a/src/views/view-existing-dialog/index.js b/src/views/view-existing-dialog/index.js deleted file mode 100644 index 26a5744..0000000 --- a/src/views/view-existing-dialog/index.js +++ /dev/null @@ -1,414 +0,0 @@ -require('./index.less'); - -var Modal = require('modal'), - moment = require('moment'), -_ = require('lodash'), -q = require('q'), -$ = require('jquery'), -formBuilder = require('form-builder'), -util = require('util'), -app = require('app')(), -Breadcrumb = require('breadcrumb'), -EventEmitter = require('events').EventEmitter, -template = require('./index.vash'); - -var geolocation = require('geolocation'); - -var CreateSelectMenu = require('../create-select-dialog'); -var TabEdit = require('./tabs/edit/index.js'), -TabMap = require('./tabs/map/index.js'), -TabRemarks = require('./tabs/remarks/index.js'), -TabTimeline = require('./tabs/timeline/index.js'); - -function _getDeviceSettingsObject(){ - var settingsDomain = app.getDomain('_etho-settings'); - var entityManager = settingsDomain.getService('entity-manager'); - - return entityManager.getAll() - .then(function(entities){ - var mySettings = _.find(entities, function(entity){ - return entity.deviceId == device.uuid; - }); - - if (!mySettings) return { deviceId: device.uuid }; - - return mySettings; - }); -} - -function ViewExistingDialog(opts){ - var self = this, - entity, - descManagerCache = {}, - rootEntity = opts.rootEntity || opts.entity, - crumbs = opts.crumbs, - domain, - descManager, - myDomains; - - var tabOptions = { - rootEntity: rootEntity, - }; - - var tabEdit = new TabEdit(tabOptions), - tabMap = new TabMap(tabOptions), - tabRemarks = new TabRemarks(tabOptions), - tabTimeline = new TabTimeline(tabOptions); - - var rootDomain = app.getDomain(rootEntity.domainName); - var geoAware = rootDomain.getService('geo-aware'); - if (geoAware){ - _getDeviceSettingsObject() - .then(function(settings){ - geolocation.watch(function(err, data){ - if (err) return console.log('geo-aware watch error'); - - geoAware.update(rootEntity, data, settings); - }); - }) - .catch(function(err){ - console.log('error getting device settings'); - console.error(err); - }); - } - - EventEmitter.call(self); - - var $content = $(template({ - isNew: true, - crumbs: crumbs, - })), - $tabContainer = $content.find('.js-tabcontainer'); - - _changeEntity(opts.entity || opts.rootEntity); - - function _getColor(entity){ - var domain = app.getDomain(entity.domainName), - service; - - if (domain) - service = domain.getService('color'); - - return service || 'pink'; - } - - crumbs = _.chain(crumbs) - .toArray() - .push({context: entity, label:_getLabel(entity), color: _getColor(entity)}) - .value(); - - var breadcrumb = new Breadcrumb({crumbs: crumbs}); - - breadcrumb.on('close', function(data){ - modal.remove(); - }); - - breadcrumb.on('selection', function(data){ - if (!_changeEntity(data.context)) return; - - _updateAddButton(); - }); - - function _changeEntity(entityToLoad){ - if (entityToLoad == entity) return false; - - if (!entityToLoad.domainName) return window.alert('missing domainName property'); - var myDomain = app.getDomain(entityToLoad.domainName); - if (!myDomain) return window.alert('cannot find domain for ' + entityToLoad.domainName); - - entity = entityToLoad; - domain = myDomain; - - descManager = descManagerCache[entity.domainName] = descManagerCache[entity.domainName] || domain.getService('description-manager'); - - myDomains = domain.getChildren(); - - // load the description managers now because they are slow - myDomains.forEach(function(myDomain){ - if (descManagerCache[myDomain.name]) return; - - descManagerCache[myDomain.name] = myDomain.getService('description-manager'); - }); - - var ctx = createContext(entity); - - [tabEdit, tabRemarks, tabTimeline, tabMap] - .forEach(function(tab){ - tab.setContext(ctx); - }); - - _updateAddButton(); - - return true; - } - - function _getLabel(myEntity){ - return descManager.getShortDescription(myEntity); - } - - var modal; - - $tabContainer.css('height', (window.innerHeight-88)+'px'); - var $tabHeaderContainer = $content.find('.js-etho-tabs'); - - [tabEdit, tabRemarks, tabTimeline, tabMap] - .forEach(function(tab, i){ - var $header = $('
  • ') - .addClass('js-etho-tab') - .attr('data-tabclass', tab.label) - .text(tab.label); - - if (i === 0) { - $header.addClass('selected'); - tab.$element.show(); - } else { - tab.$element.hide(); - } - - $tabHeaderContainer.append($header); - $tabContainer.append(tab.$element); - - $header.on('click', function(){ - _tabClick.call(this, arguments[0], tab); - }); - }); - - var previousTab; - function _tabClick(ev, clickedTab){ - var $this = $(this); - - if (previousTab && _.isFunction(previousTab.loseFocus)) - previousTab.loseFocus(); - - - $this.siblings().removeClass('selected'); - $this.addClass('selected'); - $tabContainer.children().hide(); - - if (_.isFunction(clickedTab.show)){ - clickedTab.show(); - } else { - clickedTab.$element.show(); - } - - previousTab = clickedTab; - } - - modal = new Modal({ - $header: breadcrumb.$element, - $content: $content, - hideOkay: true, - backAction: opts.backAction, - hideClose: true, - }); - - modal.on('closed', function(){ - self.emit('closed'); - }); - - function descendContext(newEntity){ - _changeEntity(newEntity); - - tabMap.descend(newEntity); - - - breadcrumb.add({ - context: newEntity, - label: _getLabel(newEntity), - color: _getColor(newEntity), - }); - } - - function createContext(entity){ - return { - descend: descendContext, - entity: entity, - domain: domain, - descManager: descManager, - getChildren: function(myEntity){ - return _.chain(myEntity || entity) - .values() - .filter(_.isArray) - .flatten() - .filter(function(val){return val.domainName;}) - .value(); - }, - getShortDescription: function(entity){ - var descManager = descManagerCache[entity.domainName]; - if (!descManager) return entity._id || entity.id; - return descManager.getShortDescription(entity); - }, - }; - } - - function _updateAddButton(){ - var $btnAddChild = $content.find('.js-child-add'); - $btnAddChild.text('Add'); - - var popupChildDomains = myDomains.filter(function(d){return !d.inline;}); - - if (_.size(popupChildDomains) == 1){ - // $btnAddChild.text('Add ' + popupChildDomains[0].label); - $btnAddChild.removeClass('disabled'); - } else if (_.size(popupChildDomains) === 0){ - $btnAddChild.addClass('disabled'); - } else { - $btnAddChild.removeClass('disabled'); - } - } - - this.show = function(){ - _updateAddButton(); - - var form = formBuilder.buildDataEntryForm(domain); - - var $btnSnapshot = $content.find('.js-snapshot'), - $btnFollow = $content.find('.js-follow'), - $btnAddChild = $content.find('.js-child-add'), - $btnRemove = $content.find('.js-view-remove'); - - - $btnRemove.click(function(){ - if (rootEntity!=entity) return window.alert('not implemeneted yet'); - - console.log('removing'); - var entityManager = domain.getService('entity-manager'); - - entityManager.remove(entity) - .then(function(){ - self.emit('removed', entity); - self.hide(); - }); - }); - - $btnAddChild.click(function(ev){ - ev.preventDefault(); - - if ($(this).hasClass('disabled')) return console.log('ignore click'); - - var descMgr = domain.getService('description-manager'); - var title = 'Add a child to ' + descMgr.getShortDescription(entity); - - var m = new CreateSelectMenu({ - title: title, - domains: myDomains.filter(function(d){return !d.inline;}), - crumbs: _.chain(crumbs).clone().push({label: 'Add child'}).value(), - }); - - m.on('created', function(child){ - debugger - var childDomain = app.getDomain(child.domainName), - entityManager = childDomain.getService('entity-manager'); - - entityManager.addToParent(entity, child); - - _doSave() - .then(function(info){ - rootEntity._id = info.id; - rootEntity._rev = info.rev; - - _changeEntity(child); - _updateAddButton(); - breadcrumb.add({context:child, label: _getLabel(child), color: _getColor(child)}); - }) - .catch(function(err){ - console.error(err); - }); - - }); - m.show(ev); - }); - - function _handleSave(keepOpen){ - var now = Date.now(); - - var data = { - domainName: domain.name, - beginTime: now, - endTime: keepOpen ? null : now, - }; - - data = _.extend(data, form.getData()); - - var activityService = domain.getService('activity'); - if (activityService){ - activityService.start(data); - } - - var eventService = domain.getService('event'); - if (eventService){ - eventService.create(data); - } - - var entityManager = domain.getService('entity-manager'); - - return entityManager.save(data) - .then(function(savedData){ - self.emit('new', data); - - console.log('saved data: '); - console.dir(savedData); - - return data; - }); - } - - function _createButtonClick(keepActivityRunning, ev){ - console.log('gotta click'); - - var $this = $(this), - oldText = $this.text(); - - $this.parent() - .find('input,button') - .attr('disabled', 'disabled'); - - $this.text('Please wait...'); - - ev.preventDefault(); - return _handleSave(keepActivityRunning) - .then(function(data){ - - }) - .catch(function(err){ - console.error(err); - - alert('error'); - }) - .finally(function(){ - $this.text(oldText); - $this.parent() - .find('input,button') - .removeAttr('disabled'); - }); - } - - - $btnSnapshot.click(_.partial(_createButtonClick, false)); - $btnFollow.click(_.partial(_createButtonClick, true)); - $btnAddChild.click(function(){ - }); - - modal.show(); - }; - - this.hide = modal.hide.bind(modal); - this.remove = modal.remove.bind(modal); - - function _doSave(){ - var rootDomain = app.getDomain(rootEntity.domainName), - rootEntityManager = rootDomain.getService('entity-manager'); - - return rootEntityManager.save(rootEntity) - .then(function(info){ - rootEntity._id = info.id; - rootEntity._rev = info.rev; - - return info; - }); - } -} - - -util.inherits(ViewExistingDialog, EventEmitter); -module.exports = ViewExistingDialog; diff --git a/src/views/view-existing-dialog/index.less b/src/views/view-existing-dialog/index.less deleted file mode 100644 index ed81ee6..0000000 --- a/src/views/view-existing-dialog/index.less +++ /dev/null @@ -1,209 +0,0 @@ - -.loading-message{ - color: lightgray; -} -.activity-form{ - - .etho-header{ - background-color: #f8f8f8; - padding-top:8px; - - .etho-tabs{ - @borderColor: #a4a4a4; - background-color: #f8f8f8; - color: #444; - padding-left: 4px; - border-bottom: 1px solid @borderColor; - height: 37px; - - li{ - display: inline-block; - width: 80px; - padding: 6px; - max-width: 105px; - text-align:center; - position: relative; - top: 3px; - } - li.selected{ - border-radius: 6px 6px 0 0; - border: 1px solid @borderColor; - border-bottom: none; - font-weight: bold; - } - } - - .buttons{ - position: absolute; - right: 10px; - top: 8px; - } - - } - - .etho-tabcontainer{ - position: relative; - overflow: hidden; - .tab-map{ - overflow: hidden; - } - .tab-map, - .tab-remarks, - .tab-edit{ - display:none; - } - .tab-remarks{ - position: absolute; - top: 0px; - bottom: 0px; - width:100%; - height:100%; - textarea{ - resize: none; - width:100%; - height:100%; - overflow-y: scroll; - } - } - } - - .button-container{ - background-color: #f5f5f5; - - position: relative; - left:0; - right:0; - bottom:0; - - .button-bar{ - padding:20px; - .button-tool{ - opacity: .7 - } - - } - } - .long-description-container{ - margin: 8px; - } -} - - - -.toolbar{ - height: 36px; - .child-add{ - margin-top: 10px; - margin-right: 10px; - padding-left: 10px; - padding-right: 10px; - float:right; - } -} -.breadcrumb { - /*centering*/ - display: inline-block; - width:100%; - box-shadow: 0 0 15px 1px rgba(0, 0, 0, 0.35); - overflow: hidden; - border-radius: 5px; -} - -.breadcrumb a { - text-decoration: none; - outline: none; - display: block; - float: left; - font-size: 12px; - line-height: 36px; - color: white; - /*need more margin on the left of links to accomodate the numbers*/ - padding: 0 10px 0 30px; - background: #666; - background: linear-gradient(#666, #333); - position: relative; -} -/*since the first link does not have a triangle before it we can reduce the left padding to make it look consistent with other links*/ -.breadcrumb a:first-child { - padding-left: 16px; - border-radius: 5px 0 0 5px; /*to match with the parent's radius*/ -} -.breadcrumb a:first-child:before { - left: 14px; -} -.breadcrumb a:last-child { - border-radius: 0 5px 5px 0; /*this was to prevent glitches on hover*/ - padding-right: 20px; -} - -/*hover/active styles*/ -.breadcrumb a.active{ - background: #333; - background: linear-gradient(#333, #000); -} -.breadcrumb a.active:after{ - background: #333; - background: linear-gradient(135deg, #333, #000); -} - -/*adding the arrows for the breadcrumbs using rotated pseudo elements*/ -.breadcrumb a:after { - content: ''; - position: absolute; - top: 0; - right: -18px; /*half of square's length*/ - /*same dimension as the line-height of .breadcrumb a */ - width: 36px; - height: 36px; - /*as you see the rotated square takes a larger height. which makes it tough to position it properly. So we are going to scale it down so that the diagonals become equal to the line-height of the link. We scale it to 70.7% because if square's: - length = 1; diagonal = (1^2 + 1^2)^0.5 = 1.414 (pythagoras theorem) - if diagonal required = 1; length = 1/1.414 = 0.707*/ - transform: scale(0.707) rotate(45deg); - /*we need to prevent the arrows from getting buried under the next link*/ - z-index: 1; - /*background same as links but the gradient will be rotated to compensate with the transform applied*/ - background: #666; - background: linear-gradient(135deg, #666, #333); - /*stylish arrow design using box shadow*/ - box-shadow: - 2px -2px 0 2px rgba(0, 0, 0, 0.4), - 3px -3px 0 2px rgba(255, 255, 255, 0.1); - /* - 5px - for rounded arrows and - 50px - to prevent hover glitches on the border created using shadows*/ - border-radius: 0 5px 0 50px; -} -/*we dont need an arrow after the last link*/ -.breadcrumb a:last-child:after { - content: none; -} -/*we will use the :before element to show numbers*/ -.breadcrumb a:before { - /*some styles now*/ - border-radius: 100%; - width: 20px; - height: 20px; - line-height: 20px; - margin: 8px 0; - position: absolute; - top: 0; - left: 30px; - background: #444; - background: linear-gradient(#444, #222); - font-weight: bold; -} - - -.flat a, .flat a:after { - background: white; - color: black; - transition: all 0.5s; -} -.flat a:before { - background: white; - box-shadow: 0 0 0 1px #ccc; -} -.flat a:hover, .flat a.active, -.flat a:hover:after, .flat a.active:after{ - background: #9EEB62; -} diff --git a/src/views/view-existing-dialog/index.vash b/src/views/view-existing-dialog/index.vash deleted file mode 100644 index 3e79cf0..0000000 --- a/src/views/view-existing-dialog/index.vash +++ /dev/null @@ -1,10 +0,0 @@ -
    -
    -
      - - - -
      -
      -
      -
      diff --git a/src/views/view-existing-dialog/tabs/edit/index.js b/src/views/view-existing-dialog/tabs/edit/index.js deleted file mode 100644 index d4eaa9f..0000000 --- a/src/views/view-existing-dialog/tabs/edit/index.js +++ /dev/null @@ -1,230 +0,0 @@ -require('./index.less'); - -var $ = require('jquery'), - velocity = require('velocity-animate'), - Hammer = require('hammerjs'), - _ = require('lodash'), - EditExistingForm = require('edit-existing-form'), - tmpl = require('./index.vash'), - inlineChildTmpl = require('./inline-child.vash'), - PopupButtons = require('popup-buttons'), - scrollTmpl = require('./scroll.vash'), - Scroll = require('iscroll'); - -var EventEmitter = require('events').EventEmitter; -var util = require('util'); - - -function _createChildCollectionData(parentDomain, childDomains){ - var lookup = _.chain(childDomains) - .map(function(d){ - // sorry, cheap hack todo: hide this somewhere - var parentPropertyName = d.getService('parent-'+parentDomain.name); - - return { - collectionName: parentPropertyName, - domain: d, - }; - }) - .groupBy(function(d){return d.collectionName;}) - .value(); - - return _.keys(lookup) - .map(function(collectionName){ - return { - collectionName: collectionName, - domainNames:_.map(lookup[collectionName], function(d){return d.domain.name;}).join(','), - }; - }); -} - -function EditTab(){ - EventEmitter.call(this); - - var self = this, editForm; - var _context; - self.label = 'Data'; - self.$element = $(scrollTmpl({})); - - - self.setContext = function(ctx){ - _context = ctx; - editForm = new EditExistingForm({entity: ctx.entity}); - editForm.updateFields(); - - var childDomains = ctx.domain.getChildren(); - - var inlineChildDomains = childDomains.filter(function(d){return d.inline;}); - var inlineChildren = _createChildCollectionData(ctx.domain, inlineChildDomains); - - var standardChildDomains = childDomains.filter(function(d){return !d.inline;}); - var standardChildren = _createChildCollectionData(ctx.domain, standardChildDomains); - - standardChildren.forEach(function(item){ - item.entities = (ctx.entity[item.collectionName] || []) - .map(function(child){ - return { - _id: child._id || child.id, - domainLabel: child.domainName, - entityLabel: ctx.getShortDescription(child), - }; - }); - }); - - self.$element - .find('.scroller') - .empty() - .append(tmpl({ - childData: inlineChildren, - standardChildren: standardChildren, - label: ctx.domain.label, - })); - - self.$element - .find('.edit-form') - .empty() - .append(editForm.$element); - - self.$element - .css('width', window.innerWidth) - .css('height', window.innerHeight-(96+44)); - - var scroll = new Scroll(self.$element[0], { - mouseWheel: true, - scrollbars: true, - }); - - - function _collapseChildren(collectionName){ - var $accordians = self.$element.find('.js-collection-'+ collectionName); - - var $icons = $accordians.find('i.js-expand-icon'); - var $itemContainers = $accordians.find('.item-container'); - - $itemContainers.find('.js-expand-toggle').data('collapsed', true); - velocity($itemContainers.find('.js-fields'), 'slideUp', {duration: 300}); - $icons.removeClass('ion-arrow-down-b').addClass('ion-arrow-right-b'); - } - - function _addInlineChild(collectionName, domainName){ - _collapseChildren(collectionName); - var domain = _.find(childDomains, function(d){return d.name == domainName;}), - $containerLi = $('
    • ') - .addClass('item') - .addClass('item-container') - //.addClass('header') - .append(inlineChildTmpl({domainLabel: domain.label || domain.name})); - - var childForm = new EditExistingForm({entity: {domainName: domain.name}}); - childForm.$element.addClass('js-fields'); - $containerLi.append(childForm.$element); - - var $ul = self.$element.find('.js-collection-'+ collectionName); - $ul.closest('ul') - .append($containerLi); - - var $header = $containerLi.find('.js-expand-toggle'); - - var headerHammer = new Hammer($header[0]); - headerHammer.on('press', function(ev){ - headerHammer.on('pressup', function(){ - setTimeout(function(){ - popupButtons.opened(); - }, 10); - }); - - var popupButtons = new PopupButtons({ - items: [{ value: 'remove', label: 'Remove', 'class': 'button-assertive'}], - }); - - popupButtons.on('click', function(key){ - if (key == 'remove') - velocity($header.closest('.item-container'), 'fadeOut', {duration:400}); - - popupButtons.remove(); - }); - - popupButtons.show(ev.pointers[0], true); - }); - - headerHammer - .on('tap', function(){ - var DURATION = 200; - var $this = $header, - $icon = $this.find('i'), - $accordian = $this.closest('.accordian'); - - var $allIcons = $accordian.find('i.js-expand-icon').not($icon); - var $allItemContainers = $accordian - .find('.item-container') - .not($containerLi); - - $allItemContainers.find('.js-expand-toggle').data('collapsed', true); - velocity($allItemContainers.find('.js-fields'), 'slideUp', {duration: DURATION}); - $allIcons.removeClass('ion-arrow-down-b').addClass('ion-arrow-right-b'); - - var isCollapsed = $this.data('collapsed'); - if (isCollapsed) { - velocity(childForm.$element, 'slideDown', {duration: DURATION}); - $icon.addClass('ion-arrow-down-b').removeClass('ion-arrow-right-b'); - } else { - velocity(childForm.$element, 'slideUp', {duration: DURATION}); - $icon.removeClass('ion-arrow-down-b').addClass('ion-arrow-right-b'); - } - - $this.data('collapsed', !isCollapsed); - }); - - setTimeout(function(){ - scroll.refresh(); - }, 100); - } - - self.$element.find('.js-inline-add') - .on('click', function(ev){ - var $this = $(this), - collectionName = $this.data('collection'), - domainNames = $this.data('domains').split(','), - domains = childDomains.filter(function(d){return _.contains(domainNames, d.name);}); - - var popupButtons = new PopupButtons({ - items: domains.map(function(d){ return {value: d.name, label: d.label};}), - }); - - popupButtons.on('click', function(domainName){ - _addInlineChild(collectionName, domainName); - popupButtons.remove(); - }); - - popupButtons.show(ev); - }); - - }; - - self.$element.on('click', '.js-child-link', function(){ - var $this = $(this), - collectionName = $this.data('collection'), - _id = $this.data('id'); - - var child = _.find(_context.entity[collectionName], function(c){ - return (c._id || c.id) == _id; - }); - _context.descend(child); - }); - - self.loseFocus = function(){ - editForm.updateFields(); - - // _doSave() - // .then(function(){ - // _update(true); - // }) - // .catch(function(err){ - // console.error(err); - // }); - }; - -} - -util.inherits(EditTab, EventEmitter); -module.exports = EditTab; diff --git a/src/views/view-existing-dialog/tabs/edit/index.less b/src/views/view-existing-dialog/tabs/edit/index.less deleted file mode 100644 index 77cf8df..0000000 --- a/src/views/view-existing-dialog/tabs/edit/index.less +++ /dev/null @@ -1,49 +0,0 @@ -.section-header{ - margin-bottom: -21px; - text-transform: capitalize; -} -.accordian{ - .header{ - margin-bottom: 1px; - text-transform: capitalize; - - .button-small.header-button{ - min-width: 28px; - min-height: 20px; - } - } - .item-container{ - - margin-top: 2px; - padding: 0; - border: none; - - li{ - border-top: 1px solid #ddd; - } - - - .form-builder{ - .list-inset{ - margin-top: 0; - } - } - .etho-inline-header{ - margin-bottom: 1px; - margin-top: 0; - i.ion{ - min-width: 12px; - } - - li{ - padding-left: 12px; - } - } - } - - .item-container:first-child{ - .etho-inline-header{ - margin-top: 20px; - } - } -} diff --git a/src/views/view-existing-dialog/tabs/edit/index.vash b/src/views/view-existing-dialog/tabs/edit/index.vash deleted file mode 100644 index f5c2119..0000000 --- a/src/views/view-existing-dialog/tabs/edit/index.vash +++ /dev/null @@ -1,34 +0,0 @@ -
      -
        -
      • - @model.label Details -
      • -
      -
      -
      - - @model.standardChildren.forEach(function(data){ -
        -
      • - @data.collectionName -
      • - @data.entities.forEach(function(childEntity){ - - }) -
      - }) - - @model.childData.forEach(function(data){ -
        -
      • - @data.collectionName - -
      • -
      - }) -
      diff --git a/src/views/view-existing-dialog/tabs/edit/inline-child.vash b/src/views/view-existing-dialog/tabs/edit/inline-child.vash deleted file mode 100644 index 894a058..0000000 --- a/src/views/view-existing-dialog/tabs/edit/inline-child.vash +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/src/views/view-existing-dialog/tabs/edit/scroll.vash b/src/views/view-existing-dialog/tabs/edit/scroll.vash deleted file mode 100644 index e1fe902..0000000 --- a/src/views/view-existing-dialog/tabs/edit/scroll.vash +++ /dev/null @@ -1,4 +0,0 @@ -
      -
      -
      -
      diff --git a/src/views/view-existing-dialog/tabs/map/index.js b/src/views/view-existing-dialog/tabs/map/index.js deleted file mode 100644 index b66a133..0000000 --- a/src/views/view-existing-dialog/tabs/map/index.js +++ /dev/null @@ -1,84 +0,0 @@ -var $ = require('jquery'), - _ = require('lodash'), - MapView = require('map'); - - -var tmpl = require('./index.vash'); - -function MapTab(){ - var self = this, - _context; - var map = new MapView(); - var L = map.getLeaflet(); - - self.label = 'Map'; - - self.$element = $(tmpl({})); - self.$element.append(map.$element); - - var lmap = map.getLeafletMap(); - - self.setContext = function(ctx){ - _context = ctx; - }; - - var geojsonMarkerOptions = { - radius: 8, - fillColor: "#ff7800", - color: "#000", - weight: 1, - opacity: 1, - fillOpacity: 0.8 - }; - - function _renderChildren(entity, depth){ - var children = _context.getChildren(entity); - - var arr = []; - _.chain(children) - .toArray() - .value() - .forEach(function(child){ - _.values(child.geo) - .forEach(function(geojson){ - var geoJsonLayer = L.geoJson(geojson, { - //style: GEOJSON_STYLE, - pointToLayer: function (feature, latlng) { - var options = _.extend({draggable: true}, geojsonMarkerOptions); - debugger - var marker = L.circleMarker(latlng, options); - marker.bindPopup('this is a test'); - return marker; - }, - }); - - arr.push(geoJsonLayer); - }); - }); - - var group = L.layerGroup(arr); - group.addTo(lmap); - } - - self.descend = function(){ - }; - - var path; - self.show = function(){ - self.$element.show(); - - if (!path){ - path = L.geoJson(_context.entity.geo.footprint, { - //style: GEOJSON_STYLE, - }); - path.addTo(lmap); - } - //var children = _context.getChildren(); - _renderChildren(_context.entity, 0); - map.show(); - }; -} - -module.exports = MapTab; - - diff --git a/src/views/view-existing-dialog/tabs/map/index.vash b/src/views/view-existing-dialog/tabs/map/index.vash deleted file mode 100644 index b9571d4..0000000 --- a/src/views/view-existing-dialog/tabs/map/index.vash +++ /dev/null @@ -1,2 +0,0 @@ -
      -
      diff --git a/src/views/view-existing-dialog/tabs/remarks/index.js b/src/views/view-existing-dialog/tabs/remarks/index.js deleted file mode 100644 index 301fd1b..0000000 --- a/src/views/view-existing-dialog/tabs/remarks/index.js +++ /dev/null @@ -1,39 +0,0 @@ -var insertAtCaret = require('insert-at-caret'), - tmpl = require('./index.vash'), - $ = require('jquery'), - moment = require('moment'); - - -function Remarks(){ - var self = this, - _entity; - - self.$element = $(tmpl({})); - self.label = 'Remarks'; - - var $remarks = self.$element.find('textarea'); - - $remarks.css('height', (window.innerHeight-(88+49))+'px'); //sorry - - self.$element.find('.js-timestamp').click(function(){ - insertAtCaret($remarks[0], moment().format(' HH:mm ')); - }); - - self.setContext = function(ctx){ - _entity = ctx.entity; - }; - - self.loseFocus = function(){ - _entity.remarks = self.$element.find('textarea').val(); - - // _doSave() - // .then(function(){ - // _update(true); - // }) - // .catch(function(err){ - // console.error(err); - // }); - }; -} - -module.exports = Remarks; diff --git a/src/views/view-existing-dialog/tabs/remarks/index.vash b/src/views/view-existing-dialog/tabs/remarks/index.vash deleted file mode 100644 index 95dc57e..0000000 --- a/src/views/view-existing-dialog/tabs/remarks/index.vash +++ /dev/null @@ -1,8 +0,0 @@ -
      - -
      - - - -
      -
      diff --git a/src/views/view-existing-dialog/tabs/timeline/index.js b/src/views/view-existing-dialog/tabs/timeline/index.js deleted file mode 100644 index d4d7a69..0000000 --- a/src/views/view-existing-dialog/tabs/timeline/index.js +++ /dev/null @@ -1,62 +0,0 @@ -var $ = require('jquery'), - util = require('util'), - createTimeline = require('timeline'), - EventEmitter = require('events').EventEmitter, - tmpl = require('./index.vash'); - -function TimelineTab(){ - var self = this, - _context; - - self.label = 'Timeline'; - - EventEmitter.call(self); - self.$element = $(tmpl({})); - - var timeline = createTimeline({ - height: (window.innerHeight-175), - //getColor: function(){return 'red';}, - }); - - timeline.on('activity-click', function(d){ - _context.descend(d); - }); - - self.$element.find('.js-framework-timeline-container') - .append(timeline.element); - - function _renderTimeline(){ - var children = _getChildren(); - - timeline.clear(); - timeline.add(children); - } - function _setTitleContent(){ - self.$element.find('.js-long-description-container') - .html('

      Loading...

      '); - - _context.descManager.getLongDescription(_context.entity) - .then(function(description){ - self.$element.find('.js-long-description-container').html(description); - }) - .catch(function(err){ - console.error(err); - }); - } - - function _getChildren(){ - var children = _context.getChildren(); - return children; - } - - self.setContext = function(ctx){ - _context = ctx; - - _setTitleContent(); - _renderTimeline(); - }; - -} - -util.inherits(TimelineTab, EventEmitter); -module.exports = TimelineTab; diff --git a/src/views/view-existing-dialog/tabs/timeline/index.vash b/src/views/view-existing-dialog/tabs/timeline/index.vash deleted file mode 100644 index f4ac23f..0000000 --- a/src/views/view-existing-dialog/tabs/timeline/index.vash +++ /dev/null @@ -1,16 +0,0 @@ -
      -
      - i'm a place holder. -
      - -
      -
      - - - - - - - - -