diff --git a/examples/login/.project b/examples/login/.project
new file mode 100644
index 00000000..6b522dce
--- /dev/null
+++ b/examples/login/.project
@@ -0,0 +1,22 @@
+
+
+ login
+
+
+
+
+
+ com.aptana.ide.core.unifiedBuilder
+
+
+
+
+ com.pandora.projects.ui.MKeyBuilder
+
+
+
+
+
+ com.pandora.projects.ui.MKeyNature
+
+
diff --git a/examples/login/css/mui.css b/examples/login/css/mui.css
new file mode 100644
index 00000000..d27fb376
--- /dev/null
+++ b/examples/login/css/mui.css
@@ -0,0 +1,3567 @@
+/*!
+ * =====================================================
+ * Mui v1.2.0 (https://github.com/dcloudio/mui)
+ * =====================================================
+ */
+
+/*! normalize.css v3.0.1 | MIT License | git.io/normalize */
+html {
+ font-family: sans-serif;
+ -webkit-text-size-adjust: 100%;
+}
+
+body {
+ margin: 0;
+}
+
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+main,
+nav,
+section,
+summary {
+ display: block;
+}
+
+audio,
+canvas,
+progress,
+video {
+ display: inline-block;
+ vertical-align: baseline;
+}
+
+audio:not([controls]) {
+ display: none;
+ height: 0;
+}
+
+[hidden],
+template {
+ display: none;
+}
+
+a {
+ background: transparent;
+}
+
+a:active,
+a:hover {
+ outline: 0;
+}
+
+abbr[title] {
+ border-bottom: 1px dotted;
+}
+
+b,
+strong {
+ font-weight: bold;
+}
+
+dfn {
+ font-style: italic;
+}
+
+h1 {
+ margin: .67em 0;
+ font-size: 2em;
+}
+
+mark {
+ color: #000;
+ background: #ff0;
+}
+
+small {
+ font-size: 80%;
+}
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sup {
+ top: -.5em;
+}
+
+sub {
+ bottom: -.25em;
+}
+
+img {
+ border: 0;
+}
+
+svg:not(:root) {
+ overflow: hidden;
+}
+
+figure {
+ margin: 1em 40px;
+}
+
+hr {
+ height: 0;
+ box-sizing: content-box;
+}
+
+pre {
+ overflow: auto;
+}
+
+code,
+kbd,
+pre,
+samp {
+ font-family: monospace, monospace;
+ font-size: 1em;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea {
+ margin: 0;
+ font: inherit;
+ color: inherit;
+}
+
+button {
+ overflow: visible;
+}
+
+button,
+select {
+ text-transform: none;
+}
+
+button,
+html input[type="button"],
+input[type="reset"],
+input[type="submit"] {
+ -webkit-appearance: button;
+ cursor: pointer;
+}
+
+button[disabled],
+html input[disabled] {
+ cursor: default;
+}
+
+input {
+ line-height: normal;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+ box-sizing: border-box;
+ padding: 0;
+}
+
+input[type="number"]::-webkit-inner-spin-button,
+input[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+input[type="search"] {
+ -webkit-box-sizing: content-box;
+ box-sizing: content-box;
+ -webkit-appearance: textfield;
+}
+
+input[type="search"]::-webkit-search-cancel-button,
+input[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+fieldset {
+ padding: .35em .625em .75em;
+ margin: 0 2px;
+ border: 1px solid #c0c0c0;
+}
+
+legend {
+ padding: 0;
+ border: 0;
+}
+
+textarea {
+ overflow: auto;
+}
+
+optgroup {
+ font-weight: bold;
+}
+
+table {
+ border-spacing: 0;
+ border-collapse: collapse;
+}
+
+td,
+th {
+ padding: 0;
+}
+
+* {
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ -webkit-user-select: none;
+ outline: none;
+
+ -webkit-tap-highlight-color: transparent;
+ -webkit-tap-highlight-color: transparent;
+}
+
+body {
+ -webkit-overflow-scrolling: touch;
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ font-size: 17px;
+ line-height: 21px;
+ color: #000;
+ background-color: #fff;
+}
+
+a {
+ color: #007aff;
+ text-decoration: none;
+}
+a:active {
+ color: #0062cc;
+}
+
+.mui-content {
+ -webkit-overflow-scrolling: touch;
+ background-color: #efeff4;
+}
+
+.mui-bar-nav ~ .mui-content {
+ padding-top: 44px;
+}
+.mui-bar-nav ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ top: 44px;
+}
+
+.mui-bar-header-secondary ~ .mui-content {
+ padding-top: 88px;
+}
+.mui-bar-header-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ top: 88px;
+}
+
+.mui-bar-footer ~ .mui-content {
+ padding-bottom: 44px;
+}
+.mui-bar-footer ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ bottom: 44px;
+}
+
+.mui-bar-footer-secondary ~ .mui-content {
+ padding-bottom: 88px;
+}
+.mui-bar-footer-secondary ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ bottom: 88px;
+}
+
+.mui-bar-tab ~ .mui-content {
+ padding-bottom: 50px;
+}
+.mui-bar-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ bottom: 50px;
+}
+
+.mui-bar-footer-secondary-tab ~ .mui-content {
+ padding-bottom: 94px;
+}
+.mui-bar-footer-secondary-tab ~ .mui-content.mui-scroll-wrapper .mui-scrollbar-vertical {
+ bottom: 94px;
+}
+
+.mui-content-padded {
+ margin: 10px;
+}
+
+.mui-inline {
+ display: inline-block;
+ vertical-align: top;
+}
+
+.mui-block {
+ display: block !important;
+}
+
+.mui-visibility {
+ visibility: visible !important;
+}
+
+.mui-hidden {
+ display: none !important;
+}
+
+.mui-ellipsis {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
+
+.mui-ellipsis-2 {
+ display: -webkit-box;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ word-wrap: break-word;
+ white-space: normal !important;
+
+ -webkit-line-clamp: 2;
+ -webkit-box-orient: vertical;
+}
+
+.mui-table {
+ display: table;
+ width: 100%;
+ table-layout: fixed;
+}
+
+.mui-table-cell {
+ position: relative;
+ display: table-cell;
+}
+
+.mui-text-left {
+ text-align: left !important;
+}
+
+.mui-text-center {
+ text-align: center !important;
+}
+
+.mui-text-justify {
+ text-align: justify !important;
+}
+
+.mui-text-right {
+ text-align: right !important;
+}
+
+.mui-pull-left {
+ float: left;
+}
+
+.mui-pull-right {
+ float: right;
+}
+
+.mui-list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
+
+.mui-list-inline {
+ padding-left: 0;
+ margin-left: -5px;
+ list-style: none;
+}
+
+.mui-list-inline > li {
+ display: inline-block;
+ padding-right: 5px;
+ padding-left: 5px;
+}
+
+.mui-clearfix:before, .mui-clearfix:after {
+ display: table;
+ content: " ";
+}
+.mui-clearfix:after {
+ clear: both;
+}
+
+.mui-bg-primary {
+ background-color: #007aff;
+}
+
+.mui-bg-positive {
+ background-color: #4cd964;
+}
+
+.mui-bg-negative {
+ background-color: #dd524d;
+}
+
+.mui-error {
+ padding: 10px;
+ margin: 88px 35px;
+ background-color: #bbb;
+ border-radius: 6px;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 5px;
+ margin-bottom: 5px;
+ line-height: 1;
+}
+
+h1, .mui-h1 {
+ font-size: 36px;
+}
+
+h2, .mui-h2 {
+ font-size: 30px;
+}
+
+h3, .mui-h3 {
+ font-size: 24px;
+}
+
+h4, .mui-h4 {
+ font-size: 18px;
+}
+
+h5, .mui-h5 {
+ font-size: 14px;
+ font-weight: normal;
+ color: #8f8f94;
+}
+
+h6, .mui-h6 {
+ font-size: 12px;
+ font-weight: normal;
+ color: #8f8f94;
+}
+
+p {
+ margin-top: 0;
+ margin-bottom: 10px;
+ font-size: 14px;
+ color: #8f8f94;
+}
+
+.mui-col-xs-12 {
+ width: 100%;
+}
+
+.mui-col-xs-11 {
+ width: 91.66666667%;
+}
+
+.mui-col-xs-10 {
+ width: 83.33333333%;
+}
+
+.mui-col-xs-9 {
+ width: 75%;
+}
+
+.mui-col-xs-8 {
+ width: 66.66666667%;
+}
+
+.mui-col-xs-7 {
+ width: 58.33333333%;
+}
+
+.mui-col-xs-6 {
+ width: 50%;
+}
+
+.mui-col-xs-5 {
+ width: 41.66666667%;
+}
+
+.mui-col-xs-4 {
+ width: 33.33333333%;
+}
+
+.mui-col-xs-3 {
+ width: 25%;
+}
+
+.mui-col-xs-2 {
+ width: 16.66666667%;
+}
+
+.mui-col-xs-1 {
+ width: 8.33333333%;
+}
+
+@media (min-width: 400px) {
+ .mui-col-sm-12 {
+ width: 100%;
+ }
+
+ .mui-col-sm-11 {
+ width: 91.66666667%;
+ }
+
+ .mui-col-sm-10 {
+ width: 83.33333333%;
+ }
+
+ .mui-col-sm-9 {
+ width: 75%;
+ }
+
+ .mui-col-sm-8 {
+ width: 66.66666667%;
+ }
+
+ .mui-col-sm-7 {
+ width: 58.33333333%;
+ }
+
+ .mui-col-sm-6 {
+ width: 50%;
+ }
+
+ .mui-col-sm-5 {
+ width: 41.66666667%;
+ }
+
+ .mui-col-sm-4 {
+ width: 33.33333333%;
+ }
+
+ .mui-col-sm-3 {
+ width: 25%;
+ }
+
+ .mui-col-sm-2 {
+ width: 16.66666667%;
+ }
+
+ .mui-col-sm-1 {
+ width: 8.33333333%;
+ }
+}
+.mui-scroll-wrapper {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ width: 100%;
+ overflow: hidden;
+
+ -webkit-backface-visibility: hidden;
+}
+
+.mui-scroll {
+ position: absolute;
+ z-index: 1;
+ width: 100%;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+
+ -webkit-backface-visibility: hidden;
+}
+
+.mui-scrollbar {
+ position: absolute;
+ z-index: 9998;
+ overflow: hidden;
+ pointer-events: none;
+ opacity: 0;
+ -webkit-transition: 500ms;
+ transition: 500ms;
+ transform: translateZ(0px);
+}
+
+.mui-scrollbar-vertical {
+ top: 0;
+ right: 1px;
+ bottom: 2px;
+ width: 4px;
+}
+.mui-scrollbar-vertical .mui-scrollbar-indicator {
+ width: 100%;
+}
+
+.mui-scrollbar-horizontal {
+ right: 2px;
+ bottom: 0;
+ left: 2px;
+ height: 4px;
+}
+.mui-scrollbar-horizontal .mui-scrollbar-indicator {
+ height: 100%;
+}
+
+.mui-scrollbar-indicator {
+ position: absolute;
+ display: block;
+ box-sizing: border-box;
+ background: rgba(0, 0, 0, .39804);
+ border: 1px solid rgba(255, 255, 255, .80196);
+ border-radius: 2px;
+ -webkit-transition: .01s cubic-bezier(.1, .57, .1, 1);
+ transition: .01s cubic-bezier(.1, .57, .1, 1);
+ transform: translate(0px, 0px) translateZ(0px);
+}
+
+.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ overflow: hidden;
+}
+.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll, .mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll {
+ position: absolute;
+ width: 100%;
+}
+.mui-plus-pullrefresh .mui-scroll-wrapper, .mui-plus-pullrefresh .mui-slider-group {
+ position: static;
+ top: auto;
+ bottom: auto;
+ left: auto;
+ width: auto;
+ overflow: auto;
+}
+.mui-plus-pullrefresh .mui-scroll {
+ position: static;
+ width: auto;
+}
+
+.mui-off-canvas-wrap .mui-bar {
+ position: absolute !important;
+}
+
+.mui-off-canvas-wrap {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+ overflow: hidden;
+}
+.mui-off-canvas-wrap .mui-inner-wrap {
+ position: relative;
+ z-index: 1;
+ width: 100%;
+ height: 100%;
+}
+.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning {
+ -webkit-transition: -webkit-transform 200ms ease;
+ transition: transform 200ms ease;
+}
+.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left {
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+}
+.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right {
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+}
+.mui-off-canvas-wrap.mui-active {
+ height: 100%;
+ overflow: hidden;
+}
+.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 998;
+ display: block;
+ background: rgba(0, 0, 0, .4);
+ box-shadow: -4px 0 4px rgba(0, 0, 0, .5), 4px 0 4px rgba(0, 0, 0, .5);
+ transition: background 200ms ease;
+
+ -webkit-backface-visibility: hidden;
+ -webkit-tap-highlight-color: transparent;
+}
+.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right {
+ z-index: 10000 !important;
+ -webkit-transform: translate3d(100%, 0px, 0px);
+}
+.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left {
+ z-index: 10000 !important;
+ -webkit-transform: translate3d(-100%, 0px, 0px);
+}
+
+.mui-off-canvas-left, .mui-off-canvas-right {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: -1;
+ width: 70%;
+ min-height: 100%;
+ box-sizing: content-box;
+ -webkit-overflow-scrolling: touch;
+ visibility: hidden;
+ background: #333;
+
+ -webkit-backface-visibility: hidden;
+}
+.mui-off-canvas-left.mui-transitioning, .mui-off-canvas-right.mui-transitioning {
+ -webkit-transition: -webkit-transform 200ms ease;
+ transition: transform 200ms ease;
+}
+
+.mui-off-canvas-left {
+ left: 0;
+}
+
+.mui-off-canvas-right {
+ right: 0;
+}
+
+.mui-loading .mui-spinner {
+ display: block;
+ margin: 0 auto;
+}
+
+.mui-spinner {
+ display: inline-block;
+ width: 24px;
+ height: 24px;
+ -webkit-transform-origin: 50%;
+ transform-origin: 50%;
+ -webkit-animation: spinner-spin 1s step-end infinite;
+ animation: spinner-spin 1s step-end infinite;
+}
+
+.mui-spinner:after {
+ display: block;
+ width: 100%;
+ height: 100%;
+ content: "";
+ background-image: url("data:image/svg+xml;charset=utf-8,");
+ background-repeat: no-repeat;
+ background-position: 50%;
+ background-size: 100%;
+}
+
+.mui-spinner-white:after {
+ background-image: url("data:image/svg+xml;charset=utf-8,");
+}
+
+@-webkit-keyframes spinner-spin {
+ 0% {
+ -webkit-transform: rotate(0deg);
+ }
+ 8.33333333% {
+ -webkit-transform: rotate(30deg);
+ }
+ 16.66666667% {
+ -webkit-transform: rotate(60deg);
+ }
+ 25% {
+ -webkit-transform: rotate(90deg);
+ }
+ 33.33333333% {
+ -webkit-transform: rotate(120deg);
+ }
+ 41.66666667% {
+ -webkit-transform: rotate(150deg);
+ }
+ 50% {
+ -webkit-transform: rotate(180deg);
+ }
+ 58.33333333% {
+ -webkit-transform: rotate(210deg);
+ }
+ 66.66666667% {
+ -webkit-transform: rotate(240deg);
+ }
+ 75% {
+ -webkit-transform: rotate(270deg);
+ }
+ 83.33333333% {
+ -webkit-transform: rotate(300deg);
+ }
+ 91.66666667% {
+ -webkit-transform: rotate(330deg);
+ }
+ 100% {
+ -webkit-transform: rotate(360deg);
+ }
+}
+@keyframes spinner-spin {
+ 0% {
+ transform: rotate(0deg);
+ }
+ 8.33333333% {
+ transform: rotate(30deg);
+ }
+ 16.66666667% {
+ transform: rotate(60deg);
+ }
+ 25% {
+ transform: rotate(90deg);
+ }
+ 33.33333333% {
+ transform: rotate(120deg);
+ }
+ 41.66666667% {
+ transform: rotate(150deg);
+ }
+ 50% {
+ transform: rotate(180deg);
+ }
+ 58.33333333% {
+ transform: rotate(210deg);
+ }
+ 66.66666667% {
+ transform: rotate(240deg);
+ }
+ 75% {
+ transform: rotate(270deg);
+ }
+ 83.33333333% {
+ transform: rotate(300deg);
+ }
+ 91.66666667% {
+ transform: rotate(330deg);
+ }
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+input[type="button"],
+input[type="submit"],
+input[type="reset"],
+button,
+.mui-btn {
+ position: relative;
+ display: inline-block;
+ padding: 6px 12px;
+ margin-bottom: 0;
+ font-size: 14px;
+ font-weight: 400;
+ line-height: 1.42;
+ color: #333;
+ text-align: center;
+ white-space: nowrap;
+ vertical-align: top;
+ cursor: pointer;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ccc;
+ border-radius: 3px;
+ border-top-left-radius: 3px;
+ border-top-right-radius: 3px;
+ border-bottom-right-radius: 3px;
+ border-bottom-left-radius: 3px;
+ -webkit-transition: all;
+ transition: all;
+ -webkit-transition-timing-function: linear;
+ transition-timing-function: linear;
+ -webkit-transition-duration: .2s;
+ transition-duration: .2s;
+}
+input[type="button"]:active, input[type="button"].mui-active,
+input[type="submit"]:active,
+input[type="submit"].mui-active,
+input[type="reset"]:active,
+input[type="reset"].mui-active,
+button:active,
+button.mui-active,
+.mui-btn:active,
+.mui-btn.mui-active {
+ color: #fff;
+ background-color: #929292;
+}
+input[type="button"]:disabled, input[type="button"].mui-disabled,
+input[type="submit"]:disabled,
+input[type="submit"].mui-disabled,
+input[type="reset"]:disabled,
+input[type="reset"].mui-disabled,
+button:disabled,
+button.mui-disabled,
+.mui-btn:disabled,
+.mui-btn.mui-disabled {
+ opacity: .6;
+}
+
+input[type="submit"],
+.mui-btn-primary, .mui-btn-blue {
+ color: #fff;
+ background-color: #007aff;
+ border: 1px solid #007aff;
+}
+input[type="submit"]:active, input[type="submit"].mui-active,
+.mui-btn-primary:active,
+.mui-btn-primary.mui-active, .mui-btn-blue:active, .mui-btn-blue.mui-active {
+ color: #fff;
+ background-color: #0062cc;
+ border: 1px solid #0062cc;
+}
+
+.mui-btn-positive, .mui-btn-success, .mui-btn-green {
+ color: #fff;
+ background-color: #4cd964;
+ border: 1px solid #4cd964;
+}
+.mui-btn-positive:active, .mui-btn-positive.mui-active, .mui-btn-success:active, .mui-btn-success.mui-active, .mui-btn-green:active, .mui-btn-green.mui-active {
+ color: #fff;
+ background-color: #2ac845;
+ border: 1px solid #2ac845;
+}
+
+.mui-btn-warning, .mui-btn-yellow {
+ color: #fff;
+ background-color: #f0ad4e;
+ border: 1px solid #f0ad4e;
+}
+.mui-btn-warning:active, .mui-btn-warning.mui-active, .mui-btn-yellow:active, .mui-btn-yellow.mui-active {
+ color: #fff;
+ background-color: #ec971f;
+ border: 1px solid #ec971f;
+}
+
+.mui-btn-negative, .mui-btn-danger, .mui-btn-red {
+ color: #fff;
+ background-color: #dd524d;
+ border: 1px solid #dd524d;
+}
+.mui-btn-negative:active, .mui-btn-negative.mui-active, .mui-btn-danger:active, .mui-btn-danger.mui-active, .mui-btn-red:active, .mui-btn-red.mui-active {
+ color: #fff;
+ background-color: #cf2d28;
+ border: 1px solid #cf2d28;
+}
+
+.mui-btn-royal, .mui-btn-purple {
+ color: #fff;
+ background-color: #8a6de9;
+ border: 1px solid #8a6de9;
+}
+.mui-btn-royal:active, .mui-btn-royal.mui-active, .mui-btn-purple:active, .mui-btn-purple.mui-active {
+ color: #fff;
+ background-color: #6641e2;
+ border: 1px solid #6641e2;
+}
+
+.mui-btn-grey {
+ color: #fff;
+ background-color: #c7c7cc;
+ border: 1px solid #c7c7cc;
+}
+.mui-btn-grey:active, .mui-btn-grey.mui-active {
+ color: #fff;
+ background-color: #acacb4;
+ border: 1px solid #acacb4;
+}
+
+.mui-btn-outlined {
+ background-color: transparent;
+}
+.mui-btn-outlined.mui-btn-primary, .mui-btn-outlined.mui-btn-blue {
+ color: #007aff;
+}
+.mui-btn-outlined.mui-btn-positive, .mui-btn-outlined.mui-btn-success, .mui-btn-outlined.mui-btn-green {
+ color: #4cd964;
+}
+.mui-btn-outlined.mui-btn-warning, .mui-btn-outlined.mui-btn-yellow {
+ color: #f0ad4e;
+}
+.mui-btn-outlined.mui-btn-negative, .mui-btn-outlined.mui-btn-danger, .mui-btn-outlined.mui-btn-red {
+ color: #dd524d;
+}
+.mui-btn-outlined.mui-btn-royal, .mui-btn-outlined.mui-btn-purple {
+ color: #8a6de9;
+}
+.mui-btn-outlined.mui-btn-primary:active, .mui-btn-outlined.mui-btn-blue:active, .mui-btn-outlined.mui-btn-positive:active, .mui-btn-outlined.mui-btn-success:active, .mui-btn-outlined.mui-btn-green:active, .mui-btn-outlined.mui-btn-warning:active, .mui-btn-outlined.mui-btn-yellow:active, .mui-btn-outlined.mui-btn-negative:active, .mui-btn-outlined.mui-btn-danger:active, .mui-btn-outlined.mui-btn-red:active, .mui-btn-outlined.mui-btn-royal:active, .mui-btn-outlined.mui-btn-purple:active {
+ color: #fff;
+}
+
+.mui-btn-link {
+ padding-top: 6px;
+ padding-bottom: 6px;
+ color: #007aff;
+ background-color: transparent;
+ border: 0;
+}
+.mui-btn-link:active, .mui-btn-link.mui-active {
+ color: #0062cc;
+ background-color: transparent;
+}
+
+.mui-btn-block {
+ display: block;
+ width: 100%;
+ padding: 15px 0;
+ margin-bottom: 10px;
+ font-size: 18px;
+}
+
+.mui-btn .mui-badge {
+ margin: -2px -4px -2px 4px;
+ font-size: 14px;
+ background-color: rgba(0, 0, 0, .15);
+}
+
+.mui-btn .mui-badge-inverted,
+.mui-btn:active .mui-badge-inverted {
+ background-color: transparent;
+}
+
+.mui-btn-primary:active .mui-badge-inverted,
+.mui-btn-positive:active .mui-badge-inverted,
+.mui-btn-negative:active .mui-badge-inverted {
+ color: #fff;
+}
+
+.mui-btn-block .mui-badge {
+ position: absolute;
+ right: 0;
+ margin-right: 10px;
+}
+
+.mui-btn .mui-icon {
+ font-size: inherit;
+}
+
+.mui-btn.mui-icon {
+ font-size: 14px;
+ line-height: 1.42;
+}
+
+.mui-btn.mui-fab {
+ width: 56px;
+ height: 56px;
+ padding: 16px;
+ border-radius: 50%;
+ outline: none;
+}
+.mui-btn.mui-fab.mui-btn-mini {
+ width: 40px;
+ height: 40px;
+ padding: 8px;
+}
+.mui-btn.mui-fab .mui-icon {
+ width: 24px;
+ height: 24px;
+ font-size: 24px;
+ line-height: 24px;
+}
+
+.mui-bar {
+ position: fixed;
+ right: 0;
+ left: 0;
+ z-index: 10;
+ height: 44px;
+ padding-right: 10px;
+ padding-left: 10px;
+ background-color: rgba(247, 247, 247, .98);
+ border-bottom: 0;
+ -webkit-box-shadow: 0 0 1px rgba(0, 0, 0, .85);
+ box-shadow: 0 0 1px rgba(0, 0, 0, .85);
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+
+.mui-bar .mui-title {
+ right: 40px;
+ left: 40px;
+ width: auto;
+ margin: 0;
+ overflow: hidden;
+ text-overflow: ellipsis;
+}
+.mui-bar .mui-backdrop {
+ background: none;
+}
+
+.mui-bar-header-secondary {
+ top: 44px;
+}
+
+.mui-bar-footer {
+ bottom: 0;
+}
+
+.mui-bar-footer-secondary {
+ bottom: 44px;
+}
+
+.mui-bar-footer-secondary-tab {
+ bottom: 50px;
+}
+
+.mui-bar-footer,
+.mui-bar-footer-secondary,
+.mui-bar-footer-secondary-tab {
+ border-top: 0;
+}
+
+.mui-bar-nav {
+ top: 0;
+ -webkit-box-shadow: 0 1px 6px #ccc;
+ box-shadow: 0 1px 6px #ccc;
+}
+.mui-bar-nav ~ .mui-content .mui-anchor {
+ display: block;
+ height: 45px;
+ margin-top: -45px;
+ visibility: hidden;
+}
+.mui-bar-nav.mui-bar .mui-icon {
+ padding-right: 10px;
+ padding-left: 10px;
+ margin-right: -10px;
+ margin-left: -10px;
+}
+
+.mui-title {
+ position: absolute;
+ display: block;
+ width: 100%;
+ padding: 0;
+ margin: 0 -10px;
+ font-size: 17px;
+ font-weight: 500;
+ line-height: 44px;
+ color: #000;
+ text-align: center;
+ white-space: nowrap;
+}
+
+.mui-title a {
+ color: inherit;
+}
+
+.mui-bar-tab {
+ bottom: 0;
+ display: table;
+ width: 100%;
+ height: 50px;
+ padding: 0;
+ table-layout: fixed;
+ border-top: 0;
+ border-bottom: 0;
+
+ -webkit-touch-callout: none;
+}
+.mui-bar-tab .mui-tab-item {
+ display: table-cell;
+ width: 1%;
+ height: 50px;
+ overflow: hidden;
+ color: #929292;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+.mui-bar-tab .mui-tab-item.mui-active {
+ color: #007aff;
+}
+.mui-bar-tab .mui-tab-item .mui-icon {
+ top: 3px;
+ width: 24px;
+ height: 24px;
+ padding-top: 0;
+ padding-bottom: 0;
+}
+.mui-bar-tab .mui-tab-item .mui-icon ~ .mui-tab-label {
+ display: block;
+ overflow: hidden;
+ font-size: 11px;
+ text-overflow: ellipsis;
+}
+.mui-bar-tab .mui-tab-item .mui-icon:active {
+ background: none;
+}
+
+.mui-focusin > .mui-bar {
+ position: absolute;
+}
+
+.mui-bar .mui-btn {
+ position: relative;
+ top: 7px;
+ z-index: 20;
+ padding: 6px 12px 7px;
+ margin-top: 0;
+ font-weight: 400;
+}
+.mui-bar .mui-btn.mui-pull-right {
+ margin-left: 10px;
+}
+.mui-bar .mui-btn.mui-pull-left {
+ margin-right: 10px;
+}
+
+.mui-bar .mui-btn-link {
+ top: 0;
+ padding: 0;
+ font-size: 16px;
+ line-height: 44px;
+ color: #007aff;
+ border: 0;
+}
+.mui-bar .mui-btn-link:active, .mui-bar .mui-btn-link.mui-active {
+ color: #0062cc;
+}
+
+.mui-bar .mui-btn-block {
+ top: 6px;
+ padding: 5px 0;
+ margin-bottom: 0;
+ font-size: 16px;
+}
+
+.mui-bar .mui-btn-nav.mui-pull-left {
+ margin-left: -5px;
+}
+.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav {
+ margin-right: -3px;
+}
+.mui-bar .mui-btn-nav.mui-pull-right {
+ margin-right: -5px;
+}
+.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav {
+ margin-left: -3px;
+}
+.mui-bar .mui-btn-nav:active {
+ opacity: .3;
+}
+
+.mui-bar .mui-icon {
+ position: relative;
+ z-index: 20;
+ padding-top: 10px;
+ padding-bottom: 10px;
+ font-size: 24px;
+}
+.mui-bar .mui-icon:active {
+ opacity: .3;
+}
+.mui-bar .mui-btn .mui-icon {
+ top: 1px;
+ padding: 0;
+ margin: 0;
+}
+.mui-bar .mui-title .mui-icon {
+ padding: 0;
+ margin: 0;
+}
+.mui-bar .mui-title .mui-icon.mui-icon-caret {
+ top: 4px;
+ margin-left: -5px;
+}
+
+.mui-bar input[type="search"] {
+ height: 29px;
+ margin: 6px 0;
+}
+
+.mui-bar .mui-input-row .mui-btn {
+ padding: 12px 10px;
+}
+
+.mui-bar .mui-search:before {
+ margin-top: -10px;
+}
+
+.mui-bar .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar .mui-input-row .mui-input-speech ~ .mui-icon-speech {
+ top: 0;
+ right: 12px;
+}
+
+.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech ~ .mui-icon-speech {
+ top: 0;
+ right: 0;
+}
+
+.mui-bar .mui-segmented-control {
+ top: 7px;
+ width: auto;
+ margin: 0 auto;
+}
+
+.mui-badge {
+ display: inline-block;
+ padding: 3px 6px;
+ font-size: 12px;
+ line-height: 1;
+ color: #333;
+ background-color: rgba(0, 0, 0, .15);
+ border-radius: 100px;
+}
+.mui-badge.mui-badge-inverted {
+ padding: 0 5px 0 0;
+ color: #929292;
+ background-color: transparent;
+}
+
+.mui-badge-primary, .mui-badge-blue {
+ color: #fff;
+ background-color: #007aff;
+}
+.mui-badge-primary.mui-badge-inverted, .mui-badge-blue.mui-badge-inverted {
+ color: #007aff;
+ background-color: transparent;
+}
+
+.mui-badge-success, .mui-badge-green {
+ color: #fff;
+ background-color: #4cd964;
+}
+.mui-badge-success.mui-badge-inverted, .mui-badge-green.mui-badge-inverted {
+ color: #4cd964;
+ background-color: transparent;
+}
+
+.mui-badge-warning, .mui-badge-yellow {
+ color: #fff;
+ background-color: #f0ad4e;
+}
+.mui-badge-warning.mui-badge-inverted, .mui-badge-yellow.mui-badge-inverted {
+ color: #f0ad4e;
+ background-color: transparent;
+}
+
+.mui-badge-danger, .mui-badge-red {
+ color: #fff;
+ background-color: #dd524d;
+}
+.mui-badge-danger.mui-badge-inverted, .mui-badge-red.mui-badge-inverted {
+ color: #dd524d;
+ background-color: transparent;
+}
+
+.mui-badge-royal, .mui-badge-purple {
+ color: #fff;
+ background-color: #8a6de9;
+}
+.mui-badge-royal.mui-badge-inverted, .mui-badge-purple.mui-badge-inverted {
+ color: #8a6de9;
+ background-color: transparent;
+}
+
+.mui-icon .mui-badge {
+ position: absolute;
+ top: -2px;
+ left: 100%;
+ padding: 1px 5px;
+ margin-left: -10px;
+ font-size: 10px;
+ line-height: 1.4;
+ color: white;
+ background: red;
+}
+
+.mui-card {
+ margin: 0 15px;
+ overflow: hidden;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ddd;
+ border-radius: 6px;
+}
+
+.mui-content > .mui-card:first-child {
+ margin-top: 15px;
+}
+
+.mui-card .mui-input-group:before, .mui-card .mui-input-group:after {
+ height: 0;
+}
+.mui-card .mui-input-group .mui-input-row:last-child:before, .mui-card .mui-input-group .mui-input-row:last-child:after {
+ height: 0;
+}
+
+.mui-card .mui-table-view {
+ margin-bottom: 0;
+ border-top: 0;
+ border-bottom: 0;
+ border-radius: 6px;
+}
+.mui-card .mui-table-view .mui-table-view-divider:first-child {
+ top: 0;
+ border-top-left-radius: 6px;
+ border-top-right-radius: 6px;
+}
+.mui-card .mui-table-view .mui-table-view-divider:last-child {
+ border-bottom-right-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+.mui-card .mui-table-view:before, .mui-card .mui-table-view:after {
+ height: 0;
+}
+
+.mui-card > .mui-table-view > .mui-table-view-cell:last-child:before, .mui-card > .mui-table-view > .mui-table-view-cell:last-child:after {
+ height: 0;
+}
+
+.mui-table-view {
+ position: relative;
+ padding-left: 0;
+ margin-top: 0;
+ margin-bottom: 0;
+ list-style: none;
+ background-color: #fff;
+}
+.mui-table-view:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-table-view-chevron .mui-table-view-cell {
+ padding-right: 65px;
+}
+.mui-table-view-chevron .mui-table-view-cell > a:not(.mui-btn) {
+ margin-right: -65px;
+}
+
+.mui-table-view-inverted {
+ color: #fff;
+ background: #333;
+}
+.mui-table-view-inverted:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #222;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view-inverted:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #222;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view-inverted .mui-table-view-cell:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 15px;
+ height: 1px;
+ content: '';
+ background-color: #222;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view-inverted .mui-table-view-cell.mui-active {
+ background-color: #242424;
+}
+.mui-table-view-inverted .mui-table-view-cell > a:not(.mui-btn).mui-active {
+ background-color: #242424;
+}
+
+.mui-table-view-cell {
+ position: relative;
+ padding: 11px 15px;
+ overflow: hidden;
+ background-color: inherit;
+
+ -webkit-transform-style: preserve-3d;
+ transform-style: preserve-3d;
+ -webkit-touch-callout: none;
+}
+.mui-table-view-cell:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 15px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view-cell.mui-radio input[type=radio], .mui-table-view-cell.mui-checkbox input[type=checkbox] {
+ top: 8px;
+}
+.mui-table-view-cell.mui-radio.mui-left, .mui-table-view-cell.mui-checkbox.mui-left {
+ padding-left: 58px;
+}
+.mui-table-view-cell.mui-active {
+ background-color: #eee;
+}
+.mui-table-view-cell:last-child:before, .mui-table-view-cell:last-child:after {
+ height: 0;
+}
+.mui-table-view-cell > a:not(.mui-btn) {
+ position: relative;
+ display: block;
+ padding: inherit;
+ margin: -11px -15px;
+ overflow: hidden;
+ color: inherit;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ /*&:active {
+ background-color: #eee;
+ }*/
+}
+.mui-table-view-cell > a:not(.mui-btn).mui-active {
+ background-color: #eee;
+}
+.mui-table-view-cell p {
+ margin-bottom: 0;
+}
+
+.mui-table-view-cell.mui-transitioning > .mui-slider-handle, .mui-table-view-cell.mui-transitioning > .mui-slider-left .mui-btn, .mui-table-view-cell.mui-transitioning > .mui-slider-right .mui-btn {
+ -webkit-transition: -webkit-transform 300ms ease;
+ transition: transform 300ms ease;
+}
+.mui-table-view-cell > .mui-slider-handle {
+ background-color: #fff;
+}
+.mui-table-view-cell > .mui-slider-handle, .mui-table-view-cell > .mui-slider-left .mui-btn, .mui-table-view-cell > .mui-slider-right .mui-btn {
+ -webkit-transition: -webkit-transform 0ms ease;
+ transition: transform 0ms ease;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.mui-table-view-cell > .mui-slider-left, .mui-table-view-cell > .mui-slider-right {
+ position: absolute;
+ top: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ height: 100%;
+
+ -webkit-backface-visibility: hidden;
+ backface-visibility: hidden;
+}
+.mui-table-view-cell > .mui-slider-left > .mui-btn, .mui-table-view-cell > .mui-slider-right > .mui-btn {
+ position: relative;
+ left: 0;
+ display: -webkit-box;
+ display: -webkit-flex;
+ display: flex;
+ padding: 0 30px;
+ color: #fff;
+ border: 0;
+ border-radius: 0;
+
+ -webkit-box-align: center;
+ -webkit-align-items: center;
+ align-items: center;
+}
+.mui-table-view-cell > .mui-slider-left > .mui-btn:after, .mui-table-view-cell > .mui-slider-right > .mui-btn:after {
+ position: absolute;
+ top: 0;
+ z-index: -1;
+ width: 600%;
+ height: 100%;
+ content: '';
+ background: inherit;
+}
+.mui-table-view-cell > .mui-slider-left > .mui-btn.mui-icon, .mui-table-view-cell > .mui-slider-right > .mui-btn.mui-icon {
+ font-size: 30px;
+}
+.mui-table-view-cell > .mui-slider-right {
+ right: 0;
+ -webkit-transition: -webkit-transform 0ms ease;
+ transition: transform 0ms ease;
+ -webkit-transform: translateX(100%);
+ transform: translateX(100%);
+}
+.mui-table-view-cell > .mui-slider-left {
+ left: 0;
+ -webkit-transition: -webkit-transform 0ms ease;
+ transition: transform 0ms ease;
+ -webkit-transform: translateX(-100%);
+ transform: translateX(-100%);
+}
+.mui-table-view-cell > .mui-slider-left > .mui-btn:after {
+ right: 100%;
+ margin-right: -1px;
+}
+
+.mui-table-view-divider {
+ position: relative;
+ padding-top: 6px;
+ padding-bottom: 6px;
+ padding-left: 15px;
+ margin-top: -1px;
+ margin-left: 0;
+ font-weight: 500;
+ color: #999;
+ background-color: #fafafa;
+}
+.mui-table-view-divider:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view-divider:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-table-view .mui-media,
+.mui-table-view .mui-media-body {
+ overflow: hidden;
+}
+
+.mui-table-view .mui-media-object {
+ max-width: 42px;
+ height: 42px;
+ line-height: 42px;
+}
+.mui-table-view .mui-media-object.mui-pull-left {
+ margin-right: 10px;
+}
+.mui-table-view .mui-media-object.mui-pull-right {
+ margin-left: 10px;
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object {
+ max-width: 29px;
+ height: 29px;
+ margin: -4px 0;
+ line-height: 29px;
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img {
+ max-width: 29px;
+ height: 29px;
+ line-height: 29px;
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left {
+ margin-right: 10px;
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon {
+ font-size: 29px;
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 55px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-table-view .mui-table-view-cell.mui-media-icon:after {
+ height: 0 !important;
+}
+
+.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view {
+ display: block;
+}
+.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before, .mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after {
+ height: 0 !important;
+}
+.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 70px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-table-view-cell > .mui-btn,
+.mui-table-view-cell > .mui-badge,
+.mui-table-view-cell > .mui-switch,
+.mui-table-view-cell > a > .mui-btn,
+.mui-table-view-cell > a > .mui-badge,
+.mui-table-view-cell > a > .mui-switch {
+ position: absolute;
+ top: 50%;
+ right: 15px;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+.mui-table-view-cell .mui-navigate-left > .mui-btn,
+.mui-table-view-cell .mui-navigate-left > .mui-badge,
+.mui-table-view-cell .mui-navigate-left > .mui-switch,
+.mui-table-view-cell .mui-navigate-right > .mui-btn,
+.mui-table-view-cell .mui-navigate-right > .mui-badge,
+.mui-table-view-cell .mui-navigate-right > .mui-switch,
+.mui-table-view-cell .mui-push-left > .mui-btn,
+.mui-table-view-cell .mui-push-left > .mui-badge,
+.mui-table-view-cell .mui-push-left > .mui-switch,
+.mui-table-view-cell .mui-push-right > .mui-btn,
+.mui-table-view-cell .mui-push-right > .mui-badge,
+.mui-table-view-cell .mui-push-right > .mui-switch,
+.mui-table-view-cell > a .mui-navigate-left > .mui-btn,
+.mui-table-view-cell > a .mui-navigate-left > .mui-badge,
+.mui-table-view-cell > a .mui-navigate-left > .mui-switch,
+.mui-table-view-cell > a .mui-navigate-right > .mui-btn,
+.mui-table-view-cell > a .mui-navigate-right > .mui-badge,
+.mui-table-view-cell > a .mui-navigate-right > .mui-switch,
+.mui-table-view-cell > a .mui-push-left > .mui-btn,
+.mui-table-view-cell > a .mui-push-left > .mui-badge,
+.mui-table-view-cell > a .mui-push-left > .mui-switch,
+.mui-table-view-cell > a .mui-push-right > .mui-btn,
+.mui-table-view-cell > a .mui-push-right > .mui-badge,
+.mui-table-view-cell > a .mui-push-right > .mui-switch {
+ right: 35px;
+}
+
+.mui-content > .mui-table-view:first-child {
+ margin-top: 15px;
+}
+
+.mui-table-view-cell.mui-collapse > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse > .mui-push-right:after {
+ content: '\e581';
+}
+.mui-table-view-cell.mui-collapse.mui-active .mui-table-view, .mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content {
+ display: block;
+}
+.mui-table-view-cell.mui-collapse.mui-active > .mui-navigate-right:after, .mui-table-view-cell.mui-collapse.mui-active > .mui-push-right:after {
+ content: '\e580';
+}
+.mui-table-view-cell.mui-collapse .mui-collapse-content {
+ position: relative;
+ display: none;
+ padding: 8px 15px;
+ margin: 11px -15px -11px;
+ overflow: hidden;
+ background: white;
+ border: 1px solid #ddd;
+ -webkit-transition: height .35s ease;
+ -o-transition: height .35s ease;
+ transition: height .35s ease;
+}
+.mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-input-group, .mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider {
+ width: auto;
+ height: auto;
+ margin: -8px -15px;
+}
+.mui-table-view-cell.mui-collapse .mui-collapse-content > .mui-slider {
+ margin: -8px -16px;
+}
+.mui-table-view-cell.mui-collapse .mui-table-view {
+ display: none;
+ margin-top: 11px;
+ margin-right: -15px;
+ margin-bottom: -11px;
+ margin-left: -15px;
+ border: 0;
+}
+.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron {
+ margin-right: -65px;
+}
+.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell {
+ padding-left: 31px;
+ background-position: 31px 100%;
+}
+.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 30px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-table-view.mui-grid-view {
+ display: block;
+ width: 100%;
+ padding: 0 10px 10px 0;
+ font-size: 0;
+ white-space: normal;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell {
+ display: inline-block;
+ padding: 10px 0 0 14px;
+ margin-right: -4px;
+ font-size: 17px;
+ text-align: center;
+ vertical-align: middle;
+ background: none;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object {
+ width: 100%;
+ max-width: 100%;
+ height: auto;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn) {
+ margin: -10px 0 0 -14px;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn):active, .mui-table-view.mui-grid-view .mui-table-view-cell > a:not(.mui-btn).mui-active {
+ background: none;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body {
+ display: block;
+ width: 100%;
+ height: 15px;
+ margin-top: 8px;
+ font-size: 15px;
+ line-height: 15px;
+ color: #333;
+ text-overflow: ellipsis;
+}
+.mui-table-view.mui-grid-view .mui-table-view-cell:before, .mui-table-view.mui-grid-view .mui-table-view-cell:after {
+ height: 0;
+}
+
+.mui-grid-view.mui-grid-9 {
+ padding: 1px 0 1px 0;
+ padding-right: 0;
+ background-color: #f2f2f2;
+}
+.mui-grid-view.mui-grid-9 .mui-table-view-cell {
+ padding: 11px 15px;
+ margin: -1px 0 0 -1px;
+ vertical-align: top;
+ border-top: 1px solid #eee;
+ border-left: 1px solid #eee;
+}
+.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active {
+ background-color: #eee;
+}
+.mui-grid-view.mui-grid-9 .mui-table-view-cell > a:not(.mui-btn) {
+ padding: 10px 0;
+ margin: 0;
+}
+.mui-grid-view.mui-grid-9:before {
+ height: 0;
+}
+.mui-grid-view.mui-grid-9 .mui-media {
+ color: #797979;
+}
+.mui-grid-view.mui-grid-9 .mui-media .mui-icon {
+ position: relative;
+ font-size: 2.4em;
+}
+
+.mui-slider-cell {
+ position: relative;
+}
+.mui-slider-cell > .mui-slider-handle {
+ z-index: 1;
+}
+.mui-slider-cell > .mui-slider-left, .mui-slider-cell > .mui-slider-right {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ z-index: 0;
+}
+.mui-slider-cell > .mui-slider-left {
+ left: 0;
+}
+.mui-slider-cell > .mui-slider-right {
+ right: 0;
+}
+
+input,
+textarea,
+select {
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ font-size: 17px;
+
+ -webkit-tap-highlight-color: transparent;
+ -webkit-tap-highlight-color: transparent;
+}
+input:focus,
+textarea:focus,
+select:focus {
+ -webkit-tap-highlight-color: transparent;
+ -webkit-tap-highlight-color: transparent;
+ -webkit-user-modify: read-write-plaintext-only;
+}
+
+select,
+textarea,
+input[type="text"],
+input[type="search"],
+input[type="password"],
+input[type="datetime"],
+input[type="datetime-local"],
+input[type="date"],
+input[type="month"],
+input[type="time"],
+input[type="week"],
+input[type="number"],
+input[type="email"],
+input[type="url"],
+input[type="tel"],
+input[type="color"] {
+ width: 100%;
+ height: 40px;
+ -webkit-appearance: none;
+ padding: 10px 15px;
+ margin-bottom: 15px;
+ line-height: 21px;
+ -webkit-user-select: text;
+ background-color: #fff;
+ border: 1px solid rgba(0, 0, 0, .2);
+ border-radius: 3px;
+ outline: none;
+}
+
+input[type=number]::-webkit-outer-spin-button {
+ margin: 0;
+}
+
+input[type="search"] {
+ height: 34px;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ font-size: 16px;
+ text-align: center;
+ background-color: rgba(0, 0, 0, .1);
+ border: 0;
+ border-radius: 6px;
+}
+
+input[type="search"]:focus {
+ text-align: left;
+}
+
+textarea {
+ height: auto;
+ resize: none;
+}
+
+select {
+ height: auto;
+ margin-top: 1px;
+ font-size: 14px;
+ background-color: #fff;
+ border: 0 !important;
+}
+select:focus {
+ -webkit-user-modify: read-only;
+}
+
+.mui-input-group {
+ position: relative;
+ padding: 0;
+ background-color: #fff;
+ border: 0;
+}
+.mui-input-group:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-input-group:before {
+ position: absolute;
+ top: 0;
+ right: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-input-group input[type=text],
+.mui-input-group textarea {
+ margin-bottom: 0;
+ background-color: transparent;
+ border: 0;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+.mui-input-group input[type=text]:after,
+.mui-input-group textarea:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 15px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-input-group input[type="search"] {
+ background: none;
+}
+
+.mui-input-group input:last-child {
+ background-image: none;
+}
+
+.mui-input-row {
+ overflow: hidden;
+ clear: left;
+}
+.mui-input-row select {
+ height: 37px;
+ padding: 0;
+ font-size: 17px;
+}
+
+.mui-input-row:last-child,
+.mui-input-row label + input, .mui-input-row .mui-btn + input {
+ background-image: none;
+}
+
+.mui-input-group .mui-input-row {
+ height: 40px;
+}
+.mui-input-group .mui-input-row:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 15px;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+
+.mui-input-row label {
+ float: left;
+ width: 35%;
+ padding: 10px 15px;
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ line-height: 1.1;
+}
+
+.mui-input-row label ~ input, .mui-input-row label ~ select, .mui-input-row label ~ textarea {
+ float: right;
+ width: 65%;
+ padding-left: 0;
+ margin-bottom: 0;
+ border: 0;
+}
+
+.mui-input-row .mui-btn {
+ float: right;
+ width: 15%;
+ padding: 10px 15px;
+ font-family: "Helvetica Neue", Helvetica, sans-serif;
+ line-height: 1.1;
+}
+
+.mui-input-row .mui-btn ~ input, .mui-input-row .mui-btn ~ select, .mui-input-row .mui-btn ~ textarea {
+ float: left;
+ width: 85%;
+ padding-left: 0;
+ margin-bottom: 0;
+ border: 0;
+}
+
+.mui-button-row {
+ position: relative;
+ padding-top: 5px;
+ text-align: center;
+}
+
+.mui-input-group .mui-button-row {
+ height: 45px;
+}
+
+.mui-input-row {
+ position: relative;
+}
+.mui-input-row.mui-input-range {
+ padding-right: 20px;
+ overflow: visible;
+}
+.mui-input-row .mui-inline {
+ padding: 8px 0;
+}
+.mui-input-row .mui-input-clear ~ .mui-icon-clear, .mui-input-row .mui-input-speech ~ .mui-icon-speech {
+ position: absolute;
+ top: 10px;
+ right: 0;
+ z-index: 1;
+ width: 38px;
+ height: 38px;
+ font-size: 20px;
+ color: #999;
+ text-align: center;
+}
+.mui-input-row .mui-input-speech ~ .mui-icon-speech {
+ top: 8px;
+ font-size: 24px;
+}
+.mui-input-row .mui-input-clear ~ .mui-icon-clear ~ .mui-icon-speech {
+ display: none;
+}
+.mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-hidden ~ .mui-icon-speech {
+ display: inline-block;
+}
+.mui-input-row .mui-icon-speech ~ .mui-placeholder {
+ right: 38px;
+}
+.mui-input-row.mui-search .mui-icon-clear {
+ top: 7px;
+}
+.mui-input-row.mui-search .mui-icon-speech {
+ top: 5px;
+}
+
+.mui-radio, .mui-checkbox {
+ position: relative;
+}
+.mui-radio label, .mui-checkbox label {
+ display: inline-block;
+ float: none;
+ width: 100%;
+}
+
+.mui-radio.mui-left input[type="radio"], .mui-checkbox.mui-left input[type="checkbox"] {
+ left: 20px;
+}
+
+.mui-radio.mui-left label, .mui-checkbox.mui-left label {
+ padding-left: 58px;
+}
+
+.mui-radio input[type="radio"], .mui-checkbox input[type="checkbox"] {
+ position: absolute;
+ top: 4px;
+ right: 20px;
+ display: inline-block;
+ width: 28px;
+ height: 26px;
+ -webkit-appearance: none;
+ background-color: transparent;
+ border: 0;
+ outline: 0 !important;
+}
+.mui-radio input[type="radio"]:before, .mui-checkbox input[type="checkbox"]:before {
+ font-family: Muiicons;
+ font-size: 28px;
+ font-weight: normal;
+ line-height: 1;
+ color: rgba(170, 170, 170, .6);
+ text-decoration: none;
+ background: none;
+ border-radius: 0;
+
+ -webkit-font-smoothing: antialiased;
+}
+.mui-radio input[type="radio"]:checked:before, .mui-checkbox input[type="checkbox"]:checked:before {
+ color: #007aff;
+}
+
+.mui-radio input[type="radio"]:before {
+ content: "\e411";
+}
+
+.mui-radio input[type="radio"]:checked:before {
+ content: "\e441";
+}
+
+.mui-checkbox input[type="checkbox"]:before {
+ content: "\e411";
+}
+
+.mui-checkbox input[type="checkbox"]:checked:before {
+ content: "\e442";
+}
+
+.mui-select {
+ position: relative;
+}
+
+.mui-select:before {
+ position: absolute;
+ top: 8px;
+ right: 21px;
+ font-family: Muiicons;
+ color: rgba(170, 170, 170, .6);
+ content: '\e581';
+}
+
+.mui-input-row .mui-switch {
+ float: right;
+ margin-top: 5px;
+ margin-right: 20px;
+}
+
+.mui-input-range {
+ /*input[type="range"] {
+ -webkit-appearance: none;
+ background: #999;
+ height: 36px;
+ border-radius: 1px;
+ overflow: hidden;
+ margin-top: 2px;
+ margin-bottom: 2px;
+ outline:none;
+ position:relative;
+ width:100%;
+ }*/
+ /*input[type='range']::-webkit-slider-thumb {
+ -webkit-appearance: none!important;
+ opacity: 0.5;
+ height:28px;
+ width:28px;
+ border-radius: 50%;
+ background:#00b7fb;
+ position: relative;
+ pointer-events: none;
+ -webkit-box-sizing: border-box;
+ box-sizing: border-box;
+ &:before{
+ position: absolute;
+ top: 13px;
+ left: -2000px;
+ width: 2000px;
+ height: 2px;
+ background: #00b7fb;
+ content:' ';
+ }
+ }*/
+}
+.mui-input-range input[type="range"] {
+ position: relative;
+ width: 100%;
+ height: 2px;
+ -webkit-appearance: none !important;
+ padding: 0;
+ margin: 17px 0;
+ cursor: pointer;
+ background-color: #999;
+ border: 0;
+ border-radius: 3px;
+ outline: none;
+}
+.mui-input-range input[type='range']::-webkit-slider-thumb {
+ width: 28px;
+ height: 28px;
+ -webkit-appearance: none !important;
+ background-color: #007aff;
+ background-clip: padding-box;
+ border-color: #0062cc;
+ border-radius: 50%;
+}
+.mui-input-range label ~ input[type="range"] {
+ width: 65%;
+}
+.mui-input-range .mui-tooltip {
+ position: absolute;
+ top: -70px;
+ z-index: 1;
+ width: 64px;
+ height: 64px;
+ font-size: 36px;
+ line-height: 64px;
+ color: #333;
+ text-align: center;
+ text-shadow: 0 1px 0 #f3f3f3;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ border-radius: 6px;
+ opacity: .8;
+}
+
+.mui-search {
+ position: relative;
+}
+.mui-search input[type="search"] {
+ padding-left: 30px;
+}
+.mui-search .mui-placeholder {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 1;
+ display: inline-block;
+ height: 34px;
+ font-size: 16px;
+ line-height: 34px;
+ color: #999;
+ text-align: center;
+ background: none;
+ border: 0;
+ border-radius: 6px;
+}
+.mui-search .mui-placeholder .mui-icon {
+ font-size: 20px;
+ color: #333;
+}
+.mui-search:before {
+ position: absolute;
+ top: 50%;
+ right: 50%;
+ display: none;
+ margin-top: -18px;
+ margin-right: 31px;
+ font-family: Muiicons;
+ font-size: 20px;
+ font-weight: normal;
+ content: '\e466';
+}
+.mui-search.mui-active:before {
+ right: auto;
+ left: 5px;
+ display: block;
+ margin-right: 0;
+ font-size: 20px;
+}
+.mui-search.mui-active input[type="search"] {
+ text-align: left;
+}
+.mui-search.mui-active .mui-placeholder {
+ display: none;
+}
+
+.mui-segmented-control {
+ position: relative;
+ display: table;
+ width: 100%;
+ overflow: hidden;
+ font-size: 15px;
+ font-weight: 400;
+ table-layout: fixed;
+ background-color: transparent;
+ border: 1px solid #007aff;
+ border-radius: 3px;
+
+ -webkit-touch-callout: none;
+}
+.mui-segmented-control.mui-scroll-wrapper {
+ height: 38px;
+}
+.mui-segmented-control.mui-scroll-wrapper .mui-scroll {
+ width: auto;
+ height: 40px;
+ white-space: nowrap;
+}
+.mui-segmented-control.mui-scroll-wrapper .mui-control-item {
+ display: inline-block;
+ width: auto;
+ padding: 0 20px;
+ border: 0;
+}
+.mui-segmented-control .mui-control-item {
+ display: table-cell;
+ width: 1%;
+ overflow: hidden;
+ line-height: 38px;
+ color: #007aff;
+ text-align: center;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ border-color: #007aff;
+ border-left: 1px solid #007aff;
+ -webkit-transition: background-color .1s linear;
+ transition: background-color .1s linear;
+}
+.mui-segmented-control .mui-control-item:first-child {
+ border-left-width: 0;
+}
+.mui-segmented-control .mui-control-item.mui-active {
+ color: #fff;
+ background-color: #007aff;
+}
+.mui-segmented-control.mui-segmented-control-inverted {
+ width: 100%;
+ border: 0;
+ border-radius: 0;
+}
+.mui-segmented-control.mui-segmented-control-inverted .mui-control-item {
+ color: inherit;
+ border: 0;
+}
+.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active {
+ color: #007aff;
+ background: none;
+ border-bottom: 2px solid #007aff;
+}
+.mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
+ background-color: #007aff;
+}
+
+.mui-segmented-control-positive {
+ border: 1px solid #4cd964;
+}
+.mui-segmented-control-positive .mui-control-item {
+ color: #4cd964;
+ border-color: inherit;
+}
+.mui-segmented-control-positive .mui-control-item.mui-active {
+ color: #fff;
+ background-color: #4cd964;
+}
+.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active {
+ color: #4cd964;
+ background: none;
+ border-bottom: 2px solid #4cd964;
+}
+.mui-segmented-control-positive.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
+ background-color: #4cd964;
+}
+
+.mui-segmented-control-negative {
+ border: 1px solid #dd524d;
+}
+.mui-segmented-control-negative .mui-control-item {
+ color: #dd524d;
+ border-color: inherit;
+}
+.mui-segmented-control-negative .mui-control-item.mui-active {
+ color: #fff;
+ background-color: #dd524d;
+}
+.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active {
+ color: #dd524d;
+ background: none;
+ border-bottom: 2px solid #dd524d;
+}
+.mui-segmented-control-negative.mui-segmented-control-inverted ~ .mui-slider-progress-bar {
+ background-color: #dd524d;
+}
+
+.mui-control-content {
+ position: relative;
+ display: none;
+}
+.mui-control-content.mui-active {
+ display: block;
+}
+
+.mui-popover {
+ position: absolute;
+ z-index: 999;
+ display: none;
+ width: 280px;
+ background-color: rgba(247, 247, 247, .98);
+ border-radius: 7px;
+ -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, .1);
+ box-shadow: 0 0 15px rgba(0, 0, 0, .1);
+ opacity: 0;
+ -webkit-transition: opacity .3s;
+ transition: opacity .3s;
+ -webkit-transition-property: opacity;
+ transition-property: opacity;
+ -webkit-transform: none;
+ transform: none;
+}
+.mui-popover .mui-popover-arrow {
+ position: absolute;
+ top: -25px;
+ left: 0;
+ z-index: 1000;
+ width: 26px;
+ height: 26px;
+ overflow: hidden;
+}
+.mui-popover .mui-popover-arrow:after {
+ position: absolute;
+ top: 19px;
+ left: 0;
+ width: 26px;
+ height: 26px;
+ content: ' ';
+ background: rgba(247, 247, 247, .98);
+ border-radius: 3px;
+ -webkit-transform: rotate(45deg);
+ transform: rotate(45deg);
+}
+.mui-popover .mui-popover-arrow.mui-bottom {
+ top: 100%;
+ left: -26px;
+ margin-top: -1px;
+}
+.mui-popover .mui-popover-arrow.mui-bottom:after {
+ top: -19px;
+ left: 0;
+}
+.mui-popover.mui-popover-action {
+ bottom: 0;
+ width: 100%;
+ background: none;
+ border-radius: 0;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ -webkit-transition: -webkit-transform .3s, opacity .3s;
+ transition: transform .3s, opacity .3s;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+}
+.mui-popover.mui-popover-action .mui-popover-arrow {
+ display: none;
+}
+.mui-popover.mui-popover-action.mui-active {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+.mui-popover.mui-popover-action .mui-table-view {
+ margin: 8px;
+ color: #007aff;
+ text-align: center;
+ border-radius: 4px;
+}
+.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after {
+ position: absolute;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ height: 1px;
+ content: '';
+ background-color: #c8c7cc;
+ -webkit-transform: scaleY(.5);
+ transform: scaleY(.5);
+}
+.mui-popover.mui-popover-action .mui-table-view small {
+ display: block;
+ font-weight: 400;
+ line-height: 1.3;
+}
+.mui-popover.mui-active {
+ display: block;
+ opacity: 1;
+}
+.mui-popover .mui-bar ~ .mui-table-view {
+ padding-top: 44px;
+}
+
+.mui-backdrop {
+ position: fixed;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: 998;
+ background-color: rgba(0, 0, 0, .3);
+}
+
+.mui-bar-backdrop.mui-backdrop {
+ bottom: 50px;
+ background: none;
+}
+
+.mui-backdrop-action.mui-backdrop {
+ background-color: rgba(0, 0, 0, .3);
+}
+
+.mui-bar-backdrop.mui-backdrop, .mui-backdrop-action.mui-backdrop {
+ opacity: 0;
+}
+.mui-bar-backdrop.mui-backdrop.mui-active, .mui-backdrop-action.mui-backdrop.mui-active {
+ opacity: 1;
+ -webkit-transition: all .4s ease;
+ transition: all .4s ease;
+}
+
+.mui-popover .mui-btn-block {
+ margin-bottom: 5px;
+}
+.mui-popover .mui-btn-block:last-child {
+ margin-bottom: 0;
+}
+
+.mui-popover .mui-bar {
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.mui-popover .mui-bar-nav {
+ border-bottom: 1px solid rgba(0, 0, 0, .15);
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+}
+
+.mui-popover .mui-scroll-wrapper {
+ margin: 7px 0;
+ background-clip: padding-box;
+ border-radius: 7px;
+}
+
+.mui-popover .mui-scroll .mui-table-view {
+ max-height: none;
+}
+
+.mui-popover .mui-table-view {
+ max-height: 300px;
+ margin-bottom: 0;
+ overflow: auto;
+ -webkit-overflow-scrolling: touch;
+ background-color: rgba(247, 247, 247, .98);
+ background-image: none;
+ border-radius: 7px;
+}
+.mui-popover .mui-table-view:before, .mui-popover .mui-table-view:after {
+ height: 0;
+}
+.mui-popover .mui-table-view .mui-table-view-cell:first-child,
+.mui-popover .mui-table-view .mui-table-view-cell:first-child > a:not(.mui-btn) {
+ border-top-left-radius: 12px;
+ border-top-right-radius: 12px;
+}
+.mui-popover .mui-table-view .mui-table-view-cell:last-child,
+.mui-popover .mui-table-view .mui-table-view-cell:last-child > a:not(.mui-btn) {
+ border-bottom-right-radius: 12px;
+ border-bottom-left-radius: 12px;
+}
+
+.mui-popover.mui-bar-popover .mui-table-view {
+ width: 106px;
+}
+.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell {
+ padding: 11px 15px 11px 15px;
+ background-position: 0 100%;
+}
+.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell > a:not(.mui-btn) {
+ margin: -11px -15px -11px -15px;
+}
+
+.mui-pagination {
+ display: inline-block;
+ padding-left: 0;
+ margin: 0 auto;
+ border-radius: 6px;
+}
+.mui-pagination > li {
+ display: inline;
+}
+.mui-pagination > li > a,
+.mui-pagination > li > span {
+ position: relative;
+ float: left;
+ padding: 6px 12px;
+ margin-left: -1px;
+ line-height: 1.428571429;
+ color: #007aff;
+ text-decoration: none;
+ background-color: #fff;
+ border: 1px solid #ddd;
+}
+.mui-pagination > li:first-child > a,
+.mui-pagination > li:first-child > span {
+ margin-left: 0;
+ background-clip: padding-box;
+ border-top-left-radius: 6px;
+ border-bottom-left-radius: 6px;
+}
+.mui-pagination > li:last-child > a,
+.mui-pagination > li:last-child > span {
+ background-clip: padding-box;
+ border-top-right-radius: 6px;
+ border-bottom-right-radius: 6px;
+}
+.mui-pagination > li:active > a, .mui-pagination > li:active > a:active,
+.mui-pagination > li:active > span,
+.mui-pagination > li:active > span:active,
+.mui-pagination > li.mui-active > a,
+.mui-pagination > li.mui-active > a:active,
+.mui-pagination > li.mui-active > span,
+.mui-pagination > li.mui-active > span:active {
+ z-index: 2;
+ color: #fff;
+ cursor: default;
+ background-color: #007aff;
+ border-color: #007aff;
+}
+.mui-pagination > li.mui-disabled > span,
+.mui-pagination > li.mui-disabled > span:active,
+.mui-pagination > li.mui-disabled > a,
+.mui-pagination > li.mui-disabled > a:active {
+ color: #777;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ opacity: .6;
+}
+
+.mui-pagination-lg > li > a,
+.mui-pagination-lg > li > span {
+ padding: 10px 16px;
+ font-size: 18px;
+}
+
+.mui-pagination-sm > li > a,
+.mui-pagination-sm > li > span {
+ padding: 5px 10px;
+ font-size: 12px;
+}
+
+.mui-pager {
+ padding-left: 0;
+ text-align: center;
+ list-style: none;
+}
+.mui-pager:before, .mui-pager:after {
+ display: table;
+ content: " ";
+}
+.mui-pager:after {
+ clear: both;
+}
+.mui-pager li {
+ display: inline;
+}
+.mui-pager li > a,
+.mui-pager li > span {
+ display: inline-block;
+ padding: 5px 14px;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 1px solid #ddd;
+ border-radius: 6px;
+}
+.mui-pager li:active > a, .mui-pager li:active > span, .mui-pager li.mui-active > a, .mui-pager li.mui-active > span {
+ color: #fff;
+ text-decoration: none;
+ cursor: default;
+ background-color: #007aff;
+ border-color: #007aff;
+}
+.mui-pager .mui-next > a,
+.mui-pager .mui-next > span {
+ float: right;
+}
+.mui-pager .mui-previous > a,
+.mui-pager .mui-previous > span {
+ float: left;
+}
+.mui-pager .mui-disabled > a,
+.mui-pager .mui-disabled > a:active,
+.mui-pager .mui-disabled > span,
+.mui-pager .mui-disabled > span:active {
+ color: #777;
+ background-color: #fff;
+ border: 1px solid #ddd;
+ opacity: .6;
+}
+
+.mui-modal {
+ position: fixed;
+ top: 0;
+ z-index: 999;
+ width: 100%;
+ min-height: 100%;
+ overflow: hidden;
+ background-color: #fff;
+ opacity: 0;
+ -webkit-transition: -webkit-transform .25s, opacity 1ms .25s;
+ transition: transform .25s, opacity 1ms .25s;
+ -webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
+ transition-timing-function: cubic-bezier(.1, .5, .1, 1);
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+}
+.mui-modal.mui-active {
+ height: 100%;
+ opacity: 1;
+ -webkit-transition: -webkit-transform .25s;
+ transition: transform .25s;
+ -webkit-transition-timing-function: cubic-bezier(.1, .5, .1, 1);
+ transition-timing-function: cubic-bezier(.1, .5, .1, 1);
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+
+.mui-android .mui-modal .mui-bar {
+ position: static;
+}
+
+.mui-android .mui-modal .mui-bar-nav ~ .mui-content {
+ padding-top: 0;
+}
+
+.mui-slider {
+ position: relative;
+ width: 100%;
+ overflow: hidden;
+}
+.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active {
+ border-bottom: 0;
+}
+.mui-slider .mui-segmented-control.mui-segmented-control-inverted ~ .mui-slider-group .mui-slider-item {
+ border-top: 1px solid #c8c7cc;
+ border-bottom: 1px solid #c8c7cc;
+}
+.mui-slider .mui-slider-group {
+ position: relative;
+ font-size: 0;
+ white-space: nowrap;
+ -webkit-transition: all 0s linear;
+ transition: all 0s linear;
+}
+.mui-slider .mui-slider-group .mui-slider-item {
+ position: relative;
+ display: inline-block;
+ width: 100%;
+ height: 100%;
+ font-size: 14px;
+ vertical-align: top;
+}
+.mui-slider .mui-slider-group .mui-slider-item > a:not(.mui-control-item) {
+ position: relative;
+ display: block;
+ line-height: 0;
+}
+.mui-slider .mui-slider-group .mui-slider-item img {
+ width: 100%;
+}
+.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before, .mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after {
+ height: 0;
+}
+.mui-slider .mui-slider-group.mui-slider-loop {
+ -webkit-transform: translate(-100%, 0px);
+ transform: translate(-100%, 0px);
+}
+
+.mui-slider-title {
+ position: absolute;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 30px;
+ margin: 0;
+ line-height: 30px;
+ text-align: left;
+ text-indent: 12px;
+ background-color: #000;
+ opacity: .8;
+}
+
+.mui-slider-indicator {
+ position: absolute;
+ bottom: 8px;
+ width: 100%;
+ text-align: center;
+ background: none;
+}
+.mui-slider-indicator.mui-segmented-control {
+ position: relative;
+ bottom: auto;
+}
+.mui-slider-indicator .mui-indicator {
+ display: inline-block;
+ width: 6px;
+ height: 6px;
+ margin: 1px 6px;
+ cursor: pointer;
+ background: #aaa;
+ border-radius: 50%;
+ -webkit-box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
+ box-shadow: 0 0 1px 1px rgba(130, 130, 130, .7);
+}
+.mui-slider-indicator .mui-active.mui-indicator {
+ background: #fff;
+}
+.mui-slider-indicator .mui-icon {
+ width: 40px;
+ height: 30px;
+ margin: 3px;
+ font-size: 20px;
+ line-height: 30px;
+ text-align: center;
+ border: 1px solid #ddd;
+}
+.mui-slider-indicator .mui-number {
+ display: inline-block;
+ width: 58px;
+ line-height: 32px;
+}
+.mui-slider-indicator .mui-number span {
+ color: #ff5053;
+}
+
+.mui-slider-progress-bar {
+ z-index: 1;
+ height: 2px;
+ -webkit-transform: translateZ(0);
+ transform: translateZ(0);
+
+ -webkit-backface-visibility: hidden;
+}
+
+.mui-switch {
+ position: relative;
+ display: block;
+ width: 74px;
+ height: 30px;
+ background-color: #fff;
+ background-clip: padding-box;
+ border: 2px solid #ddd;
+ border-radius: 20px;
+ -webkit-transition-timing-function: ease-in-out;
+ transition-timing-function: ease-in-out;
+ -webkit-transition-duration: .2s;
+ transition-duration: .2s;
+ -webkit-transition-property: background-color, border;
+ transition-property: background-color, border;
+}
+.mui-switch.mui-disabled {
+ opacity: .3;
+}
+.mui-switch .mui-switch-handle {
+ position: absolute;
+ top: -1px;
+ left: -1px;
+ z-index: 1;
+ width: 28px;
+ height: 28px;
+ background-color: #fff;
+ background-clip: padding-box;
+ border-radius: 16px;
+ -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
+ box-shadow: 0 2px 5px rgba(0, 0, 0, .4);
+ -webkit-transition: .2s ease-in-out;
+ transition: .2s ease-in-out;
+ -webkit-transition-property: -webkit-transform, width,left;
+ transition-property: transform, width,left;
+}
+.mui-switch:before {
+ position: absolute;
+ top: 3px;
+ right: 11px;
+ font-size: 13px;
+ color: #999;
+ text-transform: uppercase;
+ content: "Off";
+}
+.mui-switch.mui-dragging {
+ background-color: rgba(247, 247, 247, .98);
+ border-color: rgba(247, 247, 247, .98);
+}
+.mui-switch.mui-dragging .mui-switch-handle {
+ width: 38px;
+}
+.mui-switch.mui-dragging.mui-active .mui-switch-handle {
+ left: -11px;
+ width: 38px;
+}
+.mui-switch.mui-active {
+ background-color: #4cd964;
+ border-color: #4cd964;
+}
+.mui-switch.mui-active .mui-switch-handle {
+ -webkit-transform: translate3d(43px, 0, 0);
+ transform: translate3d(43px, 0, 0);
+}
+.mui-switch.mui-active:before {
+ right: auto;
+ left: 15px;
+ color: #fff;
+ content: "On";
+}
+.mui-switch input[type="checkbox"] {
+ display: none;
+}
+
+.mui-switch-mini {
+ width: 47px;
+}
+.mui-switch-mini:before {
+ display: none;
+}
+.mui-switch-mini.mui-active .mui-switch-handle {
+ -webkit-transform: translate3d(16px, 0, 0);
+ transform: translate3d(16px, 0, 0);
+}
+
+.mui-switch-blue.mui-active {
+ background-color: #007aff;
+ border: 2px solid #007aff;
+}
+
+.mui-content.mui-fade {
+ left: 0;
+ opacity: 0;
+}
+.mui-content.mui-fade.mui-in {
+ opacity: 1;
+}
+.mui-content.mui-sliding {
+ z-index: 2;
+ -webkit-transition: -webkit-transform .4s;
+ transition: transform .4s;
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+}
+.mui-content.mui-sliding.mui-left {
+ z-index: 1;
+ -webkit-transform: translate3d(-100%, 0, 0);
+ transform: translate3d(-100%, 0, 0);
+}
+.mui-content.mui-sliding.mui-right {
+ z-index: 3;
+ -webkit-transform: translate3d(100%, 0, 0);
+ transform: translate3d(100%, 0, 0);
+}
+
+.mui-navigate-left:after,
+.mui-navigate-right:after,
+.mui-push-left:after,
+.mui-push-right:after {
+ position: absolute;
+ top: 50%;
+ display: inline-block;
+ font-family: Muiicons;
+ font-size: inherit;
+ line-height: 1;
+ color: #bbb;
+ text-decoration: none;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+
+ -webkit-font-smoothing: antialiased;
+}
+
+.mui-navigate-left:after,
+.mui-push-left:after {
+ left: 15px;
+ content: '\e582';
+}
+
+.mui-navigate-right:after,
+.mui-push-right:after {
+ right: 15px;
+ content: '\e583';
+}
+
+.mui-pull-top-pocket, .mui-pull-bottom-pocket {
+ position: absolute;
+ left: 0;
+ display: block;
+ width: 100%;
+ height: 50px;
+ overflow: hidden;
+ visibility: hidden;
+}
+
+.mui-plus-pullrefresh .mui-pull-top-pocket, .mui-plus-pullrefresh .mui-pull-bottom-pocket {
+ display: none;
+ visibility: visible;
+}
+
+.mui-pull-top-pocket {
+ top: 0;
+}
+
+.mui-bar-nav ~ .mui-content .mui-pull-top-pocket {
+ top: 44px;
+}
+
+.mui-bar-nav ~ .mui-bar-header-secondary ~ .mui-content .mui-pull-top-pocket {
+ top: 88px;
+}
+
+.mui-pull-bottom-pocket {
+ position: relative;
+ bottom: 0;
+ height: 40px;
+}
+.mui-pull-bottom-pocket .mui-pull-loading {
+ visibility: hidden;
+}
+.mui-pull-bottom-pocket .mui-pull-loading.mui-in {
+ display: inline-block;
+}
+
+.mui-pull {
+ position: absolute;
+ right: 0;
+ bottom: 10px;
+ left: 0;
+ font-weight: bold;
+ color: #777;
+ text-align: center;
+}
+
+.mui-pull-loading {
+ margin-right: 10px;
+ vertical-align: middle;
+ -webkit-transition: -webkit-transform .4s;
+ transition: transform .4s;
+ -webkit-transition-duration: 400ms;
+ transition-duration: 400ms;
+
+ -webkit-backface-visibility: hidden;
+}
+
+.mui-pull-loading.mui-reverse {
+ -webkit-transform: rotate(180deg) translateZ(0);
+ transform: rotate(180deg) translateZ(0);
+}
+
+.mui-pull-caption {
+ position: relative;
+ display: inline-block;
+ margin-top: 0;
+ overflow: visible;
+ font-size: 15px;
+ line-height: 24px;
+ vertical-align: middle;
+}
+.mui-pull-caption span {
+ display: none;
+}
+.mui-pull-caption span.mui-in {
+ display: inline;
+}
+
+.mui-toast-container {
+ position: fixed;
+ bottom: 50px;
+ z-index: 9999;
+ width: 100%;
+}
+
+.mui-toast-message {
+ width: 270px;
+ padding: 5px 5px 5px 5px;
+ margin: 5px auto 5px auto;
+ font-size: 14px;
+ color: #000;
+ text-align: center;
+ background-color: #d8d8d8;
+ border-radius: 7px;
+}
+
+@font-face {
+ font-family: Muiicons;
+ font-style: normal;
+ font-weight: normal;
+
+ src: url("../fonts/mui.ttf") format("truetype");
+}
+.mui-icon {
+ display: inline-block;
+ font-family: Muiicons;
+ font-size: 24px;
+ font-style: normal;
+ font-weight: normal;
+ line-height: 1;
+ text-decoration: none;
+
+ -webkit-font-smoothing: antialiased;
+}
+.mui-icon.mui-right:before {
+ float: right;
+ padding-left: .2em;
+}
+
+.mui-icon-contact:before {
+ content: "\e100";
+}
+
+.mui-icon-person:before {
+ content: "\e101";
+}
+
+.mui-icon-personadd:before {
+ content: "\e102";
+}
+
+.mui-icon-contact-filled:before {
+ content: "\e130";
+}
+
+.mui-icon-person-filled:before {
+ content: "\e131";
+}
+
+.mui-icon-personadd-filled:before {
+ content: "\e132";
+}
+
+.mui-icon-phone:before {
+ content: "\e200";
+}
+
+.mui-icon-email:before {
+ content: "\e201";
+}
+
+.mui-icon-chatbubble:before {
+ content: "\e202";
+}
+
+.mui-icon-chatboxes:before {
+ content: "\e203";
+}
+
+.mui-icon-phone-filled:before {
+ content: "\e230";
+}
+
+.mui-icon-email-filled:before {
+ content: "\e231";
+}
+
+.mui-icon-chatbubble-filled:before {
+ content: "\e232";
+}
+
+.mui-icon-chatboxes-filled:before {
+ content: "\e233";
+}
+
+.mui-icon-weibo:before {
+ content: "\e260";
+}
+
+.mui-icon-weixin:before {
+ content: "\e261";
+}
+
+.mui-icon-pengyouquan:before {
+ content: "\e262";
+}
+
+.mui-icon-chat:before {
+ content: "\e263";
+}
+
+.mui-icon-videocam:before {
+ content: "\e300";
+}
+
+.mui-icon-camera:before {
+ content: "\e301";
+}
+
+.mui-icon-mic:before {
+ content: "\e302";
+}
+
+.mui-icon-location:before {
+ content: "\e303";
+}
+
+.mui-icon-mic-filled:before, .mui-icon-speech:before {
+ content: "\e332";
+}
+
+.mui-icon-location-filled:before {
+ content: "\e333";
+}
+
+.mui-icon-micoff:before {
+ content: "\e360";
+}
+
+.mui-icon-image:before {
+ content: "\e363";
+}
+
+.mui-icon-map:before {
+ content: "\e364";
+}
+
+.mui-icon-compose:before {
+ content: "\e400";
+}
+
+.mui-icon-trash:before {
+ content: "\e401";
+}
+
+.mui-icon-upload:before {
+ content: "\e402";
+}
+
+.mui-icon-download:before {
+ content: "\e403";
+}
+
+.mui-icon-close:before {
+ content: "\e404";
+}
+
+.mui-icon-redo:before {
+ content: "\e405";
+}
+
+.mui-icon-undo:before {
+ content: "\e406";
+}
+
+.mui-icon-refresh:before {
+ content: "\e407";
+}
+
+.mui-icon-star:before {
+ content: "\e408";
+}
+
+.mui-icon-plus:before {
+ content: "\e409";
+}
+
+.mui-icon-minus:before {
+ content: "\e410";
+}
+
+.mui-icon-circle:before, .mui-icon-checkbox:before {
+ content: "\e411";
+}
+
+.mui-icon-close-filled:before, .mui-icon-clear:before {
+ content: "\e434";
+}
+
+.mui-icon-refresh-filled:before {
+ content: "\e437";
+}
+
+.mui-icon-star-filled:before {
+ content: "\e438";
+}
+
+.mui-icon-plus-filled:before {
+ content: "\e439";
+}
+
+.mui-icon-minus-filled:before {
+ content: "\e440";
+}
+
+.mui-icon-circle-filled:before {
+ content: "\e441";
+}
+
+.mui-icon-checkbox-filled:before {
+ content: "\e442";
+}
+
+.mui-icon-closeempty:before {
+ content: "\e460";
+}
+
+.mui-icon-refreshempty:before {
+ content: "\e461";
+}
+
+.mui-icon-reload:before {
+ content: "\e462";
+}
+
+.mui-icon-starhalf:before {
+ content: "\e463";
+}
+
+.mui-icon-spinner:before {
+ content: "\e464";
+}
+
+.mui-icon-spinner-cycle:before {
+ content: "\e465";
+}
+
+.mui-icon-search:before {
+ content: "\e466";
+}
+
+.mui-icon-plusempty:before {
+ content: "\e468";
+}
+
+.mui-icon-forward:before {
+ content: "\e470";
+}
+
+.mui-icon-back:before, .mui-icon-left-nav:before {
+ content: "\e471";
+}
+
+.mui-icon-checkmarkempty:before {
+ content: "\e472";
+}
+
+.mui-icon-home:before {
+ content: "\e500";
+}
+
+.mui-icon-navigate:before {
+ content: "\e501";
+}
+
+.mui-icon-gear:before {
+ content: "\e502";
+}
+
+.mui-icon-paperplane:before {
+ content: "\e503";
+}
+
+.mui-icon-info:before {
+ content: "\e504";
+}
+
+.mui-icon-help:before {
+ content: "\e505";
+}
+
+.mui-icon-locked:before {
+ content: "\e506";
+}
+
+.mui-icon-more:before {
+ content: "\e507";
+}
+
+.mui-icon-flag:before {
+ content: "\e508";
+}
+
+.mui-icon-home-filled:before {
+ content: "\e530";
+}
+
+.mui-icon-gear-filled:before {
+ content: "\e532";
+}
+
+.mui-icon-info-filled:before {
+ content: "\e534";
+}
+
+.mui-icon-help-filled:before {
+ content: "\e535";
+}
+
+.mui-icon-more-filled:before {
+ content: "\e537";
+}
+
+.mui-icon-settings:before {
+ content: "\e560";
+}
+
+.mui-icon-list:before {
+ content: "\e562";
+}
+
+.mui-icon-bars:before {
+ content: "\e563";
+}
+
+.mui-icon-loop:before {
+ content: "\e565";
+}
+
+.mui-icon-paperclip:before {
+ content: "\e567";
+}
+
+.mui-icon-arrowup:before {
+ content: "\e580";
+}
+
+.mui-icon-arrowdown:before {
+ content: "\e581";
+}
+
+.mui-icon-arrowleft:before {
+ content: "\e582";
+}
+
+.mui-icon-arrowright:before {
+ content: "\e583";
+}
+
+.mui-icon-arrowthinup:before {
+ content: "\e584";
+}
+
+.mui-icon-arrowthindown:before {
+ content: "\e585";
+}
+
+.mui-icon-arrowthinleft:before {
+ content: "\e586";
+}
+
+.mui-icon-arrowthinright:before {
+ content: "\e587";
+}
+
+.mui-icon-pulldown:before {
+ content: "\e588";
+}
+
+.mui-fullscreen {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+}
+.mui-fullscreen .mui-slider-group {
+ height: 100%;
+}
+.mui-fullscreen .mui-segmented-control ~ .mui-slider-group {
+ position: absolute;
+ top: 40px;
+ bottom: 0;
+ width: 100%;
+ height: auto;
+}
+.mui-fullscreen .mui-slider-item > a {
+ top: 50%;
+ -webkit-transform: translateY(-50%);
+ transform: translateY(-50%);
+}
+
+.mui-bar-tab ~ .mui-content .mui-slider.mui-fullscreen .mui-segmented-control ~ .mui-slider-group {
+ bottom: 50px;
+}
+
+.mui-android.mui-android-4-0 input:focus,
+.mui-android.mui-android-4-0 textarea:focus {
+ -webkit-user-modify: inherit;
+}
+
+/*# sourceMappingURL=mui.css.map */
diff --git a/examples/login/css/mui.min.css b/examples/login/css/mui.min.css
new file mode 100644
index 00000000..38be90ab
--- /dev/null
+++ b/examples/login/css/mui.min.css
@@ -0,0 +1,5 @@
+/*!
+ * =====================================================
+ * Mui v1.2.0 (https://github.com/dcloudio/mui)
+ * =====================================================
+ *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background:0 0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}input{line-height:normal}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}*{-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-user-select:none;outline:0;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}body{-webkit-overflow-scrolling:touch;font-family:"Helvetica Neue",Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#fff}a{color:#007aff;text-decoration:none}a:active{color:#0062cc}.mui-content{-webkit-overflow-scrolling:touch;background-color:#efeff4}.mui-bar-nav~.mui-content{padding-top:44px}.mui-bar-nav~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:44px}.mui-bar-header-secondary~.mui-content{padding-top:88px}.mui-bar-header-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{top:88px}.mui-bar-footer~.mui-content{padding-bottom:44px}.mui-bar-footer~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:44px}.mui-bar-footer-secondary~.mui-content{padding-bottom:88px}.mui-bar-footer-secondary~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:88px}.mui-bar-tab~.mui-content{padding-bottom:50px}.mui-bar-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:50px}.mui-bar-footer-secondary-tab~.mui-content{padding-bottom:94px}.mui-bar-footer-secondary-tab~.mui-content.mui-scroll-wrapper .mui-scrollbar-vertical{bottom:94px}.mui-content-padded{margin:10px}.mui-inline{display:inline-block;vertical-align:top}.mui-block{display:block!important}.mui-visibility{visibility:visible!important}.mui-hidden{display:none!important}.mui-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;text-overflow:ellipsis;word-wrap:break-word;white-space:normal!important;-webkit-line-clamp:2;-webkit-box-orient:vertical}.mui-table{display:table;width:100%;table-layout:fixed}.mui-table-cell{position:relative;display:table-cell}.mui-text-left{text-align:left!important}.mui-text-center{text-align:center!important}.mui-text-justify{text-align:justify!important}.mui-text-right{text-align:right!important}.mui-pull-left{float:left}.mui-pull-right{float:right}.mui-list-unstyled{padding-left:0;list-style:none}.mui-list-inline{padding-left:0;margin-left:-5px;list-style:none}.mui-list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}.mui-clearfix:after,.mui-clearfix:before{display:table;content:" "}.mui-clearfix:after{clear:both}.mui-bg-primary{background-color:#007aff}.mui-bg-positive{background-color:#4cd964}.mui-bg-negative{background-color:#dd524d}.mui-error{padding:10px;margin:88px 35px;background-color:#bbb;border-radius:6px}h1,h2,h3,h4,h5,h6{margin-top:5px;margin-bottom:5px;line-height:1}.mui-h1,h1{font-size:36px}.mui-h2,h2{font-size:30px}.mui-h3,h3{font-size:24px}.mui-h4,h4{font-size:18px}.mui-h5,h5{font-size:14px;font-weight:400;color:#8f8f94}.mui-h6,h6{font-size:12px;font-weight:400;color:#8f8f94}p{margin-top:0;margin-bottom:10px;font-size:14px;color:#8f8f94}.mui-col-xs-12{width:100%}.mui-col-xs-11{width:91.66666667%}.mui-col-xs-10{width:83.33333333%}.mui-col-xs-9{width:75%}.mui-col-xs-8{width:66.66666667%}.mui-col-xs-7{width:58.33333333%}.mui-col-xs-6{width:50%}.mui-col-xs-5{width:41.66666667%}.mui-col-xs-4{width:33.33333333%}.mui-col-xs-3{width:25%}.mui-col-xs-2{width:16.66666667%}.mui-col-xs-1{width:8.33333333%}@media (min-width:400px){.mui-col-sm-12{width:100%}.mui-col-sm-11{width:91.66666667%}.mui-col-sm-10{width:83.33333333%}.mui-col-sm-9{width:75%}.mui-col-sm-8{width:66.66666667%}.mui-col-sm-7{width:58.33333333%}.mui-col-sm-6{width:50%}.mui-col-sm-5{width:41.66666667%}.mui-col-sm-4{width:33.33333333%}.mui-col-sm-3{width:25%}.mui-col-sm-2{width:16.66666667%}.mui-col-sm-1{width:8.33333333%}}.mui-scroll-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:1;width:100%;overflow:hidden;-webkit-backface-visibility:hidden}.mui-scroll{position:absolute;z-index:1;width:100%;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;pointer-events:none;opacity:0;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px)}.mui-scrollbar-vertical{top:0;right:1px;bottom:2px;width:4px}.mui-scrollbar-vertical .mui-scrollbar-indicator{width:100%}.mui-scrollbar-horizontal{right:2px;bottom:0;left:2px;height:4px}.mui-scrollbar-horizontal .mui-scrollbar-indicator{height:100%}.mui-scrollbar-indicator{position:absolute;display:block;box-sizing:border-box;background:rgba(0,0,0,.39804);border:1px solid rgba(255,255,255,.80196);border-radius:2px;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px)}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll-wrapper{position:absolute;top:0;bottom:0;left:0;width:100%;overflow:hidden}.mui-plus-pullrefresh .mui-fullscreen .mui-scroll-wrapper .mui-scroll,.mui-plus-pullrefresh .mui-fullscreen .mui-slider-group .mui-scroll{position:absolute;width:100%}.mui-plus-pullrefresh .mui-scroll-wrapper,.mui-plus-pullrefresh .mui-slider-group{position:static;top:auto;bottom:auto;left:auto;width:auto;overflow:auto}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important}.mui-off-canvas-wrap{position:relative;z-index:1;width:100%;height:100%;overflow:hidden}.mui-off-canvas-wrap .mui-inner-wrap{position:relative;z-index:1;width:100%;height:100%}.mui-off-canvas-wrap .mui-inner-wrap.mui-transitioning{-webkit-transition:-webkit-transform 200ms ease;transition:transform 200ms ease}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-left{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-off-canvas-wrap .mui-inner-wrap .mui-off-canvas-right{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-active{height:100%;overflow:hidden}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;z-index:998;display:block;background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);transition:background 200ms ease;-webkit-backface-visibility:hidden;-webkit-tap-highlight-color:transparent}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-right{z-index:10000!important;-webkit-transform:translate3d(100%,0,0)}.mui-off-canvas-wrap.mui-slide-in .mui-off-canvas-left{z-index:10000!important;-webkit-transform:translate3d(-100%,0,0)}.mui-off-canvas-left,.mui-off-canvas-right{position:absolute;top:0;bottom:0;z-index:-1;width:70%;min-height:100%;box-sizing:content-box;-webkit-overflow-scrolling:touch;visibility:hidden;background:#333;-webkit-backface-visibility:hidden}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 200ms ease;transition:transform 200ms ease}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-loading .mui-spinner{display:block;margin:0 auto}.mui-spinner{display:inline-block;width:24px;height:24px;-webkit-transform-origin:50%;transform-origin:50%;-webkit-animation:spinner-spin 1s step-end infinite;animation:spinner-spin 1s step-end infinite}.mui-spinner:after{display:block;width:100%;height:100%;content:"";background-image:url("data:image/svg+xml;charset=utf-8,");background-repeat:no-repeat;background-position:50%;background-size:100%}.mui-spinner-white:after{background-image:url("data:image/svg+xml;charset=utf-8,")}@-webkit-keyframes spinner-spin{0%{-webkit-transform:rotate(0deg)}8.33333333%{-webkit-transform:rotate(30deg)}16.66666667%{-webkit-transform:rotate(60deg)}25%{-webkit-transform:rotate(90deg)}33.33333333%{-webkit-transform:rotate(120deg)}41.66666667%{-webkit-transform:rotate(150deg)}50%{-webkit-transform:rotate(180deg)}58.33333333%{-webkit-transform:rotate(210deg)}66.66666667%{-webkit-transform:rotate(240deg)}75%{-webkit-transform:rotate(270deg)}83.33333333%{-webkit-transform:rotate(300deg)}91.66666667%{-webkit-transform:rotate(330deg)}100%{-webkit-transform:rotate(360deg)}}@keyframes spinner-spin{0%{transform:rotate(0deg)}8.33333333%{transform:rotate(30deg)}16.66666667%{transform:rotate(60deg)}25%{transform:rotate(90deg)}33.33333333%{transform:rotate(120deg)}41.66666667%{transform:rotate(150deg)}50%{transform:rotate(180deg)}58.33333333%{transform:rotate(210deg)}66.66666667%{transform:rotate(240deg)}75%{transform:rotate(270deg)}83.33333333%{transform:rotate(300deg)}91.66666667%{transform:rotate(330deg)}100%{transform:rotate(360deg)}}.mui-btn,button,input[type=button],input[type=reset],input[type=submit]{position:relative;display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42;color:#333;text-align:center;white-space:nowrap;vertical-align:top;cursor:pointer;background-color:#fff;background-clip:padding-box;border:1px solid #ccc;border-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s}.mui-btn.mui-active,.mui-btn:active,button.mui-active,button:active,input[type=button].mui-active,input[type=button]:active,input[type=reset].mui-active,input[type=reset]:active,input[type=submit].mui-active,input[type=submit]:active{color:#fff;background-color:#929292}.mui-btn.mui-disabled,.mui-btn:disabled,button.mui-disabled,button:disabled,input[type=button].mui-disabled,input[type=button]:disabled,input[type=reset].mui-disabled,input[type=reset]:disabled,input[type=submit].mui-disabled,input[type=submit]:disabled{opacity:.6}.mui-btn-blue,.mui-btn-primary,input[type=submit]{color:#fff;background-color:#007aff;border:1px solid #007aff}.mui-btn-blue.mui-active,.mui-btn-blue:active,.mui-btn-primary.mui-active,.mui-btn-primary:active,input[type=submit].mui-active,input[type=submit]:active{color:#fff;background-color:#0062cc;border:1px solid #0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;background-color:#4cd964;border:1px solid #4cd964}.mui-btn-green.mui-active,.mui-btn-green:active,.mui-btn-positive.mui-active,.mui-btn-positive:active,.mui-btn-success.mui-active,.mui-btn-success:active{color:#fff;background-color:#2ac845;border:1px solid #2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;background-color:#f0ad4e;border:1px solid #f0ad4e}.mui-btn-warning.mui-active,.mui-btn-warning:active,.mui-btn-yellow.mui-active,.mui-btn-yellow:active{color:#fff;background-color:#ec971f;border:1px solid #ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;background-color:#dd524d;border:1px solid #dd524d}.mui-btn-danger.mui-active,.mui-btn-danger:active,.mui-btn-negative.mui-active,.mui-btn-negative:active,.mui-btn-red.mui-active,.mui-btn-red:active{color:#fff;background-color:#cf2d28;border:1px solid #cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;background-color:#8a6de9;border:1px solid #8a6de9}.mui-btn-purple.mui-active,.mui-btn-purple:active,.mui-btn-royal.mui-active,.mui-btn-royal:active{color:#fff;background-color:#6641e2;border:1px solid #6641e2}.mui-btn-grey{color:#fff;background-color:#c7c7cc;border:1px solid #c7c7cc}.mui-btn-grey.mui-active,.mui-btn-grey:active{color:#fff;background-color:#acacb4;border:1px solid #acacb4}.mui-btn-outlined{background-color:transparent}.mui-btn-outlined.mui-btn-blue,.mui-btn-outlined.mui-btn-primary{color:#007aff}.mui-btn-outlined.mui-btn-green,.mui-btn-outlined.mui-btn-positive,.mui-btn-outlined.mui-btn-success{color:#4cd964}.mui-btn-outlined.mui-btn-warning,.mui-btn-outlined.mui-btn-yellow{color:#f0ad4e}.mui-btn-outlined.mui-btn-danger,.mui-btn-outlined.mui-btn-negative,.mui-btn-outlined.mui-btn-red{color:#dd524d}.mui-btn-outlined.mui-btn-purple,.mui-btn-outlined.mui-btn-royal{color:#8a6de9}.mui-btn-outlined.mui-btn-blue:active,.mui-btn-outlined.mui-btn-danger:active,.mui-btn-outlined.mui-btn-green:active,.mui-btn-outlined.mui-btn-negative:active,.mui-btn-outlined.mui-btn-positive:active,.mui-btn-outlined.mui-btn-primary:active,.mui-btn-outlined.mui-btn-purple:active,.mui-btn-outlined.mui-btn-red:active,.mui-btn-outlined.mui-btn-royal:active,.mui-btn-outlined.mui-btn-success:active,.mui-btn-outlined.mui-btn-warning:active,.mui-btn-outlined.mui-btn-yellow:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;background-color:transparent;border:0}.mui-btn-link.mui-active,.mui-btn-link:active{color:#0062cc;background-color:transparent}.mui-btn-block{display:block;width:100%;padding:15px 0;margin-bottom:10px;font-size:18px}.mui-btn .mui-badge{margin:-2px -4px -2px 4px;font-size:14px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:active .mui-badge-inverted,.mui-btn-positive:active .mui-badge-inverted,.mui-btn-primary:active .mui-badge-inverted{color:#fff}.mui-btn-block .mui-badge{position:absolute;right:0;margin-right:10px}.mui-btn .mui-icon{font-size:inherit}.mui-btn.mui-icon{font-size:14px;line-height:1.42}.mui-btn.mui-fab{width:56px;height:56px;padding:16px;border-radius:50%;outline:0}.mui-btn.mui-fab.mui-btn-mini{width:40px;height:40px;padding:8px}.mui-btn.mui-fab .mui-icon{width:24px;height:24px;font-size:24px;line-height:24px}.mui-bar{position:fixed;right:0;left:0;z-index:10;height:44px;padding-right:10px;padding-left:10px;background-color:rgba(247,247,247,.98);border-bottom:0;-webkit-box-shadow:0 0 1px rgba(0,0,0,.85);box-shadow:0 0 1px rgba(0,0,0,.85);-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-bar .mui-title{right:40px;left:40px;width:auto;margin:0;overflow:hidden;text-overflow:ellipsis}.mui-bar .mui-backdrop{background:0 0}.mui-bar-header-secondary{top:44px}.mui-bar-footer{bottom:0}.mui-bar-footer-secondary{bottom:44px}.mui-bar-footer-secondary-tab{bottom:50px}.mui-bar-footer,.mui-bar-footer-secondary,.mui-bar-footer-secondary-tab{border-top:0}.mui-bar-nav{top:0;-webkit-box-shadow:0 1px 6px #ccc;box-shadow:0 1px 6px #ccc}.mui-bar-nav~.mui-content .mui-anchor{display:block;height:45px;margin-top:-45px;visibility:hidden}.mui-bar-nav.mui-bar .mui-icon{padding-right:10px;padding-left:10px;margin-right:-10px;margin-left:-10px}.mui-title{position:absolute;display:block;width:100%;padding:0;margin:0 -10px;font-size:17px;font-weight:500;line-height:44px;color:#000;text-align:center;white-space:nowrap}.mui-title a{color:inherit}.mui-bar-tab{bottom:0;display:table;width:100%;height:50px;padding:0;table-layout:fixed;border-top:0;border-bottom:0;-webkit-touch-callout:none}.mui-bar-tab .mui-tab-item{display:table-cell;width:1%;height:50px;overflow:hidden;color:#929292;text-align:center;text-overflow:ellipsis;white-space:nowrap;vertical-align:middle}.mui-bar-tab .mui-tab-item.mui-active{color:#007aff}.mui-bar-tab .mui-tab-item .mui-icon{top:3px;width:24px;height:24px;padding-top:0;padding-bottom:0}.mui-bar-tab .mui-tab-item .mui-icon~.mui-tab-label{display:block;overflow:hidden;font-size:11px;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar{position:absolute}.mui-bar .mui-btn{position:relative;top:7px;z-index:20;padding:6px 12px 7px;margin-top:0;font-weight:400}.mui-bar .mui-btn.mui-pull-right{margin-left:10px}.mui-bar .mui-btn.mui-pull-left{margin-right:10px}.mui-bar .mui-btn-link{top:0;padding:0;font-size:16px;line-height:44px;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{top:6px;padding:5px 0;margin-bottom:0;font-size:16px}.mui-bar .mui-btn-nav.mui-pull-left{margin-left:-5px}.mui-bar .mui-btn-nav.mui-pull-left .mui-icon-left-nav{margin-right:-3px}.mui-bar .mui-btn-nav.mui-pull-right{margin-right:-5px}.mui-bar .mui-btn-nav.mui-pull-right .mui-icon-right-nav{margin-left:-3px}.mui-bar .mui-btn-nav:active{opacity:.3}.mui-bar .mui-icon{position:relative;z-index:20;padding-top:10px;padding-bottom:10px;font-size:24px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;padding:0;margin:0}.mui-bar .mui-title .mui-icon{padding:0;margin:0}.mui-bar .mui-title .mui-icon.mui-icon-caret{top:4px;margin-left:-5px}.mui-bar input[type=search]{height:29px;margin:6px 0}.mui-bar .mui-input-row .mui-btn{padding:12px 10px}.mui-bar .mui-search:before{margin-top:-10px}.mui-bar .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:12px}.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-clear~.mui-icon-clear,.mui-bar.mui-bar-header-secondary .mui-input-row .mui-input-speech~.mui-icon-speech{top:0;right:0}.mui-bar .mui-segmented-control{top:7px;width:auto;margin:0 auto}.mui-badge{display:inline-block;padding:3px 6px;font-size:12px;line-height:1;color:#333;background-color:rgba(0,0,0,.15);border-radius:100px}.mui-badge.mui-badge-inverted{padding:0 5px 0 0;color:#929292;background-color:transparent}.mui-badge-blue,.mui-badge-primary{color:#fff;background-color:#007aff}.mui-badge-blue.mui-badge-inverted,.mui-badge-primary.mui-badge-inverted{color:#007aff;background-color:transparent}.mui-badge-green,.mui-badge-success{color:#fff;background-color:#4cd964}.mui-badge-green.mui-badge-inverted,.mui-badge-success.mui-badge-inverted{color:#4cd964;background-color:transparent}.mui-badge-warning,.mui-badge-yellow{color:#fff;background-color:#f0ad4e}.mui-badge-warning.mui-badge-inverted,.mui-badge-yellow.mui-badge-inverted{color:#f0ad4e;background-color:transparent}.mui-badge-danger,.mui-badge-red{color:#fff;background-color:#dd524d}.mui-badge-danger.mui-badge-inverted,.mui-badge-red.mui-badge-inverted{color:#dd524d;background-color:transparent}.mui-badge-purple,.mui-badge-royal{color:#fff;background-color:#8a6de9}.mui-badge-purple.mui-badge-inverted,.mui-badge-royal.mui-badge-inverted{color:#8a6de9;background-color:transparent}.mui-icon .mui-badge{position:absolute;top:-2px;left:100%;padding:1px 5px;margin-left:-10px;font-size:10px;line-height:1.4;color:#fff;background:red}.mui-card{margin:0 15px;overflow:hidden;background-color:#fff;background-clip:padding-box;border:1px solid #ddd;border-radius:6px}.mui-content>.mui-card:first-child{margin-top:15px}.mui-card .mui-input-group .mui-input-row:last-child:after,.mui-card .mui-input-group .mui-input-row:last-child:before,.mui-card .mui-input-group:after,.mui-card .mui-input-group:before{height:0}.mui-card .mui-table-view{margin-bottom:0;border-top:0;border-bottom:0;border-radius:6px}.mui-card .mui-table-view .mui-table-view-divider:first-child{top:0;border-top-left-radius:6px;border-top-right-radius:6px}.mui-card .mui-table-view .mui-table-view-divider:last-child{border-bottom-right-radius:6px;border-bottom-left-radius:6px}.mui-card .mui-table-view:after,.mui-card .mui-table-view:before,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:after,.mui-card>.mui-table-view>.mui-table-view-cell:last-child:before{height:0}.mui-table-view{position:relative;padding-left:0;margin-top:0;margin-bottom:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-chevron .mui-table-view-cell{padding-right:65px}.mui-table-view-chevron .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';background-color:#222;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';background-color:#222;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';background-color:#222;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-inverted .mui-table-view-cell.mui-active,.mui-table-view-inverted .mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#242424}.mui-table-view-cell{position:relative;padding:11px 15px;overflow:hidden;background-color:inherit;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-cell.mui-checkbox input[type=checkbox],.mui-table-view-cell.mui-radio input[type=radio]{top:8px}.mui-table-view-cell.mui-checkbox.mui-left,.mui-table-view-cell.mui-radio.mui-left{padding-left:58px}.mui-table-view-cell.mui-active{background-color:#eee}.mui-table-view-cell:last-child:after,.mui-table-view-cell:last-child:before{height:0}.mui-table-view-cell>a:not(.mui-btn){position:relative;display:block;padding:inherit;margin:-11px -15px;overflow:hidden;color:inherit;text-overflow:ellipsis;white-space:nowrap}.mui-table-view-cell>a:not(.mui-btn).mui-active{background-color:#eee}.mui-table-view-cell p{margin-bottom:0}.mui-table-view-cell.mui-transitioning>.mui-slider-handle,.mui-table-view-cell.mui-transitioning>.mui-slider-left .mui-btn,.mui-table-view-cell.mui-transitioning>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 300ms ease;transition:transform 300ms ease}.mui-table-view-cell>.mui-slider-handle{background-color:#fff}.mui-table-view-cell>.mui-slider-handle,.mui-table-view-cell>.mui-slider-left .mui-btn,.mui-table-view-cell>.mui-slider-right .mui-btn{-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-table-view-cell>.mui-slider-left,.mui-table-view-cell>.mui-slider-right{position:absolute;top:0;display:-webkit-box;display:-webkit-flex;display:flex;height:100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.mui-table-view-cell>.mui-slider-left>.mui-btn,.mui-table-view-cell>.mui-slider-right>.mui-btn{position:relative;left:0;display:-webkit-box;display:-webkit-flex;display:flex;padding:0 30px;color:#fff;border:0;border-radius:0;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-table-view-cell>.mui-slider-left>.mui-btn:after,.mui-table-view-cell>.mui-slider-right>.mui-btn:after{position:absolute;top:0;z-index:-1;width:600%;height:100%;content:'';background:inherit}.mui-table-view-cell>.mui-slider-left>.mui-btn.mui-icon,.mui-table-view-cell>.mui-slider-right>.mui-btn.mui-icon{font-size:30px}.mui-table-view-cell>.mui-slider-right{right:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(100%);transform:translateX(100%)}.mui-table-view-cell>.mui-slider-left{left:0;-webkit-transition:-webkit-transform 0ms ease;transition:transform 0ms ease;-webkit-transform:translateX(-100%);transform:translateX(-100%)}.mui-table-view-cell>.mui-slider-left>.mui-btn:after{right:100%;margin-right:-1px}.mui-table-view-divider{position:relative;padding-top:6px;padding-bottom:6px;padding-left:15px;margin-top:-1px;margin-left:0;font-weight:500;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-object{max-width:42px;height:42px;line-height:42px}.mui-table-view .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-media-object.mui-pull-right{margin-left:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object{max-width:29px;height:29px;margin:-4px 0;line-height:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{max-width:29px;height:29px;line-height:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object.mui-pull-left{margin-right:10px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object .mui-icon{font-size:29px}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-body:after{position:absolute;right:0;bottom:0;left:55px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view .mui-table-view-cell.mui-media-icon:after{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view{display:block}.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view.mui-unfold .mui-table-view-cell.mui-collapse .mui-table-view:before{height:0!important}.mui-table-view.mui-unfold .mui-table-view-cell.mui-media-icon.mui-collapse .mui-media-body:after{position:absolute;right:0;bottom:0;left:70px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view-cell>.mui-badge,.mui-table-view-cell>.mui-btn,.mui-table-view-cell>.mui-switch,.mui-table-view-cell>a>.mui-badge,.mui-table-view-cell>a>.mui-btn,.mui-table-view-cell>a>.mui-switch{position:absolute;top:50%;right:15px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-table-view-cell .mui-navigate-left>.mui-badge,.mui-table-view-cell .mui-navigate-left>.mui-btn,.mui-table-view-cell .mui-navigate-left>.mui-switch,.mui-table-view-cell .mui-navigate-right>.mui-badge,.mui-table-view-cell .mui-navigate-right>.mui-btn,.mui-table-view-cell .mui-navigate-right>.mui-switch,.mui-table-view-cell .mui-push-left>.mui-badge,.mui-table-view-cell .mui-push-left>.mui-btn,.mui-table-view-cell .mui-push-left>.mui-switch,.mui-table-view-cell .mui-push-right>.mui-badge,.mui-table-view-cell .mui-push-right>.mui-btn,.mui-table-view-cell .mui-push-right>.mui-switch,.mui-table-view-cell>a .mui-navigate-left>.mui-badge,.mui-table-view-cell>a .mui-navigate-left>.mui-btn,.mui-table-view-cell>a .mui-navigate-left>.mui-switch,.mui-table-view-cell>a .mui-navigate-right>.mui-badge,.mui-table-view-cell>a .mui-navigate-right>.mui-btn,.mui-table-view-cell>a .mui-navigate-right>.mui-switch,.mui-table-view-cell>a .mui-push-left>.mui-badge,.mui-table-view-cell>a .mui-push-left>.mui-btn,.mui-table-view-cell>a .mui-push-left>.mui-switch,.mui-table-view-cell>a .mui-push-right>.mui-badge,.mui-table-view-cell>a .mui-push-right>.mui-btn,.mui-table-view-cell>a .mui-push-right>.mui-switch{right:35px}.mui-content>.mui-table-view:first-child{margin-top:15px}.mui-table-view-cell.mui-collapse>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse>.mui-push-right:after{content:'\e581'}.mui-table-view-cell.mui-collapse.mui-active .mui-collapse-content,.mui-table-view-cell.mui-collapse.mui-active .mui-table-view{display:block}.mui-table-view-cell.mui-collapse.mui-active>.mui-navigate-right:after,.mui-table-view-cell.mui-collapse.mui-active>.mui-push-right:after{content:'\e580'}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;padding:8px 15px;margin:11px -15px -11px;overflow:hidden;background:#fff;border:1px solid #ddd;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-input-group,.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{width:auto;height:auto;margin:-8px -15px}.mui-table-view-cell.mui-collapse .mui-collapse-content>.mui-slider{margin:-8px -16px}.mui-table-view-cell.mui-collapse .mui-table-view{display:none;margin-top:11px;margin-right:-15px;margin-bottom:-11px;margin-left:-15px;border:0}.mui-table-view-cell.mui-collapse .mui-table-view.mui-table-view-chevron{margin-right:-65px}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell{padding-left:31px;background-position:31px 100%}.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:30px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-table-view.mui-grid-view{display:block;width:100%;padding:0 10px 10px 0;font-size:0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{display:inline-block;padding:10px 0 0 14px;margin-right:-4px;font-size:17px;text-align:center;vertical-align:middle;background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-object{width:100%;max-width:100%;height:auto}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn){margin:-10px 0 0 -14px}.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn).mui-active,.mui-table-view.mui-grid-view .mui-table-view-cell>a:not(.mui-btn):active{background:0 0}.mui-table-view.mui-grid-view .mui-table-view-cell .mui-media-body{display:block;width:100%;height:15px;margin-top:8px;font-size:15px;line-height:15px;color:#333;text-overflow:ellipsis}.mui-table-view.mui-grid-view .mui-table-view-cell:after,.mui-table-view.mui-grid-view .mui-table-view-cell:before{height:0}.mui-grid-view.mui-grid-9{padding:1px 0;padding-right:0;background-color:#f2f2f2}.mui-grid-view.mui-grid-9 .mui-table-view-cell{padding:11px 15px;margin:-1px 0 0 -1px;vertical-align:top;border-top:1px solid #eee;border-left:1px solid #eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell.mui-active{background-color:#eee}.mui-grid-view.mui-grid-9 .mui-table-view-cell>a:not(.mui-btn){padding:10px 0;margin:0}.mui-grid-view.mui-grid-9:before{height:0}.mui-grid-view.mui-grid-9 .mui-media{color:#797979}.mui-grid-view.mui-grid-9 .mui-media .mui-icon{position:relative;font-size:2.4em}.mui-slider-cell{position:relative}.mui-slider-cell>.mui-slider-handle{z-index:1}.mui-slider-cell>.mui-slider-left,.mui-slider-cell>.mui-slider-right{position:absolute;top:0;bottom:0;z-index:0}.mui-slider-cell>.mui-slider-left{left:0}.mui-slider-cell>.mui-slider-right{right:0}input,select,textarea{font-family:"Helvetica Neue",Helvetica,sans-serif;font-size:17px;-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent}input:focus,select:focus,textarea:focus{-webkit-tap-highlight-color:transparent;-webkit-tap-highlight-color:transparent;-webkit-user-modify:read-write-plaintext-only}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{width:100%;height:40px;-webkit-appearance:none;padding:10px 15px;margin-bottom:15px;line-height:21px;-webkit-user-select:text;background-color:#fff;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0}input[type=number]::-webkit-outer-spin-button{margin:0}input[type=search]{height:34px;-webkit-box-sizing:border-box;box-sizing:border-box;font-size:16px;text-align:center;background-color:rgba(0,0,0,.1);border:0;border-radius:6px}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{height:auto;margin-top:1px;font-size:14px;background-color:#fff;border:0!important}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;background-color:#fff;border:0}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-input-group input[type=text],.mui-input-group textarea{margin-bottom:0;background-color:transparent;border:0;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=text]:after,.mui-input-group textarea:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{overflow:hidden;clear:left}.mui-input-row select{height:37px;padding:0;font-size:17px}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background-image:none}.mui-input-group .mui-input-row{height:40px}.mui-input-group .mui-input-row:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-input-row label{float:left;width:35%;padding:10px 15px;font-family:"Helvetica Neue",Helvetica,sans-serif;line-height:1.1}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;padding-left:0;margin-bottom:0;border:0}.mui-input-row .mui-btn{float:right;width:15%;padding:10px 15px;font-family:"Helvetica Neue",Helvetica,sans-serif;line-height:1.1}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;padding-left:0;margin-bottom:0;border:0}.mui-button-row{position:relative;padding-top:5px;text-align:center}.mui-input-group .mui-button-row{height:45px}.mui-input-row{position:relative}.mui-input-row.mui-input-range{padding-right:20px;overflow:visible}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-speech~.mui-icon-speech{position:absolute;top:10px;right:0;z-index:1;width:38px;height:38px;font-size:20px;color:#999;text-align:center}.mui-input-row .mui-input-speech~.mui-icon-speech{top:8px;font-size:24px}.mui-input-row .mui-input-clear~.mui-icon-clear~.mui-icon-speech{display:none}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-hidden~.mui-icon-speech{display:inline-block}.mui-input-row .mui-icon-speech~.mui-placeholder{right:38px}.mui-input-row.mui-search .mui-icon-clear{top:7px}.mui-input-row.mui-search .mui-icon-speech{top:5px}.mui-checkbox,.mui-radio{position:relative}.mui-checkbox label,.mui-radio label{display:inline-block;float:none;width:100%}.mui-checkbox.mui-left input[type=checkbox],.mui-radio.mui-left input[type=radio]{left:20px}.mui-checkbox.mui-left label,.mui-radio.mui-left label{padding-left:58px}.mui-checkbox input[type=checkbox],.mui-radio input[type=radio]{position:absolute;top:4px;right:20px;display:inline-block;width:28px;height:26px;-webkit-appearance:none;background-color:transparent;border:0;outline:0!important}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;color:rgba(170,170,170,.6);text-decoration:none;background:0 0;border-radius:0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-radio input[type=radio]:before{content:"\e411"}.mui-radio input[type=radio]:checked:before{content:"\e441"}.mui-checkbox input[type=checkbox]:before{content:"\e411"}.mui-checkbox input[type=checkbox]:checked:before{content:"\e442"}.mui-select{position:relative}.mui-select:before{position:absolute;top:8px;right:21px;font-family:Muiicons;color:rgba(170,170,170,.6);content:'\e581'}.mui-input-row .mui-switch{float:right;margin-top:5px;margin-right:20px}.mui-input-range input[type=range]{position:relative;width:100%;height:2px;-webkit-appearance:none!important;padding:0;margin:17px 0;cursor:pointer;background-color:#999;border:0;border-radius:3px;outline:0}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;-webkit-appearance:none!important;background-color:#007aff;background-clip:padding-box;border-color:#0062cc;border-radius:50%}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{position:absolute;top:-70px;z-index:1;width:64px;height:64px;font-size:36px;line-height:64px;color:#333;text-align:center;text-shadow:0 1px 0 #f3f3f3;background-color:#fff;border:1px solid #ddd;border-radius:6px;opacity:.8}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;display:inline-block;height:34px;font-size:16px;line-height:34px;color:#999;text-align:center;background:0 0;border:0;border-radius:6px}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;font-family:Muiicons;font-size:20px;font-weight:400;content:'\e466'}.mui-search.mui-active:before{right:auto;left:5px;display:block;margin-right:0;font-size:20px}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{position:relative;display:table;width:100%;overflow:hidden;font-size:15px;font-weight:400;table-layout:fixed;background-color:transparent;border:1px solid #007aff;border-radius:3px;-webkit-touch-callout:none}.mui-segmented-control.mui-scroll-wrapper{height:38px}.mui-segmented-control.mui-scroll-wrapper .mui-scroll{width:auto;height:40px;white-space:nowrap}.mui-segmented-control.mui-scroll-wrapper .mui-control-item{display:inline-block;width:auto;padding:0 20px;border:0}.mui-segmented-control .mui-control-item{display:table-cell;width:1%;overflow:hidden;line-height:38px;color:#007aff;text-align:center;text-overflow:ellipsis;white-space:nowrap;border-color:#007aff;border-left:1px solid #007aff;-webkit-transition:background-color .1s linear;transition:background-color .1s linear}.mui-segmented-control .mui-control-item:first-child{border-left-width:0}.mui-segmented-control .mui-control-item.mui-active{color:#fff;background-color:#007aff}.mui-segmented-control.mui-segmented-control-inverted{width:100%;border:0;border-radius:0}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item{color:inherit;border:0}.mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{color:#007aff;background:0 0;border-bottom:2px solid #007aff}.mui-segmented-control.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#007aff}.mui-segmented-control-positive{border:1px solid #4cd964}.mui-segmented-control-positive .mui-control-item{color:#4cd964;border-color:inherit}.mui-segmented-control-positive .mui-control-item.mui-active{color:#fff;background-color:#4cd964}.mui-segmented-control-positive.mui-segmented-control-inverted .mui-control-item.mui-active{color:#4cd964;background:0 0;border-bottom:2px solid #4cd964}.mui-segmented-control-positive.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#4cd964}.mui-segmented-control-negative{border:1px solid #dd524d}.mui-segmented-control-negative .mui-control-item{color:#dd524d;border-color:inherit}.mui-segmented-control-negative .mui-control-item.mui-active{color:#fff;background-color:#dd524d}.mui-segmented-control-negative.mui-segmented-control-inverted .mui-control-item.mui-active{color:#dd524d;background:0 0;border-bottom:2px solid #dd524d}.mui-segmented-control-negative.mui-segmented-control-inverted~.mui-slider-progress-bar{background-color:#dd524d}.mui-control-content{position:relative;display:none}.mui-control-content.mui-active{display:block}.mui-popover{position:absolute;z-index:999;display:none;width:280px;background-color:rgba(247,247,247,.98);border-radius:7px;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1);opacity:0;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none}.mui-popover .mui-popover-arrow{position:absolute;top:-25px;left:0;z-index:1000;width:26px;height:26px;overflow:hidden}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';background:rgba(247,247,247,.98);border-radius:3px;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.mui-popover .mui-popover-arrow.mui-bottom{top:100%;left:-26px;margin-top:-1px}.mui-popover .mui-popover-arrow.mui-bottom:after{top:-19px;left:0}.mui-popover.mui-popover-action{bottom:0;width:100%;background:0 0;border-radius:0;-webkit-box-shadow:none;box-shadow:none;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-active{-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-popover.mui-popover-action .mui-table-view{margin:8px;color:#007aff;text-align:center;border-radius:4px}.mui-popover.mui-popover-action .mui-table-view .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';background-color:#c8c7cc;-webkit-transform:scaleY(.5);transform:scaleY(.5)}.mui-popover.mui-popover-action .mui-table-view small{display:block;font-weight:400;line-height:1.3}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:998;background-color:rgba(0,0,0,.3)}.mui-bar-backdrop.mui-backdrop{bottom:50px;background:0 0}.mui-backdrop-action.mui-backdrop{background-color:rgba(0,0,0,.3)}.mui-backdrop-action.mui-backdrop,.mui-bar-backdrop.mui-backdrop{opacity:0}.mui-backdrop-action.mui-backdrop.mui-active,.mui-bar-backdrop.mui-backdrop.mui-active{opacity:1;-webkit-transition:all .4s ease;transition:all .4s ease}.mui-popover .mui-btn-block{margin-bottom:5px}.mui-popover .mui-btn-block:last-child{margin-bottom:0}.mui-popover .mui-bar{-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-bar-nav{border-bottom:1px solid rgba(0,0,0,.15);border-top-left-radius:12px;border-top-right-radius:12px;-webkit-box-shadow:none;box-shadow:none}.mui-popover .mui-scroll-wrapper{margin:7px 0;background-clip:padding-box;border-radius:7px}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{max-height:300px;margin-bottom:0;overflow:auto;-webkit-overflow-scrolling:touch;background-color:rgba(247,247,247,.98);background-image:none;border-radius:7px}.mui-popover .mui-table-view:after,.mui-popover .mui-table-view:before{height:0}.mui-popover .mui-table-view .mui-table-view-cell:first-child,.mui-popover .mui-table-view .mui-table-view-cell:first-child>a:not(.mui-btn){border-top-left-radius:12px;border-top-right-radius:12px}.mui-popover .mui-table-view .mui-table-view-cell:last-child,.mui-popover .mui-table-view .mui-table-view-cell:last-child>a:not(.mui-btn){border-bottom-right-radius:12px;border-bottom-left-radius:12px}.mui-popover.mui-bar-popover .mui-table-view{width:106px}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell{padding:11px 15px;background-position:0 100%}.mui-popover.mui-bar-popover .mui-table-view .mui-table-view-cell>a:not(.mui-btn){margin:-11px -15px -11px -15px}.mui-pagination{display:inline-block;padding-left:0;margin:0 auto;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.428571429;color:#007aff;text-decoration:none;background-color:#fff;border:1px solid #ddd}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;background-clip:padding-box;border-top-left-radius:6px;border-bottom-left-radius:6px}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{background-clip:padding-box;border-top-right-radius:6px;border-bottom-right-radius:6px}.mui-pagination>li.mui-active>a,.mui-pagination>li.mui-active>a:active,.mui-pagination>li.mui-active>span,.mui-pagination>li.mui-active>span:active,.mui-pagination>li:active>a,.mui-pagination>li:active>a:active,.mui-pagination>li:active>span,.mui-pagination>li:active>span:active{z-index:2;color:#fff;cursor:default;background-color:#007aff;border-color:#007aff}.mui-pagination>li.mui-disabled>a,.mui-pagination>li.mui-disabled>a:active,.mui-pagination>li.mui-disabled>span,.mui-pagination>li.mui-disabled>span:active{color:#777;background-color:#fff;border:1px solid #ddd;opacity:.6}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{padding:10px 16px;font-size:18px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{padding:5px 10px;font-size:12px}.mui-pager{padding-left:0;text-align:center;list-style:none}.mui-pager:after,.mui-pager:before{display:table;content:" "}.mui-pager:after{clear:both}.mui-pager li{display:inline}.mui-pager li>a,.mui-pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;background-clip:padding-box;border:1px solid #ddd;border-radius:6px}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{color:#fff;text-decoration:none;cursor:default;background-color:#007aff;border-color:#007aff}.mui-pager .mui-next>a,.mui-pager .mui-next>span{float:right}.mui-pager .mui-previous>a,.mui-pager .mui-previous>span{float:left}.mui-pager .mui-disabled>a,.mui-pager .mui-disabled>a:active,.mui-pager .mui-disabled>span,.mui-pager .mui-disabled>span:active{color:#777;background-color:#fff;border:1px solid #ddd;opacity:.6}.mui-modal{position:fixed;top:0;z-index:999;width:100%;min-height:100%;overflow:hidden;background-color:#fff;opacity:0;-webkit-transition:-webkit-transform .25s,opacity 1ms .25s;transition:transform .25s,opacity 1ms .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0)}.mui-modal.mui-active{height:100%;opacity:1;-webkit-transition:-webkit-transform .25s;transition:transform .25s;-webkit-transition-timing-function:cubic-bezier(.1,.5,.1,1);transition-timing-function:cubic-bezier(.1,.5,.1,1);-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;width:100%;overflow:hidden}.mui-slider .mui-segmented-control.mui-segmented-control-inverted .mui-control-item.mui-active{border-bottom:0}.mui-slider .mui-segmented-control.mui-segmented-control-inverted~.mui-slider-group .mui-slider-item{border-top:1px solid #c8c7cc;border-bottom:1px solid #c8c7cc}.mui-slider .mui-slider-group{position:relative;font-size:0;white-space:nowrap;-webkit-transition:all 0s linear;transition:all 0s linear}.mui-slider .mui-slider-group .mui-slider-item{position:relative;display:inline-block;width:100%;height:100%;font-size:14px;vertical-align:top}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){position:relative;display:block;line-height:0}.mui-slider .mui-slider-group .mui-slider-item img{width:100%}.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:after,.mui-slider .mui-slider-group .mui-slider-item .mui-table-view:before{height:0}.mui-slider .mui-slider-group.mui-slider-loop{-webkit-transform:translate(-100%,0);transform:translate(-100%,0)}.mui-slider-title{position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;line-height:30px;text-align:left;text-indent:12px;background-color:#000;opacity:.8}.mui-slider-indicator{position:absolute;bottom:8px;width:100%;text-align:center;background:0 0}.mui-slider-indicator.mui-segmented-control{position:relative;bottom:auto}.mui-slider-indicator .mui-indicator{display:inline-block;width:6px;height:6px;margin:1px 6px;cursor:pointer;background:#aaa;border-radius:50%;-webkit-box-shadow:0 0 1px 1px rgba(130,130,130,.7);box-shadow:0 0 1px 1px rgba(130,130,130,.7)}.mui-slider-indicator .mui-active.mui-indicator{background:#fff}.mui-slider-indicator .mui-icon{width:40px;height:30px;margin:3px;font-size:20px;line-height:30px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{display:inline-block;width:58px;line-height:32px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0);-webkit-backface-visibility:hidden}.mui-switch{position:relative;display:block;width:74px;height:30px;background-color:#fff;background-clip:padding-box;border:2px solid #ddd;border-radius:20px;-webkit-transition-timing-function:ease-in-out;transition-timing-function:ease-in-out;-webkit-transition-duration:.2s;transition-duration:.2s;-webkit-transition-property:background-color,border;transition-property:background-color,border}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;top:-1px;left:-1px;z-index:1;width:28px;height:28px;background-color:#fff;background-clip:padding-box;border-radius:16px;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4);-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left}.mui-switch:before{position:absolute;top:3px;right:11px;font-size:13px;color:#999;text-transform:uppercase;content:"Off"}.mui-switch.mui-dragging{background-color:rgba(247,247,247,.98);border-color:rgba(247,247,247,.98)}.mui-switch.mui-dragging .mui-switch-handle{width:38px}.mui-switch.mui-dragging.mui-active .mui-switch-handle{left:-11px;width:38px}.mui-switch.mui-active{background-color:#4cd964;border-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate3d(43px,0,0);transform:translate3d(43px,0,0)}.mui-switch.mui-active:before{right:auto;left:15px;color:#fff;content:"On"}.mui-switch input[type=checkbox]{display:none}.mui-switch-mini{width:47px}.mui-switch-mini:before{display:none}.mui-switch-mini.mui-active .mui-switch-handle{-webkit-transform:translate3d(16px,0,0);transform:translate3d(16px,0,0)}.mui-switch-blue.mui-active{background-color:#007aff;border:2px solid #007aff}.mui-content.mui-fade{left:0;opacity:0}.mui-content.mui-fade.mui-in{opacity:1}.mui-content.mui-sliding{z-index:2;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}.mui-content.mui-sliding.mui-left{z-index:1;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.mui-content.mui-sliding.mui-right{z-index:3;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.mui-navigate-left:after,.mui-navigate-right:after,.mui-push-left:after,.mui-push-right:after{position:absolute;top:50%;display:inline-block;font-family:Muiicons;font-size:inherit;line-height:1;color:#bbb;text-decoration:none;-webkit-transform:translateY(-50%);transform:translateY(-50%);-webkit-font-smoothing:antialiased}.mui-navigate-left:after,.mui-push-left:after{left:15px;content:'\e582'}.mui-navigate-right:after,.mui-push-right:after{right:15px;content:'\e583'}.mui-pull-bottom-pocket,.mui-pull-top-pocket{position:absolute;left:0;display:block;width:100%;height:50px;overflow:hidden;visibility:hidden}.mui-plus-pullrefresh .mui-pull-bottom-pocket,.mui-plus-pullrefresh .mui-pull-top-pocket{display:none;visibility:visible}.mui-pull-top-pocket{top:0}.mui-bar-nav~.mui-content .mui-pull-top-pocket{top:44px}.mui-bar-nav~.mui-bar-header-secondary~.mui-content .mui-pull-top-pocket{top:88px}.mui-pull-bottom-pocket{position:relative;bottom:0;height:40px}.mui-pull-bottom-pocket .mui-pull-loading{visibility:hidden}.mui-pull-bottom-pocket .mui-pull-loading.mui-in{display:inline-block}.mui-pull{position:absolute;right:0;bottom:10px;left:0;font-weight:700;color:#777;text-align:center}.mui-pull-loading{margin-right:10px;vertical-align:middle;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-backface-visibility:hidden}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{position:relative;display:inline-block;margin-top:0;overflow:visible;font-size:15px;line-height:24px;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{position:fixed;bottom:50px;z-index:9999;width:100%}.mui-toast-message{width:270px;padding:5px;margin:5px auto;font-size:14px;color:#000;text-align:center;background-color:#d8d8d8;border-radius:7px}@font-face{font-family:Muiicons;font-style:normal;font-weight:400;src:url(../fonts/mui.ttf) format("truetype")}.mui-icon{display:inline-block;font-family:Muiicons;font-size:24px;font-style:normal;font-weight:400;line-height:1;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-right:before{float:right;padding-left:.2em}.mui-icon-contact:before{content:"\e100"}.mui-icon-person:before{content:"\e101"}.mui-icon-personadd:before{content:"\e102"}.mui-icon-contact-filled:before{content:"\e130"}.mui-icon-person-filled:before{content:"\e131"}.mui-icon-personadd-filled:before{content:"\e132"}.mui-icon-phone:before{content:"\e200"}.mui-icon-email:before{content:"\e201"}.mui-icon-chatbubble:before{content:"\e202"}.mui-icon-chatboxes:before{content:"\e203"}.mui-icon-phone-filled:before{content:"\e230"}.mui-icon-email-filled:before{content:"\e231"}.mui-icon-chatbubble-filled:before{content:"\e232"}.mui-icon-chatboxes-filled:before{content:"\e233"}.mui-icon-weibo:before{content:"\e260"}.mui-icon-weixin:before{content:"\e261"}.mui-icon-pengyouquan:before{content:"\e262"}.mui-icon-chat:before{content:"\e263"}.mui-icon-videocam:before{content:"\e300"}.mui-icon-camera:before{content:"\e301"}.mui-icon-mic:before{content:"\e302"}.mui-icon-location:before{content:"\e303"}.mui-icon-mic-filled:before,.mui-icon-speech:before{content:"\e332"}.mui-icon-location-filled:before{content:"\e333"}.mui-icon-micoff:before{content:"\e360"}.mui-icon-image:before{content:"\e363"}.mui-icon-map:before{content:"\e364"}.mui-icon-compose:before{content:"\e400"}.mui-icon-trash:before{content:"\e401"}.mui-icon-upload:before{content:"\e402"}.mui-icon-download:before{content:"\e403"}.mui-icon-close:before{content:"\e404"}.mui-icon-redo:before{content:"\e405"}.mui-icon-undo:before{content:"\e406"}.mui-icon-refresh:before{content:"\e407"}.mui-icon-star:before{content:"\e408"}.mui-icon-plus:before{content:"\e409"}.mui-icon-minus:before{content:"\e410"}.mui-icon-checkbox:before,.mui-icon-circle:before{content:"\e411"}.mui-icon-clear:before,.mui-icon-close-filled:before{content:"\e434"}.mui-icon-refresh-filled:before{content:"\e437"}.mui-icon-star-filled:before{content:"\e438"}.mui-icon-plus-filled:before{content:"\e439"}.mui-icon-minus-filled:before{content:"\e440"}.mui-icon-circle-filled:before{content:"\e441"}.mui-icon-checkbox-filled:before{content:"\e442"}.mui-icon-closeempty:before{content:"\e460"}.mui-icon-refreshempty:before{content:"\e461"}.mui-icon-reload:before{content:"\e462"}.mui-icon-starhalf:before{content:"\e463"}.mui-icon-spinner:before{content:"\e464"}.mui-icon-spinner-cycle:before{content:"\e465"}.mui-icon-search:before{content:"\e466"}.mui-icon-plusempty:before{content:"\e468"}.mui-icon-forward:before{content:"\e470"}.mui-icon-back:before,.mui-icon-left-nav:before{content:"\e471"}.mui-icon-checkmarkempty:before{content:"\e472"}.mui-icon-home:before{content:"\e500"}.mui-icon-navigate:before{content:"\e501"}.mui-icon-gear:before{content:"\e502"}.mui-icon-paperplane:before{content:"\e503"}.mui-icon-info:before{content:"\e504"}.mui-icon-help:before{content:"\e505"}.mui-icon-locked:before{content:"\e506"}.mui-icon-more:before{content:"\e507"}.mui-icon-flag:before{content:"\e508"}.mui-icon-home-filled:before{content:"\e530"}.mui-icon-gear-filled:before{content:"\e532"}.mui-icon-info-filled:before{content:"\e534"}.mui-icon-help-filled:before{content:"\e535"}.mui-icon-more-filled:before{content:"\e537"}.mui-icon-settings:before{content:"\e560"}.mui-icon-list:before{content:"\e562"}.mui-icon-bars:before{content:"\e563"}.mui-icon-loop:before{content:"\e565"}.mui-icon-paperclip:before{content:"\e567"}.mui-icon-arrowup:before{content:"\e580"}.mui-icon-arrowdown:before{content:"\e581"}.mui-icon-arrowleft:before{content:"\e582"}.mui-icon-arrowright:before{content:"\e583"}.mui-icon-arrowthinup:before{content:"\e584"}.mui-icon-arrowthindown:before{content:"\e585"}.mui-icon-arrowthinleft:before{content:"\e586"}.mui-icon-arrowthinright:before{content:"\e587"}.mui-icon-pulldown:before{content:"\e588"}.mui-fullscreen{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.mui-fullscreen .mui-slider-group{height:100%}.mui-fullscreen .mui-segmented-control~.mui-slider-group{position:absolute;top:40px;bottom:0;width:100%;height:auto}.mui-fullscreen .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-bar-tab~.mui-content .mui-slider.mui-fullscreen .mui-segmented-control~.mui-slider-group{bottom:50px}.mui-android.mui-android-4-0 input:focus,.mui-android.mui-android-4-0 textarea:focus{-webkit-user-modify:inherit}
\ No newline at end of file
diff --git a/examples/login/css/style.css b/examples/login/css/style.css
new file mode 100644
index 00000000..f76e53c9
--- /dev/null
+++ b/examples/login/css/style.css
@@ -0,0 +1,8 @@
+.ui-page-login,
+body {
+ width: 100%;
+ height: 100%;
+ margin: 0px;
+ padding: 0px;
+}
+.mui-content{height: 100%;}
diff --git a/examples/login/fonts/mui.ttf b/examples/login/fonts/mui.ttf
new file mode 100644
index 00000000..eced387e
Binary files /dev/null and b/examples/login/fonts/mui.ttf differ
diff --git a/examples/login/images/icon100.png b/examples/login/images/icon100.png
new file mode 100644
index 00000000..8a91df09
Binary files /dev/null and b/examples/login/images/icon100.png differ
diff --git a/examples/login/images/user-photo.png b/examples/login/images/user-photo.png
new file mode 100644
index 00000000..051b92ea
Binary files /dev/null and b/examples/login/images/user-photo.png differ
diff --git a/examples/login/index.html b/examples/login/index.html
new file mode 100644
index 00000000..3cbf5eb9
--- /dev/null
+++ b/examples/login/index.html
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 正在启动应用...
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/examples/login/js/app.js b/examples/login/js/app.js
new file mode 100644
index 00000000..97d28245
--- /dev/null
+++ b/examples/login/js/app.js
@@ -0,0 +1,57 @@
+(function($, owner) {
+ owner.login = function(loginInfo, callback) {
+ callback = callback || $.noop;
+ loginInfo = loginInfo || {};
+ loginInfo.account = loginInfo.account || '';
+ loginInfo.password = loginInfo.password || '';
+ var users = JSON.parse(localStorage.getItem('$users') || '[]');
+ var authed = users.some(function(user) {
+ return loginInfo.account == user.account && loginInfo.password == user.password;
+ });
+ if (authed) {
+ var state = owner.getState();
+ state.account = loginInfo.account;
+ state.token = "token123456789";
+ owner.setState(state);
+ return callback();
+ } else {
+ return callback('用户名或密码错误');
+ }
+ };
+ owner.reg = function(regInfo, callback) {
+ callback = callback || $.noop;
+ regInfo = regInfo || {};
+ regInfo.account = regInfo.account || '';
+ regInfo.password = regInfo.password || '';
+ if (regInfo.account.length < 5) {
+ return callback('用户名最短需要 5 个字符');
+ }
+ if (regInfo.password.length < 6) {
+ return callback('密码最短需要 6 个字符');
+ }
+ var users = JSON.parse(localStorage.getItem('$users') || '[]');
+ users.push(regInfo);
+ localStorage.setItem('$users', JSON.stringify(users));
+ return callback();
+ };
+
+ owner.getState = function() {
+ var stateText = localStorage.getItem('$state') || "{}";
+ return JSON.parse(stateText);
+ };
+ owner.setState = function(state) {
+ state = state || {};
+ localStorage.setItem('$state', JSON.stringify(state));
+ var settings = owner.getSettings();
+ settings.gestures = '';
+ owner.setSettings(settings);
+ };
+ owner.setSettings = function(settings) {
+ settings = settings || {};
+ localStorage.setItem('$settings', JSON.stringify(settings));
+ }
+ owner.getSettings = function() {
+ var settingsText = localStorage.getItem('$settings') || "{}";
+ return JSON.parse(settingsText);
+ }
+}(mui, window.app = {}));
\ No newline at end of file
diff --git a/examples/login/js/mui.js b/examples/login/js/mui.js
new file mode 100644
index 00000000..f9488c4c
--- /dev/null
+++ b/examples/login/js/mui.js
@@ -0,0 +1,5988 @@
+/*!
+ * =====================================================
+ * Mui v1.2.0 (https://github.com/dcloudio/mui)
+ * =====================================================
+ */
+/**
+ * MUI核心JS
+ * @type _L4.$|Function
+ */
+var mui = (function(document, undefined) {
+ var readyRE = /complete|loaded|interactive/;
+ var idSelectorRE = /^#([\w-]+)$/;
+ var classSelectorRE = /^\.([\w-]+)$/;
+ var tagSelectorRE = /^[\w-]+$/;
+ var translateRE = /translate(?:3d)?\((.+?)\)/;
+ var translateMatrixRE = /matrix(3d)?\((.+?)\)/;
+
+ var $ = function(selector, context) {
+ context = context || document;
+ if (!selector)
+ return wrap();
+ if (typeof selector === 'object')
+ return wrap([selector], null);
+ if (typeof selector === 'function')
+ return $.ready(selector);
+ if (typeof selector === 'string') {
+ try {
+ selector = selector.trim();
+ if (idSelectorRE.test(selector)) {
+ var found = document.getElementById(RegExp.$1);
+ return wrap(found ? [found] : []);
+ }
+ return wrap($.qsa(selector, context), selector);
+ } catch (e) {}
+ }
+ return wrap();
+ };
+
+ var wrap = function(dom, selector) {
+ dom = dom || [];
+ Object.setPrototypeOf(dom, $.fn);
+ dom.selector = selector || '';
+ return dom;
+ };
+
+ $.uuid = 0;
+
+ $.data = {};
+ /**
+ * extend(simple)
+ * @param {type} target
+ * @param {type} source
+ * @param {type} deep
+ * @returns {unresolved}
+ */
+ $.extend = function() { //from jquery2
+ var options, name, src, copy, copyIsArray, clone,
+ target = arguments[0] || {},
+ i = 1,
+ length = arguments.length,
+ deep = false;
+
+ if (typeof target === "boolean") {
+ deep = target;
+
+ target = arguments[i] || {};
+ i++;
+ }
+
+ if (typeof target !== "object" && !$.isFunction(target)) {
+ target = {};
+ }
+
+ if (i === length) {
+ target = this;
+ i--;
+ }
+
+ for (; i < length; i++) {
+ if ((options = arguments[i]) != null) {
+ for (name in options) {
+ src = target[name];
+ copy = options[name];
+
+ if (target === copy) {
+ continue;
+ }
+
+ if (deep && copy && ($.isPlainObject(copy) || (copyIsArray = $.isArray(copy)))) {
+ if (copyIsArray) {
+ copyIsArray = false;
+ clone = src && $.isArray(src) ? src : [];
+
+ } else {
+ clone = src && $.isPlainObject(src) ? src : {};
+ }
+
+ target[name] = $.extend(deep, clone, copy);
+
+ } else if (copy !== undefined) {
+ target[name] = copy;
+ }
+ }
+ }
+ }
+
+ return target;
+ };
+ /**
+ * mui noop(function)
+ */
+ $.noop = function() {};
+ /**
+ * mui slice(array)
+ */
+ $.slice = [].slice;
+
+ $.type = function(obj) {
+ return obj == null ? String(obj) : class2type[{}.toString.call(obj)] || "object";
+ };
+ /**
+ * mui isArray
+ */
+ $.isArray = Array.isArray ||
+ function(object) {
+ return object instanceof Array;
+ };
+ /**
+ * mui isWindow(需考虑obj为undefined的情况)
+ */
+ $.isWindow = function(obj) {
+ return obj != null && obj === obj.window;
+ };
+ /**
+ * mui isObject
+ */
+ $.isObject = function(obj) {
+ return $.type(obj) === "object";
+ };
+ /**
+ * mui isPlainObject
+ */
+ $.isPlainObject = function(obj) {
+ return $.isObject(obj) && !$.isWindow(obj) && Object.getPrototypeOf(obj) === Object.prototype;
+ };
+ /**
+ * mui isFunction
+ */
+ $.isFunction = function(value) {
+ return $.type(value) === "function";
+ };
+ /**
+ * mui querySelectorAll
+ * @param {type} selector
+ * @param {type} context
+ * @returns {Array}
+ */
+ $.qsa = function(selector, context) {
+ context = context || document;
+ return $.slice.call(classSelectorRE.test(selector) ? context.getElementsByClassName(RegExp.$1) : tagSelectorRE.test(selector) ? context.getElementsByTagName(selector) : context.querySelectorAll(selector));
+ };
+ /**
+ * ready(DOMContentLoaded)
+ * @param {type} callback
+ * @returns {_L6.$}
+ */
+ $.ready = function(callback) {
+ if (readyRE.test(document.readyState)) {
+ callback($);
+ } else {
+ document.addEventListener('DOMContentLoaded', function() {
+ callback($);
+ }, false);
+ }
+ return this;
+ };
+ /**
+ * map
+ */
+ $.map = function(elements, callback) {
+ var value, values = [],
+ i, key;
+ if (typeof elements.length === 'number') { //TODO 此处逻辑不严谨,可能会有Object:{a:'b',length:1}的情况未处理
+ for (i = 0, len = elements.length; i < len; i++) {
+ value = callback(elements[i], i);
+ if (value != null) values.push(value);
+ }
+ } else {
+ for (key in elements) {
+ value = callback(elements[key], key);
+ if (value != null) values.push(value);
+ }
+ }
+ return values.length > 0 ? [].concat.apply([], values) : values;
+ };
+ /**
+ * each
+ * @param {type} elements
+ * @param {type} callback
+ * @returns {_L8.$}
+ */
+ $.each = function(elements, callback) {
+ if (!elements) {
+ return this;
+ }
+ if (typeof elements.length === 'number') {
+ [].every.call(elements, function(el, idx) {
+ return callback.call(el, idx, el) !== false;
+ });
+ } else {
+ for (var key in elements) {
+ if (callback.call(elements[key], key, elements[key]) === false) return elements;
+ }
+ }
+ return this;
+ };
+ $.focus = function(element) {
+ if ($.os.ios) {
+ setTimeout(function() {
+ element.focus();
+ }, 10);
+ } else {
+ element.focus();
+ }
+ };
+ /**
+ * trigger event
+ * @param {type} element
+ * @param {type} eventType
+ * @param {type} eventData
+ * @returns {_L8.$}
+ */
+ $.trigger = function(element, eventType, eventData) {
+ element.dispatchEvent(new CustomEvent(eventType, {
+ detail: eventData,
+ bubbles: true,
+ cancelable: true
+ }));
+ return this;
+ };
+ /**
+ * getStyles
+ * @param {type} element
+ * @param {type} property
+ * @returns {styles}
+ */
+ $.getStyles = function(element, property) {
+ var styles = element.ownerDocument.defaultView.getComputedStyle(element, null);
+ if (property) {
+ return styles.getPropertyValue(property) || styles[property];
+ }
+ return styles;
+ };
+ /**
+ * parseTranslate
+ * @param {type} translateString
+ * @param {type} position
+ * @returns {Object}
+ */
+ $.parseTranslate = function(translateString, position) {
+ var result = translateString.match(translateRE || '');
+ if (!result || !result[1]) {
+ result = ['', '0,0,0'];
+ }
+ result = result[1].split(",");
+ result = {
+ x: parseFloat(result[0]),
+ y: parseFloat(result[1]),
+ z: parseFloat(result[2])
+ };
+ if (position && result.hasOwnProperty(position)) {
+ return result[position];
+ }
+ return result;
+ };
+ /**
+ * parseTranslateMatrix
+ * @param {type} translateString
+ * @param {type} position
+ * @returns {Object}
+ */
+ $.parseTranslateMatrix = function(translateString, position) {
+ var matrix = translateString.match(translateMatrixRE);
+ var is3D = matrix && matrix[1];
+ if (matrix) {
+ matrix = matrix[2].split(",");
+ if (is3D === "3d")
+ matrix = matrix.slice(12, 15);
+ else {
+ matrix.push(0);
+ matrix = matrix.slice(4, 7);
+ }
+ } else {
+ matrix = [0, 0, 0];
+ }
+ var result = {
+ x: parseFloat(matrix[0]),
+ y: parseFloat(matrix[1]),
+ z: parseFloat(matrix[2])
+ };
+ if (position && result.hasOwnProperty(position)) {
+ return result[position];
+ }
+ return result;
+ };
+
+ $.registerHandler = function(type, handler) {
+ var handlers = $[type];
+ if (!handlers) {
+ handlers = [];
+ }
+ handler.index = handler.index || 1000;
+ handlers.push(handler);
+ handlers.sort(function(a, b) {
+ return a.index - b.index;
+ });
+ $[type] = handlers;
+ return $[type];
+ };
+ var class2type = {};
+ $.each(['Boolean', 'Number', 'String', 'Function', 'Array', 'Date', 'RegExp', 'Object', 'Error'], function(i, name) {
+ class2type["[object " + name + "]"] = name.toLowerCase();
+ });
+ if (window.JSON) {
+ $.parseJSON = JSON.parse;
+ }
+ /**
+ * $.fn
+ */
+ $.fn = {
+ each: function(callback) {
+ [].every.call(this, function(el, idx) {
+ return callback.call(el, idx, el) !== false;
+ });
+ return this;
+ }
+ };
+ return $;
+})(document);
+//window.mui = mui;
+//'$' in window || (window.$ = mui);
+/**
+ * $.os
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($, window) {
+ function detect(ua) {
+ this.os = {};
+ var funcs = [
+
+ function() { //android
+ var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/);
+ if (android) {
+ this.os.android = true;
+ this.os.version = android[2];
+
+ this.os.isBadAndroid = !(/Chrome\/\d/.test(window.navigator.appVersion));
+ }
+ return this.os.android === true;
+ },
+ function() { //ios
+ var iphone = ua.match(/(iPhone\sOS)\s([\d_]+)/);
+ if (iphone) { //iphone
+ this.os.ios = this.os.iphone = true;
+ this.os.version = iphone[2].replace(/_/g, '.');
+ } else {
+ var ipad = ua.match(/(iPad).*OS\s([\d_]+)/);
+ if (ipad) { //ipad
+ this.os.ios = this.os.ipad = true;
+ this.os.version = ipad[2].replace(/_/g, '.');
+ }
+ }
+ return this.os.ios === true;
+ }
+ ];
+ [].every.call(funcs, function(func) {
+ return !func.call($);
+ });
+ }
+ detect.call($, navigator.userAgent);
+})(mui, window);
+/**
+ * $.os.plus
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($) {
+ function detect(ua) {
+ this.os = this.os || {};
+ var plus = ua.match(/Html5Plus/i);//TODO 5\+Browser?
+ if (plus) {
+ this.os.plus = true;
+ }
+ }
+ detect.call($, navigator.userAgent);
+})(mui);
+
+/**
+ * mui target(action>popover>modal>tab>toggle)
+ */
+(function($, window, document) {
+ /**
+ * targets
+ */
+ $.targets = {};
+ /**
+ * target handles
+ */
+ $.targetHandles = [];
+ /**
+ * register target
+ * @param {type} target
+ * @returns {$.targets}
+ */
+ $.registerTarget = function(target) {
+
+ target.index = target.index || 1000;
+
+ $.targetHandles.push(target);
+
+ $.targetHandles.sort(function(a, b) {
+ return a.index - b.index;
+ });
+
+ return $.targetHandles;
+ };
+ window.addEventListener('touchstart', function(event) {
+ var target = event.target;
+ var founds = {};
+ for (; target && target !== document; target = target.parentNode) {
+ var isFound = false;
+ $.each($.targetHandles, function(index, targetHandle) {
+ var name = targetHandle.name;
+ if (!isFound && !founds[name] && targetHandle.hasOwnProperty('handle')) {
+ $.targets[name] = targetHandle.handle(event, target);
+ if ($.targets[name]) {
+ founds[name] = true;
+ if (targetHandle.isContinue !== true) {
+ isFound = true;
+ }
+ }
+ } else {
+ if (!founds[name]) {
+ if (targetHandle.isReset !== false)
+ $.targets[name] = false;
+ }
+ }
+ });
+ if (isFound) {
+ break;
+ }
+ }
+
+ });
+})(mui, window, document);
+
+/**
+ * fixed trim
+ * @param {type} undefined
+ * @returns {undefined}
+ */
+(function(undefined) {
+ if (String.prototype.trim === undefined) { // fix for iOS 3.2
+ String.prototype.trim = function() {
+ return this.replace(/^\s+|\s+$/g, '');
+ };
+ }
+ Object.setPrototypeOf = Object.setPrototypeOf || function(obj, proto) {
+ obj['__proto__'] = proto;
+ return obj;
+ };
+
+})();
+/**
+ * fixed CustomEvent
+ */
+(function() {
+ if (typeof window.CustomEvent === 'undefined') {
+ function CustomEvent(event, params) {
+ params = params || {
+ bubbles: false,
+ cancelable: false,
+ detail: undefined
+ };
+ var evt = document.createEvent('Events');
+ var bubbles = true;
+ for (var name in params) {
+ (name === 'bubbles') ? (bubbles = !!params[name]) : (evt[name] = params[name]);
+ }
+ evt.initEvent(event, bubbles, true);
+ return evt;
+ };
+ CustomEvent.prototype = window.Event.prototype;
+ window.CustomEvent = CustomEvent;
+ }
+})();
+/**
+ * mui fixed classList
+ * @param {type} document
+ * @returns {undefined}
+ */
+(function(document) {
+ if (!("classList" in document.documentElement) && Object.defineProperty && typeof HTMLElement !== 'undefined') {
+
+ Object.defineProperty(HTMLElement.prototype, 'classList', {
+ get: function() {
+ var self = this;
+ function update(fn) {
+ return function(value) {
+ var classes = self.className.split(/\s+/),
+ index = classes.indexOf(value);
+
+ fn(classes, index, value);
+ self.className = classes.join(" ");
+ };
+ }
+
+ var ret = {
+ add: update(function(classes, index, value) {
+ ~index || classes.push(value);
+ }),
+ remove: update(function(classes, index) {
+ ~index && classes.splice(index, 1);
+ }),
+ toggle: update(function(classes, index, value) {
+ ~index ? classes.splice(index, 1) : classes.push(value);
+ }),
+ contains: function(value) {
+ return !!~self.className.split(/\s+/).indexOf(value);
+ },
+ item: function(i) {
+ return self.className.split(/\s+/)[i] || null;
+ }
+ };
+
+ Object.defineProperty(ret, 'length', {
+ get: function() {
+ return self.className.split(/\s+/).length;
+ }
+ });
+
+ return ret;
+ }
+ });
+ }
+})(document);
+
+/**
+ * mui fixed requestAnimationFrame
+ * @param {type} window
+ * @returns {undefined}
+ */
+(function(window) {
+ if (!window.requestAnimationFrame) {
+ var lastTime = 0;
+ window.requestAnimationFrame = window.webkitRequestAnimationFrame || function(callback, element) {
+ var currTime = new Date().getTime();
+ var timeToCall = Math.max(0, 16.7 - (currTime - lastTime));
+ var id = window.setTimeout(function() {
+ callback(currTime + timeToCall);
+ }, timeToCall);
+ lastTime = currTime + timeToCall;
+ return id;
+ };
+ window.cancelAnimationFrame = window.webkitCancelAnimationFrame || window.webkitCancelRequestAnimationFrame || function(id) {
+ clearTimeout(id);
+ };
+ };
+}(window));
+/**
+ * fastclick(only for radio,checkbox)
+ */
+(function($, window, name) {
+ if (window.FastClick) {
+ return;
+ }
+
+ var handle = function(event, target) {
+ if (target.tagName === 'LABEL') {
+ if (target.parentNode) {
+ target = target.parentNode.querySelector('input');
+ }
+ }
+ if (target.type === 'radio' || target.type === 'checkbox') {
+ if (!target.disabled) { //disabled
+ return target;
+ }
+ }
+ return false;
+ };
+
+ $.registerTarget({
+ name: name,
+ index: 40,
+ handle: handle,
+ target: false
+ });
+ var dispatchEvent = function(event) {
+ var targetElement = $.targets.click;
+ if (targetElement) {
+ var clickEvent, touch;
+ // On some Android devices activeElement needs to be blurred otherwise the synthetic click will have no effect
+ if (document.activeElement && document.activeElement !== targetElement) {
+ document.activeElement.blur();
+ }
+ touch = event.detail.gesture.changedTouches[0];
+ // Synthesise a click event, with an extra attribute so it can be tracked
+ clickEvent = document.createEvent('MouseEvents');
+ clickEvent.initMouseEvent('click', true, true, window, 1, touch.screenX, touch.screenY, touch.clientX, touch.clientY, false, false, false, false, 0, null);
+ clickEvent.forwardedTouchEvent = true;
+ targetElement.dispatchEvent(clickEvent);
+ }
+ };
+ window.addEventListener('tap', dispatchEvent);
+ window.addEventListener('doubletap', dispatchEvent);
+ //捕获
+ window.addEventListener('click', function(event) {
+ if ($.targets.click) {
+ if (!event.forwardedTouchEvent) { //stop click
+ if (event.stopImmediatePropagation) {
+ event.stopImmediatePropagation();
+ } else {
+ // Part of the hack for browsers that don't support Event#stopImmediatePropagation
+ event.propagationStopped = true;
+ }
+ event.stopPropagation();
+ event.preventDefault();
+ return false;
+ }
+ }
+ }, true);
+
+})(mui, window, 'click');
+(function($, document) {
+ $(function() {
+ if (!$.os.ios) {
+ return;
+ }
+ var CLASS_FOCUSIN = 'mui-focusin';
+ var CLASS_BAR_TAB = 'mui-bar-tab';
+ var CLASS_BAR_FOOTER = 'mui-bar-footer';
+ var CLASS_BAR_FOOTER_SECONDARY = 'mui-bar-footer-secondary';
+ var CLASS_BAR_FOOTER_SECONDARY_TAB = 'mui-bar-footer-secondary-tab';
+ // var content = document.querySelector('.' + CLASS_CONTENT);
+ // if (content) {
+ // document.body.insertBefore(content, document.body.firstElementChild);
+ // }
+ document.addEventListener('focusin', function(e) {
+ if ($.os.plus) { //在父webview里边不fix
+ if (window.plus) {
+ if (plus.webview.currentWebview().children().length > 0) {
+ return;
+ }
+ }
+ }
+ var target = e.target;
+ if (target.tagName && target.tagName === 'INPUT' && target.type === 'text') {
+ document.body.classList.add(CLASS_FOCUSIN);
+ var isFooter = false;
+ for (; target && target !== document; target = target.parentNode) {
+ var classList = target.classList;
+ if (classList && classList.contains(CLASS_BAR_TAB) || classList.contains(CLASS_BAR_FOOTER) || classList.contains(CLASS_BAR_FOOTER_SECONDARY) || classList.contains(CLASS_BAR_FOOTER_SECONDARY_TAB)) {
+ isFooter = true;
+ break;
+ }
+ }
+ if (isFooter) {
+ var scrollTop = document.body.scrollHeight;
+ var scrollLeft = document.body.scrollLeft;
+ setTimeout(function() {
+ window.scrollTo(scrollLeft, scrollTop);
+ }, 20);
+ }
+ }
+ });
+ document.addEventListener('focusout', function(e) {
+ var classList = document.body.classList;
+ if (classList.contains(CLASS_FOCUSIN)) {
+ classList.remove(CLASS_FOCUSIN);
+ setTimeout(function() {
+ window.scrollTo(document.body.scrollLeft, document.body.scrollTop);
+ }, 20);
+ }
+ });
+ });
+})(mui, document);
+/**
+ * mui namespace(optimization)
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($) {
+ $.namespace = 'mui';
+ $.classNamePrefix = $.namespace + '-';
+ $.classSelectorPrefix = '.' + $.classNamePrefix;
+ /**
+ * 返回正确的className
+ * @param {type} className
+ * @returns {String}
+ */
+ $.className = function(className) {
+ return $.classNamePrefix + className;
+ };
+ /**
+ * 返回正确的classSelector
+ * @param {type} classSelector
+ * @returns {String}
+ */
+ $.classSelector = function(classSelector) {
+ return classSelector.replace(/\./g, $.classSelectorPrefix);
+ };
+ /**
+ * 返回正确的eventName
+ * @param {type} event
+ * @param {type} module
+ * @returns {String}
+ */
+ $.eventName = function(event, module) {
+ return event + ($.namespace ? ('.' + $.namespace) : '') + ( module ? ('.' + module) : '');
+ };
+})(mui);
+
+/**
+ * mui gestures
+ * @param {type} $
+ * @param {type} window
+ * @returns {undefined}
+ */
+(function($, window) {
+ $.EVENT_START = 'touchstart';
+ $.EVENT_MOVE = 'touchmove';
+ $.EVENT_END = 'touchend';
+ $.EVENT_CANCEL = 'touchcancel';
+ $.EVENT_CLICK = 'click';
+ /**
+ * Gesture preventDefault
+ * @param {type} e
+ * @returns {undefined}
+ */
+ $.preventDefault = function(e) {
+ e.preventDefault();
+ };
+ /**
+ * Gesture stopPropagation
+ * @param {type} e
+ * @returns {undefined}
+ */
+ $.stopPropagation = function(e) {
+ e.stopPropagation();
+ };
+
+ /**
+ * register gesture
+ * @param {type} gesture
+ * @returns {$.gestures}
+ */
+ $.registerGesture = function(gesture) {
+ return $.registerHandler('gestures', gesture);
+
+ };
+ /**
+ * distance
+ * @param {type} p1
+ * @param {type} p2
+ * @returns {Number}
+ */
+ var getDistance = function(p1, p2) {
+ var x = p2.x - p1.x;
+ var y = p2.y - p1.y;
+ return Math.sqrt((x * x) + (y * y));
+ };
+ /**
+ * angle
+ * @param {type} p1
+ * @param {type} p2
+ * @returns {Number}
+ */
+ var getAngle = function(p1, p2) {
+ return Math.atan2(p2.y - p1.y, p2.x - p1.x) * 180 / Math.PI;
+ };
+ /**
+ * direction
+ * @param {type} angle
+ * @returns {unresolved}
+ */
+ var getDirectionByAngle = function(angle) {
+ if (angle < -45 && angle > -135) {
+ return 'up';
+ } else if (angle >= 45 && angle < 135) {
+ return 'down';
+ } else if (angle >= 135 || angle <= -135) {
+ return 'left';
+ } else if (angle >= -45 && angle <= 45) {
+ return 'right';
+ }
+ return null;
+ };
+ /**
+ * detect gestures
+ * @param {type} event
+ * @param {type} touch
+ * @returns {undefined}
+ */
+ var detect = function(event, touch) {
+ if ($.gestures.stoped) {
+ return;
+ }
+ $.each($.gestures, function(index, gesture) {
+ if (!$.gestures.stoped) {
+ if ($.options.gestureConfig[gesture.name] !== false) {
+ gesture.handle(event, touch);
+ }
+ }
+ });
+ };
+ var detectTouchStart = function(event) {
+ $.gestures.stoped = false;
+ var now = Date.now();
+ var point = event.touches ? event.touches[0] : event;
+ $.gestures.touch = {
+ target: event.target,
+ lastTarget: ($.gestures.touch && $.gestures.touch.lastTarget ? $.gestures.touch.lastTarget : null),
+ startTime: now,
+ touchTime: 0,
+ flickStartTime: now,
+ lastTapTime: ($.gestures.touch && $.gestures.touch.lastTapTime ? $.gestures.touch.lastTapTime : 0),
+ start: {
+ x: point.pageX,
+ y: point.pageY
+ },
+ flickStart: {
+ x: point.pageX,
+ y: point.pageY
+ },
+ flickDistanceX: 0,
+ flickDistanceY: 0,
+ move: {
+ x: 0,
+ y: 0
+ },
+ deltaX: 0,
+ deltaY: 0,
+ lastDeltaX: 0,
+ lastDeltaY: 0,
+ angle: '',
+ direction: '',
+ lockDirection: false,
+ startDirection: '',
+ distance: 0,
+ drag: false,
+ swipe: false,
+ hold: false,
+ gesture: event
+ };
+
+ detect(event, $.gestures.touch);
+ };
+ var detectTouchMove = function(event) {
+ if ($.gestures.stoped) {
+ return;
+ }
+ var touch = $.gestures.touch;
+ if (event.target != touch.target) {
+ return;
+ }
+ var now = Date.now();
+ var point = event.touches ? event.touches[0] : event;
+ touch.touchTime = now - touch.startTime;
+ touch.move = {
+ x: point.pageX,
+ y: point.pageY
+ };
+ if (now - touch.flickStartTime > 300) {
+ touch.flickStartTime = now;
+ touch.flickStart = touch.move;
+ }
+ touch.distance = getDistance(touch.start, touch.move);
+ touch.angle = getAngle(touch.start, touch.move);
+ touch.direction = getDirectionByAngle(touch.angle);
+ touch.lastDeltaX = touch.deltaX;
+ touch.lastDeltaY = touch.deltaY;
+ touch.deltaX = touch.move.x - touch.start.x;
+ touch.deltaY = touch.move.y - touch.start.y;
+ touch.gesture = event;
+
+ detect(event, touch);
+ };
+ var detectTouchEnd = function(event) {
+ if ($.gestures.stoped) {
+ return;
+ }
+ var touch = $.gestures.touch;
+ if (event.target != touch.target) {
+ return;
+ }
+ var now = Date.now();
+ touch.touchTime = now - touch.startTime;
+ touch.flickTime = now - touch.flickStartTime;
+ touch.flickDistanceX = touch.move.x - touch.flickStart.x;
+ touch.flickDistanceY = touch.move.y - touch.flickStart.y;
+ touch.gesture = event;
+
+ detect(event, touch);
+ };
+
+ window.addEventListener($.EVENT_START, detectTouchStart);
+ window.addEventListener($.EVENT_MOVE, detectTouchMove);
+ window.addEventListener($.EVENT_END, detectTouchEnd);
+ window.addEventListener($.EVENT_CANCEL, detectTouchEnd);
+ //fixed hashchange(android)
+ window.addEventListener($.EVENT_CLICK, function(e) {
+ //TODO 应该判断当前target是不是在targets.popover内部,而不是非要相等
+ if (($.targets.popover && e.target === $.targets.popover) || ($.targets.tab) || $.targets.offcanvas || $.targets.modal) {
+ e.preventDefault();
+ }
+ }, true);
+
+ /**
+ * mui delegate events
+ * @param {type} event
+ * @param {type} selector
+ * @param {type} callback
+ * @returns {undefined}
+ */
+ $.fn.on = function(event, selector, callback) {
+ this.each(function() {
+ var element = this;
+ element.addEventListener(event, function(e) {
+ var delegates = $.qsa(selector, element);
+ var target = e.target;
+ if (delegates && delegates.length > 0) {
+ for (; target && target !== document; target = target.parentNode) {
+ if (target === element) {
+ break;
+ }
+ if (target && ~delegates.indexOf(target)) {
+ if (!e.detail) {
+ e.detail = {
+ currentTarget: target
+ };
+ } else {
+ e.detail.currentTarget = target;
+ }
+ callback.call(target, e);
+ }
+ }
+ }
+ });
+ ////避免多次on的时候重复绑定
+ element.removeEventListener($.EVENT_CLICK, preventDefault);
+ //click event preventDefault
+ element.addEventListener($.EVENT_CLICK, preventDefault);
+ });
+ };
+ var preventDefault = function(e) {
+ var tagName = e.target && e.target.tagName;
+ if (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT') {
+ e.preventDefault();
+ }
+ };
+ //增加原生滚动识别
+ $.isScrolling = false;
+ var scrollingTimeout = null;
+ window.addEventListener('scroll', function() {
+ $.isScrolling = true;
+ scrollingTimeout && clearTimeout(scrollingTimeout);
+ scrollingTimeout = setTimeout(function() {
+ $.isScrolling = false;
+ }, 250);
+ });
+})(mui, window);
+/**
+ * mui gesture flick[left|right|up|down]
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var handle = function(event, touch) {
+ if (event.type === $.EVENT_END || event.type === $.EVENT_CANCEL) {
+ var options = this.options;
+ if (touch.direction && options.flickMaxTime > touch.flickTime && touch.distance > options.flickMinDistince) {
+ touch.flick = true;
+ $.trigger(event.target, name, touch);
+ $.trigger(event.target, name + touch.direction, touch);
+ }
+ }
+ };
+ /**
+ * mui gesture flick
+ */
+ $.registerGesture({
+ name: name,
+ index: 5,
+ handle: handle,
+ options: {
+ flickMaxTime: 200,
+ flickMinDistince: 10
+ }
+ });
+})(mui, 'flick');
+/**
+ * mui gesture swipe[left|right|up|down]
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var handle = function(event, touch) {
+ if (event.type === $.EVENT_END || event.type === $.EVENT_CANCEL) {
+ var options = this.options;
+ if (touch.direction && options.swipeMaxTime > touch.touchTime && touch.distance > options.swipeMinDistince) {
+ touch.swipe = true;
+ $.trigger(event.target, name + touch.direction, touch);
+ }
+ }
+ };
+ /**
+ * mui gesture swipe
+ */
+ $.registerGesture({
+ name: name,
+ index: 10,
+ handle: handle,
+ options: {
+ swipeMaxTime: 300,
+ swipeMinDistince: 18
+ }
+ });
+})(mui, 'swipe');
+/**
+ * mui gesture drag[start|left|right|up|down|end]
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var handle = function(event, touch) {
+ switch (event.type) {
+ case $.EVENT_MOVE:
+ if (touch.direction) { //drag
+ //修正direction
+ //默认锁定单向drag(后续可能需要额外配置支持)
+ if (touch.lockDirection && touch.startDirection) {
+ if (touch.startDirection && touch.startDirection !== touch.direction) {
+ if (touch.startDirection === 'up' || touch.startDirection === 'down') {
+ touch.direction = touch.deltaY < 0 ? 'up' : 'down';
+ } else {
+ touch.direction = touch.deltaX < 0 ? 'left' : 'right';
+ }
+ }
+ }
+ if (!touch.drag) {
+ touch.drag = true;
+ $.trigger(event.target, name + 'start', touch);
+ }
+ $.trigger(event.target, name, touch);
+ $.trigger(event.target, name + touch.direction, touch);
+ }
+ break;
+ case $.EVENT_END:
+ case $.EVENT_CANCEL:
+ if (touch.drag) {
+ $.trigger(event.target, name + 'end', touch);
+ }
+ break;
+ }
+ };
+ /**
+ * mui gesture drag
+ */
+ $.registerGesture({
+ name: name,
+ index: 20,
+ handle: handle,
+ options: {}
+ });
+})(mui, 'drag');
+/**
+ * mui gesture tap and doubleTap
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var handle = function(event, touch) {
+ //if (event.type === $.EVENT_END || event.type === $.EVENT_CANCEL) {
+ if (event.type === $.EVENT_END) { //ignore touchcancel
+ var options = this.options;
+ if (touch.distance < options.tapMaxDistance && touch.touchTime < options.tapMaxTime) {
+ if ($.options.gestureConfig.doubletap && touch.lastTarget && (touch.lastTarget === event.target)) { //same target
+ if (touch.lastTapTime && (touch.startTime - touch.lastTapTime) < options.tapMaxInterval) {
+ $.trigger(event.target, 'doubletap', touch);
+ touch.lastTapTime = Date.now();
+ touch.lastTarget = event.target;
+ return;
+ }
+ }
+ $.trigger(event.target, name, touch);
+ touch.lastTapTime = Date.now();
+ touch.lastTarget = event.target;
+ }
+ }
+ };
+ /**
+ * mui gesture tap
+ */
+ $.registerGesture({
+ name: name,
+ index: 30,
+ handle: handle,
+ options: {
+ tapMaxInterval: 300,
+ tapMaxDistance: 5,
+ tapMaxTime: 250
+ }
+ });
+})(mui, 'tap');
+/**
+ * mui gesture longtap
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var timer;
+ var handle = function(event, touch) {
+ var options = this.options;
+ switch (event.type) {
+ case $.EVENT_START:
+ clearTimeout(timer);
+ timer = setTimeout(function() {
+ if (!touch.drag) {
+ $.trigger(event.target, name, touch);
+ }
+ }, options.holdTimeout);
+ break;
+ case $.EVENT_MOVE:
+ if (touch.distance > options.holdThreshold) {
+ clearTimeout(timer);
+ }
+ break;
+ case $.EVENT_END:
+ case $.EVENT_CANCEL:
+ clearTimeout(timer);
+ break;
+ }
+ };
+ /**
+ * mui gesture longtap
+ */
+ $.registerGesture({
+ name: name,
+ index: 10,
+ handle: handle,
+ options: {
+ holdTimeout: 500,
+ holdThreshold: 2
+ }
+ });
+})(mui, 'longtap');
+/**
+ * mui gesture hold
+ * @param {type} $
+ * @param {type} name
+ * @returns {undefined}
+ */
+(function($, name) {
+ var timer;
+ var handle = function(event, touch) {
+ var options = this.options;
+ switch (event.type) {
+ case $.EVENT_START:
+ clearTimeout(timer);
+ timer = setTimeout(function() {
+ touch.hold = true;
+ $.trigger(event.target, name, touch);
+ }, options.holdTimeout);
+ break;
+ case $.EVENT_MOVE:
+ break;
+ case $.EVENT_END:
+ case $.EVENT_CANCEL:
+ clearTimeout(timer);
+ if ($.options.gestureConfig.hold && touch.hold) {
+ $.trigger(event.target, 'release', touch);
+ }
+ break;
+ }
+ };
+ /**
+ * mui gesture hold
+ */
+ $.registerGesture({
+ name: name,
+ index: 10,
+ handle: handle,
+ options: {
+ holdTimeout: 0
+ }
+ });
+})(mui, 'hold');
+/**
+ * mui.init
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($) {
+ $.global = $.options = {
+ gestureConfig: {
+ tap: true,
+ doubletap: false,
+ longtap: false,
+ hold: false,
+ flick: true,
+ swipe: true,
+ drag: true
+ }
+ };
+ /**
+ *
+ * @param {type} options
+ * @returns {undefined}
+ */
+ $.initGlobal = function(options) {
+ $.options = $.extend(true, $.global, options);
+ return this;
+ };
+ var inits = {};
+
+ var isInitialized = false;
+ //TODO 自动调用init?因为用户自己调用init的时机可能不确定,如果晚于自动init,则会有潜在问题
+ // $.ready(function() {
+ // setTimeout(function() {
+ // if (!isInitialized) {
+ // $.init();
+ // }
+ // }, 300);
+ // });
+ /**
+ * 单页配置 初始化
+ * @param {object} options
+ */
+ $.init = function(options) {
+ isInitialized = true;
+ $.options = $.extend(true, $.global, options || {});
+ $.ready(function() {
+ $.each($.inits, function(index, init) {
+ var isInit = !!(!inits[init.name] || init.repeat);
+ if (isInit) {
+ init.handle.call($);
+ inits[init.name] = true;
+ }
+ });
+ });
+ return this;
+ };
+
+ /**
+ * 增加初始化执行流程
+ * @param {function} init
+ */
+ $.registerInit = function(init) {
+ return $.registerHandler('inits', init);
+ };
+ $(function() {
+ var classList = document.body.classList;
+ var os = '';
+ if ($.os.ios) {
+ os = 'ios';
+ classList.add('mui-ios');
+ } else if ($.os.android) {
+ os = 'android';
+ classList.add('mui-android');
+ }
+ if (os && $.os.version) {
+ var version = '';
+ var classArray = [];
+ $.each($.os.version.split('.'), function(i, v) {
+ version = version + (version ? '-' : '') + v;
+ classList.add($.className(os + '-' + version));
+ });
+ }
+ });
+})(mui);
+/**
+ * mui.init 5+
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($) {
+ var defaultOptions = {
+ swipeBack: false,
+ preloadPages: [], //5+ lazyLoad webview
+ preloadLimit: 10, //预加载窗口的数量限制(一旦超出,先进先出)
+ keyEventBind: {
+ backbutton: true,
+ menubutton: true
+ }
+ };
+
+ //默认页面动画
+ var defaultShow = {
+ autoShow: true,
+ duration: $.os.ios ? 200 : 100,
+ aniShow: 'slide-in-right'
+ };
+ //若执行了显示动画初始化操作,则要覆盖默认配置
+ if ($.options.show) {
+ defaultShow = $.extend(true, defaultShow, $.options.show);
+ }
+
+ $.currentWebview = null;
+ $.isHomePage = false;
+
+ $.extend(true, $.global, defaultOptions);
+ $.extend(true, $.options, defaultOptions);
+ /**
+ * 等待动画配置
+ * @param {type} options
+ * @returns {Object}
+ */
+ $.waitingOptions = function(options) {
+ return $.extend({
+ autoShow: true,
+ title: ''
+ }, options);
+ };
+ /**
+ * 窗口显示配置
+ * @param {type} options
+ * @returns {Object}
+ */
+ $.showOptions = function(options) {
+ return $.extend(defaultShow, options);
+ };
+ /**
+ * 窗口默认配置
+ * @param {type} options
+ * @returns {Object}
+ */
+ $.windowOptions = function(options) {
+ return $.extend({
+ scalable: false,
+ bounce: "" //vertical
+ }, options);
+ };
+ /**
+ * plusReady
+ * @param {type} callback
+ * @returns {_L6.$}
+ */
+ $.plusReady = function(callback) {
+ if (window.plus) {
+ callback();
+ } else {
+ document.addEventListener("plusready", function() {
+ callback();
+ }, false);
+ }
+ return this;
+ };
+ /**
+ * 5+ event(5+没提供之前我自己实现)
+ * @param {type} webview
+ * @param {type} eventType
+ * @param {type} data
+ * @returns {undefined}
+ */
+ $.fire = function(webview, eventType, data) {
+ if (webview) {
+ webview.evalJS("typeof mui!=='undefined'&&mui.receive('" + eventType + "','" + JSON.stringify(data || {}) + "')");
+ }
+ };
+ /**
+ * 5+ event(5+没提供之前我自己实现)
+ * @param {type} eventType
+ * @param {type} data
+ * @returns {undefined}
+ */
+ $.receive = function(eventType, data) {
+ if (eventType) {
+ data = JSON.parse(data);
+ $.trigger(document, eventType, data);
+ }
+ };
+ var triggerPreload = function(webview) {
+ if (!webview.preloaded) {
+ $.fire(webview, 'preload');
+ var list = webview.children();
+ for (var i = 0; i < list.length; i++) {
+ $.fire(list[i], 'preload');
+ }
+ webview.preloaded = true;
+ }
+ };
+ var trigger = function(webview, eventType, timeChecked) {
+ if (timeChecked) {
+ if (!webview[eventType + 'ed']) {
+ $.fire(webview, eventType);
+ var list = webview.children();
+ for (var i = 0; i < list.length; i++) {
+ $.fire(list[i], eventType);
+ }
+ webview[eventType + 'ed'] = true;
+ }
+ } else {
+ $.fire(webview, eventType);
+ var list = webview.children();
+ for (var i = 0; i < list.length; i++) {
+ $.fire(list[i], eventType);
+ }
+ }
+
+ };
+ /**
+ * 打开新窗口
+ * @param {string} url 要打开的页面地址
+ * @param {string} id 指定页面ID
+ * @param {object} options 可选:参数,等待,窗口,显示配置{params:{},waiting:{},styles:{},show:{}}
+ */
+ $.openWindow = function(url, id, options) {
+
+ if (!window.plus) {
+ return;
+ }
+ if (typeof url === 'object') {
+ options = url;
+ url = options.url;
+ id = options.id || url;
+ } else {
+ if (typeof id === 'object') {
+ options = id;
+ id = url;
+ } else {
+ id = id || url;
+ }
+ }
+ options = options || {};
+ var params = options.params || {};
+ var webview, nShow, nWaiting;
+ if ($.webviews[id]) { //已缓存
+ var webviewCache = $.webviews[id];
+ webview = webviewCache.webview;
+ //需要处理用户手动关闭窗口的情况,此时webview应该是空的;
+ if (!webview || !webview.getURL()) {
+ //再次新建一个webview;
+ options = $.extend(options, {
+ id: id,
+ url: url,
+ preload: true
+ }, true);
+ webview = $.createWindow(options);
+ }
+ //每次show都需要传递动画参数;
+ //预加载的动画参数优先级:openWindow配置>preloadPages配置>mui默认配置;
+ nShow = webviewCache.show;
+ nShow = options.show ? $.extend(nShow, options.show) : nShow;
+ webview.show(nShow.aniShow, nShow.duration, function() {
+ triggerPreload(webview);
+ trigger(webview, 'pagebeforeshow', false);
+ });
+
+ webviewCache.afterShowMethodName && webview.evalJS(webviewCache.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')');
+ return webview;
+ } else { //新窗口
+ //显示waiting
+ var waitingConfig = $.waitingOptions(options.waiting);
+ if (waitingConfig.autoShow) {
+ nWaiting = plus.nativeUI.showWaiting(waitingConfig.title, waitingConfig.options);
+ }
+ //创建页面
+ options = $.extend(options, {
+ id: id,
+ url: url
+ });
+ webview = $.createWindow(options);
+ //显示
+ nShow = $.showOptions(options.show);
+ if (nShow.autoShow) {
+ webview.addEventListener("loaded", function() {
+ //关闭等待框
+ if (nWaiting) {
+ nWaiting.close();
+ }
+ //显示页面
+ webview.show(nShow.aniShow, nShow.duration, function() {
+ triggerPreload(webview);
+ trigger(webview, 'pagebeforeshow', false);
+ });
+ webview.showed = true;
+ options.afterShowMethodName && webview.evalJS(options.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')');
+ }, false);
+ }
+ }
+ return webview;
+ };
+ /**
+ * 根据配置信息创建一个webview
+ * @param {type} options
+ * @param {type} isCreate
+ * @returns {webview}
+ */
+ $.createWindow = function(options, isCreate) {
+ if (!window.plus) {
+ return;
+ }
+ var id = options.id || options.url;
+ var webview;
+ if (options.preload) {
+ if ($.webviews[id] && $.webviews[id].webview.getURL()) { //已经cache
+ webview = $.webviews[id].webview;
+ } else { //新增预加载窗口
+ //preload
+ webview = plus.webview.create(options.url, id, $.windowOptions(options.styles), $.extend({
+ preload: true
+ }, options.extras));
+ if (options.subpages) {
+ $.each(options.subpages, function(index, subpage) {
+ //TODO 子窗口也可能已经创建,比如公用模板的情况;
+ var subWebview = plus.webview.create(subpage.url, subpage.id || subpage.url, $.windowOptions(subpage.styles), $.extend({
+ preload: true
+ }, subpage.extras));
+ webview.append(subWebview);
+ });
+ }
+ }
+
+ //TODO 理论上,子webview也应该计算到预加载队列中,但这样就麻烦了,要退必须退整体,否则可能出现问题;
+ $.webviews[id] = {
+ webview: webview, //目前仅preload的缓存webview
+ preload: true,
+ show: $.showOptions(options.show),
+ afterShowMethodName: options.afterShowMethodName //就不应该用evalJS。应该是通过事件消息通讯
+ };
+ //索引该预加载窗口
+ var preloads = $.data.preloads;
+ var index = preloads.indexOf(id);
+ if (~index) { //删除已存在的(变相调整插入位置)
+ preloads.splice(index, 1);
+ }
+ preloads.push(id);
+ if (preloads.length > $.options.preloadLimit) {
+ //先进先出
+ var first = $.data.preloads.shift();
+ var webviewCache = $.webviews[first];
+ if (webviewCache && webviewCache.webview) {
+ //需要将自己打开的所有页面,全部close;
+ //关闭该预加载webview
+ $.closeAll(webviewCache.webview);
+ }
+ //删除缓存
+ delete $.webviews[first];
+ }
+ } else {
+ if (isCreate !== false) { //直接创建非预加载窗口
+ webview = plus.webview.create(options.url, id, $.windowOptions(options.styles), options.extras);
+ if (options.subpages) {
+ $.each(options.subpages, function(index, subpage) {
+ var subWebview = plus.webview.create(subpage.url, subpage.id || subpage.url, $.windowOptions(subpage.styles), subpage.extras);
+ webview.append(subWebview);
+ });
+ }
+ }
+ }
+ return webview;
+ };
+
+ /**
+ * 预加载
+ */
+ $.preload = function(options) {
+ //调用预加载函数,不管是否传递preload参数,强制变为true
+ if (!options.preload) {
+ options.preload = true;
+ }
+ return $.createWindow(options);
+ };
+
+ /**
+ *关闭当前webview打开的所有webview;
+ */
+ $.closeOpened = function(webview) {
+ var opened = webview.opened();
+ if (opened) {
+ for (var i = 0, len = opened.length; i < len; i++) {
+ var openedWebview = opened[i];
+ var open_open = openedWebview.opened();
+ if (open_open && open_open.length > 0) {
+ $.closeOpened(openedWebview);
+ } else {
+ //如果直接孩子节点,就不用关闭了,因为父关闭的时候,会自动关闭子;
+ if (openedWebview.parent() !== webview) {
+ openedWebview.close('none');
+ }
+ }
+ }
+ }
+ };
+ $.closeAll = function(webview, aniShow) {
+ $.closeOpened(webview);
+ if (aniShow) {
+ webview.close(aniShow);
+ } else {
+ webview.close();
+ }
+ };
+
+ /**
+ * 批量创建webview
+ * @param {type} options
+ * @returns {undefined}
+ */
+ $.createWindows = function(options) {
+ $.each(options, function(index, option) {
+ //初始化预加载窗口(创建)和非预加载窗口(仅配置,不创建)
+ $.createWindow(option, false);
+ });
+ };
+ /**
+ * 创建当前页面的子webview
+ * @param {type} options
+ * @returns {webview}
+ */
+ $.appendWebview = function(options) {
+ if (!window.plus) {
+ return;
+ }
+ var id = options.id || options.url;
+ var webview;
+ if (!$.webviews[id]) { //保证执行一遍
+ //TODO 这里也有隐患,比如某个webview不是作为subpage创建的,而是作为target webview的话;
+ webview = plus.webview.create(options.url, id, options.styles, options.extras);
+ //TODO 理论上,子webview也应该计算到预加载队列中,但这样就麻烦了,要退必须退整体,否则可能出现问题;
+ webview.addEventListener('loaded', function() {
+ plus.webview.currentWebview().append(webview);
+ });
+ $.webviews[id] = options;
+ }
+ return webview;
+ };
+
+ //全局webviews
+ $.webviews = {};
+ //预加载窗口索引
+ $.data.preloads = [];
+ //$.currentWebview
+ $.plusReady(function() {
+ $.currentWebview = plus.webview.currentWebview();
+ });
+ $.registerInit({
+ name: '5+',
+ index: 100,
+ handle: function() {
+ var options = $.options;
+ var subpages = options.subpages || [];
+ if ($.os.plus) {
+ $.plusReady(function() {
+ //TODO 这里需要判断一下,最好等子窗口加载完毕后,再调用主窗口的show方法;
+ //或者:在openwindow方法中,监听实现;
+ $.each(subpages, function(index, subpage) {
+ $.appendWebview(subpage);
+ });
+ //判断是否首页
+ if (plus.webview.currentWebview() === plus.webview.getWebviewById(plus.runtime.appid)) {
+ $.isHomePage = true;
+ //首页需要自己激活预加载;
+ //timeout因为子页面loaded之后才append的,防止子页面尚未append、从而导致其preload未触发的问题;
+ setTimeout(function() {
+ triggerPreload(plus.webview.currentWebview());
+ }, 300);
+ }
+ //设置ios顶部状态栏颜色;
+ if ($.os.ios && $.options.statusBarBackground) {
+ plus.navigator.setStatusBarBackground($.options.statusBarBackground);
+ }
+ if ($.os.android && parseFloat($.os.version) < 4.4) {
+ //解决Android平台4.4版本以下,resume后,父窗体标题延迟渲染的问题;
+ if (plus.webview.currentWebview().parent() == null) {
+ document.addEventListener("resume", function() {
+ var body = document.body;
+ body.style.display = 'none';
+ setTimeout(function() {
+ body.style.display = '';
+ }, 10);
+ });
+ }
+ }
+ });
+ } else {
+ if (subpages.length > 0) {
+ var err = document.createElement('div');
+ err.className = 'mui-error';
+ //文字描述
+ var span = document.createElement('span');
+ span.innerHTML = '在该浏览器下,不支持创建子页面,具体参考';
+ err.appendChild(span);
+ var a = document.createElement('a');
+ a.innerHTML = '"mui框架适用场景"';
+ a.href = 'http://ask.dcloud.net.cn/article/113';
+ err.appendChild(a);
+ document.body.appendChild(err);
+ console.log('在该浏览器下,不支持创建子页面');
+ }
+
+ }
+
+ }
+ });
+ window.addEventListener('preload', function() {
+ //处理预加载部分
+ var webviews = $.options.preloadPages || [];
+ $.plusReady(function() {
+ $.each(webviews, function(index, webview) {
+ $.createWindow($.extend(webview, {
+ preload: true
+ }));
+ });
+
+ });
+ });
+})(mui);
+/**
+ * mui back
+ * @param {type} $
+ * @param {type} window
+ * @returns {undefined}
+ */
+(function($, window) {
+ /**
+ * register back
+ * @param {type} back
+ * @returns {$.gestures}
+ */
+ $.registerBack = function(back) {
+ return $.registerHandler('backs', back);
+ };
+ /**
+ * default
+ */
+ $.registerBack({
+ name: 'browser',
+ index: 100,
+ handle: function() {
+ if (window.history.length > 1) {
+ window.history.back();
+ return true;
+ }
+ return false;
+ }
+ });
+ /**
+ * 后退
+ */
+ $.back = function() {
+ if (typeof $.options.beforeback === 'function') {
+ if ($.options.beforeback() === false) {
+ return;
+ }
+ }
+ $.each($.backs, function(index, back) {
+ return !back.handle();
+ });
+ };
+ window.addEventListener('tap', function(e) {
+ var action = $.targets.action;
+ if (action && action.classList.contains('mui-action-back')) {
+ $.back();
+ }
+ });
+ window.addEventListener('swiperight', function(e) {
+ var detail = e.detail;
+ if ($.options.swipeBack === true && Math.abs(detail.angle) < 3) {
+ $.back();
+ }
+ });
+
+})(mui, window);
+/**
+ * mui back 5+
+ * @param {type} $
+ * @param {type} window
+ * @returns {undefined}
+ */
+(function($, window) {
+ if ($.os.plus && $.os.android) {
+ $.registerBack({
+ name: 'mui',
+ index: 5,
+ handle: function() {
+ //popover
+ if ($.targets._popover) {
+ $($.targets._popover).popover('hide');
+ return true;
+ }
+ //offcanvas
+ var offCanvas = document.querySelector('.mui-off-canvas-wrap.mui-active');
+ if (offCanvas) {
+ $(offCanvas).offCanvas('close');
+ return true;
+ }
+ }
+ });
+ }
+ /**
+ * 5+ back
+ */
+ $.registerBack({
+ name: '5+',
+ index: 10,
+ handle: function() {
+ if (!window.plus) {
+ return false;
+ }
+ var wobj = plus.webview.currentWebview();
+ var parent = wobj.parent();
+ if (parent) {
+ parent.evalJS('mui&&mui.back();');
+ }else{
+ wobj.canBack(function(e) {
+ //by chb 暂时注释,在碰到类似popover之类的锚点的时候,需多次点击才能返回;
+ if (e.canBack) { //webview history back
+ window.history.back();
+ } else { //webview close or hide
+ var opener = wobj.opener();
+ if (opener) {
+ if (wobj.preload) {
+ wobj.hide("auto");
+ } else {
+ //关闭页面时,需要将其打开的所有子页面全部关闭;
+ $.closeAll(wobj);
+ }
+ } else {
+ //首页不存在opener的情况下,后退实际上应该是退出应用;
+ //这个交给项目具体实现,框架暂不处理;
+ //plus.runtime.quit();
+ }
+ }
+ });
+ }
+ return true;
+ }
+ });
+
+
+ $.menu = function() {
+ var menu = document.querySelector('.mui-action-menu');
+ if (menu) {
+ $.trigger(menu, 'touchstart');//临时处理menu无touchstart的话,找不到当前targets的问题
+ $.trigger(menu, 'tap');
+ } else { //执行父窗口的menu
+ if (window.plus) {
+ var wobj = $.currentWebview;
+ var parent = wobj.parent();
+ if (parent) { //又得evalJS
+ parent.evalJS('mui&&mui.menu();');
+ }
+ }
+ }
+ };
+ //处理按键监听事件
+ $.registerInit({
+ name: 'keyEventBind',
+ index: 1000,
+ handle: function() {
+ $.plusReady(function() {
+ if ($.options.keyEventBind.backbutton) {
+ plus.key.addEventListener('backbutton', $.back, false);
+ }
+ if ($.options.keyEventBind.menubutton) {
+ plus.key.addEventListener('menubutton', $.menu, false);
+ }
+ });
+ }
+ });
+})(mui, window);
+/**
+ * mui.init pulldownRefresh
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($) {
+ $.registerInit({
+ name: 'pullrefresh',
+ index: 1000,
+ handle: function() {
+ var options = $.options;
+ var pullRefreshOptions = options.pullRefresh || {};
+ var hasPulldown = pullRefreshOptions.down && pullRefreshOptions.down.hasOwnProperty('callback');
+ var hasPullup = pullRefreshOptions.up && pullRefreshOptions.up.hasOwnProperty('callback');
+ if (hasPulldown || hasPullup) {
+ var container = pullRefreshOptions.container;
+ if (container) {
+ var $container = $(container);
+ if ($container.length === 1) {
+ if ($.os.plus && $.os.android) { //android 5+
+ $.plusReady(function() {
+ var webview = plus.webview.currentWebview();
+ if (hasPullup) {
+ //当前页面初始化pullup
+ var upOptions = {};
+ upOptions.up = pullRefreshOptions.up;
+ upOptions.webviewId = webview.id || webview.getURL();
+ $container.pullRefresh(upOptions);
+ }
+ if (hasPulldown) {
+ var parent = webview.parent();
+ var id = webview.id || webview.getURL();
+ if (parent) {
+ if (!hasPullup) { //如果没有上拉加载,需要手动初始化一个默认的pullRefresh,以便当前页面容器可以调用endPulldownToRefresh等方法
+ $container.pullRefresh({
+ webviewId: id
+ });
+ }
+ var downOptions = {
+ webviewId: id
+ };
+ downOptions.down = $.extend({}, pullRefreshOptions.down);
+ downOptions.down.callback = '_CALLBACK';
+ //父页面初始化pulldown
+ parent.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify(downOptions) + "')");
+ }
+ }
+ });
+ } else {
+ $container.pullRefresh(pullRefreshOptions);
+ }
+ }
+ }
+ }
+ }
+ });
+})(mui);
+/**
+ * mui ajax
+ * @param {type} $
+ * @returns {undefined}
+ */
+(function($, window, undefined) {
+
+ var jsonType = 'application/json';
+ var htmlType = 'text/html';
+ var rscript = /
+
+
+