HTML preprocessors can make writing HTML more powerful or convenient. For instance, Markdown is designed to be easier to write and read for text documents and you could write a loop in Pug.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. So you don't have access to higher-up elements like the <html>
tag. If you want to add classes there that can affect the whole document, this is the place to do it.
In CodePen, whatever you write in the HTML editor is what goes within the <body>
tags in a basic HTML5 template. If you need things in the <head>
of the document, put that code here.
The resource you are linking to is using the 'http' protocol, which may not work when the browser is using https.
CSS preprocessors help make authoring CSS easier. All of them offer things like variables and mixins to provide convenient abstractions.
It's a common practice to apply CSS to a page that styles elements such that they are consistent across all browsers. We offer two of the most popular choices: normalize.css and a reset. Or, choose Neither and nothing will be applied.
To get the best cross-browser support, it is a common practice to apply vendor prefixes to CSS properties and values that require them to work. For instance -webkit-
or -moz-
.
We offer two popular choices: Autoprefixer (which processes your CSS server-side) and -prefix-free (which applies prefixes via a script, client-side).
Any URL's added here will be added as <link>
s in order, and before the CSS in the editor. You can use the CSS from another Pen by using it's URL and the proper URL extention.
You can apply CSS to your Pen from any stylesheet on the web. Just put a URL to it here and we'll apply it, in the order you have them, before the CSS in the Pen itself.
You can also link to another Pen here (use the .css
URL Extension) and we'll pull the CSS from that Pen and include it. If it's using a matching preprocessor, use the appropriate URL Extension and we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
JavaScript preprocessors can help make authoring JavaScript easier and more convenient.
Babel includes JSX processing.
Any URL's added here will be added as <script>
s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.
You can apply a script from anywhere on the web to your Pen. Just put a URL to it here and we'll add it, in the order you have them, before the JavaScript in the Pen itself.
If the script you link to has the file extension of a preprocessor, we'll attempt to process it before applying.
You can also link to another Pen here, and we'll pull the JavaScript from that Pen and include it. If it's using a matching preprocessor, we'll combine the code before preprocessing, so you can use the linked Pen as a true dependency.
Search for and use JavaScript packages from npm here. By selecting a package, an import
statement will be added to the top of the JavaScript editor for this package.
Using packages here is powered by Skypack, which makes packages from npm not only available on a CDN, but prepares them for native JavaScript ES6 import
usage.
All packages are different, so refer to their docs for how they work.
If you're using React / ReactDOM, make sure to turn on Babel for the JSX processing.
If active, Pens will autosave every 30 seconds after being saved once.
If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.
If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.
Visit your global Editor Settings.
<html lang="en" ng-app="app">
<head>
<meta charset="utf-8">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="mobile-web-app-capable" content="yes">
<title>My App</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.2.20/angular.min.js"></script>
<script>
angular.module('app', ['onsen']);
angular.module('app').controller('AppController', function($scope) {
$scope.doSomething = function() {
setTimeout(function() {
alert('tapped');
}, 100);
};
});
</script>
<style>
.tab {
line-height: 1;
}
.tab-icon {
font-size: 24px;
padding: 0;
margin: 0;
vertical-align: top;
line-height: 28px;
}
.tab-label {
line-height: 11px;
vertical-align: top;
font-size: 11px;
}
.profile-wrapper {
padding: 16px 10px 0 10px;
}
.profile-image {
width: 50px;
height: 50px;
border-radius: 100%;
-webkit-border-radius: 100%;
background-color: #ccc;
}
.profile-name {
font-size: 18px;
padding: 4px 0 2px 0;
}
.profile-email {
font-size: 15px;
opacity: 0.4;
}
.switch--list-item {
margin-right: 0px;
}
.settings-header {
font-weight: 500;
font-size: 14px;
opacity: 0.4;
padding: 10px 0 0px 10px;
margin-bottom: -4px;
}
.settings-list {
margin-top: 10px;
}
.item {
padding: 10px;
line-height: 1;
}
.item-thum {
background-color: #ccc;
width: 50px;
height: 50px;
border-radius: 100%;
-webkit-border-radius: 100%;
}
.item-title {
font-size: 15px;
font-weight: 500;
}
.item-desc {
font-size: 14px;
color: #666;
line-height: 1.3;
margin: 4px 0 0 0;
padding: 0 30px 0 0;
}
.item-label {
font-size: 12px;
color: #999;
float: right;
}
</style>
</head>
<body ng-controller="AppController">
<ons-tabbar>
<ons-tabbar-item active="true" page="home.html">
<div class="tab">
<ons-icon icon="ion-home" class="tab-icon"></ons-icon>
<div class="tab-label">Timeline</div>
</div>
</ons-tabbar-item>
<ons-tabbar-item page="settings.html">
<div class="tab">
<ons-icon icon="ion-gear-a" class="tab-icon"></ons-icon>
<div class="tab-label">Settings</div>
</div>
</ons-tabbar-item>
</ons-tabbar>
<ons-template id="home.html">
<ons-navigator>
<ons-page>
<ons-toolbar>
<div class="left"><ons-toolbar-button ng-click="doSomething()"><ons-icon icon="ion-compose"></ons-icon></ons-toolbar-button></div>
<div class="center">Home</div>
<div class="right"></div>
</ons-toolbar>
<ons-list style="margin: -1px 0">
<ons-list-item modifier="chevron" class="item" ng-repeat="i in [1,2,3,4,5]" ng-click="doSomething()">
<ons-row>
<ons-col width="60px">
<div class="item-thum"></div>
</ons-col>
<ons-col>
<header>
<span class="item-title">Rorem Ipsum</span>
<span class="item-label">5h</span>
</header>
<p class="item-desc">Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>
</ons-col>
</ons-row>
</ons-list-item>
</ons-list>
</ons-page>
</ons-navigator>
</ons-template>
<ons-template id="settings.html">
<ons-page>
<ons-toolbar>
<div class="center">Settings</div>
</ons-toolbar>
<ons-row class="profile-wrapper">
<ons-col width="60px" class="profile-image-wrapper">
<div class="profile-image"></div>
</ons-col>
<ons-col>
<div class="profile-name">Foobar</div>
<div class="profile-email">foobar@example.com</div>
</ons-col>
</ons-row>
<div class="settings-header">Share</div>
<ons-list modifier="inset" class="settings-list">
<ons-list-item>
Twitter
<ons-switch modifier="list-item"></ons-switch>
</ons-list-item>
<ons-list-item>
Facebook
<ons-switch modifier="list-item" checked></ons-switch>
</ons-list-item>
</ons-list>
<div class="settings-header">Others</div>
<ons-list modifier="inset" class="settings-list">
<ons-list-item modifier="chevron" ng-click="doSomething()">
Terms of Service
</ons-list-item>
<ons-list-item modifier="chevron" ng-click="doSomething()">
Privacy Policy
</ons-list-item>
</ons-list>
<br>
<ons-list modifier="inset" class="settings-list">
<ons-list-item modifier="tappable" ng-click="doSomething()">
<ons-icon icon="ion-log-out" style="opacity: 0.8"></ons-icon>
Sign out
</ons-list-item>
</ons-list>
<br>
</ons-page>
</ons-template>
</body>
</html>
/*! onsenui - v1.1.4 - 2014-09-22 */
/*
Copyright 2013-2014 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
@import url("font_awesome/css/font-awesome.min.css");
@import url("ionicons/css/ionicons.min.css");
/* cutsom elements */
ons-page, ons-screen, ons-navigator,
ons-split-view, ons-sliding-menu, ons-tabbar,
ons-gesture-detector {
display: block;
}
ons-navigator,
ons-tabbar {
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 2;
}
* {
-webkit-touch-callout: none;
-webkit-user-select: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
}
::-webkit-scrollbar {
display: none;
}
input, textarea {
-webkit-user-select: auto;
}
.page {
background-color: transparent !important;
background: transparent !important;
}
.page__status-bar-fill ~ .page__content {
padding-top: 20px;
}
ons-toolbar ~ .page__content {
padding-top: 44px;
}
.page__status-bar-fill ~ ons-toolbar {
height: 64px;
}
.page__status-bar-fill ~ ons-toolbar > .center,
.page__status-bar-fill ~ ons-toolbar > .left,
.page__status-bar-fill ~ ons-toolbar > .right {
padding-top: 20px;
}
.page__status-bar-fill ~ ons-toolbar ~ .page__content {
padding-top: 64px;
}
.page__content {
overflow: scroll;
-webkit-overflow-scrolling: touch;
z-index: 0;
}
.page__bottom-bar-fill ~ .page__content {
margin-bottom: 44px;
}
.page__content::-webkit-scrollbar {
display: none;
}
.tab-bar__status-bar-fill ~ .tab-bar--top__content {
top: 71px;
}
.tab-bar__status-bar-fill ~ .tab-bar--top {
padding-top: 22px;
}
.effeckt-button {
position: relative;
font-family: inherit;
cursor: pointer;
-webkit-appearance: none;
-webkit-font-smoothing: antialiased;
}
.effeckt-button[data-loading] {
cursor: default;
}
.effeckt-button > .spinner {
position: absolute;
width: 26px;
height: 13px;
top: 50%;
margin-top: -12px;
opacity: 0;
border: 3px solid white;
border-bottom: 0;
-webkit-border-radius: 40px 40px 0 0;
border-radius: 40px 40px 0 0;
-webkit-transform-origin: bottom center;
background: transparent;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.effeckt-button[data-loading] > .spinner {
-webkit-animation: spinner .8s infinite linear;
-o-animation: spinner .8s infinite linear;
-moz-animation: spinner .8s infinite linear;
animation: spinner .8s infinite linear;
}
@-webkit-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
50% {
-webkit-transform: rotate(180deg);
transform: rotate(180deg);
}
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-o-keyframes spinner {
0% {
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
50% {
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
100% {
-o-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@-moz-keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
-moz-transform: rotate(0deg);
transform: rotate(0deg);
}
50% {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
-moz-transform: rotate(360deg);
transform: rotate(360deg);
}
}
@keyframes spinner {
0% {
-webkit-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
-moz-transform: rotate(0deg);
transform: rotate(0deg);
}
50% {
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
-moz-transform: rotate(180deg);
transform: rotate(180deg);
}
100% {
-webkit-transform: rotate(360deg);
-ms-transform: rotate(360deg);
-o-transform: rotate(360deg);
-moz-transform: rotate(360deg);
transform: rotate(360deg);
}
}
.effeckt-button,
.effeckt-button > .spinner,
.effeckt-button > .label {
-webkit-transition-property: padding, opacity, left, right, top, bottom, margin;
-moz-transition-property: padding, opacity, left, right, top, bottom, margin;
-o-transition-property: padding, opacity, left, right, top, bottom, margin;
transition-property: padding, opacity, left, right, top, bottom, margin;
-webkit-transition-duration: 500ms;
-moz-transition-duration: 500ms;
-o-transition-duration: 500ms;
transition-duration: 500ms;
-webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
-moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
-o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
transition-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.effeckt-button.zoom-in,
.effeckt-button.zoom-in > .spinner,
.effeckt-button.zoom-in > .label,
.effeckt-button.zoom-out,
.effeckt-button.zoom-out > .spinner,
.effeckt-button.zoom-out > .label {
-webkit-transition: 500ms ease all;
-o-transition: 500ms ease all;
-moz-transition: 500ms ease all;
transition: 500ms ease all;
}
.effeckt-button.expand-right > .spinner {
right: 16px;
}
.effeckt-button.expand-right[data-loading] {
padding-right: 64px;
}
.effeckt-button.expand-right[data-loading] > .spinner {
opacity: 1;
}
.effeckt-button.expand-left > .spinner {
left: 16px;
}
.effeckt-button.expand-left[data-loading] {
padding-left: 64px;
}
.effeckt-button.expand-left[data-loading] > .spinner {
opacity: 1;
}
.effeckt-button.expand-up {
overflow: hidden;
}
.effeckt-button.expand-up > .spinner {
top: 32px;
left: 50%;
margin-left: -16px;
}
.effeckt-button.expand-up[data-loading] {
padding-top: 64px;
}
.effeckt-button.expand-up[data-loading] > .spinner {
opacity: 1;
top: 16px;
margin-top: 0;
}
.effeckt-button.expand-down {
overflow: hidden;
}
.effeckt-button.expand-down > .spinner {
left: 50%;
top: 100%;
margin-left: -16px;
margin-top: -48px;
}
.effeckt-button.expand-down[data-loading] {
padding-bottom: 64px;
}
.effeckt-button.expand-down[data-loading] > .spinner {
opacity: 1;
}
.effeckt-button.slide-left {
overflow: hidden;
}
.effeckt-button.slide-left > .label {
position: relative;
}
.effeckt-button.slide-left > .spinner {
left: 100%;
margin-left: -16px;
}
.effeckt-button.slide-left[data-loading] > .label {
opacity: 0;
left: -100%;
}
.effeckt-button.slide-left[data-loading] > .spinner {
opacity: 1;
left: 50%;
}
.effeckt-button.slide-right {
overflow: hidden;
}
.effeckt-button.slide-right > .label {
position: relative;
}
.effeckt-button.slide-right > .spinner {
right: 100%;
margin-left: -16px;
}
.effeckt-button.slide-right[data-loading] > .label {
opacity: 0;
left: 100%;
}
.effeckt-button.slide-right[data-loading] > .spinner {
opacity: 1;
left: 50%;
}
.effeckt-button.slide-up {
overflow: hidden;
}
.effeckt-button.slide-up > .label {
position: relative;
}
.effeckt-button.slide-up > .spinner {
left: 50%;
margin-left: -16px;
margin-top: 1em;
}
.effeckt-button.slide-up[data-loading] > .label {
opacity: 0;
top: -1em;
}
.effeckt-button.slide-up[data-loading] > .spinner {
opacity: 1;
margin-top: -16px;
}
.effeckt-button.slide-down {
overflow: hidden;
}
.effeckt-button.slide-down > .label {
position: relative;
}
.effeckt-button.slide-down > .spinner {
left: 50%;
margin-left: -16px;
margin-top: -32px;
}
.effeckt-button.slide-down[data-loading] > .label {
opacity: 0;
top: 1em;
}
.effeckt-button.slide-down[data-loading] > .spinner {
opacity: 1;
margin-top: -16px;
}
.effeckt-button.zoom-out {
overflow: hidden;
}
.effeckt-button.zoom-out > .spinner {
left: 50%;
margin-left: -16px;
-webkit-transform: scale(2.5);
-ms-transform: scale(2.5);
-o-transform: scale(2.5);
-moz-transform: scale(2.5);
transform: scale(2.5);
}
.effeckt-button.zoom-out > .label {
position: relative;
display: inline-block;
}
.effeckt-button.zoom-out[data-loading] > .label {
opacity: 0;
-webkit-transform: scale(0.5);
-ms-transform: scale(0.5);
-o-transform: scale(0.5);
-moz-transform: scale(0.5);
transform: scale(0.5);
}
.effeckt-button.zoom-out[data-loading] > .spinner {
opacity: 1;
-webkit-transform: none;
-ms-transform: none;
-o-transform: none;
-moz-transform: none;
transform: none;
}
.effeckt-button.zoom-in {
overflow: hidden;
}
.effeckt-button.zoom-in > .spinner {
left: 50%;
margin-left: -16px;
-webkit-transform: scale(0.2);
-ms-transform: scale(0.2);
-o-transform: scale(0.2);
-moz-transform: scale(0.2);
transform: scale(0.2);
}
.effeckt-button.zoom-in > .label {
position: relative;
display: inline-block;
}
.effeckt-button.zoom-in[data-loading] > .label {
opacity: 0;
-webkit-transform: scale(2.2);
-ms-transform: scale(2.2);
-o-transform: scale(2.2);
-moz-transform: scale(2.2);
transform: scale(2.2);
}
.effeckt-button.zoom-in[data-loading] > .spinner {
opacity: 1;
-webkit-transform: none;
-ms-transform: none;
-o-transform: none;
-moz-transform: none;
transform: none;
}
/**
* Grid
* --------------------------------------------------
* Using flexbox for the grid, inspired by Philip Walton:
* https://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;
-webkit-flex-wrap: wrap;
-ms-flex-wrap: wrap;
flex-wrap: wrap;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.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;
width: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/* 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;
-moz-box-align: 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;
-moz-box-align: end;
align-items: flex-end;
}
.row-center {
-webkit-box-align: center;
-ms-flex-align: center;
-webkit-align-items: center;
-moz-align-items: center;
-moz-box-align: center;
align-items: center;
}
/* .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%; }
.row--fit > .col {
-webkit-box-flex: 1;
-webkit-flex: 1;
-moz-box-flex: 1;
-ms-flex: 1;
flex: 1;
}
.row--100 > .col {
-webkit-box-flex: 0;
-webkit-flex: 0 0 100%;
-moz-box-flex: 0;
-ms-flex: 0 0 100%;
flex: 0 0 100%;
}
/*
Copyright 2013-2014 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
.ons-icon {
display: inline-block;
font-style: normal;
font-weight: normal;
line-height: 1;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.ons-icon--ion {
line-height: 0.75em;
vertical-align: -25%;
}
.ons-icon--spin {
-webkit-animation: ons-icon-spin 2s infinite linear;
-moz-animation: ons-icon-spin 2s infinite linear;
-o-animation: ons-icon-spin 2s infinite linear;
animation: ons-icon-spin 2s infinite linear;
}
@-moz-keyframes ons-icon-spin {
0% {
-moz-transform: rotate(0deg);
}
100% {
-moz-transform: rotate(359deg);
}
}
@-webkit-keyframes ons-icon-spin {
0% {
-webkit-transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
}
}
@-o-keyframes ons-icon-spin {
0% {
-webkit-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
-o-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes ons-icon-spin {
0% {
-webkit-transform: rotate(0deg);
-moz-transform: rotate(0deg);
-ms-transform: rotate(0deg);
-o-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
-moz-transform: rotate(359deg);
-ms-transform: rotate(359deg);
-o-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.ons-icon--rotate-90 {
-webkit-transform: rotate(90deg);
-moz-transform: rotate(90deg);
-ms-transform: rotate(90deg);
-o-transform: rotate(90deg);
transform: rotate(90deg);
}
.ons-icon--rotate-180 {
-webkit-transform: rotate(180deg);
-moz-transform: rotate(180deg);
-ms-transform: rotate(180deg);
-o-transform: rotate(180deg);
transform: rotate(180deg);
}
.ons-icon--rotate-270 {
-webkit-transform: rotate(270deg);
-moz-transform: rotate(270deg);
-ms-transform: rotate(270deg);
-o-transform: rotate(270deg);
transform: rotate(270deg);
}
.ons-icon--flip-horizontal {
-webkit-transform: scale(-1, 1);
-moz-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
-o-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.ons-icon--flip-vertical {
-webkit-transform: scale(1, -1);
-moz-transform: scale(1, -1);
-ms-transform: scale(1, -1);
-o-transform: scale(1, -1);
transform: scale(1, -1);
}
.ons-icon--fw {
width: 1.28571429em;
text-align: center;
}
.ons-icon--lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.ons-icon--2x {
font-size: 2em;
}
.ons-icon--3x {
font-size: 3em;
}
.ons-icon--4x {
font-size: 4em;
}
.ons-icon--5x {
font-size: 5em;
}
/*
Copyright 2013-2014 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
.ons-scroller {
display: block;
overflow: scroll;
-webkit-overflow-scrolling: touch;
}
.ons-scroller::-webkit-scrollbar,
.ons-scroller__content::-webkit-scrollbar {
display: none;
}
/*
Copyright 2013-2014 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
ons-sliding-menu {
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
overflow: hidden;
z-index: 0;
}
.onsen-sliding-menu__behind,
.onsen-sliding-menu__above {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
z-index: 0;
}
.onsen-sliding-menu__above {
margin: 0;
padding: 0;
}
.onsen-sliding-menu__behind {
opacity: 0;
}
/*
Copyright 2013-2014 ASIAL CORPORATION
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
ons-split-view {
position: absolute;
left: 0px;
right: 0px;
top: 0px;
bottom: 0px;
z-index: 0;
overflow: hidden;
}
.onsen-split-view__secondary {
opacity: 0;
width: 100%;
}
.onsen-split-view__secondary,
.onsen-split-view__main {
position: absolute;
top: 0px;
left: 0px;
bottom: 0px;
right: 0px;
z-index: 0;
}
html {
height: 100%;
width: 100%;
}
body {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
padding: 0;
margin: 0;
-webkit-text-size-adjust: 100%;
}
*:not(input):not(textarea):not(select) {
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
}
* {
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
input:active,
input:focus,
textarea:active,
textarea:focus,
select:active,
select:focus {
outline: none;
}
h1 {
font-size: 36px;
}
h2 {
font-size: 30px;
}
h3 {
font-size: 24px;
}
h4,
h5,
h6 {
font-size: 18px;
}
.page {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
background-color: #fff;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
overflow: visible;
font-size: 17px;
color: #1f1f21;
}
.page::-webkit-scrollbar {
display: none;
}
.page__content {
background-color: #fff;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
margin-top: -1px;
}
.content-padded {
padding: 8px;
}
/* topdoc
name: Switch
class: switch
modifiers:
:focus: Focus state
:disabled: Disabled state
markup:
<label class="switch">
<input type="checkbox" class="switch__input">
<div class="switch__toggle"></div>
</label>
<label class="switch">
<input type="checkbox" class="switch__input" checked>
<div class="switch__toggle"></div>
</label>
<label class="switch">
<input type="checkbox" class="switch__input" disabled>
<div class="switch__toggle"></div>
</label>
*/
.switch {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
position: relative;
overflow: hidden;
font-size: 17px;
padding: 0 20px;
border: none;
overflow: visible;
width: 51px;
height: 32px;
z-index: 0;
text-align: left;
}
.switch__input {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
width: 51px;
height: 44px;
margin-top: -6px;
top: 0px;
left: 0px;
-webkit-transition: all 0.2s linear;
-moz-transition: all 0.2s linear;
-o-transition: all 0.2s linear;
transition: all 0.2s linear;
}
.switch__toggle {
background-color: #ddd;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
-webkit-border-radius: 30px;
border-radius: 30px;
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
transition-property: all;
-webkit-transition-duration: 0.35s;
-moz-transition-duration: 0.35s;
-o-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: ease-out;
-moz-transition-timing-function: ease-out;
-o-transition-timing-function: ease-out;
transition-timing-function: ease-out;
}
.switch__toggle:before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
position: absolute;
content: '';
-webkit-border-radius: 28px;
border-radius: 28px;
height: 28px;
width: 28px;
background-color: #fff;
left: 2px;
top: 2px;
-webkit-transition-property: all;
-moz-transition-property: all;
-o-transition-property: all;
transition-property: all;
-webkit-transition-duration: 0.35s;
-moz-transition-duration: 0.35s;
-o-transition-duration: 0.35s;
transition-duration: 0.35s;
-webkit-transition-timing-function: cubic-bezier(0.5, 1.6, 0.5, 1);
-moz-transition-timing-function: cubic-bezier(0.5, 1.6, 0.5, 1);
-o-transition-timing-function: cubic-bezier(0.5, 1.6, 0.5, 1);
transition-timing-function: cubic-bezier(0.5, 1.6, 0.5, 1);
}
.switch__input:checked + .switch__toggle {
background-color: #4cd964;
}
.switch__input:checked + .switch__toggle:before {
-webkit-transform: translateX(18px);
-moz-transform: translateX(18px);
-ms-transform: translateX(18px);
-o-transform: translateX(18px);
transform: translateX(18px);
}
.switch__input:not(:checked) + .switch__toggle:before {
-webkit-transform: translateX(0px);
-moz-transform: translateX(0px);
-ms-transform: translateX(0px);
-o-transform: translateX(0px);
transform: translateX(0px);
}
.switch__input:disabled + .switch__toggle {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Range
class: range
modifiers:
:active: Active state
:disabled: Disabled state
:focus: Focused
markup:
<input type="range" class="range">
<input type="range" class="range" disabled>
showcase:
<div class="navigation-bar">
<div class="navigation-bar__item center full">
<h1 class="navigation-bar__title">Range</h1>
</div>
</div>
<div style="padding:8px">
<input type="range" class="range" style="width:100%" value="0">
</div>
<div style="padding:8px">
<input type="range" class="range" style="width:100%" value="30">
</div>
<div style="padding:8px">
<input type="range" class="range" style="width:100%" value="60">
</div>
<div style="padding:8px">
<input type="range" class="range" style="width:100%" value="90">
</div>
*/
.range {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
vertical-align: top;
outline: none;
line-height: 1;
-webkit-appearance: none;
-webkit-border-radius: 4px;
border-radius: 4px;
border: none;
height: 2px;
-webkit-border-radius: 0;
border-radius: 0;
-webkit-border-radius: 3px;
border-radius: 3px;
background-image: -webkit-gradient(linear, left top, left bottom, from(#ccc), to(#ccc));
background-image: -webkit-linear-gradient(#ccc, #ccc);
background-image: -moz-linear-gradient(#ccc, #ccc);
background-image: -o-linear-gradient(#ccc, #ccc);
background-image: linear-gradient(#ccc, #ccc);
background-position: left center;
-webkit-background-size: 100% 2px;
background-size: 100% 2px;
background-repeat: no-repeat;
overflow: hidden;
height: 31px;
}
.range::-moz-range-track {
position: relative;
border: none;
background-color: #ccc;
height: 2px;
border-radius: 30px;
box-shadow: none;
top: 0;
margin: 0;
padding: 0;
}
.range::-webkit-slider-thumb {
cursor: pointer;
-webkit-appearance: none;
position: relative;
height: 29px;
width: 29px;
background-color: #fff;
border: 1px solid #ddd;
-webkit-border-radius: 30px;
border-radius: 30px;
-webkit-box-shadow: none;
box-shadow: none;
top: 0;
margin: 0;
padding: 0;
}
.range::-moz-range-thumb {
cursor: pointer;
position: relative;
height: 29px;
width: 29px;
background-color: #fff;
border: 1px solid #ddd;
border-radius: 30px;
box-shadow: none;
margin: 0;
padding: 0;
}
.range::-webkit-slider-thumb:before {
position: absolute;
top: 13px;
right: 0px;
left: -1024px;
width: 1024px;
height: 2px;
background-color: #1284ff;
content: '';
margin: 0;
padding: 0;
}
.range:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Navigation Bar
class: navigation-bar
markup:
<div class="navigation-bar">
<div class="navigation-bar__center">Navigation Bar</div>
</div>
*/
.navigation-bar {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
white-space: nowrap;
overflow: hidden;
word-spacing: 0;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
z-index: 2;
display: block;
height: 44px;
padding-left: 0;
padding-right: 0;
background: #f8f8f8;
color: #1f1f21;
-webkit-box-shadow: none;
box-shadow: none;
border-bottom: 1px solid #ddd;
font-weight: 400;
width: 100%;
white-space: nowrap;
overflow: visible;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.navigation-bar {
border-bottom: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom;
background-image: -webkit-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%);
}
}
.navigation-bar__line-height {
line-height: 44px;
padding-bottom: 0;
padding-top: 0;
}
.navigation-bar__bg {
background: #f8f8f8;
}
.navigation-bar__item,
.navigation-bar__left,
.navigation-bar__right,
.navigation-bar__center {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
height: 44px;
vertical-align: top;
overflow: visible;
display: block;
vertical-align: middle;
float: left;
}
.navigation-bar__left {
max-width: 50%;
width: 27%;
text-align: left;
}
.navigation-bar__right {
max-width: 50%;
width: 27%;
text-align: right;
}
.navigation-bar__center {
width: 46%;
text-align: center;
line-height: 44px;
font-size: 17px;
font-weight: 500;
}
.navigation-bar__title {
line-height: 44px;
font-size: 17px;
font-weight: 500;
color: #1f1f21;
margin: 0;
padding: 0;
overflow: visible;
}
.navigation-bar__center:first-child:last-child {
width: 100%;
}
/* topdoc
name: Navigation Bar Item
use: Toolbar Button, Navigation Bar
markup:
<div class="navigation-bar">
<div class="navigation-bar__left">
<span class="toolbar-button--quiet navigation-bar__line-height">
<i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
</span>
</div>
<div class="navigation-bar__center">
Navigation Bar
</div>
<div class="navigation-bar__right">
<span class="toolbar-button--quiet navigation-bar__line-height">Label</span>
</div>
</div>
*/
/* topdoc
name: Navigation Bar with Outline Button
use: Toolbar Button, Navigation Bar
markup:
<div class="navigation-bar">
<div class="navigation-bar__left">
<span class="toolbar-button--outline navigation-bar__line-height">
<i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
</span>
</div>
<div class="navigation-bar__center">
Title
</div>
<div class="navigation-bar__right">
<span class="toolbar-button--outline navigation-bar__line-height">Button</span>
</div>
</div>
*/
/* topdoc
name: Transparent Navigation Bar
class: navigation-bar--transparent
use: Toolbar Button, Navigation Bar
markup:
<div class="navigation-bar navigation-bar--transparent">
<div class="navigation-bar__left">
<span class="toolbar-button--quiet navigation-bar__line-height">
<i class="ion-navicon" style="font-size:32px; vertical-align:-6px;"></i>
</span>
</div>
<div class="navigation-bar__center">
Navigation Bar
</div>
<div class="navigation-bar__right">
<span class="toolbar-button--quiet navigation-bar__line-height">Label</span>
</div>
</div>
*/
.navigation-bar--transparent {
background-color: transparent;
background-image: none;
border: none;
}
/* topdoc
name: Bottom Bar
class: bottom-bar
use: Navigation Bar
markup:
<div class="bottom-bar">
<div class="bottom-bar__line-height" style="text-align:center">Bottom Toolbar</div>
</div>
*/
.bottom-bar {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
white-space: nowrap;
overflow: hidden;
word-spacing: 0;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
z-index: 2;
display: block;
height: 44px;
padding-left: 0;
padding-right: 0;
background: #f8f8f8;
color: #1f1f21;
-webkit-box-shadow: none;
box-shadow: none;
font-weight: 400;
border-bottom: none;
border-top: 1px solid #ddd;
position: absolute;
bottom: 0px;
right: 0px;
left: 0px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.bottom-bar {
border-top: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: top;
background-image: -webkit-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%);
}
}
.bottom-bar__line-height {
line-height: 44px;
padding-bottom: 0;
padding-top: 0;
}
.bottom-bar--transparent {
background-color: transparent;
background-image: none;
border: none;
}
/* topdoc
name: Navigation Bar with Segment
class: navigation-bar
hint: .navigation-bar .button-bar
use: Segment, Navigation Bar
markup:
<div class="navigation-bar">
<div class="navigation-bar__center">
<div class="button-bar" style="width:200px;margin:7px 50px;">
<div class="button-bar__item">
<input type="radio" name="navi-segment-a" checked>
<div class="button-bar__button">One</div>
</div>
<div class="button-bar__item">
<input type="radio" name="navi-segment-a">
<div class="button-bar__button">Two</div>
</div>
</div>
</div>
</div>
*/
/* topdoc
name: Button
class: button
modifiers:
:active: Active state
:disabled: Disabled state
:focus: Focused
markup:
<button class="button">Button</button>
<button class="button" disabled>Button</button>
*/
.button {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: auto;
text-decoration: none;
padding: 4px 10px;
font-size: 17px;
line-height: 32px;
letter-spacing: 0;
color: #fff;
text-shadow: 0 1px none;
vertical-align: middle;
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
border: 0px solid currentColor;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button:active {
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
}
.button:focus {
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
.button:disabled,
.button[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Outline Button
class: button--outline
use: Button
markup:
<button class="button button--outline">Button</button>
<button class="button button--outline" disabled>Button</button>
*/
.button--outline {
background-color: transparent;
border: 1px solid #1284ff;
color: #1284ff;
}
.button--outline:active {
background-color: rgba(18,132,255,0.2);
border: 1px solid #1284ff;
color: #1284ff;
opacity: 1;
}
.button--outline:hover {
border: 1px solid #1284ff;
-webkit-transition: 0;
-moz-transition: 0;
-o-transition: 0;
transition: 0;
}
/* topdoc
name: Light Button
class: button--light
use: Button
markup:
<button class="button button--light">Button</button>
<button class="button button--light" disabled>Button</button>
*/
.button--light {
background-color: transparent;
color: rgba(0,0,0,0.4);
border: 1px solid rgba(0,0,0,0.2);
}
.button--light:active {
background-color: rgba(0,0,0,0.05);
color: rgba(0,0,0,0.4);
border: 1px solid rgba(0,0,0,0.2);
opacity: 1;
}
/* topdoc
name: Quiet Button
class: button--quiet
markup:
<button class="button--quiet">Button</button>
<button class="button--quiet" disabled>Button</button>
*/
.button--quiet {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: auto;
text-decoration: none;
padding: 4px 10px;
font-size: 17px;
line-height: 32px;
letter-spacing: 0;
color: #fff;
text-shadow: 0 1px none;
vertical-align: middle;
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
border: 0px solid currentColor;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
background: transparent;
border: 1px solid transparent;
-webkit-box-shadow: none;
box-shadow: none;
background: transparent;
color: #1284ff;
border: none;
}
.button--quiet:disabled,
.button--quiet[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
border: none;
}
.button--quiet:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--quiet:focus {
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
.button--quiet:active {
text-shadow: 0 1px none;
background-color: transparent;
border: none;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
color: #1284ff;
}
/* topdoc
name: Call To Action Button
class: button--cta
markup:
<button class="button--cta">Button</button>
<button class="button--cta" disabled>Button</button>
*/
.button--cta {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: auto;
text-decoration: none;
padding: 4px 10px;
font-size: 17px;
line-height: 32px;
letter-spacing: 0;
color: #fff;
text-shadow: 0 1px none;
vertical-align: middle;
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
border: 0px solid currentColor;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
border: none;
background-color: #4cda64;
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
text-shadow: none;
}
.button--cta:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--cta:focus {
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
.button--cta:active {
color: #fff;
background-color: #4cda64;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
}
.button--cta:disabled,
.button--cta[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Large Button
class: button--large
use: Button
markup:
<button class="button button--large">Button</button>
*/
.button--large {
font-size: 17px;
font-weight: 500;
line-height: 36px;
padding: 4px 12px;
display: block;
width: 100%;
text-align: center;
}
.button--large:active {
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--large:disabled,
.button--large[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.button--large:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--large:focus {
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
/* topdoc
name: Large Quiet Button
class: button--large--quiet
markup:
<button class="button--large--quiet">Button</button>
*/
.button--large--quiet {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: auto;
text-decoration: none;
padding: 4px 10px;
font-size: 17px;
line-height: 32px;
letter-spacing: 0;
color: #fff;
text-shadow: 0 1px none;
vertical-align: middle;
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
border: 0px solid currentColor;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
font-size: 17px;
font-weight: 500;
line-height: 36px;
padding: 4px 12px;
display: block;
width: 100%;
background: transparent;
border: 1px solid transparent;
-webkit-box-shadow: none;
box-shadow: none;
color: #1284ff;
text-align: center;
}
.button--large--quiet:active {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
color: #1284ff;
background: transparent;
border: 1px solid transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
.button--large--quiet:disabled,
.button--large--quiet[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.button--large--quiet:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--large--quiet:focus {
outline: 0;
}
/* topdoc
name: Large Call To Action Button
class: button--large--cta
markup:
<button class="button--large--cta" >Button</button>
*/
.button--large--cta {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
height: auto;
text-decoration: none;
padding: 4px 10px;
font-size: 17px;
line-height: 32px;
letter-spacing: 0;
color: #fff;
text-shadow: 0 1px none;
vertical-align: middle;
background-color: #1284ff;
-webkit-box-shadow: none;
box-shadow: none;
border: 0px solid currentColor;
-webkit-border-radius: 3px;
border-radius: 3px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
border: none;
background-color: #4cda64;
-webkit-box-shadow: none;
box-shadow: none;
color: #fff;
text-shadow: none;
font-size: 17px;
font-weight: 500;
line-height: 36px;
padding: 4px 12px;
width: 100%;
text-align: center;
display: block;
}
.button--large--cta:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button--large--cta:focus {
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
.button--large--cta:active {
color: #fff;
background-color: #4cda64;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
}
.button--large--cta:disabled,
.button--large--cta[disabled] {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Button Bar
class: button-bar
modifiers:
:disabled: Disabled state
markup:
<div class="button-bar" style="width:280px;margin:0 auto;">
<div class="button-bar__item">
<button class="button-bar__button">One</button>
</div>
<div class="button-bar__item">
<button class="button-bar__button">Two</button>
</div>
<div class="button-bar__item">
<button class="button-bar__button">Three</button>
</div>
</div>
*/
.button-bar {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
display: table;
table-layout: fixed;
white-space: nowrap;
margin: 0;
padding: 0;
position: relative;
margin: 0;
border: none;
}
.button-bar__item {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
display: table-cell;
width: auto;
-webkit-border-radius: 0;
border-radius: 0;
position: relative;
position: relative;
overflow: hidden;
padding: 0;
position: relative;
overflow: hidden;
}
.button-bar__item > input {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.button-bar__item:first-child > .button-bar__button {
border-left: 1px solid #1284ff;
border-right: 1px solid #1284ff;
-webkit-border-top-left-radius: 4px;
border-top-left-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
border-bottom-left-radius: 4px;
}
.button-bar__item:last-child > .button-bar__button {
border-right: 1px solid #1284ff;
-webkit-border-top-right-radius: 4px;
border-top-right-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
border-bottom-right-radius: 4px;
}
.button-bar__button {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
-webkit-border-radius: inherit;
border-radius: inherit;
background-color: transparent;
color: #1284ff;
border: 0px solid #1284ff;
border-top: 1px solid #1284ff;
border-bottom: 1px solid #1284ff;
border-right: 1px solid #1284ff;
font-weight: 400;
padding: 0 8px;
height: 27px;
line-height: 27px;
font-size: 13px;
width: 100%;
-webkit-transition: background-color 0.2s linear, color 0.2s linear;
-moz-transition: background-color 0.2s linear, color 0.2s linear;
-o-transition: background-color 0.2s linear, color 0.2s linear;
transition: background-color 0.2s linear, color 0.2s linear;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.button-bar__button:active,
:active + .button-bar__button {
background-color: rgba(18,132,255,0.2);
border: 0px solid #1284ff;
border-top: 1px solid #1284ff;
border-bottom: 1px solid #1284ff;
border-right: 1px solid #1284ff;
height: 27px;
line-height: 27px;
font-size: 13px;
width: 100%;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button-bar__item.active > .button-bar__button,
:checked + .button-bar__button {
background-color: #1284ff;
color: #fff;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button-bar__button:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.button-bar__button:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.button-bar__button:focus {
outline: 0;
}
/* topdoc
name: Segment
use: Button Bar
modifiers:
:disabled: Disabled state
markup:
<div class="button-bar" style="width:280px;margin:0 auto;">
<div class="button-bar__item">
<input type="radio" name="segment-a" checked>
<button class="button-bar__button">One</button>
</div>
<div class="button-bar__item">
<input type="radio" name="segment-a">
<button class="button-bar__button">Two</button>
</div>
<div class="button-bar__item">
<input type="radio" name="segment-a">
<button class="button-bar__button">Three</button>
</div>
</div>
*/
/* topdoc
name: Icon Tab Bar
class: tab-bar
use: Tab Bar
modifiers:
:disabled: Disabled state
markup:
<div class="tab-bar">
<label class="tab-bar__item">
<input type="radio" name="tab-bar-a" checked="checked">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-stop"></i>
<div class="tab-bar__label">One</div>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-a">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-record"></i>
<div class="tab-bar__label">Two</div>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-a">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-star"></i>
<div class="tab-bar__label">Three</div>
</button>
</label>
</div>
*/
/* topdoc
name: Tab Bar
class: tab-bar
modifiers:
:disabled: Disabled state
markup:
<div class="tab-bar">
<label class="tab-bar__item">
<input type="radio" name="tab-bar-c" checked="checked">
<button class="tab-bar__button">
<div class="tab-bar__label">One</div>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-c">
<button class="tab-bar__button">
<div class="tab-bar__label">Two</div>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-c">
<button class="tab-bar__button">
<div class="tab-bar__label">Three</div>
</button>
</label>
</div>
*/
.tab-bar {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
display: table;
table-layout: fixed;
position: absolute;
bottom: 0px;
left: 0px;
right: 0px;
white-space: nowrap;
margin: 0;
padding: 0;
height: 49px;
background-color: #f8f8f8;
border-top: 1px solid #ddd;
width: 100%;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.tab-bar {
border-top: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: top;
background-image: -webkit-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%);
}
}
.tab-bar__item {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
position: relative;
overflow: hidden;
display: table-cell;
width: auto;
-webkit-border-radius: 0;
border-radius: 0;
}
.tab-bar__item > input {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.tab-bar__button {
position: relative;
display: inline-block;
vertical-align: top;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-decoration: none;
padding: 0;
height: 49px;
letter-spacing: 0;
color: #888;
text-shadow: 0 1px none;
vertical-align: top;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
border-top: none;
width: 100%;
font-weight: 400;
line-height: 49px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.tab-bar__button {
border-top: none;
}
}
.tab-bar__icon {
font-size: 24px;
padding: 0;
margin: 0;
line-height: 32px;
display: block;
height: 32px;
}
.tab-bar__label {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
}
.tab-bar__icon + .tab-bar__label {
font-size: 10px;
line-height: 1;
margin: 0;
font-weight: 400;
}
.tab-bar__label:first-child {
font-size: 16px;
line-height: 49px;
margin: 0;
padding: 0;
}
.tab-bar__button {
color: #888;
}
:checked + .tab-bar__button {
color: #1284ff;
background-color: transparent;
-webkit-box-shadow: none;
box-shadow: none;
border-top: none;
}
:checked + .tab-bar__button > .tab-bar__icon {
color: #1284ff;
}
.tab-bar__button:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.tab-bar__button:focus {
z-index: 1;
border-top: none;
-webkit-box-shadow: none;
box-shadow: none;
outline: 0;
}
.tab-bar__content {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 49px;
z-index: 0;
}
/* topdoc
name: Icon Only Tab Bar
use: Tab Bar
class: tab-bar
hint: .tab-bar .fa
modifiers:
:disabled: Disabled state
markup:
<div class="tab-bar">
<label class="tab-bar__item">
<input type="radio" name="tab-bar-b" checked="checked">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-stop"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-b">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-record"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-b">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-star"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-b">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-ios7-cloud-outline"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="tab-bar-b">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-ios7-pie"></i>
</button>
</label>
</div>
*/
/* topdoc
name: Top Tab Bar
class: tab-bar--top
use: Tab Bar
markup:
<div class="tab-bar tab-bar--top">
<label class="tab-bar__item">
<input type="radio" name="top-tab-bar-a" checked="checked">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-stop"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="top-tab-bar-a">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-record"></i>
</button>
</label>
<label class="tab-bar__item">
<input type="radio" name="top-tab-bar-a">
<button class="tab-bar__button">
<i class="tab-bar__icon ion-star"></i>
</button>
</label>
</div>
*/
.tab-bar--top {
position: relative;
top: 0px;
left: 0px;
right: 0px;
bottom: auto;
border-top: none;
border-bottom: 1px solid #ddd;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.tab-bar--top {
border-bottom: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom;
background-image: -webkit-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%);
}
}
.tab-bar--top__content {
top: 49px;
left: 0;
right: 0;
bottom: 0;
z-index: 0;
}
/* topdoc
name: Bordered Top Tab Bar
class: tab-bar--top-border
use: Top Tab Bar
markup:
<div class="tab-bar tab-bar--top tab-bar--top-border">
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" name="top-tab-bar-b" checked="checked">
<button class="tab-bar__button tab-bar--top-border__button">
Home
</button>
</label>
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" name="top-tab-bar-b">
<button class="tab-bar__button tab-bar--top-border__button">
Comments
</button>
</label>
<label class="tab-bar__item tab-bar--top-border__item">
<input type="radio" name="top-tab-bar-b">
<button class="tab-bar__button tab-bar--top-border__button">
Activity
</button>
</label>
</div>
*/
.tab-bar--top-border__button {
background-color: transparent;
border-bottom: 4px solid transparent;
}
:checked + .tab-bar--top-border__button {
background-color: transparent;
border-bottom: 4px solid #1284ff;
}
/* topdoc
name: Notification
class: notification
markup:
<span class="notification">1</span>
<span class="notification">10</span>
<span class="notification">999</span>
*/
.notification {
position: relative;
display: inline-block;
vertical-align: top;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
text-decoration: none;
padding: 0 4px;
width: auto;
height: 19px;
-webkit-border-radius: 19px;
border-radius: 19px;
background-color: #dc5236;
color: #fff;
text-align: center;
font-size: 16px;
min-width: 19px;
line-height: 19px;
font-weight: 400;
}
/* topdoc
name: Toolbar Button
class: toolbar-button
modifiers:
:active: Active state
:disabled: Disabled state
:focus: Focused
markup:
<button class="toolbar-button">
<i class="fa fa-bell" style="font-size:17px"></i> Label
</button>
<button class="toolbar-button toolbar-button--outline">
<i class="fa fa-bell" style="font-size:17px"></i> Label
</button>
*/
.toolbar-button,
.toolbar-button--outline,
.toolbar-button--quiet {
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
padding: 4px 10px;
letter-spacing: 0;
color: #1284ff;
text-shadow: 0 1px none;
vertical-align: baseline;
background-color: rgba(0,0,0,0);
-webkit-border-radius: 2px;
border-radius: 2px;
border: 1px solid transparent;
font-weight: 400;
font-size: 17px;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
vertical-align: middle;
}
.toolbar-button:active,
.toolbar-button--outline:active,
.toolbar-button--quiet:active {
background-color: rgba(0,0,0,0);
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
opacity: 0.2;
}
.toolbar-button:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.toolbar-button:focus,
.toolbar-button--outline:focus,
.toolbar-button--quiet:focus {
outline: 0;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.toolbar-button:hover,
.toolbar-button--outline:hover,
.toolbar-button--quiet:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.toolbar-button--outline {
border: 1px solid #1284ff;
margin: auto 8px;
padding-left: 6px;
padding-right: 6px;
}
/* topdoc
name: Checkbox
class: checkbox
modifiers:
:focus: Focus state
:disabled: Disabled state
markup:
<label class="checkbox">
<input type="checkbox">
<div class="checkbox__checkmark"></div>
OFF
</label>
<label class="checkbox">
<input type="checkbox" checked="checked">
<div class="checkbox__checkmark"></div>
ON
</label>
<label class="checkbox">
<input type="checkbox" disabled>
<div class="checkbox__checkmark"></div>
Disabled
</label>
*/
.checkbox {
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
line-height: 24px;
margin: 10px 0;
}
.checkbox > .checkbox__checkmark {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
position: relative;
overflow: hidden;
height: 24px;
}
.checkbox > input[type="checkbox"] {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
height: 0;
width: 0;
}
.checkbox > input[type="checkbox"]:checked {
background: #1284ff;
}
.checkbox > input[type="checkbox"]:checked + .checkbox__checkmark:before {
background: #1284ff;
border: 1px solid #1284ff;
}
.checkbox > input[type="checkbox"]:checked + .checkbox__checkmark:after {
opacity: 1;
}
.checkbox > .checkbox__checkmark:before {
content: '';
position: absolute;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
width: 24px;
height: 24px;
background: transparent;
border: 1px solid #1284ff;
-webkit-border-radius: 16px;
border-radius: 16px;
-webkit-box-shadow: none;
box-shadow: none;
left: 0;
}
.checkbox > .checkbox__checkmark {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
position: relative;
overflow: hidden;
width: 24px;
height: 24px;
}
.checkbox > .checkbox__checkmark:after {
content: '';
position: absolute;
top: 6px;
left: 5px;
width: 12px;
height: 6px;
background: transparent;
border: 3px solid #fff;
border-width: 2px;
border-top: none;
border-right: none;
-webkit-border-radius: 0px;
border-radius: 0px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
opacity: 0;
}
.checkbox > input[type="checkbox"]:focus + .checkbox__checkmark:before {
-webkit-box-shadow: none;
box-shadow: none;
}
.checkbox > input[type="checkbox"]:disabled + .checkbox__checkmark {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.checkbox > input[type="checkbox"]:disabled:active + .checkbox__checkmark:before {
background: transparent;
-webkit-box-shadow: none;
box-shadow: none;
}
/* topdoc
name: No border Checkbox
class: checkbox--noborder
markup:
<label class="checkbox--noborder">
<input type="checkbox">
<div class="checkbox__checkmark"></div>
OFF
</label>
<label class="checkbox--noborder">
<input type="checkbox" checked="checked">
<div class="checkbox__checkmark"></div>
ON
</label>
<label class="checkbox--noborder">
<input type="checkbox" disabled checked="checked">
<div class="checkbox__checkmark"></div>
Disabled
</label>
*/
.checkbox--noborder > input[type="checkbox"] {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
}
.checkbox--noborder {
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
line-height: 24px;
margin: 10px 0;
position: relative;
overflow: hidden;
}
.checkbox--noborder > .checkbox__checkmark {
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
height: 24px;
background: transparent;
}
.checkbox--noborder > input[type="checkbox"] {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
height: 0;
width: 0;
}
.checkbox--noborder > input[type="checkbox"]:checked + .checkbox__checkmark:before {
background: transparent;
border: none;
}
.checkbox--noborder > input[type="checkbox"]:checked + .checkbox__checkmark:after {
opacity: 1;
}
.checkbox--noborder > .checkbox__checkmark:before {
content: '';
position: absolute;
width: 24px;
height: 24px;
background: transparent;
border: none;
-webkit-border-radius: 16px;
border-radius: 16px;
left: 0;
}
.checkbox--noborder > .checkbox__checkmark {
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
width: 24px;
height: 24px;
border: none;
}
.checkbox--noborder > .checkbox__checkmark:after {
content: '';
position: absolute;
top: 6px;
left: 5px;
opacity: 0;
width: 12px;
height: 6px;
background: transparent;
border: 3px solid #1284ff;
border-width: 2px;
border-top: none;
border-right: none;
-webkit-border-radius: 0px;
border-radius: 0px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.checkbox--noborder > input[type="checkbox"]:focus + .checkbox__checkmark:before {
border: none;
-webkit-box-shadow: none;
box-shadow: none;
}
.checkbox--noborder > input[type="checkbox"]:disabled + .checkbox__checkmark {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.checkbox--noborder > input[type="checkbox"]:disabled:active + .checkbox--noborder__checkmark:before {
background: transparent;
-webkit-box-shadow: none;
box-shadow: none;
border: none;
}
/* topdoc
name: Radio Button
class: radio-button
modifiers:
markup:
<label class="radio-button">
<input type="radio" name="r" checked="checked">
<div class="radio-button__checkmark"></div>
Label
</label>
<label class="radio-button">
<input type="radio" name="r">
<div class="radio-button__checkmark"></div>
Label
</label>
<label class="radio-button">
<input type="radio" name="r">
<div class="radio-button__checkmark"></div>
Label
</label>
*/
.radio-button > input[type="radio"] {
position: absolute;
overflow: hidden;
right: 0px;
top: 0px;
left: 0px;
bottom: 0px;
padding: 0;
border: 0;
opacity: 0.001;
z-index: 1;
vertical-align: top;
outline: none;
width: 100%;
height: 100%;
margin: 0;
-webkit-appearance: none;
appearance: none;
height: 0px;
width: 0px;
}
.radio-button > input[type="radio"]:active,
.radio-button > input[type="radio"]:focus {
outline: 0;
-webkit-tap-highlight-color: rgba(0,0,0,0);
}
.radio-button > input[type="radio"]:checked + .radio-button__checkmark:after {
opacity: 1;
}
.radio-button > input[type="radio"]:checked + .radio-button__checkmark:before {
background: transparent;
border: none;
}
.radio-button {
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
position: relative;
overflow: hidden;
line-height: 24px;
text-align: left;
margin: 10px 0;
}
.radio-button__checkmark:before {
content: '';
position: absolute;
-webkit-border-radius: 100%;
border-radius: 100%;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
width: 24px;
height: 24px;
background: transparent;
border: none;
-webkit-border-radius: 16px;
border-radius: 16px;
left: 0;
}
.radio-button__checkmark {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
position: relative;
display: inline-block;
vertical-align: top;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
position: relative;
overflow: hidden;
position: relative;
width: 24px;
height: 24px;
background: transparent;
}
.radio-button > input[type="radio"]:checked + .radio-button__checkmark {
background: rgba(0,0,0,0);
}
.radio-button__checkmark:after {
content: '';
position: absolute;
-webkit-border-radius: 100%;
border-radius: 100%;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
top: 6px;
left: 5px;
opacity: 0;
width: 12px;
height: 6px;
background: transparent;
border: 3px solid #1284ff;
border-width: 2px;
border-top: none;
border-right: none;
-webkit-border-radius: 0px;
border-radius: 0px;
-webkit-transform: rotate(-45deg);
-moz-transform: rotate(-45deg);
-ms-transform: rotate(-45deg);
-o-transform: rotate(-45deg);
transform: rotate(-45deg);
}
.radio-button > input[type="radio"]:disabled + .radio-button__checkmark {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: List
class: list
markup:
<ul class="list">
<li class="list__item">
<span class="list__item__line-height">Item</span>
</li>
<li class="list__item">
<span class="list__item__line-height">Item</span>
</li>
</ul>
*/
.list--noborder {
border-top: none;
border-bottom: none;
}
.list__header {
margin: 0;
padding: 0;
list-style: none;
text-align: left;
display: block;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
padding: 0 0 0 10px;
font-size: 15px;
font-weight: 500;
background-color: #f0eff4;
color: #1f1f21;
text-shadow: none;
border-top: none;
border-bottom: none;
min-height: 24px;
line-height: 24px;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.list__header:first-child {
border-top: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: top;
background-image: -webkit-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%);
}
}
.list {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
cursor: default;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
padding: 0;
margin: 0;
list-style-type: none;
text-align: left;
overflow: auto;
display: block;
-webkit-overflow-scrolling: touch;
padding: 0;
background-color: #fff;
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
background-color: #fff;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.list {
border: none;
-webkit-background-size: 100% 1px, 100% 1px;
background-size: 100% 1px, 100% 1px;
background-repeat: no-repeat;
background-position: bottom, top;
background-image: -webkit-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%), -webkit-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%), -moz-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%), -o-linear-gradient(270deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%), linear-gradient(180deg, #ddd, #ddd 50%, transparent 50%);
}
}
.list__item {
margin: 0;
padding: 0;
position: relative;
list-style: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
display: block;
padding: 0 10px 0 10px;
margin: 0 0 0 0;
border-top: none;
border-bottom: 1px solid #ddd;
color: #1f1f21;
background-color: transparent;
min-height: 44px;
line-height: 44px;
}
.list__item--no-padding {
padding: 0;
}
.list__item__line-height,
.list__item--line-height {
line-height: 44px;
}
.list__item_active:active {
background-color: #d9d9d9;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.list__item:first-child {
border-top: none;
border-bottom: 1px solid #ddd;
}
.list__item:last-child {
border-bottom: none;
}
.list__item:first-child:last-child {
border-top: none;
border-bottom: none;
}
@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 192dpi) {
.list__item:not(:last-child) {
border-bottom: none;
-webkit-background-size: 100% 1px;
background-size: 100% 1px;
background-repeat: no-repeat;
background-position: bottom;
background-image: -webkit-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -moz-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: -o-linear-gradient(90deg, #ddd, #ddd 50%, transparent 50%);
background-image: linear-gradient(0deg, #ddd, #ddd 50%, transparent 50%);
}
}
/* topdoc
name: Noborder List
class: list--noborder
use: List
markup:
<ul class="list list--noborder">
<li class="list__item">
<span class="list__item__line-height">Item</span>
</li>
<li class="list__item">
<span class="list__item__line-height">Item</span>
</li>
</ul>
*/
.list--noborder {
background-color: #fff;
border-top: none;
border-bottom: none;
background-image: none;
}
/* topdoc
name: Category List Header
class: list__header
use: List
markup:
<ul class="list">
<li class="list__header">
Header
</li>
<li class="list__item">
Item
</li>
<li class="list__header">
Header
</li>
<li class="list__item">
Item
</li>
</ul>
*/
/* topdoc
name: Tappable List
class: list__item--tappable
use: List
markup:
<ul class="list">
<li class="list__item list__item--tappable">
Tappable Item
</li>
</ul>
*/
.list__item--tappable {
-webkit-transition: background-color 0.2s linear;
-moz-transition: background-color 0.2s linear;
-o-transition: background-color 0.2s linear;
transition: background-color 0.2s linear;
}
.list__item--tappable:active {
background-color: #d9d9d9;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.list__item--tappable:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
/* topdoc
name: Switch in List Item
class: switch--list-item
use: Switch, List
markup:
<ul class="list">
<li class="list__item">
Label
<label class="switch switch--list-item">
<input type="checkbox" class="switch__input" checked>
<div class="switch__toggle"></div>
</label>
</li>
<li class="list__item">
Label
<label class="switch switch--list-item">
<input type="checkbox" class="switch__input">
<div class="switch__toggle"></div>
</label>
</li>
</ul>
*/
.switch--list-item {
float: right;
margin-top: 6px;
margin-right: 10px;
}
/* topdoc
name: List Item with Chevron
class: list__item--chevron
use: List
markup:
<ul class="list">
<li class="list__item list__item--chevron">
Tappable Item
</li>
<li class="list__item list__item--chevron">
Tappable Item
</li>
</ul>
*/
.list__item--chevron {
-webkit-transition: background-color 0.2s linear;
-moz-transition: background-color 0.2s linear;
-o-transition: background-color 0.2s linear;
transition: background-color 0.2s linear;
overflow: hidden;
}
.list__item--chevron:active {
background-color: #d9d9d9;
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.list__item--chevron:hover {
-webkit-transition: none;
-moz-transition: none;
-o-transition: none;
transition: none;
}
.list__item--chevron:before {
position: absolute;
right: 16px;
top: 50%;
color: #ddd;
line-height: 28px;
height: 28px;
-webkit-transform: translateY(-50%);
-moz-transform: translateY(-50%);
-ms-transform: translateY(-50%);
-o-transform: translateY(-50%);
transform: translateY(-50%);
font-size: 28px;
font-family: FontAwesome;
font-style: normal;
font-weight: normal;
content: "\f105";
}
/* topdoc
name: Inset List
use: List, List Item with Chevron
markup:
<ul class="list list--inset">
<li class="list__item list--inset__item list__item--chevron">
List Item with Chevron
</li>
<li class="list__item list--inset__item list__item--chevron">
List Item with Chevron
</li>
</ul>
*/
.list--inset {
margin-left: 8px;
margin-right: 8px;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
border-radius: 4px;
background-image: none;
}
.list--inset__item:not(:last-child) {
border-bottom: 1px solid #ddd;
background-image: none;
}
/* topdoc
name: Radio Button in List Item
modifiers:
use: Radio Button, List, Tappable List
markup:
<ul class="list">
<li class="list__item list__item--tappable">
<label class="radio-button radio-button--list-item">
<input type="radio" name="b" checked="checked">
<div class="radio-button__checkmark radio-button--list-item__checkmark"></div>
Radio Button
</label>
</li>
<li class="list__item list__item--tappable">
<label class="radio-button radio-button--list-item">
<input type="radio" name="b">
<div class="radio-button__checkmark radio-button--list-item__checkmark"></div>
Radio Button
</label>
</li>
</ul>
*/
.radio-button--list-item {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
line-height: 44px;
}
.radio-button--list-item__checkmark {
margin-top: 10px;
}
/* topdoc
name: Checkbox in List Item
use: Checkbox, List, Tappable List
markup:
<ul class="list">
<li class="list__item list__item--tappable">
<label class="checkbox checkbox--list-item">
<input type="checkbox">
<div class="checkbox__checkmark checkbox--list-item__checkmark"></div>
Checkbox
</label>
</li>
<li class="list__item list__item--tappable">
<label class="checkbox checkbox--list-item">
<input type="checkbox" checked>
<div class="checkbox__checkmark checkbox--list-item__checkmark"></div>
Checkbox
</label>
</li>
</ul>
*/
.checkbox--list-item {
width: 100%;
height: 100%;
padding: 0;
margin: 0;
line-height: 44px;
}
.checkbox--list-item__checkmark {
margin-top: 10px;
}
/* topdoc
name: No border Checkbox in List Item
use: Checkbox in List Item, No border Checkbox
class: chckbox--list-item
markup:
<ul class="list">
<li class="list__item list__item--tappable">
<label class="checkbox checkbox--noborder checkbox--list-item">
<input type="checkbox">
<div class="checkbox__checkmark checkbox--noborder checkbox--list-item__checkmark"></div>
Checkbox
</label>
</li>
<li class="list__item list__item--tappable">
<label class="checkbox checkbox--noborder checkbox--list-item">
<input type="checkbox" checked>
<div class="checkbox__checkmark checkbox--noborder checkbox--list-item__checkmark"></div>
Checkbox
</label>
</li>
</ul>
*/
/* topdoc
name: Text Input in List Item
use: List, Transparent Text Input
markup:
<ul class="list">
<li class="list__item">
<input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="name">
</li>
<li class="list__item">
<input type="text" class="text-input text-input--transparent" style="width:100%; margin-top:4px;" placeholder="email">
</li>
</ul>
*/
/* topdoc
name: Textarea in List Item
use: List, Textarea Transparent
markup:
<ul class="list">
<li class="list__item">
<textarea class="textarea textarea--transparent" style="width:100%;height:50px;margin-top:4px;" placeholder="text message"></textarea>
</li>
</ul>
*/
/* topdoc
name: Right Label in List Item
use: List
class: list__right-label
markup:
<ul class="list">
<li class="list__item">
<div class="list__right-label">Label</div>
Label
</li>
</ul>
*/
.list__right-label {
font-size: 14px;
padding-right: 8px;
float: right;
}
/* topdoc
name: Search Input
class: search-input
modifiers:
:disabled: Disabled state
markup:
<input type="search" value="" placeholder="Search" class="search-input">
*/
input[type="search"].search-input::-webkit-search-cancel-button {
-webkit-appearance: none;
display: none;
}
.search-input {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
vertical-align: top;
outline: none;
line-height: 1;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
-webkit-appearance: none;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
height: 31px;
font-size: 15px;
border: 1px solid #ddd;
background-color: #fff;
-webkit-box-shadow: none;
box-shadow: none;
color: #1f1f21;
padding: 4px 0 0 28px;
-webkit-border-radius: 4px;
border-radius: 4px;
background-image: url("data:image/svg+xml;utf8,<svg width='41px' height='40px' viewBox='0 0 41 40' version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' xmlns:sketch='http://www.bohemiancoding.com/sketch/ns'><title>Slice 1</title><description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description><defs></defs><g id='Page 1' stroke='none' stroke-width='1' fill='none' fill-rule='evenodd'><g id='search' fill='#C6C8C8'><path d='M0.504,16.338 C0.504,25.085 7.635,32.165 16.444,32.165 C25.24,32.165 32.382,25.085 32.382,16.338 C32.382,7.591 25.24,0.5 16.444,0.5 C7.635,0.5 0.504,7.591 0.504,16.338 L0.504,16.338 Z M5.555,16.338 C5.555,10.359 10.423,5.521 16.445,5.521 C22.455,5.521 27.333,10.36 27.333,16.338 C27.333,22.317 22.455,27.156 16.445,27.156 C10.423,27.156 5.555,22.316 5.555,16.338 L5.555,16.338 Z M27.666,30.861 L34.521,38.67 C35.625,39.772 36.338,39.781 37.46,38.67 L39.661,36.489 C40.743,35.408 40.811,34.711 39.661,33.568 L31.765,26.793 L27.666,30.861 L27.666,30.861 Z M27.666,30.861' id='Shape'></path></g></g></svg>");
background-position: 8px center;
background-repeat: no-repeat;
-webkit-background-size: 17px;
background-size: 17px;
font-weight: 400;
display: block;
width: 100%;
}
.search-input:focus {
background-color: #fff;
color: #1f1f21;
border: 1px solid #ddd;
-webkit-box-shadow: none;
box-shadow: none;
}
.search-input::-webkit-search-cancel-button,
.search-input::-webkit-search-decoration {
margin-right: 0px;
}
.search-input::-webkit-input-placeholder,
.search-input::-moz-placeholder,
.search-input::-ms-input-placeholder {
color: #ccc;
}
.search-input:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
/* topdoc
name: Text Input
class: text-input
modifiers:
:disabled: Disabled state
:focus: Focused
:invalid: Hover state
markup:
<input type="text" class="text-input" placeholder="text" value="">
<br>
<input type="text" class="text-input" placeholder="text" value="" disabled>
*/
.text-input {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
vertical-align: top;
outline: none;
line-height: 1;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
letter-spacing: 0;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
border-radius: 4px;
background-color: #fff;
-webkit-box-shadow: none;
box-shadow: none;
color: #1f1f21;
padding: 4px 8px 0 8px;
margin: 0;
font-size: 15px;
height: 31px;
font-weight: 400;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
.text-input::-webkit-input-placeholder,
.text-input::-moz-placeholder,
.text-input::-ms-input-placeholder {
color: #ccc;
}
.text-input:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.text-input:disabled::-webkit-input-placeholder,
.text-input:disabled::-moz-placeholder,
.text-input:disabled:-ms-input-placeholder {
color: #ccc;
}
.text-input:invalid {
border: 1px solid #ddd;
color: #1f1f21;
}
/* topdoc
name: Transparent Text Input
class: text-input--transparent
markup:
<input type="text" class="text-input--transparent" placeholder="text" value="">
<br>
<input type="text" class="text-input--transparent" placeholder="text" value="" disabled>
*/
.text-input--transparent {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
vertical-align: top;
outline: none;
line-height: 1;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
letter-spacing: 0;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
border-radius: 4px;
background-color: #fff;
-webkit-box-shadow: none;
box-shadow: none;
color: #1f1f21;
padding: 4px 8px 0 8px;
margin: 0;
font-size: 15px;
height: 31px;
font-weight: 400;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border: none;
background-color: transparent;
padding-left: 0;
padding-right: 0;
}
.text-input--transparent:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
border: none;
background-color: transparent;
}
.text-input--transparent:disabled::-webkit-input-placeholder,
.text-input--transparent:disabled::-moz-placeholder,
.text-input--transparent:disabled:-ms-input-placeholder {
color: #ccc;
border: none;
background-color: transparent;
}
.text-input--transparent:invalid {
border: 1px solid #ddd;
color: #1f1f21;
border: none;
background-color: transparent;
}
/* topdoc
name: Underbar Text Input
class: text-input--underbar
markup:
<input type="text" class="text-input--underbar" placeholder="text" value="">
<br>
<input type="text" class="text-input--underbar" placeholder="text" value="" disabled>
*/
.text-input--underbar {
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
vertical-align: top;
outline: none;
line-height: 1;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
letter-spacing: 0;
border: 1px solid #ddd;
-webkit-border-radius: 4px;
border-radius: 4px;
background-color: #fff;
-webkit-box-shadow: none;
box-shadow: none;
color: #1f1f21;
padding: 4px 8px 0 8px;
margin: 0;
font-size: 15px;
height: 31px;
font-weight: 400;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
border: none;
background-color: transparent;
border-bottom: 1px solid #ddd;
-webkit-border-radius: 0px;
border-radius: 0px;
}
.text-input--underbar:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
border: none;
background-color: transparent;
border-bottom: 1px solid #ddd;
}
.text-input--underbar:disabled::-webkit-input-placeholder,
.text-input--underbar:disabled::-moz-placeholder,
.text-input--underbar:disabled:-ms-input-placeholder {
color: #ccc;
border: none;
background-color: transparent;
}
.text-input--underbar:invalid {
border: 1px solid #ddd;
color: #1f1f21;
border: none;
background-color: transparent;
border-bottom: 1px solid #ddd;
}
/* topdoc
name: Textarea
class: textarea
modifiers:
:disabled: Disabled state
markup:
<textarea class="textarea" rows="3" placeholder="Textarea"></textarea>
showcase:
*/
.textarea {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
vertical-align: top;
resize: none;
outline: none;
padding: 5px 5px 5px 5px;
font-size: 15px;
font-weight: 400;
-webkit-border-radius: 4px;
border-radius: 4px;
border: 1px solid #ddd;
background-color: #fff;
color: #1f1f21;
letter-spacing: 0;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-appearance: none;
}
.textarea:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.textarea::-webkit-input-placeholder,
.textarea::-moz-placeholder,
.textarea:-ms-input-placeholder {
color: #ccc;
}
/* topdoc
name: Textarea Transparent
class: textarea--transparent
modifiers:
:disabled: Disabled state
markup:
<textarea class="textarea--transparent" rows="3" placeholder="Textarea"></textarea>
showcase:
*/
.textarea--transparent {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
vertical-align: top;
resize: none;
outline: none;
padding: 5px 5px 5px 5px;
padding-left: 0;
padding-right: 0;
font-size: 15px;
font-weight: 400;
-webkit-border-radius: 4px;
border-radius: 4px;
border: none;
background-color: transparent;
color: #1f1f21;
letter-spacing: 0;
-webkit-box-shadow: none;
box-shadow: none;
-webkit-appearance: none;
}
.textarea--transparent:disabled {
opacity: 0.3;
cursor: default;
pointer-events: none;
}
.textarea--transpanret::-webkit-input-placeholder,
.textarea--transparent::-moz-placeholder,
.textarea--transparent:-ms-input-placeholder {
color: #ccc;
}
/* topdoc
name: Modal
class: modal
markup:
<div class="modal">
<div class="modal__content">
Message Text
</div>
</div>
*/
.modal {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
white-space: nowrap;
overflow: hidden;
word-spacing: 0;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
overflow: hidden;
background-color: rgba(0,0,0,0.7);
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
width: 100%;
height: 100%;
display: table;
z-index: 2147483647;
}
.modal__content {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
white-space: nowrap;
overflow: hidden;
word-spacing: 0;
padding: 0;
margin: 0;
font: inherit;
color: inherit;
background: transparent;
border: none;
line-height: normal;
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
-webkit-background-clip: padding-box;
background-clip: padding-box;
font-family: 'Helvetica Neue', Helvetica, Arial, 'Lucida Grande', sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
font-weight: 400;
font-size: 17px;
display: table-cell;
vertical-align: middle;
text-align: center;
color: #fff;
}
/*! onsenui - v1.1.4 - 2014-09-22
* This is the onsen js file
*/
function FastClick(layer){"use strict";function bind(method,context){return function(){return method.apply(context,arguments)}}var oldOnClick;this.trackingClick=!1,this.trackingClickStart=0,this.targetElement=null,this.touchStartX=0,this.touchStartY=0,this.lastTouchIdentifier=0,this.touchBoundary=10,this.layer=layer,FastClick.notNeeded(layer)||(deviceIsAndroid&&(layer.addEventListener("mouseover",bind(this.onMouse,this),!0),layer.addEventListener("mousedown",bind(this.onMouse,this),!0),layer.addEventListener("mouseup",bind(this.onMouse,this),!0)),layer.addEventListener("click",bind(this.onClick,this),!0),layer.addEventListener("touchstart",bind(this.onTouchStart,this),!1),layer.addEventListener("touchmove",bind(this.onTouchMove,this),!1),layer.addEventListener("touchend",bind(this.onTouchEnd,this),!1),layer.addEventListener("touchcancel",bind(this.onTouchCancel,this),!1),Event.prototype.stopImmediatePropagation||(layer.removeEventListener=function(type,callback,capture){var rmv=Node.prototype.removeEventListener;"click"===type?rmv.call(layer,type,callback.hijacked||callback,capture):rmv.call(layer,type,callback,capture)},layer.addEventListener=function(type,callback,capture){var adv=Node.prototype.addEventListener;"click"===type?adv.call(layer,type,callback.hijacked||(callback.hijacked=function(event){event.propagationStopped||callback(event)}),capture):adv.call(layer,type,callback,capture)}),"function"==typeof layer.onclick&&(oldOnClick=layer.onclick,layer.addEventListener("click",function(event){oldOnClick(event)},!1),layer.onclick=null))}!function(){var initializing=!1,fnTest=/xyz/.test(function(){})?/\b_super\b/:/.*/;this.Class=function(){},Class.extend=function(prop){function Class(){!initializing&&this.init&&this.init.apply(this,arguments)}var _super=this.prototype;initializing=!0;var prototype=new this;initializing=!1;for(var name in prop)prototype[name]="function"==typeof prop[name]&&"function"==typeof _super[name]&&fnTest.test(prop[name])?function(name,fn){return function(){var tmp=this._super;this._super=_super[name];var ret=fn.apply(this,arguments);return this._super=tmp,ret}}(name,prop[name]):prop[name];return Class.prototype=prototype,Class.prototype.constructor=Class,Class.extend=arguments.callee,Class}}();var deviceIsAndroid=navigator.userAgent.indexOf("Android")>0,deviceIsIOS=/iP(ad|hone|od)/.test(navigator.userAgent),deviceIsIOS4=deviceIsIOS&&/OS 4_\d(_\d)?/.test(navigator.userAgent),deviceIsIOSWithBadTarget=deviceIsIOS&&/OS ([6-9]|\d{2})_\d/.test(navigator.userAgent);FastClick.prototype.needsClick=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"button":case"select":case"textarea":if(target.disabled)return!0;break;case"input":if(deviceIsIOS&&"file"===target.type||target.disabled)return!0;break;case"label":case"video":return!0}return/\bneedsclick\b/.test(target.className)},FastClick.prototype.needsFocus=function(target){"use strict";switch(target.nodeName.toLowerCase()){case"textarea":return!0;case"select":return!deviceIsAndroid;case"input":switch(target.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":return!1}return!target.disabled&&!target.readOnly;default:return/\bneedsfocus\b/.test(target.className)}},FastClick.prototype.sendClick=function(targetElement,event){"use strict";var clickEvent,touch;document.activeElement&&document.activeElement!==targetElement&&document.activeElement.blur(),touch=event.changedTouches[0],clickEvent=document.createEvent("MouseEvents"),clickEvent.initMouseEvent(this.determineEventType(targetElement),!0,!0,window,1,touch.screenX,touch.screenY,touch.clientX,touch.clientY,!1,!1,!1,!1,0,null),clickEvent.forwardedTouchEvent=!0,targetElement.dispatchEvent(clickEvent)},FastClick.prototype.determineEventType=function(targetElement){"use strict";return deviceIsAndroid&&"select"===targetElement.tagName.toLowerCase()?"mousedown":"click"},FastClick.prototype.focus=function(targetElement){"use strict";var length;deviceIsIOS&&targetElement.setSelectionRange&&0!==targetElement.type.indexOf("date")&&"time"!==targetElement.type?(length=targetElement.value.length,targetElement.setSelectionRange(length,length)):targetElement.focus()},FastClick.prototype.updateScrollParent=function(targetElement){"use strict";var scrollParent,parentElement;if(scrollParent=targetElement.fastClickScrollParent,!scrollParent||!scrollParent.contains(targetElement)){parentElement=targetElement;do{if(parentElement.scrollHeight>parentElement.offsetHeight){scrollParent=parentElement,targetElement.fastClickScrollParent=parentElement;break}parentElement=parentElement.parentElement}while(parentElement)}scrollParent&&(scrollParent.fastClickLastScrollTop=scrollParent.scrollTop)},FastClick.prototype.getTargetElementFromEventTarget=function(eventTarget){"use strict";return eventTarget.nodeType===Node.TEXT_NODE?eventTarget.parentNode:eventTarget},FastClick.prototype.onTouchStart=function(event){"use strict";var targetElement,touch,selection;if(event.targetTouches.length>1)return!0;if(targetElement=this.getTargetElementFromEventTarget(event.target),touch=event.targetTouches[0],deviceIsIOS){if(selection=window.getSelection(),selection.rangeCount&&!selection.isCollapsed)return!0;if(!deviceIsIOS4){if(touch.identifier===this.lastTouchIdentifier)return event.preventDefault(),!1;this.lastTouchIdentifier=touch.identifier,this.updateScrollParent(targetElement)}}return this.trackingClick=!0,this.trackingClickStart=event.timeStamp,this.targetElement=targetElement,this.touchStartX=touch.pageX,this.touchStartY=touch.pageY,event.timeStamp-this.lastClickTime<200&&event.preventDefault(),!0},FastClick.prototype.touchHasMoved=function(event){"use strict";var touch=event.changedTouches[0],boundary=this.touchBoundary;return Math.abs(touch.pageX-this.touchStartX)>boundary||Math.abs(touch.pageY-this.touchStartY)>boundary?!0:!1},FastClick.prototype.onTouchMove=function(event){"use strict";return this.trackingClick?((this.targetElement!==this.getTargetElementFromEventTarget(event.target)||this.touchHasMoved(event))&&(this.trackingClick=!1,this.targetElement=null),!0):!0},FastClick.prototype.findControl=function(labelElement){"use strict";return void 0!==labelElement.control?labelElement.control:labelElement.htmlFor?document.getElementById(labelElement.htmlFor):labelElement.querySelector("button, input:not([type=hidden]), keygen, meter, output, progress, select, textarea")},FastClick.prototype.onTouchEnd=function(event){"use strict";var forElement,trackingClickStart,targetTagName,scrollParent,touch,targetElement=this.targetElement;if(!this.trackingClick)return!0;if(event.timeStamp-this.lastClickTime<200)return this.cancelNextClick=!0,!0;if(this.cancelNextClick=!1,this.lastClickTime=event.timeStamp,trackingClickStart=this.trackingClickStart,this.trackingClick=!1,this.trackingClickStart=0,deviceIsIOSWithBadTarget&&(touch=event.changedTouches[0],targetElement=document.elementFromPoint(touch.pageX-window.pageXOffset,touch.pageY-window.pageYOffset)||targetElement,targetElement.fastClickScrollParent=this.targetElement.fastClickScrollParent),targetTagName=targetElement.tagName.toLowerCase(),"label"===targetTagName){if(forElement=this.findControl(targetElement)){if(this.focus(targetElement),deviceIsAndroid)return!1;targetElement=forElement}}else if(this.needsFocus(targetElement))return event.timeStamp-trackingClickStart>100||deviceIsIOS&&window.top!==window&&"input"===targetTagName?(this.targetElement=null,!1):(this.focus(targetElement),this.sendClick(targetElement,event),deviceIsIOS4&&"select"===targetTagName||(this.targetElement=null,event.preventDefault()),!1);return deviceIsIOS&&!deviceIsIOS4&&(scrollParent=targetElement.fastClickScrollParent,scrollParent&&scrollParent.fastClickLastScrollTop!==scrollParent.scrollTop)?!0:(this.needsClick(targetElement)||(event.preventDefault(),this.sendClick(targetElement,event)),!1)},FastClick.prototype.onTouchCancel=function(){"use strict";this.trackingClick=!1,this.targetElement=null},FastClick.prototype.onMouse=function(event){"use strict";return this.targetElement?event.forwardedTouchEvent?!0:event.cancelable&&(!this.needsClick(this.targetElement)||this.cancelNextClick)?(event.stopImmediatePropagation?event.stopImmediatePropagation():event.propagationStopped=!0,event.stopPropagation(),event.preventDefault(),!1):!0:!0},FastClick.prototype.onClick=function(event){"use strict";var permitted;return this.trackingClick?(this.targetElement=null,this.trackingClick=!1,!0):"submit"===event.target.type&&0===event.detail?!0:(permitted=this.onMouse(event),permitted||(this.targetElement=null),permitted)},FastClick.prototype.destroy=function(){"use strict";var layer=this.layer;deviceIsAndroid&&(layer.removeEventListener("mouseover",this.onMouse,!0),layer.removeEventListener("mousedown",this.onMouse,!0),layer.removeEventListener("mouseup",this.onMouse,!0)),layer.removeEventListener("click",this.onClick,!0),layer.removeEventListener("touchstart",this.onTouchStart,!1),layer.removeEventListener("touchmove",this.onTouchMove,!1),layer.removeEventListener("touchend",this.onTouchEnd,!1),layer.removeEventListener("touchcancel",this.onTouchCancel,!1)},FastClick.notNeeded=function(layer){"use strict";var metaViewport,chromeVersion;if("undefined"==typeof window.ontouchstart)return!0;if(chromeVersion=+(/Chrome\/([0-9]+)/.exec(navigator.userAgent)||[,0])[1]){if(!deviceIsAndroid)return!0;if(metaViewport=document.querySelector("meta[name=viewport]")){if(-1!==metaViewport.content.indexOf("user-scalable=no"))return!0;if(chromeVersion>31&&window.innerWidth<=window.screen.width)return!0}}return"none"===layer.style.msTouchAction?!0:!1},FastClick.attach=function(layer){"use strict";return new FastClick(layer)},"undefined"!=typeof define&&define.amd?define(function(){"use strict";return FastClick}):"undefined"!=typeof module&&module.exports?(module.exports=FastClick.attach,module.exports.FastClick=FastClick):window.FastClick=FastClick,function(window,undefined){"use strict";function setup(){Hammer.READY||(Hammer.event.determineEventTypes(),Hammer.utils.each(Hammer.gestures,function(gesture){Hammer.detection.register(gesture)}),Hammer.event.onTouch(Hammer.DOCUMENT,Hammer.EVENT_MOVE,Hammer.detection.detect),Hammer.event.onTouch(Hammer.DOCUMENT,Hammer.EVENT_END,Hammer.detection.detect),Hammer.READY=!0)}var Hammer=function(element,options){return new Hammer.Instance(element,options||{})};Hammer.defaults={stop_browser_behavior:{userSelect:"none",touchAction:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}},Hammer.HAS_POINTEREVENTS=window.navigator.pointerEnabled||window.navigator.msPointerEnabled,Hammer.HAS_TOUCHEVENTS="ontouchstart"in window,Hammer.MOBILE_REGEX=/mobile|tablet|ip(ad|hone|od)|android|silk/i,Hammer.NO_MOUSEEVENTS=Hammer.HAS_TOUCHEVENTS&&window.navigator.userAgent.match(Hammer.MOBILE_REGEX),Hammer.EVENT_TYPES={},Hammer.DIRECTION_DOWN="down",Hammer.DIRECTION_LEFT="left",Hammer.DIRECTION_UP="up",Hammer.DIRECTION_RIGHT="right",Hammer.POINTER_MOUSE="mouse",Hammer.POINTER_TOUCH="touch",Hammer.POINTER_PEN="pen",Hammer.EVENT_START="start",Hammer.EVENT_MOVE="move",Hammer.EVENT_END="end",Hammer.DOCUMENT=window.document,Hammer.plugins=Hammer.plugins||{},Hammer.gestures=Hammer.gestures||{},Hammer.READY=!1,Hammer.utils={extend:function(dest,src,merge){for(var key in src)dest[key]!==undefined&&merge||(dest[key]=src[key]);return dest},each:function(obj,iterator,context){var i,length;if("forEach"in obj)obj.forEach(iterator,context);else if(obj.length!==undefined){for(i=0,length=obj.length;length>i;i++)if(iterator.call(context,obj[i],i,obj)===!1)return}else for(i in obj)if(obj.hasOwnProperty(i)&&iterator.call(context,obj[i],i,obj)===!1)return},hasParent:function(node,parent){for(;node;){if(node==parent)return!0;node=node.parentNode}return!1},getCenter:function(touches){var valuesX=[],valuesY=[];return Hammer.utils.each(touches,function(touch){valuesX.push("undefined"!=typeof touch.clientX?touch.clientX:touch.pageX),valuesY.push("undefined"!=typeof touch.clientY?touch.clientY:touch.pageY)}),{pageX:(Math.min.apply(Math,valuesX)+Math.max.apply(Math,valuesX))/2,pageY:(Math.min.apply(Math,valuesY)+Math.max.apply(Math,valuesY))/2}},getVelocity:function(delta_time,delta_x,delta_y){return{x:Math.abs(delta_x/delta_time)||0,y:Math.abs(delta_y/delta_time)||0}},getAngle:function(touch1,touch2){var y=touch2.pageY-touch1.pageY,x=touch2.pageX-touch1.pageX;return 180*Math.atan2(y,x)/Math.PI},getDirection:function(touch1,touch2){var x=Math.abs(touch1.pageX-touch2.pageX),y=Math.abs(touch1.pageY-touch2.pageY);return x>=y?touch1.pageX-touch2.pageX>0?Hammer.DIRECTION_LEFT:Hammer.DIRECTION_RIGHT:touch1.pageY-touch2.pageY>0?Hammer.DIRECTION_UP:Hammer.DIRECTION_DOWN},getDistance:function(touch1,touch2){var x=touch2.pageX-touch1.pageX,y=touch2.pageY-touch1.pageY;return Math.sqrt(x*x+y*y)},getScale:function(start,end){return start.length>=2&&end.length>=2?this.getDistance(end[0],end[1])/this.getDistance(start[0],start[1]):1},getRotation:function(start,end){return start.length>=2&&end.length>=2?this.getAngle(end[1],end[0])-this.getAngle(start[1],start[0]):0},isVertical:function(direction){return direction==Hammer.DIRECTION_UP||direction==Hammer.DIRECTION_DOWN},stopDefaultBrowserBehavior:function(element,css_props){css_props&&element&&element.style&&(Hammer.utils.each(["webkit","khtml","moz","Moz","ms","o",""],function(vendor){Hammer.utils.each(css_props,function(prop){vendor&&(prop=vendor+prop.substring(0,1).toUpperCase()+prop.substring(1)),prop in element.style&&(element.style[prop]=prop)})}),"none"==css_props.userSelect&&(element.onselectstart=function(){return!1}),"none"==css_props.userDrag&&(element.ondragstart=function(){return!1}))}},Hammer.Instance=function(element,options){var self=this;return setup(),this.element=element,this.enabled=!0,this.options=Hammer.utils.extend(Hammer.utils.extend({},Hammer.defaults),options||{}),this.options.stop_browser_behavior&&Hammer.utils.stopDefaultBrowserBehavior(this.element,this.options.stop_browser_behavior),Hammer.event.onTouch(element,Hammer.EVENT_START,function(ev){self.enabled&&Hammer.detection.startDetect(self,ev)}),this},Hammer.Instance.prototype={on:function(gesture,handler){var gestures=gesture.split(" ");return Hammer.utils.each(gestures,function(gesture){this.element.addEventListener(gesture,handler,!1)},this),this},off:function(gesture,handler){var gestures=gesture.split(" ");return Hammer.utils.each(gestures,function(gesture){this.element.removeEventListener(gesture,handler,!1)},this),this},trigger:function(gesture,eventData){eventData||(eventData={});var event=Hammer.DOCUMENT.createEvent("Event");event.initEvent(gesture,!0,!0),event.gesture=eventData;var element=this.element;return Hammer.utils.hasParent(eventData.target,element)&&(element=eventData.target),element.dispatchEvent(event),this},enable:function(state){return this.enabled=state,this}};var last_move_event=null,enable_detect=!1,touch_triggered=!1;Hammer.event={bindDom:function(element,type,handler){var types=type.split(" ");Hammer.utils.each(types,function(type){element.addEventListener(type,handler,!1)})},onTouch:function(element,eventType,handler){var self=this;this.bindDom(element,Hammer.EVENT_TYPES[eventType],function(ev){var sourceEventType=ev.type.toLowerCase();if(!sourceEventType.match(/mouse/)||!touch_triggered){sourceEventType.match(/touch/)||sourceEventType.match(/pointerdown/)||sourceEventType.match(/mouse/)&&1===ev.which?enable_detect=!0:sourceEventType.match(/mouse/)&&!ev.which&&(enable_detect=!1),sourceEventType.match(/touch|pointer/)&&(touch_triggered=!0);var count_touches=0;enable_detect&&(Hammer.HAS_POINTEREVENTS&&eventType!=Hammer.EVENT_END?count_touches=Hammer.PointerEvent.updatePointer(eventType,ev):sourceEventType.match(/touch/)?count_touches=ev.touches.length:touch_triggered||(count_touches=sourceEventType.match(/up/)?0:1),count_touches>0&&eventType==Hammer.EVENT_END?eventType=Hammer.EVENT_MOVE:count_touches||(eventType=Hammer.EVENT_END),(count_touches||null===last_move_event)&&(last_move_event=ev),handler.call(Hammer.detection,self.collectEventData(element,eventType,self.getTouchList(last_move_event,eventType),ev)),Hammer.HAS_POINTEREVENTS&&eventType==Hammer.EVENT_END&&(count_touches=Hammer.PointerEvent.updatePointer(eventType,ev))),count_touches||(last_move_event=null,enable_detect=!1,touch_triggered=!1,Hammer.PointerEvent.reset())}})},determineEventTypes:function(){var types;types=Hammer.HAS_POINTEREVENTS?Hammer.PointerEvent.getEvents():Hammer.NO_MOUSEEVENTS?["touchstart","touchmove","touchend touchcancel"]:["touchstart mousedown","touchmove mousemove","touchend touchcancel mouseup"],Hammer.EVENT_TYPES[Hammer.EVENT_START]=types[0],Hammer.EVENT_TYPES[Hammer.EVENT_MOVE]=types[1],Hammer.EVENT_TYPES[Hammer.EVENT_END]=types[2]},getTouchList:function(ev){return Hammer.HAS_POINTEREVENTS?Hammer.PointerEvent.getTouchList():ev.touches?ev.touches:(ev.identifier=1,[ev])},collectEventData:function(element,eventType,touches,ev){var pointerType=Hammer.POINTER_TOUCH;return(ev.type.match(/mouse/)||Hammer.PointerEvent.matchType(Hammer.POINTER_MOUSE,ev))&&(pointerType=Hammer.POINTER_MOUSE),{center:Hammer.utils.getCenter(touches),timeStamp:(new Date).getTime(),target:ev.target,touches:touches,eventType:eventType,pointerType:pointerType,srcEvent:ev,preventDefault:function(){this.srcEvent.preventManipulation&&this.srcEvent.preventManipulation(),this.srcEvent.preventDefault&&this.srcEvent.preventDefault()},stopPropagation:function(){this.srcEvent.stopPropagation()},stopDetect:function(){return Hammer.detection.stopDetect()}}}},Hammer.PointerEvent={pointers:{},getTouchList:function(){var self=this,touchlist=[];return Hammer.utils.each(self.pointers,function(pointer){touchlist.push(pointer)}),touchlist},updatePointer:function(type,pointerEvent){return type==Hammer.EVENT_END?this.pointers={}:(pointerEvent.identifier=pointerEvent.pointerId,this.pointers[pointerEvent.pointerId]=pointerEvent),Object.keys(this.pointers).length},matchType:function(pointerType,ev){if(!ev.pointerType)return!1;var pt=ev.pointerType,types={};return types[Hammer.POINTER_MOUSE]=pt===ev.MSPOINTER_TYPE_MOUSE||pt===Hammer.POINTER_MOUSE,types[Hammer.POINTER_TOUCH]=pt===ev.MSPOINTER_TYPE_TOUCH||pt===Hammer.POINTER_TOUCH,types[Hammer.POINTER_PEN]=pt===ev.MSPOINTER_TYPE_PEN||pt===Hammer.POINTER_PEN,types[pointerType]},getEvents:function(){return["pointerdown MSPointerDown","pointermove MSPointerMove","pointerup pointercancel MSPointerUp MSPointerCancel"]},reset:function(){this.pointers={}}},Hammer.detection={gestures:[],current:null,previous:null,stopped:!1,startDetect:function(inst,eventData){this.current||(this.stopped=!1,this.current={inst:inst,startEvent:Hammer.utils.extend({},eventData),lastEvent:!1,name:""},this.detect(eventData))},detect:function(eventData){if(this.current&&!this.stopped){eventData=this.extendEventData(eventData);var inst_options=this.current.inst.options;return Hammer.utils.each(this.gestures,function(gesture){return this.stopped||inst_options[gesture.name]===!1||gesture.handler.call(gesture,eventData,this.current.inst)!==!1?void 0:(this.stopDetect(),!1)},this),this.current&&(this.current.lastEvent=eventData),eventData.eventType==Hammer.EVENT_END&&!eventData.touches.length-1&&this.stopDetect(),eventData}},stopDetect:function(){this.previous=Hammer.utils.extend({},this.current),this.current=null,this.stopped=!0},extendEventData:function(ev){var startEv=this.current.startEvent;!startEv||ev.touches.length==startEv.touches.length&&ev.touches!==startEv.touches||(startEv.touches=[],Hammer.utils.each(ev.touches,function(touch){startEv.touches.push(Hammer.utils.extend({},touch))}));var interimAngle,interimDirection,delta_time=ev.timeStamp-startEv.timeStamp,delta_x=ev.center.pageX-startEv.center.pageX,delta_y=ev.center.pageY-startEv.center.pageY,velocity=Hammer.utils.getVelocity(delta_time,delta_x,delta_y);return"end"===ev.eventType?(interimAngle=this.current.lastEvent&&this.current.lastEvent.interimAngle,interimDirection=this.current.lastEvent&&this.current.lastEvent.interimDirection):(interimAngle=this.current.lastEvent&&Hammer.utils.getAngle(this.current.lastEvent.center,ev.center),interimDirection=this.current.lastEvent&&Hammer.utils.getDirection(this.current.lastEvent.center,ev.center)),Hammer.utils.extend(ev,{deltaTime:delta_time,deltaX:delta_x,deltaY:delta_y,velocityX:velocity.x,velocityY:velocity.y,distance:Hammer.utils.getDistance(startEv.center,ev.center),angle:Hammer.utils.getAngle(startEv.center,ev.center),interimAngle:interimAngle,direction:Hammer.utils.getDirection(startEv.center,ev.center),interimDirection:interimDirection,scale:Hammer.utils.getScale(startEv.touches,ev.touches),rotation:Hammer.utils.getRotation(startEv.touches,ev.touches),startEvent:startEv}),ev},register:function(gesture){var options=gesture.defaults||{};return options[gesture.name]===undefined&&(options[gesture.name]=!0),Hammer.utils.extend(Hammer.defaults,options,!0),gesture.index=gesture.index||1e3,this.gestures.push(gesture),this.gestures.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0}),this.gestures}},Hammer.gestures.Drag={name:"drag",index:50,defaults:{drag_min_distance:10,correct_for_drag_min_distance:!0,drag_max_touches:1,drag_block_horizontal:!1,drag_block_vertical:!1,drag_lock_to_axis:!1,drag_lock_min_distance:25},triggered:!1,handler:function(ev,inst){if(Hammer.detection.current.name!=this.name&&this.triggered)return inst.trigger(this.name+"end",ev),void(this.triggered=!1);if(!(inst.options.drag_max_touches>0&&ev.touches.length>inst.options.drag_max_touches))switch(ev.eventType){case Hammer.EVENT_START:this.triggered=!1;break;case Hammer.EVENT_MOVE:if(ev.distance<inst.options.drag_min_distance&&Hammer.detection.current.name!=this.name)return;if(Hammer.detection.current.name!=this.name&&(Hammer.detection.current.name=this.name,inst.options.correct_for_drag_min_distance&&ev.distance>0)){var factor=Math.abs(inst.options.drag_min_distance/ev.distance);Hammer.detection.current.startEvent.center.pageX+=ev.deltaX*factor,Hammer.detection.current.startEvent.center.pageY+=ev.deltaY*factor,ev=Hammer.detection.extendEventData(ev)}(Hammer.detection.current.lastEvent.drag_locked_to_axis||inst.options.drag_lock_to_axis&&inst.options.drag_lock_min_distance<=ev.distance)&&(ev.drag_locked_to_axis=!0);var last_direction=Hammer.detection.current.lastEvent.direction;ev.drag_locked_to_axis&&last_direction!==ev.direction&&(ev.direction=Hammer.utils.isVertical(last_direction)?ev.deltaY<0?Hammer.DIRECTION_UP:Hammer.DIRECTION_DOWN:ev.deltaX<0?Hammer.DIRECTION_LEFT:Hammer.DIRECTION_RIGHT),this.triggered||(inst.trigger(this.name+"start",ev),this.triggered=!0),inst.trigger(this.name,ev),inst.trigger(this.name+ev.direction,ev),(inst.options.drag_block_vertical&&Hammer.utils.isVertical(ev.direction)||inst.options.drag_block_horizontal&&!Hammer.utils.isVertical(ev.direction))&&ev.preventDefault();break;case Hammer.EVENT_END:this.triggered&&inst.trigger(this.name+"end",ev),this.triggered=!1}}},Hammer.gestures.Hold={name:"hold",index:10,defaults:{hold_timeout:500,hold_threshold:1},timer:null,handler:function(ev,inst){switch(ev.eventType){case Hammer.EVENT_START:clearTimeout(this.timer),Hammer.detection.current.name=this.name,this.timer=setTimeout(function(){"hold"==Hammer.detection.current.name&&inst.trigger("hold",ev)},inst.options.hold_timeout);break;case Hammer.EVENT_MOVE:ev.distance>inst.options.hold_threshold&&clearTimeout(this.timer);break;case Hammer.EVENT_END:clearTimeout(this.timer)}}},Hammer.gestures.Release={name:"release",index:1/0,handler:function(ev,inst){ev.eventType==Hammer.EVENT_END&&inst.trigger(this.name,ev)}},Hammer.gestures.Swipe={name:"swipe",index:40,defaults:{swipe_min_touches:1,swipe_max_touches:1,swipe_velocity:.7},handler:function(ev,inst){if(ev.eventType==Hammer.EVENT_END){if(inst.options.swipe_max_touches>0&&ev.touches.length<inst.options.swipe_min_touches&&ev.touches.length>inst.options.swipe_max_touches)return;(ev.velocityX>inst.options.swipe_velocity||ev.velocityY>inst.options.swipe_velocity)&&(inst.trigger(this.name,ev),inst.trigger(this.name+ev.direction,ev))}}},Hammer.gestures.Tap={name:"tap",index:100,defaults:{tap_max_touchtime:250,tap_max_distance:10,tap_always:!0,doubletap_distance:20,doubletap_interval:300},handler:function(ev,inst){if(ev.eventType==Hammer.EVENT_END&&"touchcancel"!=ev.srcEvent.type){var prev=Hammer.detection.previous,did_doubletap=!1;if(ev.deltaTime>inst.options.tap_max_touchtime||ev.distance>inst.options.tap_max_distance)return;prev&&"tap"==prev.name&&ev.timeStamp-prev.lastEvent.timeStamp<inst.options.doubletap_interval&&ev.distance<inst.options.doubletap_distance&&(inst.trigger("doubletap",ev),did_doubletap=!0),(!did_doubletap||inst.options.tap_always)&&(Hammer.detection.current.name="tap",inst.trigger(Hammer.detection.current.name,ev))}}},Hammer.gestures.Touch={name:"touch",index:-1/0,defaults:{prevent_default:!1,prevent_mouseevents:!1},handler:function(ev,inst){return inst.options.prevent_mouseevents&&ev.pointerType==Hammer.POINTER_MOUSE?void ev.stopDetect():(inst.options.prevent_default&&ev.preventDefault(),void(ev.eventType==Hammer.EVENT_START&&inst.trigger(this.name,ev)))}},Hammer.gestures.Transform={name:"transform",index:45,defaults:{transform_min_scale:.01,transform_min_rotation:1,transform_always_block:!1},triggered:!1,handler:function(ev,inst){if(Hammer.detection.current.name!=this.name&&this.triggered)return inst.trigger(this.name+"end",ev),void(this.triggered=!1);if(!(ev.touches.length<2))switch(inst.options.transform_always_block&&ev.preventDefault(),ev.eventType){case Hammer.EVENT_START:this.triggered=!1;break;case Hammer.EVENT_MOVE:var scale_threshold=Math.abs(1-ev.scale),rotation_threshold=Math.abs(ev.rotation);if(scale_threshold<inst.options.transform_min_scale&&rotation_threshold<inst.options.transform_min_rotation)return;Hammer.detection.current.name=this.name,this.triggered||(inst.trigger(this.name+"start",ev),this.triggered=!0),inst.trigger(this.name,ev),rotation_threshold>inst.options.transform_min_rotation&&inst.trigger("rotate",ev),scale_threshold>inst.options.transform_min_scale&&(inst.trigger("pinch",ev),inst.trigger("pinch"+(ev.scale<1?"in":"out"),ev));break;case Hammer.EVENT_END:this.triggered&&inst.trigger(this.name+"end",ev),this.triggered=!1}}},window.Hammer=Hammer}(this);var IScroll=function(window,document,Math){function IScroll(el,options){this.wrapper="string"==typeof el?document.querySelector(el):el,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller.style,this.options={startX:0,startY:0,scrollY:!0,directionLockThreshold:5,momentum:!0,bounce:!0,bounceTime:600,bounceEasing:"",preventDefault:!0,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT)$/},HWCompositing:!0,useTransition:!0,useTransform:!0};for(var i in options)this.options[i]=options[i];this.translateZ=this.options.HWCompositing&&utils.hasPerspective?" translateZ(0)":"",this.options.useTransition=utils.hasTransition&&this.options.useTransition,this.options.useTransform=utils.hasTransform&&this.options.useTransform,this.options.eventPassthrough=this.options.eventPassthrough===!0?"vertical":this.options.eventPassthrough,this.options.preventDefault=!this.options.eventPassthrough&&this.options.preventDefault,this.options.scrollY="vertical"==this.options.eventPassthrough?!1:this.options.scrollY,this.options.scrollX="horizontal"==this.options.eventPassthrough?!1:this.options.scrollX,this.options.freeScroll=this.options.freeScroll&&!this.options.eventPassthrough,this.options.directionLockThreshold=this.options.eventPassthrough?0:this.options.directionLockThreshold,this.options.bounceEasing="string"==typeof this.options.bounceEasing?utils.ease[this.options.bounceEasing]||utils.ease.circular:this.options.bounceEasing,this.options.resizePolling=void 0===this.options.resizePolling?60:this.options.resizePolling,this.options.tap===!0&&(this.options.tap="tap"),this.x=0,this.y=0,this.directionX=0,this.directionY=0,this._events={},this._init(),this.refresh(),this.scrollTo(this.options.startX,this.options.startY),this.enable()}var rAF=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(callback){window.setTimeout(callback,1e3/60)},utils=function(){function _prefixStyle(style){return _vendor===!1?!1:""===_vendor?style:_vendor+style.charAt(0).toUpperCase()+style.substr(1)}var me={},_elementStyle=document.createElement("div").style,_vendor=function(){for(var transform,vendors=["t","webkitT","MozT","msT","OT"],i=0,l=vendors.length;l>i;i++)if(transform=vendors[i]+"ransform",transform in _elementStyle)return vendors[i].substr(0,vendors[i].length-1);return!1}();me.getTime=Date.now||function(){return(new Date).getTime()},me.extend=function(target,obj){for(var i in obj)target[i]=obj[i]},me.addEvent=function(el,type,fn,capture){el.addEventListener(type,fn,!!capture)},me.removeEvent=function(el,type,fn,capture){el.removeEventListener(type,fn,!!capture)},me.momentum=function(current,start,time,lowerMargin,wrapperSize){var destination,duration,distance=current-start,speed=Math.abs(distance)/time,deceleration=6e-4;return destination=current+speed*speed/(2*deceleration)*(0>distance?-1:1),duration=speed/deceleration,lowerMargin>destination?(destination=wrapperSize?lowerMargin-wrapperSize/2.5*(speed/8):lowerMargin,distance=Math.abs(destination-current),duration=distance/speed):destination>0&&(destination=wrapperSize?wrapperSize/2.5*(speed/8):0,distance=Math.abs(current)+destination,duration=distance/speed),{destination:Math.round(destination),duration:duration}};var _transform=_prefixStyle("transform");return me.extend(me,{hasTransform:_transform!==!1,hasPerspective:_prefixStyle("perspective")in _elementStyle,hasTouch:"ontouchstart"in window,hasPointer:navigator.msPointerEnabled,hasTransition:_prefixStyle("transition")in _elementStyle}),me.isAndroidBrowser=/Android/.test(window.navigator.appVersion)&&/Version\/\d/.test(window.navigator.appVersion),me.extend(me.style={},{transform:_transform,transitionTimingFunction:_prefixStyle("transitionTimingFunction"),transitionDuration:_prefixStyle("transitionDuration"),transformOrigin:_prefixStyle("transformOrigin")}),me.hasClass=function(e,c){var re=new RegExp("(^|\\s)"+c+"(\\s|$)");return re.test(e.className)},me.addClass=function(e,c){if(!me.hasClass(e,c)){var newclass=e.className.split(" ");newclass.push(c),e.className=newclass.join(" ")}},me.removeClass=function(e,c){if(me.hasClass(e,c)){var re=new RegExp("(^|\\s)"+c+"(\\s|$)","g");e.className=e.className.replace(re," ")}},me.offset=function(el){for(var left=-el.offsetLeft,top=-el.offsetTop;el=el.offsetParent;)left-=el.offsetLeft,top-=el.offsetTop;return{left:left,top:top}},me.preventDefaultException=function(el,exceptions){for(var i in exceptions)if(exceptions[i].test(el[i]))return!0;return!1},me.extend(me.eventType={},{touchstart:1,touchmove:1,touchend:1,mousedown:2,mousemove:2,mouseup:2,MSPointerDown:3,MSPointerMove:3,MSPointerUp:3}),me.extend(me.ease={},{quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(k){return k*(2-k)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(k){return Math.sqrt(1- --k*k)}},back:{style:"cubic-bezier(0.175, 0.885, 0.32, 1.275)",fn:function(k){var b=4;return(k-=1)*k*((b+1)*k+b)+1}},bounce:{style:"",fn:function(k){return(k/=1)<1/2.75?7.5625*k*k:2/2.75>k?7.5625*(k-=1.5/2.75)*k+.75:2.5/2.75>k?7.5625*(k-=2.25/2.75)*k+.9375:7.5625*(k-=2.625/2.75)*k+.984375}},elastic:{style:"",fn:function(k){var f=.22,e=.4;return 0===k?0:1==k?1:e*Math.pow(2,-10*k)*Math.sin(2*(k-f/4)*Math.PI/f)+1}}}),me.tap=function(e,eventName){var ev=document.createEvent("Event");ev.initEvent(eventName,!0,!0),ev.pageX=e.pageX,ev.pageY=e.pageY,e.target.dispatchEvent(ev)},me.click=function(e){var ev,target=e.target;"SELECT"!=target.tagName&&"INPUT"!=target.tagName&&"TEXTAREA"!=target.tagName&&(ev=document.createEvent("MouseEvents"),ev.initMouseEvent("click",!0,!0,e.view,1,target.screenX,target.screenY,target.clientX,target.clientY,e.ctrlKey,e.altKey,e.shiftKey,e.metaKey,0,null),ev._constructed=!0,target.dispatchEvent(ev))
},me}();return IScroll.prototype={version:"5.0.6",_init:function(){this._initEvents()},destroy:function(){this._initEvents(!0),this._execEvent("destroy")},_transitionEnd:function(e){e.target==this.scroller&&(this._transitionTime(0),this.resetPosition(this.options.bounceTime)||this._execEvent("scrollEnd"))},_start:function(e){if(!(1!=utils.eventType[e.type]&&0!==e.button||!this.enabled||this.initiated&&utils.eventType[e.type]!==this.initiated)){!this.options.preventDefault||utils.isAndroidBrowser||utils.preventDefaultException(e.target,this.options.preventDefaultException)||e.preventDefault();var pos,point=e.touches?e.touches[0]:e;this.initiated=utils.eventType[e.type],this.moved=!1,this.distX=0,this.distY=0,this.directionX=0,this.directionY=0,this.directionLocked=0,this._transitionTime(),this.isAnimating=!1,this.startTime=utils.getTime(),this.options.useTransition&&this.isInTransition&&(pos=this.getComputedPosition(),this._translate(Math.round(pos.x),Math.round(pos.y)),this._execEvent("scrollEnd"),this.isInTransition=!1),this.startX=this.x,this.startY=this.y,this.absStartX=this.x,this.absStartY=this.y,this.pointX=point.pageX,this.pointY=point.pageY,this._execEvent("beforeScrollStart")}},_move:function(e){if(this.enabled&&utils.eventType[e.type]===this.initiated){this.options.preventDefault&&e.preventDefault();var newX,newY,absDistX,absDistY,point=e.touches?e.touches[0]:e,deltaX=point.pageX-this.pointX,deltaY=point.pageY-this.pointY,timestamp=utils.getTime();if(this.pointX=point.pageX,this.pointY=point.pageY,this.distX+=deltaX,this.distY+=deltaY,absDistX=Math.abs(this.distX),absDistY=Math.abs(this.distY),!(timestamp-this.endTime>300&&10>absDistX&&10>absDistY)){if(this.directionLocked||this.options.freeScroll||(this.directionLocked=absDistX>absDistY+this.options.directionLockThreshold?"h":absDistY>=absDistX+this.options.directionLockThreshold?"v":"n"),"h"==this.directionLocked){if("vertical"==this.options.eventPassthrough)e.preventDefault();else if("horizontal"==this.options.eventPassthrough)return void(this.initiated=!1);deltaY=0}else if("v"==this.directionLocked){if("horizontal"==this.options.eventPassthrough)e.preventDefault();else if("vertical"==this.options.eventPassthrough)return void(this.initiated=!1);deltaX=0}deltaX=this.hasHorizontalScroll?deltaX:0,deltaY=this.hasVerticalScroll?deltaY:0,newX=this.x+deltaX,newY=this.y+deltaY,(newX>0||newX<this.maxScrollX)&&(newX=this.options.bounce?this.x+deltaX/3:newX>0?0:this.maxScrollX),(newY>0||newY<this.maxScrollY)&&(newY=this.options.bounce?this.y+deltaY/3:newY>0?0:this.maxScrollY),this.directionX=deltaX>0?-1:0>deltaX?1:0,this.directionY=deltaY>0?-1:0>deltaY?1:0,this.moved||this._execEvent("scrollStart"),this.moved=!0,this._translate(newX,newY),timestamp-this.startTime>300&&(this.startTime=timestamp,this.startX=this.x,this.startY=this.y)}}},_end:function(e){if(this.enabled&&utils.eventType[e.type]===this.initiated){this.options.preventDefault&&!utils.preventDefaultException(e.target,this.options.preventDefaultException)&&e.preventDefault();var momentumX,momentumY,duration=(e.changedTouches?e.changedTouches[0]:e,utils.getTime()-this.startTime),newX=Math.round(this.x),newY=Math.round(this.y),distanceX=Math.abs(newX-this.startX),distanceY=Math.abs(newY-this.startY),time=0,easing="";if(this.scrollTo(newX,newY),this.isInTransition=0,this.initiated=0,this.endTime=utils.getTime(),!this.resetPosition(this.options.bounceTime))return this.moved?this._events.flick&&200>duration&&100>distanceX&&100>distanceY?void this._execEvent("flick"):(this.options.momentum&&300>duration&&(momentumX=this.hasHorizontalScroll?utils.momentum(this.x,this.startX,duration,this.maxScrollX,this.options.bounce?this.wrapperWidth:0):{destination:newX,duration:0},momentumY=this.hasVerticalScroll?utils.momentum(this.y,this.startY,duration,this.maxScrollY,this.options.bounce?this.wrapperHeight:0):{destination:newY,duration:0},newX=momentumX.destination,newY=momentumY.destination,time=Math.max(momentumX.duration,momentumY.duration),this.isInTransition=1),newX!=this.x||newY!=this.y?((newX>0||newX<this.maxScrollX||newY>0||newY<this.maxScrollY)&&(easing=utils.ease.quadratic),void this.scrollTo(newX,newY,time,easing)):void this._execEvent("scrollEnd")):(this.options.tap&&utils.tap(e,this.options.tap),void(this.options.click&&utils.click(e)))}},_resize:function(){var that=this;clearTimeout(this.resizeTimeout),this.resizeTimeout=setTimeout(function(){that.refresh()},this.options.resizePolling)},resetPosition:function(time){var x=this.x,y=this.y;return time=time||0,!this.hasHorizontalScroll||this.x>0?x=0:this.x<this.maxScrollX&&(x=this.maxScrollX),!this.hasVerticalScroll||this.y>0?y=0:this.y<this.maxScrollY&&(y=this.maxScrollY),x==this.x&&y==this.y?!1:(this.scrollTo(x,y,time,this.options.bounceEasing),!0)},disable:function(){this.enabled=!1},enable:function(){this.enabled=!0},refresh:function(){this.wrapper.offsetHeight;this.wrapperWidth=this.wrapper.clientWidth,this.wrapperHeight=this.wrapper.clientHeight,this.scrollerWidth=this.scroller.offsetWidth,this.scrollerHeight=this.scroller.offsetHeight,this.maxScrollX=this.wrapperWidth-this.scrollerWidth,this.maxScrollY=this.wrapperHeight-this.scrollerHeight,this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollX<0,this.hasVerticalScroll=this.options.scrollY&&this.maxScrollY<0,this.hasHorizontalScroll||(this.maxScrollX=0,this.scrollerWidth=this.wrapperWidth),this.hasVerticalScroll||(this.maxScrollY=0,this.scrollerHeight=this.wrapperHeight),this.endTime=0,this.directionX=0,this.directionY=0,this.wrapperOffset=utils.offset(this.wrapper),this._execEvent("refresh"),this.resetPosition()},on:function(type,fn){this._events[type]||(this._events[type]=[]),this._events[type].push(fn)},_execEvent:function(type){if(this._events[type]){var i=0,l=this._events[type].length;if(l)for(;l>i;i++)this._events[type][i].call(this)}},scrollBy:function(x,y,time,easing){x=this.x+x,y=this.y+y,time=time||0,this.scrollTo(x,y,time,easing)},scrollTo:function(x,y,time,easing){easing=easing||utils.ease.circular,!time||this.options.useTransition&&easing.style?(this._transitionTimingFunction(easing.style),this._transitionTime(time),this._translate(x,y)):this._animate(x,y,time,easing.fn)},scrollToElement:function(el,time,offsetX,offsetY,easing){if(el=el.nodeType?el:this.scroller.querySelector(el)){var pos=utils.offset(el);pos.left-=this.wrapperOffset.left,pos.top-=this.wrapperOffset.top,offsetX===!0&&(offsetX=Math.round(el.offsetWidth/2-this.wrapper.offsetWidth/2)),offsetY===!0&&(offsetY=Math.round(el.offsetHeight/2-this.wrapper.offsetHeight/2)),pos.left-=offsetX||0,pos.top-=offsetY||0,pos.left=pos.left>0?0:pos.left<this.maxScrollX?this.maxScrollX:pos.left,pos.top=pos.top>0?0:pos.top<this.maxScrollY?this.maxScrollY:pos.top,time=void 0===time||null===time||"auto"===time?Math.max(Math.abs(this.x-pos.left),Math.abs(this.y-pos.top)):time,this.scrollTo(pos.left,pos.top,time,easing)}},_transitionTime:function(time){time=time||0,this.scrollerStyle[utils.style.transitionDuration]=time+"ms"},_transitionTimingFunction:function(easing){this.scrollerStyle[utils.style.transitionTimingFunction]=easing},_translate:function(x,y){this.options.useTransform?this.scrollerStyle[utils.style.transform]="translate("+x+"px,"+y+"px)"+this.translateZ:(x=Math.round(x),y=Math.round(y),this.scrollerStyle.left=x+"px",this.scrollerStyle.top=y+"px"),this.x=x,this.y=y},_initEvents:function(remove){var eventType=remove?utils.removeEvent:utils.addEvent,target=this.options.bindToWrapper?this.wrapper:window;eventType(window,"orientationchange",this),eventType(window,"resize",this),this.options.click&&eventType(this.wrapper,"click",this,!0),this.options.disableMouse||(eventType(this.wrapper,"mousedown",this),eventType(target,"mousemove",this),eventType(target,"mousecancel",this),eventType(target,"mouseup",this)),utils.hasPointer&&!this.options.disablePointer&&(eventType(this.wrapper,"MSPointerDown",this),eventType(target,"MSPointerMove",this),eventType(target,"MSPointerCancel",this),eventType(target,"MSPointerUp",this)),utils.hasTouch&&!this.options.disableTouch&&(eventType(this.wrapper,"touchstart",this),eventType(target,"touchmove",this),eventType(target,"touchcancel",this),eventType(target,"touchend",this)),eventType(this.scroller,"transitionend",this),eventType(this.scroller,"webkitTransitionEnd",this),eventType(this.scroller,"oTransitionEnd",this),eventType(this.scroller,"MSTransitionEnd",this)},getComputedPosition:function(){var x,y,matrix=window.getComputedStyle(this.scroller,null);return this.options.useTransform?(matrix=matrix[utils.style.transform].split(")")[0].split(", "),x=+(matrix[12]||matrix[4]),y=+(matrix[13]||matrix[5])):(x=+matrix.left.replace(/[^-\d]/g,""),y=+matrix.top.replace(/[^-\d]/g,"")),{x:x,y:y}},_animate:function(destX,destY,duration,easingFn){function step(){var newX,newY,easing,now=utils.getTime();return now>=destTime?(that.isAnimating=!1,that._translate(destX,destY),void(that.resetPosition(that.options.bounceTime)||that._execEvent("scrollEnd"))):(now=(now-startTime)/duration,easing=easingFn(now),newX=(destX-startX)*easing+startX,newY=(destY-startY)*easing+startY,that._translate(newX,newY),void(that.isAnimating&&rAF(step)))}var that=this,startX=this.x,startY=this.y,startTime=utils.getTime(),destTime=startTime+duration;this.isAnimating=!0,step()},handleEvent:function(e){switch(e.type){case"touchstart":case"MSPointerDown":case"mousedown":this._start(e);break;case"touchmove":case"MSPointerMove":case"mousemove":this._move(e);break;case"touchend":case"MSPointerUp":case"mouseup":case"touchcancel":case"MSPointerCancel":case"mousecancel":this._end(e);break;case"orientationchange":case"resize":this._resize();break;case"transitionend":case"webkitTransitionEnd":case"oTransitionEnd":case"MSTransitionEnd":this._transitionEnd(e);break;case"DOMMouseScroll":case"mousewheel":this._wheel(e);break;case"keydown":this._key(e);break;case"click":e._constructed||(e.preventDefault(),e.stopPropagation())}}},IScroll.ease=utils.ease,IScroll}(window,document,Math),MicroEvent=function(){};MicroEvent.prototype={on:function(event,fct){this._events=this._events||{},this._events[event]=this._events[event]||[],this._events[event].push(fct)},once:function(event,fct){var self=this,wrapper=function(){return self.off(event,wrapper),fct.apply(null,arguments)};this.on(event,wrapper)},off:function(event,fct){this._events=this._events||{},event in this._events!=!1&&this._events[event].splice(this._events[event].indexOf(fct),1)},emit:function(event){if(this._events=this._events||{},event in this._events!=!1)for(var i=0;i<this._events[event].length;i++)this._events[event][i].apply(this,Array.prototype.slice.call(arguments,1))}},MicroEvent.mixin=function(destObject){for(var props=["on","once","off","emit"],i=0;i<props.length;i++)"function"==typeof destObject?destObject.prototype[props[i]]=MicroEvent.prototype[props[i]]:destObject[props[i]]=MicroEvent.prototype[props[i]]},"undefined"!=typeof module&&"exports"in module&&(module.exports=MicroEvent),window.Modernizr=function(window,document,undefined){function setCss(str){mStyle.cssText=str}function is(obj,type){return typeof obj===type}function contains(str,substr){return!!~(""+str).indexOf(substr)}function testProps(props,prefixed){for(var i in props){var prop=props[i];if(!contains(prop,"-")&&mStyle[prop]!==undefined)return"pfx"==prefixed?prop:!0}return!1}function testDOMProps(props,obj,elem){for(var i in props){var item=obj[props[i]];if(item!==undefined)return elem===!1?props[i]:is(item,"function")?item.bind(elem||obj):item}return!1}function testPropsAll(prop,prefixed,elem){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+ucProp).split(" ");return is(prefixed,"string")||is(prefixed,"undefined")?testProps(props,prefixed):(props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" "),testDOMProps(props,prefixed,elem))}var inputElem,featureName,hasOwnProp,version="2.6.2",Modernizr={},enableClasses=!0,docElement=document.documentElement,mod="modernizr",modElem=document.createElement(mod),mStyle=modElem.style,prefixes=({}.toString," -webkit- -moz- -o- -ms- ".split(" ")),omPrefixes="Webkit Moz O ms",cssomPrefixes=omPrefixes.split(" "),domPrefixes=omPrefixes.toLowerCase().split(" "),ns={svg:"http://www.w3.org/2000/svg"},tests={},classes=[],slice=classes.slice,injectElementWithStyles=function(rule,callback,nodes,testnames){var style,ret,node,docOverflow,div=document.createElement("div"),body=document.body,fakeBody=body||document.createElement("body");if(parseInt(nodes,10))for(;nodes--;)node=document.createElement("div"),node.id=testnames?testnames[nodes]:mod+(nodes+1),div.appendChild(node);return style=["­",'<style id="s',mod,'">',rule,"</style>"].join(""),div.id=mod,(body?div:fakeBody).innerHTML+=style,fakeBody.appendChild(div),body||(fakeBody.style.background="",fakeBody.style.overflow="hidden",docOverflow=docElement.style.overflow,docElement.style.overflow="hidden",docElement.appendChild(fakeBody)),ret=callback(div,rule),body?div.parentNode.removeChild(div):(fakeBody.parentNode.removeChild(fakeBody),docElement.style.overflow=docOverflow),!!ret},_hasOwnProperty={}.hasOwnProperty;hasOwnProp=is(_hasOwnProperty,"undefined")||is(_hasOwnProperty.call,"undefined")?function(object,property){return property in object&&is(object.constructor.prototype[property],"undefined")}:function(object,property){return _hasOwnProperty.call(object,property)},Function.prototype.bind||(Function.prototype.bind=function(that){var target=this;if("function"!=typeof target)throw new TypeError;var args=slice.call(arguments,1),bound=function(){if(this instanceof bound){var F=function(){};F.prototype=target.prototype;var self=new F,result=target.apply(self,args.concat(slice.call(arguments)));return Object(result)===result?result:self}return target.apply(that,args.concat(slice.call(arguments)))};return bound}),tests.canvas=function(){var elem=document.createElement("canvas");return!(!elem.getContext||!elem.getContext("2d"))},tests.borderradius=function(){return testPropsAll("borderRadius")},tests.boxshadow=function(){return testPropsAll("boxShadow")},tests.cssanimations=function(){return testPropsAll("animationName")},tests.csstransforms=function(){return!!testPropsAll("transform")},tests.csstransforms3d=function(){var ret=!!testPropsAll("perspective");return ret&&"webkitPerspective"in docElement.style&&injectElementWithStyles("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(node){ret=9===node.offsetLeft&&3===node.offsetHeight}),ret},tests.csstransitions=function(){return testPropsAll("transition")},tests.svg=function(){return!!document.createElementNS&&!!document.createElementNS(ns.svg,"svg").createSVGRect};for(var feature in tests)hasOwnProp(tests,feature)&&(featureName=feature.toLowerCase(),Modernizr[featureName]=tests[feature](),classes.push((Modernizr[featureName]?"":"no-")+featureName));return Modernizr.addTest=function(feature,test){if("object"==typeof feature)for(var key in feature)hasOwnProp(feature,key)&&Modernizr.addTest(key,feature[key]);else{if(feature=feature.toLowerCase(),Modernizr[feature]!==undefined)return Modernizr;test="function"==typeof test?test():test,"undefined"!=typeof enableClasses&&enableClasses&&(docElement.className+=" "+(test?"":"no-")+feature),Modernizr[feature]=test}return Modernizr},setCss(""),modElem=inputElem=null,function(window,document){function addStyleSheet(ownerDocument,cssText){var p=ownerDocument.createElement("p"),parent=ownerDocument.getElementsByTagName("head")[0]||ownerDocument.documentElement;return p.innerHTML="x<style>"+cssText+"</style>",parent.insertBefore(p.lastChild,parent.firstChild)}function getElements(){var elements=html5.elements;return"string"==typeof elements?elements.split(" "):elements}function getExpandoData(ownerDocument){var data=expandoData[ownerDocument[expando]];return data||(data={},expanID++,ownerDocument[expando]=expanID,expandoData[expanID]=data),data}function createElement(nodeName,ownerDocument,data){if(ownerDocument||(ownerDocument=document),supportsUnknownElements)return ownerDocument.createElement(nodeName);data||(data=getExpandoData(ownerDocument));var node;return node=data.cache[nodeName]?data.cache[nodeName].cloneNode():saveClones.test(nodeName)?(data.cache[nodeName]=data.createElem(nodeName)).cloneNode():data.createElem(nodeName),node.canHaveChildren&&!reSkip.test(nodeName)?data.frag.appendChild(node):node}function createDocumentFragment(ownerDocument,data){if(ownerDocument||(ownerDocument=document),supportsUnknownElements)return ownerDocument.createDocumentFragment();data=data||getExpandoData(ownerDocument);for(var clone=data.frag.cloneNode(),i=0,elems=getElements(),l=elems.length;l>i;i++)clone.createElement(elems[i]);return clone}function shivMethods(ownerDocument,data){data.cache||(data.cache={},data.createElem=ownerDocument.createElement,data.createFrag=ownerDocument.createDocumentFragment,data.frag=data.createFrag()),ownerDocument.createElement=function(nodeName){return html5.shivMethods?createElement(nodeName,ownerDocument,data):data.createElem(nodeName)},ownerDocument.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+getElements().join().replace(/\w+/g,function(nodeName){return data.createElem(nodeName),data.frag.createElement(nodeName),'c("'+nodeName+'")'})+");return n}")(html5,data.frag)}function shivDocument(ownerDocument){ownerDocument||(ownerDocument=document);var data=getExpandoData(ownerDocument);return!html5.shivCSS||supportsHtml5Styles||data.hasCSS||(data.hasCSS=!!addStyleSheet(ownerDocument,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),supportsUnknownElements||shivMethods(ownerDocument,data),ownerDocument}var supportsHtml5Styles,supportsUnknownElements,options=window.html5||{},reSkip=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,saveClones=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,expando="_html5shiv",expanID=0,expandoData={};!function(){try{var a=document.createElement("a");a.innerHTML="<xyz></xyz>",supportsHtml5Styles="hidden"in a,supportsUnknownElements=1==a.childNodes.length||function(){document.createElement("a");var frag=document.createDocumentFragment();return"undefined"==typeof frag.cloneNode||"undefined"==typeof frag.createDocumentFragment||"undefined"==typeof frag.createElement}()}catch(e){supportsHtml5Styles=!0,supportsUnknownElements=!0}}();var html5={elements:options.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:options.shivCSS!==!1,supportsUnknownElements:supportsUnknownElements,shivMethods:options.shivMethods!==!1,type:"default",shivDocument:shivDocument,createElement:createElement,createDocumentFragment:createDocumentFragment};window.html5=html5,shivDocument(document)}(this,document),Modernizr._version=version,Modernizr._prefixes=prefixes,Modernizr._domPrefixes=domPrefixes,Modernizr._cssomPrefixes=cssomPrefixes,Modernizr.testProp=function(prop){return testProps([prop])},Modernizr.testAllProps=testPropsAll,Modernizr.testStyles=injectElementWithStyles,docElement.className=docElement.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(enableClasses?" js "+classes.join(" "):""),Modernizr}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var A,B,l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}};B=function(a){function b(a){var e,f,g,a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a};for(f=0;d>f;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;b>f;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var c,b=0;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var m,n,h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var l,o,k=b.createElement("script"),e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var j,e=b.createElement("link"),c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))},function(global,undefined){"use strict";function addFromSetImmediateArguments(args){return tasksByHandle[nextHandle]=partiallyApplied.apply(undefined,args),nextHandle++}function partiallyApplied(handler){var args=[].slice.call(arguments,1);return function(){"function"==typeof handler?handler.apply(undefined,args):new Function(""+handler)()}}function runIfPresent(handle){if(currentlyRunningATask)setTimeout(partiallyApplied(runIfPresent,handle),0);else{var task=tasksByHandle[handle];if(task){currentlyRunningATask=!0;try{task()}finally{clearImmediate(handle),currentlyRunningATask=!1}}}}function clearImmediate(handle){delete tasksByHandle[handle]}function installNextTickImplementation(){setImmediate=function(){var handle=addFromSetImmediateArguments(arguments);return process.nextTick(partiallyApplied(runIfPresent,handle)),handle}}function canUsePostMessage(){if(global.postMessage&&!global.importScripts){var postMessageIsAsynchronous=!0,oldOnMessage=global.onmessage;return global.onmessage=function(){postMessageIsAsynchronous=!1},global.postMessage("","*"),global.onmessage=oldOnMessage,postMessageIsAsynchronous}}function installPostMessageImplementation(){var messagePrefix="setImmediate$"+Math.random()+"$",onGlobalMessage=function(event){event.source===global&&"string"==typeof event.data&&0===event.data.indexOf(messagePrefix)&&runIfPresent(+event.data.slice(messagePrefix.length))};global.addEventListener?global.addEventListener("message",onGlobalMessage,!1):global.attachEvent("onmessage",onGlobalMessage),setImmediate=function(){var handle=addFromSetImmediateArguments(arguments);return global.postMessage(messagePrefix+handle,"*"),handle}}function installMessageChannelImplementation(){var channel=new MessageChannel;channel.port1.onmessage=function(event){var handle=event.data;runIfPresent(handle)},setImmediate=function(){var handle=addFromSetImmediateArguments(arguments);return channel.port2.postMessage(handle),handle}}function installReadyStateChangeImplementation(){var html=doc.documentElement;setImmediate=function(){var handle=addFromSetImmediateArguments(arguments),script=doc.createElement("script");return script.onreadystatechange=function(){runIfPresent(handle),script.onreadystatechange=null,html.removeChild(script),script=null},html.appendChild(script),handle}}function installSetTimeoutImplementation(){setImmediate=function(){var handle=addFromSetImmediateArguments(arguments);return setTimeout(partiallyApplied(runIfPresent,handle),0),handle}}if(!global.setImmediate){var setImmediate,nextHandle=1,tasksByHandle={},currentlyRunningATask=!1,doc=global.document,attachTo=Object.getPrototypeOf&&Object.getPrototypeOf(global);attachTo=attachTo&&attachTo.setTimeout?attachTo:global,"[object process]"==={}.toString.call(global.process)?installNextTickImplementation():canUsePostMessage()?installPostMessageImplementation():global.MessageChannel?installMessageChannelImplementation():doc&&"onreadystatechange"in doc.createElement("script")?installReadyStateChangeImplementation():installSetTimeoutImplementation(),attachTo.setImmediate=setImmediate,attachTo.clearImmediate=clearImmediate}}(new Function("return this")()),function(){function Viewport(){return this.PRE_IOS7_VIEWPORT="initial-scale=1, maximum-scale=1, user-scalable=no",this.IOS7_VIEWPORT="width=device-width, height=device-height, initial-scale=1, maximum-scale=1, user-scalable=no",this.DEFAULT_VIEWPORT="initial-scale=1, maximum-scale=1, user-scalable=no",this.ensureViewportElement(),this.platform={},this.platform.name=this.getPlatformName(),this.platform.version=this.getPlatformVersion(),this}Viewport.prototype.ensureViewportElement=function(){this.viewportElement=document.querySelector("meta[name=viewport]"),this.viewportElement||(this.viewportElement=document.createElement("meta"),this.viewportElement.name="viewport",document.head.appendChild(this.viewportElement))},Viewport.prototype.setup=function(){function isWebView(){return!!(window.cordova||window.phonegap||window.PhoneGap)}this.viewportElement&&"true"!=this.viewportElement.getAttribute("data-no-adjust")&&("ios"==this.platform.name?this.platform.version>=7&&isWebView()?this.viewportElement.setAttribute("content",this.IOS7_VIEWPORT):this.viewportElement.setAttribute("content",this.PRE_IOS7_VIEWPORT):this.viewportElement.setAttribute("content",this.DEFAULT_VIEWPORT))},Viewport.prototype.getPlatformName=function(){return navigator.userAgent.match(/Android/i)?"android":navigator.userAgent.match(/iPhone|iPad|iPod/i)?"ios":void 0},Viewport.prototype.getPlatformVersion=function(){var start=window.navigator.userAgent.indexOf("OS ");return window.Number(window.navigator.userAgent.substr(start+3,3).replace("_","."))},window.Viewport=Viewport}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/back_button.tpl",'<span class="toolbar-button--quiet {{modifierTemplater(\'toolbar-button--quiet--*\')}}" ng-click="$root.ons.findParentComponentUntil(\'ons-navigator\', $event).popPage()" style="height: 44px; line-height: 0; padding: 0; position: relative;">\n <i class="ion-ios7-arrow-back ons-back-button__icon" style="vertical-align: top; background-color: transparent; height: 44px; line-height: 44px; font-size: 36px; margin-left: 8px; margin-right: 2px; width: 16px; display: inline-block; padding-top: 1px;"></i><span style="vertical-align: top; display: inline-block; line-height: 44px; height: 44px;" class="back-button__label"></span>\n</span>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/button.tpl",'<span class="label ons-button-inner"></span>\n<span class="spinner button__spinner {{modifierTemplater(\'button--*__spinner\')}}"></span>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/icon.tpl",'<i class="fa fa-{{icon}} fa-{{spin}} fa-{{fixedWidth}} fa-rotate-{{rotate}} fa-flip-{{flip}}" ng-class="sizeClass" ng-style="style"></i>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/row.tpl",'<div class="row row-{{align}} ons-row-inner"></div>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/screen.tpl",'<div class="ons-screen"></div>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/sliding_menu.tpl",'<div class="onsen-sliding-menu__behind ons-sliding-menu-inner"></div>\n<div class="onsen-sliding-menu__above ons-sliding-menu-inner"></div>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/split_view.tpl",'<div class="onsen-split-view__secondary full-screen ons-split-view-inner"></div>\n<div class="onsen-split-view__main full-screen ons-split-view-inner"></div>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/switch.tpl",'<label class="switch {{modifierTemplater(\'switch--*\')}}">\n <input type="checkbox" class="switch__input {{modifierTemplater(\'switch--*__input\')}}" ng-model="model">\n <div class="switch__toggle {{modifierTemplater(\'switch--*__toggle\')}}"></div>\n</label>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/tab.tpl",'<input type="radio" name="tab-bar-{{tabbarId}}" style="display: none">\n<button class="tab-bar__button tab-bar-inner {{tabbarModifierTemplater(\'tab-bar--*__button\')}} {{modifierTemplater(\'tab-bar__button--*\')}}" ng-click="tryToChange()">\n</button>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";
$templateCache.put("templates/tab_bar.tpl",'<div class="ons-tab-bar__content tab-bar__content"></div>\n<div ng-hide="hideTabs" class="tab-bar ons-tab-bar__footer {{modifierTemplater(\'tab-bar--*\')}} ons-tabbar-inner"></div>\n')}])}(),function(){try{app=angular.module("templates-main")}catch(err){app=angular.module("templates-main",[])}app.run(["$templateCache",function($templateCache){"use strict";$templateCache.put("templates/toolbar_button.tpl","<span class=\"toolbar-button {{modifierTemplater('toolbar-button--quiet--*')}} navigation-bar__line-height\" ng-transclude></span>\n")}])}(),window.DoorLock=function(){var DoorLock=function(options){options=options||{},this._lockList=[],this._waitList=[],this._log=options.log||function(){}};return DoorLock.generateId=function(){var i=0;return function(){return i++}}(),DoorLock.prototype={lock:function(){var self=this,unlock=function(){self._unlock(unlock)};return unlock.id=DoorLock.generateId(),this._lockList.push(unlock),this._log("lock: "+unlock.id),unlock},_unlock:function(fn){var index=this._lockList.indexOf(fn);if(-1===index)throw new Error("This function is not registered in the lock list.");this._lockList.splice(index,1),this._log("unlock: "+fn.id),this._tryToFreeWaitList()},_tryToFreeWaitList:function(){for(;!this.isLocked()&&this._waitList.length>0;)this._waitList.shift()()},waitUnlock:function(callback){if(!(callback instanceof Function))throw new Error("The callback param must be a function.");this.isLocked()?this._waitList.push(callback):callback()},isLocked:function(){return this._lockList.length>0}},DoorLock}(),window.ons=function(){"use strict";function waitDeviceReady(){var unlockDeviceReady=ons._readyLock.lock();window.addEventListener("DOMContentLoaded",function(){ons.isWebView()?window.document.addEventListener("deviceready",unlockDeviceReady,!1):unlockDeviceReady()},!1)}function waitOnsenUILoad(){var unlockOnsenUI=ons._readyLock.lock();module.run(["$compile","$rootScope","$onsen",function($compile,$rootScope){if("loading"===document.readyState||"uninitialized"==document.readyState)window.addEventListener("DOMContentLoaded",function(){document.body.appendChild(document.createElement("ons-dummy-for-init"))});else{if(!document.body)throw new Error("Invalid initialization state.");document.body.appendChild(document.createElement("ons-dummy-for-init"))}$rootScope.$on("$ons-ready",unlockOnsenUI)}])}function initAngularModule(){module.value("$onsGlobal",ons),module.run(["$compile","$rootScope","$onsen",function($compile,$rootScope,$onsen){ons._onsenService=$onsen,$rootScope.ons=window.ons,$rootScope.console=window.console,$rootScope.alert=window.alert,ons.$compile=$compile}])}function createOnsenFacade(){var ons={_readyLock:new DoorLock,_onsenService:null,_config:{autoStatusBarFill:!0},_unlockersDict:{},bootstrap:function(deps){deps=["onsen"].concat(angular.isArray(deps)?deps:[]);var doc=window.document;if("loading"==doc.readyState||"uninitialized"==doc.readyState)doc.addEventListener("DOMContentLoaded",function(){angular.bootstrap(doc.documentElement,deps)},!1);else{if(!doc.documentElement)throw new Error("Invalid state");angular.bootstrap(doc.documentElement,deps)}},enableAutoStatusBarFill:function(){if(this.isReady())throw new Error("This method must be called before ons.isReady() is true.");this._config.autoStatusBarFill=!0},disableAutoStatusBarFill:function(){if(this.isReady())throw new Error("This method must be called before ons.isReady() is true.");this._config.autoStatusBarFill=!1},findParentComponentUntil:function(name,dom){var element;return dom instanceof HTMLElement?element=angular.element(dom):dom instanceof angular.element?element=dom:dom.target&&(element=angular.element(dom.target)),element.inheritedData(name)},setDefaultDeviceBackButtonListener:function(listener){this._getOnsenService().getDefaultDeviceBackButtonHandler().setListener(listener)},disableDeviceBackButtonHandler:function(){this._getOnsenService().DeviceBackButtonHandler.disable()},enableDeviceBackButtonHandler:function(){this._getOnsenService().DeviceBackButtonHandler.enable()},findComponent:function(selector,dom){var target=(dom?dom:document).querySelector(selector);return target?angular.element(target).data(target.nodeName.toLowerCase())||null:null},isReady:function(){return!ons._readyLock.isLocked()},compile:function(dom){if(!ons.$compile)throw new Error("ons.$compile() is not ready. Wait for initialization with ons.ready().");if(!(dom instanceof HTMLElement))throw new Error("First argument must be an instance of HTMLElement.");var scope=angular.element(dom).scope();if(!scope)throw new Error("AngularJS Scope is null. Argument DOM element must be attached in DOM document.");ons.$compile(dom)(scope)},_getOnsenService:function(){if(!this._onsenService)throw new Error("$onsen is not loaded, wait for ons.ready().");return this._onsenService},ready:function(callback){if(callback instanceof Function)ons.isReady()?callback():ons._readyLock.waitUnlock(callback);else if(angular.isArray(callback)&&arguments[1]instanceof Function){var dependencies=callback;callback=arguments[1],ons.ready(function(){var $onsen=ons._getOnsenService();$onsen.waitForVariables(dependencies,callback)})}},isWebView:function(){if("loading"===document.readyState||"uninitialized"==document.readyState)throw new Error("isWebView() method is available after dom contents loaded.");return!!(window.cordova||window.phonegap||window.PhoneGap)}};return ons}var module=angular.module("onsen",["templates-main"]);angular.module("onsen.directives",["onsen"]);var ons=createOnsenFacade();return waitDeviceReady(),waitOnsenUILoad(),initAngularModule(),ons}(),function(){"use strict;";var module=angular.module("onsen");module.factory("FadeTransitionAnimator",["NavigatorTransitionAnimator",function(NavigatorTransitionAnimator){var FadeTransitionAnimator=NavigatorTransitionAnimator.extend({push:function(enterPage,leavePage,callback){animit.runAll(animit(enterPage.getPageView().getContentElement()).queue({css:{transform:"translate3D(0, 0, 0)",opacity:0},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:.4,timing:"linear"}).resetStyle().queue(function(done){callback(),done()}),animit(enterPage.getPageView().getToolbarElement()).queue({css:{transform:"translate3D(0, 0, 0)",opacity:0},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:.4,timing:"linear"}).resetStyle())},pop:function(enterPage,leavePage,callback){animit.runAll(animit(leavePage.getPageView().getContentElement()).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)",opacity:0},duration:.4,timing:"linear"}).queue(function(done){callback(),done()}),animit(leavePage.getPageView().getToolbarElement()).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)",opacity:0},duration:.4,timing:"linear"}))}});return FadeTransitionAnimator}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("IOSSlideTransitionAnimator",["NavigatorTransitionAnimator","PageView",function(NavigatorTransitionAnimator){var IOSSlideTransitionAnimator=NavigatorTransitionAnimator.extend({backgroundMask:angular.element('<div style="position: absolute; width: 100%;height: 100%; background-color: black; opacity: 0;"></div>'),_decompose:function(page){function excludeBackButtonLabel(elements){for(var result=[],i=0;i<elements.length;i++)result.push("ons-back-button"===elements[i].nodeName.toLowerCase()?elements[i].querySelector(".ons-back-button__icon"):elements[i]);return result}var left=page.getPageView().getToolbarLeftItemsElement(),right=page.getPageView().getToolbarRightItemsElement(),other=[].concat(0===left.children.length?left:excludeBackButtonLabel(left.children)).concat(0===right.children.length?right:excludeBackButtonLabel(right.children)),pageLabels=[page.getPageView().getToolbarCenterItemsElement(),page.getPageView().getToolbarBackButtonLabelElement()];return{pageLabels:pageLabels,other:other,content:page.getPageView().getContentElement(),toolbar:page.getPageView().getToolbarElement(),bottomToolbar:page.getPageView().getBottomToolbarElement()}},push:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();leavePage.element[0].parentNode.insertBefore(mask[0],leavePage.element[0].nextSibling);{var enterPageDecomposition=this._decompose(enterPage),leavePageDecomposition=this._decompose(leavePage),delta=function(){var rect=leavePage.element[0].getBoundingClientRect();return Math.round((rect.right-rect.left)/2*.6)}(),maskClear=animit(mask[0]).queue({opacity:0,transform:"translate3d(0, 0, 0)"}).queue({opacity:.1},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){mask.remove(),done()}),bothPageHasToolbar=enterPage.getPageView().hasToolbarElement()&&leavePage.getPageView().hasToolbarElement();!enterPage.getPageView().hasToolbarElement()&&!leavePage.getPageView().hasToolbarElement()}bothPageHasToolbar?animit.runAll(maskClear,animit([enterPageDecomposition.content,enterPageDecomposition.bottomToolbar]).queue({css:{transform:"translate3D(100%, 0px, 0px)"},duration:0}).queue({css:{transform:"translate3D(0px, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(enterPageDecomposition.toolbar).queue({css:{background:"none",backgroundColor:"rgba(0, 0, 0, 0)",borderColor:"rgba(0, 0, 0, 0)"},duration:0}).wait(.3).resetStyle({duration:.1,transition:"background-color 0.1s linear, border-color 0.1s linear"}),animit(enterPageDecomposition.pageLabels).queue({css:{transform:"translate3d("+delta+"px, 0, 0)",opacity:0},duration:0}).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(enterPageDecomposition.other).queue({css:{opacity:0},duration:0}).queue({css:{opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit([leavePageDecomposition.content,leavePageDecomposition.bottomToolbar]).queue({css:{transform:"translate3D(0, 0, 0)"},duration:0}).queue({css:{transform:"translate3D(-25%, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){callback(),done()}),animit(leavePageDecomposition.pageLabels).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3d(-"+delta+"px, 0, 0)",opacity:0},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(leavePageDecomposition.other).queue({css:{opacity:1},duration:0}).queue({css:{opacity:0},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle()):animit.runAll(maskClear,animit(enterPage.element[0]).queue({css:{transform:"translate3D(100%, 0px, 0px)"},duration:0}).queue({css:{transform:"translate3D(0px, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0, 0, 0)"},duration:0}).queue({css:{transform:"translate3D(-25%, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){callback(),done()}))},pop:function(enterPage,leavePage,done){var mask=this.backgroundMask.remove();enterPage.element[0].parentNode.insertBefore(mask[0],enterPage.element[0].nextSibling);var enterPageDecomposition=this._decompose(enterPage),leavePageDecomposition=this._decompose(leavePage),delta=function(){var rect=leavePage.element[0].getBoundingClientRect();return Math.round((rect.right-rect.left)/2*.6)}(),maskClear=animit(mask[0]).queue({opacity:.1,transform:"translate3d(0, 0, 0)"}).queue({opacity:0},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){mask.remove(),done()}),bothPageHasToolbar=enterPage.getPageView().hasToolbarElement()&&leavePage.getPageView().hasToolbarElement(),isToolbarNothing=!enterPage.getPageView().hasToolbarElement()&&!leavePage.getPageView().hasToolbarElement();bothPageHasToolbar||isToolbarNothing?animit.runAll(maskClear,animit([enterPageDecomposition.content,enterPageDecomposition.bottomToolbar]).queue({css:{transform:"translate3D(-25%, 0px, 0px)",opacity:.9},duration:0}).queue({css:{transform:"translate3D(0px, 0px, 0px)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(enterPageDecomposition.pageLabels).queue({css:{transform:"translate3d(-"+delta+"px, 0, 0)",opacity:0},duration:0}).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(enterPageDecomposition.toolbar).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(enterPageDecomposition.other).queue({css:{opacity:0},duration:0}).queue({css:{opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit([leavePageDecomposition.content,leavePageDecomposition.bottomToolbar]).queue({css:{transform:"translate3D(0px, 0px, 0px)"},duration:0}).queue({css:{transform:"translate3D(100%, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).wait(0).queue(function(finish){done(),finish()}),animit(leavePageDecomposition.other).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3d(0, 0, 0)",opacity:0},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}),animit(leavePageDecomposition.toolbar).queue({css:{background:"none",backgroundColor:"rgba(0, 0, 0, 0)",borderColor:"rgba(0, 0, 0, 0)"},duration:0}),animit(leavePageDecomposition.pageLabels).queue({css:{transform:"translate3d(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3d("+delta+"px, 0, 0)",opacity:0},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"})):animit.runAll(maskClear,animit(enterPage.element[0]).queue({css:{transform:"translate3D(-25%, 0px, 0px)",opacity:.9},duration:0}).queue({css:{transform:"translate3D(0px, 0px, 0px)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle(),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0px, 0px, 0px)"},duration:0}).queue({css:{transform:"translate3D(100%, 0px, 0px)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(finish){done(),finish()}))}});return IOSSlideTransitionAnimator}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("LiftTransitionAnimator",["NavigatorTransitionAnimator",function(NavigatorTransitionAnimator){var LiftTransitionAnimator=NavigatorTransitionAnimator.extend({backgroundMask:angular.element('<div style="position: absolute; width: 100%;height: 100%; background-color: black;"></div>'),push:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();leavePage.element[0].parentNode.insertBefore(mask[0],leavePage.element[0]);var maskClear=animit(mask[0]).wait(.6).queue(function(done){mask.remove(),done()});animit.runAll(maskClear,animit(enterPage.element[0]).queue({css:{transform:"translate3D(0, 100%, 0)"},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).wait(.2).resetStyle().queue(function(done){callback(),done()}),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:0}).queue({css:{transform:"translate3D(0, -10%, 0)",opacity:.9},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}))},pop:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();enterPage.element[0].parentNode.insertBefore(mask[0],enterPage.element[0]),animit.runAll(animit(mask[0]).wait(.4).queue(function(done){mask.remove(),done()}),animit(enterPage.element[0]).queue({css:{transform:"translate3D(0, -10%, 0)",opacity:.9},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)",opacity:1},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().wait(.4).queue(function(done){callback(),done()}),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0, 0, 0)"},duration:0}).queue({css:{transform:"translate3D(0, 100%, 0)"},duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}))}});return LiftTransitionAnimator}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("ModalView",["$onsen",function($onsen){var ModalView=Class.extend({_element:void 0,_scope:void 0,init:function(scope,element){this._scope=scope,this._element=element,this._scope.$on("$destroy",this._destroy.bind(this)),this._deviceBackButtonHandler=$onsen.DeviceBackButtonHandler.create(this._element,this._onDeviceBackButton.bind(this)),this.hide()},getDeviceBackButtonHandler:function(){return this._deviceBackButtonHandler},show:function(){this._element.css("display","table")},_isVisible:function(){return this._element[0].clientWidth>0},_onDeviceBackButton:function(){},hide:function(){this._element.css("display","none")},toggle:function(){return this._isVisible()?this.hide.apply(this,arguments):this.show.apply(this,arguments)},_destroy:function(){this.emit("destroy",{page:this}),this._deviceBackButtonHandler.destroy(),this._element=this._scope=null}});return MicroEvent.mixin(ModalView),ModalView}])}(),function(){"use strict;";var module=angular.module("onsen"),NavigatorPageObject=Class.extend({init:function(params){this.page=params.page,this.name=params.page,this.element=params.element,this.pageScope=params.pageScope,this.options=params.options,this.navigator=params.navigator},getPageView:function(){if(!this._pageView&&(this._pageView=this.element.inheritedData("ons-page"),!this._pageView))throw new Error("Fail to fetch PageView from ons-page element.");return this._pageView},destroy:function(){this.pageScope.$destroy(),this.element.remove(),this._pageView=null,this.element=null,this.pageScope=null,this.options=null;var index=this.navigator.pages.indexOf(this);-1!==index&&this.navigator.pages.splice(index,1),this.navigator=null}});module.factory("NavigatorView",["$http","$parse","$templateCache","$compile","$onsen","$timeout","SimpleSlideTransitionAnimator","NavigatorTransitionAnimator","LiftTransitionAnimator","NullTransitionAnimator","IOSSlideTransitionAnimator","FadeTransitionAnimator",function($http,$parse,$templateCache,$compile,$onsen,$timeout,SimpleSlideTransitionAnimator,NavigatorTransitionAnimator,LiftTransitionAnimator,NullTransitionAnimator,IOSSlideTransitionAnimator,FadeTransitionAnimator){var NavigatorView=Class.extend({_element:void 0,pages:void 0,_scope:void 0,_doorLock:void 0,_profiling:!1,init:function(options){options=options||options,this._element=options.element||angular.element(window.document.body),this._scope=options.scope||this._element.scope(),this._doorLock=new DoorLock,this.pages=[],this._deviceBackButtonHandler=$onsen.DeviceBackButtonHandler.create(this._element,this._onDeviceBackButton.bind(this)),this._scope.$on("$destroy",this._destroy.bind(this))},_destroy:function(){this.emit("destroy",{navigator:this}),this.pages.forEach(function(page){page.destroy()}),this._deviceBackButtonHandler.destroy(),this._deviceBackButtonHandler=null},_onDeviceBackButton:function(event){this.pages.length>1?this.popPage():event.callParentHandler()},_normalizePageElement:function(element){for(var i=0;i<element.length;i++)if(1===element[i].nodeType)return angular.element(element[i]);throw new Error("invalid state")},_createPageElementAndLinkFunction:function(templateHTML,pageScope){function safeApply(scope){var phase=scope.$root.$$phase;"$apply"!==phase&&"$digest"!==phase&&scope.$apply()}var div=document.createElement("div");div.innerHTML=templateHTML.trim();var pageElement=angular.element(div),hasPage=1===div.childElementCount&&"ons-page"===div.childNodes[0].nodeName.toLowerCase();if(!hasPage)throw new Error('You can not supply no "ons-page" element to "ons-navigator".');pageElement=angular.element(div.childNodes[0]);var link=$compile(pageElement);return{element:pageElement,link:function(){link(pageScope),safeApply(pageScope)}}},insertPage:function(index,page,options){if(options=options||{},options&&"object"!=typeof options)throw new Error("options must be an object. You supplied "+options);if(0===this.pages.length)return this.pushPage.apply(this,arguments);this._doorLock.waitUnlock(function(){var unlock=this._doorLock.lock();$onsen.getPageHTMLAsync(page).then(function(templateHTML){var pageScope=this._createPageScope(),object=this._createPageElementAndLinkFunction(templateHTML,pageScope),element=object.element,link=object.link;element=this._normalizePageElement(element);var pageObject=this._createPageObject(page,element,pageScope,options);this.pages.length>0?(index=normalizeIndex(index),this._element[0].insertBefore(element[0],this.pages[index]?this.pages[index].element[0]:null),this.pages.splice(index,0,pageObject),link(),setTimeout(function(){this.getCurrentPage()!==pageObject&&element.css("display","none"),unlock(),element=null}.bind(this),1e3/60)):(this._element.append(element),this.pages.push(pageObject),link(),unlock(),element=null)}.bind(this),function(){throw unlock(),new Error("Page is not found: "+page)})}.bind(this));var normalizeIndex=function(index){return 0>index&&(index=this.pages.length+index),index}.bind(this)},pushPage:function(page,options){if(this._profiling&&console.time("pushPage"),options=options||{},options&&"object"!=typeof options)throw new Error("options must be an object. You supplied "+options);this._emitPrePushEvent()||this._doorLock.waitUnlock(function(){this._pushPage(page,options)}.bind(this))},_pushPage:function(page,options){var unlock=this._doorLock.lock(),done=function(){unlock(),this._profiling&&console.timeEnd("pushPage")};$onsen.getPageHTMLAsync(page).then(function(templateHTML){var pageScope=this._createPageScope(),object=this._createPageElementAndLinkFunction(templateHTML,pageScope);setImmediate(function(){this._pushPageDOM(page,object.element,object.link,pageScope,options,done),object=null}.bind(this))}.bind(this),function(){throw done(),new Error("Page is not found: "+page)}.bind(this))},getDeviceBackButtonHandler:function(){return this._deviceBackButtonHandler},_getAnimatorOption:function(options){var animator=null;if(options.animation instanceof NavigatorTransitionAnimator)return options.animation;if("string"==typeof options.animation&&(animator=NavigatorView._transitionAnimatorDict[options.animation]),!animator&&this._element.attr("animation")&&(animator=NavigatorView._transitionAnimatorDict[this._element.attr("animation")]),animator||(animator=NavigatorView._transitionAnimatorDict["default"]),!(animator instanceof NavigatorTransitionAnimator))throw new Error('"animator" is not an instance of NavigatorTransitionAnimator.');return animator},_createPageScope:function(){return this._scope.$new()},_createPageObject:function(page,element,pageScope,options){return options.animator=this._getAnimatorOption(options),new NavigatorPageObject({page:page,element:element,pageScope:pageScope,options:options,navigator:this})},_pushPageDOM:function(page,element,link,pageScope,options,unlock){this._profiling&&console.time("pushPageDOM"),unlock=unlock||function(){},options=options||{},element=this._normalizePageElement(element);var pageObject=this._createPageObject(page,element,pageScope,options),event={enterPage:pageObject,leavePage:this.pages[this.pages.length-1],navigator:this};this.pages.push(pageObject);var done=function(){this.pages[this.pages.length-2]&&this.pages[this.pages.length-2].element.css("display","none"),this._profiling&&console.timeEnd("pushPageDOM"),unlock(),this.emit("postpush",event),"function"==typeof options.onTransitionEnd&&options.onTransitionEnd(),element=null}.bind(this);if(this.pages.length>1){var leavePage=this.pages.slice(-2)[0],enterPage=this.pages.slice(-1)[0];this._element.append(element),link(),options.animator.push(enterPage,leavePage,done),element=null}else this._element.append(element),link(),done(),element=null},_emitPrePushEvent:function(){var isCanceled=!1,prePushEvent={navigator:this,currentPage:this.getCurrentPage(),cancel:function(){isCanceled=!0}};return this.emit("prepush",prePushEvent),isCanceled},_emitPrePopEvent:function(){var isCanceled=!1,prePopEvent={navigator:this,currentPage:this.getCurrentPage(),cancel:function(){isCanceled=!0}};return this.emit("prepop",prePopEvent),isCanceled},popPage:function(options){if(options=options||{},this.pages.length<=1)throw new Error("NavigatorView's page stack is empty.");this._emitPrePopEvent()||this._doorLock.waitUnlock(function(){this._popPage(options)}.bind(this))},_popPage:function(options){var unlock=this._doorLock.lock(),leavePage=this.pages.pop();this.pages[this.pages.length-1]&&this.pages[this.pages.length-1].element.css("display","block");var enterPage=this.pages[this.pages.length-1],event={leavePage:leavePage,enterPage:this.pages[this.pages.length-1],navigator:this},callback=function(){leavePage.destroy(),unlock(),this.emit("postpop",event),event.leavePage=null,"function"==typeof options.onTransitionEnd&&options.onTransitionEnd()}.bind(this);leavePage.options.animator.pop(enterPage,leavePage,callback)},resetToPage:function(page,options){options=options||{},options.animator||options.animation||(options.animation="none");var onTransitionEnd=options.onTransitionEnd||function(){},self=this;options.onTransitionEnd=function(){for(;self.pages.length>1;)self.pages.shift().destroy();onTransitionEnd()},this.pushPage(page,options)},getCurrentPage:function(){return this.pages[this.pages.length-1]},getPages:function(){return this.pages},canPopPage:function(){return this.pages.length>1}});return NavigatorView._transitionAnimatorDict={"default":$onsen.isAndroid()?new SimpleSlideTransitionAnimator:new IOSSlideTransitionAnimator,slide:$onsen.isAndroid()?new SimpleSlideTransitionAnimator:new IOSSlideTransitionAnimator,lift:new LiftTransitionAnimator,fade:new FadeTransitionAnimator,none:new NullTransitionAnimator},NavigatorView.registerTransitionAnimator=function(name,animator){if(!(animator instanceof NavigatorTransitionAnimator))throw new Error('"animator" param must be an instance of NavigatorTransitionAnimator');this._transitionAnimatorDict[name]=animator},MicroEvent.mixin(NavigatorView),NavigatorView}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("NavigatorTransitionAnimator",function(){var NavigatorTransitionAnimator=Class.extend({push:function(enterPage,leavePage,callback){callback()},pop:function(enterPage,leavePage,callback){callback()}});return NavigatorTransitionAnimator})}(),function(){"use strict;";var module=angular.module("onsen");module.factory("NullTransitionAnimator",["NavigatorTransitionAnimator",function(NavigatorTransitionAnimator){var NullTransitionAnimator=NavigatorTransitionAnimator.extend({});return NullTransitionAnimator}])}(),function(){"use strict";var module=angular.module("onsen");module.factory("OverlaySlidingMenuAnimator",["SlidingMenuAnimator",function(SlidingMenuAnimator){var OverlaySlidingMenuAnimator=SlidingMenuAnimator.extend({_blackMask:void 0,_isRight:!1,_element:!1,_menuPage:!1,_mainPage:!1,_width:!1,setup:function(element,mainPage,menuPage,options){options=options||{},this._width=options.width||"90%",this._isRight=!!options.isRight,this._element=element,this._mainPage=mainPage,this._menuPage=menuPage,menuPage.css("box-shadow","0px 0 10px 0px rgba(0, 0, 0, 0.2)"),menuPage.css({width:options.width,display:"none",zIndex:2}),mainPage.css({zIndex:1}),menuPage.css(this._isRight?{right:"-"+options.width,left:"auto"}:{right:"auto",left:"-"+options.width}),this._blackMask=angular.element("<div></div>").css({backgroundColor:"black",top:"0px",left:"0px",right:"0px",bottom:"0px",position:"absolute",display:"none",zIndex:0}),element.prepend(this._blackMask)},onResized:function(options){if(this._menuPage.css("width",options.width),this._menuPage.css(this._isRight?{right:"-"+options.width,left:"auto"}:{right:"auto",left:"-"+options.width}),options.isOpened){var max=this._menuPage[0].clientWidth,menuStyle=this._generateMenuPageStyle(max);animit(this._menuPage[0]).queue(menuStyle).play()}},destroy:function(){this._blackMask&&(this._blackMask.remove(),this._blackMask=null),this._mainPage.removeAttr("style"),this._menuPage.removeAttr("style"),this._element=this._mainPage=this._menuPage=null},openMenu:function(callback){this._menuPage.css("display","block"),this._blackMask.css("display","block");var max=this._menuPage[0].clientWidth,menuStyle=this._generateMenuPageStyle(max),mainPageStyle=this._generateMainPageStyle(max);setTimeout(function(){animit(this._mainPage[0]).queue(mainPageStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){callback(),done()}).play(),animit(this._menuPage[0]).queue(menuStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).play()}.bind(this),1e3/60)},closeMenu:function(callback){this._blackMask.css({display:"block"});var menuPageStyle=this._generateMenuPageStyle(0),mainPageStyle=this._generateMainPageStyle(0);setTimeout(function(){animit(this._mainPage[0]).queue(mainPageStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){this._menuPage.css("display","none"),callback(),done()}.bind(this)).play(),animit(this._menuPage[0]).queue(menuPageStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).play()}.bind(this),1e3/60)},translateMenu:function(options){this._menuPage.css("display","block"),this._blackMask.css({display:"block"});var menuPageStyle=this._generateMenuPageStyle(Math.min(options.maxDistance,options.distance)),mainPageStyle=this._generateMainPageStyle(Math.min(options.maxDistance,options.distance));delete mainPageStyle.opacity,animit(this._menuPage[0]).queue(menuPageStyle).play(),Object.keys(mainPageStyle).length>0&&animit(this._mainPage[0]).queue(mainPageStyle).play()},_generateMenuPageStyle:function(distance){var x=(this._menuPage[0].clientWidth,this._isRight?-distance:distance),transform="translate3d("+x+"px, 0, 0)";return{transform:transform,"box-shadow":0===distance?"none":"0px 0 10px 0px rgba(0, 0, 0, 0.2)"}},_generateMainPageStyle:function(distance){var max=this._menuPage[0].clientWidth,opacity=1-.1*distance/max;return{opacity:opacity}},copy:function(){return new OverlaySlidingMenuAnimator}});return OverlaySlidingMenuAnimator}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("PageView",["$onsen","$parse",function($onsen,$parse){var PageView=Class.extend({_registeredToolbarElement:!1,_registeredBottomToolbarElement:!1,_nullElement:window.document.createElement("div"),_toolbarElement:null,_bottomToolbarElement:null,init:function(scope,element,attrs){this._scope=scope,this._element=element,this._attrs=attrs,this._registeredToolbarElement=!1,this._registeredBottomToolbarElement=!1,this._nullElement=window.document.createElement("div"),this._toolbarElement=angular.element(this._nullElement),this._bottomToolbarElement=angular.element(this._nullElement),this._clearListener=scope.$on("$destroy",this._destroy.bind(this)),this._userDeviceBackButtonListener=angular.noop,(this._attrs.ngDeviceBackbutton||this._attrs.onDeviceBackbutton)&&(this._deviceBackButtonHandler=$onsen.DeviceBackButtonHandler.create(this._element,this._onDeviceBackButton.bind(this)))},_onDeviceBackButton:function($event){if(this._userDeviceBackButtonListener($event),this._attrs.ngDeviceBackbutton&&$parse(this._attrs.ngDeviceBackbutton)(this._scope,{$event:$event}),this._attrs.onDeviceBackbutton){var lastEvent=window.$event;window.$event=$event,new Function(this._attrs.onDeviceBackbutton)(),window.$event=lastEvent}},setDeviceBackButtonHandler:function(callback){this._deviceBackButtonHandler||(this._deviceBackButtonHandler=$onsen.DeviceBackButtonHandler.create(this._element,this._onDeviceBackButton.bind(this))),this._userDeviceBackButtonListener=callback},getDeviceBackButtonHandler:function(){return this._deviceBackButtonHandler||null},registerToolbar:function(element){if(this._registeredToolbarElement)throw new Error("This page's toolbar is already registered.");angular.element(this.getContentElement()).attr("no-status-bar-fill",""),element.remove();
var statusFill=this._element[0].querySelector(".page__status-bar-fill");statusFill?angular.element(statusFill).after(element):this._element.prepend(element),this._toolbarElement=element,this._registeredToolbarElement=!0},registerBottomToolbar:function(element){if(this._registeredBottomToolbarElement)throw new Error("This page's bottom-toolbar is already registered.");element.remove(),this._bottomToolbarElement=element,this._registeredBottomToolbarElement=!0;var fill=angular.element(document.createElement("div"));fill.addClass("page__bottom-bar-fill"),fill.css({width:"0px",height:"0px"}),this._element.prepend(fill),this._element.append(element)},registerExtraElement:function(element){this._extraElement||(this._extraElement=angular.element("<div></div>"),this._extraElement.addClass("page__extra"),this._extraElement.css({"z-index":"10001"}),this._element.append(this._extraElement)),this._extraElement.append(element.remove())},hasToolbarElement:function(){return!!this._registeredToolbarElement},hasBottomToolbarElement:function(){return!!this._registeredBottomToolbarElement},getContentElement:function(){for(var i=0;i<this._element.length;i++)if(this._element[i].querySelector){var content=this._element[i].querySelector(".page__content");if(content)return content}throw Error('fail to get ".page__content" element.')},getToolbarElement:function(){return this._toolbarElement[0]||this._nullElement},getBottomToolbarElement:function(){return this._bottomToolbarElement[0]||this._nullElement},getToolbarLeftItemsElement:function(){return this._toolbarElement[0].querySelector(".left")||this._nullElement},getToolbarCenterItemsElement:function(){return this._toolbarElement[0].querySelector(".center")||this._nullElement},getToolbarRightItemsElement:function(){return this._toolbarElement[0].querySelector(".right")||this._nullElement},getToolbarBackButtonLabelElement:function(){return this._toolbarElement[0].querySelector("ons-back-button .back-button__label")||this._nullElement},_destroy:function(){this.emit("destroy",{page:this}),this._deviceBackButtonHandler&&(this._deviceBackButtonHandler.destroy(),this._deviceBackButtonHandler=null),this._element=null,this._toolbarElement=null,this._nullElement=null,this._bottomToolbarElement=null,this._extraElement=null,this._scope=null,this._clearListener()}});return MicroEvent.mixin(PageView),PageView}])}(),function(){"use strict";var module=angular.module("onsen");module.factory("PushSlidingMenuAnimator",["SlidingMenuAnimator",function(SlidingMenuAnimator){var PushSlidingMenuAnimator=SlidingMenuAnimator.extend({_isRight:!1,_element:void 0,_menuPage:void 0,_mainPage:void 0,_width:void 0,setup:function(element,mainPage,menuPage,options){options=options||{},this._element=element,this._mainPage=mainPage,this._menuPage=menuPage,this._isRight=!!options.isRight,this._width=options.width||"90%",menuPage.css({width:options.width,display:"none"}),menuPage.css(this._isRight?{right:"-"+options.width,left:"auto"}:{right:"auto",left:"-"+options.width})},onResized:function(options){if(this._menuPage.css("width",options.width),this._menuPage.css(this._isRight?{right:"-"+options.width,left:"auto"}:{right:"auto",left:"-"+options.width}),options.isOpened){var max=this._menuPage[0].clientWidth,mainPageTransform=this._generateAbovePageTransform(max),menuPageStyle=this._generateBehindPageStyle(max);animit(this._mainPage[0]).queue({transform:mainPageTransform}).play(),animit(this._menuPage[0]).queue(menuPageStyle).play()}},destroy:function(){this._mainPage.removeAttr("style"),this._menuPage.removeAttr("style"),this._element=this._mainPage=this._menuPage=null},openMenu:function(callback){this._menuPage.css("display","block");var max=this._menuPage[0].clientWidth,aboveTransform=this._generateAbovePageTransform(max),behindStyle=this._generateBehindPageStyle(max);setTimeout(function(){animit(this._mainPage[0]).queue({transform:aboveTransform},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){callback(),done()}).play(),animit(this._menuPage[0]).queue(behindStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).play()}.bind(this),1e3/60)},closeMenu:function(callback){var aboveTransform=this._generateAbovePageTransform(0),behindStyle=this._generateBehindPageStyle(0);setTimeout(function(){animit(this._mainPage[0]).queue({transform:aboveTransform},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue({transform:"translate3d(0, 0, 0)"}).queue(function(done){this._menuPage.css("display","none"),callback(),done()}.bind(this)).play(),animit(this._menuPage[0]).queue(behindStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){done()}).play()}.bind(this),1e3/60)},translateMenu:function(options){this._menuPage.css("display","block");var aboveTransform=this._generateAbovePageTransform(Math.min(options.maxDistance,options.distance)),behindStyle=this._generateBehindPageStyle(Math.min(options.maxDistance,options.distance));animit(this._mainPage[0]).queue({transform:aboveTransform}).play(),animit(this._menuPage[0]).queue(behindStyle).play()},_generateAbovePageTransform:function(distance){var x=this._isRight?-distance:distance,aboveTransform="translate3d("+x+"px, 0, 0)";return aboveTransform},_generateBehindPageStyle:function(distance){var behindX=(this._menuPage[0].clientWidth,this._isRight?-distance:distance),behindTransform="translate3d("+behindX+"px, 0, 0)";return{transform:behindTransform}},copy:function(){return new PushSlidingMenuAnimator}});return PushSlidingMenuAnimator}])}(),function(){"use strict";var module=angular.module("onsen");module.factory("RevealSlidingMenuAnimator",["SlidingMenuAnimator",function(SlidingMenuAnimator){var RevealSlidingMenuAnimator=SlidingMenuAnimator.extend({_blackMask:void 0,_isRight:!1,_menuPage:void 0,_element:void 0,_mainPage:void 0,setup:function(element,mainPage,menuPage,options){this._element=element,this._menuPage=menuPage,this._mainPage=mainPage,this._isRight=!!options.isRight,this._width=options.width||"90%",mainPage.css({boxShadow:"0px 0 10px 0px rgba(0, 0, 0, 0.2)"}),menuPage.css({width:options.width,opacity:.9,display:"none"}),menuPage.css(this._isRight?{right:"0px",left:"auto"}:{right:"auto",left:"0px"}),this._blackMask=angular.element("<div></div>").css({backgroundColor:"black",top:"0px",left:"0px",right:"0px",bottom:"0px",position:"absolute",display:"none"}),element.prepend(this._blackMask),animit(mainPage[0]).queue({transform:"translate3d(0, 0, 0)"}).play()},onResized:function(options){if(this._width=options.width,this._menuPage.css("width",this._width),options.isOpened){var max=this._menuPage[0].clientWidth,aboveTransform=this._generateAbovePageTransform(max),behindStyle=this._generateBehindPageStyle(max);animit(this._mainPage[0]).queue({transform:aboveTransform}).play(),animit(this._menuPage[0]).queue(behindStyle).play()}},destroy:function(){this._blackMask&&(this._blackMask.remove(),this._blackMask=null),this._mainPage&&this._mainPage.attr("style",""),this._menuPage&&this._menuPage.attr("style",""),this._mainPage=this._menuPage=this._element=void 0},openMenu:function(callback){this._menuPage.css("display","block"),this._blackMask.css("display","block");var max=this._menuPage[0].clientWidth,aboveTransform=this._generateAbovePageTransform(max),behindStyle=this._generateBehindPageStyle(max);setTimeout(function(){animit(this._mainPage[0]).queue({transform:aboveTransform},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){callback(),done()}).play(),animit(this._menuPage[0]).queue(behindStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).play()}.bind(this),1e3/60)},closeMenu:function(callback){this._blackMask.css("display","block");var aboveTransform=this._generateAbovePageTransform(0),behindStyle=this._generateBehindPageStyle(0);setTimeout(function(){animit(this._mainPage[0]).queue({transform:aboveTransform},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue({transform:"translate3d(0, 0, 0)"}).queue(function(done){this._menuPage.css("display","none"),callback(),done()}.bind(this)).play(),animit(this._menuPage[0]).queue(behindStyle,{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).queue(function(done){done()}).play()}.bind(this),1e3/60)},translateMenu:function(options){this._menuPage.css("display","block"),this._blackMask.css("display","block");var aboveTransform=this._generateAbovePageTransform(Math.min(options.maxDistance,options.distance)),behindStyle=this._generateBehindPageStyle(Math.min(options.maxDistance,options.distance));delete behindStyle.opacity,animit(this._mainPage[0]).queue({transform:aboveTransform}).play(),animit(this._menuPage[0]).queue(behindStyle).play()},_generateAbovePageTransform:function(distance){var x=this._isRight?-distance:distance,aboveTransform="translate3d("+x+"px, 0, 0)";return aboveTransform},_generateBehindPageStyle:function(distance){var max=this._menuPage[0].getBoundingClientRect().width,behindDistance=(distance-max)/max*10;behindDistance=isNaN(behindDistance)?0:Math.max(Math.min(behindDistance,0),-10);var behindX=this._isRight?-behindDistance:behindDistance,behindTransform="translate3d("+behindX+"%, 0, 0)",opacity=1+behindDistance/100;return{transform:behindTransform,opacity:opacity}},copy:function(){return new RevealSlidingMenuAnimator}});return RevealSlidingMenuAnimator}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("SimpleSlideTransitionAnimator",["NavigatorTransitionAnimator",function(NavigatorTransitionAnimator){var SimpleSlideTransitionAnimator=NavigatorTransitionAnimator.extend({backgroundMask:angular.element('<div style="position: absolute; width: 100%;height: 100%; background-color: black; opacity: 0;"></div>'),timing:"cubic-bezier(.1, .7, .4, 1)",duration:.3,blackMaskOpacity:.4,init:function(options){options=options||{},this.timing=options.timing||this.timing,this.duration=void 0!==options.duration?options.duration:this.duration},push:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();leavePage.element[0].parentNode.insertBefore(mask[0],leavePage.element[0].nextSibling),animit.runAll(animit(mask[0]).queue({opacity:0,transform:"translate3d(0, 0, 0)"}).queue({opacity:this.blackMaskOpacity},{duration:this.duration,timing:this.timing}).resetStyle().queue(function(done){mask.remove(),done()}),animit(enterPage.element[0]).queue({css:{transform:"translate3D(100%, 0, 0)"},duration:0}).queue({css:{transform:"translate3D(0, 0, 0)"},duration:this.duration,timing:this.timing}).resetStyle(),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0, 0, 0)"},duration:0}).queue({css:{transform:"translate3D(-45%, 0px, 0px)"},duration:this.duration,timing:this.timing}).resetStyle().wait(.2).queue(function(done){callback(),done()}))},pop:function(enterPage,leavePage,done){var mask=this.backgroundMask.remove();enterPage.element[0].parentNode.insertBefore(mask[0],enterPage.element[0].nextSibling),animit.runAll(animit(mask[0]).queue({opacity:this.blackMaskOpacity,transform:"translate3d(0, 0, 0)"}).queue({opacity:0},{duration:this.duration,timing:this.timing}).resetStyle().queue(function(done){mask.remove(),done()}),animit(enterPage.element[0]).queue({css:{transform:"translate3D(-45%, 0px, 0px)",opacity:.9},duration:0}).queue({css:{transform:"translate3D(0px, 0px, 0px)",opacity:1},duration:this.duration,timing:this.timing}).resetStyle(),animit(leavePage.element[0]).queue({css:{transform:"translate3D(0px, 0px, 0px)"},duration:0}).queue({css:{transform:"translate3D(100%, 0px, 0px)"},duration:this.duration,timing:this.timing}).wait(.2).queue(function(finish){done(),finish()}))}});return SimpleSlideTransitionAnimator}])}(),function(){"use strict";var module=angular.module("onsen"),SlidingMenuViewModel=Class.extend({_distance:0,_maxDistance:void 0,init:function(options){if(!angular.isNumber(options.maxDistance))throw new Error("options.maxDistance must be number");this.setMaxDistance(options.maxDistance)},setMaxDistance:function(maxDistance){if(0>=maxDistance)throw new Error("maxDistance must be greater then zero.");this.isOpened()&&(this._distance=maxDistance),this._maxDistance=maxDistance},shouldOpen:function(){return!this.isOpened()&&this._distance>=this._maxDistance/2},shouldClose:function(){return!this.isClosed()&&this._distance<this._maxDistance/2},openOrClose:function(callback){this.shouldOpen()?this.open(callback):this.shouldClose()&&this.close(callback)},close:function(callback){callback=callback||function(){},this.isClosed()?callback():(this._distance=0,this.emit("close",{callback:callback}))},open:function(callback){callback=callback||function(){},this.isOpened()?callback():(this._distance=this._maxDistance,this.emit("open",{callback:callback}))},isClosed:function(){return 0===this._distance},isOpened:function(){return this._distance===this._maxDistance},getX:function(){return this._distance},getMaxDistance:function(){return this._maxDistance},translate:function(x){this._distance=Math.max(1,Math.min(this._maxDistance-1,x));var options={distance:this._distance,maxDistance:this._maxDistance};this.emit("translate",options)},toggle:function(){this.isClosed()?this.open():this.close()}});MicroEvent.mixin(SlidingMenuViewModel);module.factory("SlidingMenuView",["$onsen","$compile","SlidingMenuAnimator","RevealSlidingMenuAnimator","PushSlidingMenuAnimator","OverlaySlidingMenuAnimator",function($onsen,$compile,SlidingMenuAnimator,RevealSlidingMenuAnimator,PushSlidingMenuAnimator,OverlaySlidingMenuAnimator){var SlidingMenuView=Class.extend({_scope:void 0,_attrs:void 0,_element:void 0,_behindPage:void 0,_abovePage:void 0,_doorLock:void 0,_isRightMenu:!1,init:function(scope,element,attrs){this._scope=scope,this._attrs=attrs,this._element=element,this._behindPage=angular.element(element[0].querySelector(".onsen-sliding-menu__behind")),this._abovePage=angular.element(element[0].querySelector(".onsen-sliding-menu__above")),this._doorLock=new DoorLock,this._isRightMenu="right"===attrs.side;var maxDistance=this._normalizeMaxSlideDistanceAttr();this._logic=new SlidingMenuViewModel({maxDistance:Math.max(maxDistance,1)}),this._logic.on("translate",this._translate.bind(this)),this._logic.on("open",function(options){this._open(options.callback)}.bind(this)),this._logic.on("close",function(options){this._close(options.callback)}.bind(this)),attrs.$observe("maxSlideDistance",this._onMaxSlideDistanceChanged.bind(this)),attrs.$observe("swipable",this._onSwipableChanged.bind(this)),window.addEventListener("resize",this._onWindowResize.bind(this)),this._boundHandleEvent=this._handleEvent.bind(this),this._bindEvents(),attrs.mainPage?this.setMainPage(attrs.mainPage):attrs.abovePage&&this.setMainPage(attrs.abovePage),attrs.menuPage?this.setMenuPage(attrs.menuPage):attrs.behindPage&&this.setMenuPage(attrs.behindPage),this._deviceBackButtonHandler=$onsen.DeviceBackButtonHandler.create(this._element,this._onDeviceBackButton.bind(this));var unlock=this._doorLock.lock();window.setTimeout(function(){var maxDistance=this._normalizeMaxSlideDistanceAttr();this._logic.setMaxDistance(maxDistance),this._behindPage.css({opacity:1}),this._animator=this._getAnimatorOption(),this._animator.setup(this._element,this._abovePage,this._behindPage,{isRight:this._isRightMenu,width:this._attrs.maxSlideDistance||"90%"}),unlock()}.bind(this),400),scope.$on("$destroy",this._destroy.bind(this))},getDeviceBackButtonHandler:function(){return this._deviceBackButtonHandler},_onDeviceBackButton:function(event){this.isMenuOpened()?this.closeMenu():event.callParentHandler()},_refreshBehindPageWidth:function(){var width="maxSlideDistance"in this._attrs?this._attrs.maxSlideDistance:"90%";this._animator&&this._animator.onResized({isOpened:this._logic.isOpened(),width:width})},_destroy:function(){this.emit("destroy",{slidingMenu:this}),this._deviceBackButtonHandler.destroy(),this._element=this._scope=this._attrs=null},_getAnimatorOption:function(){var animator=SlidingMenuView._animatorDict[this._attrs.type];return animator instanceof SlidingMenuAnimator||(animator=SlidingMenuView._animatorDict["default"]),animator.copy()},_onSwipableChanged:function(swipable){swipable=""===swipable||void 0===swipable||"true"==swipable,this.setSwipable(swipable)},setSwipable:function(enabled){enabled?this._activateHammer():this._deactivateHammer()},_onWindowResize:function(){this._recalculateMAX(),this._refreshBehindPageWidth()},_onMaxSlideDistanceChanged:function(){this._recalculateMAX(),this._refreshBehindPageWidth()},_normalizeMaxSlideDistanceAttr:function(){var maxDistance=this._attrs.maxSlideDistance;if("maxSlideDistance"in this._attrs){if("string"!=typeof maxDistance)throw new Error("invalid state");-1!==maxDistance.indexOf("px",maxDistance.length-2)?maxDistance=parseInt(maxDistance.replace("px",""),10):maxDistance.indexOf("%",maxDistance.length-1)>0&&(maxDistance=maxDistance.replace("%",""),maxDistance=parseFloat(maxDistance)/100*this._abovePage[0].clientWidth)}else maxDistance=.9*this._abovePage[0].clientWidth;return maxDistance},_recalculateMAX:function(){var maxDistance=this._normalizeMaxSlideDistanceAttr();maxDistance&&this._logic.setMaxDistance(parseInt(maxDistance,10))},_activateHammer:function(){this._hammertime.on("touch dragleft dragright swipeleft swiperight release",this._boundHandleEvent)},_deactivateHammer:function(){this._hammertime.off("touch dragleft dragright swipeleft swiperight release",this._boundHandleEvent)},_bindEvents:function(){this._hammertime=new Hammer(this._element[0])},_appendAbovePage:function(pageUrl,templateHTML){var pageScope=this._scope.$parent.$new(),pageContent=angular.element(templateHTML),link=$compile(pageContent);this._abovePage.append(pageContent),this._currentPageElement&&(this._currentPageElement.remove(),this._currentPageScope.$destroy()),link(pageScope),this._currentPageElement=pageContent,this._currentPageScope=pageScope,this._currentPageUrl=pageUrl},_appendBehindPage:function(templateHTML){var pageScope=this._scope.$parent.$new(),pageContent=angular.element(templateHTML),link=$compile(pageContent);this._behindPage.append(pageContent),this._currentBehindPageScope&&(this._currentBehindPageScope.$destroy(),this._currentBehindPageElement.remove()),link(pageScope),this._currentBehindPageElement=pageContent,this._currentBehindPageScope=pageScope},setMenuPage:function(page,options){if(!page)throw new Error("cannot set undefined page");options=options||{},options.callback=options.callback||function(){};var self=this;$onsen.getPageHTMLAsync(page).then(function(html){self._appendBehindPage(angular.element(html)),options.closeMenu&&self.close(),options.callback()},function(){throw new Error("Page is not found: "+page)})},setBehindPage:function(){return this.setMenuPage.apply(this,arguments)},setMainPage:function(pageUrl,options){options=options||{},options.callback=options.callback||function(){};var done=function(){options.closeMenu&&this.close(),options.callback()}.bind(this);if(this.currentPageUrl===pageUrl)return void done();if(!pageUrl)throw new Error("cannot set undefined page");var self=this;$onsen.getPageHTMLAsync(pageUrl).then(function(html){self._appendAbovePage(pageUrl,html),done()},function(){throw new Error("Page is not found: "+page)})},setAbovePage:function(){return this.setMainPage.apply(this,arguments)},_handleEvent:function(event){if(!this._doorLock.isLocked())switch(this._isInsideIgnoredElement(event.target)&&event.gesture.stopDetect(),event.type){case"touch":this._logic.isClosed()&&(this._isInsideSwipeTargetArea(event)||event.gesture.stopDetect());break;case"dragleft":case"dragright":event.gesture.preventDefault();var deltaX=event.gesture.deltaX,deltaDistance=this._isRightMenu?-deltaX:deltaX,startEvent=event.gesture.startEvent;if("isOpened"in startEvent||(startEvent.isOpened=this._logic.isOpened()),0>deltaDistance&&this._logic.isClosed())break;if(deltaDistance>0&&this._logic.isOpened())break;var distance=startEvent.isOpened?deltaDistance+this._logic.getMaxDistance():deltaDistance;this._logic.translate(distance);break;case"swipeleft":event.gesture.preventDefault(),this._isRightMenu?this.open():this.close(),event.gesture.stopDetect();break;case"swiperight":event.gesture.preventDefault(),this._isRightMenu?this.close():this.open(),event.gesture.stopDetect();break;case"release":this._lastDistance=null,this._logic.shouldOpen()?this.open():this._logic.shouldClose()&&this.close()}},_isInsideIgnoredElement:function(element){do{if(element.getAttribute&&element.getAttribute("sliding-menu-ignore"))return!0;element=element.parentNode}while(element);return!1},_isInsideSwipeTargetArea:function(event){var x=event.gesture.center.pageX;"_swipeTargetWidth"in event.gesture.startEvent||(event.gesture.startEvent._swipeTargetWidth=this._getSwipeTargetWidth());var targetWidth=event.gesture.startEvent._swipeTargetWidth;return this._isRightMenu?this._abovePage[0].clientWidth-x<targetWidth:targetWidth>x},_getSwipeTargetWidth:function(){var targetWidth=this._attrs.swipeTargetWidth;"string"==typeof targetWidth&&(targetWidth=targetWidth.replace("px",""));var width=parseInt(targetWidth,10);return 0>width||!targetWidth?this._abovePage[0].clientWidth:width},closeMenu:function(){return this.close.apply(this,arguments)},close:function(callback){callback=callback||function(){},this.emit("preclose"),this._doorLock.waitUnlock(function(){this._logic.close(callback)}.bind(this))},_close:function(callback){callback=callback||function(){};var unlock=this._doorLock.lock();this._animator.closeMenu(function(){unlock(),this.emit("postclose"),callback()}.bind(this))},openMenu:function(){return this.open.apply(this,arguments)},open:function(callback){callback=callback||function(){},this.emit("preopen"),this._doorLock.waitUnlock(function(){this._logic.open(callback)}.bind(this))},_open:function(callback){callback=callback||function(){};var unlock=this._doorLock.lock();this._animator.openMenu(function(){unlock(),this.emit("postopen"),callback()}.bind(this))},toggle:function(callback){this._logic.isClosed()?this.open(callback):this.close(callback)},toggleMenu:function(){return this.toggle.apply(this,arguments)},isMenuOpened:function(){return this._logic.isOpened()},_translate:function(event){this._animator.translateMenu(event)}});return SlidingMenuView._animatorDict={"default":new RevealSlidingMenuAnimator,overlay:new OverlaySlidingMenuAnimator,reveal:new RevealSlidingMenuAnimator,push:new PushSlidingMenuAnimator},SlidingMenuView.registerSlidingMenuAnimator=function(name,animator){if(!(animator instanceof SlidingMenuAnimator))throw new Error('"animator" param must be an instance of SlidingMenuAnimator');this._animatorDict[name]=animator},MicroEvent.mixin(SlidingMenuView),SlidingMenuView}])}(),function(){"use strict";var module=angular.module("onsen");module.factory("SlidingMenuAnimator",function(){return Class.extend({setup:function(){},onResized:function(){},openMenu:function(){},closeClose:function(){},destroy:function(){},translateMenu:function(){},copy:function(){throw new Error("Override copy method.")}})})}(),function(){"use strict";var module=angular.module("onsen");module.factory("SplitView",["$compile","RevealSlidingMenuAnimator","$onsen",function($compile,RevealSlidingMenuAnimator,$onsen){function isNumber(n){return!isNaN(parseFloat(n))&&isFinite(n)}var SPLIT_MODE=0,COLLAPSE_MODE=1,MAIN_PAGE_RATIO=.9,ON_PAGE_READY="onPageReady",SplitView=Class.extend({init:function(scope,element){element.addClass("onsen-sliding-menu"),this._element=element,this._scope=scope,this._abovePage=angular.element(element[0].querySelector(".onsen-split-view__main")),this._behindPage=angular.element(element[0].querySelector(".onsen-split-view__secondary")),this._previousX=0,this._max=this._abovePage[0].clientWidth*MAIN_PAGE_RATIO,this._currentX=0,this._startX=0,this._mode=SPLIT_MODE,this._doorLock=new DoorLock,this._hammertime=new Hammer(this._element[0]),this._boundHammerEvent=this._handleEvent.bind(this),scope.$watch("swipable",this._onSwipableChanged.bind(this)),$onsen.isIOS()?window.addEventListener("orientationchange",this._onResize.bind(this)):window.addEventListener("resize",this._onResize.bind(this)),this._animator=new RevealSlidingMenuAnimator,this._element.css("display","none"),scope.mainPage&&this.setMainPage(scope.mainPage),scope.secondaryPage&&this.setSecondaryPage(scope.secondaryPage);var unlock=this._doorLock.lock();this._considerChangingCollapse(),this._setSize(),setTimeout(function(){this._element.css("display","block"),unlock()}.bind(this),1e3/60*2),scope.$on("$destroy",this._destroy.bind(this))},_appendSecondPage:function(templateHTML){var pageScope=this._scope.$parent.$new(),pageContent=$compile(templateHTML)(pageScope);this._behindPage.append(pageContent),this._currentBehindPageElement&&(this._currentBehindPageElement.remove(),this._currentBehindPageScope.$destroy()),this._currentBehindPageElement=pageContent,this._currentBehindPageScope=pageScope},_appendMainPage:function(templateHTML){var pageScope=this._scope.$parent.$new(),pageContent=$compile(templateHTML)(pageScope);this._abovePage.append(pageContent),this._currentPage&&(this._currentPage.remove(),this._currentPageScope.$destroy()),this._currentPage=pageContent,this._currentPageScope=pageScope},setSecondaryPage:function(page){if(!page)throw new Error("cannot set undefined page");$onsen.getPageHTMLAsync(page).then(function(html){this._appendSecondPage(angular.element(html.trim()))}.bind(this),function(){throw new Error("Page is not found: "+page)})},setMainPage:function(page){if(!page)throw new Error("cannot set undefined page");$onsen.getPageHTMLAsync(page).then(function(html){this._appendMainPage(angular.element(html.trim()))}.bind(this),function(){throw new Error("Page is not found: "+page)})},_onResize:function(){var lastMode=this._mode;this._considerChangingCollapse(),lastMode===COLLAPSE_MODE&&this._mode===COLLAPSE_MODE&&this._animator.onResized({isOpened:this._currentX>0,width:"90%"}),this._max=this._abovePage[0].clientWidth*MAIN_PAGE_RATIO},_considerChangingCollapse:function(){this._shouldCollapse()?this._activateCollapseMode():this._activateSplitMode()},_shouldCollapse:function(){var orientation=window.orientation;switch(void 0===orientation&&(orientation=window.innerWidth>window.innerHeight?90:0),this._scope.collapse){case void 0:case"none":return!1;case"portrait":return 180===orientation||0===orientation;case"landscape":return 90==orientation||-90==orientation;default:if(void 0===this._scope.collapse)return!1;var widthToken;if(this._scope.collapse.indexOf("width")>=0){var tokens=this._scope.collapse.split(" ");widthToken=tokens[tokens.length-1]}else widthToken=this._scope.collapse;return widthToken.indexOf("px")>0&&(widthToken=widthToken.substr(0,widthToken.length-2)),isNumber(widthToken)&&window.innerWidth<widthToken}},_setSize:function(){if(this._mode===SPLIT_MODE){this._scope.mainPageWidth||(this._scope.mainPageWidth="70");var behindSize=100-this._scope.mainPageWidth.replace("%","");this._behindPage.css({width:behindSize+"%",opacity:1}),this._abovePage.css({width:this._scope.mainPageWidth+"%"}),this._abovePage.css("left",behindSize+"%"),this._currentX=this._behindPage[0].clientWidth}},_activateCollapseMode:function(){this._mode!==COLLAPSE_MODE&&(this._behindPage.attr("style",""),this._abovePage.attr("style",""),this._mode=COLLAPSE_MODE,this._onSwipableChanged(this._scope.swipable),this._animator.setup(this._element,this._abovePage,this._behindPage,{isRight:!1,width:"90%"}),this._currentX=this._startX=0)},_activateSplitMode:function(){this._animator.destroy(),this._behindPage.attr("style",""),this._abovePage.attr("style",""),this._mode=SPLIT_MODE,this._setSize(),this._deactivateHammer()},_activateHammer:function(){this._hammertime.on("dragleft dragright swipeleft swiperight release",this._boundHammerEvent)},_deactivateHammer:function(){this._hammertime.off("dragleft dragright swipeleft swiperight release",this._boundHammerEvent)},_onSwipableChanged:function(swipable){swipable=""===swipable||void 0===swipable||"true"==swipable,swipable?this._activateHammer():this._deactivateHammer()},_handleEvent:function(event){if(!this._doorLock.isLocked())switch(event.type){case"dragleft":case"dragright":event.preventDefault(),event.gesture.preventDefault();var deltaX=event.gesture.deltaX;this._currentX=this._startX+deltaX,this._currentX>=0&&this._translate(this._currentX);break;case"swipeleft":event.gesture.preventDefault(),this.close();break;case"swiperight":event.gesture.preventDefault(),this.open();break;case"release":this._currentX>this._max/2?this.open():this.close()}},_onTransitionEnd:function(){this._scope.$root.$broadcast(ON_PAGE_READY)},close:function(callback){if(callback=callback||function(){},this._mode===SPLIT_MODE)return void callback();if(this._mode===COLLAPSE_MODE&&(this._startX=0,0!==this._currentX)){var self=this;this._doorLock.waitUnlock(function(){var unlock=self._doorLock.lock();self._currentX=0,self._animator.closeMenu(function(){unlock(),self._onTransitionEnd(),callback()})})}},open:function(callback){if(callback=callback||function(){},this._mode===SPLIT_MODE)return void callback();if(this._mode===COLLAPSE_MODE&&(this._startX=this._max,this._currentX!=this._max)){var self=this;this._doorLock.waitUnlock(function(){var unlock=self._doorLock.lock();self._currentX=self._max,self._animator.openMenu(function(){unlock(),self._onTransitionEnd(),callback()})})}},toggle:function(callback){0===this._startX?this.open(callback):this.close(callback)},_translate:function(x){if(this._mode===COLLAPSE_MODE){this._currentX=x;var options={distance:x,maxDistance:this._max};this._animator.translateMenu(options)}},_destroy:function(){this.emit("destroy",{splitView:this}),this._element=null,this._scope=null}});return MicroEvent.mixin(SplitView),SplitView}])}(),function(){"use strict";var module=angular.module("onsen");module.factory("SwitchView",["$onsen",function(){var SwitchView=Class.extend({init:function(element,scope,attrs){this._element=element,this._checkbox=angular.element(element[0].querySelector("input[type=checkbox]")),this._scope=scope,attrs.$observe("disabled",function(){element.attr("disabled")?this._checkbox.attr("disabled","disabled"):this._checkbox.removeAttr("disabled")}.bind(this)),this._checkbox.on("change",function(){this.emit("change",{"switch":this,value:this._checkbox[0].checked,isInteractive:!0})}.bind(this))},isChecked:function(){return this._checkbox[0].checked},setChecked:function(isChecked){isChecked=!!isChecked,this._checkbox[0].checked!=isChecked&&(this._scope.model=isChecked,this._checkbox[0].checked=isChecked,this._scope.$evalAsync(),this.emit("change",{"switch":this,value:isChecked,isInteractive:!1}))},getCheckboxElemenet:function(){return this._checkbox[0]}});return MicroEvent.mixin(SwitchView),SwitchView}])}(),function(){"use strict;";var module=angular.module("onsen");module.factory("TabbarAnimator",function(){var TabbarAnimator=Class.extend({apply:function(){throw new Error("This method must be implemented.")}});return TabbarAnimator}),module.factory("TabbarNoneAnimator",["TabbarAnimator",function(TabbarAnimator){var TabbarNoneAnimator=TabbarAnimator.extend({apply:function(enterPage,leavePage,done){done()}});return TabbarNoneAnimator}]),module.factory("TabbarFadeAnimator",["TabbarAnimator",function(TabbarAnimator){var TabbarFadeAnimator=TabbarAnimator.extend({apply:function(enterPage,leavePage,done){animit.runAll(animit(enterPage[0]).queue({transform:"translate3D(0, 0, 0)",opacity:0}).queue({transform:"translate3D(0, 0, 0)",opacity:1},{duration:.4,timing:"linear"}).resetStyle().queue(function(callback){done(),callback()}),animit(leavePage[0]).queue({transform:"translate3D(0, 0, 0)",opacity:1}).queue({transform:"translate3D(0, 0, 0)",opacity:0},{duration:.4,timing:"linear"}))}});return TabbarFadeAnimator}]),module.factory("TabbarView",["$onsen","$compile","TabbarAnimator","TabbarNoneAnimator","TabbarFadeAnimator",function($onsen,$compile,TabbarAnimator,TabbarNoneAnimator,TabbarFadeAnimator){var TabbarView=Class.extend({_tabbarId:void 0,_tabItems:void 0,init:function(scope,element,attrs){this._scope=scope,this._element=element,this._attrs=attrs,this._tabbarId=Date.now(),this._tabItems=[],this._contentElement=angular.element(element[0].querySelector(".ons-tab-bar__content")),this._tabbarElement=angular.element(element[0].querySelector(".ons-tab-bar__footer")),this._scope.$on("$destroy",this._destroy.bind(this)),this._hasTopTabbar()&&this._prepareForTopTabbar()
},_prepareForTopTabbar:function(){this._contentElement.attr("no-status-bar-fill",""),setImmediate(function(){this._contentElement.addClass("tab-bar--top__content"),this._tabbarElement.addClass("tab-bar--top")}.bind(this));var page=ons.findParentComponentUntil("ons-page",this._element[0]);if(page&&this._element.css("top",window.getComputedStyle(page.getContentElement(),null).getPropertyValue("padding-top")),$onsen.shouldFillStatusBar(this._element[0])){var fill=angular.element(document.createElement("div"));fill.addClass("tab-bar__status-bar-fill"),fill.css({width:"0px",height:"0px"}),this._element.prepend(fill)}},_hasTopTabbar:function(){return"top"===this._attrs.position},setActiveTab:function(index,options){options=options||{};var previousTabItem=this._tabItems[this.getActiveTabIndex()],selectedTabItem=this._tabItems[index],needLoad=selectedTabItem.page&&!options.keepPage;if(!selectedTabItem)return!1;var canceled=!1;if(this.emit("prechange",{index:index,tabItem:selectedTabItem,cancel:function(){canceled=!0}}),canceled)return selectedTabItem.setInactive(),previousTabItem&&previousTabItem.setActive(),!1;selectedTabItem.setActive(),needLoad&&this._loadPage(selectedTabItem.page,{callback:function(){this.emit("postchange",{index:index,tabItem:selectedTabItem})}.bind(this)});for(var i=0;i<this._tabItems.length;i++)this._tabItems[i]!=selectedTabItem?this._tabItems[i].setInactive():(this._triggerActiveTabChanged(i,selectedTabItem),needLoad||this.emit("postchange",{index:index,tabItem:selectedTabItem}));return!0},_triggerActiveTabChanged:function(index,tabItem){this._scope.onActiveTabChanged({$index:index,$tabItem:tabItem})},setTabbarVisibility:function(visible){this._scope.hideTabs=!visible,this._onTabbarVisibilityChanged()},_onTabbarVisibilityChanged:function(){this._hasTopTabbar()?this._scope.hideTabs?this._contentElement.css("top","0px"):this._contentElement.css("top",""):this._scope.hideTabs?this._tabbarElement.css("bottom","0px"):this._tabbarElement.css("bottom","")},addTabItem:function(tabItem){this._tabItems.push(tabItem)},getActiveTabIndex:function(){for(var tabItem,i=0;i<this._tabItems.length;i++)if(tabItem=this._tabItems[i],tabItem.isActive())return i;return-1},loadPage:function(page,options){return this._loadPage(page,options)},_loadPage:function(page,options){$onsen.getPageHTMLAsync(page).then(function(html){var pageElement=angular.element(html.trim());this._loadPageDOM(page,pageElement,options)}.bind(this),function(){throw new Error("Page is not found: "+page)})},_loadPageDOM:function(page,element,options){options=options||{};var pageScope=this._scope.$parent.$new(),link=$compile(element);this._contentElement.append(element);var pageContent=link(pageScope);if(pageScope.$evalAsync(),this._currentPageElement){var oldPageElement=this._currentPageElement,oldPageScope=this._currentPageScope;this._currentPageElement=pageContent,this._currentPageScope=pageScope,this._getAnimatorOption(options).apply(pageContent,oldPageElement,function(){oldPageElement.remove(),oldPageScope.$destroy(),options.callback instanceof Function&&options.callback()})}else this._currentPageElement=pageContent,this._currentPageScope=pageScope,options.callback instanceof Function&&options.callback()},_getAnimatorOption:function(options){var animationAttr=this._element.attr("animation")||"default";return TabbarView._animatorDict[options.animation||animationAttr]||TabbarView._animatorDict["default"]},_destroy:function(){this.emit("destroy",{tabbar:this}),this._element=this._scope=this._attrs=null}});return MicroEvent.mixin(TabbarView),TabbarView._animatorDict={"default":new TabbarNoneAnimator,none:new TabbarNoneAnimator,fade:new TabbarFadeAnimator},TabbarView.registerAnimator=function(name,animator){if(!(animator instanceof TabbarAnimator))throw new Error('"animator" param must be an instance of TabbarAnimator');this._transitionAnimatorDict[name]=animator},TabbarView}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsBackButton",["$onsen","$compile","ComponentCleaner",function($onsen,$compile,ComponentCleaner){return{restrict:"E",replace:!1,templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/back_button.tpl",transclude:!0,scope:!0,link:{pre:function(scope,element,attrs,controller,transclude){scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),transclude(scope,function(clonedElement){clonedElement[0]&&element[0].querySelector(".back-button__label").appendChild(clonedElement[0])}),ComponentCleaner.onDestroy(scope,function(){ComponentCleaner.destroyScope(scope),ComponentCleaner.destroyAttributes(attrs),element=null,scope=null,attrs=null})}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsBottomToolbar",["$onsen",function($onsen){return{restrict:"E",replace:!1,transclude:!1,scope:!1,compile:function(element,attrs){var modifierTemplater=$onsen.generateModifierTemplater(attrs);return element.addClass("bottom-bar"),element.addClass(modifierTemplater("bottom-bar--*")),element.css({"z-index":0}),{pre:function(scope,element,attrs){scope.modifierTemplater=$onsen.generateModifierTemplater(attrs);var pageView=element.inheritedData("ons-page");pageView&&pageView.registerBottomToolbar(element)}}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsButton",["$onsen",function($onsen){return{restrict:"E",replace:!1,transclude:!0,scope:{animation:"@"},templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/button.tpl",link:function(scope,element,attrs,_,transclude){var initialAnimation="slide-left";if(scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),element.addClass("button effeckt-button"),element.addClass(scope.modifierTemplater("button--*")),element.addClass(initialAnimation),transclude(scope,function(cloned){angular.element(element[0].querySelector(".ons-button-inner")).append(cloned)}),attrs.ngController)throw new Error("This element can't accept ng-controller directive.");scope.item={},scope.item.animation=initialAnimation,attrs.$observe("disabled",function(disabled){"true"===disabled?element.attr("disabled",!0):element.attr("disabled",!1)}),scope.$watch("animation",function(newAnimation){newAnimation&&(scope.item.animation&&element.removeClass(scope.item.animation),scope.item.animation=newAnimation,element.addClass(scope.item.animation))}),attrs.$observe("shouldSpin",function(shouldSpin){"true"===shouldSpin?element.attr("data-loading",!0):element.removeAttr("data-loading")}),$onsen.cleaner.onDestroy(scope,function(){$onsen.clearComponent({scope:scope,attrs:attrs,element:element}),scope=element=attrs=null})}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsCol",["$timeout","$onsen",function($timeout,$onsen){return{restrict:"E",replace:!1,transclude:!1,scope:!1,compile:function(element){return element.addClass("col ons-col-inner"),function(scope,element,attrs){function updateAlign(align){"top"===align||"center"===align||"bottom"===align?(element.removeClass("col-top col-center col-bottom"),element.addClass("col-"+align)):element.removeClass("col-top col-center col-bottom")}function updateWidth(width){"string"==typeof width?(width=(""+width).trim(),width=width.match(/^\d+$/)?width+"%":width,element.css({"-webkit-box-flex":"0","-webkit-flex":"0 0 "+width,"-moz-box-flex":"0","-moz-flex":"0 0 "+width,"-ms-flex":"0 0 "+width,flex:"0 0 "+width,"max-width":width})):element.removeAttr("style")}attrs.$observe("align",function(align){updateAlign(align)}),attrs.$observe("width",function(width){updateWidth(width)}),attrs.$observe("size",function(size){attrs.width||updateWidth(size)}),updateAlign(attrs.align),updateWidth(attrs.size&&!attrs.width?attrs.size:attrs.width),$onsen.cleaner.onDestroy(scope,function(){$onsen.clearComponent({scope:scope,element:element,attrs:attrs}),element=attrs=scope=null})}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsDummyForInit",["$rootScope",function($rootScope){var isReady=!1;return{restrict:"E",replace:!1,link:{post:function(scope,element){isReady||(isReady=!0,$rootScope.$broadcast("$ons-ready")),element.remove()}}}}])}(),function(){"use strict";var EVENTS="drag dragleft dragright dragup dragdown hold release swipe swipeleft swiperight swipeup swipedown tap doubletap touch transform pinch pinchin pinchout rotate".split(/ +/);angular.module("onsen").directive("onsGestureDetector",["$onsen",function($onsen){function titlize(str){return str.charAt(0).toUpperCase()+str.slice(1)}var scopeDef=EVENTS.reduce(function(dict,name){return dict["ng"+titlize(name)]="&",dict},{});return{restrict:"E",scope:scopeDef,replace:!1,transclude:!0,compile:function(){return function(scope,element,attrs,controller,transclude){function handleEvent(event){var attr="ng"+titlize(event.type);attr in scopeDef&&scope[attr]({$event:event})}transclude(scope.$parent.$new(),function(cloned){element.append(cloned)});var hammer=new Hammer(element[0]);hammer.on(EVENTS.join(" "),handleEvent),$onsen.cleaner.onDestroy(scope,function(){hammer.off(EVENTS.join(" "),handleEvent),$onsen.clearComponent({scope:scope,element:element,attrs:attrs}),hammer.element=scope=element=attrs=null})}}}}])}(),function(){"use strict";function cleanClassAttribute(element){var classList=(""+element.attr("class")).split(/ +/).filter(function(classString){return"fa"!==classString&&"fa-"!==classString.substring(0,3)});element.attr("class",classList.join(" "))}function buildClassAndStyle(attrs){var classList=["ons-icon"],style={};0===attrs.icon.indexOf("ion-")?(classList.push(attrs.icon),classList.push("ons-icon--ion")):0===attrs.icon.indexOf("fa-")?(classList.push(attrs.icon),classList.push("fa")):(classList.push("fa"),classList.push("fa-"+attrs.icon));var size=""+attrs.size;return size.match(/^[1-5]x|lg$/)?classList.push("fa-"+size):"string"==typeof attrs.size?style["font-size"]=size:classList.push("fa-lg"),("90"===attrs.rotate||"180"===attrs.rotate||"270"===attrs.rotate)&&classList.push("ons-icon--rotate-"+attrs.rotate),("horizontal"===attrs.flip||"vertical"===attrs.flip)&&classList.push("ons-icon--flip-"+attrs.flip),"false"!==attrs.fixedWidth&&classList.push("ons-icon--fw"),"true"===attrs.spin&&classList.push("ons-icon--spin"),{"class":classList.join(" "),style:style}}var module=angular.module("onsen");module.directive("onsIcon",["$onsen",function($onsen){return{restrict:"E",replace:!1,transclude:!1,link:function(scope,element,attrs){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");var update=function(){cleanClassAttribute(element);var builded=buildClassAndStyle(attrs);element.css(builded.style),element.addClass(builded["class"])},builded=buildClassAndStyle(attrs);element.css(builded.style),element.addClass(builded["class"]),attrs.$observe("icon",update),attrs.$observe("size",update),attrs.$observe("fixedWidth",update),attrs.$observe("rotate",update),attrs.$observe("flip",update),attrs.$observe("spin",update),$onsen.cleaner.onDestroy(scope,function(){$onsen.clearComponent({scope:scope,element:element,attrs:attrs}),element=scope=attrs=null})}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsIfOrientation",["$onsen","$onsGlobal",function($onsen,$onsGlobal){return{restrict:"A",replace:!1,transclude:!1,scope:!1,compile:function(element){return element.css("display","none"),function(scope,element,attrs){function update(){var userOrientation=(""+attrs.onsIfOrientation).toLowerCase(),orientation=getLandscapeOrPortrait();("portrait"===userOrientation||"landscape"===userOrientation)&&(userOrientation===orientation?element.css("display",""):element.css("display","none"))}function getLandscapeOrPortrait(){return $onsGlobal.orientation.isPortrait()?"portrait":"landscape"}element.addClass("ons-if-orientation-inner"),attrs.$observe("onsIfOrientation",update),$onsGlobal.orientation.on("change",update),update(),$onsen.cleaner.onDestroy(scope,function(){$onsGlobal.orientation.off("change",update),$onsen.clearComponent({element:element,scope:scope,attrs:attrs}),element=scope=attrs=null})}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsIfPlatform",["$onsen",function($onsen){return{restrict:"A",replace:!1,transclude:!1,scope:!1,compile:function(element){function getPlatformString(){if(navigator.userAgent.match(/Android/i))return"android";if(navigator.userAgent.match(/BlackBerry/i)||navigator.userAgent.match(/RIM Tablet OS/i)||navigator.userAgent.match(/BB10/i))return"blackberry";if(navigator.userAgent.match(/iPhone|iPad|iPod/i))return"ios";if(navigator.userAgent.match(/IEMobile/i))return"windows";var isOpera=!!window.opera||navigator.userAgent.indexOf(" OPR/")>=0;if(isOpera)return"opera";var isFirefox="undefined"!=typeof InstallTrigger;if(isFirefox)return"firefox";var isSafari=Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor")>0;if(isSafari)return"safari";var isChrome=!!window.chrome&&!isOpera;if(isChrome)return"chrome";var isIE=!1||!!document.documentMode;return isIE?"ie":"unknown"}element.addClass("ons-if-platform-inner"),element.css("display","none");var platform=getPlatformString();return function(scope,element,attrs){function update(){attrs.onsIfPlatform.toLowerCase()===platform.toLowerCase()?element.css("display","block"):element.css("display","none")}attrs.$observe("onsIfPlatform",function(userPlatform){userPlatform&&update()}),update(),$onsen.cleaner.onDestroy(scope,function(){$onsen.clearComponent({element:element,scope:scope,attrs:attrs}),element=scope=attrs=null})}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsList",["$onsen",function($onsen){return{restrict:"E",scope:!1,replace:!1,transclude:!1,compile:function(element,attrs){var templater=$onsen.generateModifierTemplater(attrs);element.addClass("list ons-list-inner"),element.addClass(templater("list--*"))}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsListHeader",["$onsen",function($onsen){return{restrict:"E",replace:!1,transclude:!1,compile:function(elem,attrs){var templater=$onsen.generateModifierTemplater(attrs);elem.addClass("list__header ons-list-header-inner"),elem.addClass(templater("list__header--*"))}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsListItem",["$onsen",function($onsen){return{restrict:"E",replace:!1,transclude:!1,compile:function(elem,attrs){var templater=$onsen.generateModifierTemplater(attrs);elem.addClass("list__item ons-list-item-inner"),elem.addClass(templater("list__item--*"))}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsModal",["$onsen","ModalView",function($onsen,ModalView){function compile(element,attrs){var modifierTemplater=$onsen.generateModifierTemplater(attrs),html=element[0].innerHTML;element[0].innerHTML="";var wrapper=angular.element("<div></div>");wrapper.addClass("modal__content"),wrapper.addClass(modifierTemplater("modal--*__content")),element.css("display","none"),element.addClass("modal"),element.addClass(modifierTemplater("modal--*")),wrapper[0].innerHTML=html,element.append(wrapper)}return{restrict:"E",replace:!1,scope:!1,transclude:!1,compile:function(element,attrs){return compile(element,attrs),{pre:function(scope,element,attrs){var page=element.inheritedData("ons-page");page&&page.registerExtraElement(element);var modal=new ModalView(scope,element);$onsen.declareVarAttribute(attrs,modal),$onsen.aliasStack.register("ons.modal",modal),element.data("ons-modal",modal),scope.$on("$destroy",function(){element.data("ons-modal",void 0),$onsen.aliasStack.unregister("ons.modal",modal)})},post:function(){}}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsNavigator",["$compile","NavigatorView","$onsen",function($compile,NavigatorView,$onsen){return{restrict:"E",transclude:!1,scope:!0,compile:function(element){var html=$onsen.normalizePageHTML(element.html());return element.contents().remove(),{pre:function(scope,element,attrs){var navigator=new NavigatorView({scope:scope,element:element});if($onsen.declareVarAttribute(attrs,navigator),attrs.page)navigator.pushPage(attrs.page,{});else{var pageScope=navigator._createPageScope(),pageElement=angular.element(html),linkScope=$compile(pageElement),link=function(){linkScope(pageScope)};navigator._pushPageDOM("",pageElement,link,pageScope,{}),pageElement=null}$onsen.aliasStack.register("ons.navigator",navigator),element.data("ons-navigator",navigator),scope.$on("$destroy",function(){element.data("ons-navigator",void 0),$onsen.aliasStack.unregister("ons.navigator",navigator),element=null})}}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsPage",["$onsen","PageView",function($onsen,PageView){function firePageInitEvent(element){var i=0,f=function(){if(!(i++<5))throw new Error('Fail to fire "pageinit" event. Attach "ons-page" element to the document after initialization.');isAttached(element)?(fillStatusBar(element),fireActualPageInitEvent(element)):setImmediate(f)};f()}function fireActualPageInitEvent(element){var event=document.createEvent("HTMLEvents");event.initEvent("pageinit",!0,!0),element.dispatchEvent(event)}function fillStatusBar(element){if($onsen.shouldFillStatusBar(element)){var fill=angular.element(document.createElement("div"));fill.addClass("page__status-bar-fill"),fill.css({width:"0px",height:"0px"}),angular.element(element).prepend(fill)}}function isAttached(element){return document.documentElement===element?!0:element.parentNode?isAttached(element.parentNode):!1}function preLink(scope,element,attrs){var page=new PageView(scope,element,attrs);$onsen.declareVarAttribute(attrs,page),$onsen.aliasStack.register("ons.page",page),element.data("ons-page",page);var modifierTemplater=$onsen.generateModifierTemplater(attrs);element.addClass("page "+modifierTemplater("page--*"));var pageContent=angular.element(element[0].querySelector(".page__content"));pageContent.addClass(modifierTemplater("page--*__content")),pageContent=null,$onsen.cleaner.onDestroy(scope,function(){element.data("ons-page",void 0),$onsen.aliasStack.unregister("ons.page",page),$onsen.clearComponent({element:element,scope:scope,attrs:attrs}),scope=element=attrs=null})}function postLink(scope,element){firePageInitEvent(element[0])}return{restrict:"E",transclude:!1,scope:!0,compile:function(element){var children=element.children().remove(),content=angular.element('<div class="page__content ons-page-inner"></div>').append(children);if(element.attr("style")&&(content.attr("style",element.attr("style")),element.attr("style","")),Modernizr.csstransforms3d)element.append(content);else{content.css("overflow","visible");var wrapper=angular.element("<div></div>");wrapper.append(children),content.append(wrapper),element.append(content),wrapper=null;var scroller=new IScroll(content[0],{momentum:!0,bounce:!0,hScrollbar:!1,vScrollbar:!1,preventDefault:!1}),offset=10;scroller.on("scrollStart",function(){var scrolled=scroller.y-offset;scrolled<scroller.maxScrollY+40&&scroller.refresh()})}return content=null,children=null,{pre:preLink,post:postLink}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsRow",["$onsen","$timeout",function(){return{restrict:"E",replace:!1,transclude:!1,scope:!1,compile:function(element){return element.addClass("row ons-row-inner"),function(scope,element,attrs){function update(){var align=(""+attrs.align).trim();("top"===align||"center"===align||"bottom"===align)&&(element.removeClass("row-bottom row-center row-top"),element.addClass("row-"+align))}attrs.$observe("align",function(){update()}),update()}}}}])}(),function(){"use strict";var module=angular.module("onsen"),TransitionAnimator=Class.extend({push:function(enterPage,leavePage,callback){callback()},pop:function(enterPage,leavePage,callback){callback()}}),ModalTransitionAnimator=TransitionAnimator.extend({backgroundMask:angular.element('<div style="position: absolute; width: 100%;height: 100%; background-color: black;"></div>'),push:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();leavePage.pageElement[0].parentNode.insertBefore(mask[0],leavePage.pageElement[0]),animit.runAll(animit(mask[0]).wait(.4).queue(function(done){mask.remove(),done()}),animit(enterPage.pageElement[0]).queue({transform:"translate3D(0, 100%, 0)"}).queue({transform:"translate3D(0, 0, 0)"},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){callback(),done()}),animit(leavePage.pageElement[0]).queue({transform:"translate3D(0, 0, 0)",opacity:1}).queue({transform:"translate3D(0, -10%, 0)",opacity:.9},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle())},pop:function(enterPage,leavePage,callback){var mask=this.backgroundMask.remove();enterPage.pageElement[0].parentNode.insertBefore(mask[0],enterPage.pageElement[0]),animit.runAll(animit(mask[0]).wait(.4).queue(function(done){mask.remove(),done()}),animit(enterPage.pageElement[0]).queue({transform:"translate3D(0, -10%, 0)",opacity:.9}).queue({transform:"translate3D(0, 0, 0)",opacity:1},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}).resetStyle().queue(function(done){callback(),done()}),animit(leavePage.pageElement[0]).queue({transform:"translate3D(0, 0, 0)"}).queue({transform:"translate3D(0, 100%, 0)"},{duration:.4,timing:"cubic-bezier(.1, .7, .1, 1)"}))}});module.service("Screen",["$compile","$onsen",function($compile,$onsen){var Screen=Class.extend({init:function(scope,element,attrs){this.screenItems=[],this.scope=scope,this.element=element,this.attrs=attrs,this._doorLock=new DoorLock,this.attachMethods(),scope.page&&this.resetToPage(scope.page)},isEmpty:function(){return this.screenItems.length<1},compilePageEl:function(pageEl,pageScope){var compiledPage=$compile(pageEl)(pageScope);return compiledPage},createPageScope:function(){var pageScope=this.scope.$new();return pageScope},_presentPageDOM:function(pageUrl,compiledPage,pageScope,callback){callback=callback||function(){};var screenItem={pageUrl:pageUrl,pageElement:compiledPage,pageScope:pageScope,destroy:function(){this.pageElement.remove(),this.pageScope.$destroy()}};if(compiledPage.css("z-index",0),this.screenItems.push(screenItem),this.screenItems.length>1){var enterPage=screenItem,leavePage=this.screenItems[this.screenItems.length-2];(new ModalTransitionAnimator).push(enterPage,leavePage,function(){leavePage.pageElement.css({display:"none"}),callback()}),this.element.append(compiledPage)}else this.element.append(compiledPage),callback()},presentPage:function(page){var self=this;this._doorLock.waitUnlock(function(){var unlock=self._doorLock.lock();$onsen.getPageHTMLAsync(page).then(function(html){var pageContent=angular.element(html.trim()),pageScope=self.createPageScope(),compiledPage=self.compilePageEl(pageContent,pageScope);self._presentPageDOM(page,compiledPage,pageScope,unlock)},function(){throw unlock(),new Error("Page is not found: "+page)})})},dismissPage:function(){if(!(this.screenItems.length<2)){var self=this;this._doorLock.waitUnlock(function(){var unlock=self._doorLock.lock(),leavePage=self.screenItems.pop(),enterPage=self.screenItems[self.screenItems.length-1];enterPage.pageElement.css({display:"block"}),(new ModalTransitionAnimator).pop(enterPage,leavePage,function(){leavePage.destroy(),unlock()})})}},resetToPage:function(page){this.scope.presentPage(page);for(var i=0;i<this.screenItems.length-1;i++)this.screenItems[i].destroy()},attachMethods:function(){this.scope.presentPage=this.presentPage.bind(this),this.scope.resetToPage=this.resetToPage.bind(this),this.scope.dismissPage=this.dismissPage.bind(this)}});return Screen}]),module.directive("onsScreen",["$compile","Screen","$onsen",function($compile,Screen,$onsen){return{restrict:"E",replace:!1,transclude:!1,scope:!0,compile:function(element){var html=$onsen.normalizePageHTML(element.html().trim());return element.contents().remove(),function(scope,element,attrs){var screen=new Screen(scope,element,attrs);if($onsen.declareVarAttribute(attrs,screen),!attrs.page){var pageScope=screen.createPageScope(),compiled=$compile(angular.element(html))(pageScope);screen._presentPageDOM("",compiled,pageScope)}$onsen.aliasStack.register("ons.screen",screen),element.data("ons-screen",screen),scope.$on("$destroy",function(){element.data("ons-screen",void 0),$onsen.aliasStack.register("ons.screen",screen)})}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsScroller",["$onsen","$timeout",function($onsen,$timeout){return{restrict:"E",replace:!1,transclude:!0,scope:{onScrolled:"&",infinitScrollEnable:"="},compile:function(element){var wrapper=(element.addClass("ons-scroller").children().remove(),angular.element("<div></div>"));return wrapper.addClass("ons-scroller__content ons-scroller-inner"),element.append(wrapper),function(scope,element,attrs,controller,transclude){if(attrs.ngController)throw new Error('"ons-scroller" can\'t accept "ng-controller" directive.');transclude(scope.$parent,function(cloned){wrapper.append(cloned),wrapper=null});var scrollWrapper;scrollWrapper=element[0];var offset=parseInt(attrs.threshold)||10;scope.onScrolled&&scrollWrapper.addEventListener("scroll",function(){if(scope.infinitScrollEnable){var scrollTopAndOffsetHeight=scrollWrapper.scrollTop+scrollWrapper.offsetHeight,scrollHeightMinusOffset=scrollWrapper.scrollHeight-offset;scrollTopAndOffsetHeight>=scrollHeightMinusOffset&&scope.onScrolled()}}),Modernizr.csstransforms3d||$timeout(function(){var iScroll=new IScroll(scrollWrapper,{momentum:!0,bounce:!0,hScrollbar:!1,vScrollbar:!1,preventDefault:!1});iScroll.on("scrollStart",function(){var scrolled=iScroll.y-offset;scrolled<iScroll.maxScrollY+40&&iScroll.refresh()}),scope.onScrolled&&iScroll.on("scrollEnd",function(){var scrolled=iScroll.y-offset;scrolled<iScroll.maxScrollY&&scope.onScrolled()})},500)}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsSlidingMenu",["$compile","SlidingMenuView","$onsen",function($compile,SlidingMenuView,$onsen){return{restrict:"E",replace:!1,transclude:!1,scope:!0,templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/sliding_menu.tpl",link:function(scope,element,attrs){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");var slidingMenu=new SlidingMenuView(scope,element,attrs);$onsen.aliasStack.register("ons.slidingMenu",slidingMenu),$onsen.declareVarAttribute(attrs,slidingMenu),element.data("ons-sliding-menu",slidingMenu),scope.$on("$destroy",function(){element.data("ons-sliding-menu",void 0),$onsen.aliasStack.unregister("ons.slidingMenu",slidingMenu)})}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsSplitView",["$compile","SplitView","$onsen",function($compile,SplitView,$onsen){return{restrict:"E",replace:!1,transclude:!1,scope:{secondaryPage:"@",mainPage:"@",collapse:"@",swipable:"@",mainPageWidth:"@"},templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/split_view.tpl",link:function(scope,element,attrs){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");var splitView=new SplitView(scope,element,attrs);$onsen.declareVarAttribute(attrs,splitView),element.data("ons-split-view",splitView),$onsen.aliasStack.register("ons.splitView",splitView),scope.$on("$destroy",function(){element.data("ons-split-view",void 0),$onsen.aliasStack.unregister("ons.splitView",splitView)})}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsSwitch",["$onsen","SwitchView",function($onsen,SwitchView){return{restrict:"E",replace:!1,transclude:!1,scope:!0,templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/switch.tpl",compile:function(){return function(scope,element,attrs){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");var switchView=new SwitchView(element,scope,attrs),checkbox=angular.element(element[0].querySelector("input[type=checkbox]"));scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),attrs.$observe("checked",function(){scope.model=!!element.attr("checked")}),attrs.$observe("name",function(name){element.attr("name")&&checkbox.attr("name",name)}),attrs.ngModel&&(scope.$parent.$watch(attrs.ngModel,function(value){scope.model=value}),scope.$watch("model",function(model){scope.$parent[attrs.ngModel]=model}),scope.$parent[attrs.ngModel]=!!element.attr("checked")),$onsen.declareVarAttribute(attrs,switchView),element.data("ons-switch",switchView),$onsen.aliasStack.register("ons.switch",switchView),$onsen.cleaner.onDestroy(scope,function(){element.data("ons-switch",void 0),$onsen.aliasStack.unregister("ons.switch",switchView),$onsen.clearComponent({element:element,scope:scope,attrs:attrs}),checkbox=element=attrs=scope=null})}}}}])}(),function(){"use strict";function tab($onsen,$compile){return{restrict:"E",transclude:!0,scope:{page:"@",active:"@",icon:"@",activeIcon:"@",label:"@"},templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/tab.tpl",compile:function(element){return element.addClass("tab-bar__item"),function(scope,element,attrs,controller,transclude){var tabbarView=element.inheritedData("ons-tabbar");if(!tabbarView)throw new Error("This ons-tab element is must be child of ons-tabbar element.");element.addClass(tabbarView._scope.modifierTemplater("tab-bar--*__item")),element.addClass(tabbarView._scope.modifierTemplater("tab-bar__item--*")),transclude(function(cloned){var wrapper=angular.element(element[0].querySelector(".tab-bar-inner"));if(attrs.icon||attrs.label||!cloned[0]){var innerElement=angular.element("<div>"+defaultInnerTemplate+"</div>").children();wrapper.append(innerElement),$compile(innerElement)(scope)}else wrapper.append(cloned)});var radioButton=element[0].querySelector("input");scope.tabbarModifierTemplater=tabbarView._scope.modifierTemplater,scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),scope.tabbarId=tabbarView._tabbarId,scope.tabIcon=scope.icon,tabbarView.addTabItem(scope),scope.setActive=function(){element.addClass("active"),radioButton.checked=!0,scope.activeIcon&&(scope.tabIcon=scope.activeIcon),angular.element(element[0].querySelectorAll("[ons-tab-inactive]")).css("display","none"),angular.element(element[0].querySelectorAll("[ons-tab-active]")).css("display","inherit")},scope.setInactive=function(){element.removeClass("active"),radioButton.checked=!1,scope.tabIcon=scope.icon,angular.element(element[0].querySelectorAll("[ons-tab-inactive]")).css("display","inherit"),angular.element(element[0].querySelectorAll("[ons-tab-active]")).css("display","none")},scope.isActive=function(){return element.hasClass("active")},scope.tryToChange=function(){tabbarView.setActiveTab(tabbarView._tabItems.indexOf(scope))},scope.active&&tabbarView.setActiveTab(tabbarView._tabItems.indexOf(scope))}}}}var module=angular.module("onsen");module.directive("onsTab",tab),module.directive("onsTabbarItem",tab);var defaultInnerTemplate='<div ng-if="icon != undefined" class="tab-bar__icon"><ons-icon icon="{{tabIcon}}" style="font-size: 28px; line-height: 34px; vertical-align: top;"></ons-icon></div><div ng-if="label" class="tab-bar__label">{{label}}</div>';tab.$inject=["$onsen","$compile"]}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsTabbar",["$onsen","$compile","TabbarView",function($onsen,$compile,TabbarView){return{restrict:"E",replace:!1,transclude:!0,scope:{onActiveTabChanged:"&"},templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/tab_bar.tpl",link:function(scope,element,attrs,controller,transclude){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),scope.selectedTabItem={source:""},attrs.$observe("hideTabs",function(hide){var visible="true"!==hide;tabbarView.setTabbarVisibility(visible)});var tabbarView=new TabbarView(scope,element,attrs);scope.tabbarId=tabbarView._tabbarId,$onsen.aliasStack.register("ons.tabbar",tabbarView),element.data("ons-tabbar",tabbarView),$onsen.declareVarAttribute(attrs,tabbarView),transclude(function(cloned){angular.element(element[0].querySelector(".ons-tabbar-inner")).append(cloned)
}),scope.$on("$destroy",function(){element.data("ons-tabbar",void 0),$onsen.aliasStack.unregister("ons.tabbar",tabbarView)})}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsTemplate",["$onsen","$templateCache",function($onsen,$templateCache){return{restrict:"E",transclude:!1,priority:1e3,terminal:!0,compile:function(element){$templateCache.put(element.attr("id"),element.remove().html())}}}])}(),function(){"use strict";function ensureLeftContainer(element){var container=element[0].querySelector(".left");return container||(container=document.createElement("div"),container.setAttribute("class","left"),container.innerHTML=" "),""===container.innerHTML.trim()&&(container.innerHTML=" "),angular.element(container).addClass("navigation-bar__left"),container}function ensureCenterContainer(element){var container=element[0].querySelector(".center");return container||(container=document.createElement("div"),container.setAttribute("class","center")),""===container.innerHTML.trim()&&(container.innerHTML=" "),angular.element(container).addClass("navigation-bar__title navigation-bar__center"),container}function ensureRightContainer(element){var container=element[0].querySelector(".right");return container||(container=document.createElement("div"),container.setAttribute("class","right"),container.innerHTML=" "),""===container.innerHTML.trim()&&(container.innerHTML=" "),angular.element(container).addClass("navigation-bar__right"),container}function hasCenterClassElementOnly(element){for(var child,hasCenter=!1,hasOther=!1,children=element.contents(),i=0;i<children.length;i++)child=angular.element(children[i]),child.hasClass("center")?hasCenter=!0:(child.hasClass("left")||child.hasClass("right"))&&(hasOther=!0);return hasCenter&&!hasOther}function ensureToolbarItemElements(element){var center;if(hasCenterClassElementOnly(element))center=ensureCenterContainer(element),element.contents().remove(),element.append(center);else{center=ensureCenterContainer(element);var left=ensureLeftContainer(element),right=ensureRightContainer(element);element.contents().remove(),element.append(angular.element([left,center,right]))}}var module=angular.module("onsen");module.directive("onsToolbar",["$onsen",function($onsen){return{restrict:"E",replace:!1,scope:!0,transclude:!1,compile:function(element,attrs){var modifierTemplater=$onsen.generateModifierTemplater(attrs);return element.addClass("navigation-bar"),element.addClass(modifierTemplater("navigation-bar--*")),element.css({position:"absolute","z-index":"10000",left:"0px",right:"0px",top:"0px"}),ensureToolbarItemElements(element),{pre:function(scope,element){var pageView=element.inheritedData("ons-page");pageView&&pageView.registerToolbar(element)}}}}}])}(),function(){"use strict";var module=angular.module("onsen");module.directive("onsToolbarButton",["$onsen",function($onsen){return{restrict:"E",transclude:!0,templateUrl:$onsen.DIRECTIVE_TEMPLATE_URL+"/toolbar_button.tpl",link:{pre:function(scope,element,attrs){if(attrs.ngController)throw new Error("This element can't accept ng-controller directive.");scope.modifierTemplater=$onsen.generateModifierTemplater(attrs),$onsen.cleaner.onDestroy(scope,function(){$onsen.clearComponent({scope:scope,attrs:attrs,element:element}),scope=element=attrs=null})}}}}])}(),function(){"use strict";var module=angular.module("onsen"),ComponentCleaner={decomposeNode:function(element){for(var children=element.remove().children(),i=0;i<children.length;i++)ComponentCleaner.decomposeNode(angular.element(children[i]))},destroyAttributes:function(attrs){attrs.$$element=null,attrs.$$observers=null},destroyElement:function(element){element.remove()},destroyScope:function(scope){scope.$$listeners={},scope.$$watchers=null,scope=null},onDestroy:function(scope,fn){var clear=scope.$on("$destroy",function(){clear(),fn.apply(null,arguments)})}};module.factory("ComponentCleaner",function(){return ComponentCleaner}),function(){var ngEventDirectives={};"click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste".split(" ").forEach(function(name){function directiveNormalize(name){return name.replace(/-([a-z])/g,function(matches){return matches[1].toUpperCase()})}var directiveName=directiveNormalize("ng-"+name);ngEventDirectives[directiveName]=["$parse",function($parse){return{compile:function($element,attr){var fn=$parse(attr[directiveName]);return function(scope,element,attr){var listener=function(event){scope.$apply(function(){fn(scope,{$event:event})})};element.on(name,listener),ComponentCleaner.onDestroy(scope,function(){element.off(name,listener),element=null,ComponentCleaner.destroyScope(scope),scope=null,ComponentCleaner.destroyAttributes(attr),attr=null})}}}}]}),module.config(["$provide",function($provide){var shift=function($delegate){return $delegate.shift(),$delegate};Object.keys(ngEventDirectives).forEach(function(directiveName){$provide.decorator(directiveName+"Directive",["$delegate",shift])})}]),Object.keys(ngEventDirectives).forEach(function(directiveName){module.directive(directiveName,ngEventDirectives[directiveName])})}()}(),function(){"use strict";var util={init:function(){this.ready=!1},addBackButtonListener:function(fn){this._ready?window.document.addEventListener("backbutton",fn,!1):window.document.addEventListener("deviceready",function(){window.document.addEventListener("backbutton",fn,!1)})},removeBackButtonListener:function(fn){this._ready?window.document.removeEventListener("backbutton",fn,!1):window.document.addEventListener("deviceready",function(){window.document.removeEventListener("backbutton",fn,!1)})}};util.init(),angular.module("onsen").service("DeviceBackButtonHandler",function(){this._init=function(){window.ons.isWebView()?window.document.addEventListener("deviceready",function(){util._ready=!0},!1):util._ready=!0,this._bindedCallback=this._callback.bind(this),this.enable()},this._isEnabled=!1,this.enable=function(){this._isEnabled||(util.addBackButtonListener(this._bindedCallback),this._isEnabled=!0)},this.disable=function(){this._isEnabled&&(util.removeBackButtonListener(this._bindedCallback),this._isEnabled=!1)},this.fireDeviceBackButtonEvent=function(){var event=document.createEvent("Event");event.initEvent("backbutton",!0,!0),document.dispatchEvent(event)},this._callback=function(){this._dispatchDeviceBackButtonEvent()},this.create=function(element,callback){if(!(element instanceof angular.element().constructor))throw new Error("element must be an instance of jqLite");if(!(callback instanceof Function))throw new Error("callback must be an instance of Function");var handler={_callback:callback,_element:element,disable:function(){this._element.data("device-backbutton-handler",null)},setListener:function(callback){this._callback=callback},enable:function(){this._element.data("device-backbutton-handler",this)},isEnabled:function(){return this._element.data("device-backbutton-handler")===this},destroy:function(){this._element.data("device-backbutton-handler",null),this._callback=this._element=null}};return handler.enable(),handler},this._dispatchDeviceBackButtonEvent=function(){function createEvent(element){return{_element:element,callParentHandler:function(){for(var parent=this._element.parent();parent[0];){if(handler=parent.data("device-backbutton-handler"))return handler._callback(createEvent(parent));parent=parent.parent()}}}}var tree=this._captureTree(),element=this._findHandlerLeafElement(tree),handler=element.data("device-backbutton-handler");handler._callback(createEvent(element))},this._dumpParents=function(element){for(;element[0];)console.log(element[0].nodeName.toLowerCase()+"."+element.attr("class")),element=element.parent()},this._captureTree=function(){function createTree(element){return{element:element,children:Array.prototype.concat.apply([],Array.prototype.map.call(element.children(),function(child){if(child=angular.element(child),"none"===child[0].style.display)return[];if(0===child.children().length&&!child.data("device-backbutton-handler"))return[];var result=createTree(child);return 0!==result.children.length||child.data("device-backbutton-handler")?[result]:[]}))}}return createTree(angular.element(document.body))},this._dumpTree=function(node){function _dump(node,level){var pad=new Array(level+1).join(" ");console.log(pad+node.element[0].nodeName.toLowerCase()),node.children.forEach(function(node){_dump(node,level+1)})}_dump(node,0)},this._findHandlerLeafElement=function(tree){function find(node){return 0===node.children.length?node.element:1===node.children.length?find(node.children[0]):node.children.map(function(childNode){return childNode.element}).reduce(function(left,right){if(null===left)return right;var leftZ=parseInt(window.getComputedStyle(left[0],"").zIndex,10),rightZ=parseInt(window.getComputedStyle(right[0],"").zIndex,10);if(!isNaN(leftZ)&&!isNaN(rightZ))return leftZ>rightZ?left:right;throw new Error("Capturing backbutton-handler is failure.")},null)}return find(tree)},this._init()})}(),function(){"use strict";var module=angular.module("onsen");module.factory("$onsen",["$rootScope","$window","$cacheFactory","$document","$templateCache","$http","$q","$onsGlobal","ComponentCleaner","DeviceBackButtonHandler",function($rootScope,$window,$cacheFactory,$document,$templateCache,$http,$q,$onsGlobal,ComponentCleaner,DeviceBackButtonHandler){function createOnsenService(){return{DIRECTIVE_TEMPLATE_URL:"templates",aliasStack:aliasStack,cleaner:ComponentCleaner,DeviceBackButtonHandler:DeviceBackButtonHandler,_defaultDeviceBackButtonHandler:DeviceBackButtonHandler.create(angular.element(document.body),function(){navigator.app.exitApp()}),getDefaultDeviceBackButtonHandler:function(){return this._defaultDeviceBackButtonHandler},isEnabledAutoStatusBarFill:function(){return!!$onsGlobal._config.autoStatusBarFill},shouldFillStatusBar:function(element){if(this.isEnabledAutoStatusBarFill()&&this.isWebView()&&this.isIOS7Above()){if(!(element instanceof HTMLElement))throw new Error("element must be an instance of HTMLElement");for(var debug="ONS-TABBAR"===element.tagName?console.log.bind(console):angular.noop;;){if(element.hasAttribute("no-status-bar-fill"))return!1;if(element=element.parentNode,debug(element),!element||!element.hasAttribute)return!0}}return!1},clearComponent:function(params){params.scope&&ComponentCleaner.destroyScope(params.scope),params.attrs&&ComponentCleaner.destroyAttributes(params.attrs),params.element&&ComponentCleaner.destroyElement(params.element),params.elements&¶ms.elements.forEach(function(element){ComponentCleaner.destroyElement(element)})},upTo:function(el,tagName){tagName=tagName.toLowerCase();do{if(!el)return null;if(el=el.parentNode,el.tagName.toLowerCase()==tagName)return el}while(el.parentNode);return null},waitForVariables:function(dependencies,callback){unlockerDict.addCallback(dependencies,callback)},findElementeObject:function(element,name){return element.inheritedData(name)},getPageHTMLAsync:function(page){var cache=$templateCache.get(page);if(cache){var deferred=$q.defer(),html="string"==typeof cache?cache:cache[1];return deferred.resolve(this.normalizePageHTML(html)),deferred.promise}return $http({url:page,method:"GET"}).then(function(response){var html=response.data;return this.normalizePageHTML(html)}.bind(this))},normalizePageHTML:function(html){return html=(""+html).trim(),html.match(/^<ons-page/)||(html="<ons-page>"+html+"</ons-page>"),html},generateModifierTemplater:function(attrs){var modifiers=attrs&&"string"==typeof attrs.modifier?attrs.modifier.trim().split(/ +/):[];return function(template){return modifiers.map(function(modifier){return template.replace("*",modifier)}).join(" ")}},declareVarAttribute:function(attrs,object){if("string"==typeof attrs["var"]){var varName=attrs["var"];this._defineVar(varName,object),unlockerDict.unlockVarName(varName)}},isAndroid:function(){return!!window.navigator.userAgent.match(/android/i)},isIOS:function(){return!!window.navigator.userAgent.match(/(ipad|iphone|ipod touch)/i)},isWebView:function(){return window.ons.isWebView()},isIOS7Above:function(){var ua=window.navigator.userAgent,match=ua.match(/(iPad|iPhone|iPod touch);.*CPU.*OS (\d+)_(\d+)/i),result=match?parseFloat(match[2]+"."+match[3])>=7:!1;return function(){return result}}(),_defineVar:function(name,object){function set(container,names,object){for(var name,i=0;i<names.length-1;i++)name=names[i],(void 0===container[name]||null===container[name])&&(container[name]={}),container=container[name];container[names[names.length-1]]=object}var names=name.split(/\./);set($window,names,object),set($rootScope,names,object)}}}function createUnlockerDict(){return{_unlockersDict:{},_unlockedVarDict:{},_addVarLock:function(name,unlocker){if(!(unlocker instanceof Function))throw new Error("unlocker argument must be an instance of Function.");this._unlockersDict[name]?this._unlockersDict[name].push(unlocker):this._unlockersDict[name]=[unlocker]},unlockVarName:function(varName){var unlockers=this._unlockersDict[varName];unlockers&&unlockers.forEach(function(unlock){unlock()}),this._unlockedVarDict[varName]=!0},addCallback:function(dependencies,callback){if(!(callback instanceof Function))throw new Error("callback argument must be an instance of Function.");var doorLock=new DoorLock,self=this;dependencies.forEach(function(varName){if(!self._unlockedVarDict[varName]){var unlock=doorLock.lock();self._addVarLock(varName,unlock)}}),doorLock.isLocked()?doorLock.waitUnlock(callback):callback()}}}function createAliasStack(){return{_stackDict:{},register:function(name,object){this._getStack(name).push(object),$onsen._defineVar(name,object)},unregister:function(name,target){var stack=this._getStack(name),index=stack.indexOf(target);if(-1===index)throw new Error("no such object: "+target);stack.splice(index,1);var obj=stack.length>0?stack[stack.length-1]:null;$onsen._defineVar(name,obj)},_getStack:function(name){return this._stackDict[name]||(this._stackDict[name]=[]),this._stackDict[name]}}}var unlockerDict=createUnlockerDict(),aliasStack=createAliasStack(),$onsen=createOnsenService();return $onsen}])}(),window.animit=function(){"use strict";var Animit=function(element){if(!(this instanceof Animit))return new Animit(element);if(element instanceof HTMLElement)this.elements=[element];else{if("[object Array]"!==Object.prototype.toString.call(element))throw new Error("First argument must be an array or an instance of HTMLElement.");this.elements=element}this.transitionQueue=[],this.lastStyleAttributeDict=[];var self=this;this.elements.forEach(function(element,index){element.hasAttribute("data-animit-orig-style")?self.lastStyleAttributeDict[index]=element.getAttribute("data-animit-orig-style"):(self.lastStyleAttributeDict[index]=element.getAttribute("style"),element.setAttribute("data-animit-orig-style",self.lastStyleAttributeDict[index]||""))})};Animit.prototype={transitionQueue:void 0,element:void 0,play:function(callback){return"function"==typeof callback&&this.transitionQueue.push(function(done){callback(),done()}),this.startAnimation(),this},queue:function(transition,options){var queue=this.transitionQueue;if(transition&&options&&(options.css=transition,transition=new Animit.Transition(options)),transition instanceof Function||transition instanceof Animit.Transition||(transition=new Animit.Transition(transition.css?transition:{css:transition})),transition instanceof Function)queue.push(transition);else{if(!(transition instanceof Animit.Transition))throw new Error("Invalid arguments");queue.push(transition.build())}return this},wait:function(seconds){return this.transitionQueue.push(function(done){setTimeout(done,1e3*seconds)}),this},resetStyle:function(options){function reset(){self.elements.forEach(function(element,index){element.style[Animit.prefix+"Transition"]="none",element.style.transition="none",self.lastStyleAttributeDict[index]?element.setAttribute("style",self.lastStyleAttributeDict[index]):(element.setAttribute("style",""),element.removeAttribute("style"))})}options=options||{};var self=this;if(options.transition&&!options.duration)throw new Error('"options.duration" is required when "options.transition" is enabled.');if(options.transition||options.duration&&options.duration>0){var transitionValue=options.transition||"all "+options.duration+"s "+(options.timing||"linear"),transitionStyle="transition: "+transitionValue+"; -"+Animit.prefix+"-transition: "+transitionValue+";";this.transitionQueue.push(function(done){var elements=this.elements;elements.forEach(function(element,index){element.style[Animit.prefix+"Transition"]=transitionValue,element.style.transition=transitionValue;var styleValue=(self.lastStyleAttributeDict[index]?self.lastStyleAttributeDict[index]+"; ":"")+transitionStyle;element.setAttribute("style",styleValue)});var removeListeners=util.addOnTransitionEnd(elements[0],function(){clearTimeout(timeoutId),reset(),done()}),timeoutId=setTimeout(function(){removeListeners(),reset(),done()},1e3*options.duration*1.4)})}else this.transitionQueue.push(function(done){reset(),done()});return this},startAnimation:function(){return this._dequeueTransition(),this},_dequeueTransition:function(){var transition=this.transitionQueue.shift();if(this._currentTransition)throw new Error("Current transition exists.");this._currentTransition=transition;var self=this,called=!1,done=function(){if(called)throw new Error("Invalid state: This callback is called twice.");called=!0,self._currentTransition=void 0,self._dequeueTransition()};transition&&transition.call(this,done)}},Animit.cssPropertyDict=function(){var styles=window.getComputedStyle(document.documentElement,""),dict={},a="A".charCodeAt(0),z="z".charCodeAt(0);for(var key in styles)if(styles.hasOwnProperty(key)){{key.charCodeAt(0)}a<=key.charCodeAt(0)&&z>=key.charCodeAt(0)&&"cssText"!==key&&"parentText"!==key&&"length"!==key&&(dict[key]=!0)}return dict}(),Animit.hasCssProperty=function(name){return!!Animit.cssPropertyDict[name]},Animit.prefix=function(){var styles=window.getComputedStyle(document.documentElement,""),pre=(Array.prototype.slice.call(styles).join("").match(/-(moz|webkit|ms)-/)||""===styles.OLink&&["","o"])[1];return pre}(),Animit.runAll=function(){for(var i=0;i<arguments.length;i++)arguments[i].play()},Animit.Transition=function(options){this.options=options||{},this.options.duration=this.options.duration||0,this.options.timing=this.options.timing||"linear",this.options.css=this.options.css||{},this.options.property=this.options.property||"all"},Animit.Transition.prototype={build:function(){function createActualCssProps(css){var result={};return Object.keys(css).forEach(function(name){var value=css[name];name=util.normalizeStyleName(name);var prefixed=Animit.prefix+util.capitalize(name);Animit.cssPropertyDict[name]?result[name]=value:Animit.cssPropertyDict[prefixed]?result[prefixed]=value:(result[prefixed]=value,result[name]=value)}),result}if(0===Object.keys(this.options.css).length)throw new Error("options.css is required.");var css=createActualCssProps(this.options.css);if(this.options.duration>0){var transitionValue=util.buildTransitionValue(this.options),self=this;return function(callback){var elements=this.elements,timeout=1e3*self.options.duration*1.4,removeListeners=util.addOnTransitionEnd(elements[0],function(){clearTimeout(timeoutId),callback()}),timeoutId=setTimeout(function(){removeListeners(),callback()},timeout);elements.forEach(function(element){element.style[Animit.prefix+"Transition"]=transitionValue,element.style.transition=transitionValue,Object.keys(css).forEach(function(name){element.style[name]=css[name]})})}}return this.options.duration<=0?function(callback){var elements=this.elements;elements.forEach(function(element){element.style[Animit.prefix+"Transition"]="none",element.transition="none",Object.keys(css).forEach(function(name){element.style[name]=css[name]})}),elements.forEach(function(element){element.getBoundingClientRect()}),window.requestAnimationFrame?requestAnimationFrame(callback):setTimeout(callback,1e3/30)}:void 0}};var util={normalizeStyleName:function(name){return name=name.replace(/-[a-zA-Z]/g,function(all){return all.slice(1).toUpperCase()}),name.charAt(0).toLowerCase()+name.slice(1)},capitalize:function(str){return str.charAt(0).toUpperCase()+str.slice(1)},buildTransitionValue:function(params){params.property=params.property||"all",params.duration=params.duration||.4,params.timing=params.timing||"linear";var props=params.property.split(/ +/);return props.map(function(prop){return prop+" "+params.duration+"s "+params.timing}).join(", ")},addOnTransitionEnd:function(element,callback){if(!element)return function(){};var fn=function(event){element==event.target&&(event.stopPropagation(),removeListeners(),callback())},removeListeners=function(){util._transitionEndEvents.forEach(function(eventName){element.removeEventListener(eventName,fn)})};return util._transitionEndEvents.forEach(function(eventName){element.addEventListener(eventName,fn,!1)}),removeListeners},_transitionEndEvents:function(){return"webkit"===Animit.prefix||"o"===Animit.prefix||"moz"===Animit.prefix||"ms"===Animit.prefix?[Animit.prefix+"TransitionEnd","transitionend"]:["transitionend"]}()};return Animit}(),window.ons.orientation=function(){function create(){var obj={_isPortrait:!1,isPortrait:function(){return this._isPortrait()},isLandscape:function(){return!this.isPortrait()},_init:function(){return document.addEventListener("DOMContentLoaded",this._onDOMContentLoaded.bind(this),!1),"orientation"in window?window.addEventListener("orientationchange",this._onOrientationChange.bind(this),!1):window.addEventListener("resize",this._onResize.bind(this),!1),this._isPortrait=function(){return window.innerHeight>window.innerWidth},this},_onDOMContentLoaded:function(){this._installIsPortraintImplementation(),this.emit("change",{isPortrait:this.isPortrait()})},_installIsPortraintImplementation:function(){var isPortrait=window.innerWidth<window.innerHeight;this._isPortrait="orientation"in window?window.orientation%180===0?function(){return window.orientation%180===0?isPortrait:!isPortrait}:function(){return window.orientation%180===90?isPortrait:!isPortrait}:function(){return window.innerHeight>window.innerWidth}},_onOrientationChange:function(){setImmediate(function(){this.emit("change",{isPortrait:this.isPortrait()})}.bind(this))},_onResize:function(){"_lastScreenIsPortraitOrNot"in this?this.isPortrait()!==this._lastScreenIsPortraitOrNot&&this.emit("change",{isPortrait:this.isPortrait()}):this.emit("change",{isPortrait:this.isPortrait()}),this._lastScreenIsPortraitOrNot=this.isPortrait()}};return MicroEvent.mixin(obj),obj}return create()._init()}(),function(){"use strict";window.addEventListener("load",function(){FastClick.attach(document.body)},!1),(new Viewport).setup(),Modernizr.testStyles("#modernizr { -webkit-overflow-scrolling:touch }",function(elem){Modernizr.addTest("overflowtouch",window.getComputedStyle&&"touch"==window.getComputedStyle(elem).getPropertyValue("-webkit-overflow-scrolling"))}),window.jQuery&&angular.element===window.jQuery&&console.warn("Onsen UI require jqLite. Load jQuery after loading AngularJS to fix this error. jQuery may break Onsen UI behavior.")}(),function(){"use strict";angular.module("onsen").run(["$templateCache",function($templateCache){for(var templates=window.document.querySelectorAll('script[type="text/ons-template"]'),i=0;i<templates.length;i++){var template=angular.element(templates[i]),id=template.attr("id");"string"==typeof id&&$templateCache.put(id,template.text())}}])}();
Also see: Tab Triggers