From da562ff827b6ca95d1b7927abcbe2e373fd750ba Mon Sep 17 00:00:00 2001 From: caibin Date: Sun, 22 Jun 2025 15:55:16 +0800 Subject: [PATCH] first commit --- .hbuilderx/launch.json | 9 + README.md | 26 + androidPrivacy.json | 3 + css/.DS_Store | Bin 0 -> 6148 bytes css/mui.css | 5649 +++++++++++ css/mui.min.css | 5 + fonts/.DS_Store | Bin 0 -> 6148 bytes fonts/iconfont.ttf | Bin 0 -> 5360 bytes fonts/mui.ttf | Bin 0 -> 29884 bytes html/.DS_Store | Bin 0 -> 6148 bytes html/new-webview.html | 23 + html/tab-webview-subpage-chat.html | 150 + html/tab-webview-subpage-contact.html | 155 + images/.DS_Store | Bin 0 -> 6148 bytes images/60x60.gif | Bin 0 -> 203 bytes images/logo.png | Bin 0 -> 4008 bytes images/ma.png | Bin 0 -> 10472 bytes index.html | 208 + js/mui.js | 8390 +++++++++++++++++ js/mui.min.js | 6 + js/util.js | 107 + manifest.json | 200 + .../.manifest/google-keystore.keystore | Bin 0 -> 2214 bytes .../H5F1E04DB/.manifest/icon-android-hdpi.png | Bin 0 -> 2918 bytes .../.manifest/icon-android-xhdpi.png | Bin 0 -> 4009 bytes .../.manifest/icon-android-xxhdpi.png | Bin 0 -> 6784 bytes .../.manifest/icon-android-xxxhdpi.png | Bin 0 -> 9878 bytes .../.manifest/splash-android-hdpi.png | Bin 0 -> 402 bytes .../.manifest/splash-android-xhdpi.png | Bin 0 -> 402 bytes .../.manifest/splash-android-xxhdpi.png | Bin 0 -> 402 bytes unpackage/cache/wgt/H5F1E04DB/README.md | 26 + .../cache/wgt/H5F1E04DB/androidPrivacy.json | 3 + unpackage/cache/wgt/H5F1E04DB/css/mui.css | 5649 +++++++++++ unpackage/cache/wgt/H5F1E04DB/css/mui.min.css | 5 + .../cache/wgt/H5F1E04DB/fonts/iconfont.ttf | Bin 0 -> 5360 bytes unpackage/cache/wgt/H5F1E04DB/fonts/mui.ttf | Bin 0 -> 29884 bytes .../cache/wgt/H5F1E04DB/html/new-webview.html | 23 + .../html/tab-webview-subpage-chat.html | 150 + .../html/tab-webview-subpage-contact.html | 155 + .../cache/wgt/H5F1E04DB/images/60x60.gif | Bin 0 -> 203 bytes unpackage/cache/wgt/H5F1E04DB/images/logo.png | Bin 0 -> 4008 bytes unpackage/cache/wgt/H5F1E04DB/images/ma.png | Bin 0 -> 10472 bytes unpackage/cache/wgt/H5F1E04DB/index.html | 208 + unpackage/cache/wgt/H5F1E04DB/js/mui.js | 8390 +++++++++++++++++ unpackage/cache/wgt/H5F1E04DB/js/mui.min.js | 6 + unpackage/cache/wgt/H5F1E04DB/js/util.js | 107 + unpackage/cache/wgt/H5F1E04DB/manifest.json | 1 + unpackage/debug/android_debug.apk | Bin 0 -> 7919767 bytes unpackage/res/icons/1024x1024.png | Bin 0 -> 124670 bytes unpackage/res/icons/120x120.png | Bin 0 -> 5271 bytes unpackage/res/icons/144x144.png | Bin 0 -> 6784 bytes unpackage/res/icons/152x152.png | Bin 0 -> 7241 bytes unpackage/res/icons/167x167.png | Bin 0 -> 8250 bytes unpackage/res/icons/180x180.png | Bin 0 -> 9103 bytes unpackage/res/icons/192x192.png | Bin 0 -> 9878 bytes unpackage/res/icons/20x20.png | Bin 0 -> 669 bytes unpackage/res/icons/29x29.png | Bin 0 -> 1056 bytes unpackage/res/icons/40x40.png | Bin 0 -> 1435 bytes unpackage/res/icons/58x58.png | Bin 0 -> 2227 bytes unpackage/res/icons/60x60.png | Bin 0 -> 2305 bytes unpackage/res/icons/72x72.png | Bin 0 -> 2918 bytes unpackage/res/icons/76x76.png | Bin 0 -> 3060 bytes unpackage/res/icons/80x80.png | Bin 0 -> 3231 bytes unpackage/res/icons/87x87.png | Bin 0 -> 3570 bytes unpackage/res/icons/96x96.png | Bin 0 -> 4009 bytes 65 files changed, 29654 insertions(+) create mode 100644 .hbuilderx/launch.json create mode 100644 README.md create mode 100644 androidPrivacy.json create mode 100644 css/.DS_Store create mode 100644 css/mui.css create mode 100644 css/mui.min.css create mode 100644 fonts/.DS_Store create mode 100644 fonts/iconfont.ttf create mode 100644 fonts/mui.ttf create mode 100644 html/.DS_Store create mode 100644 html/new-webview.html create mode 100644 html/tab-webview-subpage-chat.html create mode 100644 html/tab-webview-subpage-contact.html create mode 100644 images/.DS_Store create mode 100644 images/60x60.gif create mode 100644 images/logo.png create mode 100644 images/ma.png create mode 100644 index.html create mode 100644 js/mui.js create mode 100644 js/mui.min.js create mode 100644 js/util.js create mode 100644 manifest.json create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/google-keystore.keystore create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-hdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-xhdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-xxhdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-xxxhdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/splash-android-hdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/splash-android-xhdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/.manifest/splash-android-xxhdpi.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/README.md create mode 100644 unpackage/cache/wgt/H5F1E04DB/androidPrivacy.json create mode 100644 unpackage/cache/wgt/H5F1E04DB/css/mui.css create mode 100644 unpackage/cache/wgt/H5F1E04DB/css/mui.min.css create mode 100644 unpackage/cache/wgt/H5F1E04DB/fonts/iconfont.ttf create mode 100644 unpackage/cache/wgt/H5F1E04DB/fonts/mui.ttf create mode 100644 unpackage/cache/wgt/H5F1E04DB/html/new-webview.html create mode 100644 unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-chat.html create mode 100644 unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-contact.html create mode 100644 unpackage/cache/wgt/H5F1E04DB/images/60x60.gif create mode 100644 unpackage/cache/wgt/H5F1E04DB/images/logo.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/images/ma.png create mode 100644 unpackage/cache/wgt/H5F1E04DB/index.html create mode 100644 unpackage/cache/wgt/H5F1E04DB/js/mui.js create mode 100644 unpackage/cache/wgt/H5F1E04DB/js/mui.min.js create mode 100644 unpackage/cache/wgt/H5F1E04DB/js/util.js create mode 100644 unpackage/cache/wgt/H5F1E04DB/manifest.json create mode 100644 unpackage/debug/android_debug.apk create mode 100644 unpackage/res/icons/1024x1024.png create mode 100644 unpackage/res/icons/120x120.png create mode 100644 unpackage/res/icons/144x144.png create mode 100644 unpackage/res/icons/152x152.png create mode 100644 unpackage/res/icons/167x167.png create mode 100644 unpackage/res/icons/180x180.png create mode 100644 unpackage/res/icons/192x192.png create mode 100644 unpackage/res/icons/20x20.png create mode 100644 unpackage/res/icons/29x29.png create mode 100644 unpackage/res/icons/40x40.png create mode 100644 unpackage/res/icons/58x58.png create mode 100644 unpackage/res/icons/60x60.png create mode 100644 unpackage/res/icons/72x72.png create mode 100644 unpackage/res/icons/76x76.png create mode 100644 unpackage/res/icons/80x80.png create mode 100644 unpackage/res/icons/87x87.png create mode 100644 unpackage/res/icons/96x96.png diff --git a/.hbuilderx/launch.json b/.hbuilderx/launch.json new file mode 100644 index 0000000..1b8d0f6 --- /dev/null +++ b/.hbuilderx/launch.json @@ -0,0 +1,9 @@ +{ + "version" : "1.0", + "configurations" : [ + { + "playground" : "custom", + "type" : "uni-app:app-android" + } + ] +} diff --git a/README.md b/README.md new file mode 100644 index 0000000..34e7870 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ +## tab选项卡示例教程-nativeObj原生模式tab(含底部凸起大图标) +## 概述 + +这是一个利用原生view控件绘制底部选项卡的示例,有以下几个特点: +1.首页显示第一个tab项内容,其余tab项内容为首页的子窗口,相比创建四个子窗口,显示速度更快,占用内存更少,消耗性能更小。 +2.操作简单:选项卡常用于App首页,为加快渲染,首页的原生底部选项卡是在manifest.json中通过plus -> launchwebview -> subNViews 节点配置的; +3.绘制内容支持字体,图片,矩形区域 +4.开发者自定义选项卡点击事件 +5.同样支持页内绘制原生 view 控件,也就是说在非首页也可以使用此方法,参考示例:底部选项卡中央凸起悬浮大图标的绘制 + +#### 说明:中央凸起悬浮大图标,因涉及屏幕分辨率动态计算和为给出开发者页内手动绘制的示例的原因,放在首页plusReady事件中实现绘制的。该悬浮大图标支持点击事件,开发者可定制实现对应的点击逻辑。 + +## 应用截图 + +![截图](http://img-cdn-qiniu.dcloud.net.cn/uploads/article/20170623/04c03ba9ad4afa7d11735e52c771cf94.png) + +## 快速体验 + +[流应用app下载](http://liuyingyong.cn/) --> 扫描下方二维码快速体验 + +![二维码](images/ma.png) + + +## 使用教程 + +[教程参考](http://ask.dcloud.net.cn/article/12602) diff --git a/androidPrivacy.json b/androidPrivacy.json new file mode 100644 index 0000000..a78485c --- /dev/null +++ b/androidPrivacy.json @@ -0,0 +1,3 @@ +{ + "prompt" : "none" +} diff --git a/css/.DS_Store b/css/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 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 +{ + margin: 88px 35px; + padding: 10px; + + border-radius: 6px; + background-color: #bbb; +} + +.mui-subtitle +{ + font-size: 15px; +} + +h1, h2, h3, h4, h5, h6 +{ + line-height: 1; + + margin-top: 5px; + margin-bottom: 5px; +} + +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 +{ + font-size: 14px; + + margin-top: 0; + margin-bottom: 10px; + + color: #8f8f94; +} + +.mui-row:before, .mui-row:after +{ + display: table; + + content: ' '; +} +.mui-row:after +{ + clear: both; +} + +.mui-col-xs-1, .mui-col-sm-1, .mui-col-xs-2, .mui-col-sm-2, .mui-col-xs-3, .mui-col-sm-3, .mui-col-xs-4, .mui-col-sm-4, .mui-col-xs-5, .mui-col-sm-5, .mui-col-xs-6, .mui-col-sm-6, .mui-col-xs-7, .mui-col-sm-7, .mui-col-xs-8, .mui-col-sm-8, .mui-col-xs-9, .mui-col-sm-9, .mui-col-xs-10, .mui-col-sm-10, .mui-col-xs-11, .mui-col-sm-11, .mui-col-xs-12, .mui-col-sm-12 +{ + position: relative; + + min-height: 1px; +} + +.mui-row > [class*='mui-col-'] +{ + float: left; +} + +.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; + z-index: 2; + top: 0; + bottom: 0; + left: 0; + + overflow: hidden; + + width: 100%; +} + +.mui-scroll +{ + position: absolute; + z-index: 1; + + width: 100%; +} + +.mui-scrollbar +{ + position: absolute; + z-index: 9998; + + overflow: hidden; + + -webkit-transition: 500ms; + transition: 500ms; + transform: translateZ(0px); + pointer-events: none; + + opacity: 0; +} + +.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; + + -webkit-transition: .01s cubic-bezier(.1, .57, .1, 1); + transition: .01s cubic-bezier(.1, .57, .1, 1); + transform: translate(0px, 0px) translateZ(0px); + + border: 1px solid rgba(255, 255, 255, .80196); + border-radius: 2px; + background: rgba(0, 0, 0, .39804); +} + +.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; + + overflow: hidden; + + width: 100%; +} +.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; + + overflow: auto; + + width: auto; +} +.mui-plus-pullrefresh .mui-slider-group +{ + overflow: visible; +} +.mui-plus-pullrefresh .mui-scroll +{ + position: static; + + width: auto; +} + +.mui-off-canvas-wrap .mui-bar +{ + position: absolute !important; + + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + + -webkit-box-shadow: none; + box-shadow: none; +} + +.mui-off-canvas-wrap +{ + position: relative; + z-index: 1; + + overflow: hidden; + + width: 100%; + height: 100%; +} +.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 350ms; + transition: transform 350ms cubic-bezier(.165, .84, .44, 1); +} +.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 +{ + overflow: hidden; + + height: 100%; +} +.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop +{ + position: absolute; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: block; + + transition: background 350ms cubic-bezier(.165, .84, .44, 1); + + background: rgba(0, 0, 0, .4); + box-shadow: -4px 0 4px rgba(0, 0, 0, .5), 4px 0 4px rgba(0, 0, 0, .5); + + -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; + z-index: -1; + top: 0; + bottom: 0; + + visibility: hidden; + + box-sizing: content-box; + width: 70%; + min-height: 100%; + + background: #333; + + -webkit-overflow-scrolling: touch; +} +.mui-off-canvas-left.mui-transitioning, .mui-off-canvas-right.mui-transitioning +{ + -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1); + transition: transform 350ms cubic-bezier(.165, .84, .44, 1); +} + +.mui-off-canvas-left +{ + left: 0; +} + +.mui-off-canvas-right +{ + right: 0; +} + +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable +{ + background-color: #333; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right +{ + width: 80%; + + -webkit-transform: scale(.8); + transform: scale(.8); + + opacity: .1; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left.mui-transitioning, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right.mui-transitioning +{ + -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1); + transition: transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1); +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left +{ + -webkit-transform-origin: -100%; + transform-origin: -100%; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right +{ + -webkit-transform-origin: 200%; + transform-origin: 200%; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-inner-wrap +{ + -webkit-transform: scale(.8); + transform: scale(.8); +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-right +{ + -webkit-transform: scale(1); + transform: scale(1); + + opacity: 1; +} + +.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 +{ + font-size: 14px; + font-weight: 400; + line-height: 1.42; + + position: relative; + + display: inline-block; + + margin-bottom: 0; + padding: 6px 12px; + + cursor: pointer; + -webkit-transition: all; + transition: all; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transition-duration: .2s; + transition-duration: .2s; + text-align: center; + vertical-align: top; + white-space: nowrap; + + color: #333; + 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; + background-color: #fff; + background-clip: padding-box; +} +input[type='button']:enabled:active, input[type='button'].mui-active:enabled, +input[type='submit']:enabled:active, +input[type='submit'].mui-active:enabled, +input[type='reset']:enabled:active, +input[type='reset'].mui-active:enabled, +button:enabled:active, +button.mui-active:enabled, +.mui-btn:enabled:active, +.mui-btn.mui-active:enabled +{ + 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; + border: 1px solid #007aff; + background-color: #007aff; +} +input[type='submit']:enabled:active, input[type='submit'].mui-active:enabled, +.mui-btn-primary:enabled:active, +.mui-btn-primary.mui-active:enabled, +.mui-btn-blue:enabled:active, +.mui-btn-blue.mui-active:enabled +{ + color: #fff; + border: 1px solid #0062cc; + background-color: #0062cc; +} + +.mui-btn-positive, +.mui-btn-success, +.mui-btn-green +{ + color: #fff; + border: 1px solid #4cd964; + background-color: #4cd964; +} +.mui-btn-positive:enabled:active, .mui-btn-positive.mui-active:enabled, +.mui-btn-success:enabled:active, +.mui-btn-success.mui-active:enabled, +.mui-btn-green:enabled:active, +.mui-btn-green.mui-active:enabled +{ + color: #fff; + border: 1px solid #2ac845; + background-color: #2ac845; +} + +.mui-btn-warning, +.mui-btn-yellow +{ + color: #fff; + border: 1px solid #f0ad4e; + background-color: #f0ad4e; +} +.mui-btn-warning:enabled:active, .mui-btn-warning.mui-active:enabled, +.mui-btn-yellow:enabled:active, +.mui-btn-yellow.mui-active:enabled +{ + color: #fff; + border: 1px solid #ec971f; + background-color: #ec971f; +} + +.mui-btn-negative, +.mui-btn-danger, +.mui-btn-red +{ + color: #fff; + border: 1px solid #dd524d; + background-color: #dd524d; +} +.mui-btn-negative:enabled:active, .mui-btn-negative.mui-active:enabled, +.mui-btn-danger:enabled:active, +.mui-btn-danger.mui-active:enabled, +.mui-btn-red:enabled:active, +.mui-btn-red.mui-active:enabled +{ + color: #fff; + border: 1px solid #cf2d28; + background-color: #cf2d28; +} + +.mui-btn-royal, +.mui-btn-purple +{ + color: #fff; + border: 1px solid #8a6de9; + background-color: #8a6de9; +} +.mui-btn-royal:enabled:active, .mui-btn-royal.mui-active:enabled, +.mui-btn-purple:enabled:active, +.mui-btn-purple.mui-active:enabled +{ + color: #fff; + border: 1px solid #6641e2; + background-color: #6641e2; +} + +.mui-btn-grey +{ + color: #fff; + border: 1px solid #c7c7cc; + background-color: #c7c7cc; +} +.mui-btn-grey:enabled:active, .mui-btn-grey.mui-active:enabled +{ + color: #fff; + border: 1px solid #acacb4; + background-color: #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:enabled:active, .mui-btn-outlined.mui-btn-blue:enabled:active, .mui-btn-outlined.mui-btn-positive:enabled:active, .mui-btn-outlined.mui-btn-success:enabled:active, .mui-btn-outlined.mui-btn-green:enabled:active, .mui-btn-outlined.mui-btn-warning:enabled:active, .mui-btn-outlined.mui-btn-yellow:enabled:active, .mui-btn-outlined.mui-btn-negative:enabled:active, .mui-btn-outlined.mui-btn-danger:enabled:active, .mui-btn-outlined.mui-btn-red:enabled:active, .mui-btn-outlined.mui-btn-royal:enabled:active, .mui-btn-outlined.mui-btn-purple:enabled:active +{ + color: #fff; +} + +.mui-btn-link +{ + padding-top: 6px; + padding-bottom: 6px; + + color: #007aff; + border: 0; + background-color: transparent; +} +.mui-btn-link:enabled:active, .mui-btn-link.mui-active:enabled +{ + color: #0062cc; + background-color: transparent; +} + +.mui-btn-block +{ + font-size: 18px; + + display: block; + + width: 100%; + margin-bottom: 10px; + padding: 15px 0; +} + +.mui-btn .mui-badge +{ + font-size: 14px; + + margin: -2px -4px -2px 4px; + + background-color: rgba(0, 0, 0, .15); +} + +.mui-btn .mui-badge-inverted, +.mui-btn:enabled:active .mui-badge-inverted +{ + background-color: transparent; +} + +.mui-btn-primary:enabled:active .mui-badge-inverted, +.mui-btn-positive:enabled:active .mui-badge-inverted, +.mui-btn-negative:enabled: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 +{ + font-size: 24px; + line-height: 24px; + + width: 24px; + height: 24px; +} + +.mui-btn .mui-spinner +{ + width: 14px; + height: 14px; + + vertical-align: text-bottom; +} + +.mui-btn-block .mui-spinner +{ + width: 22px; + height: 22px; +} + +.mui-bar +{ + position: fixed; + z-index: 10; + right: 0; + left: 0; + + height: 44px; + padding-right: 10px; + padding-left: 10px; + + border-bottom: 0; + background-color: #f7f7f7; + -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; + + display: inline-block; + overflow: hidden; + + width: auto; + margin: 0; + + 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-transparent +{ + top: 0; + + background-color: rgba(247, 247, 247, 0); + -webkit-box-shadow: none; + box-shadow: none; +} + +.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; + visibility: hidden; + + height: 45px; + margin-top: -45px; +} +.mui-bar-nav.mui-bar .mui-icon +{ + margin-right: -10px; + margin-left: -10px; + padding-right: 10px; + padding-left: 10px; +} + +.mui-title +{ + font-size: 17px; + font-weight: 500; + line-height: 44px; + + position: absolute; + + display: block; + + width: 100%; + margin: 0 -10px; + padding: 0; + + text-align: center; + white-space: nowrap; + + color: #000; +} + +.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; + overflow: hidden; + + width: 1%; + height: 50px; + + text-align: center; + vertical-align: middle; + white-space: nowrap; + text-overflow: ellipsis; + + color: #929292; +} +.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 +{ + font-size: 11px; + + display: block; + overflow: hidden; + + text-overflow: ellipsis; +} +.mui-bar-tab .mui-tab-item .mui-icon:active +{ + background: none; +} + +.mui-focusin > .mui-bar-nav, +.mui-focusin > .mui-bar-header-secondary +{ + position: absolute; +} + +.mui-focusin > .mui-bar ~ .mui-content +{ + padding-bottom: 0; +} + +.mui-bar .mui-btn +{ + font-weight: 400; + + position: relative; + z-index: 20; + top: 7px; + + margin-top: 0; + padding: 6px 12px 7px; +} +.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 +{ + font-size: 16px; + line-height: 44px; + + top: 0; + + padding: 0; + + color: #007aff; + border: 0; +} +.mui-bar .mui-btn-link:active, .mui-bar .mui-btn-link.mui-active +{ + color: #0062cc; +} + +.mui-bar .mui-btn-block +{ + font-size: 16px; + + top: 6px; + + margin-bottom: 0; + padding: 5px 0; +} + +.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 +{ + font-size: 24px; + + position: relative; + z-index: 20; + + padding-top: 10px; + padding-bottom: 10px; +} +.mui-bar .mui-icon:active +{ + opacity: .3; +} +.mui-bar .mui-btn .mui-icon +{ + top: 1px; + + margin: 0; + padding: 0; +} +.mui-bar .mui-title .mui-icon +{ + margin: 0; + padding: 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-bar.mui-bar-header-secondary .mui-segmented-control +{ + top: 0; +} + +.mui-badge +{ + font-size: 12px; + line-height: 1; + + display: inline-block; + + padding: 3px 6px; + + color: #333; + border-radius: 100px; + background-color: rgba(0, 0, 0, .15); +} +.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 +{ + font-size: 10px; + line-height: 1.4; + + position: absolute; + top: -2px; + left: 100%; + + margin-left: -10px; + padding: 1px 5px; + + color: white; + background: red; +} + +.mui-card +{ + font-size: 14px; + + position: relative; + + overflow: hidden; + + margin: 10px; + + border-radius: 2px; + background-color: white; + background-clip: padding-box; + box-shadow: 0 1px 2px rgba(0, 0, 0, .3); +} + +.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, .mui-card .mui-table-view .mui-table-view-cell: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, .mui-card .mui-table-view .mui-table-view-cell: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-card-header, +.mui-card-footer +{ + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + min-height: 44px; + padding: 10px 15px; + + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} +.mui-card-header .mui-card-link, +.mui-card-footer .mui-card-link +{ + line-height: 44px; + + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + height: 44px; + margin-top: -10px; + margin-bottom: -10px; + + -webkit-transition-duration: .3s; + transition-duration: .3s; + text-decoration: none; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.mui-card-header:after, +.mui-card-footer:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-card-header +{ + font-size: 17px; + + border-radius: 2px 2px 0 0; +} +.mui-card-header:after +{ + top: auto; + bottom: 0; +} +.mui-card-header > img:first-child +{ + font-size: 0; + line-height: 0; + + float: left; + + width: 34px; + height: 34px; +} + +.mui-card-footer +{ + color: #6d6d72; + border-radius: 0 0 2px 2px; +} + +.mui-card-content +{ + font-size: 14px; + + position: relative; +} + +.mui-card-content-inner +{ + position: relative; + + padding: 15px; +} + +.mui-card-media +{ + vertical-align: bottom; + + color: #fff; + background-position: center; + background-size: cover; +} + +.mui-card-header.mui-card-media +{ + display: block; + + padding: 10px; +} +.mui-card-header.mui-card-media .mui-media-body +{ + font-size: 14px; + font-weight: 500; + line-height: 17px; + + margin-bottom: 0; + margin-left: 44px; + + color: #333; +} +.mui-card-header.mui-card-media .mui-media-body p +{ + font-size: 13px; + + margin-bottom: 0; +} + +.mui-table-view +{ + position: relative; + + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + + list-style: none; + + background-color: #fff; +} +.mui-table-view:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view:before +{ + top: -1px; +} + +.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon +{ + font-size: 20px; + + margin-top: -1px; + margin-right: 5px; + margin-left: -5px; +} +.mui-table-view-icon .mui-table-view-cell:after +{ + left: 40px; +} + +.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-radio .mui-table-view-cell +{ + padding-right: 65px; +} +.mui-table-view-radio .mui-table-view-cell > a:not(.mui-btn) +{ + margin-right: -65px; +} +.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after +{ + font-size: 30px; + font-weight: 600; + + right: 9px; + + content: ''; + + color: #007aff; +} +.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after +{ + content: '\e472'; +} + +.mui-table-view-inverted +{ + color: #fff; + background: #333; +} +.mui-table-view-inverted:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.mui-table-view-inverted:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.mui-table-view-inverted .mui-table-view-cell:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 15px; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.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; + + overflow: hidden; + + padding: 11px 15px; + + -webkit-touch-callout: none; +} +.mui-table-view-cell:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 15px; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.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; + overflow: hidden; + + margin: -11px -15px; + padding: inherit; + + white-space: nowrap; + text-overflow: ellipsis; + + color: inherit; + /*&: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-active > .mui-slider-handle +{ + background-color: #eee; +} +.mui-table-view-cell > .mui-slider-handle +{ + position: relative; + + background-color: #fff; +} +.mui-table-view-cell > .mui-slider-handle.mui-navigate-right:after, .mui-table-view-cell > .mui-slider-handle .mui-navigate-right:after +{ + right: 0; +} +.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; +} +.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%; +} +.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; + z-index: -1; + top: 0; + + 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 +{ + font-weight: 500; + + position: relative; + + margin-top: -1px; + margin-left: 0; + padding-top: 6px; + padding-bottom: 6px; + padding-left: 15px; + + color: #999; + background-color: #fafafa; +} +.mui-table-view-divider:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view-divider:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-table-view .mui-media, +.mui-table-view .mui-media-body +{ + overflow: hidden; +} + +.mui-table-view .mui-media-large .mui-media-object +{ + line-height: 80px; + + max-width: 80px; + height: 80px; +} +.mui-table-view .mui-media .mui-subtitle +{ + color: #000; +} +.mui-table-view .mui-media-object +{ + line-height: 42px; + + max-width: 42px; + 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 +{ + line-height: 29px; + + max-width: 29px; + height: 29px; + margin: -4px 0; +} +.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img +{ + line-height: 29px; + + max-width: 29px; + 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.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-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-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-table-view:before, .mui-table-view-cell.mui-collapse .mui-table-view:after +{ + height: 0; +} +.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after +{ + height: 0; +} +.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 +{ + margin-top: -1px; +} +.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-active .mui-table-view-cell > a:not(.mui-btn).mui-active +{ + margin-left: -31px; + padding-left: 47px; +} +.mui-table-view-cell.mui-collapse .mui-collapse-content +{ + position: relative; + + display: none; + overflow: hidden; + + margin: 11px -15px -11px; + padding: 8px 15px; + + -webkit-transition: height .35s ease; + -o-transition: height .35s ease; + transition: height .35s ease; + + background: white; +} +.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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-table-view.mui-grid-view +{ + font-size: 0; + + display: block; + + width: 100%; + padding: 0 10px 10px 0; + + white-space: normal; +} +.mui-table-view.mui-grid-view .mui-table-view-cell +{ + font-size: 17px; + + display: inline-block; + + margin-right: -4px; + padding: 10px 0 0 14px; + + 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 +{ + font-size: 15px; + line-height: 15px; + + display: block; + + width: 100%; + height: 15px; + margin-top: 8px; + + text-overflow: ellipsis; + + color: #333; +} +.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 +{ + margin: 0; + padding: 0; + + border-top: 1px solid #eee; + border-left: 1px solid #eee; + background-color: #f2f2f2; +} +.mui-grid-view.mui-grid-9:before, .mui-grid-view.mui-grid-9:after +{ + display: table; + + content: ' '; +} +.mui-grid-view.mui-grid-9:after +{ + clear: both; +} +.mui-grid-view.mui-grid-9:after +{ + position: static; +} +.mui-grid-view.mui-grid-9 .mui-table-view-cell +{ + margin: 0; + padding: 11px 15px; + + vertical-align: top; + + border-right: 1px solid #eee; + border-bottom: 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) +{ + margin: 0; + padding: 10px 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 +{ + font-size: 2.4em; + + position: relative; +} + +.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; + z-index: 0; + top: 0; + bottom: 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'] +{ + line-height: 21px; + + width: 100%; + height: 40px; + margin-bottom: 15px; + padding: 10px 15px; + + -webkit-user-select: text; + + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 3px; + outline: none; + background-color: #fff; + + -webkit-appearance: none; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button +{ + margin: 0; + + -webkit-appearance: none; +} + +input[type='search'] +{ + font-size: 16px; + + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 34px; + + text-align: center; + + border: 0; + border-radius: 6px; + background-color: rgba(0, 0, 0, .1); +} + +input[type='search']:focus +{ + text-align: left; +} + +textarea +{ + height: auto; + + resize: none; +} + +select +{ + font-size: 14px; + + height: auto; + margin-top: 1px; + + border: 0 !important; + background-color: #fff; +} +select:focus +{ + -webkit-user-modify: read-only; +} + +.mui-input-group +{ + position: relative; + + padding: 0; + + border: 0; + background-color: #fff; +} +.mui-input-group:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-input-group:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-input-group input, +.mui-input-group textarea +{ + margin-bottom: 0; + + border: 0; + border-radius: 0; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.mui-input-group input[type='search'] +{ + background: none; +} + +.mui-input-group input:last-child +{ + background-image: none; +} + +.mui-input-row +{ + clear: left; + overflow: hidden; +} +.mui-input-row select +{ + font-size: 17px; + + height: 37px; + padding: 0; +} + +.mui-input-row:last-child, +.mui-input-row label + input, .mui-input-row .mui-btn + input +{ + background: 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-input-row label +{ + font-family: 'Helvetica Neue', Helvetica, sans-serif; + line-height: 1.1; + + float: left; + + width: 35%; + padding: 11px 15px; +} + +.mui-input-row label ~ input, .mui-input-row label ~ select, .mui-input-row label ~ textarea +{ + float: right; + + width: 65%; + margin-bottom: 0; + padding-left: 0; + + border: 0; +} + +.mui-input-row .mui-btn +{ + line-height: 1.1; + + float: right; + + width: 15%; + padding: 10px 15px; +} + +.mui-input-row .mui-btn ~ input, .mui-input-row .mui-btn ~ select, .mui-input-row .mui-btn ~ textarea +{ + float: left; + + width: 85%; + margin-bottom: 0; + padding-left: 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 +{ + overflow: visible; + + padding-right: 20px; +} +.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, .mui-input-row .mui-input-password ~ .mui-icon-eye +{ + font-size: 20px; + + position: absolute; + z-index: 1; + top: 10px; + right: 0; + + width: 38px; + height: 38px; + + text-align: center; + + color: #999; +} +.mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-active, .mui-input-row .mui-input-speech ~ .mui-icon-speech.mui-active, .mui-input-row .mui-input-password ~ .mui-icon-eye.mui-active +{ + color: #007aff; +} +.mui-input-row .mui-input-speech ~ .mui-icon-speech +{ + font-size: 24px; + + top: 8px; +} +.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%; + padding-right: 58px; +} + +.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-right: 15px; + 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; + + border: 0; + outline: 0 !important; + background-color: transparent; + + -webkit-appearance: none; +} +.mui-radio input[type='radio'][disabled]:before, .mui-checkbox input[type='checkbox'][disabled]:before +{ + opacity: .3; +} +.mui-radio input[type='radio']:before, .mui-checkbox input[type='checkbox']:before +{ + font-family: Muiicons; + font-size: 28px; + font-weight: normal; + line-height: 1; + + text-decoration: none; + + color: #aaa; + border-radius: 0; + background: none; + + -webkit-font-smoothing: antialiased; +} +.mui-radio input[type='radio']:checked:before, .mui-checkbox input[type='checkbox']:checked:before +{ + color: #007aff; +} + +.mui-radio.mui-disabled label, .mui-radio label.mui-disabled, .mui-checkbox.mui-disabled label, .mui-checkbox label.mui-disabled +{ + opacity: .4; +} + +.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 +{ + font-family: Muiicons; + + position: absolute; + top: 8px; + right: 21px; + + content: '\e581'; + + color: rgba(170, 170, 170, .6); +} + +.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; + margin: 17px 0; + padding: 0; + + cursor: pointer; + + border: 0; + border-radius: 3px; + outline: none; + background-color: #999; + + -webkit-appearance: none !important; +} +.mui-input-range input[type='range']::-webkit-slider-thumb +{ + width: 28px; + height: 28px; + + border-color: #0062cc; + border-radius: 50%; + background-color: #007aff; + background-clip: padding-box; + + -webkit-appearance: none !important; +} +.mui-input-range label ~ input[type='range'] +{ + width: 65%; +} +.mui-input-range .mui-tooltip +{ + font-size: 36px; + line-height: 64px; + + position: absolute; + z-index: 1; + top: -70px; + + width: 64px; + height: 64px; + + text-align: center; + + opacity: .8; + color: #333; + border: 1px solid #ddd; + border-radius: 6px; + background-color: #fff; + text-shadow: 0 1px 0 #f3f3f3; +} + +.mui-search +{ + position: relative; +} +.mui-search input[type='search'] +{ + padding-left: 30px; +} +.mui-search .mui-placeholder +{ + font-size: 16px; + line-height: 34px; + + position: absolute; + z-index: 1; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: inline-block; + + height: 34px; + + text-align: center; + + color: #999; + border: 0; + border-radius: 6px; + background: none; +} +.mui-search .mui-placeholder .mui-icon +{ + font-size: 20px; + + color: #333; +} +.mui-search:before +{ + font-family: Muiicons; + font-size: 20px; + font-weight: normal; + + position: absolute; + top: 50%; + right: 50%; + + display: none; + + margin-top: -18px; + margin-right: 31px; + + content: '\e466'; +} +.mui-search.mui-active:before +{ + font-size: 20px; + + right: auto; + left: 5px; + + display: block; + + margin-right: 0; +} +.mui-search.mui-active input[type='search'] +{ + text-align: left; +} +.mui-search.mui-active .mui-placeholder +{ + display: none; +} + +.mui-segmented-control +{ + font-size: 15px; + font-weight: 400; + + position: relative; + + display: table; + overflow: hidden; + + width: 100%; + + table-layout: fixed; + + border: 1px solid #007aff; + border-radius: 3px; + background-color: transparent; + + -webkit-touch-callout: none; +} +.mui-segmented-control.mui-segmented-control-vertical +{ + border-collapse: collapse; + + border-width: 0; + border-radius: 0; +} +.mui-segmented-control.mui-segmented-control-vertical .mui-control-item +{ + display: block; + + border-bottom: 1px solid #c8c7cc; + border-left-width: 0; +} +.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 +{ + line-height: 38px; + + display: table-cell; + overflow: hidden; + + width: 1%; + + -webkit-transition: background-color .1s linear; + transition: background-color .1s linear; + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; + + color: #007aff; + border-color: #007aff; + border-left: 1px solid #007aff; +} +.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-segmented-control-vertical .mui-control-item +{ + border-bottom: 1px solid #c8c7cc; +} +.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active +{ + border-bottom: 1px solid #c8c7cc; +} +.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; + border-bottom: 2px solid #007aff; + background: none; +} +.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; + border-bottom: 2px solid #4cd964; + background: none; +} +.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; + border-bottom: 2px solid #dd524d; + background: none; +} +.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; + + -webkit-transition: opacity .3s; + transition: opacity .3s; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none; + + opacity: 0; + border-radius: 7px; + background-color: #f7f7f7; + -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, .1); + box-shadow: 0 0 15px rgba(0, 0, 0, .1); +} +.mui-popover .mui-popover-arrow +{ + position: absolute; + z-index: 1000; + top: -25px; + left: 0; + + overflow: hidden; + + width: 26px; + height: 26px; +} +.mui-popover .mui-popover-arrow:after +{ + position: absolute; + top: 19px; + left: 0; + + width: 26px; + height: 26px; + + content: ' '; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + + border-radius: 3px; + background: #f7f7f7; +} +.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%; + + -webkit-transition: -webkit-transform .3s, opacity .3s; + transition: transform .3s, opacity .3s; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + + border-radius: 0; + background: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.mui-popover.mui-popover-action .mui-popover-arrow +{ + display: none; +} +.mui-popover.mui-popover-action.mui-popover-bottom +{ + position: fixed; +} +.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; + + text-align: center; + + color: #007aff; + 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-popover.mui-popover-action .mui-table-view small +{ + font-weight: 400; + line-height: 1.3; + + display: block; +} +.mui-popover.mui-active +{ + display: block; + + opacity: 1; +} +.mui-popover .mui-bar ~ .mui-table-view +{ + padding-top: 44px; +} + +.mui-backdrop +{ + position: fixed; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + 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 +{ + -webkit-transition: all .4s ease; + transition: all .4s ease; + + opacity: 1; +} + +.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; + + border-radius: 7px; + background-clip: padding-box; +} + +.mui-popover .mui-scroll .mui-table-view +{ + max-height: none; +} + +.mui-popover .mui-table-view +{ + overflow: auto; + + max-height: 300px; + margin-bottom: 0; + + border-radius: 7px; + background-color: #f7f7f7; + background-image: none; + + -webkit-overflow-scrolling: touch; +} +.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-popup-backdrop +{ + position: fixed; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + + opacity: 0; + background: rgba(0, 0, 0, .4); +} +.mui-popup-backdrop.mui-active +{ + opacity: 1; +} + +.mui-popup +{ + position: fixed; + z-index: 10000; + top: 50%; + left: 50%; + + display: none; + overflow: hidden; + + width: 270px; + + -webkit-transition-property: -webkit-transform,opacity; + transition-property: transform,opacity; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1.185); + transform: translate3d(-50%, -50%, 0) scale(1.185); + text-align: center; + + opacity: 0; + color: #000; + border-radius: 13px; +} +.mui-popup.mui-popup-in +{ + display: block; + + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); + + opacity: 1; +} +.mui-popup.mui-popup-out +{ + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); + + opacity: 0; +} + +.mui-popup-inner +{ + position: relative; + + padding: 15px; + + border-radius: 13px 13px 0 0; + background: rgba(255, 255, 255, .95); +} +.mui-popup-inner:after +{ + position: absolute; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + + display: block; + + width: 100%; + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + + background-color: rgba(0, 0, 0, .2); +} + +.mui-popup-title +{ + font-size: 18px; + font-weight: 500; + + text-align: center; +} + +.mui-popup-title + .mui-popup-text +{ + font-family: inherit; + font-size: 14px; + + margin: 5px 0 0; +} + +.mui-popup-buttons +{ + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + height: 44px; + + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; +} + +.mui-popup-button +{ + font-size: 17px; + line-height: 44px; + + position: relative; + + display: block; + overflow: hidden; + + box-sizing: border-box; + width: 100%; + height: 44px; + padding: 0 5px; + + cursor: pointer; + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; + + color: #007aff; + background: rgba(255, 255, 255, .95); + + -webkit-box-flex: 1; +} +.mui-popup-button:after +{ + position: absolute; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + + display: block; + + width: 1px; + height: 100%; + + content: ''; + -webkit-transform: scaleX(.5); + transform: scaleX(.5); + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + + background-color: rgba(0, 0, 0, .2); +} +.mui-popup-button:first-child +{ + border-radius: 0 0 0 13px; +} +.mui-popup-button:first-child:last-child +{ + border-radius: 0 0 13px 13px; +} +.mui-popup-button:last-child +{ + border-radius: 0 0 13px 0; +} +.mui-popup-button:last-child:after +{ + display: none; +} +.mui-popup-button.mui-popup-button-bold +{ + font-weight: 600; +} + +.mui-popup-input input +{ + font-size: 14px; + + width: 100%; + height: 26px; + margin: 15px 0 0; + padding: 0 5px; + + border: 1px solid rgba(0, 0, 0, .3); + border-radius: 0; + background: #fff; +} + +.mui-plus.mui-android .mui-popup-backdrop +{ + -webkit-transition-duration: 1ms; + transition-duration: 1ms; +} + +.mui-plus.mui-android .mui-popup +{ + -webkit-transition-duration: 1ms; + transition-duration: 1ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); +} + +/* === Progress Bar === */ +.mui-progressbar +{ + position: relative; + + display: block; + overflow: hidden; + + width: 100%; + height: 2px; + + -webkit-transform-origin: center top; + transform-origin: center top; + vertical-align: middle; + + border-radius: 2px; + background: #b6b6b6; + + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} +.mui-progressbar span +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + -webkit-transition: 150ms; + transition: 150ms; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + + background: #007aff; +} +.mui-progressbar.mui-progressbar-infinite:before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + -webkit-animation: mui-progressbar-infinite 1s linear infinite; + animation: mui-progressbar-infinite 1s linear infinite; + + background: #007aff; +} + +body > .mui-progressbar +{ + position: absolute; + z-index: 10000; + top: 44px; + left: 0; + + border-radius: 0; +} + +.mui-progressbar-in +{ + -webkit-animation: mui-progressbar-in 300ms forwards; + animation: mui-progressbar-in 300ms forwards; +} + +.mui-progressbar-out +{ + -webkit-animation: mui-progressbar-out 300ms forwards; + animation: mui-progressbar-out 300ms forwards; +} + +@-webkit-keyframes mui-progressbar-in +{ + from + { + -webkit-transform: scaleY(0); + + opacity: 0; + } + + to + { + -webkit-transform: scaleY(1); + + opacity: 1; + } +} +@keyframes mui-progressbar-in +{ + from + { + transform: scaleY(0); + + opacity: 0; + } + + to + { + transform: scaleY(1); + + opacity: 1; + } +} +@-webkit-keyframes mui-progressbar-out +{ + from + { + -webkit-transform: scaleY(1); + + opacity: 1; + } + + to + { + -webkit-transform: scaleY(0); + + opacity: 0; + } +} +@keyframes mui-progressbar-out +{ + from + { + transform: scaleY(1); + + opacity: 1; + } + + to + { + transform: scaleY(0); + + opacity: 0; + } +} +@-webkit-keyframes mui-progressbar-infinite +{ + 0% + { + -webkit-transform: translate3d(-50%, 0, 0) scaleX(.5); + } + + 100% + { + -webkit-transform: translate3d(100%, 0, 0) scaleX(.5); + } +} +@keyframes mui-progressbar-infinite +{ + 0% + { + transform: translate3d(-50%, 0, 0) scaleX(.5); + } + + 100% + { + transform: translate3d(100%, 0, 0) scaleX(.5); + } +} +.mui-pagination +{ + display: inline-block; + + margin: 0 auto; + padding-left: 0; + + border-radius: 6px; +} +.mui-pagination > li +{ + display: inline; +} +.mui-pagination > li > a, +.mui-pagination > li > span +{ + line-height: 1.428571429; + + position: relative; + + float: left; + + margin-left: -1px; + padding: 6px 12px; + + text-decoration: none; + + color: #007aff; + border: 1px solid #ddd; + background-color: #fff; +} +.mui-pagination > li:first-child > a, +.mui-pagination > li:first-child > span +{ + margin-left: 0; + + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + background-clip: padding-box; +} +.mui-pagination > li:last-child > a, +.mui-pagination > li:last-child > span +{ + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + background-clip: padding-box; +} +.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; + + cursor: default; + + color: #fff; + border-color: #007aff; + background-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 +{ + opacity: .6; + color: #777; + border: 1px solid #ddd; + background-color: #fff; +} + +.mui-pagination-lg > li > a, +.mui-pagination-lg > li > span +{ + font-size: 18px; + + padding: 10px 16px; +} + +.mui-pagination-sm > li > a, +.mui-pagination-sm > li > span +{ + font-size: 12px; + + padding: 5px 10px; +} + +.mui-pager +{ + padding-left: 0; + + list-style: none; + + text-align: center; +} +.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; + + border: 1px solid #ddd; + border-radius: 6px; + background-color: #fff; + background-clip: padding-box; +} +.mui-pager li:active > a, .mui-pager li:active > span, .mui-pager li.mui-active > a, .mui-pager li.mui-active > span +{ + cursor: default; + text-decoration: none; + + color: #fff; + border-color: #007aff; + background-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 +{ + opacity: .6; + color: #777; + border: 1px solid #ddd; + background-color: #fff; +} + +.mui-modal +{ + position: fixed; + z-index: 999; + top: 0; + + overflow: hidden; + + width: 100%; + min-height: 100%; + + -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); + + opacity: 0; + background-color: #fff; +} +.mui-modal.mui-active +{ + height: 100%; + + -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); + + opacity: 1; +} + +.mui-android .mui-modal .mui-bar +{ + position: static; +} + +.mui-android .mui-modal .mui-bar-nav ~ .mui-content +{ + padding-top: 0; +} + +.mui-slider +{ + position: relative; + z-index: 1; + + overflow: hidden; + + width: 100%; +} +.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 +{ + font-size: 0; + + position: relative; + + -webkit-transition: all 0s linear; + transition: all 0s linear; + white-space: nowrap; +} +.mui-slider .mui-slider-group .mui-slider-item +{ + font-size: 14px; + + position: relative; + + display: inline-block; + + width: 100%; + height: 100%; + + vertical-align: top; + white-space: normal; +} +.mui-slider .mui-slider-group .mui-slider-item > a:not(.mui-control-item) +{ + line-height: 0; + + position: relative; + + display: block; +} +.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 +{ + line-height: 30px; + + position: absolute; + bottom: 0; + left: 0; + + width: 100%; + height: 30px; + margin: 0; + + text-align: left; + text-indent: 12px; + + opacity: .8; + background-color: #000; +} + +.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; + + border-radius: 50%; + background: #aaa; + -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 +{ + font-size: 20px; + line-height: 30px; + + width: 40px; + height: 30px; + margin: 3px; + + text-align: center; + + border: 1px solid #ddd; +} +.mui-slider-indicator .mui-number +{ + line-height: 32px; + + display: inline-block; + + width: 58px; +} +.mui-slider-indicator .mui-number span +{ + color: #ff5053; +} + +.mui-slider-progress-bar +{ + z-index: 1; + + height: 2px; + + -webkit-transform: translateZ(0); + transform: translateZ(0); +} + +.mui-switch +{ + position: relative; + + display: block; + + width: 74px; + height: 30px; + + -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; + + border: 2px solid #ddd; + border-radius: 20px; + background-color: #fff; + background-clip: padding-box; +} +.mui-switch.mui-disabled +{ + opacity: .3; +} +.mui-switch .mui-switch-handle +{ + position: absolute; + z-index: 1; + top: -1px; + left: -1px; + + width: 28px; + height: 28px; + + -webkit-transition: .2s ease-in-out; + transition: .2s ease-in-out; + -webkit-transition-property: -webkit-transform, width,left; + transition-property: transform, width,left; + + border-radius: 16px; + background-color: #fff; + background-clip: padding-box; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .4); + box-shadow: 0 2px 5px rgba(0, 0, 0, .4); +} +.mui-switch:before +{ + font-size: 13px; + + position: absolute; + top: 3px; + right: 11px; + + content: 'Off'; + text-transform: uppercase; + + color: #999; +} +.mui-switch.mui-dragging +{ + border-color: #f7f7f7; + background-color: #f7f7f7; +} +.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 +{ + border-color: #4cd964; + background-color: #4cd964; +} +.mui-switch.mui-active .mui-switch-handle +{ + -webkit-transform: translate(43px, 0); + transform: translate(43px, 0); +} +.mui-switch.mui-active:before +{ + right: auto; + left: 15px; + + content: 'On'; + + color: #fff; +} +.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: translate(16px, 0); + transform: translate(16px, 0); +} + +.mui-switch-blue.mui-active +{ + border: 2px solid #007aff; + background-color: #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-right:after, +.mui-push-left:after, +.mui-push-right:after +{ + font-family: Muiicons; + font-size: inherit; + line-height: 1; + + position: absolute; + top: 50%; + + display: inline-block; + + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-decoration: none; + + color: #bbb; + + -webkit-font-smoothing: antialiased; +} + +.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; + visibility: hidden; + overflow: hidden; + + width: 100%; + height: 50px; +} + +.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 +{ + font-weight: bold; + + position: absolute; + right: 0; + bottom: 10px; + left: 0; + + text-align: center; + + color: #777; +} + +.mui-pull-loading +{ + margin-right: 10px; + + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + vertical-align: middle; +} + +.mui-pull-loading.mui-reverse +{ + -webkit-transform: rotate(180deg) translateZ(0); + transform: rotate(180deg) translateZ(0); +} + +.mui-pull-caption +{ + font-size: 15px; + line-height: 24px; + + position: relative; + + display: inline-block; + overflow: visible; + + margin-top: 0; + + vertical-align: middle; +} +.mui-pull-caption span +{ + display: none; +} +.mui-pull-caption span.mui-in +{ + display: inline; +} + +.mui-toast-container +{ + line-height: 17px; + + position: fixed; + z-index: 9999; + bottom: 50px; + left: 50%; + + -webkit-transition: opacity .3s; + transition: opacity .3s; + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0); + + opacity: 0; +} +.mui-toast-container.mui-active +{ + opacity: .9; +} + +.mui-toast-message +{ + font-size: 14px; + + padding: 10px 25px; + + text-align: center; + + color: #fff; + border-radius: 6px; + background-color: #323232; +} + +.mui-numbox +{ + position: relative; + + display: inline-block; + overflow: hidden; + + width: 120px; + height: 35px; + padding: 0 40px 0 40px; + + vertical-align: top; + vertical-align: middle; + + border: solid 1px #bbb; + border-radius: 3px; + background-color: #efeff4; +} +.mui-numbox [class*=numbox-btn], .mui-numbox [class*=btn-numbox] +{ + font-size: 18px; + font-weight: normal; + line-height: 100%; + + position: absolute; + top: 0; + + overflow: hidden; + + width: 40px; + height: 100%; + padding: 0; + + color: #555; + border: none; + border-radius: 0; + background-color: #f9f9f9; +} +.mui-numbox [class*=numbox-btn]:active, .mui-numbox [class*=btn-numbox]:active +{ + background-color: #ccc; +} +.mui-numbox [class*=numbox-btn][disabled], .mui-numbox [class*=btn-numbox][disabled] +{ + color: #c0c0c0; +} +.mui-numbox .mui-numbox-btn-plus, .mui-numbox .mui-btn-numbox-plus +{ + right: 0; + + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.mui-numbox .mui-numbox-btn-minus, .mui-numbox .mui-btn-numbox-minus +{ + left: 0; + + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.mui-numbox .mui-numbox-input, .mui-numbox .mui-input-numbox +{ + display: inline-block; + overflow: hidden; + + width: 100% !important; + height: 100%; + margin: 0; + padding: 0 3px !important; + + text-align: center; + text-overflow: ellipsis; + word-break: normal; + + border: none !important; + border-right: solid 1px #ccc !important; + border-left: solid 1px #ccc !important; + border-radius: 0 !important; +} + +.mui-input-row .mui-numbox +{ + float: right; + + margin: 2px 8px; +} + +@font-face { + font-family: Muiicons; + font-weight: normal; + font-style: normal; + + src: url('../fonts/mui.ttf') format('truetype'); +} +.mui-icon +{ + font-family: Muiicons; + font-size: 24px; + font-weight: normal; + font-style: normal; + line-height: 1; + + display: inline-block; + + text-decoration: none; + + -webkit-font-smoothing: antialiased; +} +.mui-icon.mui-active +{ + color: #007aff; +} +.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-qq:before +{ + content: '\e264'; +} + +.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-eye:before +{ + content: '\e568'; +} + +.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; +} +.mui-fullscreen.mui-slider .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 .mui-slider-item > a +{ + top: 50%; + + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item > a +{ + top: auto; + + -webkit-transform: none; + transform: none; +} + +.mui-bar-nav ~ .mui-content .mui-slider.mui-fullscreen +{ + top: 44px; +} + +.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; +} + +.mui-android.mui-android-4-2 input, +.mui-android.mui-android-4-2 textarea, .mui-android.mui-android-4-3 input, +.mui-android.mui-android-4-3 textarea +{ + -webkit-user-select: text; +} + +.mui-ios .mui-table-view-cell +{ + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.mui-plus-visible, .mui-wechat-visible +{ + display: none !important; +} + +.mui-plus-hidden, .mui-wechat-hidden +{ + display: block !important; +} + +.mui-tab-item.mui-plus-hidden, .mui-tab-item.mui-wechat-hidden +{ + display: table-cell !important; +} + +.mui-plus .mui-plus-visible, .mui-wechat .mui-wechat-visible +{ + display: block !important; +} + +.mui-plus .mui-tab-item.mui-plus-visible, .mui-wechat .mui-tab-item.mui-wechat-visible +{ + display: table-cell !important; +} + +.mui-plus .mui-plus-hidden, .mui-wechat .mui-wechat-hidden +{ + display: none !important; +} + +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav +{ + height: 64px; + padding-top: 20px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content +{ + padding-top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content .mui-pull-top-pocket +{ + top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary +{ + top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary ~ .mui-content +{ + padding-top: 94px; +} + +.mui-iframe-wrapper +{ + position: absolute; + right: 0; + left: 0; + + -webkit-overflow-scrolling: touch; +} +.mui-iframe-wrapper iframe +{ + width: 100%; + height: 100%; + + border: 0; +} diff --git a/css/mui.min.css b/css/mui.min.css new file mode 100644 index 0000000..eaf6974 --- /dev/null +++ b/css/mui.min.css @@ -0,0 +1,5 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/mui) + * ===================================================== + *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}body::after{position:fixed;top:-1000px;left:-1000px;content:'';-webkit-animation:shadow-preload .1s;animation:shadow-preload .1s;-webkit-animation-delay:3s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%,100%{background-image:url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png)}}@keyframes shadow-preload{0%,100%{background-image:url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png)}}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{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input{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{margin:0 2px;padding:.35em .625em .75em;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{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#efeff4;-webkit-overflow-scrolling:touch}a{text-decoration:none;color:#007aff}a:active{color:#0062cc}.mui-content{background-color:#efeff4;-webkit-overflow-scrolling:touch}.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;white-space:nowrap;text-overflow:ellipsis}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;white-space:normal!important;text-overflow:ellipsis;word-wrap:break-word;-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{margin-left:-5px;padding-left:0;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{margin:88px 35px;padding:10px;border-radius:6px;background-color:#bbb}.mui-subtitle{font-size:15px}h1,h2,h3,h4,h5,h6{line-height:1;margin-top:5px;margin-bottom:5px}.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{font-size:14px;margin-top:0;margin-bottom:10px;color:#8f8f94}.mui-row:after,.mui-row:before{display:table;content:' '}.mui-row:after{clear:both}.mui-col-sm-1,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-xs-1,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9{position:relative;min-height:1px}.mui-row>[class*=mui-col-]{float:left}.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;z-index:2;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-scroll{position:absolute;z-index:1;width:100%}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px);pointer-events:none;opacity:0}.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;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px);border:1px solid rgba(255,255,255,.80196);border-radius:2px;background:rgba(0,0,0,.39804)}.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;overflow:hidden;width:100%}.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;overflow:auto;width:auto}.mui-plus-pullrefresh .mui-slider-group{overflow:visible}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-box-shadow:none;box-shadow:none}.mui-off-canvas-wrap{position:relative;z-index:1;overflow:hidden;width:100%;height:100%}.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 350ms;transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.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{overflow:hidden;height:100%}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;z-index:998;top:0;right:0;bottom:0;left:0;display:block;transition:background 350ms cubic-bezier(.165,.84,.44,1);background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);-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;z-index:-1;top:0;bottom:0;visibility:hidden;box-sizing:content-box;width:70%;min-height:100%;background:#333;-webkit-overflow-scrolling:touch}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable{background-color:#333}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{width:80%;-webkit-transform:scale(.8);transform:scale(.8);opacity:.1}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left{-webkit-transform-origin:-100%;transform-origin:-100%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{-webkit-transform-origin:200%;transform-origin:200%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-inner-wrap{-webkit-transform:scale(.8);transform:scale(.8)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-right{-webkit-transform:scale(1);transform:scale(1);opacity:1}.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]{font-size:14px;font-weight:400;line-height:1.42;position:relative;display:inline-block;margin-bottom:0;padding:6px 12px;cursor:pointer;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s;text-align:center;vertical-align:top;white-space:nowrap;color:#333;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;background-color:#fff;background-clip:padding-box}.mui-btn.mui-active:enabled,.mui-btn:enabled:active,button.mui-active:enabled,button:enabled:active,input[type=button].mui-active:enabled,input[type=button]:enabled:active,input[type=reset].mui-active:enabled,input[type=reset]:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled: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;border:1px solid #007aff;background-color:#007aff}.mui-btn-blue.mui-active:enabled,.mui-btn-blue:enabled:active,.mui-btn-primary.mui-active:enabled,.mui-btn-primary:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;border:1px solid #0062cc;background-color:#0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;border:1px solid #4cd964;background-color:#4cd964}.mui-btn-green.mui-active:enabled,.mui-btn-green:enabled:active,.mui-btn-positive.mui-active:enabled,.mui-btn-positive:enabled:active,.mui-btn-success.mui-active:enabled,.mui-btn-success:enabled:active{color:#fff;border:1px solid #2ac845;background-color:#2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;border:1px solid #f0ad4e;background-color:#f0ad4e}.mui-btn-warning.mui-active:enabled,.mui-btn-warning:enabled:active,.mui-btn-yellow.mui-active:enabled,.mui-btn-yellow:enabled:active{color:#fff;border:1px solid #ec971f;background-color:#ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;border:1px solid #dd524d;background-color:#dd524d}.mui-btn-danger.mui-active:enabled,.mui-btn-danger:enabled:active,.mui-btn-negative.mui-active:enabled,.mui-btn-negative:enabled:active,.mui-btn-red.mui-active:enabled,.mui-btn-red:enabled:active{color:#fff;border:1px solid #cf2d28;background-color:#cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;border:1px solid #8a6de9;background-color:#8a6de9}.mui-btn-purple.mui-active:enabled,.mui-btn-purple:enabled:active,.mui-btn-royal.mui-active:enabled,.mui-btn-royal:enabled:active{color:#fff;border:1px solid #6641e2;background-color:#6641e2}.mui-btn-grey{color:#fff;border:1px solid #c7c7cc;background-color:#c7c7cc}.mui-btn-grey.mui-active:enabled,.mui-btn-grey:enabled:active{color:#fff;border:1px solid #acacb4;background-color:#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:enabled:active,.mui-btn-outlined.mui-btn-danger:enabled:active,.mui-btn-outlined.mui-btn-green:enabled:active,.mui-btn-outlined.mui-btn-negative:enabled:active,.mui-btn-outlined.mui-btn-positive:enabled:active,.mui-btn-outlined.mui-btn-primary:enabled:active,.mui-btn-outlined.mui-btn-purple:enabled:active,.mui-btn-outlined.mui-btn-red:enabled:active,.mui-btn-outlined.mui-btn-royal:enabled:active,.mui-btn-outlined.mui-btn-success:enabled:active,.mui-btn-outlined.mui-btn-warning:enabled:active,.mui-btn-outlined.mui-btn-yellow:enabled:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;border:0;background-color:transparent}.mui-btn-link.mui-active:enabled,.mui-btn-link:enabled:active{color:#0062cc;background-color:transparent}.mui-btn-block{font-size:18px;display:block;width:100%;margin-bottom:10px;padding:15px 0}.mui-btn .mui-badge{font-size:14px;margin:-2px -4px -2px 4px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:enabled:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:enabled:active .mui-badge-inverted,.mui-btn-positive:enabled:active .mui-badge-inverted,.mui-btn-primary:enabled: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{font-size:24px;line-height:24px;width:24px;height:24px}.mui-btn .mui-spinner{width:14px;height:14px;vertical-align:text-bottom}.mui-btn-block .mui-spinner{width:22px;height:22px}.mui-bar{position:fixed;z-index:10;right:0;left:0;height:44px;padding-right:10px;padding-left:10px;border-bottom:0;background-color:#f7f7f7;-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;display:inline-block;overflow:hidden;width:auto;margin:0;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-transparent{top:0;background-color:rgba(247,247,247,0);-webkit-box-shadow:none;box-shadow:none}.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;visibility:hidden;height:45px;margin-top:-45px}.mui-bar-nav.mui-bar .mui-icon{margin-right:-10px;margin-left:-10px;padding-right:10px;padding-left:10px}.mui-title{font-size:17px;font-weight:500;line-height:44px;position:absolute;display:block;width:100%;margin:0 -10px;padding:0;text-align:center;white-space:nowrap;color:#000}.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;overflow:hidden;width:1%;height:50px;text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#929292}.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{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar-header-secondary,.mui-focusin>.mui-bar-nav{position:absolute}.mui-focusin>.mui-bar~.mui-content{padding-bottom:0}.mui-bar .mui-btn{font-weight:400;position:relative;z-index:20;top:7px;margin-top:0;padding:6px 12px 7px}.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{font-size:16px;line-height:44px;top:0;padding:0;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{font-size:16px;top:6px;margin-bottom:0;padding:5px 0}.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{font-size:24px;position:relative;z-index:20;padding-top:10px;padding-bottom:10px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;margin:0;padding:0}.mui-bar .mui-title .mui-icon{margin:0;padding: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-bar.mui-bar-header-secondary .mui-segmented-control{top:0}.mui-badge{font-size:12px;line-height:1;display:inline-block;padding:3px 6px;color:#333;border-radius:100px;background-color:rgba(0,0,0,.15)}.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{font-size:10px;line-height:1.4;position:absolute;top:-2px;left:100%;margin-left:-10px;padding:1px 5px;color:#fff;background:red}.mui-card{font-size:14px;position:relative;overflow:hidden;margin:10px;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 1px 2px rgba(0,0,0,.3)}.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-cell:first-child,.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-cell:last-child,.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-card-footer,.mui-card-header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;min-height:44px;padding:10px 15px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer .mui-card-link,.mui-card-header .mui-card-link{line-height:44px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;margin-top:-10px;margin-bottom:-10px;-webkit-transition-duration:.3s;transition-duration:.3s;text-decoration:none;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer:before,.mui-card-header:after{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-card-header{font-size:17px;border-radius:2px 2px 0 0}.mui-card-header:after{top:auto;bottom:0}.mui-card-header>img:first-child{font-size:0;line-height:0;float:left;width:34px;height:34px}.mui-card-footer{color:#6d6d72;border-radius:0 0 2px 2px}.mui-card-content{font-size:14px;position:relative}.mui-card-content-inner{position:relative;padding:15px}.mui-card-media{vertical-align:bottom;color:#fff;background-position:center;background-size:cover}.mui-card-header.mui-card-media{display:block;padding:10px}.mui-card-header.mui-card-media .mui-media-body{font-size:14px;font-weight:500;line-height:17px;margin-bottom:0;margin-left:44px;color:#333}.mui-card-header.mui-card-media .mui-media-body p{font-size:13px;margin-bottom:0}.mui-table-view{position:relative;margin-top:0;margin-bottom:0;padding-left:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view:before{position:absolute;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc;top:-1px}.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon{font-size:20px;margin-top:-1px;margin-right:5px;margin-left:-5px}.mui-table-view-icon .mui-table-view-cell:after{left:40px}.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-radio .mui-table-view-cell{padding-right:65px}.mui-table-view-radio .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after{font-size:30px;font-weight:600;right:9px;content:'';color:#007aff}.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after{content:'\e472'}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.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;overflow:hidden;padding:11px 15px;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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;overflow:hidden;margin:-11px -15px;padding:inherit;white-space:nowrap;text-overflow:ellipsis;color:inherit}.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-active>.mui-slider-handle{background-color:#eee}.mui-table-view-cell>.mui-slider-handle{position:relative;background-color:#fff}.mui-table-view-cell>.mui-slider-handle .mui-navigate-right:after,.mui-table-view-cell>.mui-slider-handle.mui-navigate-right:after{right:0}.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}.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%}.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;z-index:-1;top:0;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{font-weight:500;position:relative;margin-top:-1px;margin-left:0;padding-top:6px;padding-bottom:6px;padding-left:15px;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-large .mui-media-object{line-height:80px;max-width:80px;height:80px}.mui-table-view .mui-media .mui-subtitle{color:#000}.mui-table-view .mui-media-object{line-height:42px;max-width:42px;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{line-height:29px;max-width:29px;height:29px;margin:-4px 0}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{line-height:29px;max-width:29px;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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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-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-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-table-view .mui-table-view-cell:last-child:after,.mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view-cell.mui-collapse .mui-table-view:before{height:0}.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{margin-top:-1px}.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-active .mui-table-view-cell>a:not(.mui-btn).mui-active{margin-left:-31px;padding-left:47px}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;overflow:hidden;margin:11px -15px -11px;padding:8px 15px;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;background:#fff}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view.mui-grid-view{font-size:0;display:block;width:100%;padding:0 10px 10px 0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{font-size:17px;display:inline-block;margin-right:-4px;padding:10px 0 0 14px;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{font-size:15px;line-height:15px;display:block;width:100%;height:15px;margin-top:8px;text-overflow:ellipsis;color:#333}.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{margin:0;padding:0;border-top:1px solid #eee;border-left:1px solid #eee;background-color:#f2f2f2}.mui-grid-view.mui-grid-9:after,.mui-grid-view.mui-grid-9:before{display:table;content:' '}.mui-grid-view.mui-grid-9:after{clear:both;position:static}.mui-grid-view.mui-grid-9 .mui-table-view-cell{margin:0;padding:11px 15px;vertical-align:top;border-right:1px solid #eee;border-bottom: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){margin:0;padding:10px 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{font-size:2.4em;position:relative}.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;z-index:0;top:0;bottom: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{line-height:21px;width:100%;height:40px;margin-bottom:15px;padding:10px 15px;-webkit-user-select:text;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0;background-color:#fff;-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}input[type=search]{font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;text-align:center;border:0;border-radius:6px;background-color:rgba(0,0,0,.1)}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{font-size:14px;height:auto;margin-top:1px;border:0!important;background-color:#fff}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;border:0;background-color:#fff}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group input,.mui-input-group textarea{margin-bottom:0;border:0;border-radius:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{clear:left;overflow:hidden}.mui-input-row select{font-size:17px;height:37px;padding:0}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background:0 0}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-row label{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:left;width:35%;padding:11px 15px}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;margin-bottom:0;padding-left:0;border:0}.mui-input-row .mui-btn{line-height:1.1;float:right;width:15%;padding:10px 15px}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;margin-bottom:0;padding-left: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{overflow:visible;padding-right:20px}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-password~.mui-icon-eye,.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:20px;position:absolute;z-index:1;top:10px;right:0;width:38px;height:38px;text-align:center;color:#999}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-active,.mui-input-row .mui-input-password~.mui-icon-eye.mui-active,.mui-input-row .mui-input-speech~.mui-icon-speech.mui-active{color:#007aff}.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:24px;top:8px}.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%;padding-right:58px}.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-right:15px;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;border:0;outline:0!important;background-color:transparent;-webkit-appearance:none}.mui-checkbox input[type=checkbox][disabled]:before,.mui-radio input[type=radio][disabled]:before{opacity:.3}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;text-decoration:none;color:#aaa;border-radius:0;background:0 0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-checkbox label.mui-disabled,.mui-checkbox.mui-disabled label,.mui-radio label.mui-disabled,.mui-radio.mui-disabled label{opacity:.4}.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{font-family:Muiicons;position:absolute;top:8px;right:21px;content:'\e581';color:rgba(170,170,170,.6)}.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;margin:17px 0;padding:0;cursor:pointer;border:0;border-radius:3px;outline:0;background-color:#999;-webkit-appearance:none!important}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;border-color:#0062cc;border-radius:50%;background-color:#007aff;background-clip:padding-box;-webkit-appearance:none!important}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{font-size:36px;line-height:64px;position:absolute;z-index:1;top:-70px;width:64px;height:64px;text-align:center;opacity:.8;color:#333;border:1px solid #ddd;border-radius:6px;background-color:#fff;text-shadow:0 1px 0 #f3f3f3}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{font-size:16px;line-height:34px;position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:inline-block;height:34px;text-align:center;color:#999;border:0;border-radius:6px;background:0 0}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{font-family:Muiicons;font-size:20px;font-weight:400;position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;content:'\e466'}.mui-search.mui-active:before{font-size:20px;right:auto;left:5px;display:block;margin-right:0}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{font-size:15px;font-weight:400;position:relative;display:table;overflow:hidden;width:100%;table-layout:fixed;border:1px solid #007aff;border-radius:3px;background-color:transparent;-webkit-touch-callout:none}.mui-segmented-control.mui-segmented-control-vertical{border-collapse:collapse;border-width:0;border-radius:0}.mui-segmented-control.mui-segmented-control-vertical .mui-control-item{display:block;border-bottom:1px solid #c8c7cc;border-left-width:0}.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{line-height:38px;display:table-cell;overflow:hidden;width:1%;-webkit-transition:background-color .1s linear;transition:background-color .1s linear;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;border-color:#007aff;border-left:1px solid #007aff}.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-segmented-control-vertical .mui-control-item,.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active{border-bottom:1px solid #c8c7cc}.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;border-bottom:2px solid #007aff;background:0 0}.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;border-bottom:2px solid #4cd964;background:0 0}.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;border-bottom:2px solid #dd524d;background:0 0}.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;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none;opacity:0;border-radius:7px;background-color:#f7f7f7;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1)}.mui-popover .mui-popover-arrow{position:absolute;z-index:1000;top:-25px;left:0;overflow:hidden;width:26px;height:26px}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:3px;background:#f7f7f7}.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%;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-popover-bottom{position:fixed}.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;text-align:center;color:#007aff;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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-popover.mui-popover-action .mui-table-view small{font-weight:400;line-height:1.3;display:block}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;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{-webkit-transition:all .4s ease;transition:all .4s ease;opacity:1}.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;border-radius:7px;background-clip:padding-box}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{overflow:auto;max-height:300px;margin-bottom:0;border-radius:7px;background-color:#f7f7f7;background-image:none;-webkit-overflow-scrolling:touch}.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-popup-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:400ms;transition-duration:400ms;opacity:0;background:rgba(0,0,0,.4)}.mui-popup-backdrop.mui-active{opacity:1}.mui-popup{position:fixed;z-index:10000;top:50%;left:50%;display:none;overflow:hidden;width:270px;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:translate3d(-50%,-50%,0) scale(1.185);transform:translate3d(-50%,-50%,0) scale(1.185);text-align:center;opacity:0;color:#000;border-radius:13px}.mui-popup.mui-popup-in{display:block;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:1}.mui-popup.mui-popup-out{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:0}.mui-popup-inner{position:relative;padding:15px;border-radius:13px 13px 0 0;background:rgba(255,255,255,.95)}.mui-popup-inner:after{position:absolute;z-index:15;top:auto;right:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;background-color:rgba(0,0,0,.2)}.mui-popup-title{font-size:18px;font-weight:500;text-align:center}.mui-popup-title+.mui-popup-text{font-family:inherit;font-size:14px;margin:5px 0 0}.mui-popup-buttons{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.mui-popup-button{font-size:17px;line-height:44px;position:relative;display:block;overflow:hidden;box-sizing:border-box;width:100%;height:44px;padding:0 5px;cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;background:rgba(255,255,255,.95);-webkit-box-flex:1}.mui-popup-button:after{position:absolute;z-index:15;top:0;right:0;bottom:auto;left:auto;display:block;width:1px;height:100%;content:'';-webkit-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;background-color:rgba(0,0,0,.2)}.mui-popup-button:first-child{border-radius:0 0 0 13px}.mui-popup-button:first-child:last-child{border-radius:0 0 13px 13px}.mui-popup-button:last-child{border-radius:0 0 13px}.mui-popup-button:last-child:after{display:none}.mui-popup-button.mui-popup-button-bold{font-weight:600}.mui-popup-input input{font-size:14px;width:100%;height:26px;margin:15px 0 0;padding:0 5px;border:1px solid rgba(0,0,0,.3);border-radius:0;background:#fff}.mui-plus.mui-android .mui-popup-backdrop{-webkit-transition-duration:1ms;transition-duration:1ms}.mui-plus.mui-android .mui-popup{-webkit-transition-duration:1ms;transition-duration:1ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1)}.mui-progressbar{position:relative;display:block;overflow:hidden;width:100%;height:2px;-webkit-transform-origin:center top;transform-origin:center top;vertical-align:middle;border-radius:2px;background:#b6b6b6;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-progressbar span{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transition:150ms;transition:150ms;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);background:#007aff}.mui-progressbar.mui-progressbar-infinite:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transform-origin:left center;transform-origin:left center;-webkit-animation:mui-progressbar-infinite 1s linear infinite;animation:mui-progressbar-infinite 1s linear infinite;background:#007aff}body>.mui-progressbar{position:absolute;z-index:10000;top:44px;left:0;border-radius:0}.mui-progressbar-in{-webkit-animation:mui-progressbar-in 300ms forwards;animation:mui-progressbar-in 300ms forwards}.mui-progressbar-out{-webkit-animation:mui-progressbar-out 300ms forwards;animation:mui-progressbar-out 300ms forwards}@-webkit-keyframes mui-progressbar-in{from{-webkit-transform:scaleY(0);opacity:0}to{-webkit-transform:scaleY(1);opacity:1}}@keyframes mui-progressbar-in{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@-webkit-keyframes mui-progressbar-out{from{-webkit-transform:scaleY(1);opacity:1}to{-webkit-transform:scaleY(0);opacity:0}}@keyframes mui-progressbar-out{from{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:0}}@-webkit-keyframes mui-progressbar-infinite{0%{-webkit-transform:translate3d(-50%,0,0) scaleX(.5)}100%{-webkit-transform:translate3d(100%,0,0) scaleX(.5)}}@keyframes mui-progressbar-infinite{0%{transform:translate3d(-50%,0,0) scaleX(.5)}100%{transform:translate3d(100%,0,0) scaleX(.5)}}.mui-pagination{display:inline-block;margin:0 auto;padding-left:0;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{line-height:1.428571429;position:relative;float:left;margin-left:-1px;padding:6px 12px;text-decoration:none;color:#007aff;border:1px solid #ddd;background-color:#fff}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px;background-clip:padding-box}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px;background-clip:padding-box}.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;cursor:default;color:#fff;border-color:#007aff;background-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{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{font-size:18px;padding:10px 16px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{font-size:12px;padding:5px 10px}.mui-pager{padding-left:0;list-style:none;text-align:center}.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;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{cursor:default;text-decoration:none;color:#fff;border-color:#007aff;background-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{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-modal{position:fixed;z-index:999;top:0;overflow:hidden;width:100%;min-height:100%;-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);opacity:0;background-color:#fff}.mui-modal.mui-active{height:100%;-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);opacity:1}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;z-index:1;overflow:hidden;width:100%}.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{font-size:0;position:relative;-webkit-transition:all 0s linear;transition:all 0s linear;white-space:nowrap}.mui-slider .mui-slider-group .mui-slider-item{font-size:14px;position:relative;display:inline-block;width:100%;height:100%;vertical-align:top;white-space:normal}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){line-height:0;position:relative;display:block}.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{line-height:30px;position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;text-align:left;text-indent:12px;opacity:.8;background-color:#000}.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;border-radius:50%;background:#aaa;-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{font-size:20px;line-height:30px;width:40px;height:30px;margin:3px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{line-height:32px;display:inline-block;width:58px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-switch{position:relative;display:block;width:74px;height:30px;-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;border:2px solid #ddd;border-radius:20px;background-color:#fff;background-clip:padding-box}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;z-index:1;top:-1px;left:-1px;width:28px;height:28px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left;border-radius:16px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4)}.mui-switch:before{font-size:13px;position:absolute;top:3px;right:11px;content:'Off';text-transform:uppercase;color:#999}.mui-switch.mui-dragging{border-color:#f7f7f7;background-color:#f7f7f7}.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{border-color:#4cd964;background-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate(43px,0);transform:translate(43px,0)}.mui-switch.mui-active:before{right:auto;left:15px;content:'On';color:#fff}.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:translate(16px,0);transform:translate(16px,0)}.mui-switch-blue.mui-active{border:2px solid #007aff;background-color:#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-right:after,.mui-push-left:after,.mui-push-right:after{font-family:Muiicons;font-size:inherit;line-height:1;position:absolute;top:50%;display:inline-block;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-decoration:none;color:#bbb;-webkit-font-smoothing:antialiased}.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;visibility:hidden;overflow:hidden;width:100%;height:50px}.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{font-weight:700;position:absolute;right:0;bottom:10px;left:0;text-align:center;color:#777}.mui-pull-loading{margin-right:10px;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;vertical-align:middle}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{font-size:15px;line-height:24px;position:relative;display:inline-block;overflow:visible;margin-top:0;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{line-height:17px;position:fixed;z-index:9999;bottom:50px;left:50%;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transform:translate(-50%,0);transform:translate(-50%,0);opacity:0}.mui-toast-container.mui-active{opacity:.9}.mui-toast-message{font-size:14px;padding:10px 25px;text-align:center;color:#fff;border-radius:6px;background-color:#323232}.mui-numbox{position:relative;display:inline-block;overflow:hidden;width:120px;height:35px;padding:0 40px;vertical-align:top;vertical-align:middle;border:solid 1px #bbb;border-radius:3px;background-color:#efeff4}.mui-numbox [class*=btn-numbox],.mui-numbox [class*=numbox-btn]{font-size:18px;font-weight:400;line-height:100%;position:absolute;top:0;overflow:hidden;width:40px;height:100%;padding:0;color:#555;border:none;border-radius:0;background-color:#f9f9f9}.mui-numbox [class*=btn-numbox]:active,.mui-numbox [class*=numbox-btn]:active{background-color:#ccc}.mui-numbox [class*=btn-numbox][disabled],.mui-numbox [class*=numbox-btn][disabled]{color:silver}.mui-numbox .mui-btn-numbox-plus,.mui-numbox .mui-numbox-btn-plus{right:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.mui-numbox .mui-btn-numbox-minus,.mui-numbox .mui-numbox-btn-minus{left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.mui-numbox .mui-input-numbox,.mui-numbox .mui-numbox-input{display:inline-block;overflow:hidden;width:100%!important;height:100%;margin:0;padding:0 3px!important;text-align:center;text-overflow:ellipsis;word-break:normal;border:none!important;border-right:solid 1px #ccc!important;border-left:solid 1px #ccc!important;border-radius:0!important}.mui-input-row .mui-numbox{float:right;margin:2px 8px}@font-face{font-family:Muiicons;font-weight:400;font-style:normal;src:url(../fonts/mui.ttf) format('truetype')}.mui-icon{font-family:Muiicons;font-size:24px;font-weight:400;font-style:normal;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-active{color:#007aff}.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-qq:before{content:'\e264'}.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-eye:before{content:'\e568'}.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}.mui-fullscreen.mui-slider .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 .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item>a{top:auto;-webkit-transform:none;transform:none}.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen{top:44px}.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}.mui-android.mui-android-4-2 input,.mui-android.mui-android-4-2 textarea,.mui-android.mui-android-4-3 input,.mui-android.mui-android-4-3 textarea{-webkit-user-select:text}.mui-ios .mui-table-view-cell{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-plus-visible,.mui-wechat-visible{display:none!important}.mui-plus-hidden,.mui-wechat-hidden{display:block!important}.mui-tab-item.mui-plus-hidden,.mui-tab-item.mui-wechat-hidden{display:table-cell!important}.mui-plus .mui-plus-visible,.mui-wechat .mui-wechat-visible{display:block!important}.mui-plus .mui-tab-item.mui-plus-visible,.mui-wechat .mui-tab-item.mui-wechat-visible{display:table-cell!important}.mui-plus .mui-plus-hidden,.mui-wechat .mui-wechat-hidden{display:none!important}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav{height:64px;padding-top:20px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content{padding-top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary,.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content .mui-pull-top-pocket{top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary~.mui-content{padding-top:94px}.mui-iframe-wrapper{position:absolute;right:0;left:0;-webkit-overflow-scrolling:touch}.mui-iframe-wrapper iframe{width:100%;height:100%;border:0} \ No newline at end of file diff --git a/fonts/.DS_Store b/fonts/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/fonts/mui.ttf b/fonts/mui.ttf new file mode 100644 index 0000000000000000000000000000000000000000..45d3b04a371f3351b6dea69de647aa6b394c282b GIT binary patch literal 29884 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 z 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 C=Z*>h literal 0 HcmV?d00001 diff --git a/html/.DS_Store b/html/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0 + + + + + new webview + + + + +
+ +

新窗口

+
+
+

这是subNView模式下打开的新窗口。

+
+ + + + diff --git a/html/tab-webview-subpage-chat.html b/html/tab-webview-subpage-chat.html new file mode 100644 index 0000000..25ec061 --- /dev/null +++ b/html/tab-webview-subpage-chat.html @@ -0,0 +1,150 @@ + + + + + + Hello MUI + + + + + + + + +
+
+
+ 这是subNView模式选项卡中的第1个子页面,该页面展示一个支持单webview模式的下拉刷新、上拉加载的消息列表 +
+ +
+
+ + + + + \ No newline at end of file diff --git a/html/tab-webview-subpage-contact.html b/html/tab-webview-subpage-contact.html new file mode 100644 index 0000000..23cb4ae --- /dev/null +++ b/html/tab-webview-subpage-contact.html @@ -0,0 +1,155 @@ + + + + + + Hello MUI + + + + + + + + + +
+
+ 这是subNView模式选项卡中的第2个子页面,该页面展示一个通讯录示例 +
+ +
    +
  • +
    +
    +
    + +
    +
    +
    +

    叶文洁

    + 董事长 +
    +

    + yewenjie@sina.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    艾AA

    + 总经理 +
    +

    + aaa@163.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    罗辑

    + 员工 +
    +

    + luoji@126.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    云天明

    + 员工 +
    +

    + ytm@163.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    史强

    + 员工 +
    +

    + shiqiang@gmail.com +

    +
    +
    +
    +
  • +
+
+ + + + \ No newline at end of file diff --git a/images/.DS_Store b/images/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..5008ddfcf53c02e82d7eee2e57c38e5672ef89f6 GIT binary patch literal 6148 zcmeH~Jr2S!425mzP>H1@V-^m;4Wg<&0T*E43hX&L&p$$qDprKhvt+--jT7}7np#A3 zem<@ulZcFPQ@L2!n>{z**++&mCkOWA81W14cNZlEfg7;MkzE(HCqgga^y>{tEnwC%0;vJ&^%eQ zLs35+`xjp>T0CBbt3cl%t8kfyY8--lY7B9%C7fB%=eig@HA3FPUezHW<}zlSb0eQQRF7w1qcKAFXBA!*hST z;?aRwfjJgfKbGN4N%sv7`V%hFhty4P*hXoLiPZnolzmYuAAIm3u*{P*%qV52xTfOl zKy;%b$Tg(AZFk{iC}yj9*yZ-gmx@lQRed`}5yT`QYRih`Ka!WPg8SRwOU+9Qyo0!u zH7rrJlC**a$sj|6CSu$DfV;1hNkVl_F+ZrTN+KvFCKuYt&xP&gkZ@j_x7beQ`&TA? ztk)5?6of0wpjHqm54Us_8x-A;6kOi^vICh1Q*HY*fOgOd1Kd z-OL6W94y}X72dawWwT?|6oMuXU@_UlY8-+wrmGC4wF$rhaeiuVIZ)ImwaLEFcWTEj z#W2WIEi~7c1Y+&y>|{x^DwJHG!=YNwKzs?^cTCu#g#LHHn*T;AKc%Hogw2DwmRRLT z#`sPLMm0S*C|R31OkmT)S_7wM5$CiJ~GHt|L9&jQ9j#CM_m4u`tz{9eqc=&ur4Tm z3v}<$AYgY>M$WGKFM?{PyF}|0+owo-_bdY*;)^>O>Z$=#XwI zYdQv&PLxZK%>YTMS3Z%onfl4a8IQ#Tu3Kjr2ZfYAa;1Dgy9HKw1lL>6OeiVPcvgkH zbX(;|2Z`r#)cE`<&e3xZS6KUP%O-*-AdCYxqaYoft|h7Kmrb0ma9R@>p<0(ia|l20 zRCZQEIr&t++n%Cq=h>uwdPOLU1l(Or*7tHI4azK7cH0fPIj#ivH;ZfzPpg?s| zHBMPG_yIzvs=#X*c;~uMJmT*3R znYyRCD>pg3ap9cv)+uZHH_(H`{m>Z`JwJbGJWrnYNA6-X{`1^y-N|oJph_8)&CZv+ z_$Wnd(I;UvT42q7W@XsPum@H&k$y~4F@7qnP9=U;H|tPsr~}9rup`n_krpPq%N+}g zp3(i)_w;t?F&fjTHu4`d53%m9(j32zeag}O9#gLUl@=H=s z@m)}FQHvX%bC?O0x3h9XZsTluCzh;$RK+;9AJ_Rn*Zv6nG*+@K3dJ$uMyMu@ZAXtv ztOop05&Cdb3ET|<9;y{OD*q{!x~|=(zj=hE5VjV#mn>=Oi`TB`*Q*iR$SctBDR4((@R8%v`HWzBS4w{4?xG6BJ0E)k?;>?A;TE`~tH%P^* z&)`;H9&dYBQ*5V*;bpN=Rm(1NC8_PIr{_eIUVhh*dpu!KEwK7`TRHusikK1yg)y12 zsimLG{i*}MBP)aHroJVcZYC>zP{zOF7~N<>ClE7Ow;iVnOn4|Frf-sa%ejkpdC>_c z^CPP)(7beJxo#-1NGwNj{$1)wMm&X(g}&EUjymu8%>p`X*nAo-$}?j-U1diwd{TDO z2x;ZRhzO(8I=bKs4UO9yBf^TZP<=i@&xZmTn?eujs+k_6J&TPLg$r_o- zHIdFtb&`BYr(Z13vWDMDZ^<9RD<%7E*GBayD->#Yuo7qU9kh_!h@PF3HhN5up-?y% z>P5c9&-Y;^1#b&e8M$39nC3WHE%>Djo>;LbFvcgzU-A7qXcuLswK;{LSGYV5Xvd=o z)+aA0IWWj_uQ&*sDYEcHvx|;0m~m+)nRo4G+t+mE8P-wET*y9UR0j^&ZEB=R_wn1YF;NIk4)NgqC8;kY}f# z5l2R*y7jD;rgrDaN@jYw_ZqeGFC8y&Jf@zZ2s!TdQ%Qmk)&)UKh3P2p+}e)e7x0WG z+FN`}=ks*Qzsaj0T1Ut-%t3%nKWgL*eDRSeCHjk^s6 zN*Q=0BKT#QETno5W~`XL%v0=IHr9xlH@w(vh|QMg->B*u^U8s_v1x7Z4s0kZ!{xYZ zT9XNxxZL+O^s@90J50I@RKR}R&P!xiR29m4m>7_+9bcI5o{3qCjvg_5zO=i=o!5)g znQ~dQgS44&`yK|r&!643q3Q}ICUWD|*`H+B{k`?`Uc7826<@;oiAkGp)?nY2ULWb*I$E)#OFf}H&gSNOhOI-mdhx&VaoGI_ z-6_Oq@A#1OpKYnbV?50biY45|MaW<-8&TV<@L1*lJol>2U#V-C{ewQ+kQ23iUt$J>@*!=PwP%Gq^O z5wxS3cQG(PpwW`8XSe9Gft6nAc{|_ZVh3h)Q-`|nO6Uu{fp^q4mmK)g&5ZUZC_5fh zvSFy6l$8+mt91~)e)(WXhq4x-svR~3Gj7w|BLT5+W6uf&<;Yz!6IJ`;w77{pxV9fc zT&iUzZxyG*aI@FcEhsU-q%^B}Qo2x;qaf|o2J4W(h;uD-#*B9>;>&A0K8wQCy<>Rc-Q|!y=fel9O7)33dKmv!tOKRXS|9$$B$| zI{}sZLLcO*`yY+>ys3K+BdGFXQ?jOyT))peFiD4MPlA8;wNwlvNa#K_fJK-gCho`3 zp>A#2bh?7Hi!6H5C@c}%$7g->p?qd22BE_+XwPC@A{+rR6Wj}$62qb9(}pN9|><(<}v7o;yQlT+S|4lkY`lL&|@7quubP-R7f`I7@JC=tXp& zxYB|Yl*~=i?cyUwM3P!esz(3N`g;?*AU!enSUH)x`jNqFKKo!GR*lvnCdZEZD-Smf z!~cZ>|1T>Tp=nB!39u1KX%+AfHmuCh0|w6QG^qppUgTvmIZf zzIKGD!$K#CT z!0xuYE?SgnIu)o#-Uzs6IG4t$tNd3AO9yXlGdDR(A_OFslQipRpisH*|a^~ exXb0^n_F-RN{i;UsTTxV2574rs8y-hz5XBd=aPs3 literal 0 HcmV?d00001 diff --git a/images/ma.png b/images/ma.png new file mode 100644 index 0000000000000000000000000000000000000000..65da879802e257740b4c6cd9f15a567a2f7a3036 GIT binary patch literal 10472 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 em(>S~sQ(`i!-KBfOEm2O0000 + + + + + + + + + + + + + +
+ +
+ + + + + + \ No newline at end of file diff --git a/js/mui.js b/js/mui.js new file mode 100644 index 0000000..d4e4c17 --- /dev/null +++ b/js/mui.js @@ -0,0 +1,8390 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/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') + if ($.isArrayLike(selector)) { + return wrap($.slice.call(selector), null); + } else { + 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; + /** + * mui filter(array) + */ + $.filter = [].filter; + + $.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 isArrayLike + * @param {Object} obj + */ + $.isArrayLike = function(obj) { + var length = !!obj && "length" in obj && obj.length; + var type = $.type(obj); + if (type === "function" || $.isWindow(obj)) { + return false; + } + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && (length - 1) in obj; + }; + /** + * 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 isEmptyObject + * @param {Object} o + */ + $.isEmptyObject = function(o) { + for (var p in o) { + if (p !== undefined) { + return false; + } + } + return true; + }; + /** + * 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; + }; + /** + * 将 fn 缓存一段时间后, 再被调用执行 + * 此方法为了避免在 ms 段时间内, 执行 fn 多次. 常用于 resize , scroll , mousemove 等连续性事件中; + * 当 ms 设置为 -1, 表示立即执行 fn, 即和直接调用 fn 一样; + * 调用返回函数的 stop 停止最后一次的 buffer 效果 + * @param {Object} fn + * @param {Object} ms + * @param {Object} context + */ + $.buffer = function(fn, ms, context) { + var timer; + var lastStart = 0; + var lastEnd = 0; + var ms = ms || 150; + + function run() { + if (timer) { + timer.cancel(); + timer = 0; + } + lastStart = $.now(); + fn.apply(context || this, arguments); + lastEnd = $.now(); + } + + return $.extend(function() { + if ( + (!lastStart) || // 从未运行过 + (lastEnd >= lastStart && $.now() - lastEnd > ms) || // 上次运行成功后已经超过ms毫秒 + (lastEnd < lastStart && $.now() - lastStart > ms * 8) // 上次运行或未完成,后8*ms毫秒 + ) { + run.apply(this, arguments); + } else { + if (timer) { + timer.cancel(); + } + timer = $.later(run, ms, null, $.slice.call(arguments)); + } + }, { + stop: function() { + if (timer) { + timer.cancel(); + timer = 0; + } + } + }); + }; + /** + * each + * @param {type} elements + * @param {type} callback + * @returns {_L8.$} + */ + $.each = function(elements, callback, hasOwnProperty) { + 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 (hasOwnProperty) { + if (elements.hasOwnProperty(key)) { + if (callback.call(elements[key], key, elements[key]) === false) return elements; + } + } else { + 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; + }; + $.hooks = {}; + $.addAction = function(type, hook) { + var hooks = $.hooks[type]; + if (!hooks) { + hooks = []; + } + hook.index = hook.index || 1000; + hooks.push(hook); + hooks.sort(function(a, b) { + return a.index - b.index; + }); + $.hooks[type] = hooks; + return $.hooks[type]; + }; + $.doAction = function(type, callback) { + if ($.isFunction(callback)) { //指定了callback + $.each($.hooks[type], callback); + } else { //未指定callback,直接执行 + $.each($.hooks[type], function(index, hook) { + return !hook.handle(); + }); + } + }; + /** + * setTimeout封装 + * @param {Object} fn + * @param {Object} when + * @param {Object} context + * @param {Object} data + */ + $.later = function(fn, when, context, data) { + when = when || 0; + var m = fn; + var d = data; + var f; + var r; + + if (typeof fn === 'string') { + m = context[fn]; + } + + f = function() { + m.apply(context, $.isArray(d) ? d : [d]); + }; + + r = setTimeout(f, when); + + return { + id: r, + cancel: function() { + clearTimeout(r); + } + }; + }; + $.now = Date.now || function() { + return +new Date(); + }; + 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; + } + }; + + /** + * 兼容 AMD 模块 + **/ + if (typeof define === 'function' && define.amd) { + define('mui', [], function() { + return $; + }); + } + + return $; +})(document); +//window.mui = mui; +//'$' in window || (window.$ = mui); +/** + * $.os + * @param {type} $ + * @returns {undefined} + */ +(function($, window) { + function detect(ua) { + this.os = {}; + var funcs = [ + + function() { //wechat + var wechat = ua.match(/(MicroMessenger)\/([\d\.]+)/i); + if (wechat) { //wechat + this.os.wechat = { + version: wechat[2].replace(/_/g, '.') + }; + } + return false; + }, + 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($, document) { + function detect(ua) { + this.os = this.os || {}; + var plus = ua.match(/Html5Plus/i); //TODO 5\+Browser? + if (plus) { + this.os.plus = true; + $(function() { + document.body.classList.add('mui-plus'); + }); + if (ua.match(/StreamApp/i)) { //TODO 最好有流应用自己的标识 + this.os.stream = true; + $(function() { + document.body.classList.add('mui-plus-stream'); + }); + } + } + } + detect.call($, navigator.userAgent); +})(mui, document); +/** + * 仅提供简单的on,off(仅支持事件委托,不支持当前元素绑定,当前元素绑定请直接使用addEventListener,removeEventListener) + * @param {Object} $ + */ +(function($) { + if ('ontouchstart' in window) { + $.isTouchable = true; + $.EVENT_START = 'touchstart'; + $.EVENT_MOVE = 'touchmove'; + $.EVENT_END = 'touchend'; + } else { + $.isTouchable = false; + $.EVENT_START = 'mousedown'; + $.EVENT_MOVE = 'mousemove'; + $.EVENT_END = 'mouseup'; + } + $.EVENT_CANCEL = 'touchcancel'; + $.EVENT_CLICK = 'click'; + + var _mid = 1; + var delegates = {}; + //需要wrap的函数 + var eventMethods = { + preventDefault: 'isDefaultPrevented', + stopImmediatePropagation: 'isImmediatePropagationStopped', + stopPropagation: 'isPropagationStopped' + }; + //默认true返回函数 + var returnTrue = function() { + return true + }; + //默认false返回函数 + var returnFalse = function() { + return false + }; + //wrap浏览器事件 + var compatible = function(event, target) { + if (!event.detail) { + event.detail = { + currentTarget: target + }; + } else { + event.detail.currentTarget = target; + } + $.each(eventMethods, function(name, predicate) { + var sourceMethod = event[name]; + event[name] = function() { + this[predicate] = returnTrue; + return sourceMethod && sourceMethod.apply(event, arguments) + } + event[predicate] = returnFalse; + }, true); + return event; + }; + //简单的wrap对象_mid + var mid = function(obj) { + return obj && (obj._mid || (obj._mid = _mid++)); + }; + //事件委托对象绑定的事件回调列表 + var delegateFns = {}; + //返回事件委托的wrap事件回调 + var delegateFn = function(element, event, selector, callback) { + return function(e) { + //same event + var callbackObjs = delegates[element._mid][event]; + var handlerQueue = []; + var target = e.target; + var selectorAlls = {}; + for (; target && target !== document; target = target.parentNode) { + if (target === element) { + break; + } + if (~['click', 'tap', 'doubletap', 'longtap', 'hold'].indexOf(event) && (target.disabled || target.classList.contains('mui-disabled'))) { + break; + } + var matches = {}; + $.each(callbackObjs, function(selector, callbacks) { //same selector + selectorAlls[selector] || (selectorAlls[selector] = $.qsa(selector, element)); + if (selectorAlls[selector] && ~(selectorAlls[selector]).indexOf(target)) { + if (!matches[selector]) { + matches[selector] = callbacks; + } + } + }, true); + if (!$.isEmptyObject(matches)) { + handlerQueue.push({ + element: target, + handlers: matches + }); + } + } + selectorAlls = null; + e = compatible(e); //compatible event + $.each(handlerQueue, function(index, handler) { + target = handler.element; + var tagName = target.tagName; + if (event === 'tap' && (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT')) { + e.preventDefault(); + e.detail && e.detail.gesture && e.detail.gesture.preventDefault(); + } + $.each(handler.handlers, function(index, handler) { + $.each(handler, function(index, callback) { + if (callback.call(target, e) === false) { + e.preventDefault(); + e.stopPropagation(); + } + }, true); + }, true) + if (e.isPropagationStopped()) { + return false; + } + }, true); + }; + }; + var findDelegateFn = function(element, event) { + var delegateCallbacks = delegateFns[mid(element)]; + var result = []; + if (delegateCallbacks) { + result = []; + if (event) { + var filterFn = function(fn) { + return fn.type === event; + } + return delegateCallbacks.filter(filterFn); + } else { + result = delegateCallbacks; + } + } + return result; + }; + var preventDefaultException = /^(INPUT|TEXTAREA|BUTTON|SELECT)$/; + /** + * mui delegate events + * @param {type} event + * @param {type} selector + * @param {type} callback + * @returns {undefined} + */ + $.fn.on = function(event, selector, callback) { //仅支持简单的事件委托,主要是tap事件使用,类似mouse,focus之类暂不封装支持 + return this.each(function() { + var element = this; + mid(element); + mid(callback); + var isAddEventListener = false; + var delegateEvents = delegates[element._mid] || (delegates[element._mid] = {}); + var delegateCallbackObjs = delegateEvents[event] || ((delegateEvents[event] = {})); + if ($.isEmptyObject(delegateCallbackObjs)) { + isAddEventListener = true; + } + var delegateCallbacks = delegateCallbackObjs[selector] || (delegateCallbackObjs[selector] = []); + delegateCallbacks.push(callback); + if (isAddEventListener) { + var delegateFnArray = delegateFns[mid(element)]; + if (!delegateFnArray) { + delegateFnArray = []; + } + var delegateCallback = delegateFn(element, event, selector, callback); + delegateFnArray.push(delegateCallback); + delegateCallback.i = delegateFnArray.length - 1; + delegateCallback.type = event; + delegateFns[mid(element)] = delegateFnArray; + element.addEventListener(event, delegateCallback); + if (event === 'tap') { //TODO 需要找个更好的解决方案 + element.addEventListener('click', function(e) { + if (e.target) { + var tagName = e.target.tagName; + if (!preventDefaultException.test(tagName)) { + if (tagName === 'A') { + var href = e.target.href; + if (!(href && ~href.indexOf('tel:'))) { + e.preventDefault(); + } + } else { + e.preventDefault(); + } + } + } + }); + } + } + }); + }; + $.fn.off = function(event, selector, callback) { + return this.each(function() { + var _mid = mid(this); + if (!event) { //mui(selector).off(); + delegates[_mid] && delete delegates[_mid]; + } else if (!selector) { //mui(selector).off(event); + delegates[_mid] && delete delegates[_mid][event]; + } else if (!callback) { //mui(selector).off(event,selector); + delegates[_mid] && delegates[_mid][event] && delete delegates[_mid][event][selector]; + } else { //mui(selector).off(event,selector,callback); + var delegateCallbacks = delegates[_mid] && delegates[_mid][event] && delegates[_mid][event][selector]; + $.each(delegateCallbacks, function(index, delegateCallback) { + if (mid(delegateCallback) === mid(callback)) { + delegateCallbacks.splice(index, 1); + return false; + } + }, true); + } + if (delegates[_mid]) { + //如果off掉了所有当前element的指定的event事件,则remove掉当前element的delegate回调 + if ((!delegates[_mid][event] || $.isEmptyObject(delegates[_mid][event]))) { + findDelegateFn(this, event).forEach(function(fn) { + this.removeEventListener(fn.type, fn); + delete delegateFns[_mid][fn.i]; + }.bind(this)); + } + } else { + //如果delegates[_mid]已不存在,删除所有 + findDelegateFn(this).forEach(function(fn) { + this.removeEventListener(fn.type, fn); + delete delegateFns[_mid][fn.i]; + }.bind(this)); + } + }); + + }; +})(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($.EVENT_START, 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; + } + } + }); + window.addEventListener('click', function(event) { //解决touch与click的target不一致的问题(比如链接边缘点击时,touch的target为html,而click的target为A) + var target = event.target; + var isFound = false; + for (; target && target !== document; target = target.parentNode) { + if (target.tagName === 'A') { + $.each($.targetHandles, function(index, targetHandle) { + var name = targetHandle.name; + if (targetHandle.hasOwnProperty('handle')) { + if (targetHandle.handle(event, target)) { + isFound = true; + event.preventDefault(); + return 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; + } +})(); +/* + A shim for non ES5 supporting browsers. + Adds function bind to Function prototype, so that you can do partial application. + Works even with the nasty thing, where the first word is the opposite of extranet, the second one is the profession of Columbus, and the version number is 9, flipped 180 degrees. +*/ + +Function.prototype.bind = Function.prototype.bind || function(to) { + // Make an array of our arguments, starting from second argument + var partial = Array.prototype.splice.call(arguments, 1), + // We'll need the original function. + fn = this; + var bound = function() { + // Join the already applied arguments to the now called ones (after converting to an array again). + var args = partial.concat(Array.prototype.splice.call(arguments, 0)); + // If not being called as a constructor + if (!(this instanceof bound)) { + // return the result of the function called bound to target and partially applied. + return fn.apply(to, args); + } + // If being called as a constructor, apply the function bound to self. + fn.apply(this, args); + } + // Attach the prototype of the function to our newly created function. + bound.prototype = fn.prototype; + return bound; +}; +/** + * 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 (!$.os.android && !$.os.ios) { //目前仅识别android和ios + return; + } + if (window.FastClick) { + return; + } + + var handle = function(event, target) { + if (target.tagName === 'LABEL') { + if (target.parentNode) { + target = target.parentNode.querySelector('input'); + } + } + if (target && (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); + event.detail && event.detail.gesture.preventDefault(); + } + }; + 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; + //TODO 需考虑所有键盘弹起的情况 + if (target.tagName && (target.tagName === 'TEXTAREA' || (target.tagName === 'INPUT' && (target.type === 'text' || target.type === 'search' || target.type === 'number')))) { + if (target.disabled || target.readOnly) { + return; + } + 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) { + $.gestures = { + session: {} + }; + /** + * 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} + */ + $.addGesture = function(gesture) { + return $.addAction('gestures', gesture); + + }; + + var round = Math.round; + var abs = Math.abs; + var sqrt = Math.sqrt; + var atan = Math.atan; + var atan2 = Math.atan2; + /** + * distance + * @param {type} p1 + * @param {type} p2 + * @returns {Number} + */ + var getDistance = function(p1, p2, props) { + if(!props) { + props = ['x', 'y']; + } + var x = p2[props[0]] - p1[props[0]]; + var y = p2[props[1]] - p1[props[1]]; + return sqrt((x * x) + (y * y)); + }; + /** + * scale + * @param {Object} starts + * @param {Object} moves + */ + var getScale = function(starts, moves) { + if(starts.length >= 2 && moves.length >= 2) { + var props = ['pageX', 'pageY']; + return getDistance(moves[1], moves[0], props) / getDistance(starts[1], starts[0], props); + } + return 1; + }; + /** + * angle + * @param {type} p1 + * @param {type} p2 + * @returns {Number} + */ + var getAngle = function(p1, p2, props) { + if(!props) { + props = ['x', 'y']; + } + var x = p2[props[0]] - p1[props[0]]; + var y = p2[props[1]] - p1[props[1]]; + return atan2(y, x) * 180 / Math.PI; + }; + /** + * direction + * @param {Object} x + * @param {Object} y + */ + var getDirection = function(x, y) { + if(x === y) { + return ''; + } + if(abs(x) >= abs(y)) { + return x > 0 ? 'left' : 'right'; + } + return y > 0 ? 'up' : 'down'; + }; + /** + * rotation + * @param {Object} start + * @param {Object} end + */ + var getRotation = function(start, end) { + var props = ['pageX', 'pageY']; + return getAngle(end[1], end[0], props) - getAngle(start[1], start[0], props); + }; + /** + * px per ms + * @param {Object} deltaTime + * @param {Object} x + * @param {Object} y + */ + var getVelocity = function(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; + }; + /** + * detect gestures + * @param {type} event + * @param {type} touch + * @returns {undefined} + */ + var detect = function(event, touch) { + if($.gestures.stoped) { + return; + } + $.doAction('gestures', function(index, gesture) { + if(!$.gestures.stoped) { + if($.options.gestureConfig[gesture.name] !== false) { + gesture.handle(event, touch); + } + } + }); + }; + /** + * 暂时无用 + * @param {Object} node + * @param {Object} parent + */ + var hasParent = function(node, parent) { + while(node) { + if(node == parent) { + return true; + } + node = node.parentNode; + } + return false; + }; + + var uniqueArray = function(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + while(i < src.length) { + var val = key ? src[i][key] : src[i]; + if(values.indexOf(val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } + + if(sort) { + if(!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } + + return results; + }; + var getMultiCenter = function(touches) { + var touchesLength = touches.length; + if(touchesLength === 1) { + return { + x: round(touches[0].pageX), + y: round(touches[0].pageY) + }; + } + + var x = 0; + var y = 0; + var i = 0; + while(i < touchesLength) { + x += touches[i].pageX; + y += touches[i].pageY; + i++; + } + + return { + x: round(x / touchesLength), + y: round(y / touchesLength) + }; + }; + var multiTouch = function() { + return $.options.gestureConfig.pinch; + }; + var copySimpleTouchData = function(touch) { + var touches = []; + var i = 0; + while(i < touch.touches.length) { + touches[i] = { + pageX: round(touch.touches[i].pageX), + pageY: round(touch.touches[i].pageY) + }; + i++; + } + return { + timestamp: $.now(), + gesture: touch.gesture, + touches: touches, + center: getMultiCenter(touch.touches), + deltaX: touch.deltaX, + deltaY: touch.deltaY + }; + }; + + var calDelta = function(touch) { + var session = $.gestures.session; + var center = touch.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevTouch = session.prevTouch || {}; + + if(touch.gesture.type === $.EVENT_START || touch.gesture.type === $.EVENT_END) { + prevDelta = session.prevDelta = { + x: prevTouch.deltaX || 0, + y: prevTouch.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + touch.deltaX = prevDelta.x + (center.x - offset.x); + touch.deltaY = prevDelta.y + (center.y - offset.y); + }; + var calTouchData = function(touch) { + var session = $.gestures.session; + var touches = touch.touches; + var touchesLength = touches.length; + + if(!session.firstTouch) { + session.firstTouch = copySimpleTouchData(touch); + } + + if(multiTouch() && touchesLength > 1 && !session.firstMultiTouch) { + session.firstMultiTouch = copySimpleTouchData(touch); + } else if(touchesLength === 1) { + session.firstMultiTouch = false; + } + + var firstTouch = session.firstTouch; + var firstMultiTouch = session.firstMultiTouch; + var offsetCenter = firstMultiTouch ? firstMultiTouch.center : firstTouch.center; + + var center = touch.center = getMultiCenter(touches); + touch.timestamp = $.now(); + touch.deltaTime = touch.timestamp - firstTouch.timestamp; + + touch.angle = getAngle(offsetCenter, center); + touch.distance = getDistance(offsetCenter, center); + + calDelta(touch); + + touch.offsetDirection = getDirection(touch.deltaX, touch.deltaY); + + touch.scale = firstMultiTouch ? getScale(firstMultiTouch.touches, touches) : 1; + touch.rotation = firstMultiTouch ? getRotation(firstMultiTouch.touches, touches) : 0; + + calIntervalTouchData(touch); + + }; + var CAL_INTERVAL = 25; + var calIntervalTouchData = function(touch) { + var session = $.gestures.session; + var last = session.lastInterval || touch; + var deltaTime = touch.timestamp - last.timestamp; + var velocity; + var velocityX; + var velocityY; + var direction; + + if(touch.gesture.type != $.EVENT_CANCEL && (deltaTime > CAL_INTERVAL || last.velocity === undefined)) { + var deltaX = last.deltaX - touch.deltaX; + var deltaY = last.deltaY - touch.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY) || last.direction; + + session.lastInterval = touch; + } else { + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + touch.velocity = velocity; + touch.velocityX = velocityX; + touch.velocityY = velocityY; + touch.direction = direction; + }; + var targetIds = {}; + var convertTouches = function(touches) { + for(var i = 0; i < touches.length; i++) { + !touches['identifier'] && (touches['identifier'] = 0); + } + return touches; + }; + var getTouches = function(event, touch) { + var allTouches = convertTouches($.slice.call(event.touches || [event])); + + var type = event.type; + + var targetTouches = []; + var changedTargetTouches = []; + + //当touchstart或touchmove且touches长度为1,直接获得all和changed + if((type === $.EVENT_START || type === $.EVENT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + targetTouches = allTouches; + changedTargetTouches = allTouches; + touch.target = event.target; + } else { + var i = 0; + var targetTouches = []; + var changedTargetTouches = []; + var changedTouches = convertTouches($.slice.call(event.changedTouches || [event])); + + touch.target = event.target; + var sessionTarget = $.gestures.session.target || event.target; + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, sessionTarget); + }); + + if(type === $.EVENT_START) { + i = 0; + while(i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } + } + + i = 0; + while(i < changedTouches.length) { + if(targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + if(type === $.EVENT_END || type === $.EVENT_CANCEL) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if(!changedTargetTouches.length) { + return false; + } + } + targetTouches = uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true); + var touchesLength = targetTouches.length; + var changedTouchesLength = changedTargetTouches.length; + if(type === $.EVENT_START && touchesLength - changedTouchesLength === 0) { //first + touch.isFirst = true; + $.gestures.touch = $.gestures.session = { + target: event.target + }; + } + touch.isFinal = ((type === $.EVENT_END || type === $.EVENT_CANCEL) && (touchesLength - changedTouchesLength === 0)); + + touch.touches = targetTouches; + touch.changedTouches = changedTargetTouches; + return true; + + }; + var handleTouchEvent = function(event) { + var touch = { + gesture: event + }; + var touches = getTouches(event, touch); + if(!touches) { + return; + } + calTouchData(touch); + detect(event, touch); + $.gestures.session.prevTouch = touch; + if(event.type === $.EVENT_END && !$.isTouchable) { + $.gestures.touch = $.gestures.session = {}; + } + }; + var supportsPassive = (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + supportsPassive = true; + }, + }); + window.addEventListener('testPassiveListener', null, opts); + } catch(e) { + // No support + } + return supportsPassive; + }()) + window.addEventListener($.EVENT_START, handleTouchEvent); + window.addEventListener($.EVENT_MOVE, handleTouchEvent, supportsPassive ? { + passive: false, + capture: false + } : false); + window.addEventListener($.EVENT_END, handleTouchEvent); + window.addEventListener($.EVENT_CANCEL, handleTouchEvent); + //fixed hashchange(android) + window.addEventListener($.EVENT_CLICK, function(e) { + //TODO 应该判断当前target是不是在targets.popover内部,而不是非要相等 + if(($.os.android || $.os.ios) && (($.targets.popover && e.target === $.targets.popover) || ($.targets.tab) || $.targets.offcanvas || $.targets.modal)) { + e.preventDefault(); + } + }, true); + + //增加原生滚动识别 + $.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 flickStartTime = 0; + var handle = function(event, touch) { + var session = $.gestures.session; + var options = this.options; + var now = $.now(); + switch (event.type) { + case $.EVENT_MOVE: + if (now - flickStartTime > 300) { + flickStartTime = now; + session.flickStart = touch.center; + } + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + touch.flick = false; + if (session.flickStart && options.flickMaxTime > (now - flickStartTime) && touch.distance > options.flickMinDistince) { + touch.flick = true; + touch.flickTime = now - flickStartTime; + touch.flickDistanceX = touch.center.x - session.flickStart.x; + touch.flickDistanceY = touch.center.y - session.flickStart.y; + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + } + break; + } + + }; + /** + * mui gesture flick + */ + $.addGesture({ + 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) { + var session = $.gestures.session; + if (event.type === $.EVENT_END || event.type === $.EVENT_CANCEL) { + var options = this.options; + touch.swipe = false; + //TODO 后续根据velocity计算 + if (touch.direction && options.swipeMaxTime > touch.deltaTime && touch.distance > options.swipeMinDistince) { + touch.swipe = true; + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + } + } + }; + /** + * mui gesture swipe + */ + $.addGesture({ + 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) { + var session = $.gestures.session; + switch (event.type) { + case $.EVENT_START: + break; + case $.EVENT_MOVE: + if (!touch.direction || !session.target) { + return; + } + //修正direction,可在session期间自行锁定拖拽方向,方便开发scroll类不同方向拖拽插件嵌套 + if (session.lockDirection && session.startDirection) { + if (session.startDirection && session.startDirection !== touch.direction) { + if (session.startDirection === 'up' || session.startDirection === 'down') { + touch.direction = touch.deltaY < 0 ? 'up' : 'down'; + } else { + touch.direction = touch.deltaX < 0 ? 'left' : 'right'; + } + } + } + + if (!session.drag) { + session.drag = true; + $.trigger(session.target, name + 'start', touch); + } + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if (session.drag && touch.isFinal) { + $.trigger(session.target, name + 'end', touch); + } + break; + } + }; + /** + * mui gesture drag + */ + $.addGesture({ + name: name, + index: 20, + handle: handle, + options: { + fingers: 1 + } + }); +})(mui, 'drag'); +/** + * mui gesture tap and doubleTap + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var lastTarget; + var lastTapTime; + var handle = function(event, touch) { + var session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_END: + if (!touch.isFinal) { + return; + } + var target = session.target; + if (!target || (target.disabled || (target.classList && target.classList.contains('mui-disabled')))) { + return; + } + if (touch.distance < options.tapMaxDistance && touch.deltaTime < options.tapMaxTime) { + if ($.options.gestureConfig.doubletap && lastTarget && (lastTarget === target)) { //same target + if (lastTapTime && (touch.timestamp - lastTapTime) < options.tapMaxInterval) { + $.trigger(target, 'doubletap', touch); + lastTapTime = $.now(); + lastTarget = target; + return; + } + } + $.trigger(target, name, touch); + lastTapTime = $.now(); + lastTarget = target; + } + break; + } + }; + /** + * mui gesture tap + */ + $.addGesture({ + name: name, + index: 30, + handle: handle, + options: { + fingers: 1, + 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 session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_START: + clearTimeout(timer); + timer = setTimeout(function() { + $.trigger(session.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 + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + fingers: 1, + 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 session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_START: + if ($.options.gestureConfig.hold) { + timer && clearTimeout(timer); + timer = setTimeout(function() { + touch.hold = true; + $.trigger(session.target, name, touch); + }, options.holdTimeout); + } + break; + case $.EVENT_MOVE: + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if (timer) { + clearTimeout(timer) && (timer = null); + $.trigger(session.target, 'release', touch); + } + break; + } + }; + /** + * mui gesture hold + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + fingers: 1, + holdTimeout: 0 + } + }); +})(mui, 'hold'); +/** + * mui gesture pinch + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var handle = function(event, touch) { + var options = this.options; + var session = $.gestures.session; + switch (event.type) { + case $.EVENT_START: + break; + case $.EVENT_MOVE: + if ($.options.gestureConfig.pinch) { + if (touch.touches.length < 2) { + return; + } + if (!session.pinch) { //start + session.pinch = true; + $.trigger(session.target, name + 'start', touch); + } + $.trigger(session.target, name, touch); + var scale = touch.scale; + var rotation = touch.rotation; + var lastScale = typeof touch.lastScale === 'undefined' ? 1 : touch.lastScale; + var scaleDiff = 0.000000000001; //防止scale与lastScale相等,不触发事件的情况。 + if (scale > lastScale) { //out + lastScale = scale - scaleDiff; + $.trigger(session.target, name + 'out', touch); + } //in + else if (scale < lastScale) { + lastScale = scale + scaleDiff; + $.trigger(session.target, name + 'in', touch); + } + if (Math.abs(rotation) > options.minRotationAngle) { + $.trigger(session.target, 'rotate', touch); + } + } + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if ($.options.gestureConfig.pinch && session.pinch && touch.touches.length === 2) { + session.pinch = false; + $.trigger(session.target, name + 'end', touch); + } + break; + } + }; + /** + * mui gesture pinch + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + minRotationAngle: 0 + } + }); +})(mui, 'pinch'); +/** + * mui.init + * @param {type} $ + * @returns {undefined} + */ +(function($) { + $.global = $.options = { + gestureConfig: { + tap: true, + doubletap: false, + longtap: false, + hold: false, + flick: true, + swipe: true, + drag: true, + pinch: false + } + }; + /** + * + * @param {type} options + * @returns {undefined} + */ + $.initGlobal = function(options) { + $.options = $.extend(true, $.global, options); + return this; + }; + var inits = {}; + + /** + * 单页配置 初始化 + * @param {object} options + */ + $.init = function(options) { + $.options = $.extend(true, $.global, options || {}); + $.ready(function() { + $.doAction('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 + */ + $.addInit = function(init) { + return $.addAction('inits', init); + }; + /** + * 处理html5版本subpages + */ + $.addInit({ + name: 'iframe', + index: 100, + handle: function() { + var options = $.options; + var subpages = options.subpages || []; + if (!$.os.plus && subpages.length) { + //暂时只处理单个subpage。后续可以考虑支持多个subpage + createIframe(subpages[0]); + } + } + }); + var createIframe = function(options) { + var wrapper = document.createElement('div'); + wrapper.className = 'mui-iframe-wrapper'; + var styles = options.styles || {}; + if (typeof styles.top !== 'string') { + styles.top = '0px'; + } + if (typeof styles.bottom !== 'string') { + styles.bottom = '0px'; + } + wrapper.style.top = styles.top; + wrapper.style.bottom = styles.bottom; + var iframe = document.createElement('iframe'); + iframe.src = options.url; + iframe.id = options.id || options.url; + iframe.name = iframe.id; + wrapper.appendChild(iframe); + document.body.appendChild(wrapper); + //目前仅处理微信 + $.os.wechat && handleScroll(wrapper, iframe); + }; + + function handleScroll(wrapper, iframe) { + var key = 'MUI_SCROLL_POSITION_' + document.location.href + '_' + iframe.src; + var scrollTop = (parseFloat(localStorage.getItem(key)) || 0); + if (scrollTop) { + (function(y) { + iframe.onload = function() { + window.scrollTo(0, y); + }; + })(scrollTop); + } + setInterval(function() { + var _scrollTop = window.scrollY; + if (scrollTop !== _scrollTop) { + localStorage.setItem(key, _scrollTop + ''); + scrollTop = _scrollTop; + } + }, 100); + }; + $(function() { + var classList = document.body.classList; + var os = []; + if ($.os.ios) { + os.push({ + os: 'ios', + version: $.os.version + }); + classList.add('mui-ios'); + } else if ($.os.android) { + os.push({ + os: 'android', + version: $.os.version + }); + classList.add('mui-android'); + } + if ($.os.wechat) { + os.push({ + os: 'wechat', + version: $.os.wechat.version + }); + classList.add('mui-wechat'); + } + if (os.length) { + $.each(os, function(index, osObj) { + var version = ''; + var classArray = []; + if (osObj.version) { + $.each(osObj.version.split('.'), function(i, v) { + version = version + (version ? '-' : '') + v; + classList.add($.className(osObj.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 + }, + titleConfig: { + height: "44px", + backgroundColor: "#f7f7f7", //导航栏背景色 + bottomBorderColor: "#cccccc", //底部边线颜色 + title: { //标题配置 + text: "", //标题文字 + position: { + top: 0, + left: 0, + width: "100%", + height: "100%" + }, + styles: { + color: "#000000", + align: "center", + family: "'Helvetica Neue',Helvetica,sans-serif", + size: "17px", + style: "normal", + weight: "normal", + fontSrc: "" + } + }, + back: { + image: { + base64Data: '', + imgSrc: '', + sprite: { + top: '0px', + left: '0px', + width: '100%', + height: '100%' + }, + position: { + top: "10px", + left: "10px", + width: "24px", + height: "24px" + } + } + } + } + }; + + //默认页面动画 + var defaultShow = { + event:"titleUpdate", + autoShow: true, + duration: 300, + aniShow: 'slide-in-right', + extras:{} + }; + //若执行了显示动画初始化操作,则要覆盖默认配置 + if($.options.show) { + defaultShow = $.extend(true, defaultShow, $.options.show); + } + + $.currentWebview = null; + + $.extend(true, $.global, defaultOptions); + $.extend(true, $.options, defaultOptions); + /** + * 等待动画配置 + * @param {type} options + * @returns {Object} + */ + $.waitingOptions = function(options) { + return $.extend(true, {}, { + autoShow: true, + title: '', + modal: false + }, options); + }; + /** + * 窗口显示配置 + * @param {type} options + * @returns {Object} + */ + $.showOptions = function(options) { + return $.extend(true, {}, 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) { + setTimeout(function() { //解决callback与plusready事件的执行时机问题(典型案例:showWaiting,closeWaiting) + callback(); + }, 0); + } 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) { + if(typeof data === 'undefined') { + data = ''; + } else if(typeof data === 'boolean' || typeof data === 'number') { + webview.evalJS("typeof mui!=='undefined'&&mui.receive('" + eventType + "'," + data + ")"); + return; + } else if($.isPlainObject(data) || $.isArray(data)) { + data = JSON.stringify(data || {}).replace(/\'/g, "\\u0027").replace(/\\/g, "\\u005c"); + } + webview.evalJS("typeof mui!=='undefined'&&mui.receive('" + eventType + "','" + data + "')"); + } + }; + /** + * 5+ event(5+没提供之前我自己实现) + * @param {type} eventType + * @param {type} data + * @returns {undefined} + */ + $.receive = function(eventType, data) { + if(eventType) { + try { + if(data && typeof data === 'string') { + data = JSON.parse(data); + } + } catch(e) {} + $.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(typeof url === 'object') { + options = url; + url = options.url; + id = options.id || url; + } else { + if(typeof id === 'object') { + options = id; + id = options.id || url; + } else { + id = id || url; + } + } + if(!$.os.plus) { + //TODO 先临时这么处理:手机上顶层跳,PC上parent跳 + if($.os.ios || $.os.android) { + window.top.location.href = url; + } else { + window.parent.location.href = url; + } + return; + } + if(!window.plus) { + return; + } + + options = options || {}; + var params = options.params || {}; + var webview = null, + webviewCache = null, + nShow, nWaiting; + + if($.webviews[id]) { + webviewCache = $.webviews[id]; + //webview真实存在,才能获取 + if(plus.webview.getWebviewById(id)) { + webview = webviewCache.webview; + } + } else if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + if(webview) { //已缓存 + //每次show都需要传递动画参数; + //预加载的动画参数优先级:openWindow配置>preloadPages配置>mui默认配置; + nShow = webviewCache ? webviewCache.show : defaultShow; + nShow = options.show ? $.extend(nShow, options.show) : nShow; + nShow.autoShow && webview.show(nShow.aniShow, nShow.duration, function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }); + if(webviewCache) { + webviewCache.afterShowMethodName && webview.evalJS(webviewCache.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + } + return webview; + } else { //新窗口 + if(!url) { + throw new Error('webview[' + id + '] does not exist'); + } + + //显示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) { + var showWebview = function() { + //关闭等待框 + if(nWaiting) { + nWaiting.close(); + } + //显示页面 + webview.show(nShow.aniShow, nShow.duration, function() {},nShow.extras); + options.afterShowMethodName && webview.evalJS(options.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + }; + //titleUpdate触发时机早于loaded,更换为titleUpdate后,可以更早的显示webview + webview.addEventListener(nShow.event, showWebview, false); + //loaded事件发生后,触发预加载和pagebeforeshow事件 + webview.addEventListener("loaded", function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }, false); + } + } + return webview; + }; + + $.openWindowWithTitle = function(options, titleConfig) { + options = options || {}; + var url = options.url; + var id = options.id || url; + + if(!$.os.plus) { + //TODO 先临时这么处理:手机上顶层跳,PC上parent跳 + if($.os.ios || $.os.android) { + window.top.location.href = url; + } else { + window.parent.location.href = url; + } + return; + } + if(!window.plus) { + return; + } + + var params = options.params || {}; + var webview = null, + webviewCache = null, + nShow, nWaiting; + + if($.webviews[id]) { + webviewCache = $.webviews[id]; + //webview真实存在,才能获取 + if(plus.webview.getWebviewById(id)) { + webview = webviewCache.webview; + } + } else if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + if(webview) { //已缓存 + //每次show都需要传递动画参数; + //预加载的动画参数优先级:openWindow配置>preloadPages配置>mui默认配置; + nShow = webviewCache ? webviewCache.show : defaultShow; + nShow = options.show ? $.extend(nShow, options.show) : nShow; + nShow.autoShow && webview.show(nShow.aniShow, nShow.duration, function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }); + if(webviewCache) { + webviewCache.afterShowMethodName && webview.evalJS(webviewCache.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + } + return webview; + } else { //新窗口 + if(!url) { + throw new Error('webview[' + id + '] does not exist'); + } + + //显示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); + + if(titleConfig) { //处理原生头 + $.extend(true, $.options.titleConfig, titleConfig); + var tid = $.options.titleConfig.id ? $.options.titleConfig.id : id + "_title"; + var view = new plus.nativeObj.View(tid, { + top: 0, + height: $.options.titleConfig.height, + width: "100%", + dock: "top", + position: "dock" + }); + view.drawRect($.options.titleConfig.backgroundColor); //绘制背景色 + var _b = parseInt($.options.titleConfig.height) - 1; + view.drawRect($.options.titleConfig.bottomBorderColor, { + top: _b + "px", + left: "0px" + }); //绘制底部边线 + + //绘制文字 + if($.options.titleConfig.title.text){ + var _title = $.options.titleConfig.title; + view.drawText(_title.text,_title.position , _title.styles); + } + + //返回图标绘制 + var _back = $.options.titleConfig.back; + var backClick = null; + //优先字体 + + //其次是图片 + var _backImage = _back.image; + if(_backImage.base64Data || _backImage.imgSrc) { + //TODO 此处需要处理百分比的情况 + backClick = { + left:parseInt(_backImage.position.left), + right:parseInt(_backImage.position.left) + parseInt(_backImage.position.width) + }; + var bitmap = new plus.nativeObj.Bitmap(id + "_back"); + if(_backImage.base64Data) { //优先base64编码字符串 + bitmap.loadBase64Data(_backImage.base64Data); + } else { //其次加载图片文件 + bitmap.load(_backImage.imgSrc); + } + view.drawBitmap(bitmap,_backImage.sprite , _backImage.position); + } + + //处理点击事件 + view.setTouchEventRect({ + top: "0px", + left: "0px", + width: "100%", + height: "100%" + }); + view.interceptTouchEvent(true); + view.addEventListener("click", function(e) { + var x = e.clientX; + + //返回按钮点击 + if(backClick&& x > backClick.left && x < backClick.right){ + if( _back.click && $.isFunction(_back.click)){ + _back.click(); + }else{ + webview.evalJS("window.mui&&mui.back();"); + } + } + }, false); + webview.append(view); + + } + + //显示 + nShow = $.showOptions(options.show); + if(nShow.autoShow) { + //titleUpdate触发时机早于loaded,更换为titleUpdate后,可以更早的显示webview + webview.addEventListener(nShow.event, function () { + //关闭等待框 + if(nWaiting) { + nWaiting.close(); + } + //显示页面 + webview.show(nShow.aniShow, nShow.duration, function() {},nShow.extras); + }, 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 { //新增预加载窗口 + //判断是否携带createNew参数,默认为false + if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + //之前没有,那就新创建 + if(!webview) { + webview = plus.webview.create(options.url, id, $.windowOptions(options.styles), $.extend({ + preload: true + }, options.extras)); + if(options.subpages) { + $.each(options.subpages, function(index, subpage) { + var subpageId = subpage.id || subpage.url; + if(subpageId) { //过滤空对象 + var subWebview = plus.webview.getWebviewById(subpageId); + if(!subWebview) { //如果该webview不存在,则创建 + subWebview = plus.webview.create(subpage.url, subpageId, $.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 subpageId = subpage.id || subpage.url; + var subWebview = plus.webview.getWebviewById(subpageId); + if(!subWebview) { + subWebview = plus.webview.create(subpage.url, subpageId, $.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) { + //关闭打开的webview + $.closeOpened(openedWebview); + //关闭自己 + openedWebview.close("none"); + } 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的话; + if(!plus.webview.getWebviewById(id)) { + webview = plus.webview.create(options.url, id, options.styles, options.extras); + } + //之前的实现方案:子窗口loaded之后再append到父窗口中; + //问题:部分子窗口loaded事件发生较晚,此时执行父窗口的children方法会返回空,导致父子通讯失败; + // 比如父页面执行完preload事件后,需触发子页面的preload事件,此时未append的话,就无法触发; + //修改方式:不再监控loaded事件,直接append + //by chb@20150521 + // 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(); + }); + $.addInit({ + 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)) { + //首页需要自己激活预加载; + //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 { + //已支持iframe嵌入 + // 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 + })); + }); + + }); + }); + $.supportStatusbarOffset = function() { + return $.os.plus && $.os.ios && parseFloat($.os.version) >= 7; + }; + $.ready(function() { + //标识当前环境支持statusbar + if($.supportStatusbarOffset()) { + document.body.classList.add('mui-statusbar'); + } + }); +})(mui); + +/** + * mui back + * @param {type} $ + * @param {type} window + * @returns {undefined} + */ +(function($, window) { + /** + * register back + * @param {type} back + * @returns {$.gestures} + */ + $.addBack = function(back) { + return $.addAction('backs', back); + }; + /** + * default + */ + $.addBack({ + 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; + } + } + $.doAction('backs'); + }; + window.addEventListener('tap', function(e) { + var action = $.targets.action; + if (action && action.classList.contains('mui-action-back')) { + $.back(); + $.targets.action = false; + } + }); + 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) { + $.addBack({ + name: 'mui', + index: 5, + handle: function() { + //后续重新设计此处,将back放到各个空间内部实现 + //popover + if ($.targets._popover && $.targets._popover.classList.contains('mui-active')) { + $($.targets._popover).popover('hide'); + return true; + } + //offcanvas + var offCanvas = document.querySelector('.mui-off-canvas-wrap.mui-active'); + if (offCanvas) { + $(offCanvas).offCanvas('close'); + return true; + } + var previewImage = $.isFunction($.getPreviewImage) && $.getPreviewImage(); + if (previewImage && previewImage.isShown()) { + previewImage.close(); + return true; + } + //popup + return $.closePopup(); + } + }); + } + //首次按下back按键的时间 + $.__back__first = null; + /** + * 5+ back + */ + $.addBack({ + 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 + //fixed by fxy 此处不应该用opener判断,因为用户有可能自己close掉当前窗口的opener。这样的话。opener就为空了,导致不能执行close + if (wobj.id === plus.runtime.appid) { //首页 + //首页不存在opener的情况下,后退实际上应该是退出应用; + //首次按键,提示‘再按一次退出应用’ + if (!$.__back__first) { + $.__back__first = new Date().getTime(); + mui.toast('再按一次退出应用'); + setTimeout(function() { + $.__back__first = null; + }, 2000); + } else { + if (new Date().getTime() - $.__back__first < 2000) { + plus.runtime.quit(); + } + } + } else { //其他页面, + if (wobj.preload) { + wobj.hide("auto"); + } else { + //关闭页面时,需要将其打开的所有子页面全部关闭; + $.closeAll(wobj); + } + } + } + }); + } + return true; + } + }); + + + $.menu = function() { + var menu = document.querySelector('.mui-action-menu'); + if (menu) { + $.trigger(menu, $.EVENT_START); //临时处理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();'); + } + } + } + }; + var __back = function() { + $.back(); + }; + var __menu = function() { + $.menu(); + }; + //默认监听 + $.plusReady(function() { + if ($.options.keyEventBind.backbutton) { + plus.key.addEventListener('backbutton', __back, false); + } + if ($.options.keyEventBind.menubutton) { + plus.key.addEventListener('menubutton', __menu, false); + } + }); + //处理按键监听事件 + $.addInit({ + name: 'keyEventBind', + index: 1000, + handle: function() { + $.plusReady(function() { + //如果不为true,则移除默认监听 + if (!$.options.keyEventBind.backbutton) { + plus.key.removeEventListener('backbutton', __back); + } + if (!$.options.keyEventBind.menubutton) { + plus.key.removeEventListener('menubutton', __menu); + } + }); + } + }); +})(mui, window); +/** + * mui.init pulldownRefresh + * @param {type} $ + * @returns {undefined} + */ +(function($) { + $.addInit({ + 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) { //5+环境 + if(hasPulldown && pullRefreshOptions.down.style == "circle") { //原生转圈 + $.plusReady(function() { + //这里改写$.fn.pullRefresh + $.fn.pullRefresh = $.fn.pullRefresh_native; + $container.pullRefresh(pullRefreshOptions); + }); + + } else if($.os.android) { //非原生转圈,但是Android环境 + $.plusReady(function() { + //这里改写$.fn.pullRefresh + $.fn.pullRefresh = $.fn.pullRefresh_native + var webview = plus.webview.currentWebview(); + if(window.__NWin_Enable__ === false) { //不支持多webview + $container.pullRefresh(pullRefreshOptions); + } else { + 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//子页面id + }; + downOptions.down = $.extend({}, pullRefreshOptions.down); + downOptions.down.callback = '_CALLBACK'; + //改写父页面的$.fn.pullRefresh + parent.evalJS("mui.fn.pullRefresh=mui.fn.pullRefresh_native"); + //父页面初始化pulldown + parent.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify(downOptions) + "')"); + } + } + } + }); + } else { //非原生转圈,iOS环境 + $container.pullRefresh(pullRefreshOptions); + } + } else { + $container.pullRefresh(pullRefreshOptions); + } + } + } + } + } + }); +})(mui); +/** + * mui ajax + * @param {type} $ + * @returns {undefined} + */ +(function($, window, undefined) { + + var jsonType = 'application/json'; + var htmlType = 'text/html'; + var rscript = /)<[^<]*)*<\/script>/gi; + var scriptTypeRE = /^(?:text|application)\/javascript/i; + var xmlTypeRE = /^(?:text|application)\/xml/i; + var blankRE = /^\s*$/; + + $.ajaxSettings = { + type: 'GET', + beforeSend: $.noop, + success: $.noop, + error: $.noop, + complete: $.noop, + context: null, + xhr: function(protocol) { + return new window.XMLHttpRequest(); + }, + accepts: { + script: 'text/javascript, application/javascript, application/x-javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + timeout: 0, + processData: true, + cache: true + }; + var ajaxBeforeSend = function(xhr, settings) { + var context = settings.context + if(settings.beforeSend.call(context, xhr, settings) === false) { + return false; + } + }; + var ajaxSuccess = function(data, xhr, settings) { + settings.success.call(settings.context, data, 'success', xhr); + ajaxComplete('success', xhr, settings); + }; + // type: "timeout", "error", "abort", "parsererror" + var ajaxError = function(error, type, xhr, settings) { + settings.error.call(settings.context, xhr, type, error); + ajaxComplete(type, xhr, settings); + }; + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + var ajaxComplete = function(status, xhr, settings) { + settings.complete.call(settings.context, xhr, status); + }; + + var serialize = function(params, obj, traditional, scope) { + var type, array = $.isArray(obj), + hash = $.isPlainObject(obj); + $.each(obj, function(key, value) { + type = $.type(value); + if(scope) { + key = traditional ? scope : + scope + '[' + (hash || type === 'object' || type === 'array' ? key : '') + ']'; + } + // handle data in serializeArray() format + if(!scope && array) { + params.add(value.name, value.value); + } + // recurse into nested objects + else if(type === "array" || (!traditional && type === "object")) { + serialize(params, value, traditional, key); + } else { + params.add(key, value); + } + }); + }; + var serializeData = function(options) { + if(options.processData && options.data && typeof options.data !== "string") { + var contentType = options.contentType; + if(!contentType && options.headers) { + contentType = options.headers['Content-Type']; + } + if(contentType && ~contentType.indexOf(jsonType)) { //application/json + options.data = JSON.stringify(options.data); + } else { + options.data = $.param(options.data, options.traditional); + } + } + if(options.data && (!options.type || options.type.toUpperCase() === 'GET')) { + options.url = appendQuery(options.url, options.data); + options.data = undefined; + } + }; + var appendQuery = function(url, query) { + if(query === '') { + return url; + } + return(url + '&' + query).replace(/[&?]{1,2}/, '?'); + }; + var mimeToDataType = function(mime) { + if(mime) { + mime = mime.split(';', 2)[0]; + } + return mime && (mime === htmlType ? 'html' : + mime === jsonType ? 'json' : + scriptTypeRE.test(mime) ? 'script' : + xmlTypeRE.test(mime) && 'xml') || 'text'; + }; + var parseArguments = function(url, data, success, dataType) { + if($.isFunction(data)) { + dataType = success, success = data, data = undefined; + } + if(!$.isFunction(success)) { + dataType = success, success = undefined; + } + return { + url: url, + data: data, + success: success, + dataType: dataType + }; + }; + $.ajax = function(url, options) { + if(typeof url === "object") { + options = url; + url = undefined; + } + var settings = options || {}; + settings.url = url || settings.url; + for(var key in $.ajaxSettings) { + if(settings[key] === undefined) { + settings[key] = $.ajaxSettings[key]; + } + } + serializeData(settings); + var dataType = settings.dataType; + + if(settings.cache === false || ((!options || options.cache !== true) && ('script' === dataType))) { + settings.url = appendQuery(settings.url, '_=' + $.now()); + } + var mime = settings.accepts[dataType && dataType.toLowerCase()]; + var headers = {}; + var setHeader = function(name, value) { + headers[name.toLowerCase()] = [name, value]; + }; + var protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol; + var xhr = settings.xhr(settings); + + if(location.protocol === 'file:' && $.os.ios && window.webkit && window.webkit.messageHandlers && !(xhr instanceof plus.net.XMLHttpRequest)){ + console.error("当前运行环境为WKWebview,需在plusReady事件触发后再调用mui.ajax,否则可能会执行失败或报Script error的错误") + } + var nativeSetHeader = xhr.setRequestHeader; + var abortTimeout; + + setHeader('X-Requested-With', 'XMLHttpRequest'); + setHeader('Accept', mime || '*/*'); + if(!!(mime = settings.mimeType || mime)) { + if(mime.indexOf(',') > -1) { + mime = mime.split(',', 2)[0]; + } + xhr.overrideMimeType && xhr.overrideMimeType(mime); + } + if(settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() !== 'GET')) { + setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded'); + } + if(settings.headers) { + for(var name in settings.headers) + setHeader(name, settings.headers[name]); + } + xhr.setRequestHeader = setHeader; + + xhr.onreadystatechange = function() { + if(xhr.readyState === 4) { + xhr.onreadystatechange = $.noop; + clearTimeout(abortTimeout); + var result, error = false; + var isLocal = protocol === 'file:'; + if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || (xhr.status === 0 && isLocal && xhr.responseText)) { + dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type')); + result = xhr.responseText; + try { + // http://perfectionkills.com/global-eval-what-are-the-options/ + if(dataType === 'script') { + (1, eval)(result); + } else if(dataType === 'xml') { + result = xhr.responseXML; + } else if(dataType === 'json') { + result = blankRE.test(result) ? null : $.parseJSON(result); + } + } catch(e) { + error = e; + } + + if(error) { + ajaxError(error, 'parsererror', xhr, settings); + } else { + ajaxSuccess(result, xhr, settings); + } + } else { + var status = xhr.status ? 'error' : 'abort'; + var statusText = xhr.statusText || null; + if(isLocal) { + status = 'error'; + statusText = '404'; + } + ajaxError(statusText, status, xhr, settings); + } + } + }; + if(ajaxBeforeSend(xhr, settings) === false) { + xhr.abort(); + ajaxError(null, 'abort', xhr, settings); + return xhr; + } + + if(settings.xhrFields) { + for(var name in settings.xhrFields) { + xhr[name] = settings.xhrFields[name]; + } + } + + var async = 'async' in settings ? settings.async : true; + + xhr.open(settings.type.toUpperCase(), settings.url, async, settings.username, settings.password); + + for(var name in headers) { + if(headers.hasOwnProperty(name)) { + nativeSetHeader.apply(xhr, headers[name]); + } + } + if(settings.timeout > 0) { + abortTimeout = setTimeout(function() { + xhr.onreadystatechange = $.noop; + xhr.abort(); + ajaxError(null, 'timeout', xhr, settings); + }, settings.timeout); + } + xhr.send(settings.data ? settings.data : null); + return xhr; + }; + + $.param = function(obj, traditional) { + var params = []; + params.add = function(k, v) { + this.push(encodeURIComponent(k) + '=' + encodeURIComponent(v)); + }; + serialize(params, obj, traditional); + return params.join('&').replace(/%20/g, '+'); + }; + $.get = function( /* url, data, success, dataType */ ) { + return $.ajax(parseArguments.apply(null, arguments)); + }; + + $.post = function( /* url, data, success, dataType */ ) { + var options = parseArguments.apply(null, arguments); + options.type = 'POST'; + return $.ajax(options); + }; + + $.getJSON = function( /* url, data, success */ ) { + var options = parseArguments.apply(null, arguments); + options.dataType = 'json'; + return $.ajax(options); + }; + + $.fn.load = function(url, data, success) { + if(!this.length) + return this; + var self = this, + parts = url.split(/\s/), + selector, + options = parseArguments(url, data, success), + callback = options.success; + if(parts.length > 1) + options.url = parts[0], selector = parts[1]; + options.success = function(response) { + if(selector) { + var div = document.createElement('div'); + div.innerHTML = response.replace(rscript, ""); + var selectorDiv = document.createElement('div'); + var childs = div.querySelectorAll(selector); + if(childs && childs.length > 0) { + for(var i = 0, len = childs.length; i < len; i++) { + selectorDiv.appendChild(childs[i]); + } + } + self[0].innerHTML = selectorDiv.innerHTML; + } else { + self[0].innerHTML = response; + } + callback && callback.apply(self, arguments); + }; + $.ajax(options); + return this; + }; + +})(mui, window); +/** + * 5+ ajax + */ +(function($) { + var originAnchor = document.createElement('a'); + originAnchor.href = window.location.href; + $.plusReady(function() { + $.ajaxSettings = $.extend($.ajaxSettings, { + xhr: function(settings) { + if (settings.crossDomain) { //强制使用plus跨域 + return new plus.net.XMLHttpRequest(); + } + //仅在webview的url为远程文件,且ajax请求的资源不同源下使用plus.net.XMLHttpRequest + if (originAnchor.protocol !== 'file:') { + var urlAnchor = document.createElement('a'); + urlAnchor.href = settings.url; + urlAnchor.href = urlAnchor.href; + settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host); + if (settings.crossDomain) { + return new plus.net.XMLHttpRequest(); + } + } + if ($.os.ios && window.webkit && window.webkit.messageHandlers) { //wkwebview下同样使用5+ xhr + return new plus.net.XMLHttpRequest(); + } + return new window.XMLHttpRequest(); + } + }); + }); +})(mui); +/** + * mui layout(offset[,position,width,height...]) + * @param {type} $ + * @param {type} window + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, undefined) { + $.offset = function(element) { + var box = { + top : 0, + left : 0 + }; + if ( typeof element.getBoundingClientRect !== undefined) { + box = element.getBoundingClientRect(); + } + return { + top : box.top + window.pageYOffset - element.clientTop, + left : box.left + window.pageXOffset - element.clientLeft + }; + }; +})(mui, window); +/** + * mui animation + */ +(function($, window) { + /** + * scrollTo + */ + $.scrollTo = function(scrollTop, duration, callback) { + duration = duration || 1000; + var scroll = function(duration) { + if (duration <= 0) { + window.scrollTo(0, scrollTop); + callback && callback(); + return; + } + var distaince = scrollTop - window.scrollY; + setTimeout(function() { + window.scrollTo(0, window.scrollY + distaince / duration * 10); + scroll(duration - 10); + }, 16.7); + }; + scroll(duration); + }; + $.animationFrame = function(cb) { + var args, isQueued, context; + return function() { + args = arguments; + context = this; + if (!isQueued) { + isQueued = true; + requestAnimationFrame(function() { + cb.apply(context, args); + isQueued = false; + }); + } + }; + }; + +})(mui, window); +(function($) { + var initializing = false, + fnTest = /xyz/.test(function() { + xyz; + }) ? /\b_super\b/ : /.*/; + + var Class = function() {}; + Class.extend = function(prop) { + var _super = this.prototype; + initializing = true; + var prototype = new this(); + initializing = false; + for (var name in prop) { + prototype[name] = typeof prop[name] == "function" && + typeof _super[name] == "function" && fnTest.test(prop[name]) ? + (function(name, fn) { + return function() { + var tmp = this._super; + + this._super = _super[name]; + + var ret = fn.apply(this, arguments); + this._super = tmp; + + return ret; + }; + })(name, prop[name]) : + prop[name]; + } + function Class() { + if (!initializing && this.init) + this.init.apply(this, arguments); + } + Class.prototype = prototype; + Class.prototype.constructor = Class; + Class.extend = arguments.callee; + return Class; + }; + $.Class = Class; +})(mui); +(function($, document, undefined) { + var CLASS_PULL_TOP_POCKET = 'mui-pull-top-pocket'; + var CLASS_PULL_BOTTOM_POCKET = 'mui-pull-bottom-pocket'; + var CLASS_PULL = 'mui-pull'; + var CLASS_PULL_LOADING = 'mui-pull-loading'; + var CLASS_PULL_CAPTION = 'mui-pull-caption'; + var CLASS_PULL_CAPTION_DOWN = 'mui-pull-caption-down'; + var CLASS_PULL_CAPTION_REFRESH = 'mui-pull-caption-refresh'; + var CLASS_PULL_CAPTION_NOMORE = 'mui-pull-caption-nomore'; + + var CLASS_ICON = 'mui-icon'; + var CLASS_SPINNER = 'mui-spinner'; + var CLASS_ICON_PULLDOWN = 'mui-icon-pulldown'; + + var CLASS_BLOCK = 'mui-block'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_VISIBILITY = 'mui-visibility'; + + var CLASS_LOADING_UP = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_ICON_PULLDOWN; + var CLASS_LOADING_DOWN = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_ICON_PULLDOWN; + var CLASS_LOADING = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_SPINNER; + + var pocketHtml = ['
', '
', '
{contentrefresh}
', '
'].join(''); + + var PullRefresh = { + init: function(element, options) { + this._super(element, $.extend(true, { + scrollY: true, + scrollX: false, + indicators: true, + deceleration: 0.003, + down: { + height: 50, + contentinit: '下拉可以刷新', + contentdown: '下拉可以刷新', + contentover: '释放立即刷新', + contentrefresh: '正在刷新...' + }, + up: { + height: 50, + auto: false, + contentinit: '上拉显示更多', + contentdown: '上拉显示更多', + contentrefresh: '正在加载...', + contentnomore: '没有更多数据了', + duration: 300 + } + }, options)); + }, + _init: function() { + this._super(); + this._initPocket(); + }, + _initPulldownRefresh: function() { + this.pulldown = true; + if (this.topPocket) { + this.pullPocket = this.topPocket; + this.pullPocket.classList.add(CLASS_BLOCK); + this.pullPocket.classList.add(CLASS_VISIBILITY); + this.pullCaption = this.topCaption; + this.pullLoading = this.topLoading; + } + }, + _initPullupRefresh: function() { + this.pulldown = false; + if (this.bottomPocket) { + this.pullPocket = this.bottomPocket; + this.pullPocket.classList.add(CLASS_BLOCK); + this.pullPocket.classList.add(CLASS_VISIBILITY); + this.pullCaption = this.bottomCaption; + this.pullLoading = this.bottomLoading; + } + }, + _initPocket: function() { + var options = this.options; + if (options.down && options.down.hasOwnProperty('callback')) { + this.topPocket = this.scroller.querySelector('.' + CLASS_PULL_TOP_POCKET); + if (!this.topPocket) { + this.topPocket = this._createPocket(CLASS_PULL_TOP_POCKET, options.down, CLASS_LOADING_DOWN); + this.wrapper.insertBefore(this.topPocket, this.wrapper.firstChild); + } + this.topLoading = this.topPocket.querySelector('.' + CLASS_PULL_LOADING); + this.topCaption = this.topPocket.querySelector('.' + CLASS_PULL_CAPTION); + } + if (options.up && options.up.hasOwnProperty('callback')) { + this.bottomPocket = this.scroller.querySelector('.' + CLASS_PULL_BOTTOM_POCKET); + if (!this.bottomPocket) { + this.bottomPocket = this._createPocket(CLASS_PULL_BOTTOM_POCKET, options.up, CLASS_LOADING); + this.scroller.appendChild(this.bottomPocket); + } + this.bottomLoading = this.bottomPocket.querySelector('.' + CLASS_PULL_LOADING); + this.bottomCaption = this.bottomPocket.querySelector('.' + CLASS_PULL_CAPTION); + //TODO only for h5 + this.wrapper.addEventListener('scrollbottom', this); + } + }, + _createPocket: function(clazz, options, iconClass) { + var pocket = document.createElement('div'); + pocket.className = clazz; + pocket.innerHTML = pocketHtml.replace('{contentrefresh}', options.contentinit).replace('{icon}', iconClass); + return pocket; + }, + _resetPullDownLoading: function() { + var loading = this.pullLoading; + if (loading) { + this.pullCaption.innerHTML = this.options.down.contentdown; + loading.style.webkitTransition = ""; + loading.style.webkitTransform = ""; + loading.style.webkitAnimation = ""; + loading.className = CLASS_LOADING_DOWN; + } + }, + _setCaptionClass: function(isPulldown, caption, title) { + if (!isPulldown) { + switch (title) { + case this.options.up.contentdown: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + break; + case this.options.up.contentrefresh: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_REFRESH + break; + case this.options.up.contentnomore: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE; + break; + } + } + }, + _setCaption: function(title, reset) { + if (this.loading) { + return; + } + var options = this.options; + var pocket = this.pullPocket; + var caption = this.pullCaption; + var loading = this.pullLoading; + var isPulldown = this.pulldown; + var self = this; + if (pocket) { + if (reset) { + setTimeout(function() { + caption.innerHTML = self.lastTitle = title; + if (isPulldown) { + loading.className = CLASS_LOADING_DOWN; + } else { + self._setCaptionClass(false, caption, title); + loading.className = CLASS_LOADING; + } + loading.style.webkitAnimation = ""; + loading.style.webkitTransition = ""; + loading.style.webkitTransform = ""; + }, 100); + } else { + if (title !== this.lastTitle) { + caption.innerHTML = title; + if (isPulldown) { + if (title === options.down.contentrefresh) { + loading.className = CLASS_LOADING; + loading.style.webkitAnimation = "spinner-spin 1s step-end infinite"; + } else if (title === options.down.contentover) { + loading.className = CLASS_LOADING_UP; + loading.style.webkitTransition = "-webkit-transform 0.3s ease-in"; + loading.style.webkitTransform = "rotate(180deg)"; + } else if (title === options.down.contentdown) { + loading.className = CLASS_LOADING_DOWN; + loading.style.webkitTransition = "-webkit-transform 0.3s ease-in"; + loading.style.webkitTransform = "rotate(0deg)"; + } + } else { + if (title === options.up.contentrefresh) { + loading.className = CLASS_LOADING + ' ' + CLASS_VISIBILITY; + } else { + loading.className = CLASS_LOADING + ' ' + CLASS_HIDDEN; + } + self._setCaptionClass(false, caption, title); + } + this.lastTitle = title; + } + } + + } + } + }; + $.PullRefresh = PullRefresh; +})(mui, document); +(function($, window, document, undefined) { + var CLASS_SCROLL = 'mui-scroll'; + var CLASS_SCROLLBAR = 'mui-scrollbar'; + var CLASS_INDICATOR = 'mui-scrollbar-indicator'; + var CLASS_SCROLLBAR_VERTICAL = CLASS_SCROLLBAR + '-vertical'; + var CLASS_SCROLLBAR_HORIZONTAL = CLASS_SCROLLBAR + '-horizontal'; + + var CLASS_ACTIVE = 'mui-active'; + + var ease = { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function(k) { + return k * (2 - k); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', + fn: function(k) { + return Math.sqrt(1 - (--k * k)); + } + }, + outCirc: { + style: 'cubic-bezier(0.075, 0.82, 0.165, 1)' + }, + outCubic: { + style: 'cubic-bezier(0.165, 0.84, 0.44, 1)' + } + } + var Scroll = $.Class.extend({ + init: function(element, options) { + this.wrapper = this.element = element; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller && this.scroller.style; + this.stopped = false; + + this.options = $.extend(true, { + scrollY: true, //是否竖向滚动 + scrollX: false, //是否横向滚动 + startX: 0, //初始化时滚动至x + startY: 0, //初始化时滚动至y + + indicators: true, //是否显示滚动条 + stopPropagation: false, + hardwareAccelerated: true, + fixedBadAndorid: false, + preventDefaultException: { + tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/ + }, + momentum: true, + + snapX: 0.5, //横向切换距离(以当前容器宽度为基准) + snap: false, //图片轮播,拖拽式选项卡 + + bounce: true, //是否启用回弹 + bounceTime: 500, //回弹动画时间 + bounceEasing: ease.outCirc, //回弹动画曲线 + + scrollTime: 500, + scrollEasing: ease.outCubic, //轮播动画曲线 + + directionLockThreshold: 5, + + parallaxElement: false, //视差元素 + parallaxRatio: 0.5 + }, options); + + this.x = 0; + this.y = 0; + this.translateZ = this.options.hardwareAccelerated ? ' translateZ(0)' : ''; + + this._init(); + if (this.scroller) { + this.refresh(); + // if (this.options.startX !== 0 || this.options.startY !== 0) { //需要判断吗?后续根据实际情况再看看 + this.scrollTo(this.options.startX, this.options.startY); + // } + } + }, + _init: function() { + this._initParallax(); + this._initIndicators(); + this._initEvent(); + }, + _initParallax: function() { + if (this.options.parallaxElement) { + this.parallaxElement = document.querySelector(this.options.parallaxElement); + this.parallaxStyle = this.parallaxElement.style; + this.parallaxHeight = this.parallaxElement.offsetHeight; + this.parallaxImgStyle = this.parallaxElement.querySelector('img').style; + } + }, + _initIndicators: function() { + var self = this; + self.indicators = []; + if (!this.options.indicators) { + return; + } + var indicators = [], + indicator; + + // Vertical scrollbar + if (self.options.scrollY) { + indicator = { + el: this._createScrollBar(CLASS_SCROLLBAR_VERTICAL), + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if (this.options.scrollX) { + indicator = { + el: this._createScrollBar(CLASS_SCROLLBAR_HORIZONTAL), + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + for (var i = indicators.length; i--;) { + this.indicators.push(new Indicator(this, indicators[i])); + } + + }, + _initSnap: function() { + this.currentPage = {}; + this.pages = []; + var snaps = this.snaps; + var length = snaps.length; + var m = 0; + var n = -1; + var x = 0; + var leftX = 0; + var rightX = 0; + var snapX = 0; + for (var i = 0; i < length; i++) { + var snap = snaps[i]; + var offsetLeft = snap.offsetLeft; + var offsetWidth = snap.offsetWidth; + if (i === 0 || offsetLeft <= snaps[i - 1].offsetLeft) { + m = 0; + n++; + } + if (!this.pages[m]) { + this.pages[m] = []; + } + x = this._getSnapX(offsetLeft); + snapX = Math.round((offsetWidth) * this.options.snapX); + leftX = x - snapX; + rightX = x - offsetWidth + snapX; + this.pages[m][n] = { + x: x, + leftX: leftX, + rightX: rightX, + pageX: m, + element: snap + } + if (snap.classList.contains(CLASS_ACTIVE)) { + this.currentPage = this.pages[m][0]; + } + if (x >= this.maxScrollX) { + m++; + } + } + this.options.startX = this.currentPage.x || 0; + }, + _getSnapX: function(offsetLeft) { + return Math.max(Math.min(0, -offsetLeft + (this.wrapperWidth / 2)), this.maxScrollX); + }, + _gotoPage: function(index) { + this.currentPage = this.pages[Math.min(index, this.pages.length - 1)][0]; + for (var i = 0, len = this.snaps.length; i < len; i++) { + if (i === index) { + this.snaps[i].classList.add(CLASS_ACTIVE); + } else { + this.snaps[i].classList.remove(CLASS_ACTIVE); + } + } + this.scrollTo(this.currentPage.x, 0, this.options.scrollTime); + }, + _nearestSnap: function(x) { + if (!this.pages.length) { + return { + x: 0, + pageX: 0 + }; + } + var i = 0; + var length = this.pages.length; + if (x > 0) { + x = 0; + } else if (x < this.maxScrollX) { + x = this.maxScrollX; + } + for (; i < length; i++) { + var nearestX = this.direction === 'left' ? this.pages[i][0].leftX : this.pages[i][0].rightX; + if (x >= nearestX) { + return this.pages[i][0]; + } + } + return { + x: 0, + pageX: 0 + }; + }, + _initEvent: function(detach) { + var action = detach ? 'removeEventListener' : 'addEventListener'; + window[action]('orientationchange', this); + window[action]('resize', this); + + this.scroller[action]('webkitTransitionEnd', this); + + this.wrapper[action]($.EVENT_START, this); + this.wrapper[action]($.EVENT_CANCEL, this); + this.wrapper[action]($.EVENT_END, this); + this.wrapper[action]('drag', this); + this.wrapper[action]('dragend', this); + this.wrapper[action]('flick', this); + this.wrapper[action]('scrollend', this); + if (this.options.scrollX) { + this.wrapper[action]('swiperight', this); + } + var segmentedControl = this.wrapper.querySelector('.mui-segmented-control'); + if (segmentedControl) { //靠,这个bug排查了一下午,阻止hash跳转,一旦hash跳转会导致可拖拽选项卡的tab不见 + mui(segmentedControl)[detach ? 'off' : 'on']('click', 'a', $.preventDefault); + } + + this.wrapper[action]('scrollstart', this); + this.wrapper[action]('refresh', this); + }, + _handleIndicatorScrollend: function() { + this.indicators.map(function(indicator) { + indicator.fade(); + }); + }, + _handleIndicatorScrollstart: function() { + this.indicators.map(function(indicator) { + indicator.fade(1); + }); + }, + _handleIndicatorRefresh: function() { + this.indicators.map(function(indicator) { + indicator.refresh(); + }); + }, + handleEvent: function(e) { + if (this.stopped) { + this.resetPosition(); + return; + } + + switch (e.type) { + case $.EVENT_START: + this._start(e); + break; + case 'drag': + this.options.stopPropagation && e.stopPropagation(); + this._drag(e); + break; + case 'dragend': + case 'flick': + this.options.stopPropagation && e.stopPropagation(); + this._flick(e); + break; + case $.EVENT_CANCEL: + case $.EVENT_END: + this._end(e); + break; + case 'webkitTransitionEnd': + this.transitionTimer && this.transitionTimer.cancel(); + this._transitionEnd(e); + break; + case 'scrollstart': + this._handleIndicatorScrollstart(e); + break; + case 'scrollend': + this._handleIndicatorScrollend(e); + this._scrollend(e); + e.stopPropagation(); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'swiperight': + e.stopPropagation(); + break; + case 'refresh': + this._handleIndicatorRefresh(e); + break; + + } + }, + _start: function(e) { + this.moved = this.needReset = false; + this._transitionTime(); + if (this.isInTransition) { + this.needReset = true; + this.isInTransition = false; + var pos = $.parseTranslateMatrix($.getStyles(this.scroller, 'webkitTransform')); + this.setTranslate(Math.round(pos.x), Math.round(pos.y)); + // this.resetPosition(); //reset + $.trigger(this.scroller, 'scrollend', this); + // e.stopPropagation(); + e.preventDefault(); + } + this.reLayout(); + $.trigger(this.scroller, 'beforescrollstart', this); + }, + _getDirectionByAngle: function(angle) { + if (angle < -80 && angle > -100) { + return 'up'; + } else if (angle >= 80 && angle < 100) { + return 'down'; + } else if (angle >= 170 || angle <= -170) { + return 'left'; + } else if (angle >= -35 && angle <= 10) { + return 'right'; + } + return null; + }, + _drag: function(e) { + // if (this.needReset) { + // e.stopPropagation(); //disable parent drag(nested scroller) + // return; + // } + var detail = e.detail; + if (this.options.scrollY || detail.direction === 'up' || detail.direction === 'down') { //如果是竖向滚动或手势方向是上或下 + //ios8 hack + if ($.os.ios && parseFloat($.os.version) >= 8) { //多webview时,离开当前webview会导致后续touch事件不触发 + var clientY = detail.gesture.touches[0].clientY; + //下拉刷新 or 上拉加载 + if ((clientY + 10) > window.innerHeight || clientY < 10) { + this.resetPosition(this.options.bounceTime); + return; + } + } + } + var isPreventDefault = isReturn = false; + var direction = this._getDirectionByAngle(detail.angle); + if (detail.direction === 'left' || detail.direction === 'right') { + if (this.options.scrollX) { + isPreventDefault = true; + if (!this.moved) { //识别角度(该角度导致轮播不灵敏) + // if (direction !== 'left' && direction !== 'right') { + // isReturn = true; + // } else { + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + // } + } + } else if (this.options.scrollY && !this.moved) { + isReturn = true; + } + } else if (detail.direction === 'up' || detail.direction === 'down') { + if (this.options.scrollY) { + isPreventDefault = true; + // if (!this.moved) { //识别角度,竖向滚动似乎没必要进行小角度验证 + // if (direction !== 'up' && direction !== 'down') { + // isReturn = true; + // } + // } + if (!this.moved) { + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + } + } else if (this.options.scrollX && !this.moved) { + isReturn = true; + } + } else { + isReturn = true; + } + if (this.moved || isPreventDefault) { + e.stopPropagation(); //阻止冒泡(scroll类嵌套) + detail.gesture && detail.gesture.preventDefault(); + } + if (isReturn) { //禁止非法方向滚动 + return; + } + if (!this.moved) { + $.trigger(this.scroller, 'scrollstart', this); + } else { + e.stopPropagation(); //move期间阻止冒泡(scroll嵌套) + } + var deltaX = 0; + var deltaY = 0; + if (!this.moved) { //start + deltaX = detail.deltaX; + deltaY = detail.deltaY; + } else { //move + deltaX = detail.deltaX - $.gestures.session.prevTouch.deltaX; + deltaY = detail.deltaY - $.gestures.session.prevTouch.deltaY; + } + var absDeltaX = Math.abs(detail.deltaX); + var absDeltaY = Math.abs(detail.deltaY); + if (absDeltaX > absDeltaY + this.options.directionLockThreshold) { + deltaY = 0; + } else if (absDeltaY >= absDeltaX + this.options.directionLockThreshold) { + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + var newX = this.x + deltaX; + var newY = this.y + deltaY; + // Slow down if outside of the boundaries + if (newX > 0 || newX < this.maxScrollX) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if (newY > 0 || newY < this.maxScrollY) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + if (!this.requestAnimationFrame) { + this._updateTranslate(); + } + this.direction = detail.deltaX > 0 ? 'right' : 'left'; + this.moved = true; + this.x = newX; + this.y = newY; + $.trigger(this.scroller, 'scroll', this); + }, + _flick: function(e) { + // if (!this.moved || this.needReset) { + // return; + // } + if (!this.moved) { + return; + } + e.stopPropagation(); + var detail = e.detail; + this._clearRequestAnimationFrame(); + if (e.type === 'dragend' && detail.flick) { //dragend + return; + } + + var newX = Math.round(this.x); + var newY = Math.round(this.y); + + this.isInTransition = false; + // reset if we are outside of the boundaries + if (this.resetPosition(this.options.bounceTime)) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + if (e.type === 'dragend') { //dragend + $.trigger(this.scroller, 'scrollend', this); + return; + } + var time = 0; + var easing = ''; + // start momentum animation if needed + if (this.options.momentum && detail.flickTime < 300) { + momentumX = this.hasHorizontalScroll ? this._momentum(this.x, detail.flickDistanceX, detail.flickTime, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { + destination: newX, + duration: 0 + }; + momentumY = this.hasVerticalScroll ? this._momentum(this.y, detail.flickDistanceY, detail.flickTime, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { + destination: newY, + duration: 0 + }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = true; + } + + if (newX != this.x || newY != this.y) { + if (newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY) { + easing = ease.quadratic; + } + this.scrollTo(newX, newY, time, easing); + return; + } + + $.trigger(this.scroller, 'scrollend', this); + // e.stopPropagation(); + }, + _end: function(e) { + this.needReset = false; + if ((!this.moved && this.needReset) || e.type === $.EVENT_CANCEL) { + this.resetPosition(); + } + }, + _transitionEnd: function(e) { + if (e.target != this.scroller || !this.isInTransition) { + return; + } + this._transitionTime(); + if (!this.resetPosition(this.options.bounceTime)) { + this.isInTransition = false; + $.trigger(this.scroller, 'scrollend', this); + } + }, + _scrollend: function(e) { + if ((this.y === 0 && this.maxScrollY === 0) || (Math.abs(this.y) > 0 && this.y <= this.maxScrollY)) { + $.trigger(this.scroller, 'scrollbottom', this); + } + }, + _resize: function() { + var that = this; + clearTimeout(that.resizeTimeout); + that.resizeTimeout = setTimeout(function() { + that.refresh(); + }, that.options.resizePolling); + }, + _transitionTime: function(time) { + time = time || 0; + this.scrollerStyle['webkitTransitionDuration'] = time + 'ms'; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = time + 'ms'; + } + if (this.options.fixedBadAndorid && !time && $.os.isBadAndroid) { + this.scrollerStyle['webkitTransitionDuration'] = '0.001s'; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = '0.001s'; + } + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].transitionTime(time); + } + } + if (time) { //自定义timer,保证webkitTransitionEnd始终触发 + this.transitionTimer && this.transitionTimer.cancel(); + this.transitionTimer = $.later(function() { + $.trigger(this.scroller, 'webkitTransitionEnd'); + }, time + 100, this); + } + }, + _transitionTimingFunction: function(easing) { + this.scrollerStyle['webkitTransitionTimingFunction'] = easing; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = easing; + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].transitionTimingFunction(easing); + } + } + }, + _translate: function(x, y) { + this.x = x; + this.y = y; + }, + _clearRequestAnimationFrame: function() { + if (this.requestAnimationFrame) { + cancelAnimationFrame(this.requestAnimationFrame); + this.requestAnimationFrame = null; + } + }, + _updateTranslate: function() { + var self = this; + if (self.x !== self.lastX || self.y !== self.lastY) { + self.setTranslate(self.x, self.y); + } + self.requestAnimationFrame = requestAnimationFrame(function() { + self._updateTranslate(); + }); + }, + _createScrollBar: function(clazz) { + var scrollbar = document.createElement('div'); + var indicator = document.createElement('div'); + scrollbar.className = CLASS_SCROLLBAR + ' ' + clazz; + indicator.className = CLASS_INDICATOR; + scrollbar.appendChild(indicator); + if (clazz === CLASS_SCROLLBAR_VERTICAL) { + this.scrollbarY = scrollbar; + this.scrollbarIndicatorY = indicator; + } else if (clazz === CLASS_SCROLLBAR_HORIZONTAL) { + this.scrollbarX = scrollbar; + this.scrollbarIndicatorX = indicator; + } + this.wrapper.appendChild(scrollbar); + return scrollbar; + }, + _preventDefaultException: function(el, exceptions) { + for (var i in exceptions) { + if (exceptions[i].test(el[i])) { + return true; + } + } + return false; + }, + _reLayout: function() { + if (!this.hasHorizontalScroll) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if (!this.hasVerticalScroll) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.indicators.map(function(indicator) { + indicator.refresh(); + }); + + //以防slider类嵌套使用 + if (this.options.snap && typeof this.options.snap === 'string') { + var items = this.scroller.querySelectorAll(this.options.snap); + this.itemLength = 0; + this.snaps = []; + for (var i = 0, len = items.length; i < len; i++) { + var item = items[i]; + if (item.parentNode === this.scroller) { + this.itemLength++; + this.snaps.push(item); + } + } + this._initSnap(); //需要每次都_initSnap么。其实init的时候执行一次,后续resize的时候执行一次就行了吧.先这么做吧,如果影响性能,再调整 + } + }, + _momentum: function(current, distance, time, lowerMargin, wrapperSize, deceleration) { + var speed = parseFloat(Math.abs(distance) / time), + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + destination = current + (speed * speed) / (2 * deceleration) * (distance < 0 ? -1 : 1); + duration = speed / deceleration; + if (destination < lowerMargin) { + destination = wrapperSize ? lowerMargin - (wrapperSize / 2.5 * (speed / 8)) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if (destination > 0) { + destination = wrapperSize ? wrapperSize / 2.5 * (speed / 8) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }, + _getTranslateStr: function(x, y) { + if (this.options.hardwareAccelerated) { + return 'translate3d(' + x + 'px,' + y + 'px,0px) ' + this.translateZ; + } + return 'translate(' + x + 'px,' + y + 'px) '; + }, + //API + setStopped: function(stopped) { + // this.stopped = !!stopped; + + // fixed ios双webview模式下拉刷新 + if(stopped) { + this.disablePullupToRefresh(); + this.disablePulldownToRefresh(); + } else { + this.enablePullupToRefresh(); + this.enablePulldownToRefresh(); + } + }, + setTranslate: function(x, y) { + this.x = x; + this.y = y; + this.scrollerStyle['webkitTransform'] = this._getTranslateStr(x, y); + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + var parallaxY = y * this.options.parallaxRatio; + var scale = 1 + parallaxY / ((this.parallaxHeight - parallaxY) / 2); + if (scale > 1) { + this.parallaxImgStyle['opacity'] = 1 - parallaxY / 100 * this.options.parallaxRatio; + this.parallaxStyle['webkitTransform'] = this._getTranslateStr(0, -parallaxY) + ' scale(' + scale + ',' + scale + ')'; + } else { + this.parallaxImgStyle['opacity'] = 1; + this.parallaxStyle['webkitTransform'] = this._getTranslateStr(0, -1) + ' scale(1,1)'; + } + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].updatePosition(); + } + } + this.lastX = this.x; + this.lastY = this.y; + $.trigger(this.scroller, 'scroll', this); + }, + reLayout: function() { + this.wrapper.offsetHeight; + + var paddingLeft = parseFloat($.getStyles(this.wrapper, 'padding-left')) || 0; + var paddingRight = parseFloat($.getStyles(this.wrapper, 'padding-right')) || 0; + var paddingTop = parseFloat($.getStyles(this.wrapper, 'padding-top')) || 0; + var paddingBottom = parseFloat($.getStyles(this.wrapper, 'padding-bottom')) || 0; + + var clientWidth = this.wrapper.clientWidth; + var clientHeight = this.wrapper.clientHeight; + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.wrapperWidth = clientWidth - paddingLeft - paddingRight; + this.wrapperHeight = clientHeight - paddingTop - paddingBottom; + + this.maxScrollX = Math.min(this.wrapperWidth - this.scrollerWidth, 0); + this.maxScrollY = Math.min(this.wrapperHeight - this.scrollerHeight, 0); + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + this._reLayout(); + }, + resetPosition: function(time) { + var x = this.x, + y = this.y; + + time = time || 0; + if (!this.hasHorizontalScroll || this.x > 0) { + x = 0; + } else if (this.x < this.maxScrollX) { + x = this.maxScrollX; + } + + if (!this.hasVerticalScroll || this.y > 0) { + y = 0; + } else if (this.y < this.maxScrollY) { + y = this.maxScrollY; + } + + if (x == this.x && y == this.y) { + return false; + } + this.scrollTo(x, y, time, this.options.scrollEasing); + + return true; + }, + _reInit: function() { + var groups = this.wrapper.querySelectorAll('.' + CLASS_SCROLL); + for (var i = 0, len = groups.length; i < len; i++) { + if (groups[i].parentNode === this.wrapper) { + this.scroller = groups[i]; + break; + } + } + this.scrollerStyle = this.scroller && this.scroller.style; + }, + refresh: function() { + this._reInit(); + this.reLayout(); + $.trigger(this.scroller, 'refresh', this); + this.resetPosition(); + }, + scrollTo: function(x, y, time, easing) { + var easing = easing || ease.circular; + // this.isInTransition = time > 0 && (this.lastX != x || this.lastY != y); + //暂不严格判断x,y,否则会导致部分版本上不正常触发轮播 + this.isInTransition = time > 0; + if (this.isInTransition) { + this._clearRequestAnimationFrame(); + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + this.setTranslate(x, y); + } else { + this.setTranslate(x, y); + } + + }, + scrollToBottom: function(time, easing) { + time = time || this.options.scrollTime; + this.scrollTo(0, this.maxScrollY, time, easing); + }, + gotoPage: function(index) { + this._gotoPage(index); + }, + destroy: function() { + this._initEvent(true); //detach + delete $.data[this.wrapper.getAttribute('data-scroll')]; + this.wrapper.setAttribute('data-scroll', ''); + } + }); + //Indicator + var Indicator = function(scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = $.extend({ + listenX: true, + listenY: true, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }, options); + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if (this.options.fade) { + this.wrapperStyle['webkitTransform'] = this.scroller.translateZ; + this.wrapperStyle['webkitTransitionDuration'] = this.options.fixedBadAndorid && $.os.isBadAndroid ? '0.001s' : '0ms'; + this.wrapperStyle.opacity = '0'; + } + } + Indicator.prototype = { + handleEvent: function(e) { + + }, + transitionTime: function(time) { + time = time || 0; + this.indicatorStyle['webkitTransitionDuration'] = time + 'ms'; + if (this.scroller.options.fixedBadAndorid && !time && $.os.isBadAndroid) { + this.indicatorStyle['webkitTransitionDuration'] = '0.001s'; + } + }, + transitionTimingFunction: function(easing) { + this.indicatorStyle['webkitTransitionTimingFunction'] = easing; + }, + refresh: function() { + this.transitionTime(); + + if (this.options.listenX && !this.options.listenY) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if (this.options.listenY && !this.options.listenX) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + this.wrapper.offsetHeight; // force refresh + + if (this.options.listenX) { + this.wrapperWidth = this.wrapper.clientWidth; + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if (this.options.listenY) { + this.wrapperHeight = this.wrapper.clientHeight; + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function() { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if (x < this.minBoundaryX) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.minBoundaryX; + } else if (x > this.maxBoundaryX) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else if (this.width != this.indicatorWidth) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if (y < this.minBoundaryY) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.minBoundaryY; + } else if (y > this.maxBoundaryY) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else if (this.height != this.indicatorHeight) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + + this.x = x; + this.y = y; + + this.indicatorStyle['webkitTransform'] = this.scroller._getTranslateStr(x, y); + + }, + fade: function(val, hold) { + if (hold && !this.visible) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle['webkitTransitionDuration'] = time + 'ms'; + + this.fadeTimeout = setTimeout((function(val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } + }; + + $.Scroll = Scroll; + + $.fn.scroll = function(options) { + var scrollApis = []; + this.each(function() { + var scrollApi = null; + var self = this; + var id = self.getAttribute('data-scroll'); + if (!id) { + id = ++$.uuid; + var _options = $.extend({}, options); + if (self.classList.contains('mui-segmented-control')) { + _options = $.extend(_options, { + scrollY: false, + scrollX: true, + indicators: false, + snap: '.mui-control-item' + }); + } + $.data[id] = scrollApi = new Scroll(self, _options); + self.setAttribute('data-scroll', id); + } else { + scrollApi = $.data[id]; + } + scrollApis.push(scrollApi); + }); + return scrollApis.length === 1 ? scrollApis[0] : scrollApis; + }; +})(mui, window, document); +(function($, window, document, undefined) { + + var CLASS_VISIBILITY = 'mui-visibility'; + var CLASS_HIDDEN = 'mui-hidden'; + + var PullRefresh = $.Scroll.extend($.extend({ + handleEvent: function(e) { + this._super(e); + if (e.type === 'scrollbottom') { + if (e.target === this.scroller) { + this._scrollbottom(); + } + } + }, + _scrollbottom: function() { + if (!this.pulldown && !this.loading) { + this.pulldown = false; + this._initPullupRefresh(); + this.pullupLoading(); + } + }, + _start: function(e) { + //仅下拉刷新在start阻止默认事件 + if (e.touches && e.touches.length && e.touches[0].clientX > 30) { + e.target && !this._preventDefaultException(e.target, this.options.preventDefaultException) && e.preventDefault(); + } + if (!this.loading) { + this.pulldown = this.pullPocket = this.pullCaption = this.pullLoading = false + } + this._super(e); + }, + _drag: function(e) { + if (this.y >= 0 && this.disablePulldown && e.detail.direction === 'down') { //禁用下拉刷新 + return; + } + this._super(e); + if (!this.pulldown && !this.loading && this.topPocket && e.detail.direction === 'down' && this.y >= 0) { + this._initPulldownRefresh(); + } + if (this.pulldown) { + this._setCaption(this.y > this.options.down.height ? this.options.down.contentover : this.options.down.contentdown); + } + }, + + _reLayout: function() { + this.hasVerticalScroll = true; + this._super(); + }, + //API + resetPosition: function(time) { + if (this.pulldown && !this.disablePulldown) { + if (this.y >= this.options.down.height) { + this.pulldownLoading(undefined, time || 0); + return true; + } else { + !this.loading && this.topPocket.classList.remove(CLASS_VISIBILITY); + } + } + return this._super(time); + }, + pulldownLoading: function(y, time) { + typeof y === 'undefined' && (y = this.options.down.height); //默认高度 + this.scrollTo(0, y, time, this.options.bounceEasing); + if (this.loading) { + return; + } + // if (!this.pulldown) { + this._initPulldownRefresh(); + // } + this._setCaption(this.options.down.contentrefresh); + this.loading = true; + this.indicators.map(function(indicator) { + indicator.fade(0); + }); + var callback = this.options.down.callback; + callback && callback.call(this); + }, + endPulldownToRefresh: function() { + var self = this; + if (self.topPocket && self.loading && this.pulldown) { + self.scrollTo(0, 0, self.options.bounceTime, self.options.bounceEasing); + self.loading = false; + self._setCaption(self.options.down.contentdown, true); + setTimeout(function() { + self.loading || self.topPocket.classList.remove(CLASS_VISIBILITY); + }, 350); + } + }, + pullupLoading: function(callback, x, time) { + x = x || 0; + this.scrollTo(x, this.maxScrollY, time, this.options.bounceEasing); + if (this.loading) { + return; + } + this._initPullupRefresh(); + this._setCaption(this.options.up.contentrefresh); + this.indicators.map(function(indicator) { + indicator.fade(0); + }); + this.loading = true; + callback = callback || this.options.up.callback; + callback && callback.call(this); + }, + endPullupToRefresh: function(finished) { + var self = this; + if (self.bottomPocket) { // && self.loading && !this.pulldown + self.loading = false; + if (finished) { + this.finished = true; + self._setCaption(self.options.up.contentnomore); + // self.bottomPocket.classList.remove(CLASS_VISIBILITY); + // self.bottomPocket.classList.add(CLASS_HIDDEN); + self.wrapper.removeEventListener('scrollbottom', self); + } else { + self._setCaption(self.options.up.contentdown); + // setTimeout(function() { + self.loading || self.bottomPocket.classList.remove(CLASS_VISIBILITY); + // }, 300); + } + } + }, + disablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.className = 'mui-pull-bottom-pocket' + ' ' + CLASS_HIDDEN; + this.wrapper.removeEventListener('scrollbottom', this); + }, + disablePulldownToRefresh: function() { + this._initPulldownRefresh(); + this.topPocket.className = 'mui-pull-top-pocket' + ' ' + CLASS_HIDDEN; + this.disablePulldown = true; + }, + enablePulldownToRefresh: function() { + this._initPulldownRefresh(); + this.topPocket.classList.remove(CLASS_HIDDEN); + this._setCaption(this.options.down.contentdown); + this.disablePulldown = false; + }, + enablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.classList.remove(CLASS_HIDDEN); + this._setCaption(this.options.up.contentdown); + this.wrapper.addEventListener('scrollbottom', this); + }, + refresh: function(isReset) { + if (isReset && this.finished) { + this.enablePullupToRefresh(); + this.finished = false; + } + this._super(); + }, + }, $.PullRefresh)); + $.fn.pullRefresh = function(options) { + if (this.length === 1) { + var self = this[0]; + var pullRefreshApi = null; + var id = self.getAttribute('data-pullrefresh'); + if (!id && typeof options === 'undefined') { + return false; + } + options = options || {}; + if (!id) { + id = ++$.uuid; + $.data[id] = pullRefreshApi = new PullRefresh(self, options); + self.setAttribute('data-pullrefresh', id); + } else { + pullRefreshApi = $.data[id]; + } + if (options.down && options.down.auto) { //如果设置了auto,则自动下拉一次 + pullRefreshApi.pulldownLoading(options.down.autoY); + } else if (options.up && options.up.auto) { //如果设置了auto,则自动上拉一次 + pullRefreshApi.pullupLoading(); + } + //暂不提供这种调用方式吧 + // if (typeof options === 'string') { + // var methodValue = pullRefreshApi[options].apply(pullRefreshApi, $.slice.call(arguments, 1)); + // if (methodValue !== undefined) { + // return methodValue; + // } + // } + return pullRefreshApi; + } + }; +})(mui, window, document); +/** + * snap 重构 + * @param {Object} $ + * @param {Object} window + */ +(function($, window) { + var CLASS_SLIDER = 'mui-slider'; + var CLASS_SLIDER_GROUP = 'mui-slider-group'; + var CLASS_SLIDER_LOOP = 'mui-slider-loop'; + var CLASS_SLIDER_INDICATOR = 'mui-slider-indicator'; + var CLASS_ACTION_PREVIOUS = 'mui-action-previous'; + var CLASS_ACTION_NEXT = 'mui-action-next'; + var CLASS_SLIDER_ITEM = 'mui-slider-item'; + + var CLASS_ACTIVE = 'mui-active'; + + var SELECTOR_SLIDER_ITEM = '.' + CLASS_SLIDER_ITEM; + var SELECTOR_SLIDER_INDICATOR = '.' + CLASS_SLIDER_INDICATOR; + var SELECTOR_SLIDER_PROGRESS_BAR = '.mui-slider-progress-bar'; + + var Slider = $.Slider = $.Scroll.extend({ + init: function(element, options) { + this._super(element, $.extend(true, { + fingers: 1, + interval: 0, //设置为0,则不定时轮播 + scrollY: false, + scrollX: true, + indicators: false, + scrollTime: 1000, + startX: false, + slideTime: 0, //滑动动画时间 + snap: SELECTOR_SLIDER_ITEM + }, options)); + if (this.options.startX) { + // $.trigger(this.wrapper, 'scrollend', this); + } + }, + _init: function() { + this._reInit(); + if (this.scroller) { + this.scrollerStyle = this.scroller.style; + this.progressBar = this.wrapper.querySelector(SELECTOR_SLIDER_PROGRESS_BAR); + if (this.progressBar) { + this.progressBarWidth = this.progressBar.offsetWidth; + this.progressBarStyle = this.progressBar.style; + } + //忘记这个代码是干什么的了? + // this.x = this._getScroll(); + // if (this.options.startX === false) { + // this.options.startX = this.x; + // } + //根据active修正startX + + this._super(); + this._initTimer(); + } + }, + _triggerSlide: function() { + var self = this; + self.isInTransition = false; + var page = self.currentPage; + self.slideNumber = self._fixedSlideNumber(); + if (self.loop) { + if (self.slideNumber === 0) { + self.setTranslate(self.pages[1][0].x, 0); + } else if (self.slideNumber === self.itemLength - 3) { + self.setTranslate(self.pages[self.itemLength - 2][0].x, 0); + } + } + if (self.lastSlideNumber != self.slideNumber) { + self.lastSlideNumber = self.slideNumber; + self.lastPage = self.currentPage; + $.trigger(self.wrapper, 'slide', { + slideNumber: self.slideNumber + }); + } + self._initTimer(); + }, + _handleSlide: function(e) { + var self = this; + if (e.target !== self.wrapper) { + return; + } + var detail = e.detail; + detail.slideNumber = detail.slideNumber || 0; + var temps = self.scroller.querySelectorAll(SELECTOR_SLIDER_ITEM); + var items = []; + for (var i = 0, len = temps.length; i < len; i++) { + var item = temps[i]; + if (item.parentNode === self.scroller) { + items.push(item); + } + } + var _slideNumber = detail.slideNumber; + if (self.loop) { + _slideNumber += 1; + } + if (!self.wrapper.classList.contains('mui-segmented-control')) { + for (var i = 0, len = items.length; i < len; i++) { + var item = items[i]; + if (item.parentNode === self.scroller) { + if (i === _slideNumber) { + item.classList.add(CLASS_ACTIVE); + } else { + item.classList.remove(CLASS_ACTIVE); + } + } + } + } + var indicatorWrap = self.wrapper.querySelector('.mui-slider-indicator'); + if (indicatorWrap) { + if (indicatorWrap.getAttribute('data-scroll')) { //scroll + $(indicatorWrap).scroll().gotoPage(detail.slideNumber); + } + var indicators = indicatorWrap.querySelectorAll('.mui-indicator'); + if (indicators.length > 0) { //图片轮播 + for (var i = 0, len = indicators.length; i < len; i++) { + indicators[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE); + } + } else { + var number = indicatorWrap.querySelector('.mui-number span'); + if (number) { //图文表格 + number.innerText = (detail.slideNumber + 1); + } else { //segmented controls + var controlItems = indicatorWrap.querySelectorAll('.mui-control-item'); + for (var i = 0, len = controlItems.length; i < len; i++) { + controlItems[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE); + } + } + } + } + e.stopPropagation(); + }, + _handleTabShow: function(e) { + var self = this; + self.gotoItem((e.detail.tabNumber || 0), self.options.slideTime); + }, + _handleIndicatorTap: function(event) { + var self = this; + var target = event.target; + if (target.classList.contains(CLASS_ACTION_PREVIOUS) || target.classList.contains(CLASS_ACTION_NEXT)) { + self[target.classList.contains(CLASS_ACTION_PREVIOUS) ? 'prevItem' : 'nextItem'](); + event.stopPropagation(); + } + }, + _initEvent: function(detach) { + var self = this; + self._super(detach); + var action = detach ? 'removeEventListener' : 'addEventListener'; + self.wrapper[action]('slide', this); + self.wrapper[action]($.eventName('shown', 'tab'), this); + }, + handleEvent: function(e) { + this._super(e); + switch (e.type) { + case 'slide': + this._handleSlide(e); + break; + case $.eventName('shown', 'tab'): + if (~this.snaps.indexOf(e.target)) { //避免嵌套监听错误的tab show + this._handleTabShow(e); + } + break; + } + }, + _scrollend: function(e) { + this._super(e); + this._triggerSlide(e); + }, + _drag: function(e) { + this._super(e); + var direction = e.detail.direction; + if (direction === 'left' || direction === 'right') { + //拖拽期间取消定时 + var slidershowTimer = this.wrapper.getAttribute('data-slidershowTimer'); + slidershowTimer && window.clearTimeout(slidershowTimer); + + e.stopPropagation(); + } + }, + _initTimer: function() { + var self = this; + var slider = self.wrapper; + var interval = self.options.interval; + var slidershowTimer = slider.getAttribute('data-slidershowTimer'); + slidershowTimer && window.clearTimeout(slidershowTimer); + if (interval) { + slidershowTimer = window.setTimeout(function() { + if (!slider) { + return; + } + //仅slider显示状态进行自动轮播 + if (!!(slider.offsetWidth || slider.offsetHeight)) { + self.nextItem(true); + //下一个 + } + self._initTimer(); + }, interval); + slider.setAttribute('data-slidershowTimer', slidershowTimer); + } + }, + + _fixedSlideNumber: function(page) { + page = page || this.currentPage; + var slideNumber = page.pageX; + if (this.loop) { + if (page.pageX === 0) { + slideNumber = this.itemLength - 3; + } else if (page.pageX === (this.itemLength - 1)) { + slideNumber = 0; + } else { + slideNumber = page.pageX - 1; + } + } + return slideNumber; + }, + _reLayout: function() { + this.hasHorizontalScroll = true; + this.loop = this.scroller.classList.contains(CLASS_SLIDER_LOOP); + this._super(); + }, + _getScroll: function() { + var result = $.parseTranslateMatrix($.getStyles(this.scroller, 'webkitTransform')); + return result ? result.x : 0; + }, + _transitionEnd: function(e) { + if (e.target !== this.scroller || !this.isInTransition) { + return; + } + this._transitionTime(); + this.isInTransition = false; + $.trigger(this.wrapper, 'scrollend', this); + }, + _flick: function(e) { + if (!this.moved) { //无moved + return; + } + var detail = e.detail; + var direction = detail.direction; + this._clearRequestAnimationFrame(); + this.isInTransition = true; + // if (direction === 'up' || direction === 'down') { + // this.resetPosition(this.options.bounceTime); + // return; + // } + if (e.type === 'flick') { + if (detail.deltaTime < 200) { //flick,太容易触发,额外校验一下deltaTime + this.x = this._getPage((this.slideNumber + (direction === 'right' ? -1 : 1)), true).x; + } + this.resetPosition(this.options.bounceTime); + } else if (e.type === 'dragend' && !detail.flick) { + this.resetPosition(this.options.bounceTime); + } + e.stopPropagation(); + }, + _initSnap: function() { + this.scrollerWidth = this.itemLength * this.scrollerWidth; + this.maxScrollX = Math.min(this.wrapperWidth - this.scrollerWidth, 0); + this._super(); + if (!this.currentPage.x) { + //当slider处于隐藏状态时,导致snap计算是错误的,临时先这么判断一下,后续要考虑解决所有scroll在隐藏状态下初始化属性不正确的问题 + var currentPage = this.pages[this.loop ? 1 : 0]; + currentPage = currentPage || this.pages[0]; + if (!currentPage) { + return; + } + this.currentPage = currentPage[0]; + this.slideNumber = 0; + this.lastSlideNumber = typeof this.lastSlideNumber === 'undefined' ? 0 : this.lastSlideNumber; + } else { + this.slideNumber = this._fixedSlideNumber(); + this.lastSlideNumber = typeof this.lastSlideNumber === 'undefined' ? this.slideNumber : this.lastSlideNumber; + } + this.options.startX = this.currentPage.x || 0; + }, + _getSnapX: function(offsetLeft) { + return Math.max(-offsetLeft, this.maxScrollX); + }, + _getPage: function(slideNumber, isFlick) { + if (this.loop) { + if (slideNumber > (this.itemLength - (isFlick ? 2 : 3))) { + slideNumber = 1; + time = 0; + } else if (slideNumber < (isFlick ? -1 : 0)) { + slideNumber = this.itemLength - 2; + time = 0; + } else { + slideNumber += 1; + } + } else { + if (!isFlick) { + if (slideNumber > (this.itemLength - 1)) { + slideNumber = 0; + time = 0; + } else if (slideNumber < 0) { + slideNumber = this.itemLength - 1; + time = 0; + } + } + slideNumber = Math.min(Math.max(0, slideNumber), this.itemLength - 1); + } + return this.pages[slideNumber][0]; + }, + _gotoItem: function(slideNumber, time) { + this.currentPage = this._getPage(slideNumber, true); //此处传true。可保证程序切换时,动画与人手操作一致(第一张,最后一张的切换动画) + this.scrollTo(this.currentPage.x, 0, time, this.options.scrollEasing); + if (time === 0) { + $.trigger(this.wrapper, 'scrollend', this); + } + }, + //API + setTranslate: function(x, y) { + this._super(x, y); + var progressBar = this.progressBar; + if (progressBar) { + this.progressBarStyle.webkitTransform = this._getTranslateStr((-x * (this.progressBarWidth / this.wrapperWidth)), 0); + } + }, + resetPosition: function(time) { + time = time || 0; + if (this.x > 0) { + this.x = 0; + } else if (this.x < this.maxScrollX) { + this.x = this.maxScrollX; + } + this.currentPage = this._nearestSnap(this.x); + this.scrollTo(this.currentPage.x, 0, time, this.options.scrollEasing); + return true; + }, + gotoItem: function(slideNumber, time) { + this._gotoItem(slideNumber, typeof time === 'undefined' ? this.options.scrollTime : time); + }, + nextItem: function() { + this._gotoItem(this.slideNumber + 1, this.options.scrollTime); + }, + prevItem: function() { + this._gotoItem(this.slideNumber - 1, this.options.scrollTime); + }, + getSlideNumber: function() { + return this.slideNumber || 0; + }, + _reInit: function() { + var groups = this.wrapper.querySelectorAll('.' + CLASS_SLIDER_GROUP); + for (var i = 0, len = groups.length; i < len; i++) { + if (groups[i].parentNode === this.wrapper) { + this.scroller = groups[i]; + break; + } + } + this.scrollerStyle = this.scroller && this.scroller.style; + if (this.progressBar) { + this.progressBarWidth = this.progressBar.offsetWidth; + this.progressBarStyle = this.progressBar.style; + } + }, + refresh: function(options) { + if (options) { + $.extend(this.options, options); + this._super(); + this._initTimer(); + } else { + this._super(); + } + }, + destroy: function() { + this._initEvent(true); //detach + delete $.data[this.wrapper.getAttribute('data-slider')]; + this.wrapper.setAttribute('data-slider', ''); + } + }); + $.fn.slider = function(options) { + var slider = null; + this.each(function() { + var sliderElement = this; + if (!this.classList.contains(CLASS_SLIDER)) { + sliderElement = this.querySelector('.' + CLASS_SLIDER); + } + if (sliderElement && sliderElement.querySelector(SELECTOR_SLIDER_ITEM)) { + var id = sliderElement.getAttribute('data-slider'); + if (!id) { + id = ++$.uuid; + $.data[id] = slider = new Slider(sliderElement, options); + sliderElement.setAttribute('data-slider', id); + } else { + slider = $.data[id]; + if (slider && options) { + slider.refresh(options); + } + } + } + }); + return slider; + }; + $.ready(function() { + // setTimeout(function() { + $('.mui-slider').slider(); + $('.mui-scroll-wrapper.mui-slider-indicator.mui-segmented-control').scroll({ + scrollY: false, + scrollX: true, + indicators: false, + snap: '.mui-control-item' + }); + // }, 500); //临时处理slider宽度计算不正确的问题(初步确认是scrollbar导致的) + + }); +})(mui, window); +/** + * pullRefresh 5+ + * @param {type} $ + * @returns {undefined} + */ +(function($, document) { + if (!($.os.plus)) { //仅在5+android支持多webview的使用 + return; + } + $.plusReady(function() { + if (window.__NWin_Enable__ === false) { //不支持多webview,则不用5+下拉刷新 + return; + } + var CLASS_PLUS_PULLREFRESH = 'mui-plus-pullrefresh'; + var CLASS_VISIBILITY = 'mui-visibility'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_BLOCK = 'mui-block'; + + var CLASS_PULL_CAPTION = 'mui-pull-caption'; + var CLASS_PULL_CAPTION_DOWN = 'mui-pull-caption-down'; + var CLASS_PULL_CAPTION_REFRESH = 'mui-pull-caption-refresh'; + var CLASS_PULL_CAPTION_NOMORE = 'mui-pull-caption-nomore'; + + var PlusPullRefresh = $.Class.extend({ + init: function(element, options) { + this.element = element; + this.options = options; + this.wrapper = this.scroller = element; + this._init(); + this._initPulldownRefreshEvent(); + }, + _init: function() { + var self = this; + //document.addEventListener('plusscrollbottom', this); + window.addEventListener('dragup', self); + document.addEventListener("plusscrollbottom", self); + self.scrollInterval = window.setInterval(function() { + if (self.isScroll && !self.loading) { + if (window.pageYOffset + window.innerHeight + 10 >= document.documentElement.scrollHeight) { + self.isScroll = false; //放在这里是因为快速滚动的话,有可能检测时,还没到底,所以只要有滚动,没到底之前一直检测高度变化 + if (self.bottomPocket) { + self.pullupLoading(); + } + } + } + }, 100); + }, + _initPulldownRefreshEvent: function() { + var self = this; + $.plusReady(function() { + if (self.options.down.style == "circle") { + //单webview、原生转圈 + self.options.webview = plus.webview.currentWebview(); + self.options.webview.setPullToRefresh({ + support: true, + color: self.options.down.color || '#2BD009', + height: self.options.down.height || '50px', + range: self.options.down.range || '100px', + style: 'circle', + offset: self.options.down.offset || '0px' + }, function() { + self.options.down.callback(); + }); + } else if (self.topPocket && self.options.webviewId) { + var webview = plus.webview.getWebviewById(self.options.webviewId); //子窗口 + if (!webview) { + return; + } + self.options.webview = webview; + var downOptions = self.options.down; + var height = downOptions.height; + webview.addEventListener('close', function() { + var attrWebviewId = self.options.webviewId && self.options.webviewId.replace(/\//g, "_"); //替换所有"/" + self.element.removeAttribute('data-pullrefresh-plus-' + attrWebviewId); + }); + webview.addEventListener("dragBounce", function(e) { + if (!self.pulldown) { + self._initPulldownRefresh(); + } else { + self.pullPocket.classList.add(CLASS_BLOCK); + } + switch (e.status) { + case "beforeChangeOffset": //下拉可刷新状态 + self._setCaption(downOptions.contentdown); + break; + case "afterChangeOffset": //松开可刷新状态 + self._setCaption(downOptions.contentover); + break; + case "dragEndAfterChangeOffset": //正在刷新状态 + //执行下拉刷新所在webview的回调函数 + webview.evalJS("window.mui&&mui.options.pullRefresh.down.callback()"); + self._setCaption(downOptions.contentrefresh); + break; + default: + break; + } + }, false); + + webview.setBounce({ + position: { + top: height * 2 + 'px' + }, + changeoffset: { + top: height + 'px' + } + }); + + } + }); + }, + handleEvent: function(e) { + var self = this; + if (self.stopped) { + return; + } + self.isScroll = false; + if (e.type === 'dragup' || e.type === 'plusscrollbottom') { + self.isScroll = true; + setTimeout(function() { + self.isScroll = false; + }, 1000); + } + } + }).extend($.extend({ + setStopped: function(stopped) { //该方法是子页面调用的 + this.stopped = !!stopped; + // TODO 此处需要设置当前webview的bounce为none,目前5+有BUG + if (this.stopped) { + this.disablePullupToRefresh(); + this.disablePulldownToRefresh(); + } else { + this.enablePullupToRefresh(); + this.enablePulldownToRefresh(); + } + }, + beginPulldown: function() { + var self = this; + $.plusReady(function() { + //这里延时的目的是为了保证下拉刷新组件初始化完成,后续应该做成有状态的 + setTimeout(function() { + if (self.options.down.style == "circle") { //单webview下拉刷新 + plus.webview.currentWebview().beginPullToRefresh(); + } else { //双webview模式 + var webview = self.options.webview; + if (webview) { + webview.setBounce({ + offset: { + top: self.options.down.height + "px" + } + }); + } + } + }, 15); + }.bind(this)); + }, + pulldownLoading: function() { //该方法是子页面调用的,兼容老的历史API + this.beginPulldown(); + }, + _pulldownLoading: function() { //该方法是父页面调用的 + var self = this; + $.plusReady(function() { + var childWebview = plus.webview.getWebviewById(self.options.webviewId); + childWebview && childWebview.setBounce({ + offset: { + top: self.options.down.height + "px" + } + }); + }); + }, + endPulldown: function() { + var _wv = plus.webview.currentWebview(); + //双webview的下拉刷新,需要修改父窗口提示信息 + if (_wv.parent() && this.options.down.style !== "circle") { + _wv.parent().evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify({ + webviewId: _wv.id + }) + "')._endPulldownToRefresh()"); + } else { + _wv.endPullToRefresh(); + } + }, + endPulldownToRefresh: function() { //该方法是子页面调用的,兼容老的历史API + this.endPulldown(); + }, + _endPulldownToRefresh: function() { //该方法是父页面调用的 + var self = this; + if (self.topPocket && self.options.webview) { + self.options.webview.endPullToRefresh(); //下拉刷新所在webview回弹 + self.loading = false; + self._setCaption(self.options.down.contentdown, true); + setTimeout(function() { + self.loading || self.topPocket.classList.remove(CLASS_BLOCK); + }, 350); + } + }, + beginPullup: function(callback) { //开始上拉加载 + var self = this; + if (self.isLoading) return; + self.isLoading = true; + if (self.pulldown !== false) { + self._initPullupRefresh(); + } else { + this.pullPocket.classList.add(CLASS_BLOCK); + } + setTimeout(function() { + self.pullLoading.classList.add(CLASS_VISIBILITY); + self.pullLoading.classList.remove(CLASS_HIDDEN); + self.pullCaption.innerHTML = ''; //修正5+里边第一次加载时,文字显示的bug(还会显示出来个“多”,猜测应该是渲染问题导致的) + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_REFRESH; + self.pullCaption.innerHTML = self.options.up.contentrefresh; + callback = callback || self.options.up.callback; + callback && callback.call(self); + }, 300); + }, + pullupLoading: function(callback) { //兼容老的API + this.beginPullup(callback); + }, + endPullup: function(finished) { //上拉加载结束 + var self = this; + if (self.pullLoading) { + self.pullLoading.classList.remove(CLASS_VISIBILITY); + self.pullLoading.classList.add(CLASS_HIDDEN); + self.isLoading = false; + if (finished) { + self.finished = true; + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE; + self.pullCaption.innerHTML = self.options.up.contentnomore; + //取消5+的plusscrollbottom事件 + document.removeEventListener('plusscrollbottom', self); + window.removeEventListener('dragup', self); + } else { //初始化时隐藏,后续不再隐藏 + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + self.pullCaption.innerHTML = self.options.up.contentdown; + } + } + }, + endPullupToRefresh: function(finished) { //上拉加载结束,兼容老的API + this.endPullup(finished); + }, + disablePulldownToRefresh: function() { + var webview = plus.webview.currentWebview(); + if (this.options.down.style && this.options.down.style == 'circle') { // 单webview模式禁止原生下拉刷新 + this.options.webview.setPullToRefresh({ + support: false, + style: 'circle' + }); + } else { // 双webview模式禁止下拉刷新 + webview.setStyle({ + bounce: 'none' + }); + webview.setBounce({ + position: { + top: 'none' + } + }); + } + }, + enablePulldownToRefresh: function() { + var self = this, + webview = plus.webview.currentWebview(), + height = this.options.down.height; + // 单webview模式禁止原生下拉刷新 + if (this.options.down.style && this.options.down.style == 'circle') { + webview.setPullToRefresh({ + support: true, + height: height || '50px', + range: self.options.down.range || '100px', + style: 'circle', + offset: self.options.down.offset || '0px' + }); + } else { // 重新初始化双webview模式下拉刷新 + webview.setStyle({ + bounce: 'vertical' + }); + webview.setBounce({ + position: { + top: height * 2 + 'px' + }, + changeoffset: { + top: height + 'px' + } + }); + } + }, + disablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.className = 'mui-pull-bottom-pocket' + ' ' + CLASS_HIDDEN; + window.removeEventListener('dragup', this); + }, + enablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.classList.remove(CLASS_HIDDEN); + this.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + this.pullCaption.innerHTML = this.options.up.contentdown; + document.addEventListener("plusscrollbottom", this); + window.addEventListener('dragup', this); + }, + scrollTo: function(x, y, time) { + $.scrollTo(y, time); + }, + scrollToBottom: function(time) { + $.scrollTo(document.documentElement.scrollHeight, time); + }, + refresh: function(isReset) { + if (isReset && this.finished) { + this.enablePullupToRefresh(); + this.finished = false; + } + } + }, $.PullRefresh)); + + //override h5 pullRefresh + $.fn.pullRefresh_native = function(options) { + var self; + if (this.length === 0) { + self = document.createElement('div'); + self.className = 'mui-content'; + document.body.appendChild(self); + } else { + self = this[0]; + } + var args = options; + //一个父需要支持多个子下拉刷新 + options = options || {} + if (typeof options === 'string') { + options = $.parseJSON(options); + }; + !options.webviewId && (options.webviewId = (plus.webview.currentWebview().id || plus.webview.currentWebview().getURL())); + var pullRefreshApi = null; + var attrWebviewId = options.webviewId && options.webviewId.replace(/\//g, "_"); //替换所有"/" + var id = self.getAttribute('data-pullrefresh-plus-' + attrWebviewId); + if (!id && typeof args === 'undefined') { + return false; + } + if (!id) { //避免重复初始化5+ pullrefresh + id = ++$.uuid; + self.setAttribute('data-pullrefresh-plus-' + attrWebviewId, id); + document.body.classList.add(CLASS_PLUS_PULLREFRESH); + $.data[id] = pullRefreshApi = new PlusPullRefresh(self, options); + } else { + pullRefreshApi = $.data[id]; + } + if (options.down && options.down.auto) { //如果设置了auto,则自动下拉一次 + //pullRefreshApi._pulldownLoading(); //parent webview + pullRefreshApi.beginPulldown(); + } else if (options.up && options.up.auto) { //如果设置了auto,则自动上拉一次 + pullRefreshApi.beginPullup(); + } + return pullRefreshApi; + }; + }); + +})(mui, document); +/** + * off-canvas + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} action + * @returns {undefined} + */ +(function($, window, document, name) { + var CLASS_OFF_CANVAS_LEFT = 'mui-off-canvas-left'; + var CLASS_OFF_CANVAS_RIGHT = 'mui-off-canvas-right'; + var CLASS_ACTION_BACKDROP = 'mui-off-canvas-backdrop'; + var CLASS_OFF_CANVAS_WRAP = 'mui-off-canvas-wrap'; + + var CLASS_SLIDE_IN = 'mui-slide-in'; + var CLASS_ACTIVE = 'mui-active'; + + + var CLASS_TRANSITIONING = 'mui-transitioning'; + + var SELECTOR_INNER_WRAP = '.mui-inner-wrap'; + + + var OffCanvas = $.Class.extend({ + init: function(element, options) { + this.wrapper = this.element = element; + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + this.classList = this.wrapper.classList; + if (this.scroller) { + this.options = $.extend(true, { + dragThresholdX: 10, + scale: 0.8, + opacity: 0.1, + preventDefaultException: { + tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/ + }, + }, options); + document.body.classList.add('mui-fullscreen'); //fullscreen + this.refresh(); + this.initEvent(); + } + }, + _preventDefaultException: function(el, exceptions) { + for (var i in exceptions) { + if (exceptions[i].test(el[i])) { + return true; + } + } + return false; + }, + refresh: function(offCanvas) { + // offCanvas && !offCanvas.classList.contains(CLASS_ACTIVE) && this.classList.remove(CLASS_ACTIVE); + this.slideIn = this.classList.contains(CLASS_SLIDE_IN); + this.scalable = this.classList.contains('mui-scalable') && !this.slideIn; + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + // !offCanvas && this.scroller.classList.remove(CLASS_TRANSITIONING); + // !offCanvas && this.scroller.setAttribute('style', ''); + this.offCanvasLefts = this.wrapper.querySelectorAll('.' + CLASS_OFF_CANVAS_LEFT); + this.offCanvasRights = this.wrapper.querySelectorAll('.' + CLASS_OFF_CANVAS_RIGHT); + if (offCanvas) { + if (offCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT)) { + this.offCanvasLeft = offCanvas; + } else if (offCanvas.classList.contains(CLASS_OFF_CANVAS_RIGHT)) { + this.offCanvasRight = offCanvas; + } + } else { + this.offCanvasRight = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT); + this.offCanvasLeft = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT); + } + this.offCanvasRightWidth = this.offCanvasLeftWidth = 0; + this.offCanvasLeftSlideIn = this.offCanvasRightSlideIn = false; + if (this.offCanvasRight) { + this.offCanvasRightWidth = this.offCanvasRight.offsetWidth; + this.offCanvasRightSlideIn = this.slideIn && (this.offCanvasRight.parentNode === this.wrapper); + // this.offCanvasRight.classList.remove(CLASS_TRANSITIONING); + // this.offCanvasRight.classList.remove(CLASS_ACTIVE); + // this.offCanvasRight.setAttribute('style', ''); + } + if (this.offCanvasLeft) { + this.offCanvasLeftWidth = this.offCanvasLeft.offsetWidth; + this.offCanvasLeftSlideIn = this.slideIn && (this.offCanvasLeft.parentNode === this.wrapper); + // this.offCanvasLeft.classList.remove(CLASS_TRANSITIONING); + // this.offCanvasLeft.classList.remove(CLASS_ACTIVE); + // this.offCanvasLeft.setAttribute('style', ''); + } + this.backdrop = this.scroller.querySelector('.' + CLASS_ACTION_BACKDROP); + + this.options.dragThresholdX = this.options.dragThresholdX || 10; + + this.visible = false; + this.startX = null; + this.lastX = null; + this.offsetX = null; + this.lastTranslateX = null; + }, + handleEvent: function(e) { + switch (e.type) { + case $.EVENT_START: + e.target && !this._preventDefaultException(e.target, this.options.preventDefaultException) && e.preventDefault(); + break; + case 'webkitTransitionEnd': //有个bug需要处理,需要考虑假设没有触发webkitTransitionEnd的情况 + if (e.target === this.scroller) { + this._dispatchEvent(); + } + break; + case 'drag': + var detail = e.detail; + if (!this.startX) { + this.startX = detail.center.x; + this.lastX = this.startX; + } else { + this.lastX = detail.center.x; + } + if (!this.isDragging && Math.abs(this.lastX - this.startX) > this.options.dragThresholdX && (detail.direction === 'left' || (detail.direction === 'right'))) { + if (this.slideIn) { + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + if (this.classList.contains(CLASS_ACTIVE)) { + if (this.offCanvasRight && this.offCanvasRight.classList.contains(CLASS_ACTIVE)) { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } + } else { + if (detail.direction === 'left' && this.offCanvasRight) { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else if (detail.direction === 'right' && this.offCanvasLeft) { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.scroller = null; + } + } + } else { + if (this.classList.contains(CLASS_ACTIVE)) { + if (detail.direction === 'left') { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } + } else { + if (detail.direction === 'right') { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } + } + } + if (this.offCanvas && this.scroller) { + this.startX = this.lastX; + this.isDragging = true; + + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + + this.offCanvas.classList.remove(CLASS_TRANSITIONING); + this.scroller.classList.remove(CLASS_TRANSITIONING); + this.offsetX = this.getTranslateX(); + this._initOffCanvasVisible(); + } + } + if (this.isDragging) { + this.updateTranslate(this.offsetX + (this.lastX - this.startX)); + detail.gesture.preventDefault(); + e.stopPropagation(); + } + break; + case 'dragend': + if (this.isDragging) { + var detail = e.detail; + var direction = detail.direction; + this.isDragging = false; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + var ratio = 0; + var x = this.getTranslateX(); + if (!this.slideIn) { + if (x >= 0) { + ratio = (this.offCanvasLeftWidth && (x / this.offCanvasLeftWidth)) || 0; + } else { + ratio = (this.offCanvasRightWidth && (x / this.offCanvasRightWidth)) || 0; + } + if (ratio === 0) { + this.openPercentage(0); + this._dispatchEvent(); //此处不触发webkitTransitionEnd,所以手动dispatch + return; + } + if (direction === 'right' && ratio >= 0 && (ratio >= 0.5 || detail.swipe)) { //右滑打开 + this.openPercentage(100); + } else if (direction === 'right' && ratio < 0 && (ratio > -0.5 || detail.swipe)) { //右滑关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio > 0 && ratio < 0.5) { //右滑还原关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio < 0.5) { //右滑还原打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio <= 0 && (ratio <= -0.5 || detail.swipe)) { //左滑打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio > 0 && (ratio <= 0.5 || detail.swipe)) { //左滑关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio < 0 && ratio >= -0.5) { //左滑还原关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio > 0.5) { //左滑还原打开 + this.openPercentage(100); + } else { //默认关闭 + this.openPercentage(0); + } + if (ratio === 1 || ratio === -1) { //此处不触发webkitTransitionEnd,所以手动dispatch + this._dispatchEvent(); + } + } else { + if (x >= 0) { + ratio = (this.offCanvasRightWidth && (x / this.offCanvasRightWidth)) || 0; + } else { + ratio = (this.offCanvasLeftWidth && (x / this.offCanvasLeftWidth)) || 0; + } + if (direction === 'right' && ratio <= 0 && (ratio >= -0.5 || detail.swipe)) { //右滑打开 + this.openPercentage(100); + } else if (direction === 'right' && ratio > 0 && (ratio >= 0.5 || detail.swipe)) { //右滑关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio <= -0.5) { //右滑还原关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio > 0 && ratio <= 0.5) { //右滑还原打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio >= 0 && (ratio <= 0.5 || detail.swipe)) { //左滑打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio < 0 && (ratio <= -0.5 || detail.swipe)) { //左滑关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio >= 0.5) { //左滑还原关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio >= -0.5 && ratio < 0) { //左滑还原打开 + this.openPercentage(100); + } else { + this.openPercentage(0); + } + if (ratio === 1 || ratio === -1 || ratio === 0) { + this._dispatchEvent(); + return; + } + + } + } + break; + } + }, + _dispatchEvent: function() { + if (this.classList.contains(CLASS_ACTIVE)) { + $.trigger(this.wrapper, 'shown', this); + } else { + $.trigger(this.wrapper, 'hidden', this); + } + }, + _initOffCanvasVisible: function() { + if (!this.visible) { + this.visible = true; + if (this.offCanvasLeft) { + this.offCanvasLeft.style.visibility = 'visible'; + } + if (this.offCanvasRight) { + this.offCanvasRight.style.visibility = 'visible'; + } + } + }, + initEvent: function() { + var self = this; + if (self.backdrop) { + self.backdrop.addEventListener('tap', function(e) { + self.close(); + e.detail.gesture.preventDefault(); + }); + } + if (this.classList.contains('mui-draggable')) { + this.wrapper.addEventListener($.EVENT_START, this); //临时处理 + this.wrapper.addEventListener('drag', this); + this.wrapper.addEventListener('dragend', this); + } + this.wrapper.addEventListener('webkitTransitionEnd', this); + }, + openPercentage: function(percentage) { + var p = percentage / 100; + if (!this.slideIn) { + if (this.offCanvasLeft && percentage >= 0) { + this.updateTranslate(this.offCanvasLeftWidth * p); + this.offCanvasLeft.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else if (this.offCanvasRight && percentage <= 0) { + this.updateTranslate(this.offCanvasRightWidth * p); + this.offCanvasRight.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else { + if (this.offCanvasLeft && percentage >= 0) { + p = p === 0 ? -1 : 0; + this.updateTranslate(this.offCanvasLeftWidth * p); + this.offCanvasLeft.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else if (this.offCanvasRight && percentage <= 0) { + p = p === 0 ? 1 : 0; + this.updateTranslate(this.offCanvasRightWidth * p); + this.offCanvasRight.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + }, + updateTranslate: function(x) { + if (x !== this.lastTranslateX) { + if (!this.slideIn) { + if ((!this.offCanvasLeft && x > 0) || (!this.offCanvasRight && x < 0)) { + this.setTranslateX(0); + return; + } + if (this.leftShowing && x > this.offCanvasLeftWidth) { + this.setTranslateX(this.offCanvasLeftWidth); + return; + } + if (this.rightShowing && x < -this.offCanvasRightWidth) { + this.setTranslateX(-this.offCanvasRightWidth); + return; + } + this.setTranslateX(x); + if (x >= 0) { + this.leftShowing = true; + this.rightShowing = false; + if (x > 0) { + if (this.offCanvasLeft) { + $.each(this.offCanvasLefts, function(index, offCanvas) { + if (offCanvas === this.offCanvasLeft) { + this.offCanvasLeft.style.zIndex = 0; + } else { + offCanvas.style.zIndex = -1; + } + }.bind(this)); + } + if (this.offCanvasRight) { + this.offCanvasRight.style.zIndex = -1; + } + } + } else { + this.rightShowing = true; + this.leftShowing = false; + if (this.offCanvasRight) { + $.each(this.offCanvasRights, function(index, offCanvas) { + if (offCanvas === this.offCanvasRight) { + offCanvas.style.zIndex = 0; + } else { + offCanvas.style.zIndex = -1; + } + }.bind(this)); + } + if (this.offCanvasLeft) { + this.offCanvasLeft.style.zIndex = -1; + } + } + } else { + if (this.offCanvas.classList.contains(CLASS_OFF_CANVAS_RIGHT)) { + if (x < 0) { + this.setTranslateX(0); + return; + } + if (x > this.offCanvasRightWidth) { + this.setTranslateX(this.offCanvasRightWidth); + return; + } + } else { + if (x > 0) { + this.setTranslateX(0); + return; + } + if (x < -this.offCanvasLeftWidth) { + this.setTranslateX(-this.offCanvasLeftWidth); + return; + } + } + this.setTranslateX(x); + } + this.lastTranslateX = x; + } + }, + setTranslateX: $.animationFrame(function(x) { + if (this.scroller) { + if (this.scalable && this.offCanvas.parentNode === this.wrapper) { + var percent = Math.abs(x) / this.offCanvasWidth; + var zoomOutScale = 1 - (1 - this.options.scale) * percent; + var zoomInScale = this.options.scale + (1 - this.options.scale) * percent; + var zoomOutOpacity = 1 - (1 - this.options.opacity) * percent; + var zoomInOpacity = this.options.opacity + (1 - this.options.opacity) * percent; + if (this.offCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT)) { + this.offCanvas.style.webkitTransformOrigin = '-100%'; + this.scroller.style.webkitTransformOrigin = 'left'; + } else { + this.offCanvas.style.webkitTransformOrigin = '200%'; + this.scroller.style.webkitTransformOrigin = 'right'; + } + this.offCanvas.style.opacity = zoomInOpacity; + this.offCanvas.style.webkitTransform = 'translate3d(0,0,0) scale(' + zoomInScale + ')'; + this.scroller.style.webkitTransform = 'translate3d(' + x + 'px,0,0) scale(' + zoomOutScale + ')'; + } else { + if (this.slideIn) { + this.offCanvas.style.webkitTransform = 'translate3d(' + x + 'px,0,0)'; + } else { + this.scroller.style.webkitTransform = 'translate3d(' + x + 'px,0,0)'; + } + } + } + }), + getTranslateX: function() { + if (this.offCanvas) { + var scroller = this.slideIn ? this.offCanvas : this.scroller; + var result = $.parseTranslateMatrix($.getStyles(scroller, 'webkitTransform')); + return (result && result.x) || 0; + } + return 0; + }, + isShown: function(direction) { + var shown = false; + if (!this.slideIn) { + var x = this.getTranslateX(); + if (direction === 'right') { + shown = this.classList.contains(CLASS_ACTIVE) && x < 0; + } else if (direction === 'left') { + shown = this.classList.contains(CLASS_ACTIVE) && x > 0; + } else { + shown = this.classList.contains(CLASS_ACTIVE) && x !== 0; + } + } else { + if (direction === 'left') { + shown = this.classList.contains(CLASS_ACTIVE) && this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE); + } else if (direction === 'right') { + shown = this.classList.contains(CLASS_ACTIVE) && this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE); + } else { + shown = this.classList.contains(CLASS_ACTIVE) && (this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE) || this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE)); + } + } + return shown; + }, + close: function() { + this._initOffCanvasVisible(); + this.offCanvas = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE) || this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE); + this.offCanvasWidth = this.offCanvas.offsetWidth; + if (this.scroller) { + this.offCanvas.offsetHeight; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + this.openPercentage(0); + } + }, + show: function(direction) { + this._initOffCanvasVisible(); + if (this.isShown(direction)) { + return false; + } + if (!direction) { + direction = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT) ? 'right' : 'left'; + } + if (direction === 'right') { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } + if (this.scroller) { + this.offCanvas.offsetHeight; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + this.openPercentage(direction === 'left' ? 100 : -100); + } + return true; + }, + toggle: function(directionOrOffCanvas) { + var direction = directionOrOffCanvas; + if (directionOrOffCanvas && directionOrOffCanvas.classList) { + direction = directionOrOffCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT) ? 'left' : 'right'; + this.refresh(directionOrOffCanvas); + } + if (!this.show(direction)) { + this.close(); + } + } + }); + + //hash to offcanvas + var findOffCanvasContainer = function(target) { + parentNode = target.parentNode; + if (parentNode) { + if (parentNode.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + return parentNode; + } else { + parentNode = parentNode.parentNode; + if (parentNode.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + return parentNode; + } + } + } + }; + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + var offcanvas = document.getElementById(target.hash.replace('#', '')); + if (offcanvas) { + var container = findOffCanvasContainer(offcanvas); + if (container) { + $.targets._container = container; + return offcanvas; + } + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 60, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + window.addEventListener('tap', function(e) { + if (!$.targets.offcanvas) { + return; + } + //TODO 此处类型的代码后续考虑统一优化(target机制),现在的实现费力不讨好 + var target = e.target; + for (; target && target !== document; target = target.parentNode) { + if (target.tagName === 'A' && target.hash && target.hash === ('#' + $.targets.offcanvas.id)) { + e.detail && e.detail.gesture && e.detail.gesture.preventDefault(); //fixed hashchange + $($.targets._container).offCanvas().toggle($.targets.offcanvas); + $.targets.offcanvas = $.targets._container = null; + break; + } + } + }); + + $.fn.offCanvas = function(options) { + var offCanvasApis = []; + this.each(function() { + var offCanvasApi = null; + var self = this; + //hack old version + if (!self.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + self = findOffCanvasContainer(self); + } + var id = self.getAttribute('data-offCanvas'); + if (!id) { + id = ++$.uuid; + $.data[id] = offCanvasApi = new OffCanvas(self, options); + self.setAttribute('data-offCanvas', id); + } else { + offCanvasApi = $.data[id]; + } + if (options === 'show' || options === 'close' || options === 'toggle') { + offCanvasApi.toggle(); + } + offCanvasApis.push(offCanvasApi); + }); + return offCanvasApis.length === 1 ? offCanvasApis[0] : offCanvasApis; + }; + $.ready(function() { + $('.mui-off-canvas-wrap').offCanvas(); + }); +})(mui, window, document, 'offcanvas'); +/** + * actions + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var CLASS_ACTION = 'mui-action'; + + var handle = function(event, target) { + var className = target.className || ''; + if (typeof className !== 'string') { //svg className(SVGAnimatedString) + className = ''; + } + if (className && ~className.indexOf(CLASS_ACTION)) { + if (target.classList.contains('mui-action-back')) { + event.preventDefault(); + } + return target; + } + return false; + }; + + $.registerTarget({ + name: name, + index: 50, + handle: handle, + target: false, + isContinue: true + }); + +})(mui, 'action'); +/** + * Modals + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} name + * @returns {undefined} + */ +(function($, window, document, name) { + var CLASS_MODAL = 'mui-modal'; + + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + var modal = document.getElementById(target.hash.replace('#', '')); + if (modal && modal.classList.contains(CLASS_MODAL)) { + return modal; + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 50, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + window.addEventListener('tap', function(event) { + if ($.targets.modal) { + event.detail.gesture.preventDefault(); //fixed hashchange + $.targets.modal.classList.toggle('mui-active'); + } + }); +})(mui, window, document, 'modal'); +/** + * Popovers + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} name + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, document, name) { + + var CLASS_POPOVER = 'mui-popover'; + var CLASS_POPOVER_ARROW = 'mui-popover-arrow'; + var CLASS_ACTION_POPOVER = 'mui-popover-action'; + var CLASS_BACKDROP = 'mui-backdrop'; + var CLASS_BAR_POPOVER = 'mui-bar-popover'; + var CLASS_BAR_BACKDROP = 'mui-bar-backdrop'; + var CLASS_ACTION_BACKDROP = 'mui-backdrop-action'; + var CLASS_ACTIVE = 'mui-active'; + var CLASS_BOTTOM = 'mui-bottom'; + + + + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + $.targets._popover = document.getElementById(target.hash.replace('#', '')); + if ($.targets._popover && $.targets._popover.classList.contains(CLASS_POPOVER)) { + return target; + } else { + $.targets._popover = null; + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 60, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + var onPopoverShown = function(e) { + this.removeEventListener('webkitTransitionEnd', onPopoverShown); + this.addEventListener($.EVENT_MOVE, $.preventDefault); + $.trigger(this, 'shown', this); + } + var onPopoverHidden = function(e) { + setStyle(this, 'none'); + this.removeEventListener('webkitTransitionEnd', onPopoverHidden); + this.removeEventListener($.EVENT_MOVE, $.preventDefault); + $.trigger(this, 'hidden', this); + }; + + var backdrop = (function() { + var element = document.createElement('div'); + element.classList.add(CLASS_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('tap', function(e) { + var popover = $.targets._popover; + if (popover) { + popover.addEventListener('webkitTransitionEnd', onPopoverHidden); + popover.classList.remove(CLASS_ACTIVE); + removeBackdrop(popover); + } + }); + + return element; + }()); + var removeBackdropTimer; + var removeBackdrop = function(popover) { + backdrop.setAttribute('style', 'opacity:0'); + $.targets.popover = $.targets._popover = null; //reset + removeBackdropTimer = $.later(function() { + if (!popover.classList.contains(CLASS_ACTIVE) && backdrop.parentNode && backdrop.parentNode === document.body) { + document.body.removeChild(backdrop); + } + }, 350); + }; + window.addEventListener('tap', function(e) { + if (!$.targets.popover) { + return; + } + var toggle = false; + var target = e.target; + for (; target && target !== document; target = target.parentNode) { + if (target === $.targets.popover) { + toggle = true; + } + } + if (toggle) { + e.detail.gesture.preventDefault(); //fixed hashchange + togglePopover($.targets._popover, $.targets.popover); + } + + }); + + var togglePopover = function(popover, anchor, state) { + if ((state === 'show' && popover.classList.contains(CLASS_ACTIVE)) || (state === 'hide' && !popover.classList.contains(CLASS_ACTIVE))) { + return; + } + removeBackdropTimer && removeBackdropTimer.cancel(); //取消remove的timer + //remove一遍,以免来回快速切换,导致webkitTransitionEnd不触发,无法remove + popover.removeEventListener('webkitTransitionEnd', onPopoverShown); + popover.removeEventListener('webkitTransitionEnd', onPopoverHidden); + backdrop.classList.remove(CLASS_BAR_BACKDROP); + backdrop.classList.remove(CLASS_ACTION_BACKDROP); + var _popover = document.querySelector('.mui-popover.mui-active'); + if (_popover) { + // _popover.setAttribute('style', ''); + _popover.addEventListener('webkitTransitionEnd', onPopoverHidden); + _popover.classList.remove(CLASS_ACTIVE); + // _popover.removeEventListener('webkitTransitionEnd', onPopoverHidden); + //同一个弹出则直接返回,解决同一个popover的toggle + if (popover === _popover) { + removeBackdrop(_popover); + return; + } + } + var isActionSheet = false; + if (popover.classList.contains(CLASS_BAR_POPOVER) || popover.classList.contains(CLASS_ACTION_POPOVER)) { //navBar + if (popover.classList.contains(CLASS_ACTION_POPOVER)) { //action sheet popover + isActionSheet = true; + backdrop.classList.add(CLASS_ACTION_BACKDROP); + } else { //bar popover + backdrop.classList.add(CLASS_BAR_BACKDROP); + // if (anchor) { + // if (anchor.parentNode) { + // var offsetWidth = anchor.offsetWidth; + // var offsetLeft = anchor.offsetLeft; + // var innerWidth = window.innerWidth; + // popover.style.left = (Math.min(Math.max(offsetLeft, defaultPadding), innerWidth - offsetWidth - defaultPadding)) + "px"; + // } else { + // //TODO anchor is position:{left,top,bottom,right} + // } + // } + } + } + setStyle(popover, 'block'); //actionsheet transform + popover.offsetHeight; + popover.classList.add(CLASS_ACTIVE); + backdrop.setAttribute('style', ''); + document.body.appendChild(backdrop); + calPosition(popover, anchor, isActionSheet); //position + backdrop.classList.add(CLASS_ACTIVE); + popover.addEventListener('webkitTransitionEnd', onPopoverShown); + }; + var setStyle = function(popover, display, top, left) { + var style = popover.style; + if (typeof display !== 'undefined') + style.display = display; + if (typeof top !== 'undefined') + style.top = top + 'px'; + if (typeof left !== 'undefined') + style.left = left + 'px'; + }; + var calPosition = function(popover, anchor, isActionSheet) { + if (!popover || !anchor) { + return; + } + + if (isActionSheet) { //actionsheet + setStyle(popover, 'block') + return; + } + + var wWidth = window.innerWidth; + var wHeight = window.innerHeight; + + var pWidth = popover.offsetWidth; + var pHeight = popover.offsetHeight; + + var aWidth = anchor.offsetWidth; + var aHeight = anchor.offsetHeight; + var offset = $.offset(anchor); + + var arrow = popover.querySelector('.' + CLASS_POPOVER_ARROW); + if (!arrow) { + arrow = document.createElement('div'); + arrow.className = CLASS_POPOVER_ARROW; + popover.appendChild(arrow); + } + var arrowSize = arrow && arrow.offsetWidth / 2 || 0; + + + + var pTop = 0; + var pLeft = 0; + var diff = 0; + var arrowLeft = 0; + var defaultPadding = popover.classList.contains(CLASS_ACTION_POPOVER) ? 0 : 5; + + var position = 'top'; + if ((pHeight + arrowSize) < (offset.top - window.pageYOffset)) { //top + pTop = offset.top - pHeight - arrowSize; + } else if ((pHeight + arrowSize) < (wHeight - (offset.top - window.pageYOffset) - aHeight)) { //bottom + position = 'bottom'; + pTop = offset.top + aHeight + arrowSize; + } else { //middle + position = 'middle'; + pTop = Math.max((wHeight - pHeight) / 2 + window.pageYOffset, 0); + pLeft = Math.max((wWidth - pWidth) / 2 + window.pageXOffset, 0); + } + if (position === 'top' || position === 'bottom') { + pLeft = aWidth / 2 + offset.left - pWidth / 2; + diff = pLeft; + if (pLeft < defaultPadding) pLeft = defaultPadding; + if (pLeft + pWidth > wWidth) pLeft = wWidth - pWidth - defaultPadding; + + if (arrow) { + if (position === 'top') { + arrow.classList.add(CLASS_BOTTOM); + } else { + arrow.classList.remove(CLASS_BOTTOM); + } + diff = diff - pLeft; + arrowLeft = (pWidth / 2 - arrowSize / 2 + diff); + arrowLeft = Math.max(Math.min(arrowLeft, pWidth - arrowSize * 2 - 6), 6); + arrow.setAttribute('style', 'left:' + arrowLeft + 'px'); + } + } else if (position === 'middle') { + arrow.setAttribute('style', 'display:none'); + } + setStyle(popover, 'block', pTop, pLeft); + }; + + $.createMask = function(callback) { + var element = document.createElement('div'); + element.classList.add(CLASS_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('tap', function() { + mask.close(); + }); + var mask = [element]; + mask._show = false; + mask.show = function() { + mask._show = true; + element.setAttribute('style', 'opacity:1'); + document.body.appendChild(element); + return mask; + }; + mask._remove = function() { + if (mask._show) { + mask._show = false; + element.setAttribute('style', 'opacity:0'); + $.later(function() { + var body = document.body; + element.parentNode === body && body.removeChild(element); + }, 350); + } + return mask; + }; + mask.close = function() { + if (callback) { + if (callback() !== false) { + mask._remove(); + } + } else { + mask._remove(); + } + }; + return mask; + }; + $.fn.popover = function() { + var args = arguments; + this.each(function() { + $.targets._popover = this; + if (args[0] === 'show' || args[0] === 'hide' || args[0] === 'toggle') { + togglePopover(this, args[1], args[0]); + } + }); + }; + +})(mui, window, document, 'popover'); +/** + * segmented-controllers + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, document, name, undefined) { + + var CLASS_CONTROL_ITEM = 'mui-control-item'; + var CLASS_SEGMENTED_CONTROL = 'mui-segmented-control'; + var CLASS_SEGMENTED_CONTROL_VERTICAL = 'mui-segmented-control-vertical'; + var CLASS_CONTROL_CONTENT = 'mui-control-content'; + var CLASS_TAB_BAR = 'mui-bar-tab'; + var CLASS_TAB_ITEM = 'mui-tab-item'; + var CLASS_SLIDER_ITEM = 'mui-slider-item'; + + var handle = function(event, target) { + if (target.classList && (target.classList.contains(CLASS_CONTROL_ITEM) || target.classList.contains(CLASS_TAB_ITEM))) { + if (target.parentNode && target.parentNode.classList && target.parentNode.classList.contains(CLASS_SEGMENTED_CONTROL_VERTICAL)) { + //vertical 如果preventDefault会导致无法滚动 + } else { + + event.preventDefault(); + // if(target.tagName == 'A') { + // // fixed 底部选项卡href 无法跳转 && stop hash change + // var curr_href = location.hostname + location.pathname, + // target_href = target.hostname + target.pathname; + + // if (curr_href == target_href && target.hash !== "") { + // event.preventDefault(); + // return target; + // }else{ + // return false + // } + // } + } + // if (target.hash) { + return target; + // } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 80, + handle: handle, + target: false + }); + + window.addEventListener('tap', function(e) { + + var targetTab = $.targets.tab; + if (!targetTab) { + return; + } + var activeTab; + var activeBodies; + var targetBody; + var className = 'mui-active'; + var classSelector = '.' + className; + var segmentedControl = targetTab.parentNode; + + for (; segmentedControl && segmentedControl !== document; segmentedControl = segmentedControl.parentNode) { + if (segmentedControl.classList.contains(CLASS_SEGMENTED_CONTROL)) { + activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_CONTROL_ITEM); + break; + } else if (segmentedControl.classList.contains(CLASS_TAB_BAR)) { + activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_TAB_ITEM); + } + } + + if (activeTab) { + activeTab.classList.remove(className); + } + + var isLastActive = targetTab === activeTab; + if (targetTab) { + targetTab.classList.add(className); + } + + if (!targetTab.hash) { + return; + } + targetBody = document.getElementById(targetTab.hash.replace('#', '')); + + if (!targetBody) { + return; + } + if (!targetBody.classList.contains(CLASS_CONTROL_CONTENT)) { //tab bar popover + targetTab.classList[isLastActive ? 'remove' : 'add'](className); + return; + } + if (isLastActive) { //same + return; + } + var parentNode = targetBody.parentNode; + activeBodies = parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT + classSelector); + for (var i = 0; i < activeBodies.length; i++) { + var activeBody = activeBodies[i]; + activeBody.parentNode === parentNode && activeBody.classList.remove(className); + } + + targetBody.classList.add(className); + + var contents = []; + var _contents = parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT); + for (var i = 0; i < _contents.length; i++) { //查找直属子节点 + _contents[i].parentNode === parentNode && (contents.push(_contents[i])); + } + $.trigger(targetBody, $.eventName('shown', name), { + tabNumber: Array.prototype.indexOf.call(contents, targetBody) + }); + e.detail && e.detail.gesture.preventDefault(); //fixed hashchange + }); + +})(mui, window, document, 'tab'); +/** + * Toggles switch + * @param {type} $ + * @param {type} window + * @param {type} name + * @returns {undefined} + */ +(function($, window, name) { + + var CLASS_SWITCH = 'mui-switch'; + var CLASS_SWITCH_HANDLE = 'mui-switch-handle'; + var CLASS_ACTIVE = 'mui-active'; + var CLASS_DRAGGING = 'mui-dragging'; + + var CLASS_DISABLED = 'mui-disabled'; + + var SELECTOR_SWITCH_HANDLE = '.' + CLASS_SWITCH_HANDLE; + + var handle = function(event, target) { + if (target.classList && target.classList.contains(CLASS_SWITCH)) { + return target; + } + return false; + }; + + $.registerTarget({ + name: name, + index: 100, + handle: handle, + target: false + }); + + + var Toggle = function(element) { + this.element = element; + this.classList = this.element.classList; + this.handle = this.element.querySelector(SELECTOR_SWITCH_HANDLE); + this.init(); + this.initEvent(); + }; + Toggle.prototype.init = function() { + this.toggleWidth = this.element.offsetWidth; + this.handleWidth = this.handle.offsetWidth; + this.handleX = this.toggleWidth - this.handleWidth - 3; + }; + Toggle.prototype.initEvent = function() { + this.element.addEventListener($.EVENT_START, this); + this.element.addEventListener('drag', this); + this.element.addEventListener('swiperight', this); + this.element.addEventListener($.EVENT_END, this); + this.element.addEventListener($.EVENT_CANCEL, this); + + }; + Toggle.prototype.handleEvent = function(e) { + if (this.classList.contains(CLASS_DISABLED)) { + return; + } + switch (e.type) { + case $.EVENT_START: + this.start(e); + break; + case 'drag': + this.drag(e); + break; + case 'swiperight': + this.swiperight(); + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + this.end(e); + break; + } + }; + Toggle.prototype.start = function(e) { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '.2s'; + this.classList.add(CLASS_DRAGGING); + if (this.toggleWidth === 0 || this.handleWidth === 0) { //当switch处于隐藏状态时,width为0,需要重新初始化 + this.init(); + } + }; + Toggle.prototype.drag = function(e) { + var detail = e.detail; + if (!this.isDragging) { + if (detail.direction === 'left' || detail.direction === 'right') { + this.isDragging = true; + this.lastChanged = undefined; + this.initialState = this.classList.contains(CLASS_ACTIVE); + } + } + if (this.isDragging) { + this.setTranslateX(detail.deltaX); + e.stopPropagation(); + detail.gesture.preventDefault(); + } + }; + Toggle.prototype.swiperight = function(e) { + if (this.isDragging) { + e.stopPropagation(); + } + }; + Toggle.prototype.end = function(e) { + this.classList.remove(CLASS_DRAGGING); + if (this.isDragging) { + this.isDragging = false; + e.stopPropagation(); + $.trigger(this.element, 'toggle', { + isActive: this.classList.contains(CLASS_ACTIVE) + }); + } else { + this.toggle(); + } + }; + Toggle.prototype.toggle = function(animate) { + var classList = this.classList; + if (animate === false) { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '0s'; + } else { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '.2s'; + } + if (classList.contains(CLASS_ACTIVE)) { + classList.remove(CLASS_ACTIVE); + this.handle.style.webkitTransform = 'translate(0,0)'; + } else { + classList.add(CLASS_ACTIVE); + this.handle.style.webkitTransform = 'translate(' + this.handleX + 'px,0)'; + } + $.trigger(this.element, 'toggle', { + isActive: this.classList.contains(CLASS_ACTIVE) + }); + }; + Toggle.prototype.setTranslateX = $.animationFrame(function(x) { + if (!this.isDragging) { + return; + } + var isChanged = false; + if ((this.initialState && -x > (this.handleX / 2)) || (!this.initialState && x > (this.handleX / 2))) { + isChanged = true; + } + if (this.lastChanged !== isChanged) { + if (isChanged) { + this.handle.style.webkitTransform = 'translate(' + (this.initialState ? 0 : this.handleX) + 'px,0)'; + this.classList[this.initialState ? 'remove' : 'add'](CLASS_ACTIVE); + } else { + this.handle.style.webkitTransform = 'translate(' + (this.initialState ? this.handleX : 0) + 'px,0)'; + this.classList[this.initialState ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.lastChanged = isChanged; + } + + }); + + $.fn['switch'] = function(options) { + var switchApis = []; + this.each(function() { + var switchApi = null; + var id = this.getAttribute('data-switch'); + if (!id) { + id = ++$.uuid; + $.data[id] = new Toggle(this); + this.setAttribute('data-switch', id); + } else { + switchApi = $.data[id]; + } + switchApis.push(switchApi); + }); + return switchApis.length > 1 ? switchApis : switchApis[0]; + }; + $.ready(function() { + $('.' + CLASS_SWITCH)['switch'](); + }); +})(mui, window, 'toggle'); +/** + * Tableviews + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + + var CLASS_ACTIVE = 'mui-active'; + var CLASS_SELECTED = 'mui-selected'; + var CLASS_GRID_VIEW = 'mui-grid-view'; + var CLASS_RADIO_VIEW = 'mui-table-view-radio'; + var CLASS_TABLE_VIEW_CELL = 'mui-table-view-cell'; + var CLASS_COLLAPSE_CONTENT = 'mui-collapse-content'; + var CLASS_DISABLED = 'mui-disabled'; + var CLASS_TOGGLE = 'mui-switch'; + var CLASS_BTN = 'mui-btn'; + + var CLASS_SLIDER_HANDLE = 'mui-slider-handle'; + var CLASS_SLIDER_LEFT = 'mui-slider-left'; + var CLASS_SLIDER_RIGHT = 'mui-slider-right'; + var CLASS_TRANSITIONING = 'mui-transitioning'; + + + var SELECTOR_SLIDER_HANDLE = '.' + CLASS_SLIDER_HANDLE; + var SELECTOR_SLIDER_LEFT = '.' + CLASS_SLIDER_LEFT; + var SELECTOR_SLIDER_RIGHT = '.' + CLASS_SLIDER_RIGHT; + var SELECTOR_SELECTED = '.' + CLASS_SELECTED; + var SELECTOR_BUTTON = '.' + CLASS_BTN; + var overFactor = 0.8; + var cell, a; + + var isMoved = isOpened = openedActions = progress = false; + var sliderHandle = sliderActionLeft = sliderActionRight = buttonsLeft = buttonsRight = sliderDirection = sliderRequestAnimationFrame = false; + var timer = translateX = lastTranslateX = sliderActionLeftWidth = sliderActionRightWidth = 0; + + + + var toggleActive = function(isActive) { + if (isActive) { + if (a) { + a.classList.add(CLASS_ACTIVE); + } else if (cell) { + cell.classList.add(CLASS_ACTIVE); + } + } else { + timer && timer.cancel(); + if (a) { + a.classList.remove(CLASS_ACTIVE); + } else if (cell) { + cell.classList.remove(CLASS_ACTIVE); + } + } + }; + + var updateTranslate = function() { + if (translateX !== lastTranslateX) { + if (buttonsRight && buttonsRight.length > 0) { + progress = translateX / sliderActionRightWidth; + if (translateX < -sliderActionRightWidth) { + translateX = -sliderActionRightWidth - Math.pow(-translateX - sliderActionRightWidth, overFactor); + } + for (var i = 0, len = buttonsRight.length; i < len; i++) { + var buttonRight = buttonsRight[i]; + if (typeof buttonRight._buttonOffset === 'undefined') { + buttonRight._buttonOffset = buttonRight.offsetLeft; + } + buttonOffset = buttonRight._buttonOffset; + setTranslate(buttonRight, (translateX - buttonOffset * (1 + Math.max(progress, -1)))); + } + } + if (buttonsLeft && buttonsLeft.length > 0) { + progress = translateX / sliderActionLeftWidth; + if (translateX > sliderActionLeftWidth) { + translateX = sliderActionLeftWidth + Math.pow(translateX - sliderActionLeftWidth, overFactor); + } + for (var i = 0, len = buttonsLeft.length; i < len; i++) { + var buttonLeft = buttonsLeft[i]; + if (typeof buttonLeft._buttonOffset === 'undefined') { + buttonLeft._buttonOffset = sliderActionLeftWidth - buttonLeft.offsetLeft - buttonLeft.offsetWidth; + } + buttonOffset = buttonLeft._buttonOffset; + if (buttonsLeft.length > 1) { + buttonLeft.style.zIndex = buttonsLeft.length - i; + } + setTranslate(buttonLeft, (translateX + buttonOffset * (1 - Math.min(progress, 1)))); + } + } + setTranslate(sliderHandle, translateX); + lastTranslateX = translateX; + } + sliderRequestAnimationFrame = requestAnimationFrame(function() { + updateTranslate(); + }); + }; + var setTranslate = function(element, x) { + if (element) { + element.style.webkitTransform = 'translate(' + x + 'px,0)'; + } + }; + + window.addEventListener($.EVENT_START, function(event) { + if (cell) { + toggleActive(false); + } + cell = a = false; + isMoved = isOpened = openedActions = false; + var target = event.target; + var isDisabled = false; + for (; target && target !== document; target = target.parentNode) { + if (target.classList) { + var classList = target.classList; + if ((target.tagName === 'INPUT' && target.type !== 'radio' && target.type !== 'checkbox') || target.tagName === 'BUTTON' || classList.contains(CLASS_TOGGLE) || classList.contains(CLASS_BTN) || classList.contains(CLASS_DISABLED)) { + isDisabled = true; + } + if (classList.contains(CLASS_COLLAPSE_CONTENT)) { //collapse content + break; + } + if (classList.contains(CLASS_TABLE_VIEW_CELL)) { + cell = target; + //TODO swipe to delete close + var selected = cell.parentNode.querySelector(SELECTOR_SELECTED); + if (!cell.parentNode.classList.contains(CLASS_RADIO_VIEW) && selected && selected !== cell) { + $.swipeoutClose(selected); + cell = isDisabled = false; + return; + } + if (!cell.parentNode.classList.contains(CLASS_GRID_VIEW)) { + var link = cell.querySelector('a'); + if (link && link.parentNode === cell) { //li>a + a = link; + } + } + var handle = cell.querySelector(SELECTOR_SLIDER_HANDLE); + if (handle) { + toggleEvents(cell); + event.stopPropagation(); + } + if (!isDisabled) { + if (handle) { + if (timer) { + timer.cancel(); + } + timer = $.later(function() { + toggleActive(true); + }, 100); + } else { + toggleActive(true); + } + } + break; + } + } + } + }); + window.addEventListener($.EVENT_MOVE, function(event) { + toggleActive(false); + }); + + var handleEvent = { + handleEvent: function(event) { + switch (event.type) { + case 'drag': + this.drag(event); + break; + case 'dragend': + this.dragend(event); + break; + case 'flick': + this.flick(event); + break; + case 'swiperight': + this.swiperight(event); + break; + case 'swipeleft': + this.swipeleft(event); + break; + } + }, + drag: function(event) { + if (!cell) { + return; + } + if (!isMoved) { //init + sliderHandle = sliderActionLeft = sliderActionRight = buttonsLeft = buttonsRight = sliderDirection = sliderRequestAnimationFrame = false; + sliderHandle = cell.querySelector(SELECTOR_SLIDER_HANDLE); + if (sliderHandle) { + sliderActionLeft = cell.querySelector(SELECTOR_SLIDER_LEFT); + sliderActionRight = cell.querySelector(SELECTOR_SLIDER_RIGHT); + if (sliderActionLeft) { + sliderActionLeftWidth = sliderActionLeft.offsetWidth; + buttonsLeft = sliderActionLeft.querySelectorAll(SELECTOR_BUTTON); + } + if (sliderActionRight) { + sliderActionRightWidth = sliderActionRight.offsetWidth; + buttonsRight = sliderActionRight.querySelectorAll(SELECTOR_BUTTON); + } + cell.classList.remove(CLASS_TRANSITIONING); + isOpened = cell.classList.contains(CLASS_SELECTED); + if (isOpened) { + openedActions = cell.querySelector(SELECTOR_SLIDER_LEFT + SELECTOR_SELECTED) ? 'left' : 'right'; + } + } + } + var detail = event.detail; + var direction = detail.direction; + var angle = detail.angle; + if (direction === 'left' && (angle > 150 || angle < -150)) { + if (buttonsRight || (buttonsLeft && isOpened)) { //存在右侧按钮或存在左侧按钮且是已打开状态 + isMoved = true; + } + } else if (direction === 'right' && (angle > -30 && angle < 30)) { + if (buttonsLeft || (buttonsRight && isOpened)) { //存在左侧按钮或存在右侧按钮且是已打开状态 + isMoved = true; + } + } + if (isMoved) { + event.stopPropagation(); + event.detail.gesture.preventDefault(); + var translate = event.detail.deltaX; + if (isOpened) { + if (openedActions === 'right') { + translate = translate - sliderActionRightWidth; + } else { + translate = translate + sliderActionLeftWidth; + } + } + if ((translate > 0 && !buttonsLeft) || (translate < 0 && !buttonsRight)) { + if (!isOpened) { + return; + } + translate = 0; + } + if (translate < 0) { + sliderDirection = 'toLeft'; + } else if (translate > 0) { + sliderDirection = 'toRight'; + } else { + if (!sliderDirection) { + sliderDirection = 'toLeft'; + } + } + if (!sliderRequestAnimationFrame) { + updateTranslate(); + } + translateX = translate; + } + }, + flick: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + swipeleft: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + swiperight: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + dragend: function(event) { + if (!isMoved) { + return; + } + event.stopPropagation(); + if (sliderRequestAnimationFrame) { + cancelAnimationFrame(sliderRequestAnimationFrame); + sliderRequestAnimationFrame = null; + } + var detail = event.detail; + isMoved = false; + var action = 'close'; + var actionsWidth = sliderDirection === 'toLeft' ? sliderActionRightWidth : sliderActionLeftWidth; + var isToggle = detail.swipe || (Math.abs(translateX) > actionsWidth / 2); + if (isToggle) { + if (!isOpened) { + action = 'open'; + } else if (detail.direction === 'left' && openedActions === 'right') { + action = 'open'; + } else if (detail.direction === 'right' && openedActions === 'left') { + action = 'open'; + } + + } + cell.classList.add(CLASS_TRANSITIONING); + var buttons; + if (action === 'open') { + var newTranslate = sliderDirection === 'toLeft' ? -actionsWidth : actionsWidth; + setTranslate(sliderHandle, newTranslate); + buttons = sliderDirection === 'toLeft' ? buttonsRight : buttonsLeft; + if (typeof buttons !== 'undefined') { + var button = null; + for (var i = 0; i < buttons.length; i++) { + button = buttons[i]; + setTranslate(button, newTranslate); + } + button.parentNode.classList.add(CLASS_SELECTED); + cell.classList.add(CLASS_SELECTED); + if (!isOpened) { + $.trigger(cell, sliderDirection === 'toLeft' ? 'slideleft' : 'slideright'); + } + } + } else { + setTranslate(sliderHandle, 0); + sliderActionLeft && sliderActionLeft.classList.remove(CLASS_SELECTED); + sliderActionRight && sliderActionRight.classList.remove(CLASS_SELECTED); + cell.classList.remove(CLASS_SELECTED); + } + var buttonOffset; + if (buttonsLeft && buttonsLeft.length > 0 && buttonsLeft !== buttons) { + for (var i = 0, len = buttonsLeft.length; i < len; i++) { + var buttonLeft = buttonsLeft[i]; + buttonOffset = buttonLeft._buttonOffset; + if (typeof buttonOffset === 'undefined') { + buttonLeft._buttonOffset = sliderActionLeftWidth - buttonLeft.offsetLeft - buttonLeft.offsetWidth; + } + setTranslate(buttonLeft, buttonOffset); + } + } + if (buttonsRight && buttonsRight.length > 0 && buttonsRight !== buttons) { + for (var i = 0, len = buttonsRight.length; i < len; i++) { + var buttonRight = buttonsRight[i]; + buttonOffset = buttonRight._buttonOffset; + if (typeof buttonOffset === 'undefined') { + buttonRight._buttonOffset = buttonRight.offsetLeft; + } + setTranslate(buttonRight, -buttonOffset); + } + } + } + }; + + function toggleEvents(element, isRemove) { + var method = !!isRemove ? 'removeEventListener' : 'addEventListener'; + element[method]('drag', handleEvent); + element[method]('dragend', handleEvent); + element[method]('swiperight', handleEvent); + element[method]('swipeleft', handleEvent); + element[method]('flick', handleEvent); + }; + /** + * 打开滑动菜单 + * @param {Object} el + * @param {Object} direction + */ + $.swipeoutOpen = function(el, direction) { + if (!el) return; + var classList = el.classList; + if (classList.contains(CLASS_SELECTED)) return; + if (!direction) { + if (el.querySelector(SELECTOR_SLIDER_RIGHT)) { + direction = 'right'; + } else { + direction = 'left'; + } + } + var swipeoutAction = el.querySelector($.classSelector(".slider-" + direction)); + if (!swipeoutAction) return; + swipeoutAction.classList.add(CLASS_SELECTED); + classList.add(CLASS_SELECTED); + classList.remove(CLASS_TRANSITIONING); + var buttons = swipeoutAction.querySelectorAll(SELECTOR_BUTTON); + var swipeoutWidth = swipeoutAction.offsetWidth; + var translate = (direction === 'right') ? -swipeoutWidth : swipeoutWidth; + var length = buttons.length; + var button; + for (var i = 0; i < length; i++) { + button = buttons[i]; + if (direction === 'right') { + setTranslate(button, -button.offsetLeft); + } else { + setTranslate(button, (swipeoutWidth - button.offsetWidth - button.offsetLeft)); + } + } + classList.add(CLASS_TRANSITIONING); + for (var i = 0; i < length; i++) { + setTranslate(buttons[i], translate); + } + setTranslate(el.querySelector(SELECTOR_SLIDER_HANDLE), translate); + }; + /** + * 关闭滑动菜单 + * @param {Object} el + */ + $.swipeoutClose = function(el) { + if (!el) return; + var classList = el.classList; + if (!classList.contains(CLASS_SELECTED)) return; + var direction = el.querySelector(SELECTOR_SLIDER_RIGHT + SELECTOR_SELECTED) ? 'right' : 'left'; + var swipeoutAction = el.querySelector($.classSelector(".slider-" + direction)); + if (!swipeoutAction) return; + swipeoutAction.classList.remove(CLASS_SELECTED); + classList.remove(CLASS_SELECTED); + classList.add(CLASS_TRANSITIONING); + var buttons = swipeoutAction.querySelectorAll(SELECTOR_BUTTON); + var swipeoutWidth = swipeoutAction.offsetWidth; + var length = buttons.length; + var button; + setTranslate(el.querySelector(SELECTOR_SLIDER_HANDLE), 0); + for (var i = 0; i < length; i++) { + button = buttons[i]; + if (direction === 'right') { + setTranslate(button, (-button.offsetLeft)); + } else { + setTranslate(button, (swipeoutWidth - button.offsetWidth - button.offsetLeft)); + } + } + }; + + window.addEventListener($.EVENT_END, function(event) { //使用touchend来取消高亮,避免一次点击既不触发tap,doubletap,longtap的事件 + if (!cell) { + return; + } + toggleActive(false); + sliderHandle && toggleEvents(cell, true); + }); + window.addEventListener($.EVENT_CANCEL, function(event) { //使用touchcancel来取消高亮,避免一次点击既不触发tap,doubletap,longtap的事件 + if (!cell) { + return; + } + toggleActive(false); + sliderHandle && toggleEvents(cell, true); + }); + var radioOrCheckboxClick = function(event) { + var type = event.target && event.target.type || ''; + if (type === 'radio' || type === 'checkbox') { + return; + } + var classList = cell.classList; + if (classList.contains('mui-radio')) { + var input = cell.querySelector('input[type=radio]'); + if (input) { + // input.click(); + if (!input.disabled && !input.readOnly) { + input.checked = !input.checked; + $.trigger(input, 'change'); + } + } + } else if (classList.contains('mui-checkbox')) { + var input = cell.querySelector('input[type=checkbox]'); + if (input) { + // input.click(); + if (!input.disabled && !input.readOnly) { + input.checked = !input.checked; + $.trigger(input, 'change'); + } + } + } + }; + //fixed hashchange(android) + window.addEventListener($.EVENT_CLICK, function(e) { + if (cell && cell.classList.contains('mui-collapse')) { + e.preventDefault(); + } + }); + window.addEventListener('doubletap', function(event) { + if (cell) { + radioOrCheckboxClick(event); + } + }); + var preventDefaultException = /^(INPUT|TEXTAREA|BUTTON|SELECT)$/; + window.addEventListener('tap', function(event) { + if (!cell) { + return; + } + var isExpand = false; + var classList = cell.classList; + var ul = cell.parentNode; + if (ul && ul.classList.contains(CLASS_RADIO_VIEW)) { + if (classList.contains(CLASS_SELECTED)) { + return; + } + var selected = ul.querySelector('li' + SELECTOR_SELECTED); + if (selected) { + selected.classList.remove(CLASS_SELECTED); + } + classList.add(CLASS_SELECTED); + $.trigger(cell, 'selected', { + el: cell + }); + return; + } + if (classList.contains('mui-collapse') && !cell.parentNode.classList.contains('mui-unfold')) { + if (!preventDefaultException.test(event.target.tagName)) { + event.detail.gesture.preventDefault(); + } + + if (!classList.contains(CLASS_ACTIVE)) { //展开时,需要收缩其他同类 + var collapse = cell.parentNode.querySelector('.mui-collapse.mui-active'); + if (collapse) { + collapse.classList.remove(CLASS_ACTIVE); + } + isExpand = true; + } + classList.toggle(CLASS_ACTIVE); + if (isExpand) { + //触发展开事件 + $.trigger(cell, 'expand'); + + //scroll + //暂不滚动 + // var offsetTop = $.offset(cell).top; + // var scrollTop = document.body.scrollTop; + // var height = window.innerHeight; + // var offsetHeight = cell.offsetHeight; + // var cellHeight = (offsetTop - scrollTop + offsetHeight); + // if (offsetHeight > height) { + // $.scrollTo(offsetTop, 300); + // } else if (cellHeight > height) { + // $.scrollTo(cellHeight - height + scrollTop, 300); + // } + } + } else { + radioOrCheckboxClick(event); + } + }); +})(mui, window, document); +(function($, window) { + /** + * 警告消息框 + */ + $.alert = function(message, title, btnValue, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + title = null; + btnValue = '确定'; + } else if (typeof btnValue === 'function') { + callback = btnValue; + btnValue = null; + } + $.plusReady(function() { + plus.nativeUI.alert(message, callback, title, btnValue); + }); + } + + } else { + //TODO H5版本 + window.alert(message); + } + }; + +})(mui, window); +(function($, window) { + /** + * 确认消息框 + */ + $.confirm = function(message, title, btnArray, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + callback = btnArray; + btnArray = null; + } + $.plusReady(function() { + plus.nativeUI.confirm(message, callback, title, btnArray); + }); + } + + } else { + //H5版本,0为确认,1为取消 + if (window.confirm(message)) { + callback({ + index: 0 + }); + } else { + callback({ + index: 1 + }); + } + } + }; + +})(mui, window); +(function($, window) { + /** + * 输入对话框 + */ + $.prompt = function(text, defaultText, title, btnArray, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + + if (typeof defaultText === 'function') { + callback = defaultText; + defaultText = null; + title = null; + btnArray = null; + } else if (typeof title === 'function') { + callback = title; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + callback = btnArray; + btnArray = null; + } + $.plusReady(function() { + plus.nativeUI.prompt(text, callback, title, defaultText, btnArray); + }); + } + + } else { + //H5版本(确认index为0,取消index为1) + var result = window.prompt(text); + if (result) { + callback({ + index: 0, + value: result + }); + } else { + callback({ + index: 1, + value: '' + }); + } + } + }; + +})(mui, window); +(function($, window) { + var CLASS_ACTIVE = 'mui-active'; + /** + * 自动消失提示框 + */ + $.toast = function(message,options) { + var durations = { + 'long': 3500, + 'short': 2000 + }; + + //计算显示时间 + options = $.extend({ + duration: 'short' + }, options || {}); + + + if ($.os.plus && options.type !== 'div') { + //默认显示在底部; + $.plusReady(function() { + plus.nativeUI.toast(message, { + verticalAlign: 'bottom', + duration:options.duration + }); + }); + } else { + if (typeof options.duration === 'number') { + duration = options.duration>0 ? options.duration:durations['short']; + } else { + duration = durations[options.duration]; + } + if (!duration) { + duration = durations['short']; + } + var toast = document.createElement('div'); + toast.classList.add('mui-toast-container'); + toast.innerHTML = '
' + message + '
'; + toast.addEventListener('webkitTransitionEnd', function() { + if (!toast.classList.contains(CLASS_ACTIVE)) { + toast.parentNode.removeChild(toast); + toast = null; + } + }); + //点击则自动消失 + toast.addEventListener('click', function() { + toast.parentNode.removeChild(toast); + toast = null; + }); + document.body.appendChild(toast); + toast.offsetHeight; + toast.classList.add(CLASS_ACTIVE); + setTimeout(function() { + toast && toast.classList.remove(CLASS_ACTIVE); + }, duration); + + return { + isVisible: function() {return !!toast;} + } + } + }; + +})(mui, window); +/** + * Popup(alert,confirm,prompt) + * @param {Object} $ + * @param {Object} window + * @param {Object} document + */ +(function($, window, document) { + var CLASS_POPUP = 'mui-popup'; + var CLASS_POPUP_BACKDROP = 'mui-popup-backdrop'; + var CLASS_POPUP_IN = 'mui-popup-in'; + var CLASS_POPUP_OUT = 'mui-popup-out'; + var CLASS_POPUP_INNER = 'mui-popup-inner'; + var CLASS_POPUP_TITLE = 'mui-popup-title'; + var CLASS_POPUP_TEXT = 'mui-popup-text'; + var CLASS_POPUP_INPUT = 'mui-popup-input'; + var CLASS_POPUP_BUTTONS = 'mui-popup-buttons'; + var CLASS_POPUP_BUTTON = 'mui-popup-button'; + var CLASS_POPUP_BUTTON_BOLD = 'mui-popup-button-bold'; + var CLASS_POPUP_BACKDROP = 'mui-popup-backdrop'; + var CLASS_ACTIVE = 'mui-active'; + + var popupStack = []; + var backdrop = (function() { + var element = document.createElement('div'); + element.classList.add(CLASS_POPUP_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('webkitTransitionEnd', function() { + if (!this.classList.contains(CLASS_ACTIVE)) { + element.parentNode && element.parentNode.removeChild(element); + } + }); + return element; + }()); + + var createInput = function(placeholder) { + return '
'; + }; + var createInner = function(message, title, extra) { + return '
' + title + '
' + message.replace(/\r\n/g, "
").replace(/\n/g, "
") + '
' + (extra || '') + '
'; + }; + var createButtons = function(btnArray) { + var length = btnArray.length; + var btns = []; + for (var i = 0; i < length; i++) { + btns.push('' + btnArray[i] + ''); + } + return '
' + btns.join('') + '
'; + }; + + var createPopup = function(html, callback) { + var popupElement = document.createElement('div'); + popupElement.className = CLASS_POPUP; + popupElement.innerHTML = html; + var removePopupElement = function() { + popupElement.parentNode && popupElement.parentNode.removeChild(popupElement); + popupElement = null; + }; + popupElement.addEventListener($.EVENT_MOVE, $.preventDefault); + popupElement.addEventListener('webkitTransitionEnd', function(e) { + if (popupElement && e.target === popupElement && popupElement.classList.contains(CLASS_POPUP_OUT)) { + removePopupElement(); + } + }); + popupElement.style.display = 'block'; + document.body.appendChild(popupElement); + popupElement.offsetHeight; + popupElement.classList.add(CLASS_POPUP_IN); + + if (!backdrop.classList.contains(CLASS_ACTIVE)) { + backdrop.style.display = 'block'; + document.body.appendChild(backdrop); + backdrop.offsetHeight; + backdrop.classList.add(CLASS_ACTIVE); + } + var btns = $.qsa('.' + CLASS_POPUP_BUTTON, popupElement); + var input = popupElement.querySelector('.' + CLASS_POPUP_INPUT + ' input'); + var popup = { + element: popupElement, + close: function(index, animate) { + if (popupElement) { + var result = callback && callback({ + index: index || 0, + value: input && input.value || '' + }); + if (result === false) { //返回false则不关闭当前popup + return; + } + if (animate !== false) { + popupElement.classList.remove(CLASS_POPUP_IN); + popupElement.classList.add(CLASS_POPUP_OUT); + } else { + removePopupElement(); + } + popupStack.pop(); + //如果还有其他popup,则不remove backdrop + if (popupStack.length) { + popupStack[popupStack.length - 1]['show'](animate); + } else { + backdrop.classList.remove(CLASS_ACTIVE); + } + } + } + }; + var handleEvent = function(e) { + popup.close(btns.indexOf(e.target)); + }; + $(popupElement).on('tap', '.' + CLASS_POPUP_BUTTON, handleEvent); + if (popupStack.length) { + popupStack[popupStack.length - 1]['hide'](); + } + popupStack.push({ + close: popup.close, + show: function(animate) { + popupElement.style.display = 'block'; + popupElement.offsetHeight; + popupElement.classList.add(CLASS_POPUP_IN); + }, + hide: function() { + popupElement.style.display = 'none'; + popupElement.classList.remove(CLASS_POPUP_IN); + } + }); + return popup; + }; + var createAlert = function(message, title, btnValue, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + type = btnValue; + title = null; + btnValue = null; + } else if (typeof btnValue === 'function') { + type = callback; + callback = btnValue; + btnValue = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示') + createButtons([btnValue || '确定']), callback); + } + return plus.nativeUI.alert(message, callback, title || '提示', btnValue || '确定'); + }; + var createConfirm = function(message, title, btnArray, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + type = btnArray; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + type = callback; + callback = btnArray; + btnArray = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示') + createButtons(btnArray || ['取消', '确认']), callback); + } + return plus.nativeUI.confirm(message, callback, title, btnArray || ['取消', '确认']); + }; + var createPrompt = function(message, placeholder, title, btnArray, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof placeholder === 'function') { + callback = placeholder; + type = title; + placeholder = null; + title = null; + btnArray = null; + } else if (typeof title === 'function') { + callback = title; + type = btnArray; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + type = callback; + callback = btnArray; + btnArray = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示', createInput(placeholder)) + createButtons(btnArray || ['取消', '确认']), callback); + } + return plus.nativeUI.prompt(message, callback, title || '提示', placeholder, btnArray || ['取消', '确认']); + }; + var closePopup = function() { + if (popupStack.length) { + popupStack[popupStack.length - 1]['close'](); + return true; + } else { + return false; + } + }; + var closePopups = function() { + while (popupStack.length) { + popupStack[popupStack.length - 1]['close'](); + } + }; + + $.closePopup = closePopup; + $.closePopups = closePopups; + $.alert = createAlert; + $.confirm = createConfirm; + $.prompt = createPrompt; +})(mui, window, document); +(function($, document) { + var CLASS_PROGRESSBAR = 'mui-progressbar'; + var CLASS_PROGRESSBAR_IN = 'mui-progressbar-in'; + var CLASS_PROGRESSBAR_OUT = 'mui-progressbar-out'; + var CLASS_PROGRESSBAR_INFINITE = 'mui-progressbar-infinite'; + + var SELECTOR_PROGRESSBAR = '.mui-progressbar'; + + var _findProgressbar = function(container) { + container = $(container || 'body'); + if (container.length === 0) return; + container = container[0]; + if (container.classList.contains(CLASS_PROGRESSBAR)) { + return container; + } + var progressbars = container.querySelectorAll(SELECTOR_PROGRESSBAR); + if (progressbars) { + for (var i = 0, len = progressbars.length; i < len; i++) { + var progressbar = progressbars[i]; + if (progressbar.parentNode === container) { + return progressbar; + } + } + } + }; + /** + * 创建并显示进度条 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + * @param {Object} progress 可选,undefined表示循环,数字表示具体进度 + * @param {Object} color 可选,指定颜色样式(目前暂未提供实际样式,可暂时不暴露此参数) + */ + var showProgressbar = function(container, progress, color) { + if (typeof container === 'number') { + color = progress; + progress = container; + container = 'body'; + } + container = $(container || 'body'); + if (container.length === 0) return; + container = container[0]; + var progressbar; + if (container.classList.contains(CLASS_PROGRESSBAR)) { + progressbar = container; + } else { + var progressbars = container.querySelectorAll(SELECTOR_PROGRESSBAR + ':not(.' + CLASS_PROGRESSBAR_OUT + ')'); + if (progressbars) { + for (var i = 0, len = progressbars.length; i < len; i++) { + var _progressbar = progressbars[i]; + if (_progressbar.parentNode === container) { + progressbar = _progressbar; + break; + } + } + } + if (!progressbar) { + progressbar = document.createElement('span'); + progressbar.className = CLASS_PROGRESSBAR + ' ' + CLASS_PROGRESSBAR_IN + (typeof progress !== 'undefined' ? '' : (' ' + CLASS_PROGRESSBAR_INFINITE)) + (color ? (' ' + CLASS_PROGRESSBAR + '-' + color) : ''); + if (typeof progress !== 'undefined') { + progressbar.innerHTML = ''; + } + container.appendChild(progressbar); + } else { + progressbar.classList.add(CLASS_PROGRESSBAR_IN); + } + } + if (progress) setProgressbar(container, progress); + return progressbar; + }; + /** + * 关闭进度条 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + */ + var hideProgressbar = function(container) { + var progressbar = _findProgressbar(container); + if (!progressbar) { + return; + } + var classList = progressbar.classList; + if (!classList.contains(CLASS_PROGRESSBAR_IN) || classList.contains(CLASS_PROGRESSBAR_OUT)) { + return; + } + classList.remove(CLASS_PROGRESSBAR_IN); + classList.add(CLASS_PROGRESSBAR_OUT); + progressbar.addEventListener('webkitAnimationEnd', function() { + progressbar.parentNode && progressbar.parentNode.removeChild(progressbar); + progressbar = null; + }); + return; + }; + /** + * 设置指定进度条进度 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + * @param {Object} progress 可选,默认0 取值范围[0-100] + * @param {Object} speed 进度条动画时间 + */ + var setProgressbar = function(container, progress, speed) { + if (typeof container === 'number') { + speed = progress; + progress = container; + container = false; + } + var progressbar = _findProgressbar(container); + if (!progressbar || progressbar.classList.contains(CLASS_PROGRESSBAR_INFINITE)) { + return; + } + if (progress) progress = Math.min(Math.max(progress, 0), 100); + progressbar.offsetHeight; + var span = progressbar.querySelector('span'); + if (span) { + var style = span.style; + style.webkitTransform = 'translate3d(' + (-100 + progress) + '%,0,0)'; + if (typeof speed !== 'undefined') { + style.webkitTransitionDuration = speed + 'ms'; + } else { + style.webkitTransitionDuration = ''; + } + } + return progressbar; + }; + $.fn.progressbar = function(options) { + var progressbarApis = []; + options = options || {}; + this.each(function() { + var self = this; + var progressbarApi = self.mui_plugin_progressbar; + if (!progressbarApi) { + self.mui_plugin_progressbar = progressbarApi = { + options: options, + setOptions: function(options) { + this.options = options; + }, + show: function() { + return showProgressbar(self, this.options.progress, this.options.color); + }, + setProgress: function(progress) { + return setProgressbar(self, progress); + }, + hide: function() { + return hideProgressbar(self); + } + }; + } else if (options) { + progressbarApi.setOptions(options); + } + progressbarApis.push(progressbarApi); + }); + return progressbarApis.length === 1 ? progressbarApis[0] : progressbarApis; + }; + // $.setProgressbar = setProgressbar; + // $.showProgressbar = showProgressbar; + // $.hideProgressbar = hideProgressbar; +})(mui, document); +/** + * Input(TODO resize) + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + var CLASS_ICON = 'mui-icon'; + var CLASS_ICON_CLEAR = 'mui-icon-clear'; + var CLASS_ICON_SPEECH = 'mui-icon-speech'; + var CLASS_ICON_SEARCH = 'mui-icon-search'; + var CLASS_ICON_PASSWORD = 'mui-icon-eye'; + var CLASS_INPUT_ROW = 'mui-input-row'; + var CLASS_PLACEHOLDER = 'mui-placeholder'; + var CLASS_TOOLTIP = 'mui-tooltip'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_FOCUSIN = 'mui-focusin'; + var SELECTOR_ICON_CLOSE = '.' + CLASS_ICON_CLEAR; + var SELECTOR_ICON_SPEECH = '.' + CLASS_ICON_SPEECH; + var SELECTOR_ICON_PASSWORD = '.' + CLASS_ICON_PASSWORD; + var SELECTOR_PLACEHOLDER = '.' + CLASS_PLACEHOLDER; + var SELECTOR_TOOLTIP = '.' + CLASS_TOOLTIP; + + var findRow = function(target) { + for (; target && target !== document; target = target.parentNode) { + if (target.classList && target.classList.contains(CLASS_INPUT_ROW)) { + return target; + } + } + return null; + }; + var Input = function(element, options) { + this.element = element; + this.options = options || { + actions: 'clear' + }; + if (~this.options.actions.indexOf('slider')) { //slider + this.sliderActionClass = CLASS_TOOLTIP + ' ' + CLASS_HIDDEN; + this.sliderActionSelector = SELECTOR_TOOLTIP; + } else { //clear,speech,search + if (~this.options.actions.indexOf('clear')) { + this.clearActionClass = CLASS_ICON + ' ' + CLASS_ICON_CLEAR + ' ' + CLASS_HIDDEN; + this.clearActionSelector = SELECTOR_ICON_CLOSE; + } + if (~this.options.actions.indexOf('speech')) { //only for 5+ + this.speechActionClass = CLASS_ICON + ' ' + CLASS_ICON_SPEECH; + this.speechActionSelector = SELECTOR_ICON_SPEECH; + } + if (~this.options.actions.indexOf('search')) { + this.searchActionClass = CLASS_PLACEHOLDER; + this.searchActionSelector = SELECTOR_PLACEHOLDER; + } + if (~this.options.actions.indexOf('password')) { + this.passwordActionClass = CLASS_ICON + ' ' + CLASS_ICON_PASSWORD; + this.passwordActionSelector = SELECTOR_ICON_PASSWORD; + } + } + this.init(); + }; + Input.prototype.init = function() { + this.initAction(); + this.initElementEvent(); + }; + Input.prototype.initAction = function() { + var self = this; + + var row = self.element.parentNode; + if (row) { + if (self.sliderActionClass) { + self.sliderAction = self.createAction(row, self.sliderActionClass, self.sliderActionSelector); + } else { + if (self.searchActionClass) { + self.searchAction = self.createAction(row, self.searchActionClass, self.searchActionSelector); + self.searchAction.addEventListener('tap', function(e) { + $.focus(self.element); + e.stopPropagation(); + }); + } + if (self.speechActionClass) { + self.speechAction = self.createAction(row, self.speechActionClass, self.speechActionSelector); + self.speechAction.addEventListener('click', $.stopPropagation); + self.speechAction.addEventListener('tap', function(event) { + self.speechActionClick(event); + }); + } + if (self.clearActionClass) { + self.clearAction = self.createAction(row, self.clearActionClass, self.clearActionSelector); + self.clearAction.addEventListener('tap', function(event) { + self.clearActionClick(event); + }); + } + if (self.passwordActionClass) { + self.passwordAction = self.createAction(row, self.passwordActionClass, self.passwordActionSelector); + self.passwordAction.addEventListener('tap', function(event) { + self.passwordActionClick(event); + }); + } + } + } + }; + Input.prototype.createAction = function(row, actionClass, actionSelector) { + var action = row.querySelector(actionSelector); + if (!action) { + var action = document.createElement('span'); + action.className = actionClass; + if (actionClass === this.searchActionClass) { + action.innerHTML = '' + this.element.getAttribute('placeholder') + ''; + this.element.setAttribute('placeholder', ''); + if (this.element.value.trim()) { + row.classList.add('mui-active'); + } + } + row.insertBefore(action, this.element.nextSibling); + } + return action; + }; + Input.prototype.initElementEvent = function() { + var element = this.element; + + if (this.sliderActionClass) { + var tooltip = this.sliderAction; + var timer = null; + var showTip = function() { //每次重新计算是因为控件可能被隐藏,初始化时计算是不正确的 + tooltip.classList.remove(CLASS_HIDDEN); + var offsetLeft = element.offsetLeft; + var width = element.offsetWidth - 28; + var tooltipWidth = tooltip.offsetWidth; + var distince = Math.abs(element.max - element.min); + var scaleWidth = (width / distince) * Math.abs(element.value - element.min); + tooltip.style.left = (14 + offsetLeft + scaleWidth - tooltipWidth / 2) + 'px'; + tooltip.innerText = element.value; + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(function() { + tooltip.classList.add(CLASS_HIDDEN); + }, 1000); + }; + element.addEventListener('input', showTip); + element.addEventListener('tap', showTip); + element.addEventListener($.EVENT_MOVE, function(e) { + e.stopPropagation(); + }); + } else { + if (this.clearActionClass) { + var action = this.clearAction; + if (!action) { + return; + } + $.each(['keyup', 'change', 'input', 'focus', 'cut', 'paste'], function(index, type) { + (function(type) { + element.addEventListener(type, function() { + action.classList[element.value.trim() ? 'remove' : 'add'](CLASS_HIDDEN); + }); + })(type); + }); + element.addEventListener('blur', function() { + action.classList.add(CLASS_HIDDEN); + }); + } + if (this.searchActionClass) { + element.addEventListener('focus', function() { + element.parentNode.classList.add('mui-active'); + }); + element.addEventListener('blur', function() { + if (!element.value.trim()) { + element.parentNode.classList.remove('mui-active'); + } + }); + } + } + }; + Input.prototype.setPlaceholder = function(text) { + if (this.searchActionClass) { + var placeholder = this.element.parentNode.querySelector(SELECTOR_PLACEHOLDER); + placeholder && (placeholder.getElementsByTagName('span')[1].innerText = text); + } else { + this.element.setAttribute('placeholder', text); + } + }; + Input.prototype.passwordActionClick = function(event) { + if (this.element.type === 'text') { + this.element.type = 'password'; + } else { + this.element.type = 'text'; + } + this.passwordAction.classList.toggle('mui-active'); + event.preventDefault(); + }; + Input.prototype.clearActionClick = function(event) { + var self = this; + self.element.value = ''; + $.focus(self.element); + self.clearAction.classList.add(CLASS_HIDDEN); + event.preventDefault(); + }; + Input.prototype.speechActionClick = function(event) { + if (window.plus) { + var self = this; + var oldValue = self.element.value; + self.element.value = ''; + document.body.classList.add(CLASS_FOCUSIN); + plus.speech.startRecognize({ + engine: 'iFly' + }, function(s) { + self.element.value += s; + $.focus(self.element); + plus.speech.stopRecognize(); + $.trigger(self.element, 'recognized', { + value: self.element.value + }); + if (oldValue !== self.element.value) { + $.trigger(self.element, 'change'); + $.trigger(self.element, 'input'); + } + // document.body.classList.remove(CLASS_FOCUSIN); + }, function(e) { + document.body.classList.remove(CLASS_FOCUSIN); + }); + } else { + alert('only for 5+'); + } + event.preventDefault(); + }; + $.fn.input = function(options) { + var inputApis = []; + this.each(function() { + var inputApi = null; + var actions = []; + var row = findRow(this.parentNode); + if (this.type === 'range' && row.classList.contains('mui-input-range')) { + actions.push('slider'); + } else { + var classList = this.classList; + if (classList.contains('mui-input-clear')) { + actions.push('clear'); + } + if (!($.os.android && $.os.stream) && classList.contains('mui-input-speech')) { + actions.push('speech'); + } + if (classList.contains('mui-input-password')) { + actions.push('password'); + } + if (this.type === 'search' && row.classList.contains('mui-search')) { + actions.push('search'); + } + } + var id = this.getAttribute('data-input-' + actions[0]); + if (!id) { + id = ++$.uuid; + inputApi = $.data[id] = new Input(this, { + actions: actions.join(',') + }); + for (var i = 0, len = actions.length; i < len; i++) { + this.setAttribute('data-input-' + actions[i], id); + } + } else { + inputApi = $.data[id]; + } + inputApis.push(inputApi); + }); + return inputApis.length === 1 ? inputApis[0] : inputApis; + }; + $.ready(function() { + $('.mui-input-row input').input(); + }); +})(mui, window, document); +(function($, window) { + var CLASS_ACTIVE = 'mui-active'; + var rgbaRegex = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/; + var getColor = function(colorStr) { + var matches = colorStr.match(rgbaRegex); + if (matches && matches.length === 5) { + return [ + matches[1], + matches[2], + matches[3], + matches[4] + ]; + } + return []; + }; + var Transparent = function(element, options) { + this.element = element; + this.options = $.extend({ + top: 0, //距离顶部高度(到达该高度即触发) + offset: 150, //滚动透明距离 + duration: 16, //过渡时间 + scrollby: window//监听滚动距离容器 + }, options || {}); + + this.scrollByElem = this.options.scrollby || window; + if (!this.scrollByElem) { + throw new Error("监听滚动的元素不存在"); + } + this.isNativeScroll = false; + if (this.scrollByElem === window) { + this.isNativeScroll = true; + } else if (!~this.scrollByElem.className.indexOf('mui-scroll-wrapper')) { + this.isNativeScroll = true; + } + + this._style = this.element.style; + this._bgColor = this._style.backgroundColor; + var color = getColor(mui.getStyles(this.element, 'backgroundColor')); + if (color.length) { + this._R = color[0]; + this._G = color[1]; + this._B = color[2]; + this._A = parseFloat(color[3]); + this.lastOpacity = this._A; + this._bufferFn = $.buffer(this.handleScroll, this.options.duration, this); + this.initEvent(); + } else { + throw new Error("元素背景颜色必须为RGBA"); + } + }; + + Transparent.prototype.initEvent = function() { + this.scrollByElem.addEventListener('scroll', this._bufferFn); + if (this.isNativeScroll) { //原生scroll + this.scrollByElem.addEventListener($.EVENT_MOVE, this._bufferFn); + } + } + Transparent.prototype.handleScroll = function(e) { + var y = window.scrollY; + if (!this.isNativeScroll && e && e.detail) { + y = -e.detail.y; + } + var opacity = (y - this.options.top) / this.options.offset + this._A; + opacity = Math.min(Math.max(this._A, opacity), 1); + this._style.backgroundColor = 'rgba(' + this._R + ',' + this._G + ',' + this._B + ',' + opacity + ')'; + if (opacity > this._A) { + this.element.classList.add(CLASS_ACTIVE); + } else { + this.element.classList.remove(CLASS_ACTIVE); + } + if (this.lastOpacity !== opacity) { + $.trigger(this.element, 'alpha', { + alpha: opacity + }); + this.lastOpacity = opacity; + } + }; + Transparent.prototype.destory = function() { + this.scrollByElem.removeEventListener('scroll', this._bufferFn); + this.scrollByElem.removeEventListener($.EVENT_MOVE, this._bufferFn); + this.element.style.backgroundColor = this._bgColor; + this.element.mui_plugin_transparent = null; + }; + $.fn.transparent = function(options) { + options = options || {}; + var transparentApis = []; + this.each(function() { + var transparentApi = this.mui_plugin_transparent; + if (!transparentApi) { + var top = this.getAttribute('data-top'); + var offset = this.getAttribute('data-offset'); + var duration = this.getAttribute('data-duration'); + var scrollby = this.getAttribute('data-scrollby'); + if (top !== null && typeof options.top === 'undefined') { + options.top = top; + } + if (offset !== null && typeof options.offset === 'undefined') { + options.offset = offset; + } + if (duration !== null && typeof options.duration === 'undefined') { + options.duration = duration; + } + if (scrollby !== null && typeof options.scrollby === 'undefined') { + options.scrollby = document.querySelector(scrollby) || window; + } + transparentApi = this.mui_plugin_transparent = new Transparent(this, options); + } + transparentApis.push(transparentApi); + }); + return transparentApis.length === 1 ? transparentApis[0] : transparentApis; + }; + $.ready(function() { + $('.mui-bar-transparent').transparent(); + }); +})(mui, window); +/** + * 数字输入框 + * varstion 1.0.1 + * by Houfeng + * Houfeng@DCloud.io + */ + +(function($) { + + var touchSupport = ('ontouchstart' in document); + var tapEventName = touchSupport ? 'tap' : 'click'; + var changeEventName = 'change'; + var holderClassName = 'mui-numbox'; + var plusClassSelector = '.mui-btn-numbox-plus,.mui-numbox-btn-plus'; + var minusClassSelector = '.mui-btn-numbox-minus,.mui-numbox-btn-minus'; + var inputClassSelector = '.mui-input-numbox,.mui-numbox-input'; + + var Numbox = $.Numbox = $.Class.extend({ + /** + * 构造函数 + **/ + init: function(holder, options) { + var self = this; + if (!holder) { + throw "构造 numbox 时缺少容器元素"; + } + self.holder = holder; + options = options || {}; + options.step = parseInt(options.step || 1); + self.options = options; + self.input = $.qsa(inputClassSelector, self.holder)[0]; + self.plus = $.qsa(plusClassSelector, self.holder)[0]; + self.minus = $.qsa(minusClassSelector, self.holder)[0]; + self.checkValue(); + self.initEvent(); + }, + /** + * 初始化事件绑定 + **/ + initEvent: function() { + var self = this; + self.plus.addEventListener(tapEventName, function(event) { + var val = parseInt(self.input.value) + self.options.step; + self.input.value = val.toString(); + $.trigger(self.input, changeEventName, null); + }); + self.minus.addEventListener(tapEventName, function(event) { + var val = parseInt(self.input.value) - self.options.step; + self.input.value = val.toString(); + $.trigger(self.input, changeEventName, null); + }); + self.input.addEventListener(changeEventName, function(event) { + self.checkValue(); + var val = parseInt(self.input.value); + //触发顶层容器 + $.trigger(self.holder, changeEventName, { + value: val + }); + }); + }, + /** + * 获取当前值 + **/ + getValue: function() { + var self = this; + return parseInt(self.input.value); + }, + /** + * 验证当前值是法合法 + **/ + checkValue: function() { + var self = this; + var val = self.input.value; + if (val == null || val == '' || isNaN(val)) { + self.input.value = self.options.min || 0; + self.minus.disabled = self.options.min != null; + } else { + var val = parseInt(val); + if (self.options.max != null && !isNaN(self.options.max) && val >= parseInt(self.options.max)) { + val = self.options.max; + self.plus.disabled = true; + } else { + self.plus.disabled = false; + } + if (self.options.min != null && !isNaN(self.options.min) && val <= parseInt(self.options.min)) { + val = self.options.min; + self.minus.disabled = true; + } else { + self.minus.disabled = false; + } + self.input.value = val; + } + }, + /** + * 更新选项 + **/ + setOption: function(name, value) { + var self = this; + self.options[name] = value; + }, + /** + * 动态设置新值 + **/ + setValue: function(value) { + this.input.value = value; + this.checkValue(); + } + }); + + $.fn.numbox = function(options) { + var instanceArray = []; + //遍历选择的元素 + this.each(function(i, element) { + if (element.numbox) { + return; + } + if (options) { + element.numbox = new Numbox(element, options); + } else { + var optionsText = element.getAttribute('data-numbox-options'); + var options = optionsText ? JSON.parse(optionsText) : {}; + options.step = element.getAttribute('data-numbox-step') || options.step; + options.min = element.getAttribute('data-numbox-min') || options.min; + options.max = element.getAttribute('data-numbox-max') || options.max; + element.numbox = new Numbox(element, options); + } + }); + return this[0] ? this[0].numbox : null; + } + + //自动处理 class='mui-locker' 的 dom + $.ready(function() { + $('.' + holderClassName).numbox(); + }); + +}(mui)); +/** + * Button + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + var CLASS_ICON = 'mui-icon'; + var CLASS_DISABLED = 'mui-disabled'; + + var STATE_RESET = 'reset'; + var STATE_LOADING = 'loading'; + + var defaultOptions = { + loadingText: 'Loading...', //文案 + loadingIcon: 'mui-spinner' + ' ' + 'mui-spinner-white', //图标,可为空 + loadingIconPosition: 'left' //图标所处位置,仅支持left|right + }; + + var Button = function(element, options) { + this.element = element; + this.options = $.extend({}, defaultOptions, options); + if (!this.options.loadingText) { + this.options.loadingText = defaultOptions.loadingText; + } + if (this.options.loadingIcon === null) { + this.options.loadingIcon = 'mui-spinner'; + if ($.getStyles(this.element, 'color') === 'rgb(255, 255, 255)') { + this.options.loadingIcon += ' ' + 'mui-spinner-white'; + } + } + this.isInput = this.element.tagName === 'INPUT'; + this.resetHTML = this.isInput ? this.element.value : this.element.innerHTML; + this.state = ''; + }; + Button.prototype.loading = function() { + this.setState(STATE_LOADING); + }; + Button.prototype.reset = function() { + this.setState(STATE_RESET); + }; + Button.prototype.setState = function(state) { + if (this.state === state) { + return false; + } + this.state = state; + if (state === STATE_RESET) { + this.element.disabled = false; + this.element.classList.remove(CLASS_DISABLED); + this.setHtml(this.resetHTML); + } else if (state === STATE_LOADING) { + this.element.disabled = true; + this.element.classList.add(CLASS_DISABLED); + var html = this.isInput ? this.options.loadingText : ('' + this.options.loadingText + ''); + if (this.options.loadingIcon && !this.isInput) { + if (this.options.loadingIconPosition === 'right') { + html += ' '; + } else { + html = ' ' + html; + } + } + this.setHtml(html); + } + }; + Button.prototype.setHtml = function(html) { + if (this.isInput) { + this.element.value = html; + } else { + this.element.innerHTML = html; + } + } + $.fn.button = function(state) { + var buttonApis = []; + this.each(function() { + var buttonApi = this.mui_plugin_button; + if (!buttonApi) { + var loadingText = this.getAttribute('data-loading-text'); + var loadingIcon = this.getAttribute('data-loading-icon'); + var loadingIconPosition = this.getAttribute('data-loading-icon-position'); + this.mui_plugin_button = buttonApi = new Button(this, { + loadingText: loadingText, + loadingIcon: loadingIcon, + loadingIconPosition: loadingIconPosition + }); + } + if (state === STATE_LOADING || state === STATE_RESET) { + buttonApi.setState(state); + } + buttonApis.push(buttonApi); + }); + return buttonApis.length === 1 ? buttonApis[0] : buttonApis; + }; +})(mui, window, document); \ No newline at end of file diff --git a/js/mui.min.js b/js/mui.min.js new file mode 100644 index 0000000..56ed8de --- /dev/null +++ b/js/mui.min.js @@ -0,0 +1,6 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/mui) + * ===================================================== + */ +var mui=function(a,b){var c=/complete|loaded|interactive/,d=/^#([\w-]+)$/,e=/^\.([\w-]+)$/,f=/^[\w-]+$/,g=/translate(?:3d)?\((.+?)\)/,h=/matrix(3d)?\((.+?)\)/,i=function(b,c){if(c=c||a,!b)return j();if("object"==typeof b)return i.isArrayLike(b)?j(i.slice.call(b),null):j([b],null);if("function"==typeof b)return i.ready(b);if("string"==typeof b)try{if(b=b.trim(),d.test(b)){var e=a.getElementById(RegExp.$1);return j(e?[e]:[])}return j(i.qsa(b,c),b)}catch(a){}return j()},j=function(a,b){return a=a||[],Object.setPrototypeOf(a,i.fn),a.selector=b||"",a};i.uuid=0,i.data={},i.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},j=1,k=arguments.length,l=!1;for("boolean"==typeof h&&(l=h,h=arguments[j]||{},j++),"object"==typeof h||i.isFunction(h)||(h={}),j===k&&(h=this,j--);j0&&b-1 in a)},i.isWindow=function(a){return null!=a&&a===a.window},i.isObject=function(a){return"object"===i.type(a)},i.isPlainObject=function(a){return i.isObject(a)&&!i.isWindow(a)&&Object.getPrototypeOf(a)===Object.prototype},i.isEmptyObject=function(a){for(var c in a)if(c!==b)return!1;return!0},i.isFunction=function(a){return"function"===i.type(a)},i.qsa=function(b,c){return c=c||a,i.slice.call(e.test(b)?c.getElementsByClassName(RegExp.$1):f.test(b)?c.getElementsByTagName(b):c.querySelectorAll(b))},i.ready=function(b){return c.test(a.readyState)?b(i):a.addEventListener("DOMContentLoaded",function(){b(i)},!1),this},i.buffer=function(a,b,c){function d(){e&&(e.cancel(),e=0),f=i.now(),a.apply(c||this,arguments),g=i.now()}var e,f=0,g=0,b=b||150;return i.extend(function(){!f||g>=f&&i.now()-g>b||g8*b?d.apply(this,arguments):(e&&e.cancel(),e=i.later(d,b,null,i.slice.call(arguments)))},{stop:function(){e&&(e.cancel(),e=0)}})},i.each=function(a,b,c){if(!a)return this;if("number"==typeof a.length)[].every.call(a,function(a,c){return!1!==b.call(a,c,a)});else for(var d in a)if(c){if(a.hasOwnProperty(d)&&!1===b.call(a[d],d,a[d]))return a}else if(!1===b.call(a[d],d,a[d]))return a;return this},i.focus=function(a){i.os.ios?setTimeout(function(){a.focus()},10):a.focus()},i.trigger=function(a,b,c){return a.dispatchEvent(new CustomEvent(b,{detail:c,bubbles:!0,cancelable:!0})),this},i.getStyles=function(a,b){var c=a.ownerDocument.defaultView.getComputedStyle(a,null);return b?c.getPropertyValue(b)||c[b]:c},i.parseTranslate=function(a,b){var c=a.match(g||"");return c&&c[1]||(c=["","0,0,0"]),c=c[1].split(","),c={x:parseFloat(c[0]),y:parseFloat(c[1]),z:parseFloat(c[2])},b&&c.hasOwnProperty(b)?c[b]:c},i.parseTranslateMatrix=function(a,b){var c=a.match(h),d=c&&c[1];c?(c=c[2].split(","),"3d"===d?c=c.slice(12,15):(c.push(0),c=c.slice(4,7))):c=[0,0,0];var e={x:parseFloat(c[0]),y:parseFloat(c[1]),z:parseFloat(c[2])};return b&&e.hasOwnProperty(b)?e[b]:e},i.hooks={},i.addAction=function(a,b){var c=i.hooks[a];return c||(c=[]),b.index=b.index||1e3,c.push(b),c.sort(function(a,b){return a.index-b.index}),i.hooks[a]=c,i.hooks[a]},i.doAction=function(a,b){i.isFunction(b)?i.each(i.hooks[a],b):i.each(i.hooks[a],function(a,b){return!b.handle()})},i.later=function(a,b,c,d){b=b||0;var e,f,g=a,h=d;return"string"==typeof a&&(g=c[a]),e=function(){g.apply(c,i.isArray(h)?h:[h])},f=setTimeout(e,b),{id:f,cancel:function(){clearTimeout(f)}}},i.now=Date.now||function(){return+new Date};var k={};return i.each(["Boolean","Number","String","Function","Array","Date","RegExp","Object","Error"],function(a,b){k["[object "+b+"]"]=b.toLowerCase()}),window.JSON&&(i.parseJSON=JSON.parse),i.fn={each:function(a){return[].every.call(this,function(b,c){return!1!==a.call(b,c,b)}),this}},"function"==typeof define&&define.amd&&define("mui",[],function(){return i}),i}(document);!function(a,b){function c(c){this.os={};var d=[function(){var a=c.match(/(MicroMessenger)\/([\d\.]+)/i);return a&&(this.os.wechat={version:a[2].replace(/_/g,".")}),!1},function(){var a=c.match(/(Android);?[\s\/]+([\d.]+)?/);return a&&(this.os.android=!0,this.os.version=a[2],this.os.isBadAndroid=!/Chrome\/\d/.test(b.navigator.appVersion)),!0===this.os.android},function(){var a=c.match(/(iPhone\sOS)\s([\d_]+)/);if(a)this.os.ios=this.os.iphone=!0,this.os.version=a[2].replace(/_/g,".");else{var b=c.match(/(iPad).*OS\s([\d_]+)/);b&&(this.os.ios=this.os.ipad=!0,this.os.version=b[2].replace(/_/g,"."))}return!0===this.os.ios}];[].every.call(d,function(b){return!b.call(a)})}c.call(a,navigator.userAgent)}(mui,window),function(a,b){function c(c){this.os=this.os||{},c.match(/Html5Plus/i)&&(this.os.plus=!0,a(function(){b.body.classList.add("mui-plus")}),c.match(/StreamApp/i)&&(this.os.stream=!0,a(function(){b.body.classList.add("mui-plus-stream")})))}c.call(a,navigator.userAgent)}(mui,document),function(a){"ontouchstart"in window?(a.isTouchable=!0,a.EVENT_START="touchstart",a.EVENT_MOVE="touchmove",a.EVENT_END="touchend"):(a.isTouchable=!1,a.EVENT_START="mousedown",a.EVENT_MOVE="mousemove",a.EVENT_END="mouseup"),a.EVENT_CANCEL="touchcancel",a.EVENT_CLICK="click";var b=1,c={},d={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"},e=function(){return!0},f=function(){return!1},g=function(b,c){return b.detail?b.detail.currentTarget=c:b.detail={currentTarget:c},a.each(d,function(a,c){var d=b[a];b[a]=function(){return this[c]=e,d&&d.apply(b,arguments)},b[c]=f},!0),b},h=function(a){return a&&(a._mid||(a._mid=b++))},i={},j=function(b,d,e,f){return function(e){for(var f=c[b._mid][d],h=[],i=e.target,j={};i&&i!==document&&i!==b&&(!~["click","tap","doubletap","longtap","hold"].indexOf(d)||!i.disabled&&!i.classList.contains("mui-disabled"));i=i.parentNode){var k={};a.each(f,function(c,d){j[c]||(j[c]=a.qsa(c,b)),j[c]&&~j[c].indexOf(i)&&(k[c]||(k[c]=d))},!0),a.isEmptyObject(k)||h.push({element:i,handlers:k})}j=null,e=g(e),a.each(h,function(b,c){i=c.element;var f=i.tagName;if("tap"===d&&"INPUT"!==f&&"TEXTAREA"!==f&&"SELECT"!==f&&(e.preventDefault(),e.detail&&e.detail.gesture&&e.detail.gesture.preventDefault()),a.each(c.handlers,function(b,c){a.each(c,function(a,b){!1===b.call(i,e)&&(e.preventDefault(),e.stopPropagation())},!0)},!0),e.isPropagationStopped())return!1},!0)}},k=function(a,b){var c=i[h(a)],d=[];if(c){if(d=[],b){var e=function(a){return a.type===b};return c.filter(e)}d=c}return d},l=/^(INPUT|TEXTAREA|BUTTON|SELECT)$/;a.fn.on=function(b,d,e){return this.each(function(){var f=this;h(f),h(e);var g=!1,k=c[f._mid]||(c[f._mid]={}),m=k[b]||(k[b]={});if(a.isEmptyObject(m)&&(g=!0),(m[d]||(m[d]=[])).push(e),g){var n=i[h(f)];n||(n=[]);var o=j(f,b,d,e);n.push(o),o.i=n.length-1,o.type=b,i[h(f)]=n,f.addEventListener(b,o),"tap"===b&&f.addEventListener("click",function(a){if(a.target){var b=a.target.tagName;if(!l.test(b))if("A"===b){var c=a.target.href;c&&~c.indexOf("tel:")||a.preventDefault()}else a.preventDefault()}})}})},a.fn.off=function(b,d,e){return this.each(function(){var f=h(this);if(b)if(d)if(e){var g=c[f]&&c[f][b]&&c[f][b][d];a.each(g,function(a,b){if(h(b)===h(e))return g.splice(a,1),!1},!0)}else c[f]&&c[f][b]&&delete c[f][b][d];else c[f]&&delete c[f][b];else c[f]&&delete c[f];c[f]?c[f][b]&&!a.isEmptyObject(c[f][b])||k(this,b).forEach(function(a){this.removeEventListener(a.type,a),delete i[f][a.i]}.bind(this)):k(this).forEach(function(a){this.removeEventListener(a.type,a),delete i[f][a.i]}.bind(this))})}}(mui),function(a,b,c){a.targets={},a.targetHandles=[],a.registerTarget=function(b){return b.index=b.index||1e3,a.targetHandles.push(b),a.targetHandles.sort(function(a,b){return a.index-b.index}),a.targetHandles},b.addEventListener(a.EVENT_START,function(b){for(var d=b.target,e={};d&&d!==c;d=d.parentNode){var f=!1;if(a.each(a.targetHandles,function(c,g){var h=g.name;f||e[h]||!g.hasOwnProperty("handle")?e[h]||!1!==g.isReset&&(a.targets[h]=!1):(a.targets[h]=g.handle(b,d),a.targets[h]&&(e[h]=!0,!0!==g.isContinue&&(f=!0)))}),f)break}}),b.addEventListener("click",function(b){for(var d=b.target,e=!1;d&&d!==c&&("A"!==d.tagName||(a.each(a.targetHandles,function(a,c){c.name;if(c.hasOwnProperty("handle")&&c.handle(b,d))return e=!0,b.preventDefault(),!1}),!e));d=d.parentNode);})}(mui,window,document),function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Object.setPrototypeOf=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a}}(),function(){function a(a,b){b=b||{bubbles:!1,cancelable:!1,detail:void 0};var c=document.createEvent("Events"),d=!0;for(var e in b)"bubbles"===e?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),c}void 0===window.CustomEvent&&(a.prototype=window.Event.prototype,window.CustomEvent=a)}(),Function.prototype.bind=Function.prototype.bind||function(a){var b=Array.prototype.splice.call(arguments,1),c=this,d=function(){var e=b.concat(Array.prototype.splice.call(arguments,0));if(!(this instanceof d))return c.apply(a,e);c.apply(this,e)};return d.prototype=c.prototype,d},function(a){"classList"in a.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function a(a){return function(c){var d=b.className.split(/\s+/),e=d.indexOf(c);a(d,e,c),b.className=d.join(" ")}}var b=this,c={add:a(function(a,b,c){~b||a.push(c)}),remove:a(function(a,b){~b&&a.splice(b,1)}),toggle:a(function(a,b,c){~b?a.splice(b,1):a.push(c)}),contains:function(a){return!!~b.className.split(/\s+/).indexOf(a)},item:function(a){return b.className.split(/\s+/)[a]||null}};return Object.defineProperty(c,"length",{get:function(){return b.className.split(/\s+/).length}}),c}})}(document),function(a){if(!a.requestAnimationFrame){var b=0;a.requestAnimationFrame=a.webkitRequestAnimationFrame||function(c,d){var e=(new Date).getTime(),f=Math.max(0,16.7-(e-b)),g=a.setTimeout(function(){c(e+f)},f);return b=e+f,g},a.cancelAnimationFrame=a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame||function(a){clearTimeout(a)}}}(window),function(a,b,c){if((a.os.android||a.os.ios)&&!b.FastClick){var d=function(a,b){return"LABEL"===b.tagName&&b.parentNode&&(b=b.parentNode.querySelector("input")),!(!b||"radio"!==b.type&&"checkbox"!==b.type||b.disabled)&&b};a.registerTarget({name:c,index:40,handle:d,target:!1});var e=function(c){var d=a.targets.click;if(d){var e,f;document.activeElement&&document.activeElement!==d&&document.activeElement.blur(),f=c.detail.gesture.changedTouches[0],e=document.createEvent("MouseEvents"),e.initMouseEvent("click",!0,!0,b,1,f.screenX,f.screenY,f.clientX,f.clientY,!1,!1,!1,!1,0,null),e.forwardedTouchEvent=!0,d.dispatchEvent(e),c.detail&&c.detail.gesture.preventDefault()}};b.addEventListener("tap",e),b.addEventListener("doubletap",e),b.addEventListener("click",function(b){if(a.targets.click&&!b.forwardedTouchEvent)return b.stopImmediatePropagation?b.stopImmediatePropagation():b.propagationStopped=!0,b.stopPropagation(),b.preventDefault(),!1},!0)}}(mui,window,"click"),function(a,b){a(function(){if(a.os.ios){var c="mui-focusin";b.addEventListener("focusin",function(d){if(!(a.os.plus&&window.plus&&plus.webview.currentWebview().children().length>0)){var e=d.target;if(e.tagName&&("TEXTAREA"===e.tagName||"INPUT"===e.tagName&&("text"===e.type||"search"===e.type||"number"===e.type))){if(e.disabled||e.readOnly)return;b.body.classList.add(c);for(var f=!1;e&&e!==b;e=e.parentNode){var g=e.classList;if(g&&g.contains("mui-bar-tab")||g.contains("mui-bar-footer")||g.contains("mui-bar-footer-secondary")||g.contains("mui-bar-footer-secondary-tab")){f=!0;break}}if(f){var h=b.body.scrollHeight,i=b.body.scrollLeft;setTimeout(function(){window.scrollTo(i,h)},20)}}}}),b.addEventListener("focusout",function(a){var d=b.body.classList;d.contains(c)&&(d.remove(c),setTimeout(function(){window.scrollTo(b.body.scrollLeft,b.body.scrollTop)},20))})}})}(mui,document),function(a){a.namespace="mui",a.classNamePrefix=a.namespace+"-",a.classSelectorPrefix="."+a.classNamePrefix,a.className=function(b){return a.classNamePrefix+b},a.classSelector=function(b){return b.replace(/\./g,a.classSelectorPrefix)},a.eventName=function(b,c){return b+(a.namespace?"."+a.namespace:"")+(c?"."+c:"")}}(mui),function(a,b){a.gestures={session:{}},a.preventDefault=function(a){a.preventDefault()},a.stopPropagation=function(a){a.stopPropagation()},a.addGesture=function(b){return a.addAction("gestures",b)};var c=Math.round,d=Math.abs,e=Math.sqrt,f=(Math.atan,Math.atan2),g=function(a,b,c){c||(c=["x","y"]);var d=b[c[0]]-a[c[0]],f=b[c[1]]-a[c[1]];return e(d*d+f*f)},h=function(a,b){if(a.length>=2&&b.length>=2){var c=["pageX","pageY"];return g(b[1],b[0],c)/g(a[1],a[0],c)}return 1},i=function(a,b,c){c||(c=["x","y"]);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*f(e,d)/Math.PI},j=function(a,b){return a===b?"":d(a)>=d(b)?a>0?"left":"right":b>0?"up":"down"},k=function(a,b){var c=["pageX","pageY"];return i(b[1],b[0],c)-i(a[1],a[0],c)},l=function(a,b,c){return{x:b/a||0,y:c/a||0}},m=function(b,c){a.gestures.stoped||a.doAction("gestures",function(d,e){a.gestures.stoped||!1!==a.options.gestureConfig[e.name]&&e.handle(b,c)})},n=function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},o=function(a,b,c){for(var d=[],e=[],f=0;fc[b]}):d.sort()),d},p=function(a){var b=a.length;if(1===b)return{x:c(a[0].pageX),y:c(a[0].pageY)};for(var d=0,e=0,f=0;f1&&!c.firstMultiTouch?c.firstMultiTouch=r(b):1===e&&(c.firstMultiTouch=!1);var f=c.firstTouch,l=c.firstMultiTouch,m=l?l.center:f.center,n=b.center=p(d);b.timestamp=a.now(),b.deltaTime=b.timestamp-f.timestamp,b.angle=i(m,n),b.distance=g(m,n),s(b),b.offsetDirection=j(b.deltaX,b.deltaY),b.scale=l?h(l.touches,d):1,b.rotation=l?k(l.touches,d):0,v(b)},u=25,v=function(b){var c,e,f,g,h=a.gestures.session,i=h.lastInterval||b,k=b.timestamp-i.timestamp;if(b.gesture.type!=a.EVENT_CANCEL&&(k>u||void 0===i.velocity)){var m=i.deltaX-b.deltaX,n=i.deltaY-b.deltaY,o=l(k,m,n);e=o.x,f=o.y,c=d(o.x)>d(o.y)?o.x:o.y,g=j(m,n)||i.direction,h.lastInterval=b}else c=i.velocity,e=i.velocityX,f=i.velocityY,g=i.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g},w={},x=function(a){for(var b=0;b300&&(c=h,f.flickStart=e.center);break;case a.EVENT_END:case a.EVENT_CANCEL:e.flick=!1,f.flickStart&&g.flickMaxTime>h-c&&e.distance>g.flickMinDistince&&(e.flick=!0,e.flickTime=h-c,e.flickDistanceX=e.center.x-f.flickStart.x,e.flickDistanceY=e.center.y-f.flickStart.y,a.trigger(f.target,b,e),a.trigger(f.target,b+e.direction,e))}};a.addGesture({name:b,index:5,handle:d,options:{flickMaxTime:200,flickMinDistince:10}})}(mui,"flick"),function(a,b){var c=function(c,d){var e=a.gestures.session;if(c.type===a.EVENT_END||c.type===a.EVENT_CANCEL){var f=this.options;d.swipe=!1,d.direction&&f.swipeMaxTime>d.deltaTime&&d.distance>f.swipeMinDistince&&(d.swipe=!0,a.trigger(e.target,b,d),a.trigger(e.target,b+d.direction,d))}};a.addGesture({name:b,index:10,handle:c,options:{swipeMaxTime:300,swipeMinDistince:18}})}(mui,"swipe"),function(a,b){var c=function(c,d){var e=a.gestures.session;switch(c.type){case a.EVENT_START:break;case a.EVENT_MOVE:if(!d.direction||!e.target)return;e.lockDirection&&e.startDirection&&e.startDirection&&e.startDirection!==d.direction&&("up"===e.startDirection||"down"===e.startDirection?d.direction=d.deltaY<0?"up":"down":d.direction=d.deltaX<0?"left":"right"),e.drag||(e.drag=!0,a.trigger(e.target,b+"start",d)),a.trigger(e.target,b,d),a.trigger(e.target,b+d.direction,d);break;case a.EVENT_END:case a.EVENT_CANCEL:e.drag&&d.isFinal&&a.trigger(e.target,b+"end",d)}};a.addGesture({name:b,index:20,handle:c,options:{fingers:1}})}(mui,"drag"),function(a,b){var c,d,e=function(e,f){var g=a.gestures.session,h=this.options;switch(e.type){case a.EVENT_END:if(!f.isFinal)return;var i=g.target;if(!i||i.disabled||i.classList&&i.classList.contains("mui-disabled"))return;if(f.distanceg.holdThreshold&&clearTimeout(c);break;case a.EVENT_END:case a.EVENT_CANCEL:clearTimeout(c)}};a.addGesture({name:b,index:10,handle:d,options:{fingers:1,holdTimeout:500,holdThreshold:2}})}(mui,"longtap"),function(a,b){var c,d=function(d,e){var f=a.gestures.session,g=this.options;switch(d.type){case a.EVENT_START:a.options.gestureConfig.hold&&(c&&clearTimeout(c),c=setTimeout(function(){e.hold=!0,a.trigger(f.target,b,e)},g.holdTimeout));break;case a.EVENT_MOVE:break;case a.EVENT_END:case a.EVENT_CANCEL:c&&(clearTimeout(c)&&(c=null),a.trigger(f.target,"release",e))}};a.addGesture({name:b,index:10,handle:d,options:{fingers:1,holdTimeout:0}})}(mui,"hold"),function(a,b){var c=function(c,d){var e=this.options,f=a.gestures.session;switch(c.type){case a.EVENT_START:break;case a.EVENT_MOVE:if(a.options.gestureConfig.pinch){if(d.touches.length<2)return;f.pinch||(f.pinch=!0,a.trigger(f.target,b+"start",d)),a.trigger(f.target,b,d);var g=d.scale,h=d.rotation,i=void 0===d.lastScale?1:d.lastScale,j=1e-12;g>i?(i=g-j,a.trigger(f.target,b+"out",d)):ge.minRotationAngle&&a.trigger(f.target,"rotate",d)}break;case a.EVENT_END:case a.EVENT_CANCEL:a.options.gestureConfig.pinch&&f.pinch&&2===d.touches.length&&(f.pinch=!1,a.trigger(f.target,b+"end",d))}};a.addGesture({name:b,index:10,handle:c,options:{minRotationAngle:0}})}(mui,"pinch"),function(a){function b(a,b){var c="MUI_SCROLL_POSITION_"+document.location.href+"_"+b.src,d=parseFloat(localStorage.getItem(c))||0;d&&function(a){b.onload=function(){window.scrollTo(0,a)}}(d),setInterval(function(){var a=window.scrollY;d!==a&&(localStorage.setItem(c,a+""),d=a)},100)}a.global=a.options={gestureConfig:{tap:!0,doubletap:!1,longtap:!1,hold:!1,flick:!0,swipe:!0,drag:!0,pinch:!1}},a.initGlobal=function(b){return a.options=a.extend(!0,a.global,b),this};var c={};a.init=function(b){return a.options=a.extend(!0,a.global,b||{}),a.ready(function(){a.doAction("inits",function(b,d){!(c[d.name]&&!d.repeat)&&(d.handle.call(a),c[d.name]=!0)})}),this},a.addInit=function(b){return a.addAction("inits",b)},a.addInit({name:"iframe",index:100,handle:function(){var b=a.options,c=b.subpages||[];!a.os.plus&&c.length&&d(c[0])}});var d=function(c){var d=document.createElement("div");d.className="mui-iframe-wrapper";var e=c.styles||{};"string"!=typeof e.top&&(e.top="0px"),"string"!=typeof e.bottom&&(e.bottom="0px"),d.style.top=e.top,d.style.bottom=e.bottom;var f=document.createElement("iframe");f.src=c.url,f.id=c.id||c.url,f.name=f.id,d.appendChild(f),document.body.appendChild(d),a.os.wechat&&b(d,f)};a(function(){var b=document.body.classList,c=[];a.os.ios?(c.push({os:"ios",version:a.os.version}),b.add("mui-ios")):a.os.android&&(c.push({os:"android",version:a.os.version}),b.add("mui-android")),a.os.wechat&&(c.push({os:"wechat",version:a.os.wechat.version}),b.add("mui-wechat")),c.length&&a.each(c,function(c,d){var e="";d.version&&a.each(d.version.split("."),function(c,f){e=e+(e?"-":"")+f,b.add(a.className(d.os+"-"+e))})})})}(mui),function(a){var b={swipeBack:!1,preloadPages:[],preloadLimit:10,keyEventBind:{backbutton:!0,menubutton:!0},titleConfig:{height:"44px",backgroundColor:"#f7f7f7",bottomBorderColor:"#cccccc",title:{text:"",position:{top:0,left:0,width:"100%",height:"100%"},styles:{color:"#000000",align:"center",family:"'Helvetica Neue',Helvetica,sans-serif",size:"17px",style:"normal",weight:"normal",fontSrc:""}},back:{image:{base64Data:"",imgSrc:"",sprite:{top:"0px",left:"0px",width:"100%",height:"100%"},position:{top:"10px",left:"10px",width:"24px",height:"24px"}}}}},c={event:"titleUpdate",autoShow:!0,duration:300,aniShow:"slide-in-right",extras:{}};a.options.show&&(c=a.extend(!0,c,a.options.show)),a.currentWebview=null,a.extend(!0,a.global,b),a.extend(!0,a.options,b),a.waitingOptions=function(b){return a.extend(!0,{},{autoShow:!0,title:"",modal:!1},b)},a.showOptions=function(b){return a.extend(!0,{},c,b)},a.windowOptions=function(b){return a.extend({scalable:!1,bounce:""},b)},a.plusReady=function(a){return window.plus?setTimeout(function(){a()},0):document.addEventListener("plusready",function(){a()},!1),this},a.fire=function(b,c,d){if(b){if(void 0===d)d="";else{if("boolean"==typeof d||"number"==typeof d)return void b.evalJS("typeof mui!=='undefined'&&mui.receive('"+c+"',"+d+")");(a.isPlainObject(d)||a.isArray(d))&&(d=JSON.stringify(d||{}).replace(/\'/g,"\\u0027").replace(/\\/g,"\\u005c"))}b.evalJS("typeof mui!=='undefined'&&mui.receive('"+c+"','"+d+"')")}},a.receive=function(b,c){if(b){try{c&&"string"==typeof c&&(c=JSON.parse(c))}catch(a){}a.trigger(document,b,c)}};var d=function(b){if(!b.preloaded){a.fire(b,"preload");for(var c=b.children(),d=0;dt.left&&ca.options.preloadLimit){var h=a.data.preloads.shift(),i=a.webviews[h];i&&i.webview&&a.closeAll(i.webview),delete a.webviews[h]}}else!1!==c&&(d=plus.webview.create(b.url,e,a.windowOptions(b.styles),b.extras),b.subpages&&a.each(b.subpages,function(b,c){var e=c.id||c.url,f=plus.webview.getWebviewById(e);f||(f=plus.webview.create(c.url,e,a.windowOptions(c.styles),c.extras)),d.append(f)}));return d}},a.preload=function(b){return b.preload||(b.preload=!0),a.createWindow(b)},a.closeOpened=function(b){var c=b.opened();if(c)for(var d=0,e=c.length;d0?(a.closeOpened(f),f.close("none")):f.parent()!==b&&f.close("none")}},a.closeAll=function(b,c){a.closeOpened(b),c?b.close(c):b.close()},a.createWindows=function(b){a.each(b,function(b,c){a.createWindow(c,!1)})},a.appendWebview=function(b){if(window.plus){var c,d=b.id||b.url;return a.webviews[d]||(plus.webview.getWebviewById(d)||(c=plus.webview.create(b.url,d,b.styles,b.extras)),plus.webview.currentWebview().append(c),a.webviews[d]=b),c}},a.webviews={},a.data.preloads=[],a.plusReady(function(){a.currentWebview=plus.webview.currentWebview()}),a.addInit({name:"5+",index:100,handle:function(){var b=a.options,c=b.subpages||[];a.os.plus&&a.plusReady(function(){a.each(c,function(b,c){a.appendWebview(c)}),plus.webview.currentWebview()===plus.webview.getWebviewById(plus.runtime.appid)&&setTimeout(function(){d(plus.webview.currentWebview())},300),a.os.ios&&a.options.statusBarBackground&&plus.navigator.setStatusBarBackground(a.options.statusBarBackground),a.os.android&&parseFloat(a.os.version)<4.4&&null==plus.webview.currentWebview().parent()&&document.addEventListener("resume",function(){var a=document.body;a.style.display="none",setTimeout(function(){a.style.display=""},10)})})}}),window.addEventListener("preload",function(){var b=a.options.preloadPages||[];a.plusReady(function(){a.each(b,function(b,c){a.createWindow(a.extend(c,{preload:!0}))})})}),a.supportStatusbarOffset=function(){return a.os.plus&&a.os.ios&&parseFloat(a.os.version)>=7},a.ready(function(){a.supportStatusbarOffset()&&document.body.classList.add("mui-statusbar")})}(mui),function(a,b){a.addBack=function(b){return a.addAction("backs",b)},a.addBack({name:"browser",index:100,handle:function(){return b.history.length>1&&(b.history.back(),!0)}}),a.back=function(){"function"==typeof a.options.beforeback&&!1===a.options.beforeback()||a.doAction("backs")},b.addEventListener("tap",function(b){var c=a.targets.action;c&&c.classList.contains("mui-action-back")&&(a.back(),a.targets.action=!1)}),b.addEventListener("swiperight",function(b){var c=b.detail;!0===a.options.swipeBack&&Math.abs(c.angle)<3&&a.back()})}(mui,window),function(a,b){a.os.plus&&a.os.android&&a.addBack({name:"mui",index:5,handle:function(){if(a.targets._popover&&a.targets._popover.classList.contains("mui-active"))return a(a.targets._popover).popover("hide"),!0;var b=document.querySelector(".mui-off-canvas-wrap.mui-active");if(b)return a(b).offCanvas("close"),!0;var c=a.isFunction(a.getPreviewImage)&&a.getPreviewImage();return c&&c.isShown()?(c.close(),!0):a.closePopup()}}),a.__back__first=null,a.addBack({name:"5+",index:10,handle:function(){if(!b.plus)return!1;var c=plus.webview.currentWebview(),d=c.parent();return d?d.evalJS("mui&&mui.back();"):c.canBack(function(d){d.canBack?b.history.back():c.id===plus.runtime.appid?a.__back__first?(new Date).getTime()-a.__back__first<2e3&&plus.runtime.quit():(a.__back__first=(new Date).getTime(),mui.toast("再按一次退出应用"),setTimeout(function(){a.__back__first=null},2e3)):c.preload?c.hide("auto"):a.closeAll(c)}),!0}}),a.menu=function(){var c=document.querySelector(".mui-action-menu");if(c)a.trigger(c,a.EVENT_START),a.trigger(c,"tap");else if(b.plus){var d=a.currentWebview,e=d.parent();e&&e.evalJS("mui&&mui.menu();")}};var c=function(){a.back()},d=function(){a.menu()};a.plusReady(function(){a.options.keyEventBind.backbutton&&plus.key.addEventListener("backbutton",c,!1),a.options.keyEventBind.menubutton&&plus.key.addEventListener("menubutton",d,!1)}),a.addInit({name:"keyEventBind",index:1e3,handle:function(){a.plusReady(function(){a.options.keyEventBind.backbutton||plus.key.removeEventListener("backbutton",c),a.options.keyEventBind.menubutton||plus.key.removeEventListener("menubutton",d)})}})}(mui,window),function(a){a.addInit({name:"pullrefresh",index:1e3,handle:function(){var b=a.options,c=b.pullRefresh||{},d=c.down&&c.down.hasOwnProperty("callback"),e=c.up&&c.up.hasOwnProperty("callback");if(d||e){var f=c.container;if(f){var g=a(f);1===g.length&&(a.os.plus?d&&"circle"==c.down.style?a.plusReady(function(){a.fn.pullRefresh=a.fn.pullRefresh_native,g.pullRefresh(c)}):a.os.android?a.plusReady(function(){a.fn.pullRefresh=a.fn.pullRefresh_native;var b=plus.webview.currentWebview();if(!1===window.__NWin_Enable__)g.pullRefresh(c);else{if(e){var f={};f.up=c.up,f.webviewId=b.id||b.getURL(),g.pullRefresh(f)}if(d){var h=b.parent(),i=b.id||b.getURL();if(h){e||g.pullRefresh({webviewId:i});var j={webviewId:i};j.down=a.extend({},c.down),j.down.callback="_CALLBACK",h.evalJS("mui.fn.pullRefresh=mui.fn.pullRefresh_native"),h.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('"+JSON.stringify(j)+"')")}}}}):g.pullRefresh(c):g.pullRefresh(c))}}}})}(mui),function(a,b,c){var d="application/json",e="text/html",f=/)<[^<]*)*<\/script>/gi,g=/^(?:text|application)\/javascript/i,h=/^(?:text|application)\/xml/i,i=/^\s*$/;a.ajaxSettings={type:"GET",beforeSend:a.noop,success:a.noop,error:a.noop,complete:a.noop,context:null,xhr:function(a){return new b.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:d,xml:"application/xml, text/xml",html:e,text:"text/plain"},timeout:0,processData:!0,cache:!0};var j=function(a,b){var c=b.context;if(!1===b.beforeSend.call(c,a,b))return!1},k=function(a,b,c){c.success.call(c.context,a,"success",b),m("success",b,c)},l=function(a,b,c,d){d.error.call(d.context,c,b,a),m(b,c,d)},m=function(a,b,c){c.complete.call(c.context,b,a)},n=function(b,c,d,e){var f,g=a.isArray(c),h=a.isPlainObject(c);a.each(c,function(c,i){f=a.type(i),e&&(c=d?e:e+"["+(h||"object"===f||"array"===f?c:"")+"]"),!e&&g?b.add(i.name,i.value):"array"===f||!d&&"object"===f?n(b,i,d,c):b.add(c,i)})},o=function(b){if(b.processData&&b.data&&"string"!=typeof b.data){var e=b.contentType;!e&&b.headers&&(e=b.headers["Content-Type"]),e&&~e.indexOf(d)?b.data=JSON.stringify(b.data):b.data=a.param(b.data,b.traditional)}!b.data||b.type&&"GET"!==b.type.toUpperCase()||(b.url=p(b.url,b.data),b.data=c)},p=function(a,b){return""===b?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")},q=function(a){return a&&(a=a.split(";",2)[0]),a&&(a===e?"html":a===d?"json":g.test(a)?"script":h.test(a)&&"xml")||"text"},r=function(b,d,e,f){return a.isFunction(d)&&(f=e,e=d,d=c),a.isFunction(e)||(f=e,e=c),{url:b,data:d,success:e,dataType:f}};a.ajax=function(d,e){"object"==typeof d&&(e=d,d=c);var f=e||{};f.url=d||f.url;for(var g in a.ajaxSettings)f[g]===c&&(f[g]=a.ajaxSettings[g]);o(f);var h=f.dataType;!1!==f.cache&&(e&&!0===e.cache||"script"!==h)||(f.url=p(f.url,"_="+a.now()));var m=f.accepts[h&&h.toLowerCase()],n={},r=function(a,b){n[a.toLowerCase()]=[a,b]},s=/^([\w-]+:)\/\//.test(f.url)?RegExp.$1:b.location.protocol,t=f.xhr(f);"file:"===location.protocol&&a.os.ios&&b.webkit&&b.webkit.messageHandlers&&!(t instanceof plus.net.XMLHttpRequest)&&console.error("当前运行环境为WKWebview,需在plusReady事件触发后再调用mui.ajax,否则可能会执行失败或报Script error的错误");var u,v=t.setRequestHeader;if(r("X-Requested-With","XMLHttpRequest"),r("Accept",m||"*/*"),(m=f.mimeType||m)&&(m.indexOf(",")>-1&&(m=m.split(",",2)[0]),t.overrideMimeType&&t.overrideMimeType(m)),(f.contentType||!1!==f.contentType&&f.data&&"GET"!==f.type.toUpperCase())&&r("Content-Type",f.contentType||"application/x-www-form-urlencoded"),f.headers)for(var w in f.headers)r(w,f.headers[w]);if(t.setRequestHeader=r,t.onreadystatechange=function(){if(4===t.readyState){t.onreadystatechange=a.noop,clearTimeout(u);var b,c=!1,d="file:"===s;if(t.status>=200&&t.status<300||304===t.status||0===t.status&&d&&t.responseText){h=h||q(f.mimeType||t.getResponseHeader("content-type")),b=t.responseText;try{"script"===h?(0,eval)(b):"xml"===h?b=t.responseXML:"json"===h&&(b=i.test(b)?null:a.parseJSON(b))}catch(a){c=a}c?l(c,"parsererror",t,f):k(b,t,f)}else{var e=t.status?"error":"abort",g=t.statusText||null;d&&(e="error",g="404"),l(g,e,t,f)}}},!1===j(t,f))return t.abort(),l(null,"abort",t,f),t;if(f.xhrFields)for(var w in f.xhrFields)t[w]=f.xhrFields[w];var x=!("async"in f)||f.async;t.open(f.type.toUpperCase(),f.url,x,f.username,f.password);for(var w in n)n.hasOwnProperty(w)&&v.apply(t,n[w]);return f.timeout>0&&(u=setTimeout(function(){t.onreadystatechange=a.noop,t.abort(),l(null,"timeout",t,f)},f.timeout)),t.send(f.data?f.data:null),t},a.param=function(a,b){var c=[];return c.add=function(a,b){this.push(encodeURIComponent(a)+"="+encodeURIComponent(b))},n(c,a,b),c.join("&").replace(/%20/g,"+")},a.get=function(){return a.ajax(r.apply(null,arguments))},a.post=function(){var b=r.apply(null,arguments);return b.type="POST",a.ajax(b)},a.getJSON=function(){var b=r.apply(null,arguments);return b.dataType="json",a.ajax(b)},a.fn.load=function(b,c,d){if(!this.length)return this;var e,g=this,h=b.split(/\s/),i=r(b,c,d),j=i.success;return h.length>1&&(i.url=h[0],e=h[1]),i.success=function(a){if(e){var b=document.createElement("div");b.innerHTML=a.replace(f,"");var c=document.createElement("div"),d=b.querySelectorAll(e);if(d&&d.length>0)for(var h=0,i=d.length;h','
','
{contentrefresh}
',""].join(""),v={init:function(b,c){this._super(b,a.extend(!0,{scrollY:!0,scrollX:!1,indicators:!0,deceleration:.003,down:{height:50,contentinit:"下拉可以刷新",contentdown:"下拉可以刷新",contentover:"释放立即刷新",contentrefresh:"正在刷新..."},up:{height:50,auto:!1,contentinit:"上拉显示更多",contentdown:"上拉显示更多",contentrefresh:"正在加载...",contentnomore:"没有更多数据了",duration:300}},c))},_init:function(){this._super(),this._initPocket()},_initPulldownRefresh:function(){this.pulldown=!0,this.topPocket&&(this.pullPocket=this.topPocket,this.pullPocket.classList.add(o),this.pullPocket.classList.add(q),this.pullCaption=this.topCaption,this.pullLoading=this.topLoading)},_initPullupRefresh:function(){this.pulldown=!1,this.bottomPocket&&(this.pullPocket=this.bottomPocket,this.pullPocket.classList.add(o),this.pullPocket.classList.add(q),this.pullCaption=this.bottomCaption,this.pullLoading=this.bottomLoading)},_initPocket:function(){var a=this.options;a.down&&a.down.hasOwnProperty("callback")&&(this.topPocket=this.scroller.querySelector("."+d),this.topPocket||(this.topPocket=this._createPocket(d,a.down,s),this.wrapper.insertBefore(this.topPocket,this.wrapper.firstChild)),this.topLoading=this.topPocket.querySelector("."+g),this.topCaption=this.topPocket.querySelector("."+h)),a.up&&a.up.hasOwnProperty("callback")&&(this.bottomPocket=this.scroller.querySelector("."+e),this.bottomPocket||(this.bottomPocket=this._createPocket(e,a.up,t),this.scroller.appendChild(this.bottomPocket)),this.bottomLoading=this.bottomPocket.querySelector("."+g),this.bottomCaption=this.bottomPocket.querySelector("."+h),this.wrapper.addEventListener("scrollbottom",this))},_createPocket:function(a,c,d){var e=b.createElement("div");return e.className=a,e.innerHTML=u.replace("{contentrefresh}",c.contentinit).replace("{icon}",d),e},_resetPullDownLoading:function(){var a=this.pullLoading;a&&(this.pullCaption.innerHTML=this.options.down.contentdown,a.style.webkitTransition="",a.style.webkitTransform="",a.style.webkitAnimation="",a.className=s)},_setCaptionClass:function(a,b,c){if(!a)switch(c){case this.options.up.contentdown:b.className=h+" "+i;break;case this.options.up.contentrefresh:b.className=h+" "+j;break;case this.options.up.contentnomore:b.className=h+" "+k}},_setCaption:function(a,b){if(!this.loading){var c=this.options,d=this.pullPocket,e=this.pullCaption,f=this.pullLoading,g=this.pulldown,h=this;d&&(b?setTimeout(function(){e.innerHTML=h.lastTitle=a,g?f.className=s:(h._setCaptionClass(!1,e,a),f.className=t),f.style.webkitAnimation="",f.style.webkitTransition="",f.style.webkitTransform=""},100):a!==this.lastTitle&&(e.innerHTML=a,g?a===c.down.contentrefresh?(f.className=t,f.style.webkitAnimation="spinner-spin 1s step-end infinite"):a===c.down.contentover?(f.className=r,f.style.webkitTransition="-webkit-transform 0.3s ease-in",f.style.webkitTransform="rotate(180deg)"):a===c.down.contentdown&&(f.className=s,f.style.webkitTransition="-webkit-transform 0.3s ease-in",f.style.webkitTransform="rotate(0deg)"):(a===c.up.contentrefresh?f.className=t+" "+q:f.className=t+" "+p,h._setCaptionClass(!1,e,a)),this.lastTitle=a))}}};a.PullRefresh=v}(mui,document),function(a,b,c,d){var e="mui-scroll",f="mui-scrollbar",g="mui-scrollbar-indicator",h=f+"-vertical",i=f+"-horizontal",j="mui-active",k={quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(a){return a*(2-a)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(a){return Math.sqrt(1- --a*a)}},outCirc:{style:"cubic-bezier(0.075, 0.82, 0.165, 1)"},outCubic:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)"}},l=a.Class.extend({init:function(b,c){this.wrapper=this.element=b,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller&&this.scroller.style,this.stopped=!1,this.options=a.extend(!0,{scrollY:!0,scrollX:!1,startX:0,startY:0,indicators:!0,stopPropagation:!1,hardwareAccelerated:!0,fixedBadAndorid:!1,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/},momentum:!0,snapX:.5,snap:!1,bounce:!0,bounceTime:500,bounceEasing:k.outCirc,scrollTime:500,scrollEasing:k.outCubic,directionLockThreshold:5,parallaxElement:!1,parallaxRatio:.5},c),this.x=0,this.y=0,this.translateZ=this.options.hardwareAccelerated?" translateZ(0)":"",this._init(),this.scroller&&(this.refresh(),this.scrollTo(this.options.startX,this.options.startY))},_init:function(){this._initParallax(),this._initIndicators(),this._initEvent()},_initParallax:function(){this.options.parallaxElement&&(this.parallaxElement=c.querySelector(this.options.parallaxElement),this.parallaxStyle=this.parallaxElement.style,this.parallaxHeight=this.parallaxElement.offsetHeight,this.parallaxImgStyle=this.parallaxElement.querySelector("img").style)},_initIndicators:function(){var a=this;if(a.indicators=[],this.options.indicators){var b,c=[];a.options.scrollY&&(b={el:this._createScrollBar(h),listenX:!1},this.wrapper.appendChild(b.el),c.push(b)),this.options.scrollX&&(b={el:this._createScrollBar(i),listenY:!1},this.wrapper.appendChild(b.el),c.push(b));for(var d=c.length;d--;)this.indicators.push(new m(this,c[d]))}},_initSnap:function(){this.currentPage={},this.pages=[];for(var a=this.snaps,b=a.length,c=0,d=-1,e=0,f=0,g=0,h=0,i=0;i=this.maxScrollX&&c++}this.options.startX=this.currentPage.x||0},_getSnapX:function(a){return Math.max(Math.min(0,-a+this.wrapperWidth/2),this.maxScrollX)},_gotoPage:function(a){this.currentPage=this.pages[Math.min(a,this.pages.length-1)][0];for(var b=0,c=this.snaps.length;b0?a=0:a=("left"===this.direction?this.pages[b][0].leftX:this.pages[b][0].rightX))return this.pages[b][0]}return{x:0,pageX:0}},_initEvent:function(c){var d=c?"removeEventListener":"addEventListener";b[d]("orientationchange",this),b[d]("resize",this),this.scroller[d]("webkitTransitionEnd",this),this.wrapper[d](a.EVENT_START,this),this.wrapper[d](a.EVENT_CANCEL,this),this.wrapper[d](a.EVENT_END,this),this.wrapper[d]("drag",this),this.wrapper[d]("dragend",this),this.wrapper[d]("flick",this),this.wrapper[d]("scrollend",this),this.options.scrollX&&this.wrapper[d]("swiperight",this);var e=this.wrapper.querySelector(".mui-segmented-control");e&&mui(e)[c?"off":"on"]("click","a",a.preventDefault),this.wrapper[d]("scrollstart",this),this.wrapper[d]("refresh",this)},_handleIndicatorScrollend:function(){this.indicators.map(function(a){a.fade()})},_handleIndicatorScrollstart:function(){this.indicators.map(function(a){a.fade(1)})},_handleIndicatorRefresh:function(){this.indicators.map(function(a){a.refresh()})},handleEvent:function(b){if(this.stopped)return void this.resetPosition();switch(b.type){case a.EVENT_START:this._start(b);break;case"drag":this.options.stopPropagation&&b.stopPropagation(),this._drag(b);break;case"dragend":case"flick":this.options.stopPropagation&&b.stopPropagation(),this._flick(b);break;case a.EVENT_CANCEL:case a.EVENT_END:this._end(b);break;case"webkitTransitionEnd":this.transitionTimer&&this.transitionTimer.cancel(),this._transitionEnd(b);break;case"scrollstart":this._handleIndicatorScrollstart(b);break;case"scrollend":this._handleIndicatorScrollend(b),this._scrollend(b),b.stopPropagation();break;case"orientationchange":case"resize":this._resize();break;case"swiperight":b.stopPropagation();break;case"refresh":this._handleIndicatorRefresh(b)}},_start:function(b){if(this.moved=this.needReset=!1,this._transitionTime(),this.isInTransition){this.needReset=!0,this.isInTransition=!1;var c=a.parseTranslateMatrix(a.getStyles(this.scroller,"webkitTransform"));this.setTranslate(Math.round(c.x),Math.round(c.y)),a.trigger(this.scroller,"scrollend",this),b.preventDefault()}this.reLayout(),a.trigger(this.scroller,"beforescrollstart",this)},_getDirectionByAngle:function(a){return a<-80&&a>-100?"up":a>=80&&a<100?"down":a>=170||a<=-170?"left":a>=-35&&a<=10?"right":null},_drag:function(c){var d=c.detail;if((this.options.scrollY||"up"===d.direction||"down"===d.direction)&&a.os.ios&&parseFloat(a.os.version)>=8){var e=d.gesture.touches[0].clientY;if(e+10>b.innerHeight||e<10)return void this.resetPosition(this.options.bounceTime)}var f=isReturn=!1;this._getDirectionByAngle(d.angle);if("left"===d.direction||"right"===d.direction?this.options.scrollX?(f=!0,this.moved||(a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=d.direction)):this.options.scrollY&&!this.moved&&(isReturn=!0):"up"===d.direction||"down"===d.direction?this.options.scrollY?(f=!0,this.moved||(a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=d.direction)):this.options.scrollX&&!this.moved&&(isReturn=!0):isReturn=!0,(this.moved||f)&&(c.stopPropagation(),d.gesture&&d.gesture.preventDefault()),!isReturn){this.moved?c.stopPropagation():a.trigger(this.scroller,"scrollstart",this);var g=0,h=0;this.moved?(g=d.deltaX-a.gestures.session.prevTouch.deltaX,h=d.deltaY-a.gestures.session.prevTouch.deltaY):(g=d.deltaX,h=d.deltaY);var i=Math.abs(d.deltaX),j=Math.abs(d.deltaY);i>j+this.options.directionLockThreshold?h=0:j>=i+this.options.directionLockThreshold&&(g=0),g=this.hasHorizontalScroll?g:0,h=this.hasVerticalScroll?h:0;var k=this.x+g,l=this.y+h;(k>0||k0?0:this.maxScrollX),(l>0||l0?0:this.maxScrollY),this.requestAnimationFrame||this._updateTranslate(),this.direction=d.deltaX>0?"right":"left",this.moved=!0,this.x=k,this.y=l,a.trigger(this.scroller,"scroll",this)}},_flick:function(b){if(this.moved){b.stopPropagation();var c=b.detail;if(this._clearRequestAnimationFrame(),"dragend"!==b.type||!c.flick){var d=Math.round(this.x),e=Math.round(this.y);if(this.isInTransition=!1,!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(d,e),"dragend"===b.type)return void a.trigger(this.scroller,"scrollend",this);var f=0,g="";if(this.options.momentum&&c.flickTime<300&&(momentumX=this.hasHorizontalScroll?this._momentum(this.x,c.flickDistanceX,c.flickTime,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:d,duration:0},momentumY=this.hasVerticalScroll?this._momentum(this.y,c.flickDistanceY,c.flickTime,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:e,duration:0},d=momentumX.destination,e=momentumY.destination,f=Math.max(momentumX.duration,momentumY.duration),this.isInTransition=!0),d!=this.x||e!=this.y)return(d>0||d0||e0&&this.y<=this.maxScrollY)&&a.trigger(this.scroller,"scrollbottom",this)},_resize:function(){var a=this;clearTimeout(a.resizeTimeout),a.resizeTimeout=setTimeout(function(){a.refresh()},a.options.resizePolling)},_transitionTime:function(b){if(b=b||0,this.scrollerStyle.webkitTransitionDuration=b+"ms",this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration=b+"ms"),this.options.fixedBadAndorid&&!b&&a.os.isBadAndroid&&(this.scrollerStyle.webkitTransitionDuration="0.001s",this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration="0.001s")),this.indicators)for(var c=this.indicators.length;c--;)this.indicators[c].transitionTime(b);b&&(this.transitionTimer&&this.transitionTimer.cancel(),this.transitionTimer=a.later(function(){a.trigger(this.scroller,"webkitTransitionEnd")},b+100,this))},_transitionTimingFunction:function(a){if(this.scrollerStyle.webkitTransitionTimingFunction=a,this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration=a),this.indicators)for(var b=this.indicators.length;b--;)this.indicators[b].transitionTimingFunction(a)},_translate:function(a,b){this.x=a,this.y=b},_clearRequestAnimationFrame:function(){this.requestAnimationFrame&&(cancelAnimationFrame(this.requestAnimationFrame),this.requestAnimationFrame=null)},_updateTranslate:function(){var a=this;a.x===a.lastX&&a.y===a.lastY||a.setTranslate(a.x,a.y),a.requestAnimationFrame=requestAnimationFrame(function(){a._updateTranslate()})},_createScrollBar:function(a){var b=c.createElement("div"),d=c.createElement("div");return b.className=f+" "+a,d.className=g,b.appendChild(d),a===h?(this.scrollbarY=b,this.scrollbarIndicatorY=d):a===i&&(this.scrollbarX=b,this.scrollbarIndicatorX=d),this.wrapper.appendChild(b),b},_preventDefaultException:function(a,b){for(var c in b)if(b[c].test(a[c]))return!0;return!1},_reLayout:function(){if(this.hasHorizontalScroll||(this.maxScrollX=0,this.scrollerWidth=this.wrapperWidth),this.hasVerticalScroll||(this.maxScrollY=0,this.scrollerHeight=this.wrapperHeight),this.indicators.map(function(a){a.refresh()}),this.options.snap&&"string"==typeof this.options.snap){var a=this.scroller.querySelectorAll(this.options.snap);this.itemLength=0,this.snaps=[];for(var b=0,c=a.length;b0&&(h=f?f/2.5*(j/8):0,b=Math.abs(a)+h,i=b/j),{destination:Math.round(h),duration:i}},_getTranslateStr:function(a,b){return this.options.hardwareAccelerated?"translate3d("+a+"px,"+b+"px,0px) "+this.translateZ:"translate("+a+"px,"+b+"px) "},setStopped:function(a){a?(this.disablePullupToRefresh(),this.disablePulldownToRefresh()):(this.enablePullupToRefresh(),this.enablePulldownToRefresh())},setTranslate:function(b,c){if(this.x=b,this.y=c,this.scrollerStyle.webkitTransform=this._getTranslateStr(b,c),this.parallaxElement&&this.options.scrollY){var d=c*this.options.parallaxRatio,e=1+d/((this.parallaxHeight-d)/2);e>1?(this.parallaxImgStyle.opacity=1-d/100*this.options.parallaxRatio,this.parallaxStyle.webkitTransform=this._getTranslateStr(0,-d)+" scale("+e+","+e+")"):(this.parallaxImgStyle.opacity=1,this.parallaxStyle.webkitTransform=this._getTranslateStr(0,-1)+" scale(1,1)")}if(this.indicators)for(var f=this.indicators.length;f--;)this.indicators[f].updatePosition();this.lastX=this.x,this.lastY=this.y,a.trigger(this.scroller,"scroll",this)},reLayout:function(){this.wrapper.offsetHeight;var b=parseFloat(a.getStyles(this.wrapper,"padding-left"))||0,c=parseFloat(a.getStyles(this.wrapper,"padding-right"))||0,d=parseFloat(a.getStyles(this.wrapper,"padding-top"))||0,e=parseFloat(a.getStyles(this.wrapper,"padding-bottom"))||0,f=this.wrapper.clientWidth,g=this.wrapper.clientHeight;this.scrollerWidth=this.scroller.offsetWidth,this.scrollerHeight=this.scroller.offsetHeight,this.wrapperWidth=f-b-c,this.wrapperHeight=g-d-e,this.maxScrollX=Math.min(this.wrapperWidth-this.scrollerWidth,0),this.maxScrollY=Math.min(this.wrapperHeight-this.scrollerHeight,0),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollX<0,this.hasVerticalScroll=this.options.scrollY&&this.maxScrollY<0,this._reLayout()},resetPosition:function(a){var b=this.x,c=this.y;return a=a||0,!this.hasHorizontalScroll||this.x>0?b=0:this.x0?c=0:this.y0,this.isInTransition?(this._clearRequestAnimationFrame(),this._transitionTimingFunction(d.style),this._transitionTime(c),this.setTranslate(a,b)):this.setTranslate(a,b)},scrollToBottom:function(a,b){a=a||this.options.scrollTime,this.scrollTo(0,this.maxScrollY,a,b)},gotoPage:function(a){this._gotoPage(a)},destroy:function(){this._initEvent(!0),delete a.data[this.wrapper.getAttribute("data-scroll")],this.wrapper.setAttribute("data-scroll","")}}),m=function(b,d){this.wrapper="string"==typeof d.el?c.querySelector(d.el):d.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=b,this.options=a.extend({listenX:!0,listenY:!0,fade:!1,speedRatioX:0,speedRatioY:0},d),this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.options.fade&&(this.wrapperStyle.webkitTransform=this.scroller.translateZ,this.wrapperStyle.webkitTransitionDuration=this.options.fixedBadAndorid&&a.os.isBadAndroid?"0.001s":"0ms",this.wrapperStyle.opacity="0")};m.prototype={handleEvent:function(a){},transitionTime:function(b){b=b||0,this.indicatorStyle.webkitTransitionDuration=b+"ms",this.scroller.options.fixedBadAndorid&&!b&&a.os.isBadAndroid&&(this.indicatorStyle.webkitTransitionDuration="0.001s")},transitionTimingFunction:function(a){this.indicatorStyle.webkitTransitionTimingFunction=a},refresh:function(){this.transitionTime(),this.options.listenX&&!this.options.listenY?this.indicatorStyle.display=this.scroller.hasHorizontalScroll?"block":"none":this.options.listenY&&!this.options.listenX?this.indicatorStyle.display=this.scroller.hasVerticalScroll?"block":"none":this.indicatorStyle.display=this.scroller.hasHorizontalScroll||this.scroller.hasVerticalScroll?"block":"none",this.wrapper.offsetHeight,this.options.listenX&&(this.wrapperWidth=this.wrapper.clientWidth,this.indicatorWidth=Math.max(Math.round(this.wrapperWidth*this.wrapperWidth/(this.scroller.scrollerWidth||this.wrapperWidth||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px",this.maxPosX=this.wrapperWidth-this.indicatorWidth,this.minBoundaryX=0,this.maxBoundaryX=this.maxPosX,this.sizeRatioX=this.options.speedRatioX||this.scroller.maxScrollX&&this.maxPosX/this.scroller.maxScrollX),this.options.listenY&&(this.wrapperHeight=this.wrapper.clientHeight,this.indicatorHeight=Math.max(Math.round(this.wrapperHeight*this.wrapperHeight/(this.scroller.scrollerHeight||this.wrapperHeight||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px",this.maxPosY=this.wrapperHeight-this.indicatorHeight,this.minBoundaryY=0,this.maxBoundaryY=this.maxPosY,this.sizeRatioY=this.options.speedRatioY||this.scroller.maxScrollY&&this.maxPosY/this.scroller.maxScrollY),this.updatePosition()},updatePosition:function(){var a=this.options.listenX&&Math.round(this.sizeRatioX*this.scroller.x)||0,b=this.options.listenY&&Math.round(this.sizeRatioY*this.scroller.y)||0;athis.maxBoundaryX?(this.width=Math.max(this.indicatorWidth-(a-this.maxPosX),8),this.indicatorStyle.width=this.width+"px",a=this.maxPosX+this.indicatorWidth-this.width):this.width!=this.indicatorWidth&&(this.width=this.indicatorWidth,this.indicatorStyle.width=this.width+"px"),bthis.maxBoundaryY?(this.height=Math.max(this.indicatorHeight-3*(b-this.maxPosY),8),this.indicatorStyle.height=this.height+"px",b=this.maxPosY+this.indicatorHeight-this.height):this.height!=this.indicatorHeight&&(this.height=this.indicatorHeight,this.indicatorStyle.height=this.height+"px"),this.x=a,this.y=b,this.indicatorStyle.webkitTransform=this.scroller._getTranslateStr(a,b)},fade:function(a,b){if(!b||this.visible){clearTimeout(this.fadeTimeout),this.fadeTimeout=null;var c=a?250:500,d=a?0:300;a=a?"1":"0",this.wrapperStyle.webkitTransitionDuration=c+"ms",this.fadeTimeout=setTimeout(function(a){this.wrapperStyle.opacity=a,this.visible=+a}.bind(this,a),d)}}},a.Scroll=l,a.fn.scroll=function(b){var c=[];return this.each(function(){var d=null,e=this,f=e.getAttribute("data-scroll");if(f)d=a.data[f];else{f=++a.uuid;var g=a.extend({},b);e.classList.contains("mui-segmented-control")&&(g=a.extend(g,{scrollY:!1,scrollX:!0,indicators:!1,snap:".mui-control-item"})),a.data[f]=d=new l(e,g),e.setAttribute("data-scroll",f)}c.push(d)}),1===c.length?c[0]:c}}(mui,window,document),function(a,b,c,d){var e="mui-visibility",f="mui-hidden",g=a.Scroll.extend(a.extend({handleEvent:function(a){this._super(a),"scrollbottom"===a.type&&a.target===this.scroller&&this._scrollbottom()},_scrollbottom:function(){this.pulldown||this.loading||(this.pulldown=!1,this._initPullupRefresh(),this.pullupLoading())},_start:function(a){a.touches&&a.touches.length&&a.touches[0].clientX>30&&a.target&&!this._preventDefaultException(a.target,this.options.preventDefaultException)&&a.preventDefault(),this.loading||(this.pulldown=this.pullPocket=this.pullCaption=this.pullLoading=!1),this._super(a)},_drag:function(a){this.y>=0&&this.disablePulldown&&"down"===a.detail.direction||(this._super(a),!this.pulldown&&!this.loading&&this.topPocket&&"down"===a.detail.direction&&this.y>=0&&this._initPulldownRefresh(),this.pulldown&&this._setCaption(this.y>this.options.down.height?this.options.down.contentover:this.options.down.contentdown))},_reLayout:function(){this.hasVerticalScroll=!0,this._super()},resetPosition:function(a){if(this.pulldown&&!this.disablePulldown){if(this.y>=this.options.down.height)return this.pulldownLoading(d,a||0),!0;!this.loading&&this.topPocket.classList.remove(e)}return this._super(a)},pulldownLoading:function(a,b){if(void 0===a&&(a=this.options.down.height),this.scrollTo(0,a,b,this.options.bounceEasing),!this.loading){this._initPulldownRefresh(),this._setCaption(this.options.down.contentrefresh),this.loading=!0,this.indicators.map(function(a){a.fade(0)});var c=this.options.down.callback;c&&c.call(this)}},endPulldownToRefresh:function(){var a=this;a.topPocket&&a.loading&&this.pulldown&&(a.scrollTo(0,0,a.options.bounceTime,a.options.bounceEasing),a.loading=!1,a._setCaption(a.options.down.contentdown,!0),setTimeout(function(){a.loading||a.topPocket.classList.remove(e)},350))},pullupLoading:function(a,b,c){b=b||0,this.scrollTo(b,this.maxScrollY,c,this.options.bounceEasing),this.loading||(this._initPullupRefresh(),this._setCaption(this.options.up.contentrefresh),this.indicators.map(function(a){a.fade(0)}),this.loading=!0,(a=a||this.options.up.callback)&&a.call(this))},endPullupToRefresh:function(a){var b=this;b.bottomPocket&&(b.loading=!1,a?(this.finished=!0,b._setCaption(b.options.up.contentnomore),b.wrapper.removeEventListener("scrollbottom",b)):(b._setCaption(b.options.up.contentdown),b.loading||b.bottomPocket.classList.remove(e)))},disablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.className="mui-pull-bottom-pocket "+f,this.wrapper.removeEventListener("scrollbottom",this)},disablePulldownToRefresh:function(){this._initPulldownRefresh(),this.topPocket.className="mui-pull-top-pocket "+f,this.disablePulldown=!0},enablePulldownToRefresh:function(){this._initPulldownRefresh(),this.topPocket.classList.remove(f),this._setCaption(this.options.down.contentdown),this.disablePulldown=!1},enablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.classList.remove(f),this._setCaption(this.options.up.contentdown),this.wrapper.addEventListener("scrollbottom",this)},refresh:function(a){a&&this.finished&&(this.enablePullupToRefresh(),this.finished=!1),this._super()}},a.PullRefresh));a.fn.pullRefresh=function(b){if(1===this.length){var c=this[0],d=null,e=c.getAttribute("data-pullrefresh");return!(!e&&void 0===b)&&(b=b||{},e?d=a.data[e]:(e=++a.uuid,a.data[e]=d=new g(c,b),c.setAttribute("data-pullrefresh",e)),b.down&&b.down.auto?d.pulldownLoading(b.down.autoY):b.up&&b.up.auto&&d.pullupLoading(),d)}}}(mui,window,document),function(a,b){var c="mui-slider",d="mui-slider-group",e="mui-slider-loop",f="mui-action-previous",g="mui-action-next",h="mui-slider-item",i="mui-active",j="."+h,k=".mui-slider-progress-bar",l=a.Slider=a.Scroll.extend({init:function(b,c){this._super(b,a.extend(!0,{fingers:1,interval:0,scrollY:!1,scrollX:!0,indicators:!1,scrollTime:1e3,startX:!1,slideTime:0,snap:j},c)),this.options.startX},_init:function(){this._reInit(),this.scroller&&(this.scrollerStyle=this.scroller.style,this.progressBar=this.wrapper.querySelector(k),this.progressBar&&(this.progressBarWidth=this.progressBar.offsetWidth,this.progressBarStyle=this.progressBar.style),this._super(),this._initTimer())},_triggerSlide:function(){var b=this;b.isInTransition=!1;b.currentPage;b.slideNumber=b._fixedSlideNumber(),b.loop&&(0===b.slideNumber?b.setTranslate(b.pages[1][0].x,0):b.slideNumber===b.itemLength-3&&b.setTranslate(b.pages[b.itemLength-2][0].x,0)),b.lastSlideNumber!=b.slideNumber&&(b.lastSlideNumber=b.slideNumber,b.lastPage=b.currentPage,a.trigger(b.wrapper,"slide",{slideNumber:b.slideNumber})),b._initTimer()},_handleSlide:function(b){var c=this;if(b.target===c.wrapper){var d=b.detail;d.slideNumber=d.slideNumber||0;for(var e=c.scroller.querySelectorAll(j),f=[],g=0,h=e.length;g0)for(var g=0,h=n.length;gthis.itemLength-(b?2:3)?(a=1,time=0):a<(b?-1:0)?(a=this.itemLength-2,time=0):a+=1:(b||(a>this.itemLength-1?(a=0,time=0):a<0&&(a=this.itemLength-1,time=0)),a=Math.min(Math.max(0,a),this.itemLength-1)),this.pages[a][0]},_gotoItem:function(b,c){this.currentPage=this._getPage(b,!0),this.scrollTo(this.currentPage.x,0,c,this.options.scrollEasing),0===c&&a.trigger(this.wrapper,"scrollend",this)},setTranslate:function(a,b){this._super(a,b),this.progressBar&&(this.progressBarStyle.webkitTransform=this._getTranslateStr(-a*(this.progressBarWidth/this.wrapperWidth),0))},resetPosition:function(a){return a=a||0,this.x>0?this.x=0:this.x=b.documentElement.scrollHeight&&(a.isScroll=!1,a.bottomPocket&&a.pullupLoading())},100)},_initPulldownRefreshEvent:function(){var b=this;a.plusReady(function(){if("circle"==b.options.down.style)b.options.webview=plus.webview.currentWebview(),b.options.webview.setPullToRefresh({support:!0,color:b.options.down.color||"#2BD009",height:b.options.down.height||"50px",range:b.options.down.range||"100px",style:"circle",offset:b.options.down.offset||"0px"},function(){b.options.down.callback()});else if(b.topPocket&&b.options.webviewId){var a=plus.webview.getWebviewById(b.options.webviewId);if(!a)return;b.options.webview=a;var c=b.options.down,d=c.height;a.addEventListener("close",function(){var a=b.options.webviewId&&b.options.webviewId.replace(/\//g,"_");b.element.removeAttribute("data-pullrefresh-plus-"+a)}),a.addEventListener("dragBounce",function(d){switch(b.pulldown?b.pullPocket.classList.add(e):b._initPulldownRefresh(),d.status){case"beforeChangeOffset":b._setCaption(c.contentdown);break;case"afterChangeOffset":b._setCaption(c.contentover);break;case"dragEndAfterChangeOffset":a.evalJS("window.mui&&mui.options.pullRefresh.down.callback()"),b._setCaption(c.contentrefresh)}},!1),a.setBounce({position:{top:2*d+"px"},changeoffset:{top:d+"px"}})}})},handleEvent:function(a){var b=this;b.stopped||(b.isScroll=!1,"dragup"!==a.type&&"plusscrollbottom"!==a.type||(b.isScroll=!0,setTimeout(function(){b.isScroll=!1},1e3)))}}).extend(a.extend({setStopped:function(a){this.stopped=!!a,this.stopped?(this.disablePullupToRefresh(),this.disablePulldownToRefresh()):(this.enablePullupToRefresh(),this.enablePulldownToRefresh())},beginPulldown:function(){var b=this;a.plusReady(function(){setTimeout(function(){if("circle"==b.options.down.style)plus.webview.currentWebview().beginPullToRefresh();else{var a=b.options.webview;a&&a.setBounce({offset:{top:b.options.down.height+"px"}})}},15)}.bind(this))},pulldownLoading:function(){this.beginPulldown()},_pulldownLoading:function(){var b=this;a.plusReady(function(){var a=plus.webview.getWebviewById(b.options.webviewId);a&&a.setBounce({offset:{top:b.options.down.height+"px"}})})},endPulldown:function(){var a=plus.webview.currentWebview();a.parent()&&"circle"!==this.options.down.style?a.parent().evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('"+JSON.stringify({webviewId:a.id})+"')._endPulldownToRefresh()"):a.endPullToRefresh()},endPulldownToRefresh:function(){this.endPulldown()},_endPulldownToRefresh:function(){var a=this;a.topPocket&&a.options.webview&&(a.options.webview.endPullToRefresh(),a.loading=!1,a._setCaption(a.options.down.contentdown,!0),setTimeout(function(){a.loading||a.topPocket.classList.remove(e)},350))},beginPullup:function(a){var b=this;b.isLoading||(b.isLoading=!0,!1!==b.pulldown?b._initPullupRefresh():this.pullPocket.classList.add(e),setTimeout(function(){b.pullLoading.classList.add(c),b.pullLoading.classList.remove(d),b.pullCaption.innerHTML="",b.pullCaption.className=f+" "+h,b.pullCaption.innerHTML=b.options.up.contentrefresh,(a=a||b.options.up.callback)&&a.call(b)},300))},pullupLoading:function(a){this.beginPullup(a)},endPullup:function(a){var e=this;e.pullLoading&&(e.pullLoading.classList.remove(c),e.pullLoading.classList.add(d),e.isLoading=!1,a?(e.finished=!0,e.pullCaption.className=f+" "+i,e.pullCaption.innerHTML=e.options.up.contentnomore,b.removeEventListener("plusscrollbottom",e),window.removeEventListener("dragup",e)):(e.pullCaption.className=f+" "+g,e.pullCaption.innerHTML=e.options.up.contentdown))},endPullupToRefresh:function(a){this.endPullup(a)},disablePulldownToRefresh:function(){var a=plus.webview.currentWebview();this.options.down.style&&"circle"==this.options.down.style?this.options.webview.setPullToRefresh({support:!1,style:"circle"}):(a.setStyle({bounce:"none"}),a.setBounce({position:{top:"none"}}))},enablePulldownToRefresh:function(){var a=this,b=plus.webview.currentWebview(),c=this.options.down.height;this.options.down.style&&"circle"==this.options.down.style?b.setPullToRefresh({support:!0,height:c||"50px",range:a.options.down.range||"100px",style:"circle",offset:a.options.down.offset||"0px"}):(b.setStyle({bounce:"vertical"}),b.setBounce({position:{top:2*c+"px"},changeoffset:{top:c+"px"}}))},disablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.className="mui-pull-bottom-pocket "+d,window.removeEventListener("dragup",this)},enablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.classList.remove(d),this.pullCaption.className=f+" "+g,this.pullCaption.innerHTML=this.options.up.contentdown,b.addEventListener("plusscrollbottom",this),window.addEventListener("dragup",this)},scrollTo:function(b,c,d){a.scrollTo(c,d)},scrollToBottom:function(c){a.scrollTo(b.documentElement.scrollHeight,c)},refresh:function(a){a&&this.finished&&(this.enablePullupToRefresh(),this.finished=!1)}},a.PullRefresh));a.fn.pullRefresh_native=function(c){var d;0===this.length?(d=b.createElement("div"),d.className="mui-content",b.body.appendChild(d)):d=this[0];var e=c;c=c||{},"string"==typeof c&&(c=a.parseJSON(c)),!c.webviewId&&(c.webviewId=plus.webview.currentWebview().id||plus.webview.currentWebview().getURL());var f=null,g=c.webviewId&&c.webviewId.replace(/\//g,"_"),h=d.getAttribute("data-pullrefresh-plus-"+g);return!(!h&&void 0===e)&&(h?f=a.data[h]:(h=++a.uuid,d.setAttribute("data-pullrefresh-plus-"+g,h),b.body.classList.add("mui-plus-pullrefresh"),a.data[h]=f=new j(d,c)),c.down&&c.down.auto?f.beginPulldown():c.up&&c.up.auto&&f.beginPullup(),f)}}})}(mui,document),function(a,b,c,d){var e="mui-off-canvas-left",f="mui-off-canvas-right",g="mui-off-canvas-backdrop",h="mui-off-canvas-wrap",i="mui-slide-in",j="mui-active",k="mui-transitioning",l=".mui-inner-wrap",m=a.Class.extend({init:function(b,d){this.wrapper=this.element=b,this.scroller=this.wrapper.querySelector(l),this.classList=this.wrapper.classList,this.scroller&&(this.options=a.extend(!0,{dragThresholdX:10,scale:.8,opacity:.1,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/}},d),c.body.classList.add("mui-fullscreen"),this.refresh(),this.initEvent())},_preventDefaultException:function(a,b){for(var c in b)if(b[c].test(a[c]))return!0;return!1},refresh:function(a){this.slideIn=this.classList.contains(i),this.scalable=this.classList.contains("mui-scalable")&&!this.slideIn,this.scroller=this.wrapper.querySelector(l),this.offCanvasLefts=this.wrapper.querySelectorAll("."+e),this.offCanvasRights=this.wrapper.querySelectorAll("."+f),a?a.classList.contains(e)?this.offCanvasLeft=a:a.classList.contains(f)&&(this.offCanvasRight=a):(this.offCanvasRight=this.wrapper.querySelector("."+f),this.offCanvasLeft=this.wrapper.querySelector("."+e)),this.offCanvasRightWidth=this.offCanvasLeftWidth=0,this.offCanvasLeftSlideIn=this.offCanvasRightSlideIn=!1,this.offCanvasRight&&(this.offCanvasRightWidth=this.offCanvasRight.offsetWidth,this.offCanvasRightSlideIn=this.slideIn&&this.offCanvasRight.parentNode===this.wrapper),this.offCanvasLeft&&(this.offCanvasLeftWidth=this.offCanvasLeft.offsetWidth,this.offCanvasLeftSlideIn=this.slideIn&&this.offCanvasLeft.parentNode===this.wrapper),this.backdrop=this.scroller.querySelector("."+g),this.options.dragThresholdX=this.options.dragThresholdX||10,this.visible=!1,this.startX=null,this.lastX=null,this.offsetX=null,this.lastTranslateX=null},handleEvent:function(b){switch(b.type){case a.EVENT_START:b.target&&!this._preventDefaultException(b.target,this.options.preventDefaultException)&&b.preventDefault();break;case"webkitTransitionEnd":b.target===this.scroller&&this._dispatchEvent();break;case"drag":var c=b.detail;this.startX?this.lastX=c.center.x:(this.startX=c.center.x,this.lastX=this.startX),!this.isDragging&&Math.abs(this.lastX-this.startX)>this.options.dragThresholdX&&("left"===c.direction||"right"===c.direction)&&(this.slideIn?(this.scroller=this.wrapper.querySelector(l),this.classList.contains(j)?this.offCanvasRight&&this.offCanvasRight.classList.contains(j)?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):"left"===c.direction&&this.offCanvasRight?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):"right"===c.direction&&this.offCanvasLeft?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):this.scroller=null):this.classList.contains(j)?"left"===c.direction?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):"right"===c.direction?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth),this.offCanvas&&this.scroller&&(this.startX=this.lastX,this.isDragging=!0,a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=c.direction,this.offCanvas.classList.remove(k),this.scroller.classList.remove(k),this.offsetX=this.getTranslateX(),this._initOffCanvasVisible())),this.isDragging&&(this.updateTranslate(this.offsetX+(this.lastX-this.startX)),c.gesture.preventDefault(),b.stopPropagation());break;case"dragend":if(this.isDragging){var c=b.detail,d=c.direction;this.isDragging=!1,this.offCanvas.classList.add(k),this.scroller.classList.add(k);var e=0,f=this.getTranslateX();if(this.slideIn){if(e=f>=0?this.offCanvasRightWidth&&f/this.offCanvasRightWidth||0:this.offCanvasLeftWidth&&f/this.offCanvasLeftWidth||0,"right"===d&&e<=0&&(e>=-.5||c.swipe)?this.openPercentage(100):"right"===d&&e>0&&(e>=.5||c.swipe)?this.openPercentage(0):"right"===d&&e<=-.5?this.openPercentage(0):"right"===d&&e>0&&e<=.5?this.openPercentage(-100):"left"===d&&e>=0&&(e<=.5||c.swipe)?this.openPercentage(-100):"left"===d&&e<0&&(e<=-.5||c.swipe)?this.openPercentage(0):"left"===d&&e>=.5?this.openPercentage(0):"left"===d&&e>=-.5&&e<0?this.openPercentage(100):this.openPercentage(0),1===e||-1===e||0===e)return void this._dispatchEvent()}else{if(0===(e=f>=0?this.offCanvasLeftWidth&&f/this.offCanvasLeftWidth||0:this.offCanvasRightWidth&&f/this.offCanvasRightWidth||0))return this.openPercentage(0),void this._dispatchEvent();"right"===d&&e>=0&&(e>=.5||c.swipe)?this.openPercentage(100):"right"===d&&e<0&&(e>-.5||c.swipe)?this.openPercentage(0):"right"===d&&e>0&&e<.5?this.openPercentage(0):"right"===d&&e<.5?this.openPercentage(-100):"left"===d&&e<=0&&(e<=-.5||c.swipe)?this.openPercentage(-100):"left"===d&&e>0&&(e<=.5||c.swipe)?this.openPercentage(0):"left"===d&&e<0&&e>=-.5?this.openPercentage(0):"left"===d&&e>.5?this.openPercentage(100):this.openPercentage(0),1!==e&&-1!==e||this._dispatchEvent()}}}},_dispatchEvent:function(){this.classList.contains(j)?a.trigger(this.wrapper,"shown",this):a.trigger(this.wrapper,"hidden",this)},_initOffCanvasVisible:function(){this.visible||(this.visible=!0,this.offCanvasLeft&&(this.offCanvasLeft.style.visibility="visible"),this.offCanvasRight&&(this.offCanvasRight.style.visibility="visible"))},initEvent:function(){var b=this;b.backdrop&&b.backdrop.addEventListener("tap",function(a){b.close(),a.detail.gesture.preventDefault()}),this.classList.contains("mui-draggable")&&(this.wrapper.addEventListener(a.EVENT_START,this),this.wrapper.addEventListener("drag",this),this.wrapper.addEventListener("dragend",this)),this.wrapper.addEventListener("webkitTransitionEnd",this)},openPercentage:function(a){var b=a/100;this.slideIn?(this.offCanvasLeft&&a>=0?(b=0===b?-1:0,this.updateTranslate(this.offCanvasLeftWidth*b),this.offCanvasLeft.classList[0!==a?"add":"remove"](j)):this.offCanvasRight&&a<=0&&(b=0===b?1:0,this.updateTranslate(this.offCanvasRightWidth*b),this.offCanvasRight.classList[0!==a?"add":"remove"](j)),this.classList[0!==a?"add":"remove"](j)):(this.offCanvasLeft&&a>=0?(this.updateTranslate(this.offCanvasLeftWidth*b),this.offCanvasLeft.classList[0!==b?"add":"remove"](j)):this.offCanvasRight&&a<=0&&(this.updateTranslate(this.offCanvasRightWidth*b),this.offCanvasRight.classList[0!==b?"add":"remove"](j)),this.classList[0!==b?"add":"remove"](j))},updateTranslate:function(b){if(b!==this.lastTranslateX){if(this.slideIn){if(this.offCanvas.classList.contains(f)){if(b<0)return void this.setTranslateX(0);if(b>this.offCanvasRightWidth)return void this.setTranslateX(this.offCanvasRightWidth)}else{if(b>0)return void this.setTranslateX(0);if(b<-this.offCanvasLeftWidth)return void this.setTranslateX(-this.offCanvasLeftWidth)}this.setTranslateX(b)}else{if(!this.offCanvasLeft&&b>0||!this.offCanvasRight&&b<0)return void this.setTranslateX(0);if(this.leftShowing&&b>this.offCanvasLeftWidth)return void this.setTranslateX(this.offCanvasLeftWidth);if(this.rightShowing&&b<-this.offCanvasRightWidth)return void this.setTranslateX(-this.offCanvasRightWidth);this.setTranslateX(b),b>=0?(this.leftShowing=!0,this.rightShowing=!1,b>0&&(this.offCanvasLeft&&a.each(this.offCanvasLefts,function(a,b){b===this.offCanvasLeft?this.offCanvasLeft.style.zIndex=0:b.style.zIndex=-1}.bind(this)),this.offCanvasRight&&(this.offCanvasRight.style.zIndex=-1))):(this.rightShowing=!0,this.leftShowing=!1,this.offCanvasRight&&a.each(this.offCanvasRights,function(a,b){b===this.offCanvasRight?b.style.zIndex=0:b.style.zIndex=-1}.bind(this)),this.offCanvasLeft&&(this.offCanvasLeft.style.zIndex=-1))}this.lastTranslateX=b}},setTranslateX:a.animationFrame(function(a){if(this.scroller)if(this.scalable&&this.offCanvas.parentNode===this.wrapper){var b=Math.abs(a)/this.offCanvasWidth,c=1-(1-this.options.scale)*b,d=this.options.scale+(1-this.options.scale)*b,f=(this.options.opacity,this.options.opacity+(1-this.options.opacity)*b);this.offCanvas.classList.contains(e)?(this.offCanvas.style.webkitTransformOrigin="-100%",this.scroller.style.webkitTransformOrigin="left"):(this.offCanvas.style.webkitTransformOrigin="200%",this.scroller.style.webkitTransformOrigin="right"),this.offCanvas.style.opacity=f,this.offCanvas.style.webkitTransform="translate3d(0,0,0) scale("+d+")",this.scroller.style.webkitTransform="translate3d("+a+"px,0,0) scale("+c+")"}else this.slideIn?this.offCanvas.style.webkitTransform="translate3d("+a+"px,0,0)":this.scroller.style.webkitTransform="translate3d("+a+"px,0,0)"}),getTranslateX:function(){if(this.offCanvas){var b=this.slideIn?this.offCanvas:this.scroller,c=a.parseTranslateMatrix(a.getStyles(b,"webkitTransform"));return c&&c.x||0}return 0},isShown:function(a){var b=!1;if(this.slideIn)b="left"===a?this.classList.contains(j)&&this.wrapper.querySelector("."+e+"."+j):"right"===a?this.classList.contains(j)&&this.wrapper.querySelector("."+f+"."+j):this.classList.contains(j)&&(this.wrapper.querySelector("."+e+"."+j)||this.wrapper.querySelector("."+f+"."+j));else{var c=this.getTranslateX();b="right"===a?this.classList.contains(j)&&c<0:"left"===a?this.classList.contains(j)&&c>0:this.classList.contains(j)&&0!==c}return b},close:function(){this._initOffCanvasVisible(),this.offCanvas=this.wrapper.querySelector("."+f+"."+j)||this.wrapper.querySelector("."+e+"."+j),this.offCanvasWidth=this.offCanvas.offsetWidth,this.scroller&&(this.offCanvas.offsetHeight,this.offCanvas.classList.add(k),this.scroller.classList.add(k),this.openPercentage(0))},show:function(a){return this._initOffCanvasVisible(),!this.isShown(a)&&(a||(a=this.wrapper.querySelector("."+f)?"right":"left"),"right"===a?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth),this.scroller&&(this.offCanvas.offsetHeight,this.offCanvas.classList.add(k),this.scroller.classList.add(k),this.openPercentage("left"===a?100:-100)),!0)},toggle:function(a){var b=a;a&&a.classList&&(b=a.classList.contains(e)?"left":"right",this.refresh(a)),this.show(b)||this.close()}}),n=function(a){if(parentNode=a.parentNode,parentNode){if(parentNode.classList.contains(h))return parentNode;if(parentNode=parentNode.parentNode,parentNode.classList.contains(h))return parentNode}},o=function(b,d){if("A"===d.tagName&&d.hash){var e=c.getElementById(d.hash.replace("#",""));if(e){var f=n(e);if(f)return a.targets._container=f,e}}return!1};a.registerTarget({name:d,index:60,handle:o,target:!1,isReset:!1,isContinue:!0}),b.addEventListener("tap",function(b){if(a.targets.offcanvas)for(var d=b.target;d&&d!==c;d=d.parentNode)if("A"===d.tagName&&d.hash&&d.hash==="#"+a.targets.offcanvas.id){b.detail&&b.detail.gesture&&b.detail.gesture.preventDefault(),a(a.targets._container).offCanvas().toggle(a.targets.offcanvas),a.targets.offcanvas=a.targets._container=null;break}}),a.fn.offCanvas=function(b){var c=[];return this.each(function(){var d=null,e=this;e.classList.contains(h)||(e=n(e));var f=e.getAttribute("data-offCanvas");f?d=a.data[f]:(f=++a.uuid,a.data[f]=d=new m(e,b),e.setAttribute("data-offCanvas",f)),"show"!==b&&"close"!==b&&"toggle"!==b||d.toggle(),c.push(d)}),1===c.length?c[0]:c},a.ready(function(){a(".mui-off-canvas-wrap").offCanvas()})}(mui,window,document,"offcanvas"),function(a,b){var c="mui-action",d=function(a,b){var d=b.className||"";return"string"!=typeof d&&(d=""),!(!d||!~d.indexOf(c))&&(b.classList.contains("mui-action-back")&&a.preventDefault(),b)};a.registerTarget({name:b,index:50,handle:d,target:!1,isContinue:!0})}(mui,"action"),function(a,b,c,d){var e="mui-modal",f=function(a,b){if("A"===b.tagName&&b.hash){var d=c.getElementById(b.hash.replace("#",""));if(d&&d.classList.contains(e))return d}return!1};a.registerTarget({name:d,index:50,handle:f,target:!1,isReset:!1,isContinue:!0}),b.addEventListener("tap",function(b){a.targets.modal&&(b.detail.gesture.preventDefault(),a.targets.modal.classList.toggle("mui-active"))})}(mui,window,document,"modal"),function(a,b,c,d){var e="mui-popover",f="mui-popover-arrow",g="mui-popover-action",h="mui-backdrop",i="mui-bar-popover",j="mui-bar-backdrop",k="mui-backdrop-action",l="mui-active",m="mui-bottom",n=function(b,d){if("A"===d.tagName&&d.hash){if(a.targets._popover=c.getElementById(d.hash.replace("#","")),a.targets._popover&&a.targets._popover.classList.contains(e))return d;a.targets._popover=null}return!1};a.registerTarget({name:d,index:60,handle:n,target:!1,isReset:!1,isContinue:!0});var o,p=function(b){this.removeEventListener("webkitTransitionEnd",p),this.addEventListener(a.EVENT_MOVE,a.preventDefault),a.trigger(this,"shown",this)},q=function(b){u(this,"none"),this.removeEventListener("webkitTransitionEnd",q),this.removeEventListener(a.EVENT_MOVE,a.preventDefault),a.trigger(this,"hidden",this)},r=function(){var b=c.createElement("div");return b.classList.add(h),b.addEventListener(a.EVENT_MOVE,a.preventDefault),b.addEventListener("tap",function(b){var c=a.targets._popover;c&&(c.addEventListener("webkitTransitionEnd",q),c.classList.remove(l),s(c))}),b}(),s=function(b){r.setAttribute("style","opacity:0"),a.targets.popover=a.targets._popover=null,o=a.later(function(){!b.classList.contains(l)&&r.parentNode&&r.parentNode===c.body&&c.body.removeChild(r)},350)};b.addEventListener("tap",function(b){if(a.targets.popover){for(var d=!1,e=b.target;e&&e!==c;e=e.parentNode)e===a.targets.popover&&(d=!0);d&&(b.detail.gesture.preventDefault(),t(a.targets._popover,a.targets.popover))}});var t=function(a,b,d){if(!("show"===d&&a.classList.contains(l)||"hide"===d&&!a.classList.contains(l))){o&&o.cancel(),a.removeEventListener("webkitTransitionEnd",p),a.removeEventListener("webkitTransitionEnd",q),r.classList.remove(j),r.classList.remove(k);var e=c.querySelector(".mui-popover.mui-active");if(e&&(e.addEventListener("webkitTransitionEnd",q),e.classList.remove(l),a===e))return void s(e);var f=!1;(a.classList.contains(i)||a.classList.contains(g))&&(a.classList.contains(g)?(f=!0,r.classList.add(k)):r.classList.add(j)),u(a,"block"),a.offsetHeight,a.classList.add(l),r.setAttribute("style",""),c.body.appendChild(r),v(a,b,f),r.classList.add(l),a.addEventListener("webkitTransitionEnd",p)}},u=function(a,b,c,d){var e=a.style;void 0!==b&&(e.display=b),void 0!==c&&(e.top=c+"px"),void 0!==d&&(e.left=d+"px")},v=function(d,e,h){if(d&&e){if(h)return void u(d,"block");var i=b.innerWidth,j=b.innerHeight,k=d.offsetWidth,l=d.offsetHeight,n=e.offsetWidth,o=e.offsetHeight,p=a.offset(e),q=d.querySelector("."+f);q||(q=c.createElement("div"),q.className=f,d.appendChild(q));var r=q&&q.offsetWidth/2||0,s=0,t=0,v=0,w=0,x=d.classList.contains(g)?0:5,y="top";l+ri&&(t=i-k-x),q&&("top"===y?q.classList.add(m):q.classList.remove(m),v-=t,w=k/2-r/2+v,w=Math.max(Math.min(w,k-2*r-6),6),q.setAttribute("style","left:"+w+"px"))):"middle"===y&&q.setAttribute("style","display:none"),u(d,"block",s,t)}};a.createMask=function(b){var d=c.createElement("div");d.classList.add(h),d.addEventListener(a.EVENT_MOVE,a.preventDefault),d.addEventListener("tap",function(){e.close()});var e=[d];return e._show=!1,e.show=function(){return e._show=!0,d.setAttribute("style","opacity:1"),c.body.appendChild(d),e},e._remove=function(){return e._show&&(e._show=!1,d.setAttribute("style","opacity:0"),a.later(function(){var a=c.body;d.parentNode===a&&a.removeChild(d)},350)),e},e.close=function(){b?!1!==b()&&e._remove():e._remove()},e},a.fn.popover=function(){var b=arguments;this.each(function(){a.targets._popover=this,"show"!==b[0]&&"hide"!==b[0]&&"toggle"!==b[0]||t(this,b[1],b[0])})}}(mui,window,document,"popover"),function(a,b,c,d,e){var f="mui-control-item",g="mui-segmented-control-vertical",h="mui-control-content",i="mui-tab-item",j=function(a,b){return!(!b.classList||!b.classList.contains(f)&&!b.classList.contains(i))&&(b.parentNode&&b.parentNode.classList&&b.parentNode.classList.contains(g)||a.preventDefault(),b)};a.registerTarget({name:d,index:80,handle:j,target:!1}),b.addEventListener("tap",function(b){var e=a.targets.tab;if(e){for(var g,j,k,l="mui-active",m="."+l,n=e.parentNode;n&&n!==c;n=n.parentNode){if(n.classList.contains("mui-segmented-control")){g=n.querySelector(m+"."+f);break}n.classList.contains("mui-bar-tab")&&(g=n.querySelector(m+"."+i))}g&&g.classList.remove(l);var o=e===g;if(e&&e.classList.add(l),e.hash&&(k=c.getElementById(e.hash.replace("#","")))){if(!k.classList.contains(h))return void e.classList[o?"remove":"add"](l);if(!o){var p=k.parentNode;j=p.querySelectorAll("."+h+m);for(var q=0;qthis.handleX/2||!this.initialState&&a>this.handleX/2)&&(b=!0),this.lastChanged!==b&&(b?(this.handle.style.webkitTransform="translate("+(this.initialState?0:this.handleX)+"px,0)",this.classList[this.initialState?"remove":"add"](f)):(this.handle.style.webkitTransform="translate("+(this.initialState?this.handleX:0)+"px,0)",this.classList[this.initialState?"add":"remove"](f)),this.lastChanged=b)}}),a.fn.switch=function(b){var c=[];return this.each(function(){var b=null,d=this.getAttribute("data-switch");d?b=a.data[d]:(d=++a.uuid,a.data[d]=new k(this),this.setAttribute("data-switch",d)),c.push(b)}),c.length>1?c:c[0]},a.ready(function(){a("."+d).switch()})}(mui,window,"toggle"),function(a,b,c){function d(a,b){var c=b?"removeEventListener":"addEventListener";a[c]("drag",F),a[c]("dragend",F),a[c]("swiperight",F),a[c]("swipeleft",F),a[c]("flick",F)}var e,f,g="mui-active",h="mui-selected",i="mui-grid-view",j="mui-table-view-radio",k="mui-table-view-cell",l="mui-collapse-content",m="mui-disabled",n="mui-switch",o="mui-btn",p="mui-slider-handle",q="mui-slider-left",r="mui-slider-right",s="mui-transitioning",t="."+p,u="."+q,v="."+r,w="."+h,x="."+o,y=.8,z=isOpened=openedActions=progress=!1,A=sliderActionLeft=sliderActionRight=buttonsLeft=buttonsRight=sliderDirection=sliderRequestAnimationFrame=!1,B=translateX=lastTranslateX=sliderActionLeftWidth=sliderActionRightWidth=0,C=function(a){a?f?f.classList.add(g):e&&e.classList.add(g):(B&&B.cancel(),f?f.classList.remove(g):e&&e.classList.remove(g))},D=function(){if(translateX!==lastTranslateX){if(buttonsRight&&buttonsRight.length>0){progress=translateX/sliderActionRightWidth,translateX<-sliderActionRightWidth&&(translateX=-sliderActionRightWidth-Math.pow(-translateX-sliderActionRightWidth,y));for(var a=0,b=buttonsRight.length;a0){progress=translateX/sliderActionLeftWidth,translateX>sliderActionLeftWidth&&(translateX=sliderActionLeftWidth+Math.pow(translateX-sliderActionLeftWidth,y));for(var a=0,b=buttonsLeft.length;a1&&(d.style.zIndex=buttonsLeft.length-a),E(d,translateX+buttonOffset*(1-Math.min(progress,1)))}}E(A,translateX),lastTranslateX=translateX}sliderRequestAnimationFrame=requestAnimationFrame(function(){D()})},E=function(a,b){a&&(a.style.webkitTransform="translate("+b+"px,0)")};b.addEventListener(a.EVENT_START,function(b){e&&C(!1),e=f=!1,z=isOpened=openedActions=!1;for(var g=b.target,h=!1;g&&g!==c;g=g.parentNode)if(g.classList){var p=g.classList;if(("INPUT"===g.tagName&&"radio"!==g.type&&"checkbox"!==g.type||"BUTTON"===g.tagName||p.contains(n)||p.contains(o)||p.contains(m))&&(h=!0),p.contains(l))break;if(p.contains(k)){e=g;var q=e.parentNode.querySelector(w);if(!e.parentNode.classList.contains(j)&&q&&q!==e)return a.swipeoutClose(q),void(e=h=!1);if(!e.parentNode.classList.contains(i)){var r=e.querySelector("a");r&&r.parentNode===e&&(f=r)}var s=e.querySelector(t);s&&(d(e),b.stopPropagation()),h||(s?(B&&B.cancel(),B=a.later(function(){C(!0)},100)):C(!0));break}}}),b.addEventListener(a.EVENT_MOVE,function(a){C(!1)});var F={handleEvent:function(a){switch(a.type){case"drag":this.drag(a);break;case"dragend":this.dragend(a);break;case"flick":this.flick(a);break;case"swiperight":this.swiperight(a);break;case"swipeleft":this.swipeleft(a)}},drag:function(a){if(e){z||(A=sliderActionLeft=sliderActionRight=buttonsLeft=buttonsRight=sliderDirection=sliderRequestAnimationFrame=!1,(A=e.querySelector(t))&&(sliderActionLeft=e.querySelector(u),sliderActionRight=e.querySelector(v),sliderActionLeft&&(sliderActionLeftWidth=sliderActionLeft.offsetWidth,buttonsLeft=sliderActionLeft.querySelectorAll(x)),sliderActionRight&&(sliderActionRightWidth=sliderActionRight.offsetWidth,buttonsRight=sliderActionRight.querySelectorAll(x)),e.classList.remove(s),isOpened=e.classList.contains(h),isOpened&&(openedActions=e.querySelector(u+w)?"left":"right")));var b=a.detail,c=b.direction,d=b.angle;if("left"===c&&(d>150||d<-150)?(buttonsRight||buttonsLeft&&isOpened)&&(z=!0):"right"===c&&d>-30&&d<30&&(buttonsLeft||buttonsRight&&isOpened)&&(z=!0),z){a.stopPropagation(),a.detail.gesture.preventDefault();var f=a.detail.deltaX;if(isOpened&&("right"===openedActions?f-=sliderActionRightWidth:f+=sliderActionLeftWidth),f>0&&!buttonsLeft||f<0&&!buttonsRight){if(!isOpened)return;f=0}f<0?sliderDirection="toLeft":f>0?sliderDirection="toRight":sliderDirection||(sliderDirection="toLeft"),sliderRequestAnimationFrame||D(),translateX=f}}},flick:function(a){z&&a.stopPropagation()},swipeleft:function(a){z&&a.stopPropagation()},swiperight:function(a){z&&a.stopPropagation()},dragend:function(b){if(z){b.stopPropagation(),sliderRequestAnimationFrame&&(cancelAnimationFrame(sliderRequestAnimationFrame),sliderRequestAnimationFrame=null);var c=b.detail;z=!1;var d="close",f="toLeft"===sliderDirection?sliderActionRightWidth:sliderActionLeftWidth;(c.swipe||Math.abs(translateX)>f/2)&&(isOpened?"left"===c.direction&&"right"===openedActions?d="open":"right"===c.direction&&"left"===openedActions&&(d="open"):d="open"),e.classList.add(s);var g;if("open"===d){var i="toLeft"===sliderDirection?-f:f;if(E(A,i),void 0!==(g="toLeft"===sliderDirection?buttonsRight:buttonsLeft)){for(var j=null,k=0;k0&&buttonsLeft!==g)for(var k=0,m=buttonsLeft.length;k0&&buttonsRight!==g)for(var k=0,m=buttonsRight.length;k0?d.duration:e.short:duration=e[d.duration],duration||(duration=e.short);var f=document.createElement("div");return f.classList.add("mui-toast-container"),f.innerHTML='
'+b+"
",f.addEventListener("webkitTransitionEnd",function(){f.classList.contains(c)||(f.parentNode.removeChild(f),f=null)}),f.addEventListener("click",function(){f.parentNode.removeChild(f),f=null}),document.body.appendChild(f),f.offsetHeight,f.classList.add(c),setTimeout(function(){f&&f.classList.remove(c)},duration),{isVisible:function(){return!!f}}}a.plusReady(function(){plus.nativeUI.toast(b,{verticalAlign:"bottom",duration:d.duration})})}}(mui,window),function(a,b,c){var d="mui-popup",e="mui-popup-backdrop",f="mui-popup-in",g="mui-popup-out",h="mui-popup-inner",i="mui-popup-title",j="mui-popup-text",k="mui-popup-input",l="mui-popup-buttons",m="mui-popup-button",n="mui-popup-button-bold",e="mui-popup-backdrop",o="mui-active",p=[],q=function(){var b=c.createElement("div");return b.classList.add(e),b.addEventListener(a.EVENT_MOVE,a.preventDefault),b.addEventListener("webkitTransitionEnd",function(){this.classList.contains(o)||b.parentNode&&b.parentNode.removeChild(b)}),b}(),r=function(a){return'
'},s=function(a,b,c){return'
'+b+'
'+a.replace(/\r\n/g,"
").replace(/\n/g,"
")+"
"+(c||"")+"
"},t=function(a){for(var b=a.length,c=[],d=0;d'+a[d]+"");return'
'+c.join("")+"
"},u=function(b,e){var h=c.createElement("div");h.className=d,h.innerHTML=b;var i=function(){h.parentNode&&h.parentNode.removeChild(h),h=null};h.addEventListener(a.EVENT_MOVE,a.preventDefault),h.addEventListener("webkitTransitionEnd",function(a){h&&a.target===h&&h.classList.contains(g)&&i()}),h.style.display="block",c.body.appendChild(h),h.offsetHeight,h.classList.add(f),q.classList.contains(o)||(q.style.display="block",c.body.appendChild(q),q.offsetHeight,q.classList.add(o));var j=a.qsa("."+m,h),l=h.querySelector("."+k+" input"),n={element:h,close:function(a,b){if(h){if(!1===(e&&e({index:a||0,value:l&&l.value||""})))return;!1!==b?(h.classList.remove(f),h.classList.add(g)):i(),p.pop(),p.length?p[p.length-1].show(b):q.classList.remove(o)}}},r=function(a){n.close(j.indexOf(a.target))};return a(h).on("tap","."+m,r),p.length&&p[p.length-1].hide(),p.push({close:n.close,show:function(a){h.style.display="block",h.offsetHeight,h.classList.add(f)},hide:function(){h.style.display="none",h.classList.remove(f)}}),n},v=function(b,c,d,e,f){if(void 0!==b)return"function"==typeof c?(e=c,f=d,c=null,d=null):"function"==typeof d&&(f=e,e=d,d=null),a.os.plus&&"div"!==f?plus.nativeUI.alert(b,e,c||"提示",d||"确定"):u(s(b,c||"提示")+t([d||"确定"]),e)},w=function(b,c,d,e,f){if(void 0!==b)return"function"==typeof c?(e=c,f=d,c=null,d=null):"function"==typeof d&&(f=e,e=d,d=null),a.os.plus&&"div"!==f?plus.nativeUI.confirm(b,e,c,d||["取消","确认"]):u(s(b,c||"提示")+t(d||["取消","确认"]),e)},x=function(b,c,d,e,f,g){if(void 0!==b)return"function"==typeof c?(f=c,g=d,c=null,d=null,e=null):"function"==typeof d?(f=d,g=e,d=null,e=null):"function"==typeof e&&(g=f,f=e,e=null),a.os.plus&&"div"!==g?plus.nativeUI.prompt(b,f,d||"提示",c,e||["取消","确认"]):u(s(b,d||"提示",r(c))+t(e||["取消","确认"]),f)},y=function(){return!!p.length&&(p[p.length-1].close(),!0)},z=function(){for(;p.length;)p[p.length-1].close()};a.closePopup=y,a.closePopups=z,a.alert=v,a.confirm=w,a.prompt=x}(mui,window,document),function(a,b){var c="mui-progressbar",d="mui-progressbar-in",e="mui-progressbar-out",f="mui-progressbar-infinite",g=".mui-progressbar",h=function(b){if(b=a(b||"body"),0!==b.length){if(b=b[0],b.classList.contains(c))return b;var d=b.querySelectorAll(g);if(d)for(var e=0,f=d.length;e"),h.appendChild(l))}return i&&k(h,i),l}},j=function(a){var b=h(a);if(b){var c=b.classList;c.contains(d)&&!c.contains(e)&&(c.remove(d),c.add(e),b.addEventListener("webkitAnimationEnd",function(){b.parentNode&&b.parentNode.removeChild(b),b=null}))}},k=function(a,b,c){"number"==typeof a&&(c=b,b=a,a=!1);var d=h(a);if(d&&!d.classList.contains(f)){b&&(b=Math.min(Math.max(b,0),100)),d.offsetHeight;var e=d.querySelector("span");if(e){var g=e.style;g.webkitTransform="translate3d("+(-100+b)+"%,0,0)",g.webkitTransitionDuration=void 0!==c?c+"ms":""}return d}};a.fn.progressbar=function(a){var b=[];return a=a||{},this.each(function(){var c=this,d=c.mui_plugin_progressbar;d?a&&d.setOptions(a):c.mui_plugin_progressbar=d={options:a,setOptions:function(a){this.options=a},show:function(){return i(c,this.options.progress,this.options.color)},setProgress:function(a){return k(c,a)},hide:function(){return j(c)}},b.push(d)}),1===b.length?b[0]:b}}(mui,document),function(a,b,c){var d="mui-icon",e="mui-icon-clear",f="mui-icon-speech",g="mui-icon-eye",h="mui-input-row",i="mui-placeholder",j="mui-tooltip",k="mui-hidden",l="mui-focusin",m="."+e,n="."+f,o="."+g,p="."+i,q="."+j,r=function(a){for(;a&&a!==c;a=a.parentNode)if(a.classList&&a.classList.contains(h))return a;return null},s=function(a,b){this.element=a,this.options=b||{actions:"clear"},~this.options.actions.indexOf("slider")?(this.sliderActionClass=j+" "+k,this.sliderActionSelector=q):(~this.options.actions.indexOf("clear")&&(this.clearActionClass=d+" "+e+" "+k,this.clearActionSelector=m),~this.options.actions.indexOf("speech")&&(this.speechActionClass=d+" "+f,this.speechActionSelector=n),~this.options.actions.indexOf("search")&&(this.searchActionClass=i,this.searchActionSelector=p),~this.options.actions.indexOf("password")&&(this.passwordActionClass=d+" "+g,this.passwordActionSelector=o)),this.init()};s.prototype.init=function(){this.initAction(),this.initElementEvent()},s.prototype.initAction=function(){var b=this,c=b.element.parentNode;c&&(b.sliderActionClass?b.sliderAction=b.createAction(c,b.sliderActionClass,b.sliderActionSelector):(b.searchActionClass&&(b.searchAction=b.createAction(c,b.searchActionClass,b.searchActionSelector),b.searchAction.addEventListener("tap",function(c){a.focus(b.element),c.stopPropagation()})),b.speechActionClass&&(b.speechAction=b.createAction(c,b.speechActionClass,b.speechActionSelector),b.speechAction.addEventListener("click",a.stopPropagation),b.speechAction.addEventListener("tap",function(a){b.speechActionClick(a)})),b.clearActionClass&&(b.clearAction=b.createAction(c,b.clearActionClass,b.clearActionSelector),b.clearAction.addEventListener("tap",function(a){b.clearActionClick(a)})),b.passwordActionClass&&(b.passwordAction=b.createAction(c,b.passwordActionClass,b.passwordActionSelector),b.passwordAction.addEventListener("tap",function(a){b.passwordActionClick(a)}))))},s.prototype.createAction=function(a,b,e){var f=a.querySelector(e);if(!f){var f=c.createElement("span");f.className=b,b===this.searchActionClass&&(f.innerHTML=''+this.element.getAttribute("placeholder")+"",this.element.setAttribute("placeholder",""),this.element.value.trim()&&a.classList.add("mui-active")),a.insertBefore(f,this.element.nextSibling)}return f},s.prototype.initElementEvent=function(){var b=this.element;if(this.sliderActionClass){var c=this.sliderAction,d=null,e=function(){c.classList.remove(k);var a=b.offsetLeft,e=b.offsetWidth-28,f=c.offsetWidth,g=Math.abs(b.max-b.min),h=e/g*Math.abs(b.value-b.min);c.style.left=14+a+h-f/2+"px",c.innerText=b.value,d&&clearTimeout(d),d=setTimeout(function(){c.classList.add(k)},1e3)};b.addEventListener("input",e),b.addEventListener("tap",e),b.addEventListener(a.EVENT_MOVE,function(a){a.stopPropagation()})}else{if(this.clearActionClass){var f=this.clearAction;if(!f)return;a.each(["keyup","change","input","focus","cut","paste"],function(a,c){!function(a){b.addEventListener(a,function(){f.classList[b.value.trim()?"remove":"add"](k)})}(c)}),b.addEventListener("blur",function(){f.classList.add(k)})}this.searchActionClass&&(b.addEventListener("focus",function(){b.parentNode.classList.add("mui-active")}),b.addEventListener("blur",function(){b.value.trim()||b.parentNode.classList.remove("mui-active")}))}},s.prototype.setPlaceholder=function(a){if(this.searchActionClass){var b=this.element.parentNode.querySelector(p);b&&(b.getElementsByTagName("span")[1].innerText=a)}else this.element.setAttribute("placeholder",a)},s.prototype.passwordActionClick=function(a){"text"===this.element.type?this.element.type="password":this.element.type="text",this.passwordAction.classList.toggle("mui-active"),a.preventDefault()},s.prototype.clearActionClick=function(b){var c=this;c.element.value="",a.focus(c.element),c.clearAction.classList.add(k),b.preventDefault()},s.prototype.speechActionClick=function(d){if(b.plus){var e=this,f=e.element.value;e.element.value="",c.body.classList.add(l),plus.speech.startRecognize({engine:"iFly"},function(b){e.element.value+=b,a.focus(e.element),plus.speech.stopRecognize(),a.trigger(e.element,"recognized",{value:e.element.value}),f!==e.element.value&&(a.trigger(e.element,"change"),a.trigger(e.element,"input"))},function(a){c.body.classList.remove(l)})}else alert("only for 5+");d.preventDefault()},a.fn.input=function(b){var c=[];return this.each(function(){var b=null,d=[],e=r(this.parentNode);if("range"===this.type&&e.classList.contains("mui-input-range"))d.push("slider");else{var f=this.classList;f.contains("mui-input-clear")&&d.push("clear"),a.os.android&&a.os.stream||!f.contains("mui-input-speech")||d.push("speech"),f.contains("mui-input-password")&&d.push("password"),"search"===this.type&&e.classList.contains("mui-search")&&d.push("search")}var g=this.getAttribute("data-input-"+d[0]);if(g)b=a.data[g];else{g=++a.uuid,b=a.data[g]=new s(this,{actions:d.join(",")});for(var h=0,i=d.length;hthis._A?this.element.classList.add(c):this.element.classList.remove(c),this.lastOpacity!==f&&(a.trigger(this.element,"alpha",{alpha:f}),this.lastOpacity=f)},f.prototype.destory=function(){this.scrollByElem.removeEventListener("scroll",this._bufferFn),this.scrollByElem.removeEventListener(a.EVENT_MOVE,this._bufferFn),this.element.style.backgroundColor=this._bgColor,this.element.mui_plugin_transparent=null},a.fn.transparent=function(a){a=a||{};var c=[];return this.each(function(){var d=this.mui_plugin_transparent;if(!d){var e=this.getAttribute("data-top"),g=this.getAttribute("data-offset"),h=this.getAttribute("data-duration"),i=this.getAttribute("data-scrollby");null!==e&&void 0===a.top&&(a.top=e),null!==g&&void 0===a.offset&&(a.offset=g),null!==h&&void 0===a.duration&&(a.duration=h),null!==i&&void 0===a.scrollby&&(a.scrollby=document.querySelector(i)||b),d=this.mui_plugin_transparent=new f(this,a)}c.push(d)}),1===c.length?c[0]:c},a.ready(function(){a(".mui-bar-transparent").transparent()})}(mui,window),function(a){var b="ontouchstart"in document,c=b?"tap":"click",d="change",e=".mui-btn-numbox-plus,.mui-numbox-btn-plus",f=".mui-btn-numbox-minus,.mui-numbox-btn-minus",g=".mui-input-numbox,.mui-numbox-input",h=a.Numbox=a.Class.extend({init:function(b,c){var d=this;if(!b)throw"构造 numbox 时缺少容器元素";d.holder=b,c=c||{},c.step=parseInt(c.step||1),d.options=c,d.input=a.qsa(g,d.holder)[0],d.plus=a.qsa(e,d.holder)[0],d.minus=a.qsa(f,d.holder)[0],d.checkValue(),d.initEvent()},initEvent:function(){var b=this;b.plus.addEventListener(c,function(c){var e=parseInt(b.input.value)+b.options.step;b.input.value=e.toString(),a.trigger(b.input,d,null)}),b.minus.addEventListener(c,function(c){var e=parseInt(b.input.value)-b.options.step;b.input.value=e.toString(),a.trigger(b.input,d,null)}),b.input.addEventListener(d,function(c){b.checkValue();var e=parseInt(b.input.value);a.trigger(b.holder,d,{value:e})})},getValue:function(){var a=this;return parseInt(a.input.value)},checkValue:function(){var a=this,b=a.input.value;if(null==b||""==b||isNaN(b))a.input.value=a.options.min||0,a.minus.disabled=null!=a.options.min;else{var b=parseInt(b);null!=a.options.max&&!isNaN(a.options.max)&&b>=parseInt(a.options.max)?(b=a.options.max,a.plus.disabled=!0):a.plus.disabled=!1,null!=a.options.min&&!isNaN(a.options.min)&&b<=parseInt(a.options.min)?(b=a.options.min,a.minus.disabled=!0):a.minus.disabled=!1,a.input.value=b}},setOption:function(a,b){this.options[a]=b},setValue:function(a){this.input.value=a,this.checkValue()}});a.fn.numbox=function(a){return this.each(function(a,b){if(!b.numbox)if(d)b.numbox=new h(b,d);else{var c=b.getAttribute("data-numbox-options"),d=c?JSON.parse(c):{};d.step=b.getAttribute("data-numbox-step")||d.step,d.min=b.getAttribute("data-numbox-min")||d.min,d.max=b.getAttribute("data-numbox-max")||d.max,b.numbox=new h(b,d)}}),this[0]?this[0].numbox:null},a.ready(function(){a(".mui-numbox").numbox()})}(mui),function(a,b,c){var d="mui-disabled",e="reset",f="loading",g={loadingText:"Loading...",loadingIcon:"mui-spinner mui-spinner-white",loadingIconPosition:"left"},h=function(b,c){this.element=b,this.options=a.extend({},g,c),this.options.loadingText||(this.options.loadingText=g.loadingText),null===this.options.loadingIcon&&(this.options.loadingIcon="mui-spinner","rgb(255, 255, 255)"===a.getStyles(this.element,"color")&&(this.options.loadingIcon+=" mui-spinner-white")),this.isInput="INPUT"===this.element.tagName,this.resetHTML=this.isInput?this.element.value:this.element.innerHTML,this.state=""};h.prototype.loading=function(){this.setState(f)},h.prototype.reset=function(){this.setState(e)},h.prototype.setState=function(a){if(this.state===a)return!1;if(this.state=a,a===e)this.element.disabled=!1,this.element.classList.remove(d),this.setHtml(this.resetHTML);else if(a===f){this.element.disabled=!0,this.element.classList.add(d);var b=this.isInput?this.options.loadingText:""+this.options.loadingText+"";this.options.loadingIcon&&!this.isInput&&("right"===this.options.loadingIconPosition?b+=' ':b=' '+b),this.setHtml(b)}},h.prototype.setHtml=function(a){this.isInput?this.element.value=a:this.element.innerHTML=a},a.fn.button=function(a){var b=[];return this.each(function(){var c=this.mui_plugin_button;if(!c){var d=this.getAttribute("data-loading-text"),g=this.getAttribute("data-loading-icon"),i=this.getAttribute("data-loading-icon-position");this.mui_plugin_button=c=new h(this,{loadingText:d,loadingIcon:g,loadingIconPosition:i})}a!==f&&a!==e||c.setState(a),b.push(c)}),1===b.length?b[0]:b}}(mui,window,document); \ No newline at end of file diff --git a/js/util.js b/js/util.js new file mode 100644 index 0000000..ef5f577 --- /dev/null +++ b/js/util.js @@ -0,0 +1,107 @@ +var util = { + options: { + ACTIVE_COLOR: "#007aff", + NORMAL_COLOR: "#000", + subpages: ["html/tab-webview-subpage-chat.html", "html/tab-webview-subpage-contact.html"] + }, + /** + * 简单封装了绘制原生view控件的方法 + * 绘制内容支持font(文本,字体图标),图片img , 矩形区域rect + */ + drawNative: function(id, styles, tags) { + var view = new plus.nativeObj.View(id, styles, tags); + return view; + }, + /** + * 初始化首个tab窗口 和 创建子webview窗口 + */ + initSubpage: function(aniShow) { + var subpage_style = { + top: 0, + bottom: 51 + }, + subpages = util.options.subpages, + self = plus.webview.currentWebview(), + temp = {}; + + //兼容安卓上添加titleNView 和 设置沉浸式模式会遮盖子webview内容 + if(mui.os.android) { + if(plus.navigator.isImmersedStatusbar()) { + subpage_style.top += plus.navigator.getStatusbarHeight(); + } + if(self.getTitleNView()) { + subpage_style.top += 40; + } + + } + + // 初始化第一个tab项为首次显示 + temp[self.id] = "true"; + mui.extend(aniShow, temp); + // 初始化绘制首个tab按钮 + util.toggleNview(0); + + for(var i = 0, len = subpages.length; i < len; i++) { + + if(!plus.webview.getWebviewById(subpages[i])) { + var sub = plus.webview.create(subpages[i], subpages[i], subpage_style); + // append到当前父webview + self.append(sub); + // 初始化隐藏 + sub.hide(); + } + } + }, + /** + * 点击切换tab窗口 + */ + changeSubpage: function(targetPage, activePage, aniShow) { + //若为iOS平台或非首次显示,则直接显示 + if(mui.os.ios || aniShow[targetPage]) { + plus.webview.show(targetPage); + } else { + //否则,使用fade-in动画,且保存变量 + var temp = {}; + temp[targetPage] = "true"; + mui.extend(aniShow, temp); + plus.webview.show(targetPage, "fade-in", 300); + } + //隐藏当前 除了第一个父窗口 + if(activePage !== plus.webview.getLaunchWebview()) { + plus.webview.hide(activePage); + } + }, + /** + * 点击重绘底部tab (view控件) + */ + toggleNview: function(currIndex) { + currIndex = currIndex * 2; + // 重绘当前tag 包括icon和text,所以执行两个重绘操作 + util.updateSubNView(currIndex, util.options.ACTIVE_COLOR); + util.updateSubNView(currIndex + 1, util.options.ACTIVE_COLOR); + // 重绘兄弟tag 反之排除当前点击的icon和text + for(var i = 0; i < 8; i++) { + if(i !== currIndex && i !== currIndex + 1) { + util.updateSubNView(i, util.options.NORMAL_COLOR); + } + } + }, + /* + * 改变颜色 + */ + changeColor: function(obj, color) { + obj.color = color; + return obj; + }, + /* + * 利用 plus.nativeObj.View 提供的 drawText 方法更新 view 控件 + */ + updateSubNView: function(currIndex, color) { + var self = plus.webview.currentWebview(), + nviewEvent = plus.nativeObj.View.getViewById("tabBar"), // 获取nview控件对象 + nviewObj = self.getStyle().subNViews[0], // 获取nview对象的属性 + currTag = nviewObj.tags[currIndex]; // 获取当前需重绘的tag + + nviewEvent.drawText(currTag.text, currTag.position, util.changeColor(currTag.textStyles, color), currTag.id); + } +}; \ No newline at end of file diff --git a/manifest.json b/manifest.json new file mode 100644 index 0000000..e0c9fe2 --- /dev/null +++ b/manifest.json @@ -0,0 +1,200 @@ +{ + "@platforms" : [ "android", "iPhone", "iPad" ], + "id" : "H5F1E04DB", + /*应用的标识,创建应用时自动生成,勿手动修改*/ + "name" : "Qlik", + /*应用名称,程序桌面图标名称*/ + "version" : { + "name" : "1.0", + /*应用版本名称*/ + "code" : "" + }, + "description" : "nativeObj模式底部选项卡 + 底部悬浮大球图标 + webview模式子窗口官方示例", + /*应用描述信息*/ + "icons" : { + "72" : "icon.png" + }, + "launch_path" : "https://task.qlik-tr.com/#/", + /*应用的入口页面,默认为根目录下的index.html;支持网络地址,必须以http://或https://开头*/ + "developer" : { + "name" : "", + /*开发者名称*/ + "email" : "", + /*开发者邮箱地址*/ + "url" : "" + }, + "permissions" : {}, + "plus" : { + "launchwebview" : { + "bottom" : "0px", + "background" : "#fff" + }, + "splashscreen" : { + "alwaysShowBeforeRender" : false, + "autoclose" : true, + /*是否自动关闭程序启动界面,true表示应用加载应用入口页面后自动关闭;false则需调plus.navigator.closeSplashscreen()关闭*/ + "waiting" : true, + "delay" : "" + }, + "popGesture" : "close", + /*设置应用默认侧滑返回关闭Webview窗口,"none"为无侧滑返回功能,"hide"为侧滑隐藏Webview窗口。参考http://ask.dcloud.net.cn/article/102*/ + "runmode" : "normal", + /*应用的首次启动运行模式,可取liberate或normal,liberate模式在第一次启动时将解压应用资源(Android平台File API才可正常访问_www目录)*/ + "signature" : "Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==", + /*可选,保留给应用签名,暂不使用*/ + "distribute" : { + "apple" : { + "appid" : "", + /*iOS应用标识,苹果开发网站申请的appid,如io.dcloud.HelloH5*/ + "mobileprovision" : "", + /*iOS应用打包配置文件*/ + "password" : "", + /*iOS应用打包个人证书导入密码*/ + "p12" : "", + /*iOS应用打包个人证书,打包配置文件关联的个人证书*/ + "devices" : "universal", + /*iOS应用支持的设备类型,可取值iphone/ipad/universal*/ + "frameworks" : [], + "idfa" : false + }, + "google" : { + "packagename" : "", + /*Android应用包名,如io.dcloud.HelloH5*/ + "keystore" : "", + /*Android应用打包使用的密钥库文件*/ + "password" : "", + /*Android应用打包使用密钥库中证书的密码*/ + "aliasname" : "", + /*Android应用打包使用密钥库中证书的别名*/ + "permissions" : [ + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + "abiFilters" : [ "arm64-v8a", "x86" ] + }, + "orientation" : [ "portrait-primary" ], + /*应用支持的方向,portrait-primary:竖屏正方向;portrait-secondary:竖屏反方向;landscape-primary:横屏正方向;landscape-secondary:横屏反方向*/ + "icons" : { + "ios" : { + "iphone" : { + "app@2x" : "unpackage/res/icons/120x120.png", + "app@3x" : "unpackage/res/icons/180x180.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "notification@3x" : "unpackage/res/icons/60x60.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "settings@3x" : "unpackage/res/icons/87x87.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png", + "spotlight@3x" : "unpackage/res/icons/120x120.png" + }, + "ipad" : { + "app" : "unpackage/res/icons/76x76.png", + "app@2x" : "unpackage/res/icons/152x152.png", + "notification" : "unpackage/res/icons/20x20.png", + "notification@2x" : "unpackage/res/icons/40x40.png", + "proapp@2x" : "unpackage/res/icons/167x167.png", + "settings" : "unpackage/res/icons/29x29.png", + "settings@2x" : "unpackage/res/icons/58x58.png", + "spotlight" : "unpackage/res/icons/40x40.png", + "spotlight@2x" : "unpackage/res/icons/80x80.png" + }, + "appstore" : "unpackage/res/icons/1024x1024.png" + }, + "android" : { + "hdpi" : "D:/GPT浏览器下载/image.9/res/drawable-hdpi/image.9.png", + "xhdpi" : "D:/GPT浏览器下载/image.9/res/drawable-xhdpi/image.9.png", + "xxhdpi" : "D:/GPT浏览器下载/image.9/res/drawable-xxhdpi/image.9.png", + "xxxhdpi" : "D:/GPT浏览器下载/image.9/res/drawable-xxxhdpi/image.9.png" + } + }, + "splashscreen" : { + "ios" : { + "iphone" : {}, + "ipad" : {} + }, + "android" : { + "xhdpi" : "D:/downloads/_2025-06-22 151821.png", + "xxhdpi" : "D:/downloads/_2025-06-22 151821.png", + "hdpi" : "D:/downloads/_2025-06-22 151821.png" + }, + "androidStyle" : "default", + "useOriginalMsgbox" : false, + "iosStyle" : "common" + }, + "ios" : { + "dSYMs" : false + } + } + }, + "dependencies" : { + "pages" : { + "index.html" : { + "resources" : [ + "js/mui.min.js", + "css/mui.min.css", + "html/tab-webview-subpage-about.html", + "fonts/mui.ttf", + "fonts/iconfont.ttf", + "html/tab-webview-subpage-chat.html", + "js/util.js" + ], + "refer" : [ "html/tab-webview-subpage-contact.html", "html/new-webview.html" ], + "priority" : 0 + }, + "launch.html" : { + "resources" : [ + "js/mui.min.js", + "css/mui.min.css", + "html/tab-webview-subpage-about.html" + ], + "refer" : [ + "html/tab-webview-subpage-setting.html", + "html/tab-webview-subpage-chat.html", + "html/tab-webview-subpage-contact.html" + ], + "priority" : 0 + }, + "html/tab-webview-subpage-setting.html" : { + "resources" : [ "fonts/mui.ttf", "css/mui.min.css", "js/mui.min.js" ], + "refer" : [], + "priority" : 0 + }, + "html/tab-webview-subpage-about.html" : { + "resources" : [ "css/mui.min.css", "js/mui.min.js", "js/util.js" ], + "refer" : [], + "priority" : 0 + }, + "html/tab-webview-subpage-chat.html" : { + "resources" : [ "fonts/mui.ttf", "js/mui.min.js", "css/mui.min.css" ], + "refer" : [], + "priority" : 0 + }, + "html/tab-webview-subpage-contact.html" : { + "resources" : [ "images/60x60.gif", "js/mui.min.js", "css/mui.min.css" ], + "refer" : [], + "priority" : 0 + }, + "html/new-webview.html" : { + "resources" : [ "css/mui.min.css", "js/mui.min.js", "fonts/mui.ttf" ], + "refer" : [], + "priority" : 0 + } + }, + "idle" : { + "resources" : [ "js/mui.js", "css/mui.css" ] + } + }, + "screenOrientation" : [ "portrait-primary" ] +} diff --git a/unpackage/cache/wgt/H5F1E04DB/.manifest/google-keystore.keystore b/unpackage/cache/wgt/H5F1E04DB/.manifest/google-keystore.keystore new file mode 100644 index 0000000000000000000000000000000000000000..6a9be67fdc01fe4ae1836ac153c799e9367d8a02 GIT binary patch literal 2214 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 Hlc4_rIY>J( literal 0 HcmV?d00001 diff --git a/unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-xxxhdpi.png b/unpackage/cache/wgt/H5F1E04DB/.manifest/icon-android-xxxhdpi.png new file mode 100644 index 0000000000000000000000000000000000000000..5101c445f4875a02e1be59e101cd94319279f9eb GIT binary patch literal 9878 zcmcI~WmB9@)Aor3m&Gjvha|YWlK?>j!QGZ1n}y)ISda?|7Th67a9i9765QQk@x>wd zoBRC_&xf9)YHF&hy1J*Qr~8P|R9D2up~e9K0AE>2LF*rO{!g$l{;gWej+p-d+eyj5 z1pv61{wFA&Kc(IOZBn_u(|6T|f?YiCZ$t(tDe*tjxO6>Q}-uXnw%fG7ek8!Q6dF$tr#nIfU+PwmPnh!j(_~d&{T^KB4R0 z5lZLok68NooH%^<$@TGWA}}ty2esQFQ+>#<%fCn3)w#;)T!&&c9JKpn3cVEeMjO%} z0BW4z*`ue|HO0P=zPLZoudeVLS1RPoST^k%RTddEC7#SjKM*fvdzgCr_p!(Bg|QK7 z5)zqMbiVG_M+H5vs)fZ0My@^MT3OjjH8yM@tcjqHep9|1vk}CAv^n?;iD){zAHv0) zp{^&92=z&%aVx=d|BS~7=D~J}O%VK^MD;hzDHfe_lJ#W;rQ#-XJ{F!`$ZEq$wd{62 z`{{$5;p84m2yp;iV5;5iXva^|q%zu%$6{`3ZOE6S-Jj9O;kEpNqt7Jf6Z1FqgaMtd zUv%i94((SV^N1LN2(egDS`7!g-|4gI%sv95uw7k2QBJ`EPy{rMKP}Fk;7fd}bur8| z6BGa5Ue%A=SM@wup9MM+-%slFsS@~B<}XEe_Tp&x@n^ueRs+6Jq`gEo(ar+ zCg;Q4{{2DJf4r)U8O-4kfYK0LC@>(Efs!Z0yesN8Cqltc6(N0ZV|wMiCZtDB6z7PP z!l3E87fMg*-iqw$n6I|(wHph>JZ$pElCcostu2BNr$2AtkwM_;c8NJn4U>N$%uVPFokU& z#QE?E>^i0w>Yh}A8!^se}C0claqdJUmKU33Q;>X=xyGDZnMN@PdQYz^fXcO?O=lPa1etk z850m1@EIXxh#Q>RiH;@IIZhukz4Xn4n=(c8I#>3Xm7>0ebv`z$@K{I zP}2uLSZ*ZH|BWOD24yTd$d!QTqawG;aJrA%?%`V0_p#P(-Cz~O$jM5Jz;;{DZGy@H zfz+T3MdzvMEZ^Rw7v5<(hKLUvCkl#2OE{7)YOwh>VrVM#=nH~C=uL8O`m^I)O9>4j z=hLI|ent>3)H< z?m&2K_;R*zx0xc-@YYATr7wXrje!{*tNfw#KDuP*ha-i>XznrVNcyzPpO<-wiwLA% zPPL#1Ch9l427cSkYi;)3eaAXBa%(JXOBCa@-8Q;FS-i=syYNbajvFUsHRruIt5-|R z2Zk%llDN#}U#W-3#^%)P@4XLJr`~aY@YD()Vam2MUU=K_HUG?jBF^i5sJVMXBT)zudK5$ zkh+=7U6hBUw>aod*}v~=4Z`d@lFqq?fZ=UrVyb9|L#y543j?v-%}c;_VVc!{eoWK!%N33xv|HW zJOFf|umQ}9k;07b3bDPNji7@Xo(k}X33@4_Dn#l9x3`>m9OJ0qJ{3D4IpU>YKM-*a zV3~lfPnZZ0s9;XzU4l@E&isHW1u{H99`~EtJOI)^aH8Ux_OaiXEzM29<3-;@$tB_s zXR*_giN~jJ+wUNa^Mc9&)kcou)$WTO9hof&sn7G&54eVP00);bsQsY#e#~oND!U*W z3!^j7;QMua2z#RCP>(#Lkm6FjdzgdsA^)PQ^aNMM&}uWYb2IndlX=s~Jf7of6k0c# z&(W~Q!mIpdmFO}$-J&^sCuLi)gjc!B(fR^w*Q4|(3|FUDiqiMl+XL4vDPGDd6hY*r zFD${{M^g^qnSozTy;%I5G_As|D0jLDNQpC?)~pv3^^(%a(XK527_)ihKa^PkQL-Q8sV)ZRt0tBOP;U41X0b9p*{e?Gv zo*$BX{b|tFoYp^Aqw?GgrFtpayFbzn?=OE6^PlaiLWwn>oF~YLAXGL&c9bP zOAoCe3(O$GZR~_QJf2_1FZN719B4dF$0G4q$pM+^=_M&d46k2%WBDAk@_Tf2`RC0( z&ir>corgx?BBTf$VfDRuY@#5ibM5qeVL>ClFSjaN8T;_EGRqF_iBIT0hB2>jEdvHW zT$!e2F*7zZ^!Z!i-Pla5FD_j(4tpB3Z+(^LZ5l@7?*SPz&}f)0*Nh|ykmIU@HD2yh zly2|)$jGH!f^*}FRd7d4-QMjwkKrSoR(_eEmUGTOs&CHy&Q@iwl)jF| ztRbo97Q#g{t?iJZ?*ge}P35USFyCxA`^8_tF^Wq9CO6U7Z^ypSx=j21^|Pd!ASE~$ zCRQD;h6~-_!D)DlU^j1`@!-Ix;hc9yrUMV~%g9tNgIn!4BD2%s%IF`M`eFfxaX~^` z#p}n*uH0H%O-=`=K`T2e4qP2u3rF+* zn5feQETm3>$LVCxSx&<`mx-8rD3q>W;;THPtvgA%vAYOvW=x>|4}Xr9vKne43Ul6> zgh0gF5d`m703MA(28T{{c}7U}HdG>u2^ zx99DzIPjipYuJ{!R_EG*7xM%+>`K8M6mDpW6dA!%xCZRXxXW4^2-t@eMZWg=roC4P zpgjc`XG9N3-LG;uR7I;v=tB=eDfNIlF4D;ai4G=xwf;JWi5xtBFfXW_UN%w5PethGYn_&(9`F!^N5JMS9CKwHsqJf=xN|z!>A8qgLOf) zLnpQfa^8vnaz)B9S5_pzzQ+GfSVb@}6 zHiN8I@U$yIQOYEH%d!~66;UTRTMzhNPW%yi_l^cLqoVkw`JOko-5%}oD~*>Z7W9ls zHLKtTJqJ0`rI!qAzZKq5Tp!H%t<=w%`gDF^;E*tl{ku9V{Zy^1yQYMf{^PCnTHyyJ z6!OVN#^c2>=-$P6HirX!0D2oBadvhkoIR_~RYy~%T*GySzK;9mOD9H{t$vtYMeGN;u(vb!rk>liB?gXg`*b9xEWEzzx-8S-&{WJJI1u{WoGx!V*yb?b-z(cQ+%%!$i<-EnMo+08^G_|h^P_tDHN5z5^ zO|&e#eO8*??pH>H*OvEkbT0H()?l!m20C8r5A^6VK^9hOrc(}x>5o)X(p9Y}k=XVq zo)*6$Z3HuP9P~~>c1NA$A#A&~?)Ml1b@(chPDanR73$H*#?o9taxyZ}Bn|_y!}Z+Y z4rj4LVrQb-$9GqWV>_A7A}>el>ZbKD313}q?@i>>_-_3f-Yg*#UN%FDJxK(=T#XU> zmAzKF)|$OB>g@OI{G3Ap#dCirr%4y2F-@Be@NKHm>FA&5Q5L@5M-S;X6>i*`W~1i+ zdvS3g&Sm`fhV0#%pYYgznF^|m!fXm#c6k^USA+ONXO}#oZ>#57p`NK1#EI!3F@JH) zQ+{4931ogtl))gwQCxN>vud%sLF(Ypkd;Fg@VlQPWG+F9nuA04FD~fNJbqcU;$+ey zll8eYSEudae8}s?ix-C)nPQ?*s;J=Plk)Vp?4`AE$Avn}(TrVNp-;gA1&0L(m*Y{= zfGe?W!l{AaM}7e9N7kQh2&QgSP4Q#^Q61{(%5|kTwH!g+y6PRwd>+KIX&-8B_RPlk zRk$Fg=>qX+eF#5R$#AFNk3mQd#UYzcR&Fk(g>~D1S@MmopZr0JFm$yy z^W7S!Yt!Sn&WZ=JpTY^A#<^`GIq?cHOH-sof z4&MpI4BZ6!g6z@WYvRcG`?u?IUlD<)Egk&SC_|JKGN@uDH-3i}5c@q|&AE6WmzxH* zu0sSp$f>~O_k=G!557r1?q7!{W(ztZud#ZcaCuVDcu3V-V)|*z7m}>Jev=a?qG}Q~ zh)&91HMQUNYGHk*n{tE9rDQ;!$XBW?&1 zEQ~!UOW6^Sda0{`pMJsp?G4ubnkww|DLJG8TKUY1JZu?)Ce>Kr&}hM}nmXB&+rz$r z;mfoB$n4UxvI9qx?`65|?NVPAC$5EYaB$=vIhWeDE+q-(aagd2)CwbBsEdCmsH)S7 z#QuO%ypym(=>(8BIr9KQ+F^YmtaQVJl-0v)Z^=3IdFl%4E_KoOSCqZH46-XbOogY` zzD{|ox`@~9-Mjz+`OI?V{>?*F2$7*ucz6yeKq)}VOfO@u;`(g5%hi=ZoYgKC6#wDj z?HI@P(ZX|LE)5*9dh-lYKnIVX#cy?Ry?(89+2ETPexFFG6FA;5Bf_q&p?C73rqwjR3@P&0bzp*2Y0&G?(@wdALy$3wGcv9i28iQ=0YKvP>g{gYlH{yoZGR89BOrk3#Xs{3_H_mxsI5N z%CZ5rZ-*d`x3W{8&K8u6b}Nyvk+dtOgTur8@?(v4bFi4P?_Yb^&~MRAdr&}UK3>kK zb}Drl!(p&Gz{q5I-*s?khLO_w#v;|9&9}5z!tdu#KReWndO`neJuwlnS15l|_W2!u ztW`Cg>&|4>6~JXcuBhvl8b10E=}r6$8Y1fBo2NCM-2+-BrUn^Jv)uzYWC@N1`}5M6 zzbHuN2j0bi^^9{sSFzg*Xx?BB2|$YsDBvY4t1jHXe|Xa~oVK(zTGh&r5)!`twI$Ev zXnvxvBfi!m4DCpVQh$yiRHd@ELMjql4CORuH0lh>fQTy0m5+zbqO$8%LbpHakB)J|$90`?s<&_fF*1&g7^JMvlH;M{cBtjjuwrT0(vEx?qVFZ%LW+e-;rZB)Fjwar# zh@J=;UY7&!{GU&GaxfW5UI!O%55MXtSMBNUp1mhFXdso7lb^k%nGq{{*3d>dzd)|{ z(*wkD*Pafg^|All*$FKwr0e%7p2D~FfaR0A9?e^%vZhH>%>R}H`dNDYkkBUnPm2WW z3M$an1qlr-hIaf}z~Eol(r)=Q0vl^6NJXB8Jd9r}Gomxa*F)m_qv9vaRJ61!>zxK_ z-=IHmu$`yzn>PQ`c;Mv5ryeF3HzxtWC_P(?Uu@cRiCs}+#q6C@0e3@#qEw}Lr#=@x z|FwO&j*8%jf$+#kKPG)!9=i5aaUmghWm8kr5^0;%RO8}fi+a6Q;Y1c&mMgn+ff@>x zaqLckG%(iW!L6gW7CX;cDNQK6!*fUprb75qQD50w2i9Y8%~|N2!p{wWG!7 z6bvT?dIj-6L~UzWhrXyDT)PCJ5f-mLnZ)I<@`BD$Ax4W=7Hx27Hn>g;MQ&$pFf zj!Lw)87*wp2s;NabSWT6aDg@Nm?BBfkwNwipl2hwUSrpq1`7Xd6IHXgl{tHSdxQv0 zggu<~XRF$!pA)5-U{NZ_II13bFexHdmh%+}JMxXk%*3R(qe>6R2c^V6vj@d`apR{F z*++gwz{iZ{{(eAH)cn^d4zZue{xG>>?M8vkGXPrpUY_dp>pBsp&IE)HNNyaIeo?kd zSZ?K~;m^xwyg}^Xr;E5B&0~nJBz^7Tk-yjmMFR5e?u<^n1`-u zBI?ls>XWP5KdFRewunQe?j|&7;;k(QVi{)UOoVTnr|YI!&9GaSUd2R4E=gJThEF80 zX?)R?DShC)NU(4EDiqw~Cp9*^@cfwvO9@Bgxr)iHtRZLd{})1?I@~(E6MFOxoWbE# z@c@HCnRwm#b+D~F9I7OVhDlIHEq?c>B$J;X2CcRGvgR+L*=;^M1X9RIOS(JR=wTzs z=Ck<_JRLc#YNUb-4w6J0yi42y_OWC=Ave=cbVf!ESO2U4WTGVfS@aFr0R<2!fIh>S z4%%Tkw$yQcW7?@`YMS-*cdNsnqXGI{nxAiV&Cr=emz$ewW6}a%liW>RTjBBgY8tE) z2{XDFdQ#8dG!4b-ycg!?PGFjZ?-rWwH|YK<`Bx?n#I!n+bs@7UBI$UPj@~Z0I&>i) z2BS-MZKczj&O@_RNA@!o&LU2$s-_$#_hveU55!I3>qy zZ{Zz^N0POV$?+mDVrOj!nXqNHu0I-_2n#%Z(k8y_`r_aA(EMTsIpu*8FGJ2YY(AyS zG8tFp0bXOPIE)={nc$z@3<~O1dr^wys1)&2baPXig=O(_Swn8KyXDLYBEv}-G;eqdu{4c85Q3cYB8hG3f z`{@-i!)R7fs67`Lr{s7XqeGmdtXW?qaM(jz+2%g%4Q%+ufw%}(WNBh4LyJL80 zsP>5X&9C+KZJg3;8(8%?LT?Zb7+|TwFg(C&9q2O>$_UVlkfXJal41KK>z&f^_(QK zC!-hq`xbel009d_l{C5=TtTkeSx?Ne=ob6wwkHO1RuNH+?b*^I)~gDPUk&Hv*0B!ctG+*FzIPn28{Ywi z{+{bLebzhi9f&_N`XJTfd?p-;m^&TJ8T;zb+uFVX`|6g)O zD-%6%nR-78eG^RgnE};FXBMpjJ&rHCK-a;$5tBZZ(8~oYp&!2SH~#QKxc!oXE%^n+ zGAwdK!%ULrv(G}`H^&^|7d%qZys|imsN#xjLZrx9txP=$mSM=h(bIf2VVQGytOk}f z#wkH~pGkl|8h;&xts|q(d}a%m;FDvuh=Jm|1=!pB_A(BWy`iIv!w1A{5a)2*4U&7; z=wcqmdlCM+80!C=K+Xg-B_7&Q%sjsMzRuTm6m989+kS*7{Plw&;&<*r-Wjw!`{KKX z2RHRjCBL6boZ02q?SyPK@9l!!d1?HS0U@{kK(TXghRrV#e#tEG>^ia75%eH(XRPb4 z;l)bnCPbWlh4+70-CyNJ&BSBr?a*+ADTUlMm24`vb8!`~QiK{zJd>?Z?CRopYE#Tk z&9gV}^4KIpr9uNi+79H!w$^V6Qv&pjEYBeFS#5>d)^j;-{v9Ar@C!f{^QvrnqjD)1 z@?M6`8igDKz( z2SG!|0r($ta!}d6-&Fro6AOWV&bM+v3Q^X&^JlVI{)EpQ@-m$+XoRdQ{WBT;#{}}M zYLSM=#^ejWBFL%mR_hPny2GntD1jeuu9oz53d1{L#s(ndrw0o~2nuU(ZQgxZBXsX! zU%~ozMOk~C@kM~BnUCv2`gif@wEpmgQCp}W+GNVDG~sxP`sm6EnX!kZ_WvG@rCcV7RJgfLy~PK6r_@KstUi z@fDun_Wr7By*wehzk$%`YI&W88n#*1amC6pryoD^GB5UDF7uYmja7{NcWmPoe_WXN z`=9>d`@1fG%%KKnyv7(dEj>Ac4=z06936tfx^IiPQiX0!ndy6w6tE*2m+=k8)BVC>OSG(P{Z5 zk6%*6zi+V}U5!vN>H?WtqC0KfY^`OZ#G+JXGS!8bGl^^XJ^U#%N+zn$5cws8O924p zS)5tM@O!*fys6Y0A+?qGTAD)1Js_A4b9V%y1-1y%-#SoKIi z6|V!e;Xz2RLg+`j=c@@D*hBNd2~0|-W$45lZRFjM@49s7pZpUx(j(7{a(j(i&mh*( z!d*LL%!Y9i#|5)_1xCBZ*bA7W!C>Q9KShs@Rgk*1E8f_Xweei)&5hEC2L-7*^-_7P0y&Xo!o*k$$X8SMl8?!u)eBY9GL)4+*;T+mxjPU{`#i-2G!TbK2 z6Y{#pgUd@AWfNsnyp77m-4rrh zlHY1xKCkts(&Hq=U}$81kHSCI0e_Z)UQ}~umDqSlGZ;9Oyj5hkxVXj-H76%-HfKn| zi*8F@Dfg8d#Qo_MN`%yt3*42u780qnNunxAU!r5)8B4A+T?06K>l-^9Dy z3Yf&l4KXPb;=BQeK{QXd%j6Kv(*<#C{y>o-p&0j;<_6ja&y9_-ul9|byXYbJ63Fm! z=RDgf-$gw-hXPR-t-gojgNzm!jmFuJXlSm5F%I;>hlgVEx%FV=3^TJOYaCyXj)5Ts zotX-xYn_kn-U_CQPob^S@lYQy5P%;>?TY{2dC4WB4{AoNr%Q9Yyt*T+jsmmBcMDX) z#Tc`hu}8)wsGKENGrr!oeXon$pWvX*Q&9(eeJ_toA?>1Px4}DZY+$1O>fz1!d9qa9 z4CbW}_*%x2|MJnq0>6|vj7Cde|FhZ0HgiwA<5dcleaVnqA`&BSl@UkprPRoZ=>&Q4 zR=2I{m*Qxxzer-#u9en@6sk>0c2oGWGsOtzQSqL zkyDQmiTA1t%taybb8h9V;r01s?04yBr}2_ItLMrX_I~Bh1hJ_q0ci`!c3vJlEalh& z=VEf*$v1E#f73B4+?xD5WIHAPu!Dnb|4HTYU+d_NRvI3;@U}R9>hf2D=A8sI`^cgA z_nfV5&(A)Iui<&lKZNjDfZdP1@8Z}y{2`kWzx-}Qul@|-tA%3QF%8wS2@x?HEY^qT zA6wO|Qe_FA&6p166Wo=0bBGy$ZU?U$=p=PJ4yCFjaYWc(;PR28zK z2pw9)_;YXaHj<-n`G`#H%bFc6!G?7IJ$`|7QD}s7$*E83lsh~ zYG|)I;M%TpV2}Jys7`T?>?`EeXXDS;Z%agZa{F{7S6Nm}P?$p60Q0efyDYW-O*kP-)3Jn)eJ)`)rz0i)6 zd71YvNqx`zhE|@B72_KfdJcNd8PA@=al_z{2bYT2N4F}g=tG4Hnk+cRWng?XL9?qO z@4mSZ?E=-g&lj;>_cL^vG~u5d^dW7F?_;#%Vg|HkqoW7oXdRZ=z_6)Ylgdh;_jn=; z%V^=Lzi~@#)wwE`Z_1eS`5$9{MX@lW%MiO;RMIAR-7{I$LcN=s?){}c0I2BvOV@gk z!Pi`C>5V7z4X-Q3Lw+^C^^|ZMKSs1A^rLkWbfSeU^nf6dioW{Pe3LB<;!P?Gsh|5d z+V>pLYZYfM%*KW#4E#@72#u|%Kx45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5yxS$b1jyqo@Q5sCVBk9p!i>lB zSEK+1*-JcqUD;o45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5yxS$b1jyqo@Q5sCVBk9p!i>lB zSEK+1*-JcqUD;o45bDP46hOx7_4S6Fo+k-*%fF5lweBoc6VW5yxS$b1jyqo@Q5sCVBk9p!i>lB zSEK+1*-JcqUD;o launchwebview -> subNViews 节点配置的; +3.绘制内容支持字体,图片,矩形区域 +4.开发者自定义选项卡点击事件 +5.同样支持页内绘制原生 view 控件,也就是说在非首页也可以使用此方法,参考示例:底部选项卡中央凸起悬浮大图标的绘制 + +#### 说明:中央凸起悬浮大图标,因涉及屏幕分辨率动态计算和为给出开发者页内手动绘制的示例的原因,放在首页plusReady事件中实现绘制的。该悬浮大图标支持点击事件,开发者可定制实现对应的点击逻辑。 + +## 应用截图 + +![截图](http://img-cdn-qiniu.dcloud.net.cn/uploads/article/20170623/04c03ba9ad4afa7d11735e52c771cf94.png) + +## 快速体验 + +[流应用app下载](http://liuyingyong.cn/) --> 扫描下方二维码快速体验 + +![二维码](images/ma.png) + + +## 使用教程 + +[教程参考](http://ask.dcloud.net.cn/article/12602) diff --git a/unpackage/cache/wgt/H5F1E04DB/androidPrivacy.json b/unpackage/cache/wgt/H5F1E04DB/androidPrivacy.json new file mode 100644 index 0000000..a78485c --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/androidPrivacy.json @@ -0,0 +1,3 @@ +{ + "prompt" : "none" +} diff --git a/unpackage/cache/wgt/H5F1E04DB/css/mui.css b/unpackage/cache/wgt/H5F1E04DB/css/mui.css new file mode 100644 index 0000000..ab71e75 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/css/mui.css @@ -0,0 +1,5649 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/mui) + * ===================================================== + */ + +/*! normalize.css v3.0.1 | MIT License | git.io/normalize */ +html +{ + font-family: sans-serif; + + -webkit-text-size-adjust: 100%; +} + +body +{ + margin: 0; +} + +body::after +{ + position: fixed; + top: -1000px; + left: -1000px; + + content: ''; + -webkit-animation: shadow-preload .1s; + animation: shadow-preload .1s; + -webkit-animation-delay: 3s; + animation-delay: 3s; +} + +@-webkit-keyframes shadow-preload +{ + 0% + { + background-image: url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png); + } + + 100% + { + background-image: url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png); + } +} +@keyframes shadow-preload +{ + 0% + { + background-image: url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png); + } + + 100% + { + background-image: url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png); + } +} +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 +{ + font-size: 2em; + + margin: .67em 0; +} + +mark +{ + color: #000; + background: #ff0; +} + +small +{ + font-size: 80%; +} + +sub, +sup +{ + font-size: 75%; + line-height: 0; + + position: relative; + + vertical-align: baseline; +} + +sup +{ + top: -.5em; +} + +sub +{ + bottom: -.25em; +} + +img +{ + border: 0; +} + +svg:not(:root) +{ + overflow: hidden; +} + +figure +{ + margin: 1em 40px; +} + +hr +{ + box-sizing: content-box; + height: 0; +} + +pre +{ + overflow: auto; +} + +code, +kbd, +pre, +samp +{ + font-family: monospace, monospace; + font-size: 1em; +} + +button, +input, +optgroup, +select, +textarea +{ + font: inherit; + + margin: 0; + + color: inherit; +} + +button +{ + overflow: visible; +} + +button, +select +{ + text-transform: none; +} + +button, +html input[type='button'], +input[type='reset'], +input[type='submit'] +{ + cursor: pointer; + + -webkit-appearance: button; +} + +button[disabled], +html input[disabled] +{ + cursor: default; +} + +input +{ + 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 +{ + margin: 0 2px; + padding: .35em .625em .75em; + + 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 +{ + font-family: 'Helvetica Neue', Helvetica, sans-serif; + font-size: 17px; + line-height: 21px; + + color: #000; + background-color: #efeff4; + + -webkit-overflow-scrolling: touch; +} + +a +{ + text-decoration: none; + + color: #007aff; +} +a:active +{ + color: #0062cc; +} + +.mui-content +{ + background-color: #efeff4; + + -webkit-overflow-scrolling: touch; +} + +.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; + + white-space: nowrap; + text-overflow: ellipsis; +} + +.mui-ellipsis-2 +{ + display: -webkit-box; + overflow: hidden; + + white-space: normal !important; + text-overflow: ellipsis; + word-wrap: break-word; + + -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 +{ + margin-left: -5px; + padding-left: 0; + + 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 +{ + margin: 88px 35px; + padding: 10px; + + border-radius: 6px; + background-color: #bbb; +} + +.mui-subtitle +{ + font-size: 15px; +} + +h1, h2, h3, h4, h5, h6 +{ + line-height: 1; + + margin-top: 5px; + margin-bottom: 5px; +} + +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 +{ + font-size: 14px; + + margin-top: 0; + margin-bottom: 10px; + + color: #8f8f94; +} + +.mui-row:before, .mui-row:after +{ + display: table; + + content: ' '; +} +.mui-row:after +{ + clear: both; +} + +.mui-col-xs-1, .mui-col-sm-1, .mui-col-xs-2, .mui-col-sm-2, .mui-col-xs-3, .mui-col-sm-3, .mui-col-xs-4, .mui-col-sm-4, .mui-col-xs-5, .mui-col-sm-5, .mui-col-xs-6, .mui-col-sm-6, .mui-col-xs-7, .mui-col-sm-7, .mui-col-xs-8, .mui-col-sm-8, .mui-col-xs-9, .mui-col-sm-9, .mui-col-xs-10, .mui-col-sm-10, .mui-col-xs-11, .mui-col-sm-11, .mui-col-xs-12, .mui-col-sm-12 +{ + position: relative; + + min-height: 1px; +} + +.mui-row > [class*='mui-col-'] +{ + float: left; +} + +.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; + z-index: 2; + top: 0; + bottom: 0; + left: 0; + + overflow: hidden; + + width: 100%; +} + +.mui-scroll +{ + position: absolute; + z-index: 1; + + width: 100%; +} + +.mui-scrollbar +{ + position: absolute; + z-index: 9998; + + overflow: hidden; + + -webkit-transition: 500ms; + transition: 500ms; + transform: translateZ(0px); + pointer-events: none; + + opacity: 0; +} + +.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; + + -webkit-transition: .01s cubic-bezier(.1, .57, .1, 1); + transition: .01s cubic-bezier(.1, .57, .1, 1); + transform: translate(0px, 0px) translateZ(0px); + + border: 1px solid rgba(255, 255, 255, .80196); + border-radius: 2px; + background: rgba(0, 0, 0, .39804); +} + +.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; + + overflow: hidden; + + width: 100%; +} +.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; + + overflow: auto; + + width: auto; +} +.mui-plus-pullrefresh .mui-slider-group +{ + overflow: visible; +} +.mui-plus-pullrefresh .mui-scroll +{ + position: static; + + width: auto; +} + +.mui-off-canvas-wrap .mui-bar +{ + position: absolute !important; + + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + + -webkit-box-shadow: none; + box-shadow: none; +} + +.mui-off-canvas-wrap +{ + position: relative; + z-index: 1; + + overflow: hidden; + + width: 100%; + height: 100%; +} +.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 350ms; + transition: transform 350ms cubic-bezier(.165, .84, .44, 1); +} +.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 +{ + overflow: hidden; + + height: 100%; +} +.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop +{ + position: absolute; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: block; + + transition: background 350ms cubic-bezier(.165, .84, .44, 1); + + background: rgba(0, 0, 0, .4); + box-shadow: -4px 0 4px rgba(0, 0, 0, .5), 4px 0 4px rgba(0, 0, 0, .5); + + -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; + z-index: -1; + top: 0; + bottom: 0; + + visibility: hidden; + + box-sizing: content-box; + width: 70%; + min-height: 100%; + + background: #333; + + -webkit-overflow-scrolling: touch; +} +.mui-off-canvas-left.mui-transitioning, .mui-off-canvas-right.mui-transitioning +{ + -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1); + transition: transform 350ms cubic-bezier(.165, .84, .44, 1); +} + +.mui-off-canvas-left +{ + left: 0; +} + +.mui-off-canvas-right +{ + right: 0; +} + +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable +{ + background-color: #333; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right +{ + width: 80%; + + -webkit-transform: scale(.8); + transform: scale(.8); + + opacity: .1; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left.mui-transitioning, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right.mui-transitioning +{ + -webkit-transition: -webkit-transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1); + transition: transform 350ms cubic-bezier(.165, .84, .44, 1), opacity 350ms cubic-bezier(.165, .84, .44, 1); +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-left +{ + -webkit-transform-origin: -100%; + transform-origin: -100%; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable > .mui-off-canvas-right +{ + -webkit-transform-origin: 200%; + transform-origin: 200%; +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-inner-wrap +{ + -webkit-transform: scale(.8); + transform: scale(.8); +} +.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-left, .mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active > .mui-off-canvas-right +{ + -webkit-transform: scale(1); + transform: scale(1); + + opacity: 1; +} + +.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 +{ + font-size: 14px; + font-weight: 400; + line-height: 1.42; + + position: relative; + + display: inline-block; + + margin-bottom: 0; + padding: 6px 12px; + + cursor: pointer; + -webkit-transition: all; + transition: all; + -webkit-transition-timing-function: linear; + transition-timing-function: linear; + -webkit-transition-duration: .2s; + transition-duration: .2s; + text-align: center; + vertical-align: top; + white-space: nowrap; + + color: #333; + 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; + background-color: #fff; + background-clip: padding-box; +} +input[type='button']:enabled:active, input[type='button'].mui-active:enabled, +input[type='submit']:enabled:active, +input[type='submit'].mui-active:enabled, +input[type='reset']:enabled:active, +input[type='reset'].mui-active:enabled, +button:enabled:active, +button.mui-active:enabled, +.mui-btn:enabled:active, +.mui-btn.mui-active:enabled +{ + 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; + border: 1px solid #007aff; + background-color: #007aff; +} +input[type='submit']:enabled:active, input[type='submit'].mui-active:enabled, +.mui-btn-primary:enabled:active, +.mui-btn-primary.mui-active:enabled, +.mui-btn-blue:enabled:active, +.mui-btn-blue.mui-active:enabled +{ + color: #fff; + border: 1px solid #0062cc; + background-color: #0062cc; +} + +.mui-btn-positive, +.mui-btn-success, +.mui-btn-green +{ + color: #fff; + border: 1px solid #4cd964; + background-color: #4cd964; +} +.mui-btn-positive:enabled:active, .mui-btn-positive.mui-active:enabled, +.mui-btn-success:enabled:active, +.mui-btn-success.mui-active:enabled, +.mui-btn-green:enabled:active, +.mui-btn-green.mui-active:enabled +{ + color: #fff; + border: 1px solid #2ac845; + background-color: #2ac845; +} + +.mui-btn-warning, +.mui-btn-yellow +{ + color: #fff; + border: 1px solid #f0ad4e; + background-color: #f0ad4e; +} +.mui-btn-warning:enabled:active, .mui-btn-warning.mui-active:enabled, +.mui-btn-yellow:enabled:active, +.mui-btn-yellow.mui-active:enabled +{ + color: #fff; + border: 1px solid #ec971f; + background-color: #ec971f; +} + +.mui-btn-negative, +.mui-btn-danger, +.mui-btn-red +{ + color: #fff; + border: 1px solid #dd524d; + background-color: #dd524d; +} +.mui-btn-negative:enabled:active, .mui-btn-negative.mui-active:enabled, +.mui-btn-danger:enabled:active, +.mui-btn-danger.mui-active:enabled, +.mui-btn-red:enabled:active, +.mui-btn-red.mui-active:enabled +{ + color: #fff; + border: 1px solid #cf2d28; + background-color: #cf2d28; +} + +.mui-btn-royal, +.mui-btn-purple +{ + color: #fff; + border: 1px solid #8a6de9; + background-color: #8a6de9; +} +.mui-btn-royal:enabled:active, .mui-btn-royal.mui-active:enabled, +.mui-btn-purple:enabled:active, +.mui-btn-purple.mui-active:enabled +{ + color: #fff; + border: 1px solid #6641e2; + background-color: #6641e2; +} + +.mui-btn-grey +{ + color: #fff; + border: 1px solid #c7c7cc; + background-color: #c7c7cc; +} +.mui-btn-grey:enabled:active, .mui-btn-grey.mui-active:enabled +{ + color: #fff; + border: 1px solid #acacb4; + background-color: #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:enabled:active, .mui-btn-outlined.mui-btn-blue:enabled:active, .mui-btn-outlined.mui-btn-positive:enabled:active, .mui-btn-outlined.mui-btn-success:enabled:active, .mui-btn-outlined.mui-btn-green:enabled:active, .mui-btn-outlined.mui-btn-warning:enabled:active, .mui-btn-outlined.mui-btn-yellow:enabled:active, .mui-btn-outlined.mui-btn-negative:enabled:active, .mui-btn-outlined.mui-btn-danger:enabled:active, .mui-btn-outlined.mui-btn-red:enabled:active, .mui-btn-outlined.mui-btn-royal:enabled:active, .mui-btn-outlined.mui-btn-purple:enabled:active +{ + color: #fff; +} + +.mui-btn-link +{ + padding-top: 6px; + padding-bottom: 6px; + + color: #007aff; + border: 0; + background-color: transparent; +} +.mui-btn-link:enabled:active, .mui-btn-link.mui-active:enabled +{ + color: #0062cc; + background-color: transparent; +} + +.mui-btn-block +{ + font-size: 18px; + + display: block; + + width: 100%; + margin-bottom: 10px; + padding: 15px 0; +} + +.mui-btn .mui-badge +{ + font-size: 14px; + + margin: -2px -4px -2px 4px; + + background-color: rgba(0, 0, 0, .15); +} + +.mui-btn .mui-badge-inverted, +.mui-btn:enabled:active .mui-badge-inverted +{ + background-color: transparent; +} + +.mui-btn-primary:enabled:active .mui-badge-inverted, +.mui-btn-positive:enabled:active .mui-badge-inverted, +.mui-btn-negative:enabled: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 +{ + font-size: 24px; + line-height: 24px; + + width: 24px; + height: 24px; +} + +.mui-btn .mui-spinner +{ + width: 14px; + height: 14px; + + vertical-align: text-bottom; +} + +.mui-btn-block .mui-spinner +{ + width: 22px; + height: 22px; +} + +.mui-bar +{ + position: fixed; + z-index: 10; + right: 0; + left: 0; + + height: 44px; + padding-right: 10px; + padding-left: 10px; + + border-bottom: 0; + background-color: #f7f7f7; + -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; + + display: inline-block; + overflow: hidden; + + width: auto; + margin: 0; + + 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-transparent +{ + top: 0; + + background-color: rgba(247, 247, 247, 0); + -webkit-box-shadow: none; + box-shadow: none; +} + +.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; + visibility: hidden; + + height: 45px; + margin-top: -45px; +} +.mui-bar-nav.mui-bar .mui-icon +{ + margin-right: -10px; + margin-left: -10px; + padding-right: 10px; + padding-left: 10px; +} + +.mui-title +{ + font-size: 17px; + font-weight: 500; + line-height: 44px; + + position: absolute; + + display: block; + + width: 100%; + margin: 0 -10px; + padding: 0; + + text-align: center; + white-space: nowrap; + + color: #000; +} + +.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; + overflow: hidden; + + width: 1%; + height: 50px; + + text-align: center; + vertical-align: middle; + white-space: nowrap; + text-overflow: ellipsis; + + color: #929292; +} +.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 +{ + font-size: 11px; + + display: block; + overflow: hidden; + + text-overflow: ellipsis; +} +.mui-bar-tab .mui-tab-item .mui-icon:active +{ + background: none; +} + +.mui-focusin > .mui-bar-nav, +.mui-focusin > .mui-bar-header-secondary +{ + position: absolute; +} + +.mui-focusin > .mui-bar ~ .mui-content +{ + padding-bottom: 0; +} + +.mui-bar .mui-btn +{ + font-weight: 400; + + position: relative; + z-index: 20; + top: 7px; + + margin-top: 0; + padding: 6px 12px 7px; +} +.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 +{ + font-size: 16px; + line-height: 44px; + + top: 0; + + padding: 0; + + color: #007aff; + border: 0; +} +.mui-bar .mui-btn-link:active, .mui-bar .mui-btn-link.mui-active +{ + color: #0062cc; +} + +.mui-bar .mui-btn-block +{ + font-size: 16px; + + top: 6px; + + margin-bottom: 0; + padding: 5px 0; +} + +.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 +{ + font-size: 24px; + + position: relative; + z-index: 20; + + padding-top: 10px; + padding-bottom: 10px; +} +.mui-bar .mui-icon:active +{ + opacity: .3; +} +.mui-bar .mui-btn .mui-icon +{ + top: 1px; + + margin: 0; + padding: 0; +} +.mui-bar .mui-title .mui-icon +{ + margin: 0; + padding: 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-bar.mui-bar-header-secondary .mui-segmented-control +{ + top: 0; +} + +.mui-badge +{ + font-size: 12px; + line-height: 1; + + display: inline-block; + + padding: 3px 6px; + + color: #333; + border-radius: 100px; + background-color: rgba(0, 0, 0, .15); +} +.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 +{ + font-size: 10px; + line-height: 1.4; + + position: absolute; + top: -2px; + left: 100%; + + margin-left: -10px; + padding: 1px 5px; + + color: white; + background: red; +} + +.mui-card +{ + font-size: 14px; + + position: relative; + + overflow: hidden; + + margin: 10px; + + border-radius: 2px; + background-color: white; + background-clip: padding-box; + box-shadow: 0 1px 2px rgba(0, 0, 0, .3); +} + +.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, .mui-card .mui-table-view .mui-table-view-cell: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, .mui-card .mui-table-view .mui-table-view-cell: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-card-header, +.mui-card-footer +{ + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + min-height: 44px; + padding: 10px 15px; + + -webkit-box-pack: justify; + -webkit-justify-content: space-between; + justify-content: space-between; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} +.mui-card-header .mui-card-link, +.mui-card-footer .mui-card-link +{ + line-height: 44px; + + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + height: 44px; + margin-top: -10px; + margin-bottom: -10px; + + -webkit-transition-duration: .3s; + transition-duration: .3s; + text-decoration: none; + + -webkit-box-pack: start; + -webkit-justify-content: flex-start; + justify-content: flex-start; + -webkit-box-align: center; + -webkit-align-items: center; + align-items: center; +} + +.mui-card-header:after, +.mui-card-footer:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-card-header +{ + font-size: 17px; + + border-radius: 2px 2px 0 0; +} +.mui-card-header:after +{ + top: auto; + bottom: 0; +} +.mui-card-header > img:first-child +{ + font-size: 0; + line-height: 0; + + float: left; + + width: 34px; + height: 34px; +} + +.mui-card-footer +{ + color: #6d6d72; + border-radius: 0 0 2px 2px; +} + +.mui-card-content +{ + font-size: 14px; + + position: relative; +} + +.mui-card-content-inner +{ + position: relative; + + padding: 15px; +} + +.mui-card-media +{ + vertical-align: bottom; + + color: #fff; + background-position: center; + background-size: cover; +} + +.mui-card-header.mui-card-media +{ + display: block; + + padding: 10px; +} +.mui-card-header.mui-card-media .mui-media-body +{ + font-size: 14px; + font-weight: 500; + line-height: 17px; + + margin-bottom: 0; + margin-left: 44px; + + color: #333; +} +.mui-card-header.mui-card-media .mui-media-body p +{ + font-size: 13px; + + margin-bottom: 0; +} + +.mui-table-view +{ + position: relative; + + margin-top: 0; + margin-bottom: 0; + padding-left: 0; + + list-style: none; + + background-color: #fff; +} +.mui-table-view:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view:before +{ + top: -1px; +} + +.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon +{ + font-size: 20px; + + margin-top: -1px; + margin-right: 5px; + margin-left: -5px; +} +.mui-table-view-icon .mui-table-view-cell:after +{ + left: 40px; +} + +.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-radio .mui-table-view-cell +{ + padding-right: 65px; +} +.mui-table-view-radio .mui-table-view-cell > a:not(.mui-btn) +{ + margin-right: -65px; +} +.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after +{ + font-size: 30px; + font-weight: 600; + + right: 9px; + + content: ''; + + color: #007aff; +} +.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after +{ + content: '\e472'; +} + +.mui-table-view-inverted +{ + color: #fff; + background: #333; +} +.mui-table-view-inverted:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.mui-table-view-inverted:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.mui-table-view-inverted .mui-table-view-cell:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 15px; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #222; +} +.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; + + overflow: hidden; + + padding: 11px 15px; + + -webkit-touch-callout: none; +} +.mui-table-view-cell:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 15px; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.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; + overflow: hidden; + + margin: -11px -15px; + padding: inherit; + + white-space: nowrap; + text-overflow: ellipsis; + + color: inherit; + /*&: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-active > .mui-slider-handle +{ + background-color: #eee; +} +.mui-table-view-cell > .mui-slider-handle +{ + position: relative; + + background-color: #fff; +} +.mui-table-view-cell > .mui-slider-handle.mui-navigate-right:after, .mui-table-view-cell > .mui-slider-handle .mui-navigate-right:after +{ + right: 0; +} +.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; +} +.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%; +} +.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; + z-index: -1; + top: 0; + + 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 +{ + font-weight: 500; + + position: relative; + + margin-top: -1px; + margin-left: 0; + padding-top: 6px; + padding-bottom: 6px; + padding-left: 15px; + + color: #999; + background-color: #fafafa; +} +.mui-table-view-divider:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-table-view-divider:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-table-view .mui-media, +.mui-table-view .mui-media-body +{ + overflow: hidden; +} + +.mui-table-view .mui-media-large .mui-media-object +{ + line-height: 80px; + + max-width: 80px; + height: 80px; +} +.mui-table-view .mui-media .mui-subtitle +{ + color: #000; +} +.mui-table-view .mui-media-object +{ + line-height: 42px; + + max-width: 42px; + 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 +{ + line-height: 29px; + + max-width: 29px; + height: 29px; + margin: -4px 0; +} +.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img +{ + line-height: 29px; + + max-width: 29px; + 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.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-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-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-table-view:before, .mui-table-view-cell.mui-collapse .mui-table-view:after +{ + height: 0; +} +.mui-table-view-cell.mui-collapse .mui-table-view .mui-table-view-cell:last-child:after +{ + height: 0; +} +.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 +{ + margin-top: -1px; +} +.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-active .mui-table-view-cell > a:not(.mui-btn).mui-active +{ + margin-left: -31px; + padding-left: 47px; +} +.mui-table-view-cell.mui-collapse .mui-collapse-content +{ + position: relative; + + display: none; + overflow: hidden; + + margin: 11px -15px -11px; + padding: 8px 15px; + + -webkit-transition: height .35s ease; + -o-transition: height .35s ease; + transition: height .35s ease; + + background: white; +} +.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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-table-view.mui-grid-view +{ + font-size: 0; + + display: block; + + width: 100%; + padding: 0 10px 10px 0; + + white-space: normal; +} +.mui-table-view.mui-grid-view .mui-table-view-cell +{ + font-size: 17px; + + display: inline-block; + + margin-right: -4px; + padding: 10px 0 0 14px; + + 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 +{ + font-size: 15px; + line-height: 15px; + + display: block; + + width: 100%; + height: 15px; + margin-top: 8px; + + text-overflow: ellipsis; + + color: #333; +} +.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 +{ + margin: 0; + padding: 0; + + border-top: 1px solid #eee; + border-left: 1px solid #eee; + background-color: #f2f2f2; +} +.mui-grid-view.mui-grid-9:before, .mui-grid-view.mui-grid-9:after +{ + display: table; + + content: ' '; +} +.mui-grid-view.mui-grid-9:after +{ + clear: both; +} +.mui-grid-view.mui-grid-9:after +{ + position: static; +} +.mui-grid-view.mui-grid-9 .mui-table-view-cell +{ + margin: 0; + padding: 11px 15px; + + vertical-align: top; + + border-right: 1px solid #eee; + border-bottom: 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) +{ + margin: 0; + padding: 10px 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 +{ + font-size: 2.4em; + + position: relative; +} + +.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; + z-index: 0; + top: 0; + bottom: 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'] +{ + line-height: 21px; + + width: 100%; + height: 40px; + margin-bottom: 15px; + padding: 10px 15px; + + -webkit-user-select: text; + + border: 1px solid rgba(0, 0, 0, .2); + border-radius: 3px; + outline: none; + background-color: #fff; + + -webkit-appearance: none; +} + +input[type=number]::-webkit-inner-spin-button, +input[type=number]::-webkit-outer-spin-button +{ + margin: 0; + + -webkit-appearance: none; +} + +input[type='search'] +{ + font-size: 16px; + + -webkit-box-sizing: border-box; + box-sizing: border-box; + height: 34px; + + text-align: center; + + border: 0; + border-radius: 6px; + background-color: rgba(0, 0, 0, .1); +} + +input[type='search']:focus +{ + text-align: left; +} + +textarea +{ + height: auto; + + resize: none; +} + +select +{ + font-size: 14px; + + height: auto; + margin-top: 1px; + + border: 0 !important; + background-color: #fff; +} +select:focus +{ + -webkit-user-modify: read-only; +} + +.mui-input-group +{ + position: relative; + + padding: 0; + + border: 0; + background-color: #fff; +} +.mui-input-group:after +{ + position: absolute; + right: 0; + bottom: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-input-group:before +{ + position: absolute; + top: 0; + right: 0; + left: 0; + + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-input-group input, +.mui-input-group textarea +{ + margin-bottom: 0; + + border: 0; + border-radius: 0; + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; +} + +.mui-input-group input[type='search'] +{ + background: none; +} + +.mui-input-group input:last-child +{ + background-image: none; +} + +.mui-input-row +{ + clear: left; + overflow: hidden; +} +.mui-input-row select +{ + font-size: 17px; + + height: 37px; + padding: 0; +} + +.mui-input-row:last-child, +.mui-input-row label + input, .mui-input-row .mui-btn + input +{ + background: 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} + +.mui-input-row label +{ + font-family: 'Helvetica Neue', Helvetica, sans-serif; + line-height: 1.1; + + float: left; + + width: 35%; + padding: 11px 15px; +} + +.mui-input-row label ~ input, .mui-input-row label ~ select, .mui-input-row label ~ textarea +{ + float: right; + + width: 65%; + margin-bottom: 0; + padding-left: 0; + + border: 0; +} + +.mui-input-row .mui-btn +{ + line-height: 1.1; + + float: right; + + width: 15%; + padding: 10px 15px; +} + +.mui-input-row .mui-btn ~ input, .mui-input-row .mui-btn ~ select, .mui-input-row .mui-btn ~ textarea +{ + float: left; + + width: 85%; + margin-bottom: 0; + padding-left: 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 +{ + overflow: visible; + + padding-right: 20px; +} +.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, .mui-input-row .mui-input-password ~ .mui-icon-eye +{ + font-size: 20px; + + position: absolute; + z-index: 1; + top: 10px; + right: 0; + + width: 38px; + height: 38px; + + text-align: center; + + color: #999; +} +.mui-input-row .mui-input-clear ~ .mui-icon-clear.mui-active, .mui-input-row .mui-input-speech ~ .mui-icon-speech.mui-active, .mui-input-row .mui-input-password ~ .mui-icon-eye.mui-active +{ + color: #007aff; +} +.mui-input-row .mui-input-speech ~ .mui-icon-speech +{ + font-size: 24px; + + top: 8px; +} +.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%; + padding-right: 58px; +} + +.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-right: 15px; + 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; + + border: 0; + outline: 0 !important; + background-color: transparent; + + -webkit-appearance: none; +} +.mui-radio input[type='radio'][disabled]:before, .mui-checkbox input[type='checkbox'][disabled]:before +{ + opacity: .3; +} +.mui-radio input[type='radio']:before, .mui-checkbox input[type='checkbox']:before +{ + font-family: Muiicons; + font-size: 28px; + font-weight: normal; + line-height: 1; + + text-decoration: none; + + color: #aaa; + border-radius: 0; + background: none; + + -webkit-font-smoothing: antialiased; +} +.mui-radio input[type='radio']:checked:before, .mui-checkbox input[type='checkbox']:checked:before +{ + color: #007aff; +} + +.mui-radio.mui-disabled label, .mui-radio label.mui-disabled, .mui-checkbox.mui-disabled label, .mui-checkbox label.mui-disabled +{ + opacity: .4; +} + +.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 +{ + font-family: Muiicons; + + position: absolute; + top: 8px; + right: 21px; + + content: '\e581'; + + color: rgba(170, 170, 170, .6); +} + +.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; + margin: 17px 0; + padding: 0; + + cursor: pointer; + + border: 0; + border-radius: 3px; + outline: none; + background-color: #999; + + -webkit-appearance: none !important; +} +.mui-input-range input[type='range']::-webkit-slider-thumb +{ + width: 28px; + height: 28px; + + border-color: #0062cc; + border-radius: 50%; + background-color: #007aff; + background-clip: padding-box; + + -webkit-appearance: none !important; +} +.mui-input-range label ~ input[type='range'] +{ + width: 65%; +} +.mui-input-range .mui-tooltip +{ + font-size: 36px; + line-height: 64px; + + position: absolute; + z-index: 1; + top: -70px; + + width: 64px; + height: 64px; + + text-align: center; + + opacity: .8; + color: #333; + border: 1px solid #ddd; + border-radius: 6px; + background-color: #fff; + text-shadow: 0 1px 0 #f3f3f3; +} + +.mui-search +{ + position: relative; +} +.mui-search input[type='search'] +{ + padding-left: 30px; +} +.mui-search .mui-placeholder +{ + font-size: 16px; + line-height: 34px; + + position: absolute; + z-index: 1; + top: 0; + right: 0; + bottom: 0; + left: 0; + + display: inline-block; + + height: 34px; + + text-align: center; + + color: #999; + border: 0; + border-radius: 6px; + background: none; +} +.mui-search .mui-placeholder .mui-icon +{ + font-size: 20px; + + color: #333; +} +.mui-search:before +{ + font-family: Muiicons; + font-size: 20px; + font-weight: normal; + + position: absolute; + top: 50%; + right: 50%; + + display: none; + + margin-top: -18px; + margin-right: 31px; + + content: '\e466'; +} +.mui-search.mui-active:before +{ + font-size: 20px; + + right: auto; + left: 5px; + + display: block; + + margin-right: 0; +} +.mui-search.mui-active input[type='search'] +{ + text-align: left; +} +.mui-search.mui-active .mui-placeholder +{ + display: none; +} + +.mui-segmented-control +{ + font-size: 15px; + font-weight: 400; + + position: relative; + + display: table; + overflow: hidden; + + width: 100%; + + table-layout: fixed; + + border: 1px solid #007aff; + border-radius: 3px; + background-color: transparent; + + -webkit-touch-callout: none; +} +.mui-segmented-control.mui-segmented-control-vertical +{ + border-collapse: collapse; + + border-width: 0; + border-radius: 0; +} +.mui-segmented-control.mui-segmented-control-vertical .mui-control-item +{ + display: block; + + border-bottom: 1px solid #c8c7cc; + border-left-width: 0; +} +.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 +{ + line-height: 38px; + + display: table-cell; + overflow: hidden; + + width: 1%; + + -webkit-transition: background-color .1s linear; + transition: background-color .1s linear; + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; + + color: #007aff; + border-color: #007aff; + border-left: 1px solid #007aff; +} +.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-segmented-control-vertical .mui-control-item +{ + border-bottom: 1px solid #c8c7cc; +} +.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active +{ + border-bottom: 1px solid #c8c7cc; +} +.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; + border-bottom: 2px solid #007aff; + background: none; +} +.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; + border-bottom: 2px solid #4cd964; + background: none; +} +.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; + border-bottom: 2px solid #dd524d; + background: none; +} +.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; + + -webkit-transition: opacity .3s; + transition: opacity .3s; + -webkit-transition-property: opacity; + transition-property: opacity; + -webkit-transform: none; + transform: none; + + opacity: 0; + border-radius: 7px; + background-color: #f7f7f7; + -webkit-box-shadow: 0 0 15px rgba(0, 0, 0, .1); + box-shadow: 0 0 15px rgba(0, 0, 0, .1); +} +.mui-popover .mui-popover-arrow +{ + position: absolute; + z-index: 1000; + top: -25px; + left: 0; + + overflow: hidden; + + width: 26px; + height: 26px; +} +.mui-popover .mui-popover-arrow:after +{ + position: absolute; + top: 19px; + left: 0; + + width: 26px; + height: 26px; + + content: ' '; + -webkit-transform: rotate(45deg); + transform: rotate(45deg); + + border-radius: 3px; + background: #f7f7f7; +} +.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%; + + -webkit-transition: -webkit-transform .3s, opacity .3s; + transition: transform .3s, opacity .3s; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + + border-radius: 0; + background: none; + -webkit-box-shadow: none; + box-shadow: none; +} +.mui-popover.mui-popover-action .mui-popover-arrow +{ + display: none; +} +.mui-popover.mui-popover-action.mui-popover-bottom +{ + position: fixed; +} +.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; + + text-align: center; + + color: #007aff; + 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: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + + background-color: #c8c7cc; +} +.mui-popover.mui-popover-action .mui-table-view small +{ + font-weight: 400; + line-height: 1.3; + + display: block; +} +.mui-popover.mui-active +{ + display: block; + + opacity: 1; +} +.mui-popover .mui-bar ~ .mui-table-view +{ + padding-top: 44px; +} + +.mui-backdrop +{ + position: fixed; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + 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 +{ + -webkit-transition: all .4s ease; + transition: all .4s ease; + + opacity: 1; +} + +.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; + + border-radius: 7px; + background-clip: padding-box; +} + +.mui-popover .mui-scroll .mui-table-view +{ + max-height: none; +} + +.mui-popover .mui-table-view +{ + overflow: auto; + + max-height: 300px; + margin-bottom: 0; + + border-radius: 7px; + background-color: #f7f7f7; + background-image: none; + + -webkit-overflow-scrolling: touch; +} +.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-popup-backdrop +{ + position: fixed; + z-index: 998; + top: 0; + right: 0; + bottom: 0; + left: 0; + + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + + opacity: 0; + background: rgba(0, 0, 0, .4); +} +.mui-popup-backdrop.mui-active +{ + opacity: 1; +} + +.mui-popup +{ + position: fixed; + z-index: 10000; + top: 50%; + left: 50%; + + display: none; + overflow: hidden; + + width: 270px; + + -webkit-transition-property: -webkit-transform,opacity; + transition-property: transform,opacity; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1.185); + transform: translate3d(-50%, -50%, 0) scale(1.185); + text-align: center; + + opacity: 0; + color: #000; + border-radius: 13px; +} +.mui-popup.mui-popup-in +{ + display: block; + + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); + + opacity: 1; +} +.mui-popup.mui-popup-out +{ + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); + + opacity: 0; +} + +.mui-popup-inner +{ + position: relative; + + padding: 15px; + + border-radius: 13px 13px 0 0; + background: rgba(255, 255, 255, .95); +} +.mui-popup-inner:after +{ + position: absolute; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + + display: block; + + width: 100%; + height: 1px; + + content: ''; + -webkit-transform: scaleY(.5); + transform: scaleY(.5); + -webkit-transform-origin: 50% 100%; + transform-origin: 50% 100%; + + background-color: rgba(0, 0, 0, .2); +} + +.mui-popup-title +{ + font-size: 18px; + font-weight: 500; + + text-align: center; +} + +.mui-popup-title + .mui-popup-text +{ + font-family: inherit; + font-size: 14px; + + margin: 5px 0 0; +} + +.mui-popup-buttons +{ + position: relative; + + display: -webkit-box; + display: -webkit-flex; + display: flex; + + height: 44px; + + -webkit-box-pack: center; + -webkit-justify-content: center; + justify-content: center; +} + +.mui-popup-button +{ + font-size: 17px; + line-height: 44px; + + position: relative; + + display: block; + overflow: hidden; + + box-sizing: border-box; + width: 100%; + height: 44px; + padding: 0 5px; + + cursor: pointer; + text-align: center; + white-space: nowrap; + text-overflow: ellipsis; + + color: #007aff; + background: rgba(255, 255, 255, .95); + + -webkit-box-flex: 1; +} +.mui-popup-button:after +{ + position: absolute; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + + display: block; + + width: 1px; + height: 100%; + + content: ''; + -webkit-transform: scaleX(.5); + transform: scaleX(.5); + -webkit-transform-origin: 100% 50%; + transform-origin: 100% 50%; + + background-color: rgba(0, 0, 0, .2); +} +.mui-popup-button:first-child +{ + border-radius: 0 0 0 13px; +} +.mui-popup-button:first-child:last-child +{ + border-radius: 0 0 13px 13px; +} +.mui-popup-button:last-child +{ + border-radius: 0 0 13px 0; +} +.mui-popup-button:last-child:after +{ + display: none; +} +.mui-popup-button.mui-popup-button-bold +{ + font-weight: 600; +} + +.mui-popup-input input +{ + font-size: 14px; + + width: 100%; + height: 26px; + margin: 15px 0 0; + padding: 0 5px; + + border: 1px solid rgba(0, 0, 0, .3); + border-radius: 0; + background: #fff; +} + +.mui-plus.mui-android .mui-popup-backdrop +{ + -webkit-transition-duration: 1ms; + transition-duration: 1ms; +} + +.mui-plus.mui-android .mui-popup +{ + -webkit-transition-duration: 1ms; + transition-duration: 1ms; + -webkit-transform: translate3d(-50%, -50%, 0) scale(1); + transform: translate3d(-50%, -50%, 0) scale(1); +} + +/* === Progress Bar === */ +.mui-progressbar +{ + position: relative; + + display: block; + overflow: hidden; + + width: 100%; + height: 2px; + + -webkit-transform-origin: center top; + transform-origin: center top; + vertical-align: middle; + + border-radius: 2px; + background: #b6b6b6; + + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} +.mui-progressbar span +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + -webkit-transition: 150ms; + transition: 150ms; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + + background: #007aff; +} +.mui-progressbar.mui-progressbar-infinite:before +{ + position: absolute; + top: 0; + left: 0; + + width: 100%; + height: 100%; + + content: ''; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + -webkit-animation: mui-progressbar-infinite 1s linear infinite; + animation: mui-progressbar-infinite 1s linear infinite; + + background: #007aff; +} + +body > .mui-progressbar +{ + position: absolute; + z-index: 10000; + top: 44px; + left: 0; + + border-radius: 0; +} + +.mui-progressbar-in +{ + -webkit-animation: mui-progressbar-in 300ms forwards; + animation: mui-progressbar-in 300ms forwards; +} + +.mui-progressbar-out +{ + -webkit-animation: mui-progressbar-out 300ms forwards; + animation: mui-progressbar-out 300ms forwards; +} + +@-webkit-keyframes mui-progressbar-in +{ + from + { + -webkit-transform: scaleY(0); + + opacity: 0; + } + + to + { + -webkit-transform: scaleY(1); + + opacity: 1; + } +} +@keyframes mui-progressbar-in +{ + from + { + transform: scaleY(0); + + opacity: 0; + } + + to + { + transform: scaleY(1); + + opacity: 1; + } +} +@-webkit-keyframes mui-progressbar-out +{ + from + { + -webkit-transform: scaleY(1); + + opacity: 1; + } + + to + { + -webkit-transform: scaleY(0); + + opacity: 0; + } +} +@keyframes mui-progressbar-out +{ + from + { + transform: scaleY(1); + + opacity: 1; + } + + to + { + transform: scaleY(0); + + opacity: 0; + } +} +@-webkit-keyframes mui-progressbar-infinite +{ + 0% + { + -webkit-transform: translate3d(-50%, 0, 0) scaleX(.5); + } + + 100% + { + -webkit-transform: translate3d(100%, 0, 0) scaleX(.5); + } +} +@keyframes mui-progressbar-infinite +{ + 0% + { + transform: translate3d(-50%, 0, 0) scaleX(.5); + } + + 100% + { + transform: translate3d(100%, 0, 0) scaleX(.5); + } +} +.mui-pagination +{ + display: inline-block; + + margin: 0 auto; + padding-left: 0; + + border-radius: 6px; +} +.mui-pagination > li +{ + display: inline; +} +.mui-pagination > li > a, +.mui-pagination > li > span +{ + line-height: 1.428571429; + + position: relative; + + float: left; + + margin-left: -1px; + padding: 6px 12px; + + text-decoration: none; + + color: #007aff; + border: 1px solid #ddd; + background-color: #fff; +} +.mui-pagination > li:first-child > a, +.mui-pagination > li:first-child > span +{ + margin-left: 0; + + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; + background-clip: padding-box; +} +.mui-pagination > li:last-child > a, +.mui-pagination > li:last-child > span +{ + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; + background-clip: padding-box; +} +.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; + + cursor: default; + + color: #fff; + border-color: #007aff; + background-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 +{ + opacity: .6; + color: #777; + border: 1px solid #ddd; + background-color: #fff; +} + +.mui-pagination-lg > li > a, +.mui-pagination-lg > li > span +{ + font-size: 18px; + + padding: 10px 16px; +} + +.mui-pagination-sm > li > a, +.mui-pagination-sm > li > span +{ + font-size: 12px; + + padding: 5px 10px; +} + +.mui-pager +{ + padding-left: 0; + + list-style: none; + + text-align: center; +} +.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; + + border: 1px solid #ddd; + border-radius: 6px; + background-color: #fff; + background-clip: padding-box; +} +.mui-pager li:active > a, .mui-pager li:active > span, .mui-pager li.mui-active > a, .mui-pager li.mui-active > span +{ + cursor: default; + text-decoration: none; + + color: #fff; + border-color: #007aff; + background-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 +{ + opacity: .6; + color: #777; + border: 1px solid #ddd; + background-color: #fff; +} + +.mui-modal +{ + position: fixed; + z-index: 999; + top: 0; + + overflow: hidden; + + width: 100%; + min-height: 100%; + + -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); + + opacity: 0; + background-color: #fff; +} +.mui-modal.mui-active +{ + height: 100%; + + -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); + + opacity: 1; +} + +.mui-android .mui-modal .mui-bar +{ + position: static; +} + +.mui-android .mui-modal .mui-bar-nav ~ .mui-content +{ + padding-top: 0; +} + +.mui-slider +{ + position: relative; + z-index: 1; + + overflow: hidden; + + width: 100%; +} +.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 +{ + font-size: 0; + + position: relative; + + -webkit-transition: all 0s linear; + transition: all 0s linear; + white-space: nowrap; +} +.mui-slider .mui-slider-group .mui-slider-item +{ + font-size: 14px; + + position: relative; + + display: inline-block; + + width: 100%; + height: 100%; + + vertical-align: top; + white-space: normal; +} +.mui-slider .mui-slider-group .mui-slider-item > a:not(.mui-control-item) +{ + line-height: 0; + + position: relative; + + display: block; +} +.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 +{ + line-height: 30px; + + position: absolute; + bottom: 0; + left: 0; + + width: 100%; + height: 30px; + margin: 0; + + text-align: left; + text-indent: 12px; + + opacity: .8; + background-color: #000; +} + +.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; + + border-radius: 50%; + background: #aaa; + -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 +{ + font-size: 20px; + line-height: 30px; + + width: 40px; + height: 30px; + margin: 3px; + + text-align: center; + + border: 1px solid #ddd; +} +.mui-slider-indicator .mui-number +{ + line-height: 32px; + + display: inline-block; + + width: 58px; +} +.mui-slider-indicator .mui-number span +{ + color: #ff5053; +} + +.mui-slider-progress-bar +{ + z-index: 1; + + height: 2px; + + -webkit-transform: translateZ(0); + transform: translateZ(0); +} + +.mui-switch +{ + position: relative; + + display: block; + + width: 74px; + height: 30px; + + -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; + + border: 2px solid #ddd; + border-radius: 20px; + background-color: #fff; + background-clip: padding-box; +} +.mui-switch.mui-disabled +{ + opacity: .3; +} +.mui-switch .mui-switch-handle +{ + position: absolute; + z-index: 1; + top: -1px; + left: -1px; + + width: 28px; + height: 28px; + + -webkit-transition: .2s ease-in-out; + transition: .2s ease-in-out; + -webkit-transition-property: -webkit-transform, width,left; + transition-property: transform, width,left; + + border-radius: 16px; + background-color: #fff; + background-clip: padding-box; + -webkit-box-shadow: 0 2px 5px rgba(0, 0, 0, .4); + box-shadow: 0 2px 5px rgba(0, 0, 0, .4); +} +.mui-switch:before +{ + font-size: 13px; + + position: absolute; + top: 3px; + right: 11px; + + content: 'Off'; + text-transform: uppercase; + + color: #999; +} +.mui-switch.mui-dragging +{ + border-color: #f7f7f7; + background-color: #f7f7f7; +} +.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 +{ + border-color: #4cd964; + background-color: #4cd964; +} +.mui-switch.mui-active .mui-switch-handle +{ + -webkit-transform: translate(43px, 0); + transform: translate(43px, 0); +} +.mui-switch.mui-active:before +{ + right: auto; + left: 15px; + + content: 'On'; + + color: #fff; +} +.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: translate(16px, 0); + transform: translate(16px, 0); +} + +.mui-switch-blue.mui-active +{ + border: 2px solid #007aff; + background-color: #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-right:after, +.mui-push-left:after, +.mui-push-right:after +{ + font-family: Muiicons; + font-size: inherit; + line-height: 1; + + position: absolute; + top: 50%; + + display: inline-block; + + -webkit-transform: translateY(-50%); + transform: translateY(-50%); + text-decoration: none; + + color: #bbb; + + -webkit-font-smoothing: antialiased; +} + +.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; + visibility: hidden; + overflow: hidden; + + width: 100%; + height: 50px; +} + +.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 +{ + font-weight: bold; + + position: absolute; + right: 0; + bottom: 10px; + left: 0; + + text-align: center; + + color: #777; +} + +.mui-pull-loading +{ + margin-right: 10px; + + -webkit-transition: -webkit-transform .4s; + transition: transform .4s; + -webkit-transition-duration: 400ms; + transition-duration: 400ms; + vertical-align: middle; +} + +.mui-pull-loading.mui-reverse +{ + -webkit-transform: rotate(180deg) translateZ(0); + transform: rotate(180deg) translateZ(0); +} + +.mui-pull-caption +{ + font-size: 15px; + line-height: 24px; + + position: relative; + + display: inline-block; + overflow: visible; + + margin-top: 0; + + vertical-align: middle; +} +.mui-pull-caption span +{ + display: none; +} +.mui-pull-caption span.mui-in +{ + display: inline; +} + +.mui-toast-container +{ + line-height: 17px; + + position: fixed; + z-index: 9999; + bottom: 50px; + left: 50%; + + -webkit-transition: opacity .3s; + transition: opacity .3s; + -webkit-transform: translate(-50%, 0); + transform: translate(-50%, 0); + + opacity: 0; +} +.mui-toast-container.mui-active +{ + opacity: .9; +} + +.mui-toast-message +{ + font-size: 14px; + + padding: 10px 25px; + + text-align: center; + + color: #fff; + border-radius: 6px; + background-color: #323232; +} + +.mui-numbox +{ + position: relative; + + display: inline-block; + overflow: hidden; + + width: 120px; + height: 35px; + padding: 0 40px 0 40px; + + vertical-align: top; + vertical-align: middle; + + border: solid 1px #bbb; + border-radius: 3px; + background-color: #efeff4; +} +.mui-numbox [class*=numbox-btn], .mui-numbox [class*=btn-numbox] +{ + font-size: 18px; + font-weight: normal; + line-height: 100%; + + position: absolute; + top: 0; + + overflow: hidden; + + width: 40px; + height: 100%; + padding: 0; + + color: #555; + border: none; + border-radius: 0; + background-color: #f9f9f9; +} +.mui-numbox [class*=numbox-btn]:active, .mui-numbox [class*=btn-numbox]:active +{ + background-color: #ccc; +} +.mui-numbox [class*=numbox-btn][disabled], .mui-numbox [class*=btn-numbox][disabled] +{ + color: #c0c0c0; +} +.mui-numbox .mui-numbox-btn-plus, .mui-numbox .mui-btn-numbox-plus +{ + right: 0; + + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; +} +.mui-numbox .mui-numbox-btn-minus, .mui-numbox .mui-btn-numbox-minus +{ + left: 0; + + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; +} +.mui-numbox .mui-numbox-input, .mui-numbox .mui-input-numbox +{ + display: inline-block; + overflow: hidden; + + width: 100% !important; + height: 100%; + margin: 0; + padding: 0 3px !important; + + text-align: center; + text-overflow: ellipsis; + word-break: normal; + + border: none !important; + border-right: solid 1px #ccc !important; + border-left: solid 1px #ccc !important; + border-radius: 0 !important; +} + +.mui-input-row .mui-numbox +{ + float: right; + + margin: 2px 8px; +} + +@font-face { + font-family: Muiicons; + font-weight: normal; + font-style: normal; + + src: url('../fonts/mui.ttf') format('truetype'); +} +.mui-icon +{ + font-family: Muiicons; + font-size: 24px; + font-weight: normal; + font-style: normal; + line-height: 1; + + display: inline-block; + + text-decoration: none; + + -webkit-font-smoothing: antialiased; +} +.mui-icon.mui-active +{ + color: #007aff; +} +.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-qq:before +{ + content: '\e264'; +} + +.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-eye:before +{ + content: '\e568'; +} + +.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; +} +.mui-fullscreen.mui-slider .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 .mui-slider-item > a +{ + top: 50%; + + -webkit-transform: translateY(-50%); + transform: translateY(-50%); +} +.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item > a +{ + top: auto; + + -webkit-transform: none; + transform: none; +} + +.mui-bar-nav ~ .mui-content .mui-slider.mui-fullscreen +{ + top: 44px; +} + +.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; +} + +.mui-android.mui-android-4-2 input, +.mui-android.mui-android-4-2 textarea, .mui-android.mui-android-4-3 input, +.mui-android.mui-android-4-3 textarea +{ + -webkit-user-select: text; +} + +.mui-ios .mui-table-view-cell +{ + -webkit-transform-style: preserve-3d; + transform-style: preserve-3d; +} + +.mui-plus-visible, .mui-wechat-visible +{ + display: none !important; +} + +.mui-plus-hidden, .mui-wechat-hidden +{ + display: block !important; +} + +.mui-tab-item.mui-plus-hidden, .mui-tab-item.mui-wechat-hidden +{ + display: table-cell !important; +} + +.mui-plus .mui-plus-visible, .mui-wechat .mui-wechat-visible +{ + display: block !important; +} + +.mui-plus .mui-tab-item.mui-plus-visible, .mui-wechat .mui-tab-item.mui-wechat-visible +{ + display: table-cell !important; +} + +.mui-plus .mui-plus-hidden, .mui-wechat .mui-wechat-hidden +{ + display: none !important; +} + +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav +{ + height: 64px; + padding-top: 20px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content +{ + padding-top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav ~ .mui-content .mui-pull-top-pocket +{ + top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary +{ + top: 64px; +} +.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary ~ .mui-content +{ + padding-top: 94px; +} + +.mui-iframe-wrapper +{ + position: absolute; + right: 0; + left: 0; + + -webkit-overflow-scrolling: touch; +} +.mui-iframe-wrapper iframe +{ + width: 100%; + height: 100%; + + border: 0; +} diff --git a/unpackage/cache/wgt/H5F1E04DB/css/mui.min.css b/unpackage/cache/wgt/H5F1E04DB/css/mui.min.css new file mode 100644 index 0000000..eaf6974 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/css/mui.min.css @@ -0,0 +1,5 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/mui) + * ===================================================== + *//*! normalize.css v3.0.1 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%}body{margin:0}body::after{position:fixed;top:-1000px;left:-1000px;content:'';-webkit-animation:shadow-preload .1s;animation:shadow-preload .1s;-webkit-animation-delay:3s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%,100%{background-image:url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png)}}@keyframes shadow-preload{0%,100%{background-image:url(https://cdn.dcloud.net.cn/img/mui-shadow-grey.png)}}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{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{box-sizing:content-box;height:0}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{font:inherit;margin:0;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button}button[disabled],html input[disabled]{cursor:default}input{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{margin:0 2px;padding:.35em .625em .75em;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{font-family:'Helvetica Neue',Helvetica,sans-serif;font-size:17px;line-height:21px;color:#000;background-color:#efeff4;-webkit-overflow-scrolling:touch}a{text-decoration:none;color:#007aff}a:active{color:#0062cc}.mui-content{background-color:#efeff4;-webkit-overflow-scrolling:touch}.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;white-space:nowrap;text-overflow:ellipsis}.mui-ellipsis-2{display:-webkit-box;overflow:hidden;white-space:normal!important;text-overflow:ellipsis;word-wrap:break-word;-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{margin-left:-5px;padding-left:0;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{margin:88px 35px;padding:10px;border-radius:6px;background-color:#bbb}.mui-subtitle{font-size:15px}h1,h2,h3,h4,h5,h6{line-height:1;margin-top:5px;margin-bottom:5px}.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{font-size:14px;margin-top:0;margin-bottom:10px;color:#8f8f94}.mui-row:after,.mui-row:before{display:table;content:' '}.mui-row:after{clear:both}.mui-col-sm-1,.mui-col-sm-10,.mui-col-sm-11,.mui-col-sm-12,.mui-col-sm-2,.mui-col-sm-3,.mui-col-sm-4,.mui-col-sm-5,.mui-col-sm-6,.mui-col-sm-7,.mui-col-sm-8,.mui-col-sm-9,.mui-col-xs-1,.mui-col-xs-10,.mui-col-xs-11,.mui-col-xs-12,.mui-col-xs-2,.mui-col-xs-3,.mui-col-xs-4,.mui-col-xs-5,.mui-col-xs-6,.mui-col-xs-7,.mui-col-xs-8,.mui-col-xs-9{position:relative;min-height:1px}.mui-row>[class*=mui-col-]{float:left}.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;z-index:2;top:0;bottom:0;left:0;overflow:hidden;width:100%}.mui-scroll{position:absolute;z-index:1;width:100%}.mui-scrollbar{position:absolute;z-index:9998;overflow:hidden;-webkit-transition:500ms;transition:500ms;transform:translateZ(0px);pointer-events:none;opacity:0}.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;-webkit-transition:.01s cubic-bezier(.1,.57,.1,1);transition:.01s cubic-bezier(.1,.57,.1,1);transform:translate(0px,0) translateZ(0px);border:1px solid rgba(255,255,255,.80196);border-radius:2px;background:rgba(0,0,0,.39804)}.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;overflow:hidden;width:100%}.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;overflow:auto;width:auto}.mui-plus-pullrefresh .mui-slider-group{overflow:visible}.mui-plus-pullrefresh .mui-scroll{position:static;width:auto}.mui-off-canvas-wrap .mui-bar{position:absolute!important;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-box-shadow:none;box-shadow:none}.mui-off-canvas-wrap{position:relative;z-index:1;overflow:hidden;width:100%;height:100%}.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 350ms;transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.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{overflow:hidden;height:100%}.mui-off-canvas-wrap.mui-active .mui-off-canvas-backdrop{position:absolute;z-index:998;top:0;right:0;bottom:0;left:0;display:block;transition:background 350ms cubic-bezier(.165,.84,.44,1);background:rgba(0,0,0,.4);box-shadow:-4px 0 4px rgba(0,0,0,.5),4px 0 4px rgba(0,0,0,.5);-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;z-index:-1;top:0;bottom:0;visibility:hidden;box-sizing:content-box;width:70%;min-height:100%;background:#333;-webkit-overflow-scrolling:touch}.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-left{left:0}.mui-off-canvas-right{right:0}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable{background-color:#333}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{width:80%;-webkit-transform:scale(.8);transform:scale(.8);opacity:.1}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left.mui-transitioning,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right.mui-transitioning{-webkit-transition:-webkit-transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1);transition:transform 350ms cubic-bezier(.165,.84,.44,1),opacity 350ms cubic-bezier(.165,.84,.44,1)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-left{-webkit-transform-origin:-100%;transform-origin:-100%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable>.mui-off-canvas-right{-webkit-transform-origin:200%;transform-origin:200%}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-inner-wrap{-webkit-transform:scale(.8);transform:scale(.8)}.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-left,.mui-off-canvas-wrap:not(.mui-slide-in).mui-scalable.mui-active>.mui-off-canvas-right{-webkit-transform:scale(1);transform:scale(1);opacity:1}.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]{font-size:14px;font-weight:400;line-height:1.42;position:relative;display:inline-block;margin-bottom:0;padding:6px 12px;cursor:pointer;-webkit-transition:all;transition:all;-webkit-transition-timing-function:linear;transition-timing-function:linear;-webkit-transition-duration:.2s;transition-duration:.2s;text-align:center;vertical-align:top;white-space:nowrap;color:#333;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;background-color:#fff;background-clip:padding-box}.mui-btn.mui-active:enabled,.mui-btn:enabled:active,button.mui-active:enabled,button:enabled:active,input[type=button].mui-active:enabled,input[type=button]:enabled:active,input[type=reset].mui-active:enabled,input[type=reset]:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled: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;border:1px solid #007aff;background-color:#007aff}.mui-btn-blue.mui-active:enabled,.mui-btn-blue:enabled:active,.mui-btn-primary.mui-active:enabled,.mui-btn-primary:enabled:active,input[type=submit].mui-active:enabled,input[type=submit]:enabled:active{color:#fff;border:1px solid #0062cc;background-color:#0062cc}.mui-btn-green,.mui-btn-positive,.mui-btn-success{color:#fff;border:1px solid #4cd964;background-color:#4cd964}.mui-btn-green.mui-active:enabled,.mui-btn-green:enabled:active,.mui-btn-positive.mui-active:enabled,.mui-btn-positive:enabled:active,.mui-btn-success.mui-active:enabled,.mui-btn-success:enabled:active{color:#fff;border:1px solid #2ac845;background-color:#2ac845}.mui-btn-warning,.mui-btn-yellow{color:#fff;border:1px solid #f0ad4e;background-color:#f0ad4e}.mui-btn-warning.mui-active:enabled,.mui-btn-warning:enabled:active,.mui-btn-yellow.mui-active:enabled,.mui-btn-yellow:enabled:active{color:#fff;border:1px solid #ec971f;background-color:#ec971f}.mui-btn-danger,.mui-btn-negative,.mui-btn-red{color:#fff;border:1px solid #dd524d;background-color:#dd524d}.mui-btn-danger.mui-active:enabled,.mui-btn-danger:enabled:active,.mui-btn-negative.mui-active:enabled,.mui-btn-negative:enabled:active,.mui-btn-red.mui-active:enabled,.mui-btn-red:enabled:active{color:#fff;border:1px solid #cf2d28;background-color:#cf2d28}.mui-btn-purple,.mui-btn-royal{color:#fff;border:1px solid #8a6de9;background-color:#8a6de9}.mui-btn-purple.mui-active:enabled,.mui-btn-purple:enabled:active,.mui-btn-royal.mui-active:enabled,.mui-btn-royal:enabled:active{color:#fff;border:1px solid #6641e2;background-color:#6641e2}.mui-btn-grey{color:#fff;border:1px solid #c7c7cc;background-color:#c7c7cc}.mui-btn-grey.mui-active:enabled,.mui-btn-grey:enabled:active{color:#fff;border:1px solid #acacb4;background-color:#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:enabled:active,.mui-btn-outlined.mui-btn-danger:enabled:active,.mui-btn-outlined.mui-btn-green:enabled:active,.mui-btn-outlined.mui-btn-negative:enabled:active,.mui-btn-outlined.mui-btn-positive:enabled:active,.mui-btn-outlined.mui-btn-primary:enabled:active,.mui-btn-outlined.mui-btn-purple:enabled:active,.mui-btn-outlined.mui-btn-red:enabled:active,.mui-btn-outlined.mui-btn-royal:enabled:active,.mui-btn-outlined.mui-btn-success:enabled:active,.mui-btn-outlined.mui-btn-warning:enabled:active,.mui-btn-outlined.mui-btn-yellow:enabled:active{color:#fff}.mui-btn-link{padding-top:6px;padding-bottom:6px;color:#007aff;border:0;background-color:transparent}.mui-btn-link.mui-active:enabled,.mui-btn-link:enabled:active{color:#0062cc;background-color:transparent}.mui-btn-block{font-size:18px;display:block;width:100%;margin-bottom:10px;padding:15px 0}.mui-btn .mui-badge{font-size:14px;margin:-2px -4px -2px 4px;background-color:rgba(0,0,0,.15)}.mui-btn .mui-badge-inverted,.mui-btn:enabled:active .mui-badge-inverted{background-color:transparent}.mui-btn-negative:enabled:active .mui-badge-inverted,.mui-btn-positive:enabled:active .mui-badge-inverted,.mui-btn-primary:enabled: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{font-size:24px;line-height:24px;width:24px;height:24px}.mui-btn .mui-spinner{width:14px;height:14px;vertical-align:text-bottom}.mui-btn-block .mui-spinner{width:22px;height:22px}.mui-bar{position:fixed;z-index:10;right:0;left:0;height:44px;padding-right:10px;padding-left:10px;border-bottom:0;background-color:#f7f7f7;-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;display:inline-block;overflow:hidden;width:auto;margin:0;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-transparent{top:0;background-color:rgba(247,247,247,0);-webkit-box-shadow:none;box-shadow:none}.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;visibility:hidden;height:45px;margin-top:-45px}.mui-bar-nav.mui-bar .mui-icon{margin-right:-10px;margin-left:-10px;padding-right:10px;padding-left:10px}.mui-title{font-size:17px;font-weight:500;line-height:44px;position:absolute;display:block;width:100%;margin:0 -10px;padding:0;text-align:center;white-space:nowrap;color:#000}.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;overflow:hidden;width:1%;height:50px;text-align:center;vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;color:#929292}.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{font-size:11px;display:block;overflow:hidden;text-overflow:ellipsis}.mui-bar-tab .mui-tab-item .mui-icon:active{background:0 0}.mui-focusin>.mui-bar-header-secondary,.mui-focusin>.mui-bar-nav{position:absolute}.mui-focusin>.mui-bar~.mui-content{padding-bottom:0}.mui-bar .mui-btn{font-weight:400;position:relative;z-index:20;top:7px;margin-top:0;padding:6px 12px 7px}.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{font-size:16px;line-height:44px;top:0;padding:0;color:#007aff;border:0}.mui-bar .mui-btn-link.mui-active,.mui-bar .mui-btn-link:active{color:#0062cc}.mui-bar .mui-btn-block{font-size:16px;top:6px;margin-bottom:0;padding:5px 0}.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{font-size:24px;position:relative;z-index:20;padding-top:10px;padding-bottom:10px}.mui-bar .mui-icon:active{opacity:.3}.mui-bar .mui-btn .mui-icon{top:1px;margin:0;padding:0}.mui-bar .mui-title .mui-icon{margin:0;padding: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-bar.mui-bar-header-secondary .mui-segmented-control{top:0}.mui-badge{font-size:12px;line-height:1;display:inline-block;padding:3px 6px;color:#333;border-radius:100px;background-color:rgba(0,0,0,.15)}.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{font-size:10px;line-height:1.4;position:absolute;top:-2px;left:100%;margin-left:-10px;padding:1px 5px;color:#fff;background:red}.mui-card{font-size:14px;position:relative;overflow:hidden;margin:10px;border-radius:2px;background-color:#fff;background-clip:padding-box;box-shadow:0 1px 2px rgba(0,0,0,.3)}.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-cell:first-child,.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-cell:last-child,.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-card-footer,.mui-card-header{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;min-height:44px;padding:10px 15px;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer .mui-card-link,.mui-card-header .mui-card-link{line-height:44px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;margin-top:-10px;margin-bottom:-10px;-webkit-transition-duration:.3s;transition-duration:.3s;text-decoration:none;-webkit-box-pack:start;-webkit-justify-content:flex-start;justify-content:flex-start;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.mui-card-footer:before,.mui-card-header:after{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-card-header{font-size:17px;border-radius:2px 2px 0 0}.mui-card-header:after{top:auto;bottom:0}.mui-card-header>img:first-child{font-size:0;line-height:0;float:left;width:34px;height:34px}.mui-card-footer{color:#6d6d72;border-radius:0 0 2px 2px}.mui-card-content{font-size:14px;position:relative}.mui-card-content-inner{position:relative;padding:15px}.mui-card-media{vertical-align:bottom;color:#fff;background-position:center;background-size:cover}.mui-card-header.mui-card-media{display:block;padding:10px}.mui-card-header.mui-card-media .mui-media-body{font-size:14px;font-weight:500;line-height:17px;margin-bottom:0;margin-left:44px;color:#333}.mui-card-header.mui-card-media .mui-media-body p{font-size:13px;margin-bottom:0}.mui-table-view{position:relative;margin-top:0;margin-bottom:0;padding-left:0;list-style:none;background-color:#fff}.mui-table-view:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view:before{position:absolute;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc;top:-1px}.mui-table-view-icon .mui-table-view-cell .mui-navigate-right .mui-icon{font-size:20px;margin-top:-1px;margin-right:5px;margin-left:-5px}.mui-table-view-icon .mui-table-view-cell:after{left:40px}.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-radio .mui-table-view-cell{padding-right:65px}.mui-table-view-radio .mui-table-view-cell>a:not(.mui-btn){margin-right:-65px}.mui-table-view-radio .mui-table-view-cell .mui-navigate-right:after{font-size:30px;font-weight:600;right:9px;content:'';color:#007aff}.mui-table-view-radio .mui-table-view-cell.mui-selected .mui-navigate-right:after{content:'\e472'}.mui-table-view-inverted{color:#fff;background:#333}.mui-table-view-inverted:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.mui-table-view-inverted .mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#222}.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;overflow:hidden;padding:11px 15px;-webkit-touch-callout:none}.mui-table-view-cell:after{position:absolute;right:0;bottom:0;left:15px;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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;overflow:hidden;margin:-11px -15px;padding:inherit;white-space:nowrap;text-overflow:ellipsis;color:inherit}.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-active>.mui-slider-handle{background-color:#eee}.mui-table-view-cell>.mui-slider-handle{position:relative;background-color:#fff}.mui-table-view-cell>.mui-slider-handle .mui-navigate-right:after,.mui-table-view-cell>.mui-slider-handle.mui-navigate-right:after{right:0}.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}.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%}.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;z-index:-1;top:0;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{font-weight:500;position:relative;margin-top:-1px;margin-left:0;padding-top:6px;padding-bottom:6px;padding-left:15px;color:#999;background-color:#fafafa}.mui-table-view-divider:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view-divider:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view .mui-media,.mui-table-view .mui-media-body{overflow:hidden}.mui-table-view .mui-media-large .mui-media-object{line-height:80px;max-width:80px;height:80px}.mui-table-view .mui-media .mui-subtitle{color:#000}.mui-table-view .mui-media-object{line-height:42px;max-width:42px;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{line-height:29px;max-width:29px;height:29px;margin:-4px 0}.mui-table-view .mui-table-view-cell.mui-media-icon .mui-media-object img{line-height:29px;max-width:29px;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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.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-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-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-table-view .mui-table-view-cell:last-child:after,.mui-table-view-cell.mui-collapse .mui-table-view:after,.mui-table-view-cell.mui-collapse .mui-table-view:before{height:0}.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{margin-top:-1px}.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-active .mui-table-view-cell>a:not(.mui-btn).mui-active{margin-left:-31px;padding-left:47px}.mui-table-view-cell.mui-collapse .mui-collapse-content{position:relative;display:none;overflow:hidden;margin:11px -15px -11px;padding:8px 15px;-webkit-transition:height .35s ease;-o-transition:height .35s ease;transition:height .35s ease;background:#fff}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-table-view.mui-grid-view{font-size:0;display:block;width:100%;padding:0 10px 10px 0;white-space:normal}.mui-table-view.mui-grid-view .mui-table-view-cell{font-size:17px;display:inline-block;margin-right:-4px;padding:10px 0 0 14px;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{font-size:15px;line-height:15px;display:block;width:100%;height:15px;margin-top:8px;text-overflow:ellipsis;color:#333}.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{margin:0;padding:0;border-top:1px solid #eee;border-left:1px solid #eee;background-color:#f2f2f2}.mui-grid-view.mui-grid-9:after,.mui-grid-view.mui-grid-9:before{display:table;content:' '}.mui-grid-view.mui-grid-9:after{clear:both;position:static}.mui-grid-view.mui-grid-9 .mui-table-view-cell{margin:0;padding:11px 15px;vertical-align:top;border-right:1px solid #eee;border-bottom: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){margin:0;padding:10px 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{font-size:2.4em;position:relative}.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;z-index:0;top:0;bottom: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{line-height:21px;width:100%;height:40px;margin-bottom:15px;padding:10px 15px;-webkit-user-select:text;border:1px solid rgba(0,0,0,.2);border-radius:3px;outline:0;background-color:#fff;-webkit-appearance:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}input[type=search]{font-size:16px;-webkit-box-sizing:border-box;box-sizing:border-box;height:34px;text-align:center;border:0;border-radius:6px;background-color:rgba(0,0,0,.1)}input[type=search]:focus{text-align:left}textarea{height:auto;resize:none}select{font-size:14px;height:auto;margin-top:1px;border:0!important;background-color:#fff}select:focus{-webkit-user-modify:read-only}.mui-input-group{position:relative;padding:0;border:0;background-color:#fff}.mui-input-group:after{position:absolute;right:0;bottom:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group:before{position:absolute;top:0;right:0;left:0;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-group input,.mui-input-group textarea{margin-bottom:0;border:0;border-radius:0;background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.mui-input-group input[type=search]{background:0 0}.mui-input-group input:last-child{background-image:none}.mui-input-row{clear:left;overflow:hidden}.mui-input-row select{font-size:17px;height:37px;padding:0}.mui-input-row .mui-btn+input,.mui-input-row label+input,.mui-input-row:last-child{background:0 0}.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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-input-row label{font-family:'Helvetica Neue',Helvetica,sans-serif;line-height:1.1;float:left;width:35%;padding:11px 15px}.mui-input-row label~input,.mui-input-row label~select,.mui-input-row label~textarea{float:right;width:65%;margin-bottom:0;padding-left:0;border:0}.mui-input-row .mui-btn{line-height:1.1;float:right;width:15%;padding:10px 15px}.mui-input-row .mui-btn~input,.mui-input-row .mui-btn~select,.mui-input-row .mui-btn~textarea{float:left;width:85%;margin-bottom:0;padding-left: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{overflow:visible;padding-right:20px}.mui-input-row .mui-inline{padding:8px 0}.mui-input-row .mui-input-clear~.mui-icon-clear,.mui-input-row .mui-input-password~.mui-icon-eye,.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:20px;position:absolute;z-index:1;top:10px;right:0;width:38px;height:38px;text-align:center;color:#999}.mui-input-row .mui-input-clear~.mui-icon-clear.mui-active,.mui-input-row .mui-input-password~.mui-icon-eye.mui-active,.mui-input-row .mui-input-speech~.mui-icon-speech.mui-active{color:#007aff}.mui-input-row .mui-input-speech~.mui-icon-speech{font-size:24px;top:8px}.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%;padding-right:58px}.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-right:15px;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;border:0;outline:0!important;background-color:transparent;-webkit-appearance:none}.mui-checkbox input[type=checkbox][disabled]:before,.mui-radio input[type=radio][disabled]:before{opacity:.3}.mui-checkbox input[type=checkbox]:before,.mui-radio input[type=radio]:before{font-family:Muiicons;font-size:28px;font-weight:400;line-height:1;text-decoration:none;color:#aaa;border-radius:0;background:0 0;-webkit-font-smoothing:antialiased}.mui-checkbox input[type=checkbox]:checked:before,.mui-radio input[type=radio]:checked:before{color:#007aff}.mui-checkbox label.mui-disabled,.mui-checkbox.mui-disabled label,.mui-radio label.mui-disabled,.mui-radio.mui-disabled label{opacity:.4}.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{font-family:Muiicons;position:absolute;top:8px;right:21px;content:'\e581';color:rgba(170,170,170,.6)}.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;margin:17px 0;padding:0;cursor:pointer;border:0;border-radius:3px;outline:0;background-color:#999;-webkit-appearance:none!important}.mui-input-range input[type=range]::-webkit-slider-thumb{width:28px;height:28px;border-color:#0062cc;border-radius:50%;background-color:#007aff;background-clip:padding-box;-webkit-appearance:none!important}.mui-input-range label~input[type=range]{width:65%}.mui-input-range .mui-tooltip{font-size:36px;line-height:64px;position:absolute;z-index:1;top:-70px;width:64px;height:64px;text-align:center;opacity:.8;color:#333;border:1px solid #ddd;border-radius:6px;background-color:#fff;text-shadow:0 1px 0 #f3f3f3}.mui-search{position:relative}.mui-search input[type=search]{padding-left:30px}.mui-search .mui-placeholder{font-size:16px;line-height:34px;position:absolute;z-index:1;top:0;right:0;bottom:0;left:0;display:inline-block;height:34px;text-align:center;color:#999;border:0;border-radius:6px;background:0 0}.mui-search .mui-placeholder .mui-icon{font-size:20px;color:#333}.mui-search:before{font-family:Muiicons;font-size:20px;font-weight:400;position:absolute;top:50%;right:50%;display:none;margin-top:-18px;margin-right:31px;content:'\e466'}.mui-search.mui-active:before{font-size:20px;right:auto;left:5px;display:block;margin-right:0}.mui-search.mui-active input[type=search]{text-align:left}.mui-search.mui-active .mui-placeholder{display:none}.mui-segmented-control{font-size:15px;font-weight:400;position:relative;display:table;overflow:hidden;width:100%;table-layout:fixed;border:1px solid #007aff;border-radius:3px;background-color:transparent;-webkit-touch-callout:none}.mui-segmented-control.mui-segmented-control-vertical{border-collapse:collapse;border-width:0;border-radius:0}.mui-segmented-control.mui-segmented-control-vertical .mui-control-item{display:block;border-bottom:1px solid #c8c7cc;border-left-width:0}.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{line-height:38px;display:table-cell;overflow:hidden;width:1%;-webkit-transition:background-color .1s linear;transition:background-color .1s linear;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;border-color:#007aff;border-left:1px solid #007aff}.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-segmented-control-vertical .mui-control-item,.mui-segmented-control.mui-segmented-control-inverted.mui-segmented-control-vertical .mui-control-item.mui-active{border-bottom:1px solid #c8c7cc}.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;border-bottom:2px solid #007aff;background:0 0}.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;border-bottom:2px solid #4cd964;background:0 0}.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;border-bottom:2px solid #dd524d;background:0 0}.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;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transition-property:opacity;transition-property:opacity;-webkit-transform:none;transform:none;opacity:0;border-radius:7px;background-color:#f7f7f7;-webkit-box-shadow:0 0 15px rgba(0,0,0,.1);box-shadow:0 0 15px rgba(0,0,0,.1)}.mui-popover .mui-popover-arrow{position:absolute;z-index:1000;top:-25px;left:0;overflow:hidden;width:26px;height:26px}.mui-popover .mui-popover-arrow:after{position:absolute;top:19px;left:0;width:26px;height:26px;content:' ';-webkit-transform:rotate(45deg);transform:rotate(45deg);border-radius:3px;background:#f7f7f7}.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%;-webkit-transition:-webkit-transform .3s,opacity .3s;transition:transform .3s,opacity .3s;-webkit-transform:translate3d(0,100%,0);transform:translate3d(0,100%,0);border-radius:0;background:0 0;-webkit-box-shadow:none;box-shadow:none}.mui-popover.mui-popover-action .mui-popover-arrow{display:none}.mui-popover.mui-popover-action.mui-popover-bottom{position:fixed}.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;text-align:center;color:#007aff;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:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);background-color:#c8c7cc}.mui-popover.mui-popover-action .mui-table-view small{font-weight:400;line-height:1.3;display:block}.mui-popover.mui-active{display:block;opacity:1}.mui-popover .mui-bar~.mui-table-view{padding-top:44px}.mui-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;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{-webkit-transition:all .4s ease;transition:all .4s ease;opacity:1}.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;border-radius:7px;background-clip:padding-box}.mui-popover .mui-scroll .mui-table-view{max-height:none}.mui-popover .mui-table-view{overflow:auto;max-height:300px;margin-bottom:0;border-radius:7px;background-color:#f7f7f7;background-image:none;-webkit-overflow-scrolling:touch}.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-popup-backdrop{position:fixed;z-index:998;top:0;right:0;bottom:0;left:0;-webkit-transition-duration:400ms;transition-duration:400ms;opacity:0;background:rgba(0,0,0,.4)}.mui-popup-backdrop.mui-active{opacity:1}.mui-popup{position:fixed;z-index:10000;top:50%;left:50%;display:none;overflow:hidden;width:270px;-webkit-transition-property:-webkit-transform,opacity;transition-property:transform,opacity;-webkit-transform:translate3d(-50%,-50%,0) scale(1.185);transform:translate3d(-50%,-50%,0) scale(1.185);text-align:center;opacity:0;color:#000;border-radius:13px}.mui-popup.mui-popup-in{display:block;-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:1}.mui-popup.mui-popup-out{-webkit-transition-duration:400ms;transition-duration:400ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1);opacity:0}.mui-popup-inner{position:relative;padding:15px;border-radius:13px 13px 0 0;background:rgba(255,255,255,.95)}.mui-popup-inner:after{position:absolute;z-index:15;top:auto;right:auto;bottom:0;left:0;display:block;width:100%;height:1px;content:'';-webkit-transform:scaleY(.5);transform:scaleY(.5);-webkit-transform-origin:50% 100%;transform-origin:50% 100%;background-color:rgba(0,0,0,.2)}.mui-popup-title{font-size:18px;font-weight:500;text-align:center}.mui-popup-title+.mui-popup-text{font-family:inherit;font-size:14px;margin:5px 0 0}.mui-popup-buttons{position:relative;display:-webkit-box;display:-webkit-flex;display:flex;height:44px;-webkit-box-pack:center;-webkit-justify-content:center;justify-content:center}.mui-popup-button{font-size:17px;line-height:44px;position:relative;display:block;overflow:hidden;box-sizing:border-box;width:100%;height:44px;padding:0 5px;cursor:pointer;text-align:center;white-space:nowrap;text-overflow:ellipsis;color:#007aff;background:rgba(255,255,255,.95);-webkit-box-flex:1}.mui-popup-button:after{position:absolute;z-index:15;top:0;right:0;bottom:auto;left:auto;display:block;width:1px;height:100%;content:'';-webkit-transform:scaleX(.5);transform:scaleX(.5);-webkit-transform-origin:100% 50%;transform-origin:100% 50%;background-color:rgba(0,0,0,.2)}.mui-popup-button:first-child{border-radius:0 0 0 13px}.mui-popup-button:first-child:last-child{border-radius:0 0 13px 13px}.mui-popup-button:last-child{border-radius:0 0 13px}.mui-popup-button:last-child:after{display:none}.mui-popup-button.mui-popup-button-bold{font-weight:600}.mui-popup-input input{font-size:14px;width:100%;height:26px;margin:15px 0 0;padding:0 5px;border:1px solid rgba(0,0,0,.3);border-radius:0;background:#fff}.mui-plus.mui-android .mui-popup-backdrop{-webkit-transition-duration:1ms;transition-duration:1ms}.mui-plus.mui-android .mui-popup{-webkit-transition-duration:1ms;transition-duration:1ms;-webkit-transform:translate3d(-50%,-50%,0) scale(1);transform:translate3d(-50%,-50%,0) scale(1)}.mui-progressbar{position:relative;display:block;overflow:hidden;width:100%;height:2px;-webkit-transform-origin:center top;transform-origin:center top;vertical-align:middle;border-radius:2px;background:#b6b6b6;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-progressbar span{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transition:150ms;transition:150ms;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0);background:#007aff}.mui-progressbar.mui-progressbar-infinite:before{position:absolute;top:0;left:0;width:100%;height:100%;content:'';-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0);-webkit-transform-origin:left center;transform-origin:left center;-webkit-animation:mui-progressbar-infinite 1s linear infinite;animation:mui-progressbar-infinite 1s linear infinite;background:#007aff}body>.mui-progressbar{position:absolute;z-index:10000;top:44px;left:0;border-radius:0}.mui-progressbar-in{-webkit-animation:mui-progressbar-in 300ms forwards;animation:mui-progressbar-in 300ms forwards}.mui-progressbar-out{-webkit-animation:mui-progressbar-out 300ms forwards;animation:mui-progressbar-out 300ms forwards}@-webkit-keyframes mui-progressbar-in{from{-webkit-transform:scaleY(0);opacity:0}to{-webkit-transform:scaleY(1);opacity:1}}@keyframes mui-progressbar-in{from{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}@-webkit-keyframes mui-progressbar-out{from{-webkit-transform:scaleY(1);opacity:1}to{-webkit-transform:scaleY(0);opacity:0}}@keyframes mui-progressbar-out{from{transform:scaleY(1);opacity:1}to{transform:scaleY(0);opacity:0}}@-webkit-keyframes mui-progressbar-infinite{0%{-webkit-transform:translate3d(-50%,0,0) scaleX(.5)}100%{-webkit-transform:translate3d(100%,0,0) scaleX(.5)}}@keyframes mui-progressbar-infinite{0%{transform:translate3d(-50%,0,0) scaleX(.5)}100%{transform:translate3d(100%,0,0) scaleX(.5)}}.mui-pagination{display:inline-block;margin:0 auto;padding-left:0;border-radius:6px}.mui-pagination>li{display:inline}.mui-pagination>li>a,.mui-pagination>li>span{line-height:1.428571429;position:relative;float:left;margin-left:-1px;padding:6px 12px;text-decoration:none;color:#007aff;border:1px solid #ddd;background-color:#fff}.mui-pagination>li:first-child>a,.mui-pagination>li:first-child>span{margin-left:0;border-top-left-radius:6px;border-bottom-left-radius:6px;background-clip:padding-box}.mui-pagination>li:last-child>a,.mui-pagination>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px;background-clip:padding-box}.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;cursor:default;color:#fff;border-color:#007aff;background-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{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-pagination-lg>li>a,.mui-pagination-lg>li>span{font-size:18px;padding:10px 16px}.mui-pagination-sm>li>a,.mui-pagination-sm>li>span{font-size:12px;padding:5px 10px}.mui-pager{padding-left:0;list-style:none;text-align:center}.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;border:1px solid #ddd;border-radius:6px;background-color:#fff;background-clip:padding-box}.mui-pager li.mui-active>a,.mui-pager li.mui-active>span,.mui-pager li:active>a,.mui-pager li:active>span{cursor:default;text-decoration:none;color:#fff;border-color:#007aff;background-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{opacity:.6;color:#777;border:1px solid #ddd;background-color:#fff}.mui-modal{position:fixed;z-index:999;top:0;overflow:hidden;width:100%;min-height:100%;-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);opacity:0;background-color:#fff}.mui-modal.mui-active{height:100%;-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);opacity:1}.mui-android .mui-modal .mui-bar{position:static}.mui-android .mui-modal .mui-bar-nav~.mui-content{padding-top:0}.mui-slider{position:relative;z-index:1;overflow:hidden;width:100%}.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{font-size:0;position:relative;-webkit-transition:all 0s linear;transition:all 0s linear;white-space:nowrap}.mui-slider .mui-slider-group .mui-slider-item{font-size:14px;position:relative;display:inline-block;width:100%;height:100%;vertical-align:top;white-space:normal}.mui-slider .mui-slider-group .mui-slider-item>a:not(.mui-control-item){line-height:0;position:relative;display:block}.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{line-height:30px;position:absolute;bottom:0;left:0;width:100%;height:30px;margin:0;text-align:left;text-indent:12px;opacity:.8;background-color:#000}.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;border-radius:50%;background:#aaa;-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{font-size:20px;line-height:30px;width:40px;height:30px;margin:3px;text-align:center;border:1px solid #ddd}.mui-slider-indicator .mui-number{line-height:32px;display:inline-block;width:58px}.mui-slider-indicator .mui-number span{color:#ff5053}.mui-slider-progress-bar{z-index:1;height:2px;-webkit-transform:translateZ(0);transform:translateZ(0)}.mui-switch{position:relative;display:block;width:74px;height:30px;-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;border:2px solid #ddd;border-radius:20px;background-color:#fff;background-clip:padding-box}.mui-switch.mui-disabled{opacity:.3}.mui-switch .mui-switch-handle{position:absolute;z-index:1;top:-1px;left:-1px;width:28px;height:28px;-webkit-transition:.2s ease-in-out;transition:.2s ease-in-out;-webkit-transition-property:-webkit-transform,width,left;transition-property:transform,width,left;border-radius:16px;background-color:#fff;background-clip:padding-box;-webkit-box-shadow:0 2px 5px rgba(0,0,0,.4);box-shadow:0 2px 5px rgba(0,0,0,.4)}.mui-switch:before{font-size:13px;position:absolute;top:3px;right:11px;content:'Off';text-transform:uppercase;color:#999}.mui-switch.mui-dragging{border-color:#f7f7f7;background-color:#f7f7f7}.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{border-color:#4cd964;background-color:#4cd964}.mui-switch.mui-active .mui-switch-handle{-webkit-transform:translate(43px,0);transform:translate(43px,0)}.mui-switch.mui-active:before{right:auto;left:15px;content:'On';color:#fff}.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:translate(16px,0);transform:translate(16px,0)}.mui-switch-blue.mui-active{border:2px solid #007aff;background-color:#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-right:after,.mui-push-left:after,.mui-push-right:after{font-family:Muiicons;font-size:inherit;line-height:1;position:absolute;top:50%;display:inline-block;-webkit-transform:translateY(-50%);transform:translateY(-50%);text-decoration:none;color:#bbb;-webkit-font-smoothing:antialiased}.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;visibility:hidden;overflow:hidden;width:100%;height:50px}.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{font-weight:700;position:absolute;right:0;bottom:10px;left:0;text-align:center;color:#777}.mui-pull-loading{margin-right:10px;-webkit-transition:-webkit-transform .4s;transition:transform .4s;-webkit-transition-duration:400ms;transition-duration:400ms;vertical-align:middle}.mui-pull-loading.mui-reverse{-webkit-transform:rotate(180deg) translateZ(0);transform:rotate(180deg) translateZ(0)}.mui-pull-caption{font-size:15px;line-height:24px;position:relative;display:inline-block;overflow:visible;margin-top:0;vertical-align:middle}.mui-pull-caption span{display:none}.mui-pull-caption span.mui-in{display:inline}.mui-toast-container{line-height:17px;position:fixed;z-index:9999;bottom:50px;left:50%;-webkit-transition:opacity .3s;transition:opacity .3s;-webkit-transform:translate(-50%,0);transform:translate(-50%,0);opacity:0}.mui-toast-container.mui-active{opacity:.9}.mui-toast-message{font-size:14px;padding:10px 25px;text-align:center;color:#fff;border-radius:6px;background-color:#323232}.mui-numbox{position:relative;display:inline-block;overflow:hidden;width:120px;height:35px;padding:0 40px;vertical-align:top;vertical-align:middle;border:solid 1px #bbb;border-radius:3px;background-color:#efeff4}.mui-numbox [class*=btn-numbox],.mui-numbox [class*=numbox-btn]{font-size:18px;font-weight:400;line-height:100%;position:absolute;top:0;overflow:hidden;width:40px;height:100%;padding:0;color:#555;border:none;border-radius:0;background-color:#f9f9f9}.mui-numbox [class*=btn-numbox]:active,.mui-numbox [class*=numbox-btn]:active{background-color:#ccc}.mui-numbox [class*=btn-numbox][disabled],.mui-numbox [class*=numbox-btn][disabled]{color:silver}.mui-numbox .mui-btn-numbox-plus,.mui-numbox .mui-numbox-btn-plus{right:0;border-top-right-radius:3px;border-bottom-right-radius:3px}.mui-numbox .mui-btn-numbox-minus,.mui-numbox .mui-numbox-btn-minus{left:0;border-top-left-radius:3px;border-bottom-left-radius:3px}.mui-numbox .mui-input-numbox,.mui-numbox .mui-numbox-input{display:inline-block;overflow:hidden;width:100%!important;height:100%;margin:0;padding:0 3px!important;text-align:center;text-overflow:ellipsis;word-break:normal;border:none!important;border-right:solid 1px #ccc!important;border-left:solid 1px #ccc!important;border-radius:0!important}.mui-input-row .mui-numbox{float:right;margin:2px 8px}@font-face{font-family:Muiicons;font-weight:400;font-style:normal;src:url(../fonts/mui.ttf) format('truetype')}.mui-icon{font-family:Muiicons;font-size:24px;font-weight:400;font-style:normal;line-height:1;display:inline-block;text-decoration:none;-webkit-font-smoothing:antialiased}.mui-icon.mui-active{color:#007aff}.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-qq:before{content:'\e264'}.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-eye:before{content:'\e568'}.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}.mui-fullscreen.mui-slider .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 .mui-slider-item>a{top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.mui-fullscreen .mui-off-canvas-wrap .mui-slider-item>a{top:auto;-webkit-transform:none;transform:none}.mui-bar-nav~.mui-content .mui-slider.mui-fullscreen{top:44px}.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}.mui-android.mui-android-4-2 input,.mui-android.mui-android-4-2 textarea,.mui-android.mui-android-4-3 input,.mui-android.mui-android-4-3 textarea{-webkit-user-select:text}.mui-ios .mui-table-view-cell{-webkit-transform-style:preserve-3d;transform-style:preserve-3d}.mui-plus-visible,.mui-wechat-visible{display:none!important}.mui-plus-hidden,.mui-wechat-hidden{display:block!important}.mui-tab-item.mui-plus-hidden,.mui-tab-item.mui-wechat-hidden{display:table-cell!important}.mui-plus .mui-plus-visible,.mui-wechat .mui-wechat-visible{display:block!important}.mui-plus .mui-tab-item.mui-plus-visible,.mui-wechat .mui-tab-item.mui-wechat-visible{display:table-cell!important}.mui-plus .mui-plus-hidden,.mui-wechat .mui-wechat-hidden{display:none!important}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav{height:64px;padding-top:20px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content{padding-top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary,.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-nav~.mui-content .mui-pull-top-pocket{top:64px}.mui-plus.mui-statusbar.mui-statusbar-offset .mui-bar-header-secondary~.mui-content{padding-top:94px}.mui-iframe-wrapper{position:absolute;right:0;left:0;-webkit-overflow-scrolling:touch}.mui-iframe-wrapper iframe{width:100%;height:100%;border:0} \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/fonts/iconfont.ttf b/unpackage/cache/wgt/H5F1E04DB/fonts/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..0a13c1a1c5324e240585da0d3924c0b35ff33912 GIT binary patch literal 5360 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 literal 0 HcmV?d00001 diff --git a/unpackage/cache/wgt/H5F1E04DB/fonts/mui.ttf b/unpackage/cache/wgt/H5F1E04DB/fonts/mui.ttf new file mode 100644 index 0000000000000000000000000000000000000000..45d3b04a371f3351b6dea69de647aa6b394c282b GIT binary patch literal 29884 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 z zY)9evWD}N-$g=&YG~M*b56=2h-Rnl{ukCzc$JN{JnR@)SCq{lqUFo@=YtKG%ZNuog z?v!s8-8Mk;8_Xo%=PvTi3Y_6ChnQ!x15i|r+5iqE}ELeczUO3Md z*$lKq`3Zuj#5#dZ^S8zY-8l8&;SwU0mV4_gv(-BIgyr6wU(u_P~#)j%+bEL4B%$ zr0WB_SE&<}&?K;M3`V?6=ExB&iwf7nKp^R*`#I1{0vV13EmvbNq%nW|nbI@401HN$<$~ZNsQ9i%8VA2J;uyocmnR$VfXJFtV^ei-be!ceP zm+A3`b}#0dXs-NcO$)iZ(9#vXD?$>aful=F$XE@4vY5&132_UUDNIFxG-2$3*f@cX z<9v^DzE_{Bi$`m~`64uet#+J5VS|vLyYX^H2ddLOAXMeOjFj*&lAGOC-?L^-Pp~uJ zx3;c&cl6AER5kJQWj?Hr)O6Js&OCIc5U7v(w93uh*Q`lYm2m$eAMcg^_mVjI9hjDm zjhE7ZOJ^Z4)=Ek(OjA-_l-0;m4X4g=8Y6P7m;k{RxZH0`GSQ$BuNWzYsTba*%nQ>3 z_&W|PCE-<>uRv9Yay`;9FV-GDpq<9~=n+x*nJyfdDsL z1oYA3`YjlkIt&D%Jv0XZH3>o-qi#6BLiokNE|J&Bf0CcV|LGsdi{yLcui%vRmvG?v zDx9{y1b3~c$Y;o7K9VH@Sn{O5RC+i`)nowS#0g7Uvd#&tqf+%&-s6 ziCv@>ti29CR0({cz*#PAd-2IYWv`q&51<0`ZZuoh3Tb3y> zA&5ep#c`0Bp8&v_JXlVe!|Spi42RoYEs+3mIY$guSRS5MBXA>(WpAmzg!P1b>LMv# zSmjjsVh>IxXv1zVP?#h(u5lRxaga$WX_aS{j-yDd>SRy>&P1(uyuQ34)pwl9!qn5v ztI1#GI=Dv!^0K5kUc6OBR0j-EtW>YE^DThsQ|%f=2{7hwNE*&wXT;n4$hCdF&O7%u zZ{D@J<+E{L)aBRpRvjbm6YWmfR~z&92WlnNp{trl@$na}y6$s10**Skhp86q&Eoz# zJOC5I&azf#(C_le9-A*#>tE-ON8#7u)0=rRzbopC`=gE^bH$C20T^1?5-bD0 zaH6gqhX{!MiaivrbI0vo{be&$UA&fYv`Ntc(W_`RUNpJ9y5AAxpeNc4cP0t_f_nu(gtwB^r>IC7s0Hlr zi@JGNAeGPQ_r+rVy0{*4PR89~#p}1*0$#=Ea9C|?O~ko#olQlLgq#kaB(+Mq*Law@3*Yb?6;5gk;g?#6D8~t!{pE=aM9E$0!OvcXpO3- zk~PiIW-uhL>QOo4_2OUqp!1jEfUvK^9+R$EZTYs=Ty=kZTBw4@@KIY) zyJs#z=f+z4jWnCB?+SQB5qQH;r%_Wg*6H&3V}219yNjCn>v3XMjP^F|ZA}FmJb`pm zEvg%CtLs`@KI4nQ{4UwCy##HCq_YTI$YhI4Q*a(gp!S-Lc4a(ziL}ObCli4sKmKR2fqvjlbbLq(04kX6OJy^Mh1*04{ zOL3{39}& zB!f|%7fd>XIqm`{&scj1M$I9(7r~#MW$6 zBZQHRkqHOgaZj8hcRG+CzHx&i0hOWc#vw|U1rjI_-!@cznigLdjs7e49K-{ImIGP& zS)1Dya4CHEjth;*r_=O1tKQQQL=D6{E!Q;-aa{pfgFj&)W<6<$t$K~-^5qK}K_J(5 zz$B2Uc>KrPLrfFK2bc{WVv^cP6{)qE0k$`zTz;$`EwmB~n*E!^GFKwJX*SCzv9$Be z;_$u3RzDCaLBoM7IOj;Epf4(Ri>VSe>H;QJu=x+ZzvA+VEA5D-F^#}CqnZw6$fmMi zn#}x73&O?&*XE5wW_`9h6>RGCa^Ea~1eP!f9&8!oxi}D^IqvAf#ZAtO1@5}&$-@?E zxx!d(Mb`Te=gI|ko`L*1FoZR6E$UTbiCnPR1m7{7xkg`eUfquXS_yC5A`w=N(hj4I2d3H0SzUcyKhaSrPx#*e% zEB}$=6*3j5&4L2hHWc_3x3 zmLnl5atLi%jO057`AKq6HC73deCHO2O{}+Ehy>;P6%r($M->s0Zy85E+^GktAVv11 zv26=tY$u*zt_f2Y#kFQQfma1CXOII08W&40N^9JgJL<)D5gkGec95({XXw= zBmsv^2;erd3h#7Tf(i=_ah$94fc8Z?$|Vaw%q4CO9+q1hEmWi zFm>b=Vc@XK=c~0C{ea=5X+;luyn(LzS(c`E<;H3*wxfKLpO2kvQx)MKj6^e}>8RV2 z4y0Q5zGH1yydCXY;dyRYH{cN}!b-y-(+Mj8n4bGs!GS_kg8}Z=q@vmt^X4)yTjpLy zHNc`(epO*oj99mHrox6+{c;S{yzmX!tWQ`xHw0CWbKN{yONO!MW;?k8qgzUVCR_!Q z!LUysZl8h;`;fsSAf?$gS+iS1pz$G4B;{~8#QfHNq5$`;0tur<7jdE+ zU|s*(HGRF@UzN)c4fT*5tdBc_sr)**fW7Yi_3uNlG52&Q{UJpa>WFjo;QF1A zebxI6)I$D*Jz)t;Yr50v?)1c}aJeEyRbJGw#M0l>Mf$Oiv4M|$jM6XBrN3th`XwHI zhVq+9OODDRlXUme%d2i^aMg{?P~C3TDF4iWiU*lW6%Ca&S~s8{{1$@12<$FTvp)sm zk%4?Zf*p!`;m3Ikxtn?`yX^OcaLk=x!wIQQhD|s7Fnb_`g05o=88{f!5-mVw%no3W zV24ftAf!D=Z8+TkE}0SPmRxQa>-<#2F1#Y~=(=Zucs%-47%p8pwx-Wm1=t=+Cz#S2+?G)fw>556nI-*3dUUBXMoFl_^6S$mmcmc)`;dL*qeHeHy3J)#)tq9y0 zB!aU)u0Dux;{99Msmc6-;^5b%zty2zuoQlmgqD6!G#!X`L}9_V`&^pl0v*&ME&Z|f zLPr$OZ7#?t8jitrV`~|F?N;6(eatW5p~i-w;mdGz)csam-TzY=+lzHS_KD;7r~X<$ z{^&#f&4F~(6KjtJ8e;BKm7?4}SNZ<_W<0b?#8aD9ZB;$+6|-!@oEu@^Ek&XO}>iseDc0*4J)Z{?h&q zdPT?5_aK`>*A87cCHy0M5}H>M(AOYYXRfKzgw`ya+UnwdoUUV8(?Vb@CNJ^LOn~k2 zP%C%m;YQ9vrehs;9zzOcO2`r%ph?N_Z_jta1+HSvfunn^5XX#wam6~RNBHLUoq;2V zr|9~lAJ|qnyk{aB>nc6}nFA2F3^s}2|3%PX?D$hhk1h5r#SRCzZx2!fKSvISDckBK{u1IB_);tnRDk8wM1MmRP`S8xww#=-++huCb|)yzPqi_A74q@YGj7vcFa> z`#Pr0hBIF|b7p_jSmX39)8WQmYJ>-d2Xl2TBa;*T6O$v&CpL@+Uq}z_?mTesyU^$;J$Wh0RSR-uSsZ{90s1NJo z^;!Cpi}gW0SE{pW%xbxZLC}lJpf;$qb$-)fL?9MX;IoyIv6w%V0x4|3xzyP5iN&7a z2g&gT4#@|!fWzlK^c^rDhP!V};VTD?mZ*e|eAz!sF1YWQgs{uz4 zN=9pAsg!_2B5>kml@sG!;sL&igCk+qxngoE&F(-wRt<=NodXz=H&z4|eUXpl#j2na z;ujuef6Zac%e+%n_G=g!#AbTqD@yl~s{gLPmB*`D(&r2)-f8y|EX`qLl)vtT6W;Yvljv z9J2|ZlTORJ{Bh-!x}bhlyFvSz?PlBO?6BrL{@wXE`bpOw&)2880RriTXr;Vo&0kWUPL^{#5-d4R@tU`liecncr`Gu1RmYx#_9q=d$kX zK=$d@jjeyz`fqJ|Te@wa?Nr-0+Jo(T+HbN(WG}thGL(UYz@)YVCqY0+(H=y*_{TvW ztd1K$>uq@q@gHsA4xNOLfPTb|Co3%CX|5WUklWg7n8&^iF_AHzxXF8}VTSxaR1FI- z>3y;q77^#C)vyE;;Du^fhGXQJ!~2gPn?HW+kb|;y4pI7HOBH= z1UqxBot>>+9i92*hnF9??)t;Wj~Shay4E;(a(?!0CyyUGeC(vrctb~9Uw4zydX3R* zv|eZAJB-#1Mpp+eHyNGXM(d46azoN+oi|#qU(OBQ_xs6l9G@|7{hq`=f&ssV`694AOENXBPZx12PF@y|E&>N6jn`JF+!hI`-*&w}E=sNu7t$MZMa3fyJ zj_Tb_xa-8S;qh<8ZxZj5*4@1I%jhoOX zIp&b{9`mqzU4EXc+*i|eRnv7Xr^{8}_f*sORMYoV)AuaD@3!*ERm;g$%gJ?A;=u@9 zd0)*pSIsw9%{N!gC)ZQSr@NX@cQv2xYChf7e7ZZ9#nBjuC%ASyPCdQ|L$tPz#>#BuiBpO<@WSc z>)BJSXHT`9LN)(FHUB~-eZJcMe6{`gYWwrm_UEhZ&v#Vv%~#u>@2IpR-%-gwUme$c zwcqpA_5xe9>Y1;$J6~-_zFPl$wf^~Pz4JZQe5>`&_g3ni@2%83-&?JBZ>3-Iy_J5= z_g2g4t+YGeTg|7p7weDW{~>a{VR?3uE+Gu<6?}X7S|Zt!F*Dy}vr%%r! z%H;G6o)}gn9_rzto|)(j{?C?ZiL?}psS=r-K2R*SmRQz6K4QZxsvr$dPM4(AP)SY= zMH7i)iO#f^glr1+G3L%mR}C5b&Eq!g*G(WeY@9YuBfE1QQp4$~>6yvs?6%@`s)%>y z_G!F`^4eF6YAuP`l8U?)d5@9!@;JI}cxI>+JP<>Tq%7X?O0m)XB|3W5 z%t&iVUVcVeQs+dmVa6Ceotov{X0?(;c~6v#D9T$dup~63W=D`#$)1y>(Gs0SSk0nM z2D)f?Gw%TeQbWa(o!@Q4ogH_rB`s?_DUz%B&wi9ratzNHr)P|kBQ=z2E!nc;JEqSm zbfj2cavn(C)LOD<$ET*pw^trU6L{{ko;$MVh;w-7^f{+<7{w2jw3Z@oHftEFw)mV4 z;d40ec&J2if-$O$Rv?DhFmxJyi?Y?`L<(t_!x%j)J@T;L715FnsQ-qU(!y0MJ$4Qo z4^ty0I$Rdu~H{OZY`6ZqAeJty+34;{;|{_HuKUjx~53cm)k=Tv?TWzT8+8qSuK zmS3~%2+9s4O%2NC*C@*7*BHv?*IJa#uW^*kuXQM!Uk#MauL+dRuSt~6uc<6rs?Qk1 z=*1b{b@-c_P8t2UO_jU{Vtk&rmg=*mR7)w<+*)eL8pa09kmbpjn(a*)r*}@j{vpP> zwUoZtr8HP-XfDw}ht-3b)h)jCRb$r3TkEPROG-jzhGVHLm&b!7_&JMyj0~iD&o$Bj zYSo-I`cZ@BSTmRgv%RgQmTX(7zqOQoleZZB{fNGbIhsSQ{> z(^sJlC5i=|rO;MUN*h*L5R(soR+N%F+H&A@Tgou{Pb07PmDfgFC6AKGsl{lEQJUea z$()*gf*FDleFB?1Yl=fdn9~}_1j<8+sj-=oIE;ykwM1Gfw2BSS%%w`g@a!CBJ{z8m zB0N*XLO`@x6bzb}8k_BnrjXAVA3kl^$_rUkvO)=<3AjO@w3H+)3yG&iI#5Co3Z6TD zK>?$wL~$iYj9v$CkAX6zbhSOHel)YwdR)@5NDN~vg??+nBxo&lSZ?Ac-=} zRw$3qK5N$CaSv{;%$7PY#-8CfR_s|T#A9D&g?QBc*;3cVsB`?rih95b@u>4wh(|q` zE#)poJ;ZOUsE4f(k9x!k@u*j4TT1GIl2AW+6DQvQC&!;8U)?s1BdYE#{(%bhdcOf8 zIRfUKI#JR`4Fm7>sqvD$efM;!J6dWi&Oq+k3F=i{=2w+iYUBx=q9L|CVYBmJ-G$%c z<6@&Wx(#ofve4)z!pONazk|%dZy{aa^CZ1+XGy&0oCKJJkpB;f C=Z*>h literal 0 HcmV?d00001 diff --git a/unpackage/cache/wgt/H5F1E04DB/html/new-webview.html b/unpackage/cache/wgt/H5F1E04DB/html/new-webview.html new file mode 100644 index 0000000..1ce1242 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/html/new-webview.html @@ -0,0 +1,23 @@ + + + + + + new webview + + + + +
+ +

新窗口

+
+
+

这是subNView模式下打开的新窗口。

+
+ + + + diff --git a/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-chat.html b/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-chat.html new file mode 100644 index 0000000..25ec061 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-chat.html @@ -0,0 +1,150 @@ + + + + + + Hello MUI + + + + + + + + +
+
+
+ 这是subNView模式选项卡中的第1个子页面,该页面展示一个支持单webview模式的下拉刷新、上拉加载的消息列表 +
+ +
+
+ + + + + \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-contact.html b/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-contact.html new file mode 100644 index 0000000..23cb4ae --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/html/tab-webview-subpage-contact.html @@ -0,0 +1,155 @@ + + + + + + Hello MUI + + + + + + + + + +
+
+ 这是subNView模式选项卡中的第2个子页面,该页面展示一个通讯录示例 +
+ +
    +
  • +
    +
    +
    + +
    +
    +
    +

    叶文洁

    + 董事长 +
    +

    + yewenjie@sina.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    艾AA

    + 总经理 +
    +

    + aaa@163.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    罗辑

    + 员工 +
    +

    + luoji@126.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    云天明

    + 员工 +
    +

    + ytm@163.com +

    +
    +
    +
    +
  • +
  • +
    +
    +
    + +
    +
    +
    +

    史强

    + 员工 +
    +

    + shiqiang@gmail.com +

    +
    +
    +
    +
  • +
+
+ + + + \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/images/60x60.gif b/unpackage/cache/wgt/H5F1E04DB/images/60x60.gif new file mode 100644 index 0000000000000000000000000000000000000000..b3bf1624f9ac2efaef7c1b2ba2bcc98a62aa5451 GIT binary patch literal 203 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 literal 0 HcmV?d00001 diff --git a/unpackage/cache/wgt/H5F1E04DB/images/ma.png b/unpackage/cache/wgt/H5F1E04DB/images/ma.png new file mode 100644 index 0000000000000000000000000000000000000000..65da879802e257740b4c6cd9f15a567a2f7a3036 GIT binary patch literal 10472 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 em(>S~sQ(`i!-KBfOEm2O0000 + + + + + + + + + + + + + +
+ +
+ + + + + + \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/js/mui.js b/unpackage/cache/wgt/H5F1E04DB/js/mui.js new file mode 100644 index 0000000..d4e4c17 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/js/mui.js @@ -0,0 +1,8390 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/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') + if ($.isArrayLike(selector)) { + return wrap($.slice.call(selector), null); + } else { + 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; + /** + * mui filter(array) + */ + $.filter = [].filter; + + $.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 isArrayLike + * @param {Object} obj + */ + $.isArrayLike = function(obj) { + var length = !!obj && "length" in obj && obj.length; + var type = $.type(obj); + if (type === "function" || $.isWindow(obj)) { + return false; + } + return type === "array" || length === 0 || + typeof length === "number" && length > 0 && (length - 1) in obj; + }; + /** + * 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 isEmptyObject + * @param {Object} o + */ + $.isEmptyObject = function(o) { + for (var p in o) { + if (p !== undefined) { + return false; + } + } + return true; + }; + /** + * 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; + }; + /** + * 将 fn 缓存一段时间后, 再被调用执行 + * 此方法为了避免在 ms 段时间内, 执行 fn 多次. 常用于 resize , scroll , mousemove 等连续性事件中; + * 当 ms 设置为 -1, 表示立即执行 fn, 即和直接调用 fn 一样; + * 调用返回函数的 stop 停止最后一次的 buffer 效果 + * @param {Object} fn + * @param {Object} ms + * @param {Object} context + */ + $.buffer = function(fn, ms, context) { + var timer; + var lastStart = 0; + var lastEnd = 0; + var ms = ms || 150; + + function run() { + if (timer) { + timer.cancel(); + timer = 0; + } + lastStart = $.now(); + fn.apply(context || this, arguments); + lastEnd = $.now(); + } + + return $.extend(function() { + if ( + (!lastStart) || // 从未运行过 + (lastEnd >= lastStart && $.now() - lastEnd > ms) || // 上次运行成功后已经超过ms毫秒 + (lastEnd < lastStart && $.now() - lastStart > ms * 8) // 上次运行或未完成,后8*ms毫秒 + ) { + run.apply(this, arguments); + } else { + if (timer) { + timer.cancel(); + } + timer = $.later(run, ms, null, $.slice.call(arguments)); + } + }, { + stop: function() { + if (timer) { + timer.cancel(); + timer = 0; + } + } + }); + }; + /** + * each + * @param {type} elements + * @param {type} callback + * @returns {_L8.$} + */ + $.each = function(elements, callback, hasOwnProperty) { + 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 (hasOwnProperty) { + if (elements.hasOwnProperty(key)) { + if (callback.call(elements[key], key, elements[key]) === false) return elements; + } + } else { + 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; + }; + $.hooks = {}; + $.addAction = function(type, hook) { + var hooks = $.hooks[type]; + if (!hooks) { + hooks = []; + } + hook.index = hook.index || 1000; + hooks.push(hook); + hooks.sort(function(a, b) { + return a.index - b.index; + }); + $.hooks[type] = hooks; + return $.hooks[type]; + }; + $.doAction = function(type, callback) { + if ($.isFunction(callback)) { //指定了callback + $.each($.hooks[type], callback); + } else { //未指定callback,直接执行 + $.each($.hooks[type], function(index, hook) { + return !hook.handle(); + }); + } + }; + /** + * setTimeout封装 + * @param {Object} fn + * @param {Object} when + * @param {Object} context + * @param {Object} data + */ + $.later = function(fn, when, context, data) { + when = when || 0; + var m = fn; + var d = data; + var f; + var r; + + if (typeof fn === 'string') { + m = context[fn]; + } + + f = function() { + m.apply(context, $.isArray(d) ? d : [d]); + }; + + r = setTimeout(f, when); + + return { + id: r, + cancel: function() { + clearTimeout(r); + } + }; + }; + $.now = Date.now || function() { + return +new Date(); + }; + 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; + } + }; + + /** + * 兼容 AMD 模块 + **/ + if (typeof define === 'function' && define.amd) { + define('mui', [], function() { + return $; + }); + } + + return $; +})(document); +//window.mui = mui; +//'$' in window || (window.$ = mui); +/** + * $.os + * @param {type} $ + * @returns {undefined} + */ +(function($, window) { + function detect(ua) { + this.os = {}; + var funcs = [ + + function() { //wechat + var wechat = ua.match(/(MicroMessenger)\/([\d\.]+)/i); + if (wechat) { //wechat + this.os.wechat = { + version: wechat[2].replace(/_/g, '.') + }; + } + return false; + }, + 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($, document) { + function detect(ua) { + this.os = this.os || {}; + var plus = ua.match(/Html5Plus/i); //TODO 5\+Browser? + if (plus) { + this.os.plus = true; + $(function() { + document.body.classList.add('mui-plus'); + }); + if (ua.match(/StreamApp/i)) { //TODO 最好有流应用自己的标识 + this.os.stream = true; + $(function() { + document.body.classList.add('mui-plus-stream'); + }); + } + } + } + detect.call($, navigator.userAgent); +})(mui, document); +/** + * 仅提供简单的on,off(仅支持事件委托,不支持当前元素绑定,当前元素绑定请直接使用addEventListener,removeEventListener) + * @param {Object} $ + */ +(function($) { + if ('ontouchstart' in window) { + $.isTouchable = true; + $.EVENT_START = 'touchstart'; + $.EVENT_MOVE = 'touchmove'; + $.EVENT_END = 'touchend'; + } else { + $.isTouchable = false; + $.EVENT_START = 'mousedown'; + $.EVENT_MOVE = 'mousemove'; + $.EVENT_END = 'mouseup'; + } + $.EVENT_CANCEL = 'touchcancel'; + $.EVENT_CLICK = 'click'; + + var _mid = 1; + var delegates = {}; + //需要wrap的函数 + var eventMethods = { + preventDefault: 'isDefaultPrevented', + stopImmediatePropagation: 'isImmediatePropagationStopped', + stopPropagation: 'isPropagationStopped' + }; + //默认true返回函数 + var returnTrue = function() { + return true + }; + //默认false返回函数 + var returnFalse = function() { + return false + }; + //wrap浏览器事件 + var compatible = function(event, target) { + if (!event.detail) { + event.detail = { + currentTarget: target + }; + } else { + event.detail.currentTarget = target; + } + $.each(eventMethods, function(name, predicate) { + var sourceMethod = event[name]; + event[name] = function() { + this[predicate] = returnTrue; + return sourceMethod && sourceMethod.apply(event, arguments) + } + event[predicate] = returnFalse; + }, true); + return event; + }; + //简单的wrap对象_mid + var mid = function(obj) { + return obj && (obj._mid || (obj._mid = _mid++)); + }; + //事件委托对象绑定的事件回调列表 + var delegateFns = {}; + //返回事件委托的wrap事件回调 + var delegateFn = function(element, event, selector, callback) { + return function(e) { + //same event + var callbackObjs = delegates[element._mid][event]; + var handlerQueue = []; + var target = e.target; + var selectorAlls = {}; + for (; target && target !== document; target = target.parentNode) { + if (target === element) { + break; + } + if (~['click', 'tap', 'doubletap', 'longtap', 'hold'].indexOf(event) && (target.disabled || target.classList.contains('mui-disabled'))) { + break; + } + var matches = {}; + $.each(callbackObjs, function(selector, callbacks) { //same selector + selectorAlls[selector] || (selectorAlls[selector] = $.qsa(selector, element)); + if (selectorAlls[selector] && ~(selectorAlls[selector]).indexOf(target)) { + if (!matches[selector]) { + matches[selector] = callbacks; + } + } + }, true); + if (!$.isEmptyObject(matches)) { + handlerQueue.push({ + element: target, + handlers: matches + }); + } + } + selectorAlls = null; + e = compatible(e); //compatible event + $.each(handlerQueue, function(index, handler) { + target = handler.element; + var tagName = target.tagName; + if (event === 'tap' && (tagName !== 'INPUT' && tagName !== 'TEXTAREA' && tagName !== 'SELECT')) { + e.preventDefault(); + e.detail && e.detail.gesture && e.detail.gesture.preventDefault(); + } + $.each(handler.handlers, function(index, handler) { + $.each(handler, function(index, callback) { + if (callback.call(target, e) === false) { + e.preventDefault(); + e.stopPropagation(); + } + }, true); + }, true) + if (e.isPropagationStopped()) { + return false; + } + }, true); + }; + }; + var findDelegateFn = function(element, event) { + var delegateCallbacks = delegateFns[mid(element)]; + var result = []; + if (delegateCallbacks) { + result = []; + if (event) { + var filterFn = function(fn) { + return fn.type === event; + } + return delegateCallbacks.filter(filterFn); + } else { + result = delegateCallbacks; + } + } + return result; + }; + var preventDefaultException = /^(INPUT|TEXTAREA|BUTTON|SELECT)$/; + /** + * mui delegate events + * @param {type} event + * @param {type} selector + * @param {type} callback + * @returns {undefined} + */ + $.fn.on = function(event, selector, callback) { //仅支持简单的事件委托,主要是tap事件使用,类似mouse,focus之类暂不封装支持 + return this.each(function() { + var element = this; + mid(element); + mid(callback); + var isAddEventListener = false; + var delegateEvents = delegates[element._mid] || (delegates[element._mid] = {}); + var delegateCallbackObjs = delegateEvents[event] || ((delegateEvents[event] = {})); + if ($.isEmptyObject(delegateCallbackObjs)) { + isAddEventListener = true; + } + var delegateCallbacks = delegateCallbackObjs[selector] || (delegateCallbackObjs[selector] = []); + delegateCallbacks.push(callback); + if (isAddEventListener) { + var delegateFnArray = delegateFns[mid(element)]; + if (!delegateFnArray) { + delegateFnArray = []; + } + var delegateCallback = delegateFn(element, event, selector, callback); + delegateFnArray.push(delegateCallback); + delegateCallback.i = delegateFnArray.length - 1; + delegateCallback.type = event; + delegateFns[mid(element)] = delegateFnArray; + element.addEventListener(event, delegateCallback); + if (event === 'tap') { //TODO 需要找个更好的解决方案 + element.addEventListener('click', function(e) { + if (e.target) { + var tagName = e.target.tagName; + if (!preventDefaultException.test(tagName)) { + if (tagName === 'A') { + var href = e.target.href; + if (!(href && ~href.indexOf('tel:'))) { + e.preventDefault(); + } + } else { + e.preventDefault(); + } + } + } + }); + } + } + }); + }; + $.fn.off = function(event, selector, callback) { + return this.each(function() { + var _mid = mid(this); + if (!event) { //mui(selector).off(); + delegates[_mid] && delete delegates[_mid]; + } else if (!selector) { //mui(selector).off(event); + delegates[_mid] && delete delegates[_mid][event]; + } else if (!callback) { //mui(selector).off(event,selector); + delegates[_mid] && delegates[_mid][event] && delete delegates[_mid][event][selector]; + } else { //mui(selector).off(event,selector,callback); + var delegateCallbacks = delegates[_mid] && delegates[_mid][event] && delegates[_mid][event][selector]; + $.each(delegateCallbacks, function(index, delegateCallback) { + if (mid(delegateCallback) === mid(callback)) { + delegateCallbacks.splice(index, 1); + return false; + } + }, true); + } + if (delegates[_mid]) { + //如果off掉了所有当前element的指定的event事件,则remove掉当前element的delegate回调 + if ((!delegates[_mid][event] || $.isEmptyObject(delegates[_mid][event]))) { + findDelegateFn(this, event).forEach(function(fn) { + this.removeEventListener(fn.type, fn); + delete delegateFns[_mid][fn.i]; + }.bind(this)); + } + } else { + //如果delegates[_mid]已不存在,删除所有 + findDelegateFn(this).forEach(function(fn) { + this.removeEventListener(fn.type, fn); + delete delegateFns[_mid][fn.i]; + }.bind(this)); + } + }); + + }; +})(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($.EVENT_START, 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; + } + } + }); + window.addEventListener('click', function(event) { //解决touch与click的target不一致的问题(比如链接边缘点击时,touch的target为html,而click的target为A) + var target = event.target; + var isFound = false; + for (; target && target !== document; target = target.parentNode) { + if (target.tagName === 'A') { + $.each($.targetHandles, function(index, targetHandle) { + var name = targetHandle.name; + if (targetHandle.hasOwnProperty('handle')) { + if (targetHandle.handle(event, target)) { + isFound = true; + event.preventDefault(); + return 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; + } +})(); +/* + A shim for non ES5 supporting browsers. + Adds function bind to Function prototype, so that you can do partial application. + Works even with the nasty thing, where the first word is the opposite of extranet, the second one is the profession of Columbus, and the version number is 9, flipped 180 degrees. +*/ + +Function.prototype.bind = Function.prototype.bind || function(to) { + // Make an array of our arguments, starting from second argument + var partial = Array.prototype.splice.call(arguments, 1), + // We'll need the original function. + fn = this; + var bound = function() { + // Join the already applied arguments to the now called ones (after converting to an array again). + var args = partial.concat(Array.prototype.splice.call(arguments, 0)); + // If not being called as a constructor + if (!(this instanceof bound)) { + // return the result of the function called bound to target and partially applied. + return fn.apply(to, args); + } + // If being called as a constructor, apply the function bound to self. + fn.apply(this, args); + } + // Attach the prototype of the function to our newly created function. + bound.prototype = fn.prototype; + return bound; +}; +/** + * 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 (!$.os.android && !$.os.ios) { //目前仅识别android和ios + return; + } + if (window.FastClick) { + return; + } + + var handle = function(event, target) { + if (target.tagName === 'LABEL') { + if (target.parentNode) { + target = target.parentNode.querySelector('input'); + } + } + if (target && (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); + event.detail && event.detail.gesture.preventDefault(); + } + }; + 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; + //TODO 需考虑所有键盘弹起的情况 + if (target.tagName && (target.tagName === 'TEXTAREA' || (target.tagName === 'INPUT' && (target.type === 'text' || target.type === 'search' || target.type === 'number')))) { + if (target.disabled || target.readOnly) { + return; + } + 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) { + $.gestures = { + session: {} + }; + /** + * 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} + */ + $.addGesture = function(gesture) { + return $.addAction('gestures', gesture); + + }; + + var round = Math.round; + var abs = Math.abs; + var sqrt = Math.sqrt; + var atan = Math.atan; + var atan2 = Math.atan2; + /** + * distance + * @param {type} p1 + * @param {type} p2 + * @returns {Number} + */ + var getDistance = function(p1, p2, props) { + if(!props) { + props = ['x', 'y']; + } + var x = p2[props[0]] - p1[props[0]]; + var y = p2[props[1]] - p1[props[1]]; + return sqrt((x * x) + (y * y)); + }; + /** + * scale + * @param {Object} starts + * @param {Object} moves + */ + var getScale = function(starts, moves) { + if(starts.length >= 2 && moves.length >= 2) { + var props = ['pageX', 'pageY']; + return getDistance(moves[1], moves[0], props) / getDistance(starts[1], starts[0], props); + } + return 1; + }; + /** + * angle + * @param {type} p1 + * @param {type} p2 + * @returns {Number} + */ + var getAngle = function(p1, p2, props) { + if(!props) { + props = ['x', 'y']; + } + var x = p2[props[0]] - p1[props[0]]; + var y = p2[props[1]] - p1[props[1]]; + return atan2(y, x) * 180 / Math.PI; + }; + /** + * direction + * @param {Object} x + * @param {Object} y + */ + var getDirection = function(x, y) { + if(x === y) { + return ''; + } + if(abs(x) >= abs(y)) { + return x > 0 ? 'left' : 'right'; + } + return y > 0 ? 'up' : 'down'; + }; + /** + * rotation + * @param {Object} start + * @param {Object} end + */ + var getRotation = function(start, end) { + var props = ['pageX', 'pageY']; + return getAngle(end[1], end[0], props) - getAngle(start[1], start[0], props); + }; + /** + * px per ms + * @param {Object} deltaTime + * @param {Object} x + * @param {Object} y + */ + var getVelocity = function(deltaTime, x, y) { + return { + x: x / deltaTime || 0, + y: y / deltaTime || 0 + }; + }; + /** + * detect gestures + * @param {type} event + * @param {type} touch + * @returns {undefined} + */ + var detect = function(event, touch) { + if($.gestures.stoped) { + return; + } + $.doAction('gestures', function(index, gesture) { + if(!$.gestures.stoped) { + if($.options.gestureConfig[gesture.name] !== false) { + gesture.handle(event, touch); + } + } + }); + }; + /** + * 暂时无用 + * @param {Object} node + * @param {Object} parent + */ + var hasParent = function(node, parent) { + while(node) { + if(node == parent) { + return true; + } + node = node.parentNode; + } + return false; + }; + + var uniqueArray = function(src, key, sort) { + var results = []; + var values = []; + var i = 0; + + while(i < src.length) { + var val = key ? src[i][key] : src[i]; + if(values.indexOf(val) < 0) { + results.push(src[i]); + } + values[i] = val; + i++; + } + + if(sort) { + if(!key) { + results = results.sort(); + } else { + results = results.sort(function sortUniqueArray(a, b) { + return a[key] > b[key]; + }); + } + } + + return results; + }; + var getMultiCenter = function(touches) { + var touchesLength = touches.length; + if(touchesLength === 1) { + return { + x: round(touches[0].pageX), + y: round(touches[0].pageY) + }; + } + + var x = 0; + var y = 0; + var i = 0; + while(i < touchesLength) { + x += touches[i].pageX; + y += touches[i].pageY; + i++; + } + + return { + x: round(x / touchesLength), + y: round(y / touchesLength) + }; + }; + var multiTouch = function() { + return $.options.gestureConfig.pinch; + }; + var copySimpleTouchData = function(touch) { + var touches = []; + var i = 0; + while(i < touch.touches.length) { + touches[i] = { + pageX: round(touch.touches[i].pageX), + pageY: round(touch.touches[i].pageY) + }; + i++; + } + return { + timestamp: $.now(), + gesture: touch.gesture, + touches: touches, + center: getMultiCenter(touch.touches), + deltaX: touch.deltaX, + deltaY: touch.deltaY + }; + }; + + var calDelta = function(touch) { + var session = $.gestures.session; + var center = touch.center; + var offset = session.offsetDelta || {}; + var prevDelta = session.prevDelta || {}; + var prevTouch = session.prevTouch || {}; + + if(touch.gesture.type === $.EVENT_START || touch.gesture.type === $.EVENT_END) { + prevDelta = session.prevDelta = { + x: prevTouch.deltaX || 0, + y: prevTouch.deltaY || 0 + }; + + offset = session.offsetDelta = { + x: center.x, + y: center.y + }; + } + touch.deltaX = prevDelta.x + (center.x - offset.x); + touch.deltaY = prevDelta.y + (center.y - offset.y); + }; + var calTouchData = function(touch) { + var session = $.gestures.session; + var touches = touch.touches; + var touchesLength = touches.length; + + if(!session.firstTouch) { + session.firstTouch = copySimpleTouchData(touch); + } + + if(multiTouch() && touchesLength > 1 && !session.firstMultiTouch) { + session.firstMultiTouch = copySimpleTouchData(touch); + } else if(touchesLength === 1) { + session.firstMultiTouch = false; + } + + var firstTouch = session.firstTouch; + var firstMultiTouch = session.firstMultiTouch; + var offsetCenter = firstMultiTouch ? firstMultiTouch.center : firstTouch.center; + + var center = touch.center = getMultiCenter(touches); + touch.timestamp = $.now(); + touch.deltaTime = touch.timestamp - firstTouch.timestamp; + + touch.angle = getAngle(offsetCenter, center); + touch.distance = getDistance(offsetCenter, center); + + calDelta(touch); + + touch.offsetDirection = getDirection(touch.deltaX, touch.deltaY); + + touch.scale = firstMultiTouch ? getScale(firstMultiTouch.touches, touches) : 1; + touch.rotation = firstMultiTouch ? getRotation(firstMultiTouch.touches, touches) : 0; + + calIntervalTouchData(touch); + + }; + var CAL_INTERVAL = 25; + var calIntervalTouchData = function(touch) { + var session = $.gestures.session; + var last = session.lastInterval || touch; + var deltaTime = touch.timestamp - last.timestamp; + var velocity; + var velocityX; + var velocityY; + var direction; + + if(touch.gesture.type != $.EVENT_CANCEL && (deltaTime > CAL_INTERVAL || last.velocity === undefined)) { + var deltaX = last.deltaX - touch.deltaX; + var deltaY = last.deltaY - touch.deltaY; + + var v = getVelocity(deltaTime, deltaX, deltaY); + velocityX = v.x; + velocityY = v.y; + velocity = (abs(v.x) > abs(v.y)) ? v.x : v.y; + direction = getDirection(deltaX, deltaY) || last.direction; + + session.lastInterval = touch; + } else { + velocity = last.velocity; + velocityX = last.velocityX; + velocityY = last.velocityY; + direction = last.direction; + } + + touch.velocity = velocity; + touch.velocityX = velocityX; + touch.velocityY = velocityY; + touch.direction = direction; + }; + var targetIds = {}; + var convertTouches = function(touches) { + for(var i = 0; i < touches.length; i++) { + !touches['identifier'] && (touches['identifier'] = 0); + } + return touches; + }; + var getTouches = function(event, touch) { + var allTouches = convertTouches($.slice.call(event.touches || [event])); + + var type = event.type; + + var targetTouches = []; + var changedTargetTouches = []; + + //当touchstart或touchmove且touches长度为1,直接获得all和changed + if((type === $.EVENT_START || type === $.EVENT_MOVE) && allTouches.length === 1) { + targetIds[allTouches[0].identifier] = true; + targetTouches = allTouches; + changedTargetTouches = allTouches; + touch.target = event.target; + } else { + var i = 0; + var targetTouches = []; + var changedTargetTouches = []; + var changedTouches = convertTouches($.slice.call(event.changedTouches || [event])); + + touch.target = event.target; + var sessionTarget = $.gestures.session.target || event.target; + targetTouches = allTouches.filter(function(touch) { + return hasParent(touch.target, sessionTarget); + }); + + if(type === $.EVENT_START) { + i = 0; + while(i < targetTouches.length) { + targetIds[targetTouches[i].identifier] = true; + i++; + } + } + + i = 0; + while(i < changedTouches.length) { + if(targetIds[changedTouches[i].identifier]) { + changedTargetTouches.push(changedTouches[i]); + } + if(type === $.EVENT_END || type === $.EVENT_CANCEL) { + delete targetIds[changedTouches[i].identifier]; + } + i++; + } + + if(!changedTargetTouches.length) { + return false; + } + } + targetTouches = uniqueArray(targetTouches.concat(changedTargetTouches), 'identifier', true); + var touchesLength = targetTouches.length; + var changedTouchesLength = changedTargetTouches.length; + if(type === $.EVENT_START && touchesLength - changedTouchesLength === 0) { //first + touch.isFirst = true; + $.gestures.touch = $.gestures.session = { + target: event.target + }; + } + touch.isFinal = ((type === $.EVENT_END || type === $.EVENT_CANCEL) && (touchesLength - changedTouchesLength === 0)); + + touch.touches = targetTouches; + touch.changedTouches = changedTargetTouches; + return true; + + }; + var handleTouchEvent = function(event) { + var touch = { + gesture: event + }; + var touches = getTouches(event, touch); + if(!touches) { + return; + } + calTouchData(touch); + detect(event, touch); + $.gestures.session.prevTouch = touch; + if(event.type === $.EVENT_END && !$.isTouchable) { + $.gestures.touch = $.gestures.session = {}; + } + }; + var supportsPassive = (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + get: function get() { + supportsPassive = true; + }, + }); + window.addEventListener('testPassiveListener', null, opts); + } catch(e) { + // No support + } + return supportsPassive; + }()) + window.addEventListener($.EVENT_START, handleTouchEvent); + window.addEventListener($.EVENT_MOVE, handleTouchEvent, supportsPassive ? { + passive: false, + capture: false + } : false); + window.addEventListener($.EVENT_END, handleTouchEvent); + window.addEventListener($.EVENT_CANCEL, handleTouchEvent); + //fixed hashchange(android) + window.addEventListener($.EVENT_CLICK, function(e) { + //TODO 应该判断当前target是不是在targets.popover内部,而不是非要相等 + if(($.os.android || $.os.ios) && (($.targets.popover && e.target === $.targets.popover) || ($.targets.tab) || $.targets.offcanvas || $.targets.modal)) { + e.preventDefault(); + } + }, true); + + //增加原生滚动识别 + $.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 flickStartTime = 0; + var handle = function(event, touch) { + var session = $.gestures.session; + var options = this.options; + var now = $.now(); + switch (event.type) { + case $.EVENT_MOVE: + if (now - flickStartTime > 300) { + flickStartTime = now; + session.flickStart = touch.center; + } + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + touch.flick = false; + if (session.flickStart && options.flickMaxTime > (now - flickStartTime) && touch.distance > options.flickMinDistince) { + touch.flick = true; + touch.flickTime = now - flickStartTime; + touch.flickDistanceX = touch.center.x - session.flickStart.x; + touch.flickDistanceY = touch.center.y - session.flickStart.y; + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + } + break; + } + + }; + /** + * mui gesture flick + */ + $.addGesture({ + 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) { + var session = $.gestures.session; + if (event.type === $.EVENT_END || event.type === $.EVENT_CANCEL) { + var options = this.options; + touch.swipe = false; + //TODO 后续根据velocity计算 + if (touch.direction && options.swipeMaxTime > touch.deltaTime && touch.distance > options.swipeMinDistince) { + touch.swipe = true; + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + } + } + }; + /** + * mui gesture swipe + */ + $.addGesture({ + 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) { + var session = $.gestures.session; + switch (event.type) { + case $.EVENT_START: + break; + case $.EVENT_MOVE: + if (!touch.direction || !session.target) { + return; + } + //修正direction,可在session期间自行锁定拖拽方向,方便开发scroll类不同方向拖拽插件嵌套 + if (session.lockDirection && session.startDirection) { + if (session.startDirection && session.startDirection !== touch.direction) { + if (session.startDirection === 'up' || session.startDirection === 'down') { + touch.direction = touch.deltaY < 0 ? 'up' : 'down'; + } else { + touch.direction = touch.deltaX < 0 ? 'left' : 'right'; + } + } + } + + if (!session.drag) { + session.drag = true; + $.trigger(session.target, name + 'start', touch); + } + $.trigger(session.target, name, touch); + $.trigger(session.target, name + touch.direction, touch); + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if (session.drag && touch.isFinal) { + $.trigger(session.target, name + 'end', touch); + } + break; + } + }; + /** + * mui gesture drag + */ + $.addGesture({ + name: name, + index: 20, + handle: handle, + options: { + fingers: 1 + } + }); +})(mui, 'drag'); +/** + * mui gesture tap and doubleTap + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var lastTarget; + var lastTapTime; + var handle = function(event, touch) { + var session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_END: + if (!touch.isFinal) { + return; + } + var target = session.target; + if (!target || (target.disabled || (target.classList && target.classList.contains('mui-disabled')))) { + return; + } + if (touch.distance < options.tapMaxDistance && touch.deltaTime < options.tapMaxTime) { + if ($.options.gestureConfig.doubletap && lastTarget && (lastTarget === target)) { //same target + if (lastTapTime && (touch.timestamp - lastTapTime) < options.tapMaxInterval) { + $.trigger(target, 'doubletap', touch); + lastTapTime = $.now(); + lastTarget = target; + return; + } + } + $.trigger(target, name, touch); + lastTapTime = $.now(); + lastTarget = target; + } + break; + } + }; + /** + * mui gesture tap + */ + $.addGesture({ + name: name, + index: 30, + handle: handle, + options: { + fingers: 1, + 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 session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_START: + clearTimeout(timer); + timer = setTimeout(function() { + $.trigger(session.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 + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + fingers: 1, + 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 session = $.gestures.session; + var options = this.options; + switch (event.type) { + case $.EVENT_START: + if ($.options.gestureConfig.hold) { + timer && clearTimeout(timer); + timer = setTimeout(function() { + touch.hold = true; + $.trigger(session.target, name, touch); + }, options.holdTimeout); + } + break; + case $.EVENT_MOVE: + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if (timer) { + clearTimeout(timer) && (timer = null); + $.trigger(session.target, 'release', touch); + } + break; + } + }; + /** + * mui gesture hold + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + fingers: 1, + holdTimeout: 0 + } + }); +})(mui, 'hold'); +/** + * mui gesture pinch + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var handle = function(event, touch) { + var options = this.options; + var session = $.gestures.session; + switch (event.type) { + case $.EVENT_START: + break; + case $.EVENT_MOVE: + if ($.options.gestureConfig.pinch) { + if (touch.touches.length < 2) { + return; + } + if (!session.pinch) { //start + session.pinch = true; + $.trigger(session.target, name + 'start', touch); + } + $.trigger(session.target, name, touch); + var scale = touch.scale; + var rotation = touch.rotation; + var lastScale = typeof touch.lastScale === 'undefined' ? 1 : touch.lastScale; + var scaleDiff = 0.000000000001; //防止scale与lastScale相等,不触发事件的情况。 + if (scale > lastScale) { //out + lastScale = scale - scaleDiff; + $.trigger(session.target, name + 'out', touch); + } //in + else if (scale < lastScale) { + lastScale = scale + scaleDiff; + $.trigger(session.target, name + 'in', touch); + } + if (Math.abs(rotation) > options.minRotationAngle) { + $.trigger(session.target, 'rotate', touch); + } + } + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + if ($.options.gestureConfig.pinch && session.pinch && touch.touches.length === 2) { + session.pinch = false; + $.trigger(session.target, name + 'end', touch); + } + break; + } + }; + /** + * mui gesture pinch + */ + $.addGesture({ + name: name, + index: 10, + handle: handle, + options: { + minRotationAngle: 0 + } + }); +})(mui, 'pinch'); +/** + * mui.init + * @param {type} $ + * @returns {undefined} + */ +(function($) { + $.global = $.options = { + gestureConfig: { + tap: true, + doubletap: false, + longtap: false, + hold: false, + flick: true, + swipe: true, + drag: true, + pinch: false + } + }; + /** + * + * @param {type} options + * @returns {undefined} + */ + $.initGlobal = function(options) { + $.options = $.extend(true, $.global, options); + return this; + }; + var inits = {}; + + /** + * 单页配置 初始化 + * @param {object} options + */ + $.init = function(options) { + $.options = $.extend(true, $.global, options || {}); + $.ready(function() { + $.doAction('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 + */ + $.addInit = function(init) { + return $.addAction('inits', init); + }; + /** + * 处理html5版本subpages + */ + $.addInit({ + name: 'iframe', + index: 100, + handle: function() { + var options = $.options; + var subpages = options.subpages || []; + if (!$.os.plus && subpages.length) { + //暂时只处理单个subpage。后续可以考虑支持多个subpage + createIframe(subpages[0]); + } + } + }); + var createIframe = function(options) { + var wrapper = document.createElement('div'); + wrapper.className = 'mui-iframe-wrapper'; + var styles = options.styles || {}; + if (typeof styles.top !== 'string') { + styles.top = '0px'; + } + if (typeof styles.bottom !== 'string') { + styles.bottom = '0px'; + } + wrapper.style.top = styles.top; + wrapper.style.bottom = styles.bottom; + var iframe = document.createElement('iframe'); + iframe.src = options.url; + iframe.id = options.id || options.url; + iframe.name = iframe.id; + wrapper.appendChild(iframe); + document.body.appendChild(wrapper); + //目前仅处理微信 + $.os.wechat && handleScroll(wrapper, iframe); + }; + + function handleScroll(wrapper, iframe) { + var key = 'MUI_SCROLL_POSITION_' + document.location.href + '_' + iframe.src; + var scrollTop = (parseFloat(localStorage.getItem(key)) || 0); + if (scrollTop) { + (function(y) { + iframe.onload = function() { + window.scrollTo(0, y); + }; + })(scrollTop); + } + setInterval(function() { + var _scrollTop = window.scrollY; + if (scrollTop !== _scrollTop) { + localStorage.setItem(key, _scrollTop + ''); + scrollTop = _scrollTop; + } + }, 100); + }; + $(function() { + var classList = document.body.classList; + var os = []; + if ($.os.ios) { + os.push({ + os: 'ios', + version: $.os.version + }); + classList.add('mui-ios'); + } else if ($.os.android) { + os.push({ + os: 'android', + version: $.os.version + }); + classList.add('mui-android'); + } + if ($.os.wechat) { + os.push({ + os: 'wechat', + version: $.os.wechat.version + }); + classList.add('mui-wechat'); + } + if (os.length) { + $.each(os, function(index, osObj) { + var version = ''; + var classArray = []; + if (osObj.version) { + $.each(osObj.version.split('.'), function(i, v) { + version = version + (version ? '-' : '') + v; + classList.add($.className(osObj.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 + }, + titleConfig: { + height: "44px", + backgroundColor: "#f7f7f7", //导航栏背景色 + bottomBorderColor: "#cccccc", //底部边线颜色 + title: { //标题配置 + text: "", //标题文字 + position: { + top: 0, + left: 0, + width: "100%", + height: "100%" + }, + styles: { + color: "#000000", + align: "center", + family: "'Helvetica Neue',Helvetica,sans-serif", + size: "17px", + style: "normal", + weight: "normal", + fontSrc: "" + } + }, + back: { + image: { + base64Data: '', + imgSrc: '', + sprite: { + top: '0px', + left: '0px', + width: '100%', + height: '100%' + }, + position: { + top: "10px", + left: "10px", + width: "24px", + height: "24px" + } + } + } + } + }; + + //默认页面动画 + var defaultShow = { + event:"titleUpdate", + autoShow: true, + duration: 300, + aniShow: 'slide-in-right', + extras:{} + }; + //若执行了显示动画初始化操作,则要覆盖默认配置 + if($.options.show) { + defaultShow = $.extend(true, defaultShow, $.options.show); + } + + $.currentWebview = null; + + $.extend(true, $.global, defaultOptions); + $.extend(true, $.options, defaultOptions); + /** + * 等待动画配置 + * @param {type} options + * @returns {Object} + */ + $.waitingOptions = function(options) { + return $.extend(true, {}, { + autoShow: true, + title: '', + modal: false + }, options); + }; + /** + * 窗口显示配置 + * @param {type} options + * @returns {Object} + */ + $.showOptions = function(options) { + return $.extend(true, {}, 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) { + setTimeout(function() { //解决callback与plusready事件的执行时机问题(典型案例:showWaiting,closeWaiting) + callback(); + }, 0); + } 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) { + if(typeof data === 'undefined') { + data = ''; + } else if(typeof data === 'boolean' || typeof data === 'number') { + webview.evalJS("typeof mui!=='undefined'&&mui.receive('" + eventType + "'," + data + ")"); + return; + } else if($.isPlainObject(data) || $.isArray(data)) { + data = JSON.stringify(data || {}).replace(/\'/g, "\\u0027").replace(/\\/g, "\\u005c"); + } + webview.evalJS("typeof mui!=='undefined'&&mui.receive('" + eventType + "','" + data + "')"); + } + }; + /** + * 5+ event(5+没提供之前我自己实现) + * @param {type} eventType + * @param {type} data + * @returns {undefined} + */ + $.receive = function(eventType, data) { + if(eventType) { + try { + if(data && typeof data === 'string') { + data = JSON.parse(data); + } + } catch(e) {} + $.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(typeof url === 'object') { + options = url; + url = options.url; + id = options.id || url; + } else { + if(typeof id === 'object') { + options = id; + id = options.id || url; + } else { + id = id || url; + } + } + if(!$.os.plus) { + //TODO 先临时这么处理:手机上顶层跳,PC上parent跳 + if($.os.ios || $.os.android) { + window.top.location.href = url; + } else { + window.parent.location.href = url; + } + return; + } + if(!window.plus) { + return; + } + + options = options || {}; + var params = options.params || {}; + var webview = null, + webviewCache = null, + nShow, nWaiting; + + if($.webviews[id]) { + webviewCache = $.webviews[id]; + //webview真实存在,才能获取 + if(plus.webview.getWebviewById(id)) { + webview = webviewCache.webview; + } + } else if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + if(webview) { //已缓存 + //每次show都需要传递动画参数; + //预加载的动画参数优先级:openWindow配置>preloadPages配置>mui默认配置; + nShow = webviewCache ? webviewCache.show : defaultShow; + nShow = options.show ? $.extend(nShow, options.show) : nShow; + nShow.autoShow && webview.show(nShow.aniShow, nShow.duration, function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }); + if(webviewCache) { + webviewCache.afterShowMethodName && webview.evalJS(webviewCache.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + } + return webview; + } else { //新窗口 + if(!url) { + throw new Error('webview[' + id + '] does not exist'); + } + + //显示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) { + var showWebview = function() { + //关闭等待框 + if(nWaiting) { + nWaiting.close(); + } + //显示页面 + webview.show(nShow.aniShow, nShow.duration, function() {},nShow.extras); + options.afterShowMethodName && webview.evalJS(options.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + }; + //titleUpdate触发时机早于loaded,更换为titleUpdate后,可以更早的显示webview + webview.addEventListener(nShow.event, showWebview, false); + //loaded事件发生后,触发预加载和pagebeforeshow事件 + webview.addEventListener("loaded", function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }, false); + } + } + return webview; + }; + + $.openWindowWithTitle = function(options, titleConfig) { + options = options || {}; + var url = options.url; + var id = options.id || url; + + if(!$.os.plus) { + //TODO 先临时这么处理:手机上顶层跳,PC上parent跳 + if($.os.ios || $.os.android) { + window.top.location.href = url; + } else { + window.parent.location.href = url; + } + return; + } + if(!window.plus) { + return; + } + + var params = options.params || {}; + var webview = null, + webviewCache = null, + nShow, nWaiting; + + if($.webviews[id]) { + webviewCache = $.webviews[id]; + //webview真实存在,才能获取 + if(plus.webview.getWebviewById(id)) { + webview = webviewCache.webview; + } + } else if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + if(webview) { //已缓存 + //每次show都需要传递动画参数; + //预加载的动画参数优先级:openWindow配置>preloadPages配置>mui默认配置; + nShow = webviewCache ? webviewCache.show : defaultShow; + nShow = options.show ? $.extend(nShow, options.show) : nShow; + nShow.autoShow && webview.show(nShow.aniShow, nShow.duration, function() { + triggerPreload(webview); + trigger(webview, 'pagebeforeshow', false); + }); + if(webviewCache) { + webviewCache.afterShowMethodName && webview.evalJS(webviewCache.afterShowMethodName + '(\'' + JSON.stringify(params) + '\')'); + } + return webview; + } else { //新窗口 + if(!url) { + throw new Error('webview[' + id + '] does not exist'); + } + + //显示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); + + if(titleConfig) { //处理原生头 + $.extend(true, $.options.titleConfig, titleConfig); + var tid = $.options.titleConfig.id ? $.options.titleConfig.id : id + "_title"; + var view = new plus.nativeObj.View(tid, { + top: 0, + height: $.options.titleConfig.height, + width: "100%", + dock: "top", + position: "dock" + }); + view.drawRect($.options.titleConfig.backgroundColor); //绘制背景色 + var _b = parseInt($.options.titleConfig.height) - 1; + view.drawRect($.options.titleConfig.bottomBorderColor, { + top: _b + "px", + left: "0px" + }); //绘制底部边线 + + //绘制文字 + if($.options.titleConfig.title.text){ + var _title = $.options.titleConfig.title; + view.drawText(_title.text,_title.position , _title.styles); + } + + //返回图标绘制 + var _back = $.options.titleConfig.back; + var backClick = null; + //优先字体 + + //其次是图片 + var _backImage = _back.image; + if(_backImage.base64Data || _backImage.imgSrc) { + //TODO 此处需要处理百分比的情况 + backClick = { + left:parseInt(_backImage.position.left), + right:parseInt(_backImage.position.left) + parseInt(_backImage.position.width) + }; + var bitmap = new plus.nativeObj.Bitmap(id + "_back"); + if(_backImage.base64Data) { //优先base64编码字符串 + bitmap.loadBase64Data(_backImage.base64Data); + } else { //其次加载图片文件 + bitmap.load(_backImage.imgSrc); + } + view.drawBitmap(bitmap,_backImage.sprite , _backImage.position); + } + + //处理点击事件 + view.setTouchEventRect({ + top: "0px", + left: "0px", + width: "100%", + height: "100%" + }); + view.interceptTouchEvent(true); + view.addEventListener("click", function(e) { + var x = e.clientX; + + //返回按钮点击 + if(backClick&& x > backClick.left && x < backClick.right){ + if( _back.click && $.isFunction(_back.click)){ + _back.click(); + }else{ + webview.evalJS("window.mui&&mui.back();"); + } + } + }, false); + webview.append(view); + + } + + //显示 + nShow = $.showOptions(options.show); + if(nShow.autoShow) { + //titleUpdate触发时机早于loaded,更换为titleUpdate后,可以更早的显示webview + webview.addEventListener(nShow.event, function () { + //关闭等待框 + if(nWaiting) { + nWaiting.close(); + } + //显示页面 + webview.show(nShow.aniShow, nShow.duration, function() {},nShow.extras); + }, 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 { //新增预加载窗口 + //判断是否携带createNew参数,默认为false + if(options.createNew !== true) { + webview = plus.webview.getWebviewById(id); + } + + //之前没有,那就新创建 + if(!webview) { + webview = plus.webview.create(options.url, id, $.windowOptions(options.styles), $.extend({ + preload: true + }, options.extras)); + if(options.subpages) { + $.each(options.subpages, function(index, subpage) { + var subpageId = subpage.id || subpage.url; + if(subpageId) { //过滤空对象 + var subWebview = plus.webview.getWebviewById(subpageId); + if(!subWebview) { //如果该webview不存在,则创建 + subWebview = plus.webview.create(subpage.url, subpageId, $.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 subpageId = subpage.id || subpage.url; + var subWebview = plus.webview.getWebviewById(subpageId); + if(!subWebview) { + subWebview = plus.webview.create(subpage.url, subpageId, $.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) { + //关闭打开的webview + $.closeOpened(openedWebview); + //关闭自己 + openedWebview.close("none"); + } 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的话; + if(!plus.webview.getWebviewById(id)) { + webview = plus.webview.create(options.url, id, options.styles, options.extras); + } + //之前的实现方案:子窗口loaded之后再append到父窗口中; + //问题:部分子窗口loaded事件发生较晚,此时执行父窗口的children方法会返回空,导致父子通讯失败; + // 比如父页面执行完preload事件后,需触发子页面的preload事件,此时未append的话,就无法触发; + //修改方式:不再监控loaded事件,直接append + //by chb@20150521 + // 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(); + }); + $.addInit({ + 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)) { + //首页需要自己激活预加载; + //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 { + //已支持iframe嵌入 + // 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 + })); + }); + + }); + }); + $.supportStatusbarOffset = function() { + return $.os.plus && $.os.ios && parseFloat($.os.version) >= 7; + }; + $.ready(function() { + //标识当前环境支持statusbar + if($.supportStatusbarOffset()) { + document.body.classList.add('mui-statusbar'); + } + }); +})(mui); + +/** + * mui back + * @param {type} $ + * @param {type} window + * @returns {undefined} + */ +(function($, window) { + /** + * register back + * @param {type} back + * @returns {$.gestures} + */ + $.addBack = function(back) { + return $.addAction('backs', back); + }; + /** + * default + */ + $.addBack({ + 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; + } + } + $.doAction('backs'); + }; + window.addEventListener('tap', function(e) { + var action = $.targets.action; + if (action && action.classList.contains('mui-action-back')) { + $.back(); + $.targets.action = false; + } + }); + 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) { + $.addBack({ + name: 'mui', + index: 5, + handle: function() { + //后续重新设计此处,将back放到各个空间内部实现 + //popover + if ($.targets._popover && $.targets._popover.classList.contains('mui-active')) { + $($.targets._popover).popover('hide'); + return true; + } + //offcanvas + var offCanvas = document.querySelector('.mui-off-canvas-wrap.mui-active'); + if (offCanvas) { + $(offCanvas).offCanvas('close'); + return true; + } + var previewImage = $.isFunction($.getPreviewImage) && $.getPreviewImage(); + if (previewImage && previewImage.isShown()) { + previewImage.close(); + return true; + } + //popup + return $.closePopup(); + } + }); + } + //首次按下back按键的时间 + $.__back__first = null; + /** + * 5+ back + */ + $.addBack({ + 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 + //fixed by fxy 此处不应该用opener判断,因为用户有可能自己close掉当前窗口的opener。这样的话。opener就为空了,导致不能执行close + if (wobj.id === plus.runtime.appid) { //首页 + //首页不存在opener的情况下,后退实际上应该是退出应用; + //首次按键,提示‘再按一次退出应用’ + if (!$.__back__first) { + $.__back__first = new Date().getTime(); + mui.toast('再按一次退出应用'); + setTimeout(function() { + $.__back__first = null; + }, 2000); + } else { + if (new Date().getTime() - $.__back__first < 2000) { + plus.runtime.quit(); + } + } + } else { //其他页面, + if (wobj.preload) { + wobj.hide("auto"); + } else { + //关闭页面时,需要将其打开的所有子页面全部关闭; + $.closeAll(wobj); + } + } + } + }); + } + return true; + } + }); + + + $.menu = function() { + var menu = document.querySelector('.mui-action-menu'); + if (menu) { + $.trigger(menu, $.EVENT_START); //临时处理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();'); + } + } + } + }; + var __back = function() { + $.back(); + }; + var __menu = function() { + $.menu(); + }; + //默认监听 + $.plusReady(function() { + if ($.options.keyEventBind.backbutton) { + plus.key.addEventListener('backbutton', __back, false); + } + if ($.options.keyEventBind.menubutton) { + plus.key.addEventListener('menubutton', __menu, false); + } + }); + //处理按键监听事件 + $.addInit({ + name: 'keyEventBind', + index: 1000, + handle: function() { + $.plusReady(function() { + //如果不为true,则移除默认监听 + if (!$.options.keyEventBind.backbutton) { + plus.key.removeEventListener('backbutton', __back); + } + if (!$.options.keyEventBind.menubutton) { + plus.key.removeEventListener('menubutton', __menu); + } + }); + } + }); +})(mui, window); +/** + * mui.init pulldownRefresh + * @param {type} $ + * @returns {undefined} + */ +(function($) { + $.addInit({ + 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) { //5+环境 + if(hasPulldown && pullRefreshOptions.down.style == "circle") { //原生转圈 + $.plusReady(function() { + //这里改写$.fn.pullRefresh + $.fn.pullRefresh = $.fn.pullRefresh_native; + $container.pullRefresh(pullRefreshOptions); + }); + + } else if($.os.android) { //非原生转圈,但是Android环境 + $.plusReady(function() { + //这里改写$.fn.pullRefresh + $.fn.pullRefresh = $.fn.pullRefresh_native + var webview = plus.webview.currentWebview(); + if(window.__NWin_Enable__ === false) { //不支持多webview + $container.pullRefresh(pullRefreshOptions); + } else { + 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//子页面id + }; + downOptions.down = $.extend({}, pullRefreshOptions.down); + downOptions.down.callback = '_CALLBACK'; + //改写父页面的$.fn.pullRefresh + parent.evalJS("mui.fn.pullRefresh=mui.fn.pullRefresh_native"); + //父页面初始化pulldown + parent.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify(downOptions) + "')"); + } + } + } + }); + } else { //非原生转圈,iOS环境 + $container.pullRefresh(pullRefreshOptions); + } + } else { + $container.pullRefresh(pullRefreshOptions); + } + } + } + } + } + }); +})(mui); +/** + * mui ajax + * @param {type} $ + * @returns {undefined} + */ +(function($, window, undefined) { + + var jsonType = 'application/json'; + var htmlType = 'text/html'; + var rscript = /)<[^<]*)*<\/script>/gi; + var scriptTypeRE = /^(?:text|application)\/javascript/i; + var xmlTypeRE = /^(?:text|application)\/xml/i; + var blankRE = /^\s*$/; + + $.ajaxSettings = { + type: 'GET', + beforeSend: $.noop, + success: $.noop, + error: $.noop, + complete: $.noop, + context: null, + xhr: function(protocol) { + return new window.XMLHttpRequest(); + }, + accepts: { + script: 'text/javascript, application/javascript, application/x-javascript', + json: jsonType, + xml: 'application/xml, text/xml', + html: htmlType, + text: 'text/plain' + }, + timeout: 0, + processData: true, + cache: true + }; + var ajaxBeforeSend = function(xhr, settings) { + var context = settings.context + if(settings.beforeSend.call(context, xhr, settings) === false) { + return false; + } + }; + var ajaxSuccess = function(data, xhr, settings) { + settings.success.call(settings.context, data, 'success', xhr); + ajaxComplete('success', xhr, settings); + }; + // type: "timeout", "error", "abort", "parsererror" + var ajaxError = function(error, type, xhr, settings) { + settings.error.call(settings.context, xhr, type, error); + ajaxComplete(type, xhr, settings); + }; + // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" + var ajaxComplete = function(status, xhr, settings) { + settings.complete.call(settings.context, xhr, status); + }; + + var serialize = function(params, obj, traditional, scope) { + var type, array = $.isArray(obj), + hash = $.isPlainObject(obj); + $.each(obj, function(key, value) { + type = $.type(value); + if(scope) { + key = traditional ? scope : + scope + '[' + (hash || type === 'object' || type === 'array' ? key : '') + ']'; + } + // handle data in serializeArray() format + if(!scope && array) { + params.add(value.name, value.value); + } + // recurse into nested objects + else if(type === "array" || (!traditional && type === "object")) { + serialize(params, value, traditional, key); + } else { + params.add(key, value); + } + }); + }; + var serializeData = function(options) { + if(options.processData && options.data && typeof options.data !== "string") { + var contentType = options.contentType; + if(!contentType && options.headers) { + contentType = options.headers['Content-Type']; + } + if(contentType && ~contentType.indexOf(jsonType)) { //application/json + options.data = JSON.stringify(options.data); + } else { + options.data = $.param(options.data, options.traditional); + } + } + if(options.data && (!options.type || options.type.toUpperCase() === 'GET')) { + options.url = appendQuery(options.url, options.data); + options.data = undefined; + } + }; + var appendQuery = function(url, query) { + if(query === '') { + return url; + } + return(url + '&' + query).replace(/[&?]{1,2}/, '?'); + }; + var mimeToDataType = function(mime) { + if(mime) { + mime = mime.split(';', 2)[0]; + } + return mime && (mime === htmlType ? 'html' : + mime === jsonType ? 'json' : + scriptTypeRE.test(mime) ? 'script' : + xmlTypeRE.test(mime) && 'xml') || 'text'; + }; + var parseArguments = function(url, data, success, dataType) { + if($.isFunction(data)) { + dataType = success, success = data, data = undefined; + } + if(!$.isFunction(success)) { + dataType = success, success = undefined; + } + return { + url: url, + data: data, + success: success, + dataType: dataType + }; + }; + $.ajax = function(url, options) { + if(typeof url === "object") { + options = url; + url = undefined; + } + var settings = options || {}; + settings.url = url || settings.url; + for(var key in $.ajaxSettings) { + if(settings[key] === undefined) { + settings[key] = $.ajaxSettings[key]; + } + } + serializeData(settings); + var dataType = settings.dataType; + + if(settings.cache === false || ((!options || options.cache !== true) && ('script' === dataType))) { + settings.url = appendQuery(settings.url, '_=' + $.now()); + } + var mime = settings.accepts[dataType && dataType.toLowerCase()]; + var headers = {}; + var setHeader = function(name, value) { + headers[name.toLowerCase()] = [name, value]; + }; + var protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol; + var xhr = settings.xhr(settings); + + if(location.protocol === 'file:' && $.os.ios && window.webkit && window.webkit.messageHandlers && !(xhr instanceof plus.net.XMLHttpRequest)){ + console.error("当前运行环境为WKWebview,需在plusReady事件触发后再调用mui.ajax,否则可能会执行失败或报Script error的错误") + } + var nativeSetHeader = xhr.setRequestHeader; + var abortTimeout; + + setHeader('X-Requested-With', 'XMLHttpRequest'); + setHeader('Accept', mime || '*/*'); + if(!!(mime = settings.mimeType || mime)) { + if(mime.indexOf(',') > -1) { + mime = mime.split(',', 2)[0]; + } + xhr.overrideMimeType && xhr.overrideMimeType(mime); + } + if(settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() !== 'GET')) { + setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded'); + } + if(settings.headers) { + for(var name in settings.headers) + setHeader(name, settings.headers[name]); + } + xhr.setRequestHeader = setHeader; + + xhr.onreadystatechange = function() { + if(xhr.readyState === 4) { + xhr.onreadystatechange = $.noop; + clearTimeout(abortTimeout); + var result, error = false; + var isLocal = protocol === 'file:'; + if((xhr.status >= 200 && xhr.status < 300) || xhr.status === 304 || (xhr.status === 0 && isLocal && xhr.responseText)) { + dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type')); + result = xhr.responseText; + try { + // http://perfectionkills.com/global-eval-what-are-the-options/ + if(dataType === 'script') { + (1, eval)(result); + } else if(dataType === 'xml') { + result = xhr.responseXML; + } else if(dataType === 'json') { + result = blankRE.test(result) ? null : $.parseJSON(result); + } + } catch(e) { + error = e; + } + + if(error) { + ajaxError(error, 'parsererror', xhr, settings); + } else { + ajaxSuccess(result, xhr, settings); + } + } else { + var status = xhr.status ? 'error' : 'abort'; + var statusText = xhr.statusText || null; + if(isLocal) { + status = 'error'; + statusText = '404'; + } + ajaxError(statusText, status, xhr, settings); + } + } + }; + if(ajaxBeforeSend(xhr, settings) === false) { + xhr.abort(); + ajaxError(null, 'abort', xhr, settings); + return xhr; + } + + if(settings.xhrFields) { + for(var name in settings.xhrFields) { + xhr[name] = settings.xhrFields[name]; + } + } + + var async = 'async' in settings ? settings.async : true; + + xhr.open(settings.type.toUpperCase(), settings.url, async, settings.username, settings.password); + + for(var name in headers) { + if(headers.hasOwnProperty(name)) { + nativeSetHeader.apply(xhr, headers[name]); + } + } + if(settings.timeout > 0) { + abortTimeout = setTimeout(function() { + xhr.onreadystatechange = $.noop; + xhr.abort(); + ajaxError(null, 'timeout', xhr, settings); + }, settings.timeout); + } + xhr.send(settings.data ? settings.data : null); + return xhr; + }; + + $.param = function(obj, traditional) { + var params = []; + params.add = function(k, v) { + this.push(encodeURIComponent(k) + '=' + encodeURIComponent(v)); + }; + serialize(params, obj, traditional); + return params.join('&').replace(/%20/g, '+'); + }; + $.get = function( /* url, data, success, dataType */ ) { + return $.ajax(parseArguments.apply(null, arguments)); + }; + + $.post = function( /* url, data, success, dataType */ ) { + var options = parseArguments.apply(null, arguments); + options.type = 'POST'; + return $.ajax(options); + }; + + $.getJSON = function( /* url, data, success */ ) { + var options = parseArguments.apply(null, arguments); + options.dataType = 'json'; + return $.ajax(options); + }; + + $.fn.load = function(url, data, success) { + if(!this.length) + return this; + var self = this, + parts = url.split(/\s/), + selector, + options = parseArguments(url, data, success), + callback = options.success; + if(parts.length > 1) + options.url = parts[0], selector = parts[1]; + options.success = function(response) { + if(selector) { + var div = document.createElement('div'); + div.innerHTML = response.replace(rscript, ""); + var selectorDiv = document.createElement('div'); + var childs = div.querySelectorAll(selector); + if(childs && childs.length > 0) { + for(var i = 0, len = childs.length; i < len; i++) { + selectorDiv.appendChild(childs[i]); + } + } + self[0].innerHTML = selectorDiv.innerHTML; + } else { + self[0].innerHTML = response; + } + callback && callback.apply(self, arguments); + }; + $.ajax(options); + return this; + }; + +})(mui, window); +/** + * 5+ ajax + */ +(function($) { + var originAnchor = document.createElement('a'); + originAnchor.href = window.location.href; + $.plusReady(function() { + $.ajaxSettings = $.extend($.ajaxSettings, { + xhr: function(settings) { + if (settings.crossDomain) { //强制使用plus跨域 + return new plus.net.XMLHttpRequest(); + } + //仅在webview的url为远程文件,且ajax请求的资源不同源下使用plus.net.XMLHttpRequest + if (originAnchor.protocol !== 'file:') { + var urlAnchor = document.createElement('a'); + urlAnchor.href = settings.url; + urlAnchor.href = urlAnchor.href; + settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host); + if (settings.crossDomain) { + return new plus.net.XMLHttpRequest(); + } + } + if ($.os.ios && window.webkit && window.webkit.messageHandlers) { //wkwebview下同样使用5+ xhr + return new plus.net.XMLHttpRequest(); + } + return new window.XMLHttpRequest(); + } + }); + }); +})(mui); +/** + * mui layout(offset[,position,width,height...]) + * @param {type} $ + * @param {type} window + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, undefined) { + $.offset = function(element) { + var box = { + top : 0, + left : 0 + }; + if ( typeof element.getBoundingClientRect !== undefined) { + box = element.getBoundingClientRect(); + } + return { + top : box.top + window.pageYOffset - element.clientTop, + left : box.left + window.pageXOffset - element.clientLeft + }; + }; +})(mui, window); +/** + * mui animation + */ +(function($, window) { + /** + * scrollTo + */ + $.scrollTo = function(scrollTop, duration, callback) { + duration = duration || 1000; + var scroll = function(duration) { + if (duration <= 0) { + window.scrollTo(0, scrollTop); + callback && callback(); + return; + } + var distaince = scrollTop - window.scrollY; + setTimeout(function() { + window.scrollTo(0, window.scrollY + distaince / duration * 10); + scroll(duration - 10); + }, 16.7); + }; + scroll(duration); + }; + $.animationFrame = function(cb) { + var args, isQueued, context; + return function() { + args = arguments; + context = this; + if (!isQueued) { + isQueued = true; + requestAnimationFrame(function() { + cb.apply(context, args); + isQueued = false; + }); + } + }; + }; + +})(mui, window); +(function($) { + var initializing = false, + fnTest = /xyz/.test(function() { + xyz; + }) ? /\b_super\b/ : /.*/; + + var Class = function() {}; + Class.extend = function(prop) { + var _super = this.prototype; + initializing = true; + var prototype = new this(); + initializing = false; + for (var name in prop) { + prototype[name] = typeof prop[name] == "function" && + typeof _super[name] == "function" && fnTest.test(prop[name]) ? + (function(name, fn) { + return function() { + var tmp = this._super; + + this._super = _super[name]; + + var ret = fn.apply(this, arguments); + this._super = tmp; + + return ret; + }; + })(name, prop[name]) : + prop[name]; + } + function Class() { + if (!initializing && this.init) + this.init.apply(this, arguments); + } + Class.prototype = prototype; + Class.prototype.constructor = Class; + Class.extend = arguments.callee; + return Class; + }; + $.Class = Class; +})(mui); +(function($, document, undefined) { + var CLASS_PULL_TOP_POCKET = 'mui-pull-top-pocket'; + var CLASS_PULL_BOTTOM_POCKET = 'mui-pull-bottom-pocket'; + var CLASS_PULL = 'mui-pull'; + var CLASS_PULL_LOADING = 'mui-pull-loading'; + var CLASS_PULL_CAPTION = 'mui-pull-caption'; + var CLASS_PULL_CAPTION_DOWN = 'mui-pull-caption-down'; + var CLASS_PULL_CAPTION_REFRESH = 'mui-pull-caption-refresh'; + var CLASS_PULL_CAPTION_NOMORE = 'mui-pull-caption-nomore'; + + var CLASS_ICON = 'mui-icon'; + var CLASS_SPINNER = 'mui-spinner'; + var CLASS_ICON_PULLDOWN = 'mui-icon-pulldown'; + + var CLASS_BLOCK = 'mui-block'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_VISIBILITY = 'mui-visibility'; + + var CLASS_LOADING_UP = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_ICON_PULLDOWN; + var CLASS_LOADING_DOWN = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_ICON_PULLDOWN; + var CLASS_LOADING = CLASS_PULL_LOADING + ' ' + CLASS_ICON + ' ' + CLASS_SPINNER; + + var pocketHtml = ['
', '
', '
{contentrefresh}
', '
'].join(''); + + var PullRefresh = { + init: function(element, options) { + this._super(element, $.extend(true, { + scrollY: true, + scrollX: false, + indicators: true, + deceleration: 0.003, + down: { + height: 50, + contentinit: '下拉可以刷新', + contentdown: '下拉可以刷新', + contentover: '释放立即刷新', + contentrefresh: '正在刷新...' + }, + up: { + height: 50, + auto: false, + contentinit: '上拉显示更多', + contentdown: '上拉显示更多', + contentrefresh: '正在加载...', + contentnomore: '没有更多数据了', + duration: 300 + } + }, options)); + }, + _init: function() { + this._super(); + this._initPocket(); + }, + _initPulldownRefresh: function() { + this.pulldown = true; + if (this.topPocket) { + this.pullPocket = this.topPocket; + this.pullPocket.classList.add(CLASS_BLOCK); + this.pullPocket.classList.add(CLASS_VISIBILITY); + this.pullCaption = this.topCaption; + this.pullLoading = this.topLoading; + } + }, + _initPullupRefresh: function() { + this.pulldown = false; + if (this.bottomPocket) { + this.pullPocket = this.bottomPocket; + this.pullPocket.classList.add(CLASS_BLOCK); + this.pullPocket.classList.add(CLASS_VISIBILITY); + this.pullCaption = this.bottomCaption; + this.pullLoading = this.bottomLoading; + } + }, + _initPocket: function() { + var options = this.options; + if (options.down && options.down.hasOwnProperty('callback')) { + this.topPocket = this.scroller.querySelector('.' + CLASS_PULL_TOP_POCKET); + if (!this.topPocket) { + this.topPocket = this._createPocket(CLASS_PULL_TOP_POCKET, options.down, CLASS_LOADING_DOWN); + this.wrapper.insertBefore(this.topPocket, this.wrapper.firstChild); + } + this.topLoading = this.topPocket.querySelector('.' + CLASS_PULL_LOADING); + this.topCaption = this.topPocket.querySelector('.' + CLASS_PULL_CAPTION); + } + if (options.up && options.up.hasOwnProperty('callback')) { + this.bottomPocket = this.scroller.querySelector('.' + CLASS_PULL_BOTTOM_POCKET); + if (!this.bottomPocket) { + this.bottomPocket = this._createPocket(CLASS_PULL_BOTTOM_POCKET, options.up, CLASS_LOADING); + this.scroller.appendChild(this.bottomPocket); + } + this.bottomLoading = this.bottomPocket.querySelector('.' + CLASS_PULL_LOADING); + this.bottomCaption = this.bottomPocket.querySelector('.' + CLASS_PULL_CAPTION); + //TODO only for h5 + this.wrapper.addEventListener('scrollbottom', this); + } + }, + _createPocket: function(clazz, options, iconClass) { + var pocket = document.createElement('div'); + pocket.className = clazz; + pocket.innerHTML = pocketHtml.replace('{contentrefresh}', options.contentinit).replace('{icon}', iconClass); + return pocket; + }, + _resetPullDownLoading: function() { + var loading = this.pullLoading; + if (loading) { + this.pullCaption.innerHTML = this.options.down.contentdown; + loading.style.webkitTransition = ""; + loading.style.webkitTransform = ""; + loading.style.webkitAnimation = ""; + loading.className = CLASS_LOADING_DOWN; + } + }, + _setCaptionClass: function(isPulldown, caption, title) { + if (!isPulldown) { + switch (title) { + case this.options.up.contentdown: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + break; + case this.options.up.contentrefresh: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_REFRESH + break; + case this.options.up.contentnomore: + caption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE; + break; + } + } + }, + _setCaption: function(title, reset) { + if (this.loading) { + return; + } + var options = this.options; + var pocket = this.pullPocket; + var caption = this.pullCaption; + var loading = this.pullLoading; + var isPulldown = this.pulldown; + var self = this; + if (pocket) { + if (reset) { + setTimeout(function() { + caption.innerHTML = self.lastTitle = title; + if (isPulldown) { + loading.className = CLASS_LOADING_DOWN; + } else { + self._setCaptionClass(false, caption, title); + loading.className = CLASS_LOADING; + } + loading.style.webkitAnimation = ""; + loading.style.webkitTransition = ""; + loading.style.webkitTransform = ""; + }, 100); + } else { + if (title !== this.lastTitle) { + caption.innerHTML = title; + if (isPulldown) { + if (title === options.down.contentrefresh) { + loading.className = CLASS_LOADING; + loading.style.webkitAnimation = "spinner-spin 1s step-end infinite"; + } else if (title === options.down.contentover) { + loading.className = CLASS_LOADING_UP; + loading.style.webkitTransition = "-webkit-transform 0.3s ease-in"; + loading.style.webkitTransform = "rotate(180deg)"; + } else if (title === options.down.contentdown) { + loading.className = CLASS_LOADING_DOWN; + loading.style.webkitTransition = "-webkit-transform 0.3s ease-in"; + loading.style.webkitTransform = "rotate(0deg)"; + } + } else { + if (title === options.up.contentrefresh) { + loading.className = CLASS_LOADING + ' ' + CLASS_VISIBILITY; + } else { + loading.className = CLASS_LOADING + ' ' + CLASS_HIDDEN; + } + self._setCaptionClass(false, caption, title); + } + this.lastTitle = title; + } + } + + } + } + }; + $.PullRefresh = PullRefresh; +})(mui, document); +(function($, window, document, undefined) { + var CLASS_SCROLL = 'mui-scroll'; + var CLASS_SCROLLBAR = 'mui-scrollbar'; + var CLASS_INDICATOR = 'mui-scrollbar-indicator'; + var CLASS_SCROLLBAR_VERTICAL = CLASS_SCROLLBAR + '-vertical'; + var CLASS_SCROLLBAR_HORIZONTAL = CLASS_SCROLLBAR + '-horizontal'; + + var CLASS_ACTIVE = 'mui-active'; + + var ease = { + quadratic: { + style: 'cubic-bezier(0.25, 0.46, 0.45, 0.94)', + fn: function(k) { + return k * (2 - k); + } + }, + circular: { + style: 'cubic-bezier(0.1, 0.57, 0.1, 1)', + fn: function(k) { + return Math.sqrt(1 - (--k * k)); + } + }, + outCirc: { + style: 'cubic-bezier(0.075, 0.82, 0.165, 1)' + }, + outCubic: { + style: 'cubic-bezier(0.165, 0.84, 0.44, 1)' + } + } + var Scroll = $.Class.extend({ + init: function(element, options) { + this.wrapper = this.element = element; + this.scroller = this.wrapper.children[0]; + this.scrollerStyle = this.scroller && this.scroller.style; + this.stopped = false; + + this.options = $.extend(true, { + scrollY: true, //是否竖向滚动 + scrollX: false, //是否横向滚动 + startX: 0, //初始化时滚动至x + startY: 0, //初始化时滚动至y + + indicators: true, //是否显示滚动条 + stopPropagation: false, + hardwareAccelerated: true, + fixedBadAndorid: false, + preventDefaultException: { + tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/ + }, + momentum: true, + + snapX: 0.5, //横向切换距离(以当前容器宽度为基准) + snap: false, //图片轮播,拖拽式选项卡 + + bounce: true, //是否启用回弹 + bounceTime: 500, //回弹动画时间 + bounceEasing: ease.outCirc, //回弹动画曲线 + + scrollTime: 500, + scrollEasing: ease.outCubic, //轮播动画曲线 + + directionLockThreshold: 5, + + parallaxElement: false, //视差元素 + parallaxRatio: 0.5 + }, options); + + this.x = 0; + this.y = 0; + this.translateZ = this.options.hardwareAccelerated ? ' translateZ(0)' : ''; + + this._init(); + if (this.scroller) { + this.refresh(); + // if (this.options.startX !== 0 || this.options.startY !== 0) { //需要判断吗?后续根据实际情况再看看 + this.scrollTo(this.options.startX, this.options.startY); + // } + } + }, + _init: function() { + this._initParallax(); + this._initIndicators(); + this._initEvent(); + }, + _initParallax: function() { + if (this.options.parallaxElement) { + this.parallaxElement = document.querySelector(this.options.parallaxElement); + this.parallaxStyle = this.parallaxElement.style; + this.parallaxHeight = this.parallaxElement.offsetHeight; + this.parallaxImgStyle = this.parallaxElement.querySelector('img').style; + } + }, + _initIndicators: function() { + var self = this; + self.indicators = []; + if (!this.options.indicators) { + return; + } + var indicators = [], + indicator; + + // Vertical scrollbar + if (self.options.scrollY) { + indicator = { + el: this._createScrollBar(CLASS_SCROLLBAR_VERTICAL), + listenX: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + // Horizontal scrollbar + if (this.options.scrollX) { + indicator = { + el: this._createScrollBar(CLASS_SCROLLBAR_HORIZONTAL), + listenY: false + }; + + this.wrapper.appendChild(indicator.el); + indicators.push(indicator); + } + + for (var i = indicators.length; i--;) { + this.indicators.push(new Indicator(this, indicators[i])); + } + + }, + _initSnap: function() { + this.currentPage = {}; + this.pages = []; + var snaps = this.snaps; + var length = snaps.length; + var m = 0; + var n = -1; + var x = 0; + var leftX = 0; + var rightX = 0; + var snapX = 0; + for (var i = 0; i < length; i++) { + var snap = snaps[i]; + var offsetLeft = snap.offsetLeft; + var offsetWidth = snap.offsetWidth; + if (i === 0 || offsetLeft <= snaps[i - 1].offsetLeft) { + m = 0; + n++; + } + if (!this.pages[m]) { + this.pages[m] = []; + } + x = this._getSnapX(offsetLeft); + snapX = Math.round((offsetWidth) * this.options.snapX); + leftX = x - snapX; + rightX = x - offsetWidth + snapX; + this.pages[m][n] = { + x: x, + leftX: leftX, + rightX: rightX, + pageX: m, + element: snap + } + if (snap.classList.contains(CLASS_ACTIVE)) { + this.currentPage = this.pages[m][0]; + } + if (x >= this.maxScrollX) { + m++; + } + } + this.options.startX = this.currentPage.x || 0; + }, + _getSnapX: function(offsetLeft) { + return Math.max(Math.min(0, -offsetLeft + (this.wrapperWidth / 2)), this.maxScrollX); + }, + _gotoPage: function(index) { + this.currentPage = this.pages[Math.min(index, this.pages.length - 1)][0]; + for (var i = 0, len = this.snaps.length; i < len; i++) { + if (i === index) { + this.snaps[i].classList.add(CLASS_ACTIVE); + } else { + this.snaps[i].classList.remove(CLASS_ACTIVE); + } + } + this.scrollTo(this.currentPage.x, 0, this.options.scrollTime); + }, + _nearestSnap: function(x) { + if (!this.pages.length) { + return { + x: 0, + pageX: 0 + }; + } + var i = 0; + var length = this.pages.length; + if (x > 0) { + x = 0; + } else if (x < this.maxScrollX) { + x = this.maxScrollX; + } + for (; i < length; i++) { + var nearestX = this.direction === 'left' ? this.pages[i][0].leftX : this.pages[i][0].rightX; + if (x >= nearestX) { + return this.pages[i][0]; + } + } + return { + x: 0, + pageX: 0 + }; + }, + _initEvent: function(detach) { + var action = detach ? 'removeEventListener' : 'addEventListener'; + window[action]('orientationchange', this); + window[action]('resize', this); + + this.scroller[action]('webkitTransitionEnd', this); + + this.wrapper[action]($.EVENT_START, this); + this.wrapper[action]($.EVENT_CANCEL, this); + this.wrapper[action]($.EVENT_END, this); + this.wrapper[action]('drag', this); + this.wrapper[action]('dragend', this); + this.wrapper[action]('flick', this); + this.wrapper[action]('scrollend', this); + if (this.options.scrollX) { + this.wrapper[action]('swiperight', this); + } + var segmentedControl = this.wrapper.querySelector('.mui-segmented-control'); + if (segmentedControl) { //靠,这个bug排查了一下午,阻止hash跳转,一旦hash跳转会导致可拖拽选项卡的tab不见 + mui(segmentedControl)[detach ? 'off' : 'on']('click', 'a', $.preventDefault); + } + + this.wrapper[action]('scrollstart', this); + this.wrapper[action]('refresh', this); + }, + _handleIndicatorScrollend: function() { + this.indicators.map(function(indicator) { + indicator.fade(); + }); + }, + _handleIndicatorScrollstart: function() { + this.indicators.map(function(indicator) { + indicator.fade(1); + }); + }, + _handleIndicatorRefresh: function() { + this.indicators.map(function(indicator) { + indicator.refresh(); + }); + }, + handleEvent: function(e) { + if (this.stopped) { + this.resetPosition(); + return; + } + + switch (e.type) { + case $.EVENT_START: + this._start(e); + break; + case 'drag': + this.options.stopPropagation && e.stopPropagation(); + this._drag(e); + break; + case 'dragend': + case 'flick': + this.options.stopPropagation && e.stopPropagation(); + this._flick(e); + break; + case $.EVENT_CANCEL: + case $.EVENT_END: + this._end(e); + break; + case 'webkitTransitionEnd': + this.transitionTimer && this.transitionTimer.cancel(); + this._transitionEnd(e); + break; + case 'scrollstart': + this._handleIndicatorScrollstart(e); + break; + case 'scrollend': + this._handleIndicatorScrollend(e); + this._scrollend(e); + e.stopPropagation(); + break; + case 'orientationchange': + case 'resize': + this._resize(); + break; + case 'swiperight': + e.stopPropagation(); + break; + case 'refresh': + this._handleIndicatorRefresh(e); + break; + + } + }, + _start: function(e) { + this.moved = this.needReset = false; + this._transitionTime(); + if (this.isInTransition) { + this.needReset = true; + this.isInTransition = false; + var pos = $.parseTranslateMatrix($.getStyles(this.scroller, 'webkitTransform')); + this.setTranslate(Math.round(pos.x), Math.round(pos.y)); + // this.resetPosition(); //reset + $.trigger(this.scroller, 'scrollend', this); + // e.stopPropagation(); + e.preventDefault(); + } + this.reLayout(); + $.trigger(this.scroller, 'beforescrollstart', this); + }, + _getDirectionByAngle: function(angle) { + if (angle < -80 && angle > -100) { + return 'up'; + } else if (angle >= 80 && angle < 100) { + return 'down'; + } else if (angle >= 170 || angle <= -170) { + return 'left'; + } else if (angle >= -35 && angle <= 10) { + return 'right'; + } + return null; + }, + _drag: function(e) { + // if (this.needReset) { + // e.stopPropagation(); //disable parent drag(nested scroller) + // return; + // } + var detail = e.detail; + if (this.options.scrollY || detail.direction === 'up' || detail.direction === 'down') { //如果是竖向滚动或手势方向是上或下 + //ios8 hack + if ($.os.ios && parseFloat($.os.version) >= 8) { //多webview时,离开当前webview会导致后续touch事件不触发 + var clientY = detail.gesture.touches[0].clientY; + //下拉刷新 or 上拉加载 + if ((clientY + 10) > window.innerHeight || clientY < 10) { + this.resetPosition(this.options.bounceTime); + return; + } + } + } + var isPreventDefault = isReturn = false; + var direction = this._getDirectionByAngle(detail.angle); + if (detail.direction === 'left' || detail.direction === 'right') { + if (this.options.scrollX) { + isPreventDefault = true; + if (!this.moved) { //识别角度(该角度导致轮播不灵敏) + // if (direction !== 'left' && direction !== 'right') { + // isReturn = true; + // } else { + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + // } + } + } else if (this.options.scrollY && !this.moved) { + isReturn = true; + } + } else if (detail.direction === 'up' || detail.direction === 'down') { + if (this.options.scrollY) { + isPreventDefault = true; + // if (!this.moved) { //识别角度,竖向滚动似乎没必要进行小角度验证 + // if (direction !== 'up' && direction !== 'down') { + // isReturn = true; + // } + // } + if (!this.moved) { + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + } + } else if (this.options.scrollX && !this.moved) { + isReturn = true; + } + } else { + isReturn = true; + } + if (this.moved || isPreventDefault) { + e.stopPropagation(); //阻止冒泡(scroll类嵌套) + detail.gesture && detail.gesture.preventDefault(); + } + if (isReturn) { //禁止非法方向滚动 + return; + } + if (!this.moved) { + $.trigger(this.scroller, 'scrollstart', this); + } else { + e.stopPropagation(); //move期间阻止冒泡(scroll嵌套) + } + var deltaX = 0; + var deltaY = 0; + if (!this.moved) { //start + deltaX = detail.deltaX; + deltaY = detail.deltaY; + } else { //move + deltaX = detail.deltaX - $.gestures.session.prevTouch.deltaX; + deltaY = detail.deltaY - $.gestures.session.prevTouch.deltaY; + } + var absDeltaX = Math.abs(detail.deltaX); + var absDeltaY = Math.abs(detail.deltaY); + if (absDeltaX > absDeltaY + this.options.directionLockThreshold) { + deltaY = 0; + } else if (absDeltaY >= absDeltaX + this.options.directionLockThreshold) { + deltaX = 0; + } + + deltaX = this.hasHorizontalScroll ? deltaX : 0; + deltaY = this.hasVerticalScroll ? deltaY : 0; + var newX = this.x + deltaX; + var newY = this.y + deltaY; + // Slow down if outside of the boundaries + if (newX > 0 || newX < this.maxScrollX) { + newX = this.options.bounce ? this.x + deltaX / 3 : newX > 0 ? 0 : this.maxScrollX; + } + if (newY > 0 || newY < this.maxScrollY) { + newY = this.options.bounce ? this.y + deltaY / 3 : newY > 0 ? 0 : this.maxScrollY; + } + + if (!this.requestAnimationFrame) { + this._updateTranslate(); + } + this.direction = detail.deltaX > 0 ? 'right' : 'left'; + this.moved = true; + this.x = newX; + this.y = newY; + $.trigger(this.scroller, 'scroll', this); + }, + _flick: function(e) { + // if (!this.moved || this.needReset) { + // return; + // } + if (!this.moved) { + return; + } + e.stopPropagation(); + var detail = e.detail; + this._clearRequestAnimationFrame(); + if (e.type === 'dragend' && detail.flick) { //dragend + return; + } + + var newX = Math.round(this.x); + var newY = Math.round(this.y); + + this.isInTransition = false; + // reset if we are outside of the boundaries + if (this.resetPosition(this.options.bounceTime)) { + return; + } + + this.scrollTo(newX, newY); // ensures that the last position is rounded + + if (e.type === 'dragend') { //dragend + $.trigger(this.scroller, 'scrollend', this); + return; + } + var time = 0; + var easing = ''; + // start momentum animation if needed + if (this.options.momentum && detail.flickTime < 300) { + momentumX = this.hasHorizontalScroll ? this._momentum(this.x, detail.flickDistanceX, detail.flickTime, this.maxScrollX, this.options.bounce ? this.wrapperWidth : 0, this.options.deceleration) : { + destination: newX, + duration: 0 + }; + momentumY = this.hasVerticalScroll ? this._momentum(this.y, detail.flickDistanceY, detail.flickTime, this.maxScrollY, this.options.bounce ? this.wrapperHeight : 0, this.options.deceleration) : { + destination: newY, + duration: 0 + }; + newX = momentumX.destination; + newY = momentumY.destination; + time = Math.max(momentumX.duration, momentumY.duration); + this.isInTransition = true; + } + + if (newX != this.x || newY != this.y) { + if (newX > 0 || newX < this.maxScrollX || newY > 0 || newY < this.maxScrollY) { + easing = ease.quadratic; + } + this.scrollTo(newX, newY, time, easing); + return; + } + + $.trigger(this.scroller, 'scrollend', this); + // e.stopPropagation(); + }, + _end: function(e) { + this.needReset = false; + if ((!this.moved && this.needReset) || e.type === $.EVENT_CANCEL) { + this.resetPosition(); + } + }, + _transitionEnd: function(e) { + if (e.target != this.scroller || !this.isInTransition) { + return; + } + this._transitionTime(); + if (!this.resetPosition(this.options.bounceTime)) { + this.isInTransition = false; + $.trigger(this.scroller, 'scrollend', this); + } + }, + _scrollend: function(e) { + if ((this.y === 0 && this.maxScrollY === 0) || (Math.abs(this.y) > 0 && this.y <= this.maxScrollY)) { + $.trigger(this.scroller, 'scrollbottom', this); + } + }, + _resize: function() { + var that = this; + clearTimeout(that.resizeTimeout); + that.resizeTimeout = setTimeout(function() { + that.refresh(); + }, that.options.resizePolling); + }, + _transitionTime: function(time) { + time = time || 0; + this.scrollerStyle['webkitTransitionDuration'] = time + 'ms'; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = time + 'ms'; + } + if (this.options.fixedBadAndorid && !time && $.os.isBadAndroid) { + this.scrollerStyle['webkitTransitionDuration'] = '0.001s'; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = '0.001s'; + } + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].transitionTime(time); + } + } + if (time) { //自定义timer,保证webkitTransitionEnd始终触发 + this.transitionTimer && this.transitionTimer.cancel(); + this.transitionTimer = $.later(function() { + $.trigger(this.scroller, 'webkitTransitionEnd'); + }, time + 100, this); + } + }, + _transitionTimingFunction: function(easing) { + this.scrollerStyle['webkitTransitionTimingFunction'] = easing; + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + this.parallaxStyle['webkitTransitionDuration'] = easing; + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].transitionTimingFunction(easing); + } + } + }, + _translate: function(x, y) { + this.x = x; + this.y = y; + }, + _clearRequestAnimationFrame: function() { + if (this.requestAnimationFrame) { + cancelAnimationFrame(this.requestAnimationFrame); + this.requestAnimationFrame = null; + } + }, + _updateTranslate: function() { + var self = this; + if (self.x !== self.lastX || self.y !== self.lastY) { + self.setTranslate(self.x, self.y); + } + self.requestAnimationFrame = requestAnimationFrame(function() { + self._updateTranslate(); + }); + }, + _createScrollBar: function(clazz) { + var scrollbar = document.createElement('div'); + var indicator = document.createElement('div'); + scrollbar.className = CLASS_SCROLLBAR + ' ' + clazz; + indicator.className = CLASS_INDICATOR; + scrollbar.appendChild(indicator); + if (clazz === CLASS_SCROLLBAR_VERTICAL) { + this.scrollbarY = scrollbar; + this.scrollbarIndicatorY = indicator; + } else if (clazz === CLASS_SCROLLBAR_HORIZONTAL) { + this.scrollbarX = scrollbar; + this.scrollbarIndicatorX = indicator; + } + this.wrapper.appendChild(scrollbar); + return scrollbar; + }, + _preventDefaultException: function(el, exceptions) { + for (var i in exceptions) { + if (exceptions[i].test(el[i])) { + return true; + } + } + return false; + }, + _reLayout: function() { + if (!this.hasHorizontalScroll) { + this.maxScrollX = 0; + this.scrollerWidth = this.wrapperWidth; + } + + if (!this.hasVerticalScroll) { + this.maxScrollY = 0; + this.scrollerHeight = this.wrapperHeight; + } + + this.indicators.map(function(indicator) { + indicator.refresh(); + }); + + //以防slider类嵌套使用 + if (this.options.snap && typeof this.options.snap === 'string') { + var items = this.scroller.querySelectorAll(this.options.snap); + this.itemLength = 0; + this.snaps = []; + for (var i = 0, len = items.length; i < len; i++) { + var item = items[i]; + if (item.parentNode === this.scroller) { + this.itemLength++; + this.snaps.push(item); + } + } + this._initSnap(); //需要每次都_initSnap么。其实init的时候执行一次,后续resize的时候执行一次就行了吧.先这么做吧,如果影响性能,再调整 + } + }, + _momentum: function(current, distance, time, lowerMargin, wrapperSize, deceleration) { + var speed = parseFloat(Math.abs(distance) / time), + destination, + duration; + + deceleration = deceleration === undefined ? 0.0006 : deceleration; + destination = current + (speed * speed) / (2 * deceleration) * (distance < 0 ? -1 : 1); + duration = speed / deceleration; + if (destination < lowerMargin) { + destination = wrapperSize ? lowerMargin - (wrapperSize / 2.5 * (speed / 8)) : lowerMargin; + distance = Math.abs(destination - current); + duration = distance / speed; + } else if (destination > 0) { + destination = wrapperSize ? wrapperSize / 2.5 * (speed / 8) : 0; + distance = Math.abs(current) + destination; + duration = distance / speed; + } + + return { + destination: Math.round(destination), + duration: duration + }; + }, + _getTranslateStr: function(x, y) { + if (this.options.hardwareAccelerated) { + return 'translate3d(' + x + 'px,' + y + 'px,0px) ' + this.translateZ; + } + return 'translate(' + x + 'px,' + y + 'px) '; + }, + //API + setStopped: function(stopped) { + // this.stopped = !!stopped; + + // fixed ios双webview模式下拉刷新 + if(stopped) { + this.disablePullupToRefresh(); + this.disablePulldownToRefresh(); + } else { + this.enablePullupToRefresh(); + this.enablePulldownToRefresh(); + } + }, + setTranslate: function(x, y) { + this.x = x; + this.y = y; + this.scrollerStyle['webkitTransform'] = this._getTranslateStr(x, y); + if (this.parallaxElement && this.options.scrollY) { //目前仅支持竖向视差效果 + var parallaxY = y * this.options.parallaxRatio; + var scale = 1 + parallaxY / ((this.parallaxHeight - parallaxY) / 2); + if (scale > 1) { + this.parallaxImgStyle['opacity'] = 1 - parallaxY / 100 * this.options.parallaxRatio; + this.parallaxStyle['webkitTransform'] = this._getTranslateStr(0, -parallaxY) + ' scale(' + scale + ',' + scale + ')'; + } else { + this.parallaxImgStyle['opacity'] = 1; + this.parallaxStyle['webkitTransform'] = this._getTranslateStr(0, -1) + ' scale(1,1)'; + } + } + if (this.indicators) { + for (var i = this.indicators.length; i--;) { + this.indicators[i].updatePosition(); + } + } + this.lastX = this.x; + this.lastY = this.y; + $.trigger(this.scroller, 'scroll', this); + }, + reLayout: function() { + this.wrapper.offsetHeight; + + var paddingLeft = parseFloat($.getStyles(this.wrapper, 'padding-left')) || 0; + var paddingRight = parseFloat($.getStyles(this.wrapper, 'padding-right')) || 0; + var paddingTop = parseFloat($.getStyles(this.wrapper, 'padding-top')) || 0; + var paddingBottom = parseFloat($.getStyles(this.wrapper, 'padding-bottom')) || 0; + + var clientWidth = this.wrapper.clientWidth; + var clientHeight = this.wrapper.clientHeight; + + this.scrollerWidth = this.scroller.offsetWidth; + this.scrollerHeight = this.scroller.offsetHeight; + + this.wrapperWidth = clientWidth - paddingLeft - paddingRight; + this.wrapperHeight = clientHeight - paddingTop - paddingBottom; + + this.maxScrollX = Math.min(this.wrapperWidth - this.scrollerWidth, 0); + this.maxScrollY = Math.min(this.wrapperHeight - this.scrollerHeight, 0); + this.hasHorizontalScroll = this.options.scrollX && this.maxScrollX < 0; + this.hasVerticalScroll = this.options.scrollY && this.maxScrollY < 0; + this._reLayout(); + }, + resetPosition: function(time) { + var x = this.x, + y = this.y; + + time = time || 0; + if (!this.hasHorizontalScroll || this.x > 0) { + x = 0; + } else if (this.x < this.maxScrollX) { + x = this.maxScrollX; + } + + if (!this.hasVerticalScroll || this.y > 0) { + y = 0; + } else if (this.y < this.maxScrollY) { + y = this.maxScrollY; + } + + if (x == this.x && y == this.y) { + return false; + } + this.scrollTo(x, y, time, this.options.scrollEasing); + + return true; + }, + _reInit: function() { + var groups = this.wrapper.querySelectorAll('.' + CLASS_SCROLL); + for (var i = 0, len = groups.length; i < len; i++) { + if (groups[i].parentNode === this.wrapper) { + this.scroller = groups[i]; + break; + } + } + this.scrollerStyle = this.scroller && this.scroller.style; + }, + refresh: function() { + this._reInit(); + this.reLayout(); + $.trigger(this.scroller, 'refresh', this); + this.resetPosition(); + }, + scrollTo: function(x, y, time, easing) { + var easing = easing || ease.circular; + // this.isInTransition = time > 0 && (this.lastX != x || this.lastY != y); + //暂不严格判断x,y,否则会导致部分版本上不正常触发轮播 + this.isInTransition = time > 0; + if (this.isInTransition) { + this._clearRequestAnimationFrame(); + this._transitionTimingFunction(easing.style); + this._transitionTime(time); + this.setTranslate(x, y); + } else { + this.setTranslate(x, y); + } + + }, + scrollToBottom: function(time, easing) { + time = time || this.options.scrollTime; + this.scrollTo(0, this.maxScrollY, time, easing); + }, + gotoPage: function(index) { + this._gotoPage(index); + }, + destroy: function() { + this._initEvent(true); //detach + delete $.data[this.wrapper.getAttribute('data-scroll')]; + this.wrapper.setAttribute('data-scroll', ''); + } + }); + //Indicator + var Indicator = function(scroller, options) { + this.wrapper = typeof options.el == 'string' ? document.querySelector(options.el) : options.el; + this.wrapperStyle = this.wrapper.style; + this.indicator = this.wrapper.children[0]; + this.indicatorStyle = this.indicator.style; + this.scroller = scroller; + + this.options = $.extend({ + listenX: true, + listenY: true, + fade: false, + speedRatioX: 0, + speedRatioY: 0 + }, options); + + this.sizeRatioX = 1; + this.sizeRatioY = 1; + this.maxPosX = 0; + this.maxPosY = 0; + + if (this.options.fade) { + this.wrapperStyle['webkitTransform'] = this.scroller.translateZ; + this.wrapperStyle['webkitTransitionDuration'] = this.options.fixedBadAndorid && $.os.isBadAndroid ? '0.001s' : '0ms'; + this.wrapperStyle.opacity = '0'; + } + } + Indicator.prototype = { + handleEvent: function(e) { + + }, + transitionTime: function(time) { + time = time || 0; + this.indicatorStyle['webkitTransitionDuration'] = time + 'ms'; + if (this.scroller.options.fixedBadAndorid && !time && $.os.isBadAndroid) { + this.indicatorStyle['webkitTransitionDuration'] = '0.001s'; + } + }, + transitionTimingFunction: function(easing) { + this.indicatorStyle['webkitTransitionTimingFunction'] = easing; + }, + refresh: function() { + this.transitionTime(); + + if (this.options.listenX && !this.options.listenY) { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll ? 'block' : 'none'; + } else if (this.options.listenY && !this.options.listenX) { + this.indicatorStyle.display = this.scroller.hasVerticalScroll ? 'block' : 'none'; + } else { + this.indicatorStyle.display = this.scroller.hasHorizontalScroll || this.scroller.hasVerticalScroll ? 'block' : 'none'; + } + + this.wrapper.offsetHeight; // force refresh + + if (this.options.listenX) { + this.wrapperWidth = this.wrapper.clientWidth; + this.indicatorWidth = Math.max(Math.round(this.wrapperWidth * this.wrapperWidth / (this.scroller.scrollerWidth || this.wrapperWidth || 1)), 8); + this.indicatorStyle.width = this.indicatorWidth + 'px'; + + this.maxPosX = this.wrapperWidth - this.indicatorWidth; + + this.minBoundaryX = 0; + this.maxBoundaryX = this.maxPosX; + + this.sizeRatioX = this.options.speedRatioX || (this.scroller.maxScrollX && (this.maxPosX / this.scroller.maxScrollX)); + } + + if (this.options.listenY) { + this.wrapperHeight = this.wrapper.clientHeight; + this.indicatorHeight = Math.max(Math.round(this.wrapperHeight * this.wrapperHeight / (this.scroller.scrollerHeight || this.wrapperHeight || 1)), 8); + this.indicatorStyle.height = this.indicatorHeight + 'px'; + + this.maxPosY = this.wrapperHeight - this.indicatorHeight; + + this.minBoundaryY = 0; + this.maxBoundaryY = this.maxPosY; + + this.sizeRatioY = this.options.speedRatioY || (this.scroller.maxScrollY && (this.maxPosY / this.scroller.maxScrollY)); + } + + this.updatePosition(); + }, + + updatePosition: function() { + var x = this.options.listenX && Math.round(this.sizeRatioX * this.scroller.x) || 0, + y = this.options.listenY && Math.round(this.sizeRatioY * this.scroller.y) || 0; + + if (x < this.minBoundaryX) { + this.width = Math.max(this.indicatorWidth + x, 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.minBoundaryX; + } else if (x > this.maxBoundaryX) { + this.width = Math.max(this.indicatorWidth - (x - this.maxPosX), 8); + this.indicatorStyle.width = this.width + 'px'; + x = this.maxPosX + this.indicatorWidth - this.width; + } else if (this.width != this.indicatorWidth) { + this.width = this.indicatorWidth; + this.indicatorStyle.width = this.width + 'px'; + } + + if (y < this.minBoundaryY) { + this.height = Math.max(this.indicatorHeight + y * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.minBoundaryY; + } else if (y > this.maxBoundaryY) { + this.height = Math.max(this.indicatorHeight - (y - this.maxPosY) * 3, 8); + this.indicatorStyle.height = this.height + 'px'; + y = this.maxPosY + this.indicatorHeight - this.height; + } else if (this.height != this.indicatorHeight) { + this.height = this.indicatorHeight; + this.indicatorStyle.height = this.height + 'px'; + } + + this.x = x; + this.y = y; + + this.indicatorStyle['webkitTransform'] = this.scroller._getTranslateStr(x, y); + + }, + fade: function(val, hold) { + if (hold && !this.visible) { + return; + } + + clearTimeout(this.fadeTimeout); + this.fadeTimeout = null; + + var time = val ? 250 : 500, + delay = val ? 0 : 300; + + val = val ? '1' : '0'; + + this.wrapperStyle['webkitTransitionDuration'] = time + 'ms'; + + this.fadeTimeout = setTimeout((function(val) { + this.wrapperStyle.opacity = val; + this.visible = +val; + }).bind(this, val), delay); + } + }; + + $.Scroll = Scroll; + + $.fn.scroll = function(options) { + var scrollApis = []; + this.each(function() { + var scrollApi = null; + var self = this; + var id = self.getAttribute('data-scroll'); + if (!id) { + id = ++$.uuid; + var _options = $.extend({}, options); + if (self.classList.contains('mui-segmented-control')) { + _options = $.extend(_options, { + scrollY: false, + scrollX: true, + indicators: false, + snap: '.mui-control-item' + }); + } + $.data[id] = scrollApi = new Scroll(self, _options); + self.setAttribute('data-scroll', id); + } else { + scrollApi = $.data[id]; + } + scrollApis.push(scrollApi); + }); + return scrollApis.length === 1 ? scrollApis[0] : scrollApis; + }; +})(mui, window, document); +(function($, window, document, undefined) { + + var CLASS_VISIBILITY = 'mui-visibility'; + var CLASS_HIDDEN = 'mui-hidden'; + + var PullRefresh = $.Scroll.extend($.extend({ + handleEvent: function(e) { + this._super(e); + if (e.type === 'scrollbottom') { + if (e.target === this.scroller) { + this._scrollbottom(); + } + } + }, + _scrollbottom: function() { + if (!this.pulldown && !this.loading) { + this.pulldown = false; + this._initPullupRefresh(); + this.pullupLoading(); + } + }, + _start: function(e) { + //仅下拉刷新在start阻止默认事件 + if (e.touches && e.touches.length && e.touches[0].clientX > 30) { + e.target && !this._preventDefaultException(e.target, this.options.preventDefaultException) && e.preventDefault(); + } + if (!this.loading) { + this.pulldown = this.pullPocket = this.pullCaption = this.pullLoading = false + } + this._super(e); + }, + _drag: function(e) { + if (this.y >= 0 && this.disablePulldown && e.detail.direction === 'down') { //禁用下拉刷新 + return; + } + this._super(e); + if (!this.pulldown && !this.loading && this.topPocket && e.detail.direction === 'down' && this.y >= 0) { + this._initPulldownRefresh(); + } + if (this.pulldown) { + this._setCaption(this.y > this.options.down.height ? this.options.down.contentover : this.options.down.contentdown); + } + }, + + _reLayout: function() { + this.hasVerticalScroll = true; + this._super(); + }, + //API + resetPosition: function(time) { + if (this.pulldown && !this.disablePulldown) { + if (this.y >= this.options.down.height) { + this.pulldownLoading(undefined, time || 0); + return true; + } else { + !this.loading && this.topPocket.classList.remove(CLASS_VISIBILITY); + } + } + return this._super(time); + }, + pulldownLoading: function(y, time) { + typeof y === 'undefined' && (y = this.options.down.height); //默认高度 + this.scrollTo(0, y, time, this.options.bounceEasing); + if (this.loading) { + return; + } + // if (!this.pulldown) { + this._initPulldownRefresh(); + // } + this._setCaption(this.options.down.contentrefresh); + this.loading = true; + this.indicators.map(function(indicator) { + indicator.fade(0); + }); + var callback = this.options.down.callback; + callback && callback.call(this); + }, + endPulldownToRefresh: function() { + var self = this; + if (self.topPocket && self.loading && this.pulldown) { + self.scrollTo(0, 0, self.options.bounceTime, self.options.bounceEasing); + self.loading = false; + self._setCaption(self.options.down.contentdown, true); + setTimeout(function() { + self.loading || self.topPocket.classList.remove(CLASS_VISIBILITY); + }, 350); + } + }, + pullupLoading: function(callback, x, time) { + x = x || 0; + this.scrollTo(x, this.maxScrollY, time, this.options.bounceEasing); + if (this.loading) { + return; + } + this._initPullupRefresh(); + this._setCaption(this.options.up.contentrefresh); + this.indicators.map(function(indicator) { + indicator.fade(0); + }); + this.loading = true; + callback = callback || this.options.up.callback; + callback && callback.call(this); + }, + endPullupToRefresh: function(finished) { + var self = this; + if (self.bottomPocket) { // && self.loading && !this.pulldown + self.loading = false; + if (finished) { + this.finished = true; + self._setCaption(self.options.up.contentnomore); + // self.bottomPocket.classList.remove(CLASS_VISIBILITY); + // self.bottomPocket.classList.add(CLASS_HIDDEN); + self.wrapper.removeEventListener('scrollbottom', self); + } else { + self._setCaption(self.options.up.contentdown); + // setTimeout(function() { + self.loading || self.bottomPocket.classList.remove(CLASS_VISIBILITY); + // }, 300); + } + } + }, + disablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.className = 'mui-pull-bottom-pocket' + ' ' + CLASS_HIDDEN; + this.wrapper.removeEventListener('scrollbottom', this); + }, + disablePulldownToRefresh: function() { + this._initPulldownRefresh(); + this.topPocket.className = 'mui-pull-top-pocket' + ' ' + CLASS_HIDDEN; + this.disablePulldown = true; + }, + enablePulldownToRefresh: function() { + this._initPulldownRefresh(); + this.topPocket.classList.remove(CLASS_HIDDEN); + this._setCaption(this.options.down.contentdown); + this.disablePulldown = false; + }, + enablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.classList.remove(CLASS_HIDDEN); + this._setCaption(this.options.up.contentdown); + this.wrapper.addEventListener('scrollbottom', this); + }, + refresh: function(isReset) { + if (isReset && this.finished) { + this.enablePullupToRefresh(); + this.finished = false; + } + this._super(); + }, + }, $.PullRefresh)); + $.fn.pullRefresh = function(options) { + if (this.length === 1) { + var self = this[0]; + var pullRefreshApi = null; + var id = self.getAttribute('data-pullrefresh'); + if (!id && typeof options === 'undefined') { + return false; + } + options = options || {}; + if (!id) { + id = ++$.uuid; + $.data[id] = pullRefreshApi = new PullRefresh(self, options); + self.setAttribute('data-pullrefresh', id); + } else { + pullRefreshApi = $.data[id]; + } + if (options.down && options.down.auto) { //如果设置了auto,则自动下拉一次 + pullRefreshApi.pulldownLoading(options.down.autoY); + } else if (options.up && options.up.auto) { //如果设置了auto,则自动上拉一次 + pullRefreshApi.pullupLoading(); + } + //暂不提供这种调用方式吧 + // if (typeof options === 'string') { + // var methodValue = pullRefreshApi[options].apply(pullRefreshApi, $.slice.call(arguments, 1)); + // if (methodValue !== undefined) { + // return methodValue; + // } + // } + return pullRefreshApi; + } + }; +})(mui, window, document); +/** + * snap 重构 + * @param {Object} $ + * @param {Object} window + */ +(function($, window) { + var CLASS_SLIDER = 'mui-slider'; + var CLASS_SLIDER_GROUP = 'mui-slider-group'; + var CLASS_SLIDER_LOOP = 'mui-slider-loop'; + var CLASS_SLIDER_INDICATOR = 'mui-slider-indicator'; + var CLASS_ACTION_PREVIOUS = 'mui-action-previous'; + var CLASS_ACTION_NEXT = 'mui-action-next'; + var CLASS_SLIDER_ITEM = 'mui-slider-item'; + + var CLASS_ACTIVE = 'mui-active'; + + var SELECTOR_SLIDER_ITEM = '.' + CLASS_SLIDER_ITEM; + var SELECTOR_SLIDER_INDICATOR = '.' + CLASS_SLIDER_INDICATOR; + var SELECTOR_SLIDER_PROGRESS_BAR = '.mui-slider-progress-bar'; + + var Slider = $.Slider = $.Scroll.extend({ + init: function(element, options) { + this._super(element, $.extend(true, { + fingers: 1, + interval: 0, //设置为0,则不定时轮播 + scrollY: false, + scrollX: true, + indicators: false, + scrollTime: 1000, + startX: false, + slideTime: 0, //滑动动画时间 + snap: SELECTOR_SLIDER_ITEM + }, options)); + if (this.options.startX) { + // $.trigger(this.wrapper, 'scrollend', this); + } + }, + _init: function() { + this._reInit(); + if (this.scroller) { + this.scrollerStyle = this.scroller.style; + this.progressBar = this.wrapper.querySelector(SELECTOR_SLIDER_PROGRESS_BAR); + if (this.progressBar) { + this.progressBarWidth = this.progressBar.offsetWidth; + this.progressBarStyle = this.progressBar.style; + } + //忘记这个代码是干什么的了? + // this.x = this._getScroll(); + // if (this.options.startX === false) { + // this.options.startX = this.x; + // } + //根据active修正startX + + this._super(); + this._initTimer(); + } + }, + _triggerSlide: function() { + var self = this; + self.isInTransition = false; + var page = self.currentPage; + self.slideNumber = self._fixedSlideNumber(); + if (self.loop) { + if (self.slideNumber === 0) { + self.setTranslate(self.pages[1][0].x, 0); + } else if (self.slideNumber === self.itemLength - 3) { + self.setTranslate(self.pages[self.itemLength - 2][0].x, 0); + } + } + if (self.lastSlideNumber != self.slideNumber) { + self.lastSlideNumber = self.slideNumber; + self.lastPage = self.currentPage; + $.trigger(self.wrapper, 'slide', { + slideNumber: self.slideNumber + }); + } + self._initTimer(); + }, + _handleSlide: function(e) { + var self = this; + if (e.target !== self.wrapper) { + return; + } + var detail = e.detail; + detail.slideNumber = detail.slideNumber || 0; + var temps = self.scroller.querySelectorAll(SELECTOR_SLIDER_ITEM); + var items = []; + for (var i = 0, len = temps.length; i < len; i++) { + var item = temps[i]; + if (item.parentNode === self.scroller) { + items.push(item); + } + } + var _slideNumber = detail.slideNumber; + if (self.loop) { + _slideNumber += 1; + } + if (!self.wrapper.classList.contains('mui-segmented-control')) { + for (var i = 0, len = items.length; i < len; i++) { + var item = items[i]; + if (item.parentNode === self.scroller) { + if (i === _slideNumber) { + item.classList.add(CLASS_ACTIVE); + } else { + item.classList.remove(CLASS_ACTIVE); + } + } + } + } + var indicatorWrap = self.wrapper.querySelector('.mui-slider-indicator'); + if (indicatorWrap) { + if (indicatorWrap.getAttribute('data-scroll')) { //scroll + $(indicatorWrap).scroll().gotoPage(detail.slideNumber); + } + var indicators = indicatorWrap.querySelectorAll('.mui-indicator'); + if (indicators.length > 0) { //图片轮播 + for (var i = 0, len = indicators.length; i < len; i++) { + indicators[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE); + } + } else { + var number = indicatorWrap.querySelector('.mui-number span'); + if (number) { //图文表格 + number.innerText = (detail.slideNumber + 1); + } else { //segmented controls + var controlItems = indicatorWrap.querySelectorAll('.mui-control-item'); + for (var i = 0, len = controlItems.length; i < len; i++) { + controlItems[i].classList[i === detail.slideNumber ? 'add' : 'remove'](CLASS_ACTIVE); + } + } + } + } + e.stopPropagation(); + }, + _handleTabShow: function(e) { + var self = this; + self.gotoItem((e.detail.tabNumber || 0), self.options.slideTime); + }, + _handleIndicatorTap: function(event) { + var self = this; + var target = event.target; + if (target.classList.contains(CLASS_ACTION_PREVIOUS) || target.classList.contains(CLASS_ACTION_NEXT)) { + self[target.classList.contains(CLASS_ACTION_PREVIOUS) ? 'prevItem' : 'nextItem'](); + event.stopPropagation(); + } + }, + _initEvent: function(detach) { + var self = this; + self._super(detach); + var action = detach ? 'removeEventListener' : 'addEventListener'; + self.wrapper[action]('slide', this); + self.wrapper[action]($.eventName('shown', 'tab'), this); + }, + handleEvent: function(e) { + this._super(e); + switch (e.type) { + case 'slide': + this._handleSlide(e); + break; + case $.eventName('shown', 'tab'): + if (~this.snaps.indexOf(e.target)) { //避免嵌套监听错误的tab show + this._handleTabShow(e); + } + break; + } + }, + _scrollend: function(e) { + this._super(e); + this._triggerSlide(e); + }, + _drag: function(e) { + this._super(e); + var direction = e.detail.direction; + if (direction === 'left' || direction === 'right') { + //拖拽期间取消定时 + var slidershowTimer = this.wrapper.getAttribute('data-slidershowTimer'); + slidershowTimer && window.clearTimeout(slidershowTimer); + + e.stopPropagation(); + } + }, + _initTimer: function() { + var self = this; + var slider = self.wrapper; + var interval = self.options.interval; + var slidershowTimer = slider.getAttribute('data-slidershowTimer'); + slidershowTimer && window.clearTimeout(slidershowTimer); + if (interval) { + slidershowTimer = window.setTimeout(function() { + if (!slider) { + return; + } + //仅slider显示状态进行自动轮播 + if (!!(slider.offsetWidth || slider.offsetHeight)) { + self.nextItem(true); + //下一个 + } + self._initTimer(); + }, interval); + slider.setAttribute('data-slidershowTimer', slidershowTimer); + } + }, + + _fixedSlideNumber: function(page) { + page = page || this.currentPage; + var slideNumber = page.pageX; + if (this.loop) { + if (page.pageX === 0) { + slideNumber = this.itemLength - 3; + } else if (page.pageX === (this.itemLength - 1)) { + slideNumber = 0; + } else { + slideNumber = page.pageX - 1; + } + } + return slideNumber; + }, + _reLayout: function() { + this.hasHorizontalScroll = true; + this.loop = this.scroller.classList.contains(CLASS_SLIDER_LOOP); + this._super(); + }, + _getScroll: function() { + var result = $.parseTranslateMatrix($.getStyles(this.scroller, 'webkitTransform')); + return result ? result.x : 0; + }, + _transitionEnd: function(e) { + if (e.target !== this.scroller || !this.isInTransition) { + return; + } + this._transitionTime(); + this.isInTransition = false; + $.trigger(this.wrapper, 'scrollend', this); + }, + _flick: function(e) { + if (!this.moved) { //无moved + return; + } + var detail = e.detail; + var direction = detail.direction; + this._clearRequestAnimationFrame(); + this.isInTransition = true; + // if (direction === 'up' || direction === 'down') { + // this.resetPosition(this.options.bounceTime); + // return; + // } + if (e.type === 'flick') { + if (detail.deltaTime < 200) { //flick,太容易触发,额外校验一下deltaTime + this.x = this._getPage((this.slideNumber + (direction === 'right' ? -1 : 1)), true).x; + } + this.resetPosition(this.options.bounceTime); + } else if (e.type === 'dragend' && !detail.flick) { + this.resetPosition(this.options.bounceTime); + } + e.stopPropagation(); + }, + _initSnap: function() { + this.scrollerWidth = this.itemLength * this.scrollerWidth; + this.maxScrollX = Math.min(this.wrapperWidth - this.scrollerWidth, 0); + this._super(); + if (!this.currentPage.x) { + //当slider处于隐藏状态时,导致snap计算是错误的,临时先这么判断一下,后续要考虑解决所有scroll在隐藏状态下初始化属性不正确的问题 + var currentPage = this.pages[this.loop ? 1 : 0]; + currentPage = currentPage || this.pages[0]; + if (!currentPage) { + return; + } + this.currentPage = currentPage[0]; + this.slideNumber = 0; + this.lastSlideNumber = typeof this.lastSlideNumber === 'undefined' ? 0 : this.lastSlideNumber; + } else { + this.slideNumber = this._fixedSlideNumber(); + this.lastSlideNumber = typeof this.lastSlideNumber === 'undefined' ? this.slideNumber : this.lastSlideNumber; + } + this.options.startX = this.currentPage.x || 0; + }, + _getSnapX: function(offsetLeft) { + return Math.max(-offsetLeft, this.maxScrollX); + }, + _getPage: function(slideNumber, isFlick) { + if (this.loop) { + if (slideNumber > (this.itemLength - (isFlick ? 2 : 3))) { + slideNumber = 1; + time = 0; + } else if (slideNumber < (isFlick ? -1 : 0)) { + slideNumber = this.itemLength - 2; + time = 0; + } else { + slideNumber += 1; + } + } else { + if (!isFlick) { + if (slideNumber > (this.itemLength - 1)) { + slideNumber = 0; + time = 0; + } else if (slideNumber < 0) { + slideNumber = this.itemLength - 1; + time = 0; + } + } + slideNumber = Math.min(Math.max(0, slideNumber), this.itemLength - 1); + } + return this.pages[slideNumber][0]; + }, + _gotoItem: function(slideNumber, time) { + this.currentPage = this._getPage(slideNumber, true); //此处传true。可保证程序切换时,动画与人手操作一致(第一张,最后一张的切换动画) + this.scrollTo(this.currentPage.x, 0, time, this.options.scrollEasing); + if (time === 0) { + $.trigger(this.wrapper, 'scrollend', this); + } + }, + //API + setTranslate: function(x, y) { + this._super(x, y); + var progressBar = this.progressBar; + if (progressBar) { + this.progressBarStyle.webkitTransform = this._getTranslateStr((-x * (this.progressBarWidth / this.wrapperWidth)), 0); + } + }, + resetPosition: function(time) { + time = time || 0; + if (this.x > 0) { + this.x = 0; + } else if (this.x < this.maxScrollX) { + this.x = this.maxScrollX; + } + this.currentPage = this._nearestSnap(this.x); + this.scrollTo(this.currentPage.x, 0, time, this.options.scrollEasing); + return true; + }, + gotoItem: function(slideNumber, time) { + this._gotoItem(slideNumber, typeof time === 'undefined' ? this.options.scrollTime : time); + }, + nextItem: function() { + this._gotoItem(this.slideNumber + 1, this.options.scrollTime); + }, + prevItem: function() { + this._gotoItem(this.slideNumber - 1, this.options.scrollTime); + }, + getSlideNumber: function() { + return this.slideNumber || 0; + }, + _reInit: function() { + var groups = this.wrapper.querySelectorAll('.' + CLASS_SLIDER_GROUP); + for (var i = 0, len = groups.length; i < len; i++) { + if (groups[i].parentNode === this.wrapper) { + this.scroller = groups[i]; + break; + } + } + this.scrollerStyle = this.scroller && this.scroller.style; + if (this.progressBar) { + this.progressBarWidth = this.progressBar.offsetWidth; + this.progressBarStyle = this.progressBar.style; + } + }, + refresh: function(options) { + if (options) { + $.extend(this.options, options); + this._super(); + this._initTimer(); + } else { + this._super(); + } + }, + destroy: function() { + this._initEvent(true); //detach + delete $.data[this.wrapper.getAttribute('data-slider')]; + this.wrapper.setAttribute('data-slider', ''); + } + }); + $.fn.slider = function(options) { + var slider = null; + this.each(function() { + var sliderElement = this; + if (!this.classList.contains(CLASS_SLIDER)) { + sliderElement = this.querySelector('.' + CLASS_SLIDER); + } + if (sliderElement && sliderElement.querySelector(SELECTOR_SLIDER_ITEM)) { + var id = sliderElement.getAttribute('data-slider'); + if (!id) { + id = ++$.uuid; + $.data[id] = slider = new Slider(sliderElement, options); + sliderElement.setAttribute('data-slider', id); + } else { + slider = $.data[id]; + if (slider && options) { + slider.refresh(options); + } + } + } + }); + return slider; + }; + $.ready(function() { + // setTimeout(function() { + $('.mui-slider').slider(); + $('.mui-scroll-wrapper.mui-slider-indicator.mui-segmented-control').scroll({ + scrollY: false, + scrollX: true, + indicators: false, + snap: '.mui-control-item' + }); + // }, 500); //临时处理slider宽度计算不正确的问题(初步确认是scrollbar导致的) + + }); +})(mui, window); +/** + * pullRefresh 5+ + * @param {type} $ + * @returns {undefined} + */ +(function($, document) { + if (!($.os.plus)) { //仅在5+android支持多webview的使用 + return; + } + $.plusReady(function() { + if (window.__NWin_Enable__ === false) { //不支持多webview,则不用5+下拉刷新 + return; + } + var CLASS_PLUS_PULLREFRESH = 'mui-plus-pullrefresh'; + var CLASS_VISIBILITY = 'mui-visibility'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_BLOCK = 'mui-block'; + + var CLASS_PULL_CAPTION = 'mui-pull-caption'; + var CLASS_PULL_CAPTION_DOWN = 'mui-pull-caption-down'; + var CLASS_PULL_CAPTION_REFRESH = 'mui-pull-caption-refresh'; + var CLASS_PULL_CAPTION_NOMORE = 'mui-pull-caption-nomore'; + + var PlusPullRefresh = $.Class.extend({ + init: function(element, options) { + this.element = element; + this.options = options; + this.wrapper = this.scroller = element; + this._init(); + this._initPulldownRefreshEvent(); + }, + _init: function() { + var self = this; + //document.addEventListener('plusscrollbottom', this); + window.addEventListener('dragup', self); + document.addEventListener("plusscrollbottom", self); + self.scrollInterval = window.setInterval(function() { + if (self.isScroll && !self.loading) { + if (window.pageYOffset + window.innerHeight + 10 >= document.documentElement.scrollHeight) { + self.isScroll = false; //放在这里是因为快速滚动的话,有可能检测时,还没到底,所以只要有滚动,没到底之前一直检测高度变化 + if (self.bottomPocket) { + self.pullupLoading(); + } + } + } + }, 100); + }, + _initPulldownRefreshEvent: function() { + var self = this; + $.plusReady(function() { + if (self.options.down.style == "circle") { + //单webview、原生转圈 + self.options.webview = plus.webview.currentWebview(); + self.options.webview.setPullToRefresh({ + support: true, + color: self.options.down.color || '#2BD009', + height: self.options.down.height || '50px', + range: self.options.down.range || '100px', + style: 'circle', + offset: self.options.down.offset || '0px' + }, function() { + self.options.down.callback(); + }); + } else if (self.topPocket && self.options.webviewId) { + var webview = plus.webview.getWebviewById(self.options.webviewId); //子窗口 + if (!webview) { + return; + } + self.options.webview = webview; + var downOptions = self.options.down; + var height = downOptions.height; + webview.addEventListener('close', function() { + var attrWebviewId = self.options.webviewId && self.options.webviewId.replace(/\//g, "_"); //替换所有"/" + self.element.removeAttribute('data-pullrefresh-plus-' + attrWebviewId); + }); + webview.addEventListener("dragBounce", function(e) { + if (!self.pulldown) { + self._initPulldownRefresh(); + } else { + self.pullPocket.classList.add(CLASS_BLOCK); + } + switch (e.status) { + case "beforeChangeOffset": //下拉可刷新状态 + self._setCaption(downOptions.contentdown); + break; + case "afterChangeOffset": //松开可刷新状态 + self._setCaption(downOptions.contentover); + break; + case "dragEndAfterChangeOffset": //正在刷新状态 + //执行下拉刷新所在webview的回调函数 + webview.evalJS("window.mui&&mui.options.pullRefresh.down.callback()"); + self._setCaption(downOptions.contentrefresh); + break; + default: + break; + } + }, false); + + webview.setBounce({ + position: { + top: height * 2 + 'px' + }, + changeoffset: { + top: height + 'px' + } + }); + + } + }); + }, + handleEvent: function(e) { + var self = this; + if (self.stopped) { + return; + } + self.isScroll = false; + if (e.type === 'dragup' || e.type === 'plusscrollbottom') { + self.isScroll = true; + setTimeout(function() { + self.isScroll = false; + }, 1000); + } + } + }).extend($.extend({ + setStopped: function(stopped) { //该方法是子页面调用的 + this.stopped = !!stopped; + // TODO 此处需要设置当前webview的bounce为none,目前5+有BUG + if (this.stopped) { + this.disablePullupToRefresh(); + this.disablePulldownToRefresh(); + } else { + this.enablePullupToRefresh(); + this.enablePulldownToRefresh(); + } + }, + beginPulldown: function() { + var self = this; + $.plusReady(function() { + //这里延时的目的是为了保证下拉刷新组件初始化完成,后续应该做成有状态的 + setTimeout(function() { + if (self.options.down.style == "circle") { //单webview下拉刷新 + plus.webview.currentWebview().beginPullToRefresh(); + } else { //双webview模式 + var webview = self.options.webview; + if (webview) { + webview.setBounce({ + offset: { + top: self.options.down.height + "px" + } + }); + } + } + }, 15); + }.bind(this)); + }, + pulldownLoading: function() { //该方法是子页面调用的,兼容老的历史API + this.beginPulldown(); + }, + _pulldownLoading: function() { //该方法是父页面调用的 + var self = this; + $.plusReady(function() { + var childWebview = plus.webview.getWebviewById(self.options.webviewId); + childWebview && childWebview.setBounce({ + offset: { + top: self.options.down.height + "px" + } + }); + }); + }, + endPulldown: function() { + var _wv = plus.webview.currentWebview(); + //双webview的下拉刷新,需要修改父窗口提示信息 + if (_wv.parent() && this.options.down.style !== "circle") { + _wv.parent().evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('" + JSON.stringify({ + webviewId: _wv.id + }) + "')._endPulldownToRefresh()"); + } else { + _wv.endPullToRefresh(); + } + }, + endPulldownToRefresh: function() { //该方法是子页面调用的,兼容老的历史API + this.endPulldown(); + }, + _endPulldownToRefresh: function() { //该方法是父页面调用的 + var self = this; + if (self.topPocket && self.options.webview) { + self.options.webview.endPullToRefresh(); //下拉刷新所在webview回弹 + self.loading = false; + self._setCaption(self.options.down.contentdown, true); + setTimeout(function() { + self.loading || self.topPocket.classList.remove(CLASS_BLOCK); + }, 350); + } + }, + beginPullup: function(callback) { //开始上拉加载 + var self = this; + if (self.isLoading) return; + self.isLoading = true; + if (self.pulldown !== false) { + self._initPullupRefresh(); + } else { + this.pullPocket.classList.add(CLASS_BLOCK); + } + setTimeout(function() { + self.pullLoading.classList.add(CLASS_VISIBILITY); + self.pullLoading.classList.remove(CLASS_HIDDEN); + self.pullCaption.innerHTML = ''; //修正5+里边第一次加载时,文字显示的bug(还会显示出来个“多”,猜测应该是渲染问题导致的) + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_REFRESH; + self.pullCaption.innerHTML = self.options.up.contentrefresh; + callback = callback || self.options.up.callback; + callback && callback.call(self); + }, 300); + }, + pullupLoading: function(callback) { //兼容老的API + this.beginPullup(callback); + }, + endPullup: function(finished) { //上拉加载结束 + var self = this; + if (self.pullLoading) { + self.pullLoading.classList.remove(CLASS_VISIBILITY); + self.pullLoading.classList.add(CLASS_HIDDEN); + self.isLoading = false; + if (finished) { + self.finished = true; + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_NOMORE; + self.pullCaption.innerHTML = self.options.up.contentnomore; + //取消5+的plusscrollbottom事件 + document.removeEventListener('plusscrollbottom', self); + window.removeEventListener('dragup', self); + } else { //初始化时隐藏,后续不再隐藏 + self.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + self.pullCaption.innerHTML = self.options.up.contentdown; + } + } + }, + endPullupToRefresh: function(finished) { //上拉加载结束,兼容老的API + this.endPullup(finished); + }, + disablePulldownToRefresh: function() { + var webview = plus.webview.currentWebview(); + if (this.options.down.style && this.options.down.style == 'circle') { // 单webview模式禁止原生下拉刷新 + this.options.webview.setPullToRefresh({ + support: false, + style: 'circle' + }); + } else { // 双webview模式禁止下拉刷新 + webview.setStyle({ + bounce: 'none' + }); + webview.setBounce({ + position: { + top: 'none' + } + }); + } + }, + enablePulldownToRefresh: function() { + var self = this, + webview = plus.webview.currentWebview(), + height = this.options.down.height; + // 单webview模式禁止原生下拉刷新 + if (this.options.down.style && this.options.down.style == 'circle') { + webview.setPullToRefresh({ + support: true, + height: height || '50px', + range: self.options.down.range || '100px', + style: 'circle', + offset: self.options.down.offset || '0px' + }); + } else { // 重新初始化双webview模式下拉刷新 + webview.setStyle({ + bounce: 'vertical' + }); + webview.setBounce({ + position: { + top: height * 2 + 'px' + }, + changeoffset: { + top: height + 'px' + } + }); + } + }, + disablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.className = 'mui-pull-bottom-pocket' + ' ' + CLASS_HIDDEN; + window.removeEventListener('dragup', this); + }, + enablePullupToRefresh: function() { + this._initPullupRefresh(); + this.bottomPocket.classList.remove(CLASS_HIDDEN); + this.pullCaption.className = CLASS_PULL_CAPTION + ' ' + CLASS_PULL_CAPTION_DOWN; + this.pullCaption.innerHTML = this.options.up.contentdown; + document.addEventListener("plusscrollbottom", this); + window.addEventListener('dragup', this); + }, + scrollTo: function(x, y, time) { + $.scrollTo(y, time); + }, + scrollToBottom: function(time) { + $.scrollTo(document.documentElement.scrollHeight, time); + }, + refresh: function(isReset) { + if (isReset && this.finished) { + this.enablePullupToRefresh(); + this.finished = false; + } + } + }, $.PullRefresh)); + + //override h5 pullRefresh + $.fn.pullRefresh_native = function(options) { + var self; + if (this.length === 0) { + self = document.createElement('div'); + self.className = 'mui-content'; + document.body.appendChild(self); + } else { + self = this[0]; + } + var args = options; + //一个父需要支持多个子下拉刷新 + options = options || {} + if (typeof options === 'string') { + options = $.parseJSON(options); + }; + !options.webviewId && (options.webviewId = (plus.webview.currentWebview().id || plus.webview.currentWebview().getURL())); + var pullRefreshApi = null; + var attrWebviewId = options.webviewId && options.webviewId.replace(/\//g, "_"); //替换所有"/" + var id = self.getAttribute('data-pullrefresh-plus-' + attrWebviewId); + if (!id && typeof args === 'undefined') { + return false; + } + if (!id) { //避免重复初始化5+ pullrefresh + id = ++$.uuid; + self.setAttribute('data-pullrefresh-plus-' + attrWebviewId, id); + document.body.classList.add(CLASS_PLUS_PULLREFRESH); + $.data[id] = pullRefreshApi = new PlusPullRefresh(self, options); + } else { + pullRefreshApi = $.data[id]; + } + if (options.down && options.down.auto) { //如果设置了auto,则自动下拉一次 + //pullRefreshApi._pulldownLoading(); //parent webview + pullRefreshApi.beginPulldown(); + } else if (options.up && options.up.auto) { //如果设置了auto,则自动上拉一次 + pullRefreshApi.beginPullup(); + } + return pullRefreshApi; + }; + }); + +})(mui, document); +/** + * off-canvas + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} action + * @returns {undefined} + */ +(function($, window, document, name) { + var CLASS_OFF_CANVAS_LEFT = 'mui-off-canvas-left'; + var CLASS_OFF_CANVAS_RIGHT = 'mui-off-canvas-right'; + var CLASS_ACTION_BACKDROP = 'mui-off-canvas-backdrop'; + var CLASS_OFF_CANVAS_WRAP = 'mui-off-canvas-wrap'; + + var CLASS_SLIDE_IN = 'mui-slide-in'; + var CLASS_ACTIVE = 'mui-active'; + + + var CLASS_TRANSITIONING = 'mui-transitioning'; + + var SELECTOR_INNER_WRAP = '.mui-inner-wrap'; + + + var OffCanvas = $.Class.extend({ + init: function(element, options) { + this.wrapper = this.element = element; + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + this.classList = this.wrapper.classList; + if (this.scroller) { + this.options = $.extend(true, { + dragThresholdX: 10, + scale: 0.8, + opacity: 0.1, + preventDefaultException: { + tagName: /^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/ + }, + }, options); + document.body.classList.add('mui-fullscreen'); //fullscreen + this.refresh(); + this.initEvent(); + } + }, + _preventDefaultException: function(el, exceptions) { + for (var i in exceptions) { + if (exceptions[i].test(el[i])) { + return true; + } + } + return false; + }, + refresh: function(offCanvas) { + // offCanvas && !offCanvas.classList.contains(CLASS_ACTIVE) && this.classList.remove(CLASS_ACTIVE); + this.slideIn = this.classList.contains(CLASS_SLIDE_IN); + this.scalable = this.classList.contains('mui-scalable') && !this.slideIn; + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + // !offCanvas && this.scroller.classList.remove(CLASS_TRANSITIONING); + // !offCanvas && this.scroller.setAttribute('style', ''); + this.offCanvasLefts = this.wrapper.querySelectorAll('.' + CLASS_OFF_CANVAS_LEFT); + this.offCanvasRights = this.wrapper.querySelectorAll('.' + CLASS_OFF_CANVAS_RIGHT); + if (offCanvas) { + if (offCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT)) { + this.offCanvasLeft = offCanvas; + } else if (offCanvas.classList.contains(CLASS_OFF_CANVAS_RIGHT)) { + this.offCanvasRight = offCanvas; + } + } else { + this.offCanvasRight = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT); + this.offCanvasLeft = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT); + } + this.offCanvasRightWidth = this.offCanvasLeftWidth = 0; + this.offCanvasLeftSlideIn = this.offCanvasRightSlideIn = false; + if (this.offCanvasRight) { + this.offCanvasRightWidth = this.offCanvasRight.offsetWidth; + this.offCanvasRightSlideIn = this.slideIn && (this.offCanvasRight.parentNode === this.wrapper); + // this.offCanvasRight.classList.remove(CLASS_TRANSITIONING); + // this.offCanvasRight.classList.remove(CLASS_ACTIVE); + // this.offCanvasRight.setAttribute('style', ''); + } + if (this.offCanvasLeft) { + this.offCanvasLeftWidth = this.offCanvasLeft.offsetWidth; + this.offCanvasLeftSlideIn = this.slideIn && (this.offCanvasLeft.parentNode === this.wrapper); + // this.offCanvasLeft.classList.remove(CLASS_TRANSITIONING); + // this.offCanvasLeft.classList.remove(CLASS_ACTIVE); + // this.offCanvasLeft.setAttribute('style', ''); + } + this.backdrop = this.scroller.querySelector('.' + CLASS_ACTION_BACKDROP); + + this.options.dragThresholdX = this.options.dragThresholdX || 10; + + this.visible = false; + this.startX = null; + this.lastX = null; + this.offsetX = null; + this.lastTranslateX = null; + }, + handleEvent: function(e) { + switch (e.type) { + case $.EVENT_START: + e.target && !this._preventDefaultException(e.target, this.options.preventDefaultException) && e.preventDefault(); + break; + case 'webkitTransitionEnd': //有个bug需要处理,需要考虑假设没有触发webkitTransitionEnd的情况 + if (e.target === this.scroller) { + this._dispatchEvent(); + } + break; + case 'drag': + var detail = e.detail; + if (!this.startX) { + this.startX = detail.center.x; + this.lastX = this.startX; + } else { + this.lastX = detail.center.x; + } + if (!this.isDragging && Math.abs(this.lastX - this.startX) > this.options.dragThresholdX && (detail.direction === 'left' || (detail.direction === 'right'))) { + if (this.slideIn) { + this.scroller = this.wrapper.querySelector(SELECTOR_INNER_WRAP); + if (this.classList.contains(CLASS_ACTIVE)) { + if (this.offCanvasRight && this.offCanvasRight.classList.contains(CLASS_ACTIVE)) { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } + } else { + if (detail.direction === 'left' && this.offCanvasRight) { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else if (detail.direction === 'right' && this.offCanvasLeft) { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.scroller = null; + } + } + } else { + if (this.classList.contains(CLASS_ACTIVE)) { + if (detail.direction === 'left') { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } + } else { + if (detail.direction === 'right') { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } else { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } + } + } + if (this.offCanvas && this.scroller) { + this.startX = this.lastX; + this.isDragging = true; + + $.gestures.session.lockDirection = true; //锁定方向 + $.gestures.session.startDirection = detail.direction; + + this.offCanvas.classList.remove(CLASS_TRANSITIONING); + this.scroller.classList.remove(CLASS_TRANSITIONING); + this.offsetX = this.getTranslateX(); + this._initOffCanvasVisible(); + } + } + if (this.isDragging) { + this.updateTranslate(this.offsetX + (this.lastX - this.startX)); + detail.gesture.preventDefault(); + e.stopPropagation(); + } + break; + case 'dragend': + if (this.isDragging) { + var detail = e.detail; + var direction = detail.direction; + this.isDragging = false; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + var ratio = 0; + var x = this.getTranslateX(); + if (!this.slideIn) { + if (x >= 0) { + ratio = (this.offCanvasLeftWidth && (x / this.offCanvasLeftWidth)) || 0; + } else { + ratio = (this.offCanvasRightWidth && (x / this.offCanvasRightWidth)) || 0; + } + if (ratio === 0) { + this.openPercentage(0); + this._dispatchEvent(); //此处不触发webkitTransitionEnd,所以手动dispatch + return; + } + if (direction === 'right' && ratio >= 0 && (ratio >= 0.5 || detail.swipe)) { //右滑打开 + this.openPercentage(100); + } else if (direction === 'right' && ratio < 0 && (ratio > -0.5 || detail.swipe)) { //右滑关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio > 0 && ratio < 0.5) { //右滑还原关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio < 0.5) { //右滑还原打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio <= 0 && (ratio <= -0.5 || detail.swipe)) { //左滑打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio > 0 && (ratio <= 0.5 || detail.swipe)) { //左滑关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio < 0 && ratio >= -0.5) { //左滑还原关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio > 0.5) { //左滑还原打开 + this.openPercentage(100); + } else { //默认关闭 + this.openPercentage(0); + } + if (ratio === 1 || ratio === -1) { //此处不触发webkitTransitionEnd,所以手动dispatch + this._dispatchEvent(); + } + } else { + if (x >= 0) { + ratio = (this.offCanvasRightWidth && (x / this.offCanvasRightWidth)) || 0; + } else { + ratio = (this.offCanvasLeftWidth && (x / this.offCanvasLeftWidth)) || 0; + } + if (direction === 'right' && ratio <= 0 && (ratio >= -0.5 || detail.swipe)) { //右滑打开 + this.openPercentage(100); + } else if (direction === 'right' && ratio > 0 && (ratio >= 0.5 || detail.swipe)) { //右滑关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio <= -0.5) { //右滑还原关闭 + this.openPercentage(0); + } else if (direction === 'right' && ratio > 0 && ratio <= 0.5) { //右滑还原打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio >= 0 && (ratio <= 0.5 || detail.swipe)) { //左滑打开 + this.openPercentage(-100); + } else if (direction === 'left' && ratio < 0 && (ratio <= -0.5 || detail.swipe)) { //左滑关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio >= 0.5) { //左滑还原关闭 + this.openPercentage(0); + } else if (direction === 'left' && ratio >= -0.5 && ratio < 0) { //左滑还原打开 + this.openPercentage(100); + } else { + this.openPercentage(0); + } + if (ratio === 1 || ratio === -1 || ratio === 0) { + this._dispatchEvent(); + return; + } + + } + } + break; + } + }, + _dispatchEvent: function() { + if (this.classList.contains(CLASS_ACTIVE)) { + $.trigger(this.wrapper, 'shown', this); + } else { + $.trigger(this.wrapper, 'hidden', this); + } + }, + _initOffCanvasVisible: function() { + if (!this.visible) { + this.visible = true; + if (this.offCanvasLeft) { + this.offCanvasLeft.style.visibility = 'visible'; + } + if (this.offCanvasRight) { + this.offCanvasRight.style.visibility = 'visible'; + } + } + }, + initEvent: function() { + var self = this; + if (self.backdrop) { + self.backdrop.addEventListener('tap', function(e) { + self.close(); + e.detail.gesture.preventDefault(); + }); + } + if (this.classList.contains('mui-draggable')) { + this.wrapper.addEventListener($.EVENT_START, this); //临时处理 + this.wrapper.addEventListener('drag', this); + this.wrapper.addEventListener('dragend', this); + } + this.wrapper.addEventListener('webkitTransitionEnd', this); + }, + openPercentage: function(percentage) { + var p = percentage / 100; + if (!this.slideIn) { + if (this.offCanvasLeft && percentage >= 0) { + this.updateTranslate(this.offCanvasLeftWidth * p); + this.offCanvasLeft.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else if (this.offCanvasRight && percentage <= 0) { + this.updateTranslate(this.offCanvasRightWidth * p); + this.offCanvasRight.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.classList[p !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else { + if (this.offCanvasLeft && percentage >= 0) { + p = p === 0 ? -1 : 0; + this.updateTranslate(this.offCanvasLeftWidth * p); + this.offCanvasLeft.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } else if (this.offCanvasRight && percentage <= 0) { + p = p === 0 ? 1 : 0; + this.updateTranslate(this.offCanvasRightWidth * p); + this.offCanvasRight.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.classList[percentage !== 0 ? 'add' : 'remove'](CLASS_ACTIVE); + } + }, + updateTranslate: function(x) { + if (x !== this.lastTranslateX) { + if (!this.slideIn) { + if ((!this.offCanvasLeft && x > 0) || (!this.offCanvasRight && x < 0)) { + this.setTranslateX(0); + return; + } + if (this.leftShowing && x > this.offCanvasLeftWidth) { + this.setTranslateX(this.offCanvasLeftWidth); + return; + } + if (this.rightShowing && x < -this.offCanvasRightWidth) { + this.setTranslateX(-this.offCanvasRightWidth); + return; + } + this.setTranslateX(x); + if (x >= 0) { + this.leftShowing = true; + this.rightShowing = false; + if (x > 0) { + if (this.offCanvasLeft) { + $.each(this.offCanvasLefts, function(index, offCanvas) { + if (offCanvas === this.offCanvasLeft) { + this.offCanvasLeft.style.zIndex = 0; + } else { + offCanvas.style.zIndex = -1; + } + }.bind(this)); + } + if (this.offCanvasRight) { + this.offCanvasRight.style.zIndex = -1; + } + } + } else { + this.rightShowing = true; + this.leftShowing = false; + if (this.offCanvasRight) { + $.each(this.offCanvasRights, function(index, offCanvas) { + if (offCanvas === this.offCanvasRight) { + offCanvas.style.zIndex = 0; + } else { + offCanvas.style.zIndex = -1; + } + }.bind(this)); + } + if (this.offCanvasLeft) { + this.offCanvasLeft.style.zIndex = -1; + } + } + } else { + if (this.offCanvas.classList.contains(CLASS_OFF_CANVAS_RIGHT)) { + if (x < 0) { + this.setTranslateX(0); + return; + } + if (x > this.offCanvasRightWidth) { + this.setTranslateX(this.offCanvasRightWidth); + return; + } + } else { + if (x > 0) { + this.setTranslateX(0); + return; + } + if (x < -this.offCanvasLeftWidth) { + this.setTranslateX(-this.offCanvasLeftWidth); + return; + } + } + this.setTranslateX(x); + } + this.lastTranslateX = x; + } + }, + setTranslateX: $.animationFrame(function(x) { + if (this.scroller) { + if (this.scalable && this.offCanvas.parentNode === this.wrapper) { + var percent = Math.abs(x) / this.offCanvasWidth; + var zoomOutScale = 1 - (1 - this.options.scale) * percent; + var zoomInScale = this.options.scale + (1 - this.options.scale) * percent; + var zoomOutOpacity = 1 - (1 - this.options.opacity) * percent; + var zoomInOpacity = this.options.opacity + (1 - this.options.opacity) * percent; + if (this.offCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT)) { + this.offCanvas.style.webkitTransformOrigin = '-100%'; + this.scroller.style.webkitTransformOrigin = 'left'; + } else { + this.offCanvas.style.webkitTransformOrigin = '200%'; + this.scroller.style.webkitTransformOrigin = 'right'; + } + this.offCanvas.style.opacity = zoomInOpacity; + this.offCanvas.style.webkitTransform = 'translate3d(0,0,0) scale(' + zoomInScale + ')'; + this.scroller.style.webkitTransform = 'translate3d(' + x + 'px,0,0) scale(' + zoomOutScale + ')'; + } else { + if (this.slideIn) { + this.offCanvas.style.webkitTransform = 'translate3d(' + x + 'px,0,0)'; + } else { + this.scroller.style.webkitTransform = 'translate3d(' + x + 'px,0,0)'; + } + } + } + }), + getTranslateX: function() { + if (this.offCanvas) { + var scroller = this.slideIn ? this.offCanvas : this.scroller; + var result = $.parseTranslateMatrix($.getStyles(scroller, 'webkitTransform')); + return (result && result.x) || 0; + } + return 0; + }, + isShown: function(direction) { + var shown = false; + if (!this.slideIn) { + var x = this.getTranslateX(); + if (direction === 'right') { + shown = this.classList.contains(CLASS_ACTIVE) && x < 0; + } else if (direction === 'left') { + shown = this.classList.contains(CLASS_ACTIVE) && x > 0; + } else { + shown = this.classList.contains(CLASS_ACTIVE) && x !== 0; + } + } else { + if (direction === 'left') { + shown = this.classList.contains(CLASS_ACTIVE) && this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE); + } else if (direction === 'right') { + shown = this.classList.contains(CLASS_ACTIVE) && this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE); + } else { + shown = this.classList.contains(CLASS_ACTIVE) && (this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE) || this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE)); + } + } + return shown; + }, + close: function() { + this._initOffCanvasVisible(); + this.offCanvas = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT + '.' + CLASS_ACTIVE) || this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_LEFT + '.' + CLASS_ACTIVE); + this.offCanvasWidth = this.offCanvas.offsetWidth; + if (this.scroller) { + this.offCanvas.offsetHeight; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + this.openPercentage(0); + } + }, + show: function(direction) { + this._initOffCanvasVisible(); + if (this.isShown(direction)) { + return false; + } + if (!direction) { + direction = this.wrapper.querySelector('.' + CLASS_OFF_CANVAS_RIGHT) ? 'right' : 'left'; + } + if (direction === 'right') { + this.offCanvas = this.offCanvasRight; + this.offCanvasWidth = this.offCanvasRightWidth; + } else { + this.offCanvas = this.offCanvasLeft; + this.offCanvasWidth = this.offCanvasLeftWidth; + } + if (this.scroller) { + this.offCanvas.offsetHeight; + this.offCanvas.classList.add(CLASS_TRANSITIONING); + this.scroller.classList.add(CLASS_TRANSITIONING); + this.openPercentage(direction === 'left' ? 100 : -100); + } + return true; + }, + toggle: function(directionOrOffCanvas) { + var direction = directionOrOffCanvas; + if (directionOrOffCanvas && directionOrOffCanvas.classList) { + direction = directionOrOffCanvas.classList.contains(CLASS_OFF_CANVAS_LEFT) ? 'left' : 'right'; + this.refresh(directionOrOffCanvas); + } + if (!this.show(direction)) { + this.close(); + } + } + }); + + //hash to offcanvas + var findOffCanvasContainer = function(target) { + parentNode = target.parentNode; + if (parentNode) { + if (parentNode.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + return parentNode; + } else { + parentNode = parentNode.parentNode; + if (parentNode.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + return parentNode; + } + } + } + }; + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + var offcanvas = document.getElementById(target.hash.replace('#', '')); + if (offcanvas) { + var container = findOffCanvasContainer(offcanvas); + if (container) { + $.targets._container = container; + return offcanvas; + } + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 60, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + window.addEventListener('tap', function(e) { + if (!$.targets.offcanvas) { + return; + } + //TODO 此处类型的代码后续考虑统一优化(target机制),现在的实现费力不讨好 + var target = e.target; + for (; target && target !== document; target = target.parentNode) { + if (target.tagName === 'A' && target.hash && target.hash === ('#' + $.targets.offcanvas.id)) { + e.detail && e.detail.gesture && e.detail.gesture.preventDefault(); //fixed hashchange + $($.targets._container).offCanvas().toggle($.targets.offcanvas); + $.targets.offcanvas = $.targets._container = null; + break; + } + } + }); + + $.fn.offCanvas = function(options) { + var offCanvasApis = []; + this.each(function() { + var offCanvasApi = null; + var self = this; + //hack old version + if (!self.classList.contains(CLASS_OFF_CANVAS_WRAP)) { + self = findOffCanvasContainer(self); + } + var id = self.getAttribute('data-offCanvas'); + if (!id) { + id = ++$.uuid; + $.data[id] = offCanvasApi = new OffCanvas(self, options); + self.setAttribute('data-offCanvas', id); + } else { + offCanvasApi = $.data[id]; + } + if (options === 'show' || options === 'close' || options === 'toggle') { + offCanvasApi.toggle(); + } + offCanvasApis.push(offCanvasApi); + }); + return offCanvasApis.length === 1 ? offCanvasApis[0] : offCanvasApis; + }; + $.ready(function() { + $('.mui-off-canvas-wrap').offCanvas(); + }); +})(mui, window, document, 'offcanvas'); +/** + * actions + * @param {type} $ + * @param {type} name + * @returns {undefined} + */ +(function($, name) { + var CLASS_ACTION = 'mui-action'; + + var handle = function(event, target) { + var className = target.className || ''; + if (typeof className !== 'string') { //svg className(SVGAnimatedString) + className = ''; + } + if (className && ~className.indexOf(CLASS_ACTION)) { + if (target.classList.contains('mui-action-back')) { + event.preventDefault(); + } + return target; + } + return false; + }; + + $.registerTarget({ + name: name, + index: 50, + handle: handle, + target: false, + isContinue: true + }); + +})(mui, 'action'); +/** + * Modals + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} name + * @returns {undefined} + */ +(function($, window, document, name) { + var CLASS_MODAL = 'mui-modal'; + + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + var modal = document.getElementById(target.hash.replace('#', '')); + if (modal && modal.classList.contains(CLASS_MODAL)) { + return modal; + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 50, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + window.addEventListener('tap', function(event) { + if ($.targets.modal) { + event.detail.gesture.preventDefault(); //fixed hashchange + $.targets.modal.classList.toggle('mui-active'); + } + }); +})(mui, window, document, 'modal'); +/** + * Popovers + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} name + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, document, name) { + + var CLASS_POPOVER = 'mui-popover'; + var CLASS_POPOVER_ARROW = 'mui-popover-arrow'; + var CLASS_ACTION_POPOVER = 'mui-popover-action'; + var CLASS_BACKDROP = 'mui-backdrop'; + var CLASS_BAR_POPOVER = 'mui-bar-popover'; + var CLASS_BAR_BACKDROP = 'mui-bar-backdrop'; + var CLASS_ACTION_BACKDROP = 'mui-backdrop-action'; + var CLASS_ACTIVE = 'mui-active'; + var CLASS_BOTTOM = 'mui-bottom'; + + + + var handle = function(event, target) { + if (target.tagName === 'A' && target.hash) { + $.targets._popover = document.getElementById(target.hash.replace('#', '')); + if ($.targets._popover && $.targets._popover.classList.contains(CLASS_POPOVER)) { + return target; + } else { + $.targets._popover = null; + } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 60, + handle: handle, + target: false, + isReset: false, + isContinue: true + }); + + var onPopoverShown = function(e) { + this.removeEventListener('webkitTransitionEnd', onPopoverShown); + this.addEventListener($.EVENT_MOVE, $.preventDefault); + $.trigger(this, 'shown', this); + } + var onPopoverHidden = function(e) { + setStyle(this, 'none'); + this.removeEventListener('webkitTransitionEnd', onPopoverHidden); + this.removeEventListener($.EVENT_MOVE, $.preventDefault); + $.trigger(this, 'hidden', this); + }; + + var backdrop = (function() { + var element = document.createElement('div'); + element.classList.add(CLASS_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('tap', function(e) { + var popover = $.targets._popover; + if (popover) { + popover.addEventListener('webkitTransitionEnd', onPopoverHidden); + popover.classList.remove(CLASS_ACTIVE); + removeBackdrop(popover); + } + }); + + return element; + }()); + var removeBackdropTimer; + var removeBackdrop = function(popover) { + backdrop.setAttribute('style', 'opacity:0'); + $.targets.popover = $.targets._popover = null; //reset + removeBackdropTimer = $.later(function() { + if (!popover.classList.contains(CLASS_ACTIVE) && backdrop.parentNode && backdrop.parentNode === document.body) { + document.body.removeChild(backdrop); + } + }, 350); + }; + window.addEventListener('tap', function(e) { + if (!$.targets.popover) { + return; + } + var toggle = false; + var target = e.target; + for (; target && target !== document; target = target.parentNode) { + if (target === $.targets.popover) { + toggle = true; + } + } + if (toggle) { + e.detail.gesture.preventDefault(); //fixed hashchange + togglePopover($.targets._popover, $.targets.popover); + } + + }); + + var togglePopover = function(popover, anchor, state) { + if ((state === 'show' && popover.classList.contains(CLASS_ACTIVE)) || (state === 'hide' && !popover.classList.contains(CLASS_ACTIVE))) { + return; + } + removeBackdropTimer && removeBackdropTimer.cancel(); //取消remove的timer + //remove一遍,以免来回快速切换,导致webkitTransitionEnd不触发,无法remove + popover.removeEventListener('webkitTransitionEnd', onPopoverShown); + popover.removeEventListener('webkitTransitionEnd', onPopoverHidden); + backdrop.classList.remove(CLASS_BAR_BACKDROP); + backdrop.classList.remove(CLASS_ACTION_BACKDROP); + var _popover = document.querySelector('.mui-popover.mui-active'); + if (_popover) { + // _popover.setAttribute('style', ''); + _popover.addEventListener('webkitTransitionEnd', onPopoverHidden); + _popover.classList.remove(CLASS_ACTIVE); + // _popover.removeEventListener('webkitTransitionEnd', onPopoverHidden); + //同一个弹出则直接返回,解决同一个popover的toggle + if (popover === _popover) { + removeBackdrop(_popover); + return; + } + } + var isActionSheet = false; + if (popover.classList.contains(CLASS_BAR_POPOVER) || popover.classList.contains(CLASS_ACTION_POPOVER)) { //navBar + if (popover.classList.contains(CLASS_ACTION_POPOVER)) { //action sheet popover + isActionSheet = true; + backdrop.classList.add(CLASS_ACTION_BACKDROP); + } else { //bar popover + backdrop.classList.add(CLASS_BAR_BACKDROP); + // if (anchor) { + // if (anchor.parentNode) { + // var offsetWidth = anchor.offsetWidth; + // var offsetLeft = anchor.offsetLeft; + // var innerWidth = window.innerWidth; + // popover.style.left = (Math.min(Math.max(offsetLeft, defaultPadding), innerWidth - offsetWidth - defaultPadding)) + "px"; + // } else { + // //TODO anchor is position:{left,top,bottom,right} + // } + // } + } + } + setStyle(popover, 'block'); //actionsheet transform + popover.offsetHeight; + popover.classList.add(CLASS_ACTIVE); + backdrop.setAttribute('style', ''); + document.body.appendChild(backdrop); + calPosition(popover, anchor, isActionSheet); //position + backdrop.classList.add(CLASS_ACTIVE); + popover.addEventListener('webkitTransitionEnd', onPopoverShown); + }; + var setStyle = function(popover, display, top, left) { + var style = popover.style; + if (typeof display !== 'undefined') + style.display = display; + if (typeof top !== 'undefined') + style.top = top + 'px'; + if (typeof left !== 'undefined') + style.left = left + 'px'; + }; + var calPosition = function(popover, anchor, isActionSheet) { + if (!popover || !anchor) { + return; + } + + if (isActionSheet) { //actionsheet + setStyle(popover, 'block') + return; + } + + var wWidth = window.innerWidth; + var wHeight = window.innerHeight; + + var pWidth = popover.offsetWidth; + var pHeight = popover.offsetHeight; + + var aWidth = anchor.offsetWidth; + var aHeight = anchor.offsetHeight; + var offset = $.offset(anchor); + + var arrow = popover.querySelector('.' + CLASS_POPOVER_ARROW); + if (!arrow) { + arrow = document.createElement('div'); + arrow.className = CLASS_POPOVER_ARROW; + popover.appendChild(arrow); + } + var arrowSize = arrow && arrow.offsetWidth / 2 || 0; + + + + var pTop = 0; + var pLeft = 0; + var diff = 0; + var arrowLeft = 0; + var defaultPadding = popover.classList.contains(CLASS_ACTION_POPOVER) ? 0 : 5; + + var position = 'top'; + if ((pHeight + arrowSize) < (offset.top - window.pageYOffset)) { //top + pTop = offset.top - pHeight - arrowSize; + } else if ((pHeight + arrowSize) < (wHeight - (offset.top - window.pageYOffset) - aHeight)) { //bottom + position = 'bottom'; + pTop = offset.top + aHeight + arrowSize; + } else { //middle + position = 'middle'; + pTop = Math.max((wHeight - pHeight) / 2 + window.pageYOffset, 0); + pLeft = Math.max((wWidth - pWidth) / 2 + window.pageXOffset, 0); + } + if (position === 'top' || position === 'bottom') { + pLeft = aWidth / 2 + offset.left - pWidth / 2; + diff = pLeft; + if (pLeft < defaultPadding) pLeft = defaultPadding; + if (pLeft + pWidth > wWidth) pLeft = wWidth - pWidth - defaultPadding; + + if (arrow) { + if (position === 'top') { + arrow.classList.add(CLASS_BOTTOM); + } else { + arrow.classList.remove(CLASS_BOTTOM); + } + diff = diff - pLeft; + arrowLeft = (pWidth / 2 - arrowSize / 2 + diff); + arrowLeft = Math.max(Math.min(arrowLeft, pWidth - arrowSize * 2 - 6), 6); + arrow.setAttribute('style', 'left:' + arrowLeft + 'px'); + } + } else if (position === 'middle') { + arrow.setAttribute('style', 'display:none'); + } + setStyle(popover, 'block', pTop, pLeft); + }; + + $.createMask = function(callback) { + var element = document.createElement('div'); + element.classList.add(CLASS_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('tap', function() { + mask.close(); + }); + var mask = [element]; + mask._show = false; + mask.show = function() { + mask._show = true; + element.setAttribute('style', 'opacity:1'); + document.body.appendChild(element); + return mask; + }; + mask._remove = function() { + if (mask._show) { + mask._show = false; + element.setAttribute('style', 'opacity:0'); + $.later(function() { + var body = document.body; + element.parentNode === body && body.removeChild(element); + }, 350); + } + return mask; + }; + mask.close = function() { + if (callback) { + if (callback() !== false) { + mask._remove(); + } + } else { + mask._remove(); + } + }; + return mask; + }; + $.fn.popover = function() { + var args = arguments; + this.each(function() { + $.targets._popover = this; + if (args[0] === 'show' || args[0] === 'hide' || args[0] === 'toggle') { + togglePopover(this, args[1], args[0]); + } + }); + }; + +})(mui, window, document, 'popover'); +/** + * segmented-controllers + * @param {type} $ + * @param {type} window + * @param {type} document + * @param {type} undefined + * @returns {undefined} + */ +(function($, window, document, name, undefined) { + + var CLASS_CONTROL_ITEM = 'mui-control-item'; + var CLASS_SEGMENTED_CONTROL = 'mui-segmented-control'; + var CLASS_SEGMENTED_CONTROL_VERTICAL = 'mui-segmented-control-vertical'; + var CLASS_CONTROL_CONTENT = 'mui-control-content'; + var CLASS_TAB_BAR = 'mui-bar-tab'; + var CLASS_TAB_ITEM = 'mui-tab-item'; + var CLASS_SLIDER_ITEM = 'mui-slider-item'; + + var handle = function(event, target) { + if (target.classList && (target.classList.contains(CLASS_CONTROL_ITEM) || target.classList.contains(CLASS_TAB_ITEM))) { + if (target.parentNode && target.parentNode.classList && target.parentNode.classList.contains(CLASS_SEGMENTED_CONTROL_VERTICAL)) { + //vertical 如果preventDefault会导致无法滚动 + } else { + + event.preventDefault(); + // if(target.tagName == 'A') { + // // fixed 底部选项卡href 无法跳转 && stop hash change + // var curr_href = location.hostname + location.pathname, + // target_href = target.hostname + target.pathname; + + // if (curr_href == target_href && target.hash !== "") { + // event.preventDefault(); + // return target; + // }else{ + // return false + // } + // } + } + // if (target.hash) { + return target; + // } + } + return false; + }; + + $.registerTarget({ + name: name, + index: 80, + handle: handle, + target: false + }); + + window.addEventListener('tap', function(e) { + + var targetTab = $.targets.tab; + if (!targetTab) { + return; + } + var activeTab; + var activeBodies; + var targetBody; + var className = 'mui-active'; + var classSelector = '.' + className; + var segmentedControl = targetTab.parentNode; + + for (; segmentedControl && segmentedControl !== document; segmentedControl = segmentedControl.parentNode) { + if (segmentedControl.classList.contains(CLASS_SEGMENTED_CONTROL)) { + activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_CONTROL_ITEM); + break; + } else if (segmentedControl.classList.contains(CLASS_TAB_BAR)) { + activeTab = segmentedControl.querySelector(classSelector + '.' + CLASS_TAB_ITEM); + } + } + + if (activeTab) { + activeTab.classList.remove(className); + } + + var isLastActive = targetTab === activeTab; + if (targetTab) { + targetTab.classList.add(className); + } + + if (!targetTab.hash) { + return; + } + targetBody = document.getElementById(targetTab.hash.replace('#', '')); + + if (!targetBody) { + return; + } + if (!targetBody.classList.contains(CLASS_CONTROL_CONTENT)) { //tab bar popover + targetTab.classList[isLastActive ? 'remove' : 'add'](className); + return; + } + if (isLastActive) { //same + return; + } + var parentNode = targetBody.parentNode; + activeBodies = parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT + classSelector); + for (var i = 0; i < activeBodies.length; i++) { + var activeBody = activeBodies[i]; + activeBody.parentNode === parentNode && activeBody.classList.remove(className); + } + + targetBody.classList.add(className); + + var contents = []; + var _contents = parentNode.querySelectorAll('.' + CLASS_CONTROL_CONTENT); + for (var i = 0; i < _contents.length; i++) { //查找直属子节点 + _contents[i].parentNode === parentNode && (contents.push(_contents[i])); + } + $.trigger(targetBody, $.eventName('shown', name), { + tabNumber: Array.prototype.indexOf.call(contents, targetBody) + }); + e.detail && e.detail.gesture.preventDefault(); //fixed hashchange + }); + +})(mui, window, document, 'tab'); +/** + * Toggles switch + * @param {type} $ + * @param {type} window + * @param {type} name + * @returns {undefined} + */ +(function($, window, name) { + + var CLASS_SWITCH = 'mui-switch'; + var CLASS_SWITCH_HANDLE = 'mui-switch-handle'; + var CLASS_ACTIVE = 'mui-active'; + var CLASS_DRAGGING = 'mui-dragging'; + + var CLASS_DISABLED = 'mui-disabled'; + + var SELECTOR_SWITCH_HANDLE = '.' + CLASS_SWITCH_HANDLE; + + var handle = function(event, target) { + if (target.classList && target.classList.contains(CLASS_SWITCH)) { + return target; + } + return false; + }; + + $.registerTarget({ + name: name, + index: 100, + handle: handle, + target: false + }); + + + var Toggle = function(element) { + this.element = element; + this.classList = this.element.classList; + this.handle = this.element.querySelector(SELECTOR_SWITCH_HANDLE); + this.init(); + this.initEvent(); + }; + Toggle.prototype.init = function() { + this.toggleWidth = this.element.offsetWidth; + this.handleWidth = this.handle.offsetWidth; + this.handleX = this.toggleWidth - this.handleWidth - 3; + }; + Toggle.prototype.initEvent = function() { + this.element.addEventListener($.EVENT_START, this); + this.element.addEventListener('drag', this); + this.element.addEventListener('swiperight', this); + this.element.addEventListener($.EVENT_END, this); + this.element.addEventListener($.EVENT_CANCEL, this); + + }; + Toggle.prototype.handleEvent = function(e) { + if (this.classList.contains(CLASS_DISABLED)) { + return; + } + switch (e.type) { + case $.EVENT_START: + this.start(e); + break; + case 'drag': + this.drag(e); + break; + case 'swiperight': + this.swiperight(); + break; + case $.EVENT_END: + case $.EVENT_CANCEL: + this.end(e); + break; + } + }; + Toggle.prototype.start = function(e) { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '.2s'; + this.classList.add(CLASS_DRAGGING); + if (this.toggleWidth === 0 || this.handleWidth === 0) { //当switch处于隐藏状态时,width为0,需要重新初始化 + this.init(); + } + }; + Toggle.prototype.drag = function(e) { + var detail = e.detail; + if (!this.isDragging) { + if (detail.direction === 'left' || detail.direction === 'right') { + this.isDragging = true; + this.lastChanged = undefined; + this.initialState = this.classList.contains(CLASS_ACTIVE); + } + } + if (this.isDragging) { + this.setTranslateX(detail.deltaX); + e.stopPropagation(); + detail.gesture.preventDefault(); + } + }; + Toggle.prototype.swiperight = function(e) { + if (this.isDragging) { + e.stopPropagation(); + } + }; + Toggle.prototype.end = function(e) { + this.classList.remove(CLASS_DRAGGING); + if (this.isDragging) { + this.isDragging = false; + e.stopPropagation(); + $.trigger(this.element, 'toggle', { + isActive: this.classList.contains(CLASS_ACTIVE) + }); + } else { + this.toggle(); + } + }; + Toggle.prototype.toggle = function(animate) { + var classList = this.classList; + if (animate === false) { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '0s'; + } else { + this.handle.style.webkitTransitionDuration = this.element.style.webkitTransitionDuration = '.2s'; + } + if (classList.contains(CLASS_ACTIVE)) { + classList.remove(CLASS_ACTIVE); + this.handle.style.webkitTransform = 'translate(0,0)'; + } else { + classList.add(CLASS_ACTIVE); + this.handle.style.webkitTransform = 'translate(' + this.handleX + 'px,0)'; + } + $.trigger(this.element, 'toggle', { + isActive: this.classList.contains(CLASS_ACTIVE) + }); + }; + Toggle.prototype.setTranslateX = $.animationFrame(function(x) { + if (!this.isDragging) { + return; + } + var isChanged = false; + if ((this.initialState && -x > (this.handleX / 2)) || (!this.initialState && x > (this.handleX / 2))) { + isChanged = true; + } + if (this.lastChanged !== isChanged) { + if (isChanged) { + this.handle.style.webkitTransform = 'translate(' + (this.initialState ? 0 : this.handleX) + 'px,0)'; + this.classList[this.initialState ? 'remove' : 'add'](CLASS_ACTIVE); + } else { + this.handle.style.webkitTransform = 'translate(' + (this.initialState ? this.handleX : 0) + 'px,0)'; + this.classList[this.initialState ? 'add' : 'remove'](CLASS_ACTIVE); + } + this.lastChanged = isChanged; + } + + }); + + $.fn['switch'] = function(options) { + var switchApis = []; + this.each(function() { + var switchApi = null; + var id = this.getAttribute('data-switch'); + if (!id) { + id = ++$.uuid; + $.data[id] = new Toggle(this); + this.setAttribute('data-switch', id); + } else { + switchApi = $.data[id]; + } + switchApis.push(switchApi); + }); + return switchApis.length > 1 ? switchApis : switchApis[0]; + }; + $.ready(function() { + $('.' + CLASS_SWITCH)['switch'](); + }); +})(mui, window, 'toggle'); +/** + * Tableviews + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + + var CLASS_ACTIVE = 'mui-active'; + var CLASS_SELECTED = 'mui-selected'; + var CLASS_GRID_VIEW = 'mui-grid-view'; + var CLASS_RADIO_VIEW = 'mui-table-view-radio'; + var CLASS_TABLE_VIEW_CELL = 'mui-table-view-cell'; + var CLASS_COLLAPSE_CONTENT = 'mui-collapse-content'; + var CLASS_DISABLED = 'mui-disabled'; + var CLASS_TOGGLE = 'mui-switch'; + var CLASS_BTN = 'mui-btn'; + + var CLASS_SLIDER_HANDLE = 'mui-slider-handle'; + var CLASS_SLIDER_LEFT = 'mui-slider-left'; + var CLASS_SLIDER_RIGHT = 'mui-slider-right'; + var CLASS_TRANSITIONING = 'mui-transitioning'; + + + var SELECTOR_SLIDER_HANDLE = '.' + CLASS_SLIDER_HANDLE; + var SELECTOR_SLIDER_LEFT = '.' + CLASS_SLIDER_LEFT; + var SELECTOR_SLIDER_RIGHT = '.' + CLASS_SLIDER_RIGHT; + var SELECTOR_SELECTED = '.' + CLASS_SELECTED; + var SELECTOR_BUTTON = '.' + CLASS_BTN; + var overFactor = 0.8; + var cell, a; + + var isMoved = isOpened = openedActions = progress = false; + var sliderHandle = sliderActionLeft = sliderActionRight = buttonsLeft = buttonsRight = sliderDirection = sliderRequestAnimationFrame = false; + var timer = translateX = lastTranslateX = sliderActionLeftWidth = sliderActionRightWidth = 0; + + + + var toggleActive = function(isActive) { + if (isActive) { + if (a) { + a.classList.add(CLASS_ACTIVE); + } else if (cell) { + cell.classList.add(CLASS_ACTIVE); + } + } else { + timer && timer.cancel(); + if (a) { + a.classList.remove(CLASS_ACTIVE); + } else if (cell) { + cell.classList.remove(CLASS_ACTIVE); + } + } + }; + + var updateTranslate = function() { + if (translateX !== lastTranslateX) { + if (buttonsRight && buttonsRight.length > 0) { + progress = translateX / sliderActionRightWidth; + if (translateX < -sliderActionRightWidth) { + translateX = -sliderActionRightWidth - Math.pow(-translateX - sliderActionRightWidth, overFactor); + } + for (var i = 0, len = buttonsRight.length; i < len; i++) { + var buttonRight = buttonsRight[i]; + if (typeof buttonRight._buttonOffset === 'undefined') { + buttonRight._buttonOffset = buttonRight.offsetLeft; + } + buttonOffset = buttonRight._buttonOffset; + setTranslate(buttonRight, (translateX - buttonOffset * (1 + Math.max(progress, -1)))); + } + } + if (buttonsLeft && buttonsLeft.length > 0) { + progress = translateX / sliderActionLeftWidth; + if (translateX > sliderActionLeftWidth) { + translateX = sliderActionLeftWidth + Math.pow(translateX - sliderActionLeftWidth, overFactor); + } + for (var i = 0, len = buttonsLeft.length; i < len; i++) { + var buttonLeft = buttonsLeft[i]; + if (typeof buttonLeft._buttonOffset === 'undefined') { + buttonLeft._buttonOffset = sliderActionLeftWidth - buttonLeft.offsetLeft - buttonLeft.offsetWidth; + } + buttonOffset = buttonLeft._buttonOffset; + if (buttonsLeft.length > 1) { + buttonLeft.style.zIndex = buttonsLeft.length - i; + } + setTranslate(buttonLeft, (translateX + buttonOffset * (1 - Math.min(progress, 1)))); + } + } + setTranslate(sliderHandle, translateX); + lastTranslateX = translateX; + } + sliderRequestAnimationFrame = requestAnimationFrame(function() { + updateTranslate(); + }); + }; + var setTranslate = function(element, x) { + if (element) { + element.style.webkitTransform = 'translate(' + x + 'px,0)'; + } + }; + + window.addEventListener($.EVENT_START, function(event) { + if (cell) { + toggleActive(false); + } + cell = a = false; + isMoved = isOpened = openedActions = false; + var target = event.target; + var isDisabled = false; + for (; target && target !== document; target = target.parentNode) { + if (target.classList) { + var classList = target.classList; + if ((target.tagName === 'INPUT' && target.type !== 'radio' && target.type !== 'checkbox') || target.tagName === 'BUTTON' || classList.contains(CLASS_TOGGLE) || classList.contains(CLASS_BTN) || classList.contains(CLASS_DISABLED)) { + isDisabled = true; + } + if (classList.contains(CLASS_COLLAPSE_CONTENT)) { //collapse content + break; + } + if (classList.contains(CLASS_TABLE_VIEW_CELL)) { + cell = target; + //TODO swipe to delete close + var selected = cell.parentNode.querySelector(SELECTOR_SELECTED); + if (!cell.parentNode.classList.contains(CLASS_RADIO_VIEW) && selected && selected !== cell) { + $.swipeoutClose(selected); + cell = isDisabled = false; + return; + } + if (!cell.parentNode.classList.contains(CLASS_GRID_VIEW)) { + var link = cell.querySelector('a'); + if (link && link.parentNode === cell) { //li>a + a = link; + } + } + var handle = cell.querySelector(SELECTOR_SLIDER_HANDLE); + if (handle) { + toggleEvents(cell); + event.stopPropagation(); + } + if (!isDisabled) { + if (handle) { + if (timer) { + timer.cancel(); + } + timer = $.later(function() { + toggleActive(true); + }, 100); + } else { + toggleActive(true); + } + } + break; + } + } + } + }); + window.addEventListener($.EVENT_MOVE, function(event) { + toggleActive(false); + }); + + var handleEvent = { + handleEvent: function(event) { + switch (event.type) { + case 'drag': + this.drag(event); + break; + case 'dragend': + this.dragend(event); + break; + case 'flick': + this.flick(event); + break; + case 'swiperight': + this.swiperight(event); + break; + case 'swipeleft': + this.swipeleft(event); + break; + } + }, + drag: function(event) { + if (!cell) { + return; + } + if (!isMoved) { //init + sliderHandle = sliderActionLeft = sliderActionRight = buttonsLeft = buttonsRight = sliderDirection = sliderRequestAnimationFrame = false; + sliderHandle = cell.querySelector(SELECTOR_SLIDER_HANDLE); + if (sliderHandle) { + sliderActionLeft = cell.querySelector(SELECTOR_SLIDER_LEFT); + sliderActionRight = cell.querySelector(SELECTOR_SLIDER_RIGHT); + if (sliderActionLeft) { + sliderActionLeftWidth = sliderActionLeft.offsetWidth; + buttonsLeft = sliderActionLeft.querySelectorAll(SELECTOR_BUTTON); + } + if (sliderActionRight) { + sliderActionRightWidth = sliderActionRight.offsetWidth; + buttonsRight = sliderActionRight.querySelectorAll(SELECTOR_BUTTON); + } + cell.classList.remove(CLASS_TRANSITIONING); + isOpened = cell.classList.contains(CLASS_SELECTED); + if (isOpened) { + openedActions = cell.querySelector(SELECTOR_SLIDER_LEFT + SELECTOR_SELECTED) ? 'left' : 'right'; + } + } + } + var detail = event.detail; + var direction = detail.direction; + var angle = detail.angle; + if (direction === 'left' && (angle > 150 || angle < -150)) { + if (buttonsRight || (buttonsLeft && isOpened)) { //存在右侧按钮或存在左侧按钮且是已打开状态 + isMoved = true; + } + } else if (direction === 'right' && (angle > -30 && angle < 30)) { + if (buttonsLeft || (buttonsRight && isOpened)) { //存在左侧按钮或存在右侧按钮且是已打开状态 + isMoved = true; + } + } + if (isMoved) { + event.stopPropagation(); + event.detail.gesture.preventDefault(); + var translate = event.detail.deltaX; + if (isOpened) { + if (openedActions === 'right') { + translate = translate - sliderActionRightWidth; + } else { + translate = translate + sliderActionLeftWidth; + } + } + if ((translate > 0 && !buttonsLeft) || (translate < 0 && !buttonsRight)) { + if (!isOpened) { + return; + } + translate = 0; + } + if (translate < 0) { + sliderDirection = 'toLeft'; + } else if (translate > 0) { + sliderDirection = 'toRight'; + } else { + if (!sliderDirection) { + sliderDirection = 'toLeft'; + } + } + if (!sliderRequestAnimationFrame) { + updateTranslate(); + } + translateX = translate; + } + }, + flick: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + swipeleft: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + swiperight: function(event) { + if (isMoved) { + event.stopPropagation(); + } + }, + dragend: function(event) { + if (!isMoved) { + return; + } + event.stopPropagation(); + if (sliderRequestAnimationFrame) { + cancelAnimationFrame(sliderRequestAnimationFrame); + sliderRequestAnimationFrame = null; + } + var detail = event.detail; + isMoved = false; + var action = 'close'; + var actionsWidth = sliderDirection === 'toLeft' ? sliderActionRightWidth : sliderActionLeftWidth; + var isToggle = detail.swipe || (Math.abs(translateX) > actionsWidth / 2); + if (isToggle) { + if (!isOpened) { + action = 'open'; + } else if (detail.direction === 'left' && openedActions === 'right') { + action = 'open'; + } else if (detail.direction === 'right' && openedActions === 'left') { + action = 'open'; + } + + } + cell.classList.add(CLASS_TRANSITIONING); + var buttons; + if (action === 'open') { + var newTranslate = sliderDirection === 'toLeft' ? -actionsWidth : actionsWidth; + setTranslate(sliderHandle, newTranslate); + buttons = sliderDirection === 'toLeft' ? buttonsRight : buttonsLeft; + if (typeof buttons !== 'undefined') { + var button = null; + for (var i = 0; i < buttons.length; i++) { + button = buttons[i]; + setTranslate(button, newTranslate); + } + button.parentNode.classList.add(CLASS_SELECTED); + cell.classList.add(CLASS_SELECTED); + if (!isOpened) { + $.trigger(cell, sliderDirection === 'toLeft' ? 'slideleft' : 'slideright'); + } + } + } else { + setTranslate(sliderHandle, 0); + sliderActionLeft && sliderActionLeft.classList.remove(CLASS_SELECTED); + sliderActionRight && sliderActionRight.classList.remove(CLASS_SELECTED); + cell.classList.remove(CLASS_SELECTED); + } + var buttonOffset; + if (buttonsLeft && buttonsLeft.length > 0 && buttonsLeft !== buttons) { + for (var i = 0, len = buttonsLeft.length; i < len; i++) { + var buttonLeft = buttonsLeft[i]; + buttonOffset = buttonLeft._buttonOffset; + if (typeof buttonOffset === 'undefined') { + buttonLeft._buttonOffset = sliderActionLeftWidth - buttonLeft.offsetLeft - buttonLeft.offsetWidth; + } + setTranslate(buttonLeft, buttonOffset); + } + } + if (buttonsRight && buttonsRight.length > 0 && buttonsRight !== buttons) { + for (var i = 0, len = buttonsRight.length; i < len; i++) { + var buttonRight = buttonsRight[i]; + buttonOffset = buttonRight._buttonOffset; + if (typeof buttonOffset === 'undefined') { + buttonRight._buttonOffset = buttonRight.offsetLeft; + } + setTranslate(buttonRight, -buttonOffset); + } + } + } + }; + + function toggleEvents(element, isRemove) { + var method = !!isRemove ? 'removeEventListener' : 'addEventListener'; + element[method]('drag', handleEvent); + element[method]('dragend', handleEvent); + element[method]('swiperight', handleEvent); + element[method]('swipeleft', handleEvent); + element[method]('flick', handleEvent); + }; + /** + * 打开滑动菜单 + * @param {Object} el + * @param {Object} direction + */ + $.swipeoutOpen = function(el, direction) { + if (!el) return; + var classList = el.classList; + if (classList.contains(CLASS_SELECTED)) return; + if (!direction) { + if (el.querySelector(SELECTOR_SLIDER_RIGHT)) { + direction = 'right'; + } else { + direction = 'left'; + } + } + var swipeoutAction = el.querySelector($.classSelector(".slider-" + direction)); + if (!swipeoutAction) return; + swipeoutAction.classList.add(CLASS_SELECTED); + classList.add(CLASS_SELECTED); + classList.remove(CLASS_TRANSITIONING); + var buttons = swipeoutAction.querySelectorAll(SELECTOR_BUTTON); + var swipeoutWidth = swipeoutAction.offsetWidth; + var translate = (direction === 'right') ? -swipeoutWidth : swipeoutWidth; + var length = buttons.length; + var button; + for (var i = 0; i < length; i++) { + button = buttons[i]; + if (direction === 'right') { + setTranslate(button, -button.offsetLeft); + } else { + setTranslate(button, (swipeoutWidth - button.offsetWidth - button.offsetLeft)); + } + } + classList.add(CLASS_TRANSITIONING); + for (var i = 0; i < length; i++) { + setTranslate(buttons[i], translate); + } + setTranslate(el.querySelector(SELECTOR_SLIDER_HANDLE), translate); + }; + /** + * 关闭滑动菜单 + * @param {Object} el + */ + $.swipeoutClose = function(el) { + if (!el) return; + var classList = el.classList; + if (!classList.contains(CLASS_SELECTED)) return; + var direction = el.querySelector(SELECTOR_SLIDER_RIGHT + SELECTOR_SELECTED) ? 'right' : 'left'; + var swipeoutAction = el.querySelector($.classSelector(".slider-" + direction)); + if (!swipeoutAction) return; + swipeoutAction.classList.remove(CLASS_SELECTED); + classList.remove(CLASS_SELECTED); + classList.add(CLASS_TRANSITIONING); + var buttons = swipeoutAction.querySelectorAll(SELECTOR_BUTTON); + var swipeoutWidth = swipeoutAction.offsetWidth; + var length = buttons.length; + var button; + setTranslate(el.querySelector(SELECTOR_SLIDER_HANDLE), 0); + for (var i = 0; i < length; i++) { + button = buttons[i]; + if (direction === 'right') { + setTranslate(button, (-button.offsetLeft)); + } else { + setTranslate(button, (swipeoutWidth - button.offsetWidth - button.offsetLeft)); + } + } + }; + + window.addEventListener($.EVENT_END, function(event) { //使用touchend来取消高亮,避免一次点击既不触发tap,doubletap,longtap的事件 + if (!cell) { + return; + } + toggleActive(false); + sliderHandle && toggleEvents(cell, true); + }); + window.addEventListener($.EVENT_CANCEL, function(event) { //使用touchcancel来取消高亮,避免一次点击既不触发tap,doubletap,longtap的事件 + if (!cell) { + return; + } + toggleActive(false); + sliderHandle && toggleEvents(cell, true); + }); + var radioOrCheckboxClick = function(event) { + var type = event.target && event.target.type || ''; + if (type === 'radio' || type === 'checkbox') { + return; + } + var classList = cell.classList; + if (classList.contains('mui-radio')) { + var input = cell.querySelector('input[type=radio]'); + if (input) { + // input.click(); + if (!input.disabled && !input.readOnly) { + input.checked = !input.checked; + $.trigger(input, 'change'); + } + } + } else if (classList.contains('mui-checkbox')) { + var input = cell.querySelector('input[type=checkbox]'); + if (input) { + // input.click(); + if (!input.disabled && !input.readOnly) { + input.checked = !input.checked; + $.trigger(input, 'change'); + } + } + } + }; + //fixed hashchange(android) + window.addEventListener($.EVENT_CLICK, function(e) { + if (cell && cell.classList.contains('mui-collapse')) { + e.preventDefault(); + } + }); + window.addEventListener('doubletap', function(event) { + if (cell) { + radioOrCheckboxClick(event); + } + }); + var preventDefaultException = /^(INPUT|TEXTAREA|BUTTON|SELECT)$/; + window.addEventListener('tap', function(event) { + if (!cell) { + return; + } + var isExpand = false; + var classList = cell.classList; + var ul = cell.parentNode; + if (ul && ul.classList.contains(CLASS_RADIO_VIEW)) { + if (classList.contains(CLASS_SELECTED)) { + return; + } + var selected = ul.querySelector('li' + SELECTOR_SELECTED); + if (selected) { + selected.classList.remove(CLASS_SELECTED); + } + classList.add(CLASS_SELECTED); + $.trigger(cell, 'selected', { + el: cell + }); + return; + } + if (classList.contains('mui-collapse') && !cell.parentNode.classList.contains('mui-unfold')) { + if (!preventDefaultException.test(event.target.tagName)) { + event.detail.gesture.preventDefault(); + } + + if (!classList.contains(CLASS_ACTIVE)) { //展开时,需要收缩其他同类 + var collapse = cell.parentNode.querySelector('.mui-collapse.mui-active'); + if (collapse) { + collapse.classList.remove(CLASS_ACTIVE); + } + isExpand = true; + } + classList.toggle(CLASS_ACTIVE); + if (isExpand) { + //触发展开事件 + $.trigger(cell, 'expand'); + + //scroll + //暂不滚动 + // var offsetTop = $.offset(cell).top; + // var scrollTop = document.body.scrollTop; + // var height = window.innerHeight; + // var offsetHeight = cell.offsetHeight; + // var cellHeight = (offsetTop - scrollTop + offsetHeight); + // if (offsetHeight > height) { + // $.scrollTo(offsetTop, 300); + // } else if (cellHeight > height) { + // $.scrollTo(cellHeight - height + scrollTop, 300); + // } + } + } else { + radioOrCheckboxClick(event); + } + }); +})(mui, window, document); +(function($, window) { + /** + * 警告消息框 + */ + $.alert = function(message, title, btnValue, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + title = null; + btnValue = '确定'; + } else if (typeof btnValue === 'function') { + callback = btnValue; + btnValue = null; + } + $.plusReady(function() { + plus.nativeUI.alert(message, callback, title, btnValue); + }); + } + + } else { + //TODO H5版本 + window.alert(message); + } + }; + +})(mui, window); +(function($, window) { + /** + * 确认消息框 + */ + $.confirm = function(message, title, btnArray, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + callback = btnArray; + btnArray = null; + } + $.plusReady(function() { + plus.nativeUI.confirm(message, callback, title, btnArray); + }); + } + + } else { + //H5版本,0为确认,1为取消 + if (window.confirm(message)) { + callback({ + index: 0 + }); + } else { + callback({ + index: 1 + }); + } + } + }; + +})(mui, window); +(function($, window) { + /** + * 输入对话框 + */ + $.prompt = function(text, defaultText, title, btnArray, callback) { + if ($.os.plus) { + if (typeof message === 'undefined') { + return; + } else { + + if (typeof defaultText === 'function') { + callback = defaultText; + defaultText = null; + title = null; + btnArray = null; + } else if (typeof title === 'function') { + callback = title; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + callback = btnArray; + btnArray = null; + } + $.plusReady(function() { + plus.nativeUI.prompt(text, callback, title, defaultText, btnArray); + }); + } + + } else { + //H5版本(确认index为0,取消index为1) + var result = window.prompt(text); + if (result) { + callback({ + index: 0, + value: result + }); + } else { + callback({ + index: 1, + value: '' + }); + } + } + }; + +})(mui, window); +(function($, window) { + var CLASS_ACTIVE = 'mui-active'; + /** + * 自动消失提示框 + */ + $.toast = function(message,options) { + var durations = { + 'long': 3500, + 'short': 2000 + }; + + //计算显示时间 + options = $.extend({ + duration: 'short' + }, options || {}); + + + if ($.os.plus && options.type !== 'div') { + //默认显示在底部; + $.plusReady(function() { + plus.nativeUI.toast(message, { + verticalAlign: 'bottom', + duration:options.duration + }); + }); + } else { + if (typeof options.duration === 'number') { + duration = options.duration>0 ? options.duration:durations['short']; + } else { + duration = durations[options.duration]; + } + if (!duration) { + duration = durations['short']; + } + var toast = document.createElement('div'); + toast.classList.add('mui-toast-container'); + toast.innerHTML = '
' + message + '
'; + toast.addEventListener('webkitTransitionEnd', function() { + if (!toast.classList.contains(CLASS_ACTIVE)) { + toast.parentNode.removeChild(toast); + toast = null; + } + }); + //点击则自动消失 + toast.addEventListener('click', function() { + toast.parentNode.removeChild(toast); + toast = null; + }); + document.body.appendChild(toast); + toast.offsetHeight; + toast.classList.add(CLASS_ACTIVE); + setTimeout(function() { + toast && toast.classList.remove(CLASS_ACTIVE); + }, duration); + + return { + isVisible: function() {return !!toast;} + } + } + }; + +})(mui, window); +/** + * Popup(alert,confirm,prompt) + * @param {Object} $ + * @param {Object} window + * @param {Object} document + */ +(function($, window, document) { + var CLASS_POPUP = 'mui-popup'; + var CLASS_POPUP_BACKDROP = 'mui-popup-backdrop'; + var CLASS_POPUP_IN = 'mui-popup-in'; + var CLASS_POPUP_OUT = 'mui-popup-out'; + var CLASS_POPUP_INNER = 'mui-popup-inner'; + var CLASS_POPUP_TITLE = 'mui-popup-title'; + var CLASS_POPUP_TEXT = 'mui-popup-text'; + var CLASS_POPUP_INPUT = 'mui-popup-input'; + var CLASS_POPUP_BUTTONS = 'mui-popup-buttons'; + var CLASS_POPUP_BUTTON = 'mui-popup-button'; + var CLASS_POPUP_BUTTON_BOLD = 'mui-popup-button-bold'; + var CLASS_POPUP_BACKDROP = 'mui-popup-backdrop'; + var CLASS_ACTIVE = 'mui-active'; + + var popupStack = []; + var backdrop = (function() { + var element = document.createElement('div'); + element.classList.add(CLASS_POPUP_BACKDROP); + element.addEventListener($.EVENT_MOVE, $.preventDefault); + element.addEventListener('webkitTransitionEnd', function() { + if (!this.classList.contains(CLASS_ACTIVE)) { + element.parentNode && element.parentNode.removeChild(element); + } + }); + return element; + }()); + + var createInput = function(placeholder) { + return '
'; + }; + var createInner = function(message, title, extra) { + return '
' + title + '
' + message.replace(/\r\n/g, "
").replace(/\n/g, "
") + '
' + (extra || '') + '
'; + }; + var createButtons = function(btnArray) { + var length = btnArray.length; + var btns = []; + for (var i = 0; i < length; i++) { + btns.push('' + btnArray[i] + ''); + } + return '
' + btns.join('') + '
'; + }; + + var createPopup = function(html, callback) { + var popupElement = document.createElement('div'); + popupElement.className = CLASS_POPUP; + popupElement.innerHTML = html; + var removePopupElement = function() { + popupElement.parentNode && popupElement.parentNode.removeChild(popupElement); + popupElement = null; + }; + popupElement.addEventListener($.EVENT_MOVE, $.preventDefault); + popupElement.addEventListener('webkitTransitionEnd', function(e) { + if (popupElement && e.target === popupElement && popupElement.classList.contains(CLASS_POPUP_OUT)) { + removePopupElement(); + } + }); + popupElement.style.display = 'block'; + document.body.appendChild(popupElement); + popupElement.offsetHeight; + popupElement.classList.add(CLASS_POPUP_IN); + + if (!backdrop.classList.contains(CLASS_ACTIVE)) { + backdrop.style.display = 'block'; + document.body.appendChild(backdrop); + backdrop.offsetHeight; + backdrop.classList.add(CLASS_ACTIVE); + } + var btns = $.qsa('.' + CLASS_POPUP_BUTTON, popupElement); + var input = popupElement.querySelector('.' + CLASS_POPUP_INPUT + ' input'); + var popup = { + element: popupElement, + close: function(index, animate) { + if (popupElement) { + var result = callback && callback({ + index: index || 0, + value: input && input.value || '' + }); + if (result === false) { //返回false则不关闭当前popup + return; + } + if (animate !== false) { + popupElement.classList.remove(CLASS_POPUP_IN); + popupElement.classList.add(CLASS_POPUP_OUT); + } else { + removePopupElement(); + } + popupStack.pop(); + //如果还有其他popup,则不remove backdrop + if (popupStack.length) { + popupStack[popupStack.length - 1]['show'](animate); + } else { + backdrop.classList.remove(CLASS_ACTIVE); + } + } + } + }; + var handleEvent = function(e) { + popup.close(btns.indexOf(e.target)); + }; + $(popupElement).on('tap', '.' + CLASS_POPUP_BUTTON, handleEvent); + if (popupStack.length) { + popupStack[popupStack.length - 1]['hide'](); + } + popupStack.push({ + close: popup.close, + show: function(animate) { + popupElement.style.display = 'block'; + popupElement.offsetHeight; + popupElement.classList.add(CLASS_POPUP_IN); + }, + hide: function() { + popupElement.style.display = 'none'; + popupElement.classList.remove(CLASS_POPUP_IN); + } + }); + return popup; + }; + var createAlert = function(message, title, btnValue, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + type = btnValue; + title = null; + btnValue = null; + } else if (typeof btnValue === 'function') { + type = callback; + callback = btnValue; + btnValue = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示') + createButtons([btnValue || '确定']), callback); + } + return plus.nativeUI.alert(message, callback, title || '提示', btnValue || '确定'); + }; + var createConfirm = function(message, title, btnArray, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof title === 'function') { + callback = title; + type = btnArray; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + type = callback; + callback = btnArray; + btnArray = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示') + createButtons(btnArray || ['取消', '确认']), callback); + } + return plus.nativeUI.confirm(message, callback, title, btnArray || ['取消', '确认']); + }; + var createPrompt = function(message, placeholder, title, btnArray, callback, type) { + if (typeof message === 'undefined') { + return; + } else { + if (typeof placeholder === 'function') { + callback = placeholder; + type = title; + placeholder = null; + title = null; + btnArray = null; + } else if (typeof title === 'function') { + callback = title; + type = btnArray; + title = null; + btnArray = null; + } else if (typeof btnArray === 'function') { + type = callback; + callback = btnArray; + btnArray = null; + } + } + if (!$.os.plus || type === 'div') { + return createPopup(createInner(message, title || '提示', createInput(placeholder)) + createButtons(btnArray || ['取消', '确认']), callback); + } + return plus.nativeUI.prompt(message, callback, title || '提示', placeholder, btnArray || ['取消', '确认']); + }; + var closePopup = function() { + if (popupStack.length) { + popupStack[popupStack.length - 1]['close'](); + return true; + } else { + return false; + } + }; + var closePopups = function() { + while (popupStack.length) { + popupStack[popupStack.length - 1]['close'](); + } + }; + + $.closePopup = closePopup; + $.closePopups = closePopups; + $.alert = createAlert; + $.confirm = createConfirm; + $.prompt = createPrompt; +})(mui, window, document); +(function($, document) { + var CLASS_PROGRESSBAR = 'mui-progressbar'; + var CLASS_PROGRESSBAR_IN = 'mui-progressbar-in'; + var CLASS_PROGRESSBAR_OUT = 'mui-progressbar-out'; + var CLASS_PROGRESSBAR_INFINITE = 'mui-progressbar-infinite'; + + var SELECTOR_PROGRESSBAR = '.mui-progressbar'; + + var _findProgressbar = function(container) { + container = $(container || 'body'); + if (container.length === 0) return; + container = container[0]; + if (container.classList.contains(CLASS_PROGRESSBAR)) { + return container; + } + var progressbars = container.querySelectorAll(SELECTOR_PROGRESSBAR); + if (progressbars) { + for (var i = 0, len = progressbars.length; i < len; i++) { + var progressbar = progressbars[i]; + if (progressbar.parentNode === container) { + return progressbar; + } + } + } + }; + /** + * 创建并显示进度条 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + * @param {Object} progress 可选,undefined表示循环,数字表示具体进度 + * @param {Object} color 可选,指定颜色样式(目前暂未提供实际样式,可暂时不暴露此参数) + */ + var showProgressbar = function(container, progress, color) { + if (typeof container === 'number') { + color = progress; + progress = container; + container = 'body'; + } + container = $(container || 'body'); + if (container.length === 0) return; + container = container[0]; + var progressbar; + if (container.classList.contains(CLASS_PROGRESSBAR)) { + progressbar = container; + } else { + var progressbars = container.querySelectorAll(SELECTOR_PROGRESSBAR + ':not(.' + CLASS_PROGRESSBAR_OUT + ')'); + if (progressbars) { + for (var i = 0, len = progressbars.length; i < len; i++) { + var _progressbar = progressbars[i]; + if (_progressbar.parentNode === container) { + progressbar = _progressbar; + break; + } + } + } + if (!progressbar) { + progressbar = document.createElement('span'); + progressbar.className = CLASS_PROGRESSBAR + ' ' + CLASS_PROGRESSBAR_IN + (typeof progress !== 'undefined' ? '' : (' ' + CLASS_PROGRESSBAR_INFINITE)) + (color ? (' ' + CLASS_PROGRESSBAR + '-' + color) : ''); + if (typeof progress !== 'undefined') { + progressbar.innerHTML = ''; + } + container.appendChild(progressbar); + } else { + progressbar.classList.add(CLASS_PROGRESSBAR_IN); + } + } + if (progress) setProgressbar(container, progress); + return progressbar; + }; + /** + * 关闭进度条 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + */ + var hideProgressbar = function(container) { + var progressbar = _findProgressbar(container); + if (!progressbar) { + return; + } + var classList = progressbar.classList; + if (!classList.contains(CLASS_PROGRESSBAR_IN) || classList.contains(CLASS_PROGRESSBAR_OUT)) { + return; + } + classList.remove(CLASS_PROGRESSBAR_IN); + classList.add(CLASS_PROGRESSBAR_OUT); + progressbar.addEventListener('webkitAnimationEnd', function() { + progressbar.parentNode && progressbar.parentNode.removeChild(progressbar); + progressbar = null; + }); + return; + }; + /** + * 设置指定进度条进度 + * @param {Object} container 可选,默认body,支持selector,DOM Node,mui wrapper + * @param {Object} progress 可选,默认0 取值范围[0-100] + * @param {Object} speed 进度条动画时间 + */ + var setProgressbar = function(container, progress, speed) { + if (typeof container === 'number') { + speed = progress; + progress = container; + container = false; + } + var progressbar = _findProgressbar(container); + if (!progressbar || progressbar.classList.contains(CLASS_PROGRESSBAR_INFINITE)) { + return; + } + if (progress) progress = Math.min(Math.max(progress, 0), 100); + progressbar.offsetHeight; + var span = progressbar.querySelector('span'); + if (span) { + var style = span.style; + style.webkitTransform = 'translate3d(' + (-100 + progress) + '%,0,0)'; + if (typeof speed !== 'undefined') { + style.webkitTransitionDuration = speed + 'ms'; + } else { + style.webkitTransitionDuration = ''; + } + } + return progressbar; + }; + $.fn.progressbar = function(options) { + var progressbarApis = []; + options = options || {}; + this.each(function() { + var self = this; + var progressbarApi = self.mui_plugin_progressbar; + if (!progressbarApi) { + self.mui_plugin_progressbar = progressbarApi = { + options: options, + setOptions: function(options) { + this.options = options; + }, + show: function() { + return showProgressbar(self, this.options.progress, this.options.color); + }, + setProgress: function(progress) { + return setProgressbar(self, progress); + }, + hide: function() { + return hideProgressbar(self); + } + }; + } else if (options) { + progressbarApi.setOptions(options); + } + progressbarApis.push(progressbarApi); + }); + return progressbarApis.length === 1 ? progressbarApis[0] : progressbarApis; + }; + // $.setProgressbar = setProgressbar; + // $.showProgressbar = showProgressbar; + // $.hideProgressbar = hideProgressbar; +})(mui, document); +/** + * Input(TODO resize) + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + var CLASS_ICON = 'mui-icon'; + var CLASS_ICON_CLEAR = 'mui-icon-clear'; + var CLASS_ICON_SPEECH = 'mui-icon-speech'; + var CLASS_ICON_SEARCH = 'mui-icon-search'; + var CLASS_ICON_PASSWORD = 'mui-icon-eye'; + var CLASS_INPUT_ROW = 'mui-input-row'; + var CLASS_PLACEHOLDER = 'mui-placeholder'; + var CLASS_TOOLTIP = 'mui-tooltip'; + var CLASS_HIDDEN = 'mui-hidden'; + var CLASS_FOCUSIN = 'mui-focusin'; + var SELECTOR_ICON_CLOSE = '.' + CLASS_ICON_CLEAR; + var SELECTOR_ICON_SPEECH = '.' + CLASS_ICON_SPEECH; + var SELECTOR_ICON_PASSWORD = '.' + CLASS_ICON_PASSWORD; + var SELECTOR_PLACEHOLDER = '.' + CLASS_PLACEHOLDER; + var SELECTOR_TOOLTIP = '.' + CLASS_TOOLTIP; + + var findRow = function(target) { + for (; target && target !== document; target = target.parentNode) { + if (target.classList && target.classList.contains(CLASS_INPUT_ROW)) { + return target; + } + } + return null; + }; + var Input = function(element, options) { + this.element = element; + this.options = options || { + actions: 'clear' + }; + if (~this.options.actions.indexOf('slider')) { //slider + this.sliderActionClass = CLASS_TOOLTIP + ' ' + CLASS_HIDDEN; + this.sliderActionSelector = SELECTOR_TOOLTIP; + } else { //clear,speech,search + if (~this.options.actions.indexOf('clear')) { + this.clearActionClass = CLASS_ICON + ' ' + CLASS_ICON_CLEAR + ' ' + CLASS_HIDDEN; + this.clearActionSelector = SELECTOR_ICON_CLOSE; + } + if (~this.options.actions.indexOf('speech')) { //only for 5+ + this.speechActionClass = CLASS_ICON + ' ' + CLASS_ICON_SPEECH; + this.speechActionSelector = SELECTOR_ICON_SPEECH; + } + if (~this.options.actions.indexOf('search')) { + this.searchActionClass = CLASS_PLACEHOLDER; + this.searchActionSelector = SELECTOR_PLACEHOLDER; + } + if (~this.options.actions.indexOf('password')) { + this.passwordActionClass = CLASS_ICON + ' ' + CLASS_ICON_PASSWORD; + this.passwordActionSelector = SELECTOR_ICON_PASSWORD; + } + } + this.init(); + }; + Input.prototype.init = function() { + this.initAction(); + this.initElementEvent(); + }; + Input.prototype.initAction = function() { + var self = this; + + var row = self.element.parentNode; + if (row) { + if (self.sliderActionClass) { + self.sliderAction = self.createAction(row, self.sliderActionClass, self.sliderActionSelector); + } else { + if (self.searchActionClass) { + self.searchAction = self.createAction(row, self.searchActionClass, self.searchActionSelector); + self.searchAction.addEventListener('tap', function(e) { + $.focus(self.element); + e.stopPropagation(); + }); + } + if (self.speechActionClass) { + self.speechAction = self.createAction(row, self.speechActionClass, self.speechActionSelector); + self.speechAction.addEventListener('click', $.stopPropagation); + self.speechAction.addEventListener('tap', function(event) { + self.speechActionClick(event); + }); + } + if (self.clearActionClass) { + self.clearAction = self.createAction(row, self.clearActionClass, self.clearActionSelector); + self.clearAction.addEventListener('tap', function(event) { + self.clearActionClick(event); + }); + } + if (self.passwordActionClass) { + self.passwordAction = self.createAction(row, self.passwordActionClass, self.passwordActionSelector); + self.passwordAction.addEventListener('tap', function(event) { + self.passwordActionClick(event); + }); + } + } + } + }; + Input.prototype.createAction = function(row, actionClass, actionSelector) { + var action = row.querySelector(actionSelector); + if (!action) { + var action = document.createElement('span'); + action.className = actionClass; + if (actionClass === this.searchActionClass) { + action.innerHTML = '' + this.element.getAttribute('placeholder') + ''; + this.element.setAttribute('placeholder', ''); + if (this.element.value.trim()) { + row.classList.add('mui-active'); + } + } + row.insertBefore(action, this.element.nextSibling); + } + return action; + }; + Input.prototype.initElementEvent = function() { + var element = this.element; + + if (this.sliderActionClass) { + var tooltip = this.sliderAction; + var timer = null; + var showTip = function() { //每次重新计算是因为控件可能被隐藏,初始化时计算是不正确的 + tooltip.classList.remove(CLASS_HIDDEN); + var offsetLeft = element.offsetLeft; + var width = element.offsetWidth - 28; + var tooltipWidth = tooltip.offsetWidth; + var distince = Math.abs(element.max - element.min); + var scaleWidth = (width / distince) * Math.abs(element.value - element.min); + tooltip.style.left = (14 + offsetLeft + scaleWidth - tooltipWidth / 2) + 'px'; + tooltip.innerText = element.value; + if (timer) { + clearTimeout(timer); + } + timer = setTimeout(function() { + tooltip.classList.add(CLASS_HIDDEN); + }, 1000); + }; + element.addEventListener('input', showTip); + element.addEventListener('tap', showTip); + element.addEventListener($.EVENT_MOVE, function(e) { + e.stopPropagation(); + }); + } else { + if (this.clearActionClass) { + var action = this.clearAction; + if (!action) { + return; + } + $.each(['keyup', 'change', 'input', 'focus', 'cut', 'paste'], function(index, type) { + (function(type) { + element.addEventListener(type, function() { + action.classList[element.value.trim() ? 'remove' : 'add'](CLASS_HIDDEN); + }); + })(type); + }); + element.addEventListener('blur', function() { + action.classList.add(CLASS_HIDDEN); + }); + } + if (this.searchActionClass) { + element.addEventListener('focus', function() { + element.parentNode.classList.add('mui-active'); + }); + element.addEventListener('blur', function() { + if (!element.value.trim()) { + element.parentNode.classList.remove('mui-active'); + } + }); + } + } + }; + Input.prototype.setPlaceholder = function(text) { + if (this.searchActionClass) { + var placeholder = this.element.parentNode.querySelector(SELECTOR_PLACEHOLDER); + placeholder && (placeholder.getElementsByTagName('span')[1].innerText = text); + } else { + this.element.setAttribute('placeholder', text); + } + }; + Input.prototype.passwordActionClick = function(event) { + if (this.element.type === 'text') { + this.element.type = 'password'; + } else { + this.element.type = 'text'; + } + this.passwordAction.classList.toggle('mui-active'); + event.preventDefault(); + }; + Input.prototype.clearActionClick = function(event) { + var self = this; + self.element.value = ''; + $.focus(self.element); + self.clearAction.classList.add(CLASS_HIDDEN); + event.preventDefault(); + }; + Input.prototype.speechActionClick = function(event) { + if (window.plus) { + var self = this; + var oldValue = self.element.value; + self.element.value = ''; + document.body.classList.add(CLASS_FOCUSIN); + plus.speech.startRecognize({ + engine: 'iFly' + }, function(s) { + self.element.value += s; + $.focus(self.element); + plus.speech.stopRecognize(); + $.trigger(self.element, 'recognized', { + value: self.element.value + }); + if (oldValue !== self.element.value) { + $.trigger(self.element, 'change'); + $.trigger(self.element, 'input'); + } + // document.body.classList.remove(CLASS_FOCUSIN); + }, function(e) { + document.body.classList.remove(CLASS_FOCUSIN); + }); + } else { + alert('only for 5+'); + } + event.preventDefault(); + }; + $.fn.input = function(options) { + var inputApis = []; + this.each(function() { + var inputApi = null; + var actions = []; + var row = findRow(this.parentNode); + if (this.type === 'range' && row.classList.contains('mui-input-range')) { + actions.push('slider'); + } else { + var classList = this.classList; + if (classList.contains('mui-input-clear')) { + actions.push('clear'); + } + if (!($.os.android && $.os.stream) && classList.contains('mui-input-speech')) { + actions.push('speech'); + } + if (classList.contains('mui-input-password')) { + actions.push('password'); + } + if (this.type === 'search' && row.classList.contains('mui-search')) { + actions.push('search'); + } + } + var id = this.getAttribute('data-input-' + actions[0]); + if (!id) { + id = ++$.uuid; + inputApi = $.data[id] = new Input(this, { + actions: actions.join(',') + }); + for (var i = 0, len = actions.length; i < len; i++) { + this.setAttribute('data-input-' + actions[i], id); + } + } else { + inputApi = $.data[id]; + } + inputApis.push(inputApi); + }); + return inputApis.length === 1 ? inputApis[0] : inputApis; + }; + $.ready(function() { + $('.mui-input-row input').input(); + }); +})(mui, window, document); +(function($, window) { + var CLASS_ACTIVE = 'mui-active'; + var rgbaRegex = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*(\d*(?:\.\d+)?)\)$/; + var getColor = function(colorStr) { + var matches = colorStr.match(rgbaRegex); + if (matches && matches.length === 5) { + return [ + matches[1], + matches[2], + matches[3], + matches[4] + ]; + } + return []; + }; + var Transparent = function(element, options) { + this.element = element; + this.options = $.extend({ + top: 0, //距离顶部高度(到达该高度即触发) + offset: 150, //滚动透明距离 + duration: 16, //过渡时间 + scrollby: window//监听滚动距离容器 + }, options || {}); + + this.scrollByElem = this.options.scrollby || window; + if (!this.scrollByElem) { + throw new Error("监听滚动的元素不存在"); + } + this.isNativeScroll = false; + if (this.scrollByElem === window) { + this.isNativeScroll = true; + } else if (!~this.scrollByElem.className.indexOf('mui-scroll-wrapper')) { + this.isNativeScroll = true; + } + + this._style = this.element.style; + this._bgColor = this._style.backgroundColor; + var color = getColor(mui.getStyles(this.element, 'backgroundColor')); + if (color.length) { + this._R = color[0]; + this._G = color[1]; + this._B = color[2]; + this._A = parseFloat(color[3]); + this.lastOpacity = this._A; + this._bufferFn = $.buffer(this.handleScroll, this.options.duration, this); + this.initEvent(); + } else { + throw new Error("元素背景颜色必须为RGBA"); + } + }; + + Transparent.prototype.initEvent = function() { + this.scrollByElem.addEventListener('scroll', this._bufferFn); + if (this.isNativeScroll) { //原生scroll + this.scrollByElem.addEventListener($.EVENT_MOVE, this._bufferFn); + } + } + Transparent.prototype.handleScroll = function(e) { + var y = window.scrollY; + if (!this.isNativeScroll && e && e.detail) { + y = -e.detail.y; + } + var opacity = (y - this.options.top) / this.options.offset + this._A; + opacity = Math.min(Math.max(this._A, opacity), 1); + this._style.backgroundColor = 'rgba(' + this._R + ',' + this._G + ',' + this._B + ',' + opacity + ')'; + if (opacity > this._A) { + this.element.classList.add(CLASS_ACTIVE); + } else { + this.element.classList.remove(CLASS_ACTIVE); + } + if (this.lastOpacity !== opacity) { + $.trigger(this.element, 'alpha', { + alpha: opacity + }); + this.lastOpacity = opacity; + } + }; + Transparent.prototype.destory = function() { + this.scrollByElem.removeEventListener('scroll', this._bufferFn); + this.scrollByElem.removeEventListener($.EVENT_MOVE, this._bufferFn); + this.element.style.backgroundColor = this._bgColor; + this.element.mui_plugin_transparent = null; + }; + $.fn.transparent = function(options) { + options = options || {}; + var transparentApis = []; + this.each(function() { + var transparentApi = this.mui_plugin_transparent; + if (!transparentApi) { + var top = this.getAttribute('data-top'); + var offset = this.getAttribute('data-offset'); + var duration = this.getAttribute('data-duration'); + var scrollby = this.getAttribute('data-scrollby'); + if (top !== null && typeof options.top === 'undefined') { + options.top = top; + } + if (offset !== null && typeof options.offset === 'undefined') { + options.offset = offset; + } + if (duration !== null && typeof options.duration === 'undefined') { + options.duration = duration; + } + if (scrollby !== null && typeof options.scrollby === 'undefined') { + options.scrollby = document.querySelector(scrollby) || window; + } + transparentApi = this.mui_plugin_transparent = new Transparent(this, options); + } + transparentApis.push(transparentApi); + }); + return transparentApis.length === 1 ? transparentApis[0] : transparentApis; + }; + $.ready(function() { + $('.mui-bar-transparent').transparent(); + }); +})(mui, window); +/** + * 数字输入框 + * varstion 1.0.1 + * by Houfeng + * Houfeng@DCloud.io + */ + +(function($) { + + var touchSupport = ('ontouchstart' in document); + var tapEventName = touchSupport ? 'tap' : 'click'; + var changeEventName = 'change'; + var holderClassName = 'mui-numbox'; + var plusClassSelector = '.mui-btn-numbox-plus,.mui-numbox-btn-plus'; + var minusClassSelector = '.mui-btn-numbox-minus,.mui-numbox-btn-minus'; + var inputClassSelector = '.mui-input-numbox,.mui-numbox-input'; + + var Numbox = $.Numbox = $.Class.extend({ + /** + * 构造函数 + **/ + init: function(holder, options) { + var self = this; + if (!holder) { + throw "构造 numbox 时缺少容器元素"; + } + self.holder = holder; + options = options || {}; + options.step = parseInt(options.step || 1); + self.options = options; + self.input = $.qsa(inputClassSelector, self.holder)[0]; + self.plus = $.qsa(plusClassSelector, self.holder)[0]; + self.minus = $.qsa(minusClassSelector, self.holder)[0]; + self.checkValue(); + self.initEvent(); + }, + /** + * 初始化事件绑定 + **/ + initEvent: function() { + var self = this; + self.plus.addEventListener(tapEventName, function(event) { + var val = parseInt(self.input.value) + self.options.step; + self.input.value = val.toString(); + $.trigger(self.input, changeEventName, null); + }); + self.minus.addEventListener(tapEventName, function(event) { + var val = parseInt(self.input.value) - self.options.step; + self.input.value = val.toString(); + $.trigger(self.input, changeEventName, null); + }); + self.input.addEventListener(changeEventName, function(event) { + self.checkValue(); + var val = parseInt(self.input.value); + //触发顶层容器 + $.trigger(self.holder, changeEventName, { + value: val + }); + }); + }, + /** + * 获取当前值 + **/ + getValue: function() { + var self = this; + return parseInt(self.input.value); + }, + /** + * 验证当前值是法合法 + **/ + checkValue: function() { + var self = this; + var val = self.input.value; + if (val == null || val == '' || isNaN(val)) { + self.input.value = self.options.min || 0; + self.minus.disabled = self.options.min != null; + } else { + var val = parseInt(val); + if (self.options.max != null && !isNaN(self.options.max) && val >= parseInt(self.options.max)) { + val = self.options.max; + self.plus.disabled = true; + } else { + self.plus.disabled = false; + } + if (self.options.min != null && !isNaN(self.options.min) && val <= parseInt(self.options.min)) { + val = self.options.min; + self.minus.disabled = true; + } else { + self.minus.disabled = false; + } + self.input.value = val; + } + }, + /** + * 更新选项 + **/ + setOption: function(name, value) { + var self = this; + self.options[name] = value; + }, + /** + * 动态设置新值 + **/ + setValue: function(value) { + this.input.value = value; + this.checkValue(); + } + }); + + $.fn.numbox = function(options) { + var instanceArray = []; + //遍历选择的元素 + this.each(function(i, element) { + if (element.numbox) { + return; + } + if (options) { + element.numbox = new Numbox(element, options); + } else { + var optionsText = element.getAttribute('data-numbox-options'); + var options = optionsText ? JSON.parse(optionsText) : {}; + options.step = element.getAttribute('data-numbox-step') || options.step; + options.min = element.getAttribute('data-numbox-min') || options.min; + options.max = element.getAttribute('data-numbox-max') || options.max; + element.numbox = new Numbox(element, options); + } + }); + return this[0] ? this[0].numbox : null; + } + + //自动处理 class='mui-locker' 的 dom + $.ready(function() { + $('.' + holderClassName).numbox(); + }); + +}(mui)); +/** + * Button + * @param {type} $ + * @param {type} window + * @param {type} document + * @returns {undefined} + */ +(function($, window, document) { + var CLASS_ICON = 'mui-icon'; + var CLASS_DISABLED = 'mui-disabled'; + + var STATE_RESET = 'reset'; + var STATE_LOADING = 'loading'; + + var defaultOptions = { + loadingText: 'Loading...', //文案 + loadingIcon: 'mui-spinner' + ' ' + 'mui-spinner-white', //图标,可为空 + loadingIconPosition: 'left' //图标所处位置,仅支持left|right + }; + + var Button = function(element, options) { + this.element = element; + this.options = $.extend({}, defaultOptions, options); + if (!this.options.loadingText) { + this.options.loadingText = defaultOptions.loadingText; + } + if (this.options.loadingIcon === null) { + this.options.loadingIcon = 'mui-spinner'; + if ($.getStyles(this.element, 'color') === 'rgb(255, 255, 255)') { + this.options.loadingIcon += ' ' + 'mui-spinner-white'; + } + } + this.isInput = this.element.tagName === 'INPUT'; + this.resetHTML = this.isInput ? this.element.value : this.element.innerHTML; + this.state = ''; + }; + Button.prototype.loading = function() { + this.setState(STATE_LOADING); + }; + Button.prototype.reset = function() { + this.setState(STATE_RESET); + }; + Button.prototype.setState = function(state) { + if (this.state === state) { + return false; + } + this.state = state; + if (state === STATE_RESET) { + this.element.disabled = false; + this.element.classList.remove(CLASS_DISABLED); + this.setHtml(this.resetHTML); + } else if (state === STATE_LOADING) { + this.element.disabled = true; + this.element.classList.add(CLASS_DISABLED); + var html = this.isInput ? this.options.loadingText : ('' + this.options.loadingText + ''); + if (this.options.loadingIcon && !this.isInput) { + if (this.options.loadingIconPosition === 'right') { + html += ' '; + } else { + html = ' ' + html; + } + } + this.setHtml(html); + } + }; + Button.prototype.setHtml = function(html) { + if (this.isInput) { + this.element.value = html; + } else { + this.element.innerHTML = html; + } + } + $.fn.button = function(state) { + var buttonApis = []; + this.each(function() { + var buttonApi = this.mui_plugin_button; + if (!buttonApi) { + var loadingText = this.getAttribute('data-loading-text'); + var loadingIcon = this.getAttribute('data-loading-icon'); + var loadingIconPosition = this.getAttribute('data-loading-icon-position'); + this.mui_plugin_button = buttonApi = new Button(this, { + loadingText: loadingText, + loadingIcon: loadingIcon, + loadingIconPosition: loadingIconPosition + }); + } + if (state === STATE_LOADING || state === STATE_RESET) { + buttonApi.setState(state); + } + buttonApis.push(buttonApi); + }); + return buttonApis.length === 1 ? buttonApis[0] : buttonApis; + }; +})(mui, window, document); \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/js/mui.min.js b/unpackage/cache/wgt/H5F1E04DB/js/mui.min.js new file mode 100644 index 0000000..56ed8de --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/js/mui.min.js @@ -0,0 +1,6 @@ +/*! + * ===================================================== + * Mui v3.7.3 (http://dev.dcloud.net.cn/mui) + * ===================================================== + */ +var mui=function(a,b){var c=/complete|loaded|interactive/,d=/^#([\w-]+)$/,e=/^\.([\w-]+)$/,f=/^[\w-]+$/,g=/translate(?:3d)?\((.+?)\)/,h=/matrix(3d)?\((.+?)\)/,i=function(b,c){if(c=c||a,!b)return j();if("object"==typeof b)return i.isArrayLike(b)?j(i.slice.call(b),null):j([b],null);if("function"==typeof b)return i.ready(b);if("string"==typeof b)try{if(b=b.trim(),d.test(b)){var e=a.getElementById(RegExp.$1);return j(e?[e]:[])}return j(i.qsa(b,c),b)}catch(a){}return j()},j=function(a,b){return a=a||[],Object.setPrototypeOf(a,i.fn),a.selector=b||"",a};i.uuid=0,i.data={},i.extend=function(){var a,c,d,e,f,g,h=arguments[0]||{},j=1,k=arguments.length,l=!1;for("boolean"==typeof h&&(l=h,h=arguments[j]||{},j++),"object"==typeof h||i.isFunction(h)||(h={}),j===k&&(h=this,j--);j0&&b-1 in a)},i.isWindow=function(a){return null!=a&&a===a.window},i.isObject=function(a){return"object"===i.type(a)},i.isPlainObject=function(a){return i.isObject(a)&&!i.isWindow(a)&&Object.getPrototypeOf(a)===Object.prototype},i.isEmptyObject=function(a){for(var c in a)if(c!==b)return!1;return!0},i.isFunction=function(a){return"function"===i.type(a)},i.qsa=function(b,c){return c=c||a,i.slice.call(e.test(b)?c.getElementsByClassName(RegExp.$1):f.test(b)?c.getElementsByTagName(b):c.querySelectorAll(b))},i.ready=function(b){return c.test(a.readyState)?b(i):a.addEventListener("DOMContentLoaded",function(){b(i)},!1),this},i.buffer=function(a,b,c){function d(){e&&(e.cancel(),e=0),f=i.now(),a.apply(c||this,arguments),g=i.now()}var e,f=0,g=0,b=b||150;return i.extend(function(){!f||g>=f&&i.now()-g>b||g8*b?d.apply(this,arguments):(e&&e.cancel(),e=i.later(d,b,null,i.slice.call(arguments)))},{stop:function(){e&&(e.cancel(),e=0)}})},i.each=function(a,b,c){if(!a)return this;if("number"==typeof a.length)[].every.call(a,function(a,c){return!1!==b.call(a,c,a)});else for(var d in a)if(c){if(a.hasOwnProperty(d)&&!1===b.call(a[d],d,a[d]))return a}else if(!1===b.call(a[d],d,a[d]))return a;return this},i.focus=function(a){i.os.ios?setTimeout(function(){a.focus()},10):a.focus()},i.trigger=function(a,b,c){return a.dispatchEvent(new CustomEvent(b,{detail:c,bubbles:!0,cancelable:!0})),this},i.getStyles=function(a,b){var c=a.ownerDocument.defaultView.getComputedStyle(a,null);return b?c.getPropertyValue(b)||c[b]:c},i.parseTranslate=function(a,b){var c=a.match(g||"");return c&&c[1]||(c=["","0,0,0"]),c=c[1].split(","),c={x:parseFloat(c[0]),y:parseFloat(c[1]),z:parseFloat(c[2])},b&&c.hasOwnProperty(b)?c[b]:c},i.parseTranslateMatrix=function(a,b){var c=a.match(h),d=c&&c[1];c?(c=c[2].split(","),"3d"===d?c=c.slice(12,15):(c.push(0),c=c.slice(4,7))):c=[0,0,0];var e={x:parseFloat(c[0]),y:parseFloat(c[1]),z:parseFloat(c[2])};return b&&e.hasOwnProperty(b)?e[b]:e},i.hooks={},i.addAction=function(a,b){var c=i.hooks[a];return c||(c=[]),b.index=b.index||1e3,c.push(b),c.sort(function(a,b){return a.index-b.index}),i.hooks[a]=c,i.hooks[a]},i.doAction=function(a,b){i.isFunction(b)?i.each(i.hooks[a],b):i.each(i.hooks[a],function(a,b){return!b.handle()})},i.later=function(a,b,c,d){b=b||0;var e,f,g=a,h=d;return"string"==typeof a&&(g=c[a]),e=function(){g.apply(c,i.isArray(h)?h:[h])},f=setTimeout(e,b),{id:f,cancel:function(){clearTimeout(f)}}},i.now=Date.now||function(){return+new Date};var k={};return i.each(["Boolean","Number","String","Function","Array","Date","RegExp","Object","Error"],function(a,b){k["[object "+b+"]"]=b.toLowerCase()}),window.JSON&&(i.parseJSON=JSON.parse),i.fn={each:function(a){return[].every.call(this,function(b,c){return!1!==a.call(b,c,b)}),this}},"function"==typeof define&&define.amd&&define("mui",[],function(){return i}),i}(document);!function(a,b){function c(c){this.os={};var d=[function(){var a=c.match(/(MicroMessenger)\/([\d\.]+)/i);return a&&(this.os.wechat={version:a[2].replace(/_/g,".")}),!1},function(){var a=c.match(/(Android);?[\s\/]+([\d.]+)?/);return a&&(this.os.android=!0,this.os.version=a[2],this.os.isBadAndroid=!/Chrome\/\d/.test(b.navigator.appVersion)),!0===this.os.android},function(){var a=c.match(/(iPhone\sOS)\s([\d_]+)/);if(a)this.os.ios=this.os.iphone=!0,this.os.version=a[2].replace(/_/g,".");else{var b=c.match(/(iPad).*OS\s([\d_]+)/);b&&(this.os.ios=this.os.ipad=!0,this.os.version=b[2].replace(/_/g,"."))}return!0===this.os.ios}];[].every.call(d,function(b){return!b.call(a)})}c.call(a,navigator.userAgent)}(mui,window),function(a,b){function c(c){this.os=this.os||{},c.match(/Html5Plus/i)&&(this.os.plus=!0,a(function(){b.body.classList.add("mui-plus")}),c.match(/StreamApp/i)&&(this.os.stream=!0,a(function(){b.body.classList.add("mui-plus-stream")})))}c.call(a,navigator.userAgent)}(mui,document),function(a){"ontouchstart"in window?(a.isTouchable=!0,a.EVENT_START="touchstart",a.EVENT_MOVE="touchmove",a.EVENT_END="touchend"):(a.isTouchable=!1,a.EVENT_START="mousedown",a.EVENT_MOVE="mousemove",a.EVENT_END="mouseup"),a.EVENT_CANCEL="touchcancel",a.EVENT_CLICK="click";var b=1,c={},d={preventDefault:"isDefaultPrevented",stopImmediatePropagation:"isImmediatePropagationStopped",stopPropagation:"isPropagationStopped"},e=function(){return!0},f=function(){return!1},g=function(b,c){return b.detail?b.detail.currentTarget=c:b.detail={currentTarget:c},a.each(d,function(a,c){var d=b[a];b[a]=function(){return this[c]=e,d&&d.apply(b,arguments)},b[c]=f},!0),b},h=function(a){return a&&(a._mid||(a._mid=b++))},i={},j=function(b,d,e,f){return function(e){for(var f=c[b._mid][d],h=[],i=e.target,j={};i&&i!==document&&i!==b&&(!~["click","tap","doubletap","longtap","hold"].indexOf(d)||!i.disabled&&!i.classList.contains("mui-disabled"));i=i.parentNode){var k={};a.each(f,function(c,d){j[c]||(j[c]=a.qsa(c,b)),j[c]&&~j[c].indexOf(i)&&(k[c]||(k[c]=d))},!0),a.isEmptyObject(k)||h.push({element:i,handlers:k})}j=null,e=g(e),a.each(h,function(b,c){i=c.element;var f=i.tagName;if("tap"===d&&"INPUT"!==f&&"TEXTAREA"!==f&&"SELECT"!==f&&(e.preventDefault(),e.detail&&e.detail.gesture&&e.detail.gesture.preventDefault()),a.each(c.handlers,function(b,c){a.each(c,function(a,b){!1===b.call(i,e)&&(e.preventDefault(),e.stopPropagation())},!0)},!0),e.isPropagationStopped())return!1},!0)}},k=function(a,b){var c=i[h(a)],d=[];if(c){if(d=[],b){var e=function(a){return a.type===b};return c.filter(e)}d=c}return d},l=/^(INPUT|TEXTAREA|BUTTON|SELECT)$/;a.fn.on=function(b,d,e){return this.each(function(){var f=this;h(f),h(e);var g=!1,k=c[f._mid]||(c[f._mid]={}),m=k[b]||(k[b]={});if(a.isEmptyObject(m)&&(g=!0),(m[d]||(m[d]=[])).push(e),g){var n=i[h(f)];n||(n=[]);var o=j(f,b,d,e);n.push(o),o.i=n.length-1,o.type=b,i[h(f)]=n,f.addEventListener(b,o),"tap"===b&&f.addEventListener("click",function(a){if(a.target){var b=a.target.tagName;if(!l.test(b))if("A"===b){var c=a.target.href;c&&~c.indexOf("tel:")||a.preventDefault()}else a.preventDefault()}})}})},a.fn.off=function(b,d,e){return this.each(function(){var f=h(this);if(b)if(d)if(e){var g=c[f]&&c[f][b]&&c[f][b][d];a.each(g,function(a,b){if(h(b)===h(e))return g.splice(a,1),!1},!0)}else c[f]&&c[f][b]&&delete c[f][b][d];else c[f]&&delete c[f][b];else c[f]&&delete c[f];c[f]?c[f][b]&&!a.isEmptyObject(c[f][b])||k(this,b).forEach(function(a){this.removeEventListener(a.type,a),delete i[f][a.i]}.bind(this)):k(this).forEach(function(a){this.removeEventListener(a.type,a),delete i[f][a.i]}.bind(this))})}}(mui),function(a,b,c){a.targets={},a.targetHandles=[],a.registerTarget=function(b){return b.index=b.index||1e3,a.targetHandles.push(b),a.targetHandles.sort(function(a,b){return a.index-b.index}),a.targetHandles},b.addEventListener(a.EVENT_START,function(b){for(var d=b.target,e={};d&&d!==c;d=d.parentNode){var f=!1;if(a.each(a.targetHandles,function(c,g){var h=g.name;f||e[h]||!g.hasOwnProperty("handle")?e[h]||!1!==g.isReset&&(a.targets[h]=!1):(a.targets[h]=g.handle(b,d),a.targets[h]&&(e[h]=!0,!0!==g.isContinue&&(f=!0)))}),f)break}}),b.addEventListener("click",function(b){for(var d=b.target,e=!1;d&&d!==c&&("A"!==d.tagName||(a.each(a.targetHandles,function(a,c){c.name;if(c.hasOwnProperty("handle")&&c.handle(b,d))return e=!0,b.preventDefault(),!1}),!e));d=d.parentNode);})}(mui,window,document),function(a){String.prototype.trim===a&&(String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")}),Object.setPrototypeOf=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a}}(),function(){function a(a,b){b=b||{bubbles:!1,cancelable:!1,detail:void 0};var c=document.createEvent("Events"),d=!0;for(var e in b)"bubbles"===e?d=!!b[e]:c[e]=b[e];return c.initEvent(a,d,!0),c}void 0===window.CustomEvent&&(a.prototype=window.Event.prototype,window.CustomEvent=a)}(),Function.prototype.bind=Function.prototype.bind||function(a){var b=Array.prototype.splice.call(arguments,1),c=this,d=function(){var e=b.concat(Array.prototype.splice.call(arguments,0));if(!(this instanceof d))return c.apply(a,e);c.apply(this,e)};return d.prototype=c.prototype,d},function(a){"classList"in a.documentElement||!Object.defineProperty||"undefined"==typeof HTMLElement||Object.defineProperty(HTMLElement.prototype,"classList",{get:function(){function a(a){return function(c){var d=b.className.split(/\s+/),e=d.indexOf(c);a(d,e,c),b.className=d.join(" ")}}var b=this,c={add:a(function(a,b,c){~b||a.push(c)}),remove:a(function(a,b){~b&&a.splice(b,1)}),toggle:a(function(a,b,c){~b?a.splice(b,1):a.push(c)}),contains:function(a){return!!~b.className.split(/\s+/).indexOf(a)},item:function(a){return b.className.split(/\s+/)[a]||null}};return Object.defineProperty(c,"length",{get:function(){return b.className.split(/\s+/).length}}),c}})}(document),function(a){if(!a.requestAnimationFrame){var b=0;a.requestAnimationFrame=a.webkitRequestAnimationFrame||function(c,d){var e=(new Date).getTime(),f=Math.max(0,16.7-(e-b)),g=a.setTimeout(function(){c(e+f)},f);return b=e+f,g},a.cancelAnimationFrame=a.webkitCancelAnimationFrame||a.webkitCancelRequestAnimationFrame||function(a){clearTimeout(a)}}}(window),function(a,b,c){if((a.os.android||a.os.ios)&&!b.FastClick){var d=function(a,b){return"LABEL"===b.tagName&&b.parentNode&&(b=b.parentNode.querySelector("input")),!(!b||"radio"!==b.type&&"checkbox"!==b.type||b.disabled)&&b};a.registerTarget({name:c,index:40,handle:d,target:!1});var e=function(c){var d=a.targets.click;if(d){var e,f;document.activeElement&&document.activeElement!==d&&document.activeElement.blur(),f=c.detail.gesture.changedTouches[0],e=document.createEvent("MouseEvents"),e.initMouseEvent("click",!0,!0,b,1,f.screenX,f.screenY,f.clientX,f.clientY,!1,!1,!1,!1,0,null),e.forwardedTouchEvent=!0,d.dispatchEvent(e),c.detail&&c.detail.gesture.preventDefault()}};b.addEventListener("tap",e),b.addEventListener("doubletap",e),b.addEventListener("click",function(b){if(a.targets.click&&!b.forwardedTouchEvent)return b.stopImmediatePropagation?b.stopImmediatePropagation():b.propagationStopped=!0,b.stopPropagation(),b.preventDefault(),!1},!0)}}(mui,window,"click"),function(a,b){a(function(){if(a.os.ios){var c="mui-focusin";b.addEventListener("focusin",function(d){if(!(a.os.plus&&window.plus&&plus.webview.currentWebview().children().length>0)){var e=d.target;if(e.tagName&&("TEXTAREA"===e.tagName||"INPUT"===e.tagName&&("text"===e.type||"search"===e.type||"number"===e.type))){if(e.disabled||e.readOnly)return;b.body.classList.add(c);for(var f=!1;e&&e!==b;e=e.parentNode){var g=e.classList;if(g&&g.contains("mui-bar-tab")||g.contains("mui-bar-footer")||g.contains("mui-bar-footer-secondary")||g.contains("mui-bar-footer-secondary-tab")){f=!0;break}}if(f){var h=b.body.scrollHeight,i=b.body.scrollLeft;setTimeout(function(){window.scrollTo(i,h)},20)}}}}),b.addEventListener("focusout",function(a){var d=b.body.classList;d.contains(c)&&(d.remove(c),setTimeout(function(){window.scrollTo(b.body.scrollLeft,b.body.scrollTop)},20))})}})}(mui,document),function(a){a.namespace="mui",a.classNamePrefix=a.namespace+"-",a.classSelectorPrefix="."+a.classNamePrefix,a.className=function(b){return a.classNamePrefix+b},a.classSelector=function(b){return b.replace(/\./g,a.classSelectorPrefix)},a.eventName=function(b,c){return b+(a.namespace?"."+a.namespace:"")+(c?"."+c:"")}}(mui),function(a,b){a.gestures={session:{}},a.preventDefault=function(a){a.preventDefault()},a.stopPropagation=function(a){a.stopPropagation()},a.addGesture=function(b){return a.addAction("gestures",b)};var c=Math.round,d=Math.abs,e=Math.sqrt,f=(Math.atan,Math.atan2),g=function(a,b,c){c||(c=["x","y"]);var d=b[c[0]]-a[c[0]],f=b[c[1]]-a[c[1]];return e(d*d+f*f)},h=function(a,b){if(a.length>=2&&b.length>=2){var c=["pageX","pageY"];return g(b[1],b[0],c)/g(a[1],a[0],c)}return 1},i=function(a,b,c){c||(c=["x","y"]);var d=b[c[0]]-a[c[0]],e=b[c[1]]-a[c[1]];return 180*f(e,d)/Math.PI},j=function(a,b){return a===b?"":d(a)>=d(b)?a>0?"left":"right":b>0?"up":"down"},k=function(a,b){var c=["pageX","pageY"];return i(b[1],b[0],c)-i(a[1],a[0],c)},l=function(a,b,c){return{x:b/a||0,y:c/a||0}},m=function(b,c){a.gestures.stoped||a.doAction("gestures",function(d,e){a.gestures.stoped||!1!==a.options.gestureConfig[e.name]&&e.handle(b,c)})},n=function(a,b){for(;a;){if(a==b)return!0;a=a.parentNode}return!1},o=function(a,b,c){for(var d=[],e=[],f=0;fc[b]}):d.sort()),d},p=function(a){var b=a.length;if(1===b)return{x:c(a[0].pageX),y:c(a[0].pageY)};for(var d=0,e=0,f=0;f1&&!c.firstMultiTouch?c.firstMultiTouch=r(b):1===e&&(c.firstMultiTouch=!1);var f=c.firstTouch,l=c.firstMultiTouch,m=l?l.center:f.center,n=b.center=p(d);b.timestamp=a.now(),b.deltaTime=b.timestamp-f.timestamp,b.angle=i(m,n),b.distance=g(m,n),s(b),b.offsetDirection=j(b.deltaX,b.deltaY),b.scale=l?h(l.touches,d):1,b.rotation=l?k(l.touches,d):0,v(b)},u=25,v=function(b){var c,e,f,g,h=a.gestures.session,i=h.lastInterval||b,k=b.timestamp-i.timestamp;if(b.gesture.type!=a.EVENT_CANCEL&&(k>u||void 0===i.velocity)){var m=i.deltaX-b.deltaX,n=i.deltaY-b.deltaY,o=l(k,m,n);e=o.x,f=o.y,c=d(o.x)>d(o.y)?o.x:o.y,g=j(m,n)||i.direction,h.lastInterval=b}else c=i.velocity,e=i.velocityX,f=i.velocityY,g=i.direction;b.velocity=c,b.velocityX=e,b.velocityY=f,b.direction=g},w={},x=function(a){for(var b=0;b300&&(c=h,f.flickStart=e.center);break;case a.EVENT_END:case a.EVENT_CANCEL:e.flick=!1,f.flickStart&&g.flickMaxTime>h-c&&e.distance>g.flickMinDistince&&(e.flick=!0,e.flickTime=h-c,e.flickDistanceX=e.center.x-f.flickStart.x,e.flickDistanceY=e.center.y-f.flickStart.y,a.trigger(f.target,b,e),a.trigger(f.target,b+e.direction,e))}};a.addGesture({name:b,index:5,handle:d,options:{flickMaxTime:200,flickMinDistince:10}})}(mui,"flick"),function(a,b){var c=function(c,d){var e=a.gestures.session;if(c.type===a.EVENT_END||c.type===a.EVENT_CANCEL){var f=this.options;d.swipe=!1,d.direction&&f.swipeMaxTime>d.deltaTime&&d.distance>f.swipeMinDistince&&(d.swipe=!0,a.trigger(e.target,b,d),a.trigger(e.target,b+d.direction,d))}};a.addGesture({name:b,index:10,handle:c,options:{swipeMaxTime:300,swipeMinDistince:18}})}(mui,"swipe"),function(a,b){var c=function(c,d){var e=a.gestures.session;switch(c.type){case a.EVENT_START:break;case a.EVENT_MOVE:if(!d.direction||!e.target)return;e.lockDirection&&e.startDirection&&e.startDirection&&e.startDirection!==d.direction&&("up"===e.startDirection||"down"===e.startDirection?d.direction=d.deltaY<0?"up":"down":d.direction=d.deltaX<0?"left":"right"),e.drag||(e.drag=!0,a.trigger(e.target,b+"start",d)),a.trigger(e.target,b,d),a.trigger(e.target,b+d.direction,d);break;case a.EVENT_END:case a.EVENT_CANCEL:e.drag&&d.isFinal&&a.trigger(e.target,b+"end",d)}};a.addGesture({name:b,index:20,handle:c,options:{fingers:1}})}(mui,"drag"),function(a,b){var c,d,e=function(e,f){var g=a.gestures.session,h=this.options;switch(e.type){case a.EVENT_END:if(!f.isFinal)return;var i=g.target;if(!i||i.disabled||i.classList&&i.classList.contains("mui-disabled"))return;if(f.distanceg.holdThreshold&&clearTimeout(c);break;case a.EVENT_END:case a.EVENT_CANCEL:clearTimeout(c)}};a.addGesture({name:b,index:10,handle:d,options:{fingers:1,holdTimeout:500,holdThreshold:2}})}(mui,"longtap"),function(a,b){var c,d=function(d,e){var f=a.gestures.session,g=this.options;switch(d.type){case a.EVENT_START:a.options.gestureConfig.hold&&(c&&clearTimeout(c),c=setTimeout(function(){e.hold=!0,a.trigger(f.target,b,e)},g.holdTimeout));break;case a.EVENT_MOVE:break;case a.EVENT_END:case a.EVENT_CANCEL:c&&(clearTimeout(c)&&(c=null),a.trigger(f.target,"release",e))}};a.addGesture({name:b,index:10,handle:d,options:{fingers:1,holdTimeout:0}})}(mui,"hold"),function(a,b){var c=function(c,d){var e=this.options,f=a.gestures.session;switch(c.type){case a.EVENT_START:break;case a.EVENT_MOVE:if(a.options.gestureConfig.pinch){if(d.touches.length<2)return;f.pinch||(f.pinch=!0,a.trigger(f.target,b+"start",d)),a.trigger(f.target,b,d);var g=d.scale,h=d.rotation,i=void 0===d.lastScale?1:d.lastScale,j=1e-12;g>i?(i=g-j,a.trigger(f.target,b+"out",d)):ge.minRotationAngle&&a.trigger(f.target,"rotate",d)}break;case a.EVENT_END:case a.EVENT_CANCEL:a.options.gestureConfig.pinch&&f.pinch&&2===d.touches.length&&(f.pinch=!1,a.trigger(f.target,b+"end",d))}};a.addGesture({name:b,index:10,handle:c,options:{minRotationAngle:0}})}(mui,"pinch"),function(a){function b(a,b){var c="MUI_SCROLL_POSITION_"+document.location.href+"_"+b.src,d=parseFloat(localStorage.getItem(c))||0;d&&function(a){b.onload=function(){window.scrollTo(0,a)}}(d),setInterval(function(){var a=window.scrollY;d!==a&&(localStorage.setItem(c,a+""),d=a)},100)}a.global=a.options={gestureConfig:{tap:!0,doubletap:!1,longtap:!1,hold:!1,flick:!0,swipe:!0,drag:!0,pinch:!1}},a.initGlobal=function(b){return a.options=a.extend(!0,a.global,b),this};var c={};a.init=function(b){return a.options=a.extend(!0,a.global,b||{}),a.ready(function(){a.doAction("inits",function(b,d){!(c[d.name]&&!d.repeat)&&(d.handle.call(a),c[d.name]=!0)})}),this},a.addInit=function(b){return a.addAction("inits",b)},a.addInit({name:"iframe",index:100,handle:function(){var b=a.options,c=b.subpages||[];!a.os.plus&&c.length&&d(c[0])}});var d=function(c){var d=document.createElement("div");d.className="mui-iframe-wrapper";var e=c.styles||{};"string"!=typeof e.top&&(e.top="0px"),"string"!=typeof e.bottom&&(e.bottom="0px"),d.style.top=e.top,d.style.bottom=e.bottom;var f=document.createElement("iframe");f.src=c.url,f.id=c.id||c.url,f.name=f.id,d.appendChild(f),document.body.appendChild(d),a.os.wechat&&b(d,f)};a(function(){var b=document.body.classList,c=[];a.os.ios?(c.push({os:"ios",version:a.os.version}),b.add("mui-ios")):a.os.android&&(c.push({os:"android",version:a.os.version}),b.add("mui-android")),a.os.wechat&&(c.push({os:"wechat",version:a.os.wechat.version}),b.add("mui-wechat")),c.length&&a.each(c,function(c,d){var e="";d.version&&a.each(d.version.split("."),function(c,f){e=e+(e?"-":"")+f,b.add(a.className(d.os+"-"+e))})})})}(mui),function(a){var b={swipeBack:!1,preloadPages:[],preloadLimit:10,keyEventBind:{backbutton:!0,menubutton:!0},titleConfig:{height:"44px",backgroundColor:"#f7f7f7",bottomBorderColor:"#cccccc",title:{text:"",position:{top:0,left:0,width:"100%",height:"100%"},styles:{color:"#000000",align:"center",family:"'Helvetica Neue',Helvetica,sans-serif",size:"17px",style:"normal",weight:"normal",fontSrc:""}},back:{image:{base64Data:"",imgSrc:"",sprite:{top:"0px",left:"0px",width:"100%",height:"100%"},position:{top:"10px",left:"10px",width:"24px",height:"24px"}}}}},c={event:"titleUpdate",autoShow:!0,duration:300,aniShow:"slide-in-right",extras:{}};a.options.show&&(c=a.extend(!0,c,a.options.show)),a.currentWebview=null,a.extend(!0,a.global,b),a.extend(!0,a.options,b),a.waitingOptions=function(b){return a.extend(!0,{},{autoShow:!0,title:"",modal:!1},b)},a.showOptions=function(b){return a.extend(!0,{},c,b)},a.windowOptions=function(b){return a.extend({scalable:!1,bounce:""},b)},a.plusReady=function(a){return window.plus?setTimeout(function(){a()},0):document.addEventListener("plusready",function(){a()},!1),this},a.fire=function(b,c,d){if(b){if(void 0===d)d="";else{if("boolean"==typeof d||"number"==typeof d)return void b.evalJS("typeof mui!=='undefined'&&mui.receive('"+c+"',"+d+")");(a.isPlainObject(d)||a.isArray(d))&&(d=JSON.stringify(d||{}).replace(/\'/g,"\\u0027").replace(/\\/g,"\\u005c"))}b.evalJS("typeof mui!=='undefined'&&mui.receive('"+c+"','"+d+"')")}},a.receive=function(b,c){if(b){try{c&&"string"==typeof c&&(c=JSON.parse(c))}catch(a){}a.trigger(document,b,c)}};var d=function(b){if(!b.preloaded){a.fire(b,"preload");for(var c=b.children(),d=0;dt.left&&ca.options.preloadLimit){var h=a.data.preloads.shift(),i=a.webviews[h];i&&i.webview&&a.closeAll(i.webview),delete a.webviews[h]}}else!1!==c&&(d=plus.webview.create(b.url,e,a.windowOptions(b.styles),b.extras),b.subpages&&a.each(b.subpages,function(b,c){var e=c.id||c.url,f=plus.webview.getWebviewById(e);f||(f=plus.webview.create(c.url,e,a.windowOptions(c.styles),c.extras)),d.append(f)}));return d}},a.preload=function(b){return b.preload||(b.preload=!0),a.createWindow(b)},a.closeOpened=function(b){var c=b.opened();if(c)for(var d=0,e=c.length;d0?(a.closeOpened(f),f.close("none")):f.parent()!==b&&f.close("none")}},a.closeAll=function(b,c){a.closeOpened(b),c?b.close(c):b.close()},a.createWindows=function(b){a.each(b,function(b,c){a.createWindow(c,!1)})},a.appendWebview=function(b){if(window.plus){var c,d=b.id||b.url;return a.webviews[d]||(plus.webview.getWebviewById(d)||(c=plus.webview.create(b.url,d,b.styles,b.extras)),plus.webview.currentWebview().append(c),a.webviews[d]=b),c}},a.webviews={},a.data.preloads=[],a.plusReady(function(){a.currentWebview=plus.webview.currentWebview()}),a.addInit({name:"5+",index:100,handle:function(){var b=a.options,c=b.subpages||[];a.os.plus&&a.plusReady(function(){a.each(c,function(b,c){a.appendWebview(c)}),plus.webview.currentWebview()===plus.webview.getWebviewById(plus.runtime.appid)&&setTimeout(function(){d(plus.webview.currentWebview())},300),a.os.ios&&a.options.statusBarBackground&&plus.navigator.setStatusBarBackground(a.options.statusBarBackground),a.os.android&&parseFloat(a.os.version)<4.4&&null==plus.webview.currentWebview().parent()&&document.addEventListener("resume",function(){var a=document.body;a.style.display="none",setTimeout(function(){a.style.display=""},10)})})}}),window.addEventListener("preload",function(){var b=a.options.preloadPages||[];a.plusReady(function(){a.each(b,function(b,c){a.createWindow(a.extend(c,{preload:!0}))})})}),a.supportStatusbarOffset=function(){return a.os.plus&&a.os.ios&&parseFloat(a.os.version)>=7},a.ready(function(){a.supportStatusbarOffset()&&document.body.classList.add("mui-statusbar")})}(mui),function(a,b){a.addBack=function(b){return a.addAction("backs",b)},a.addBack({name:"browser",index:100,handle:function(){return b.history.length>1&&(b.history.back(),!0)}}),a.back=function(){"function"==typeof a.options.beforeback&&!1===a.options.beforeback()||a.doAction("backs")},b.addEventListener("tap",function(b){var c=a.targets.action;c&&c.classList.contains("mui-action-back")&&(a.back(),a.targets.action=!1)}),b.addEventListener("swiperight",function(b){var c=b.detail;!0===a.options.swipeBack&&Math.abs(c.angle)<3&&a.back()})}(mui,window),function(a,b){a.os.plus&&a.os.android&&a.addBack({name:"mui",index:5,handle:function(){if(a.targets._popover&&a.targets._popover.classList.contains("mui-active"))return a(a.targets._popover).popover("hide"),!0;var b=document.querySelector(".mui-off-canvas-wrap.mui-active");if(b)return a(b).offCanvas("close"),!0;var c=a.isFunction(a.getPreviewImage)&&a.getPreviewImage();return c&&c.isShown()?(c.close(),!0):a.closePopup()}}),a.__back__first=null,a.addBack({name:"5+",index:10,handle:function(){if(!b.plus)return!1;var c=plus.webview.currentWebview(),d=c.parent();return d?d.evalJS("mui&&mui.back();"):c.canBack(function(d){d.canBack?b.history.back():c.id===plus.runtime.appid?a.__back__first?(new Date).getTime()-a.__back__first<2e3&&plus.runtime.quit():(a.__back__first=(new Date).getTime(),mui.toast("再按一次退出应用"),setTimeout(function(){a.__back__first=null},2e3)):c.preload?c.hide("auto"):a.closeAll(c)}),!0}}),a.menu=function(){var c=document.querySelector(".mui-action-menu");if(c)a.trigger(c,a.EVENT_START),a.trigger(c,"tap");else if(b.plus){var d=a.currentWebview,e=d.parent();e&&e.evalJS("mui&&mui.menu();")}};var c=function(){a.back()},d=function(){a.menu()};a.plusReady(function(){a.options.keyEventBind.backbutton&&plus.key.addEventListener("backbutton",c,!1),a.options.keyEventBind.menubutton&&plus.key.addEventListener("menubutton",d,!1)}),a.addInit({name:"keyEventBind",index:1e3,handle:function(){a.plusReady(function(){a.options.keyEventBind.backbutton||plus.key.removeEventListener("backbutton",c),a.options.keyEventBind.menubutton||plus.key.removeEventListener("menubutton",d)})}})}(mui,window),function(a){a.addInit({name:"pullrefresh",index:1e3,handle:function(){var b=a.options,c=b.pullRefresh||{},d=c.down&&c.down.hasOwnProperty("callback"),e=c.up&&c.up.hasOwnProperty("callback");if(d||e){var f=c.container;if(f){var g=a(f);1===g.length&&(a.os.plus?d&&"circle"==c.down.style?a.plusReady(function(){a.fn.pullRefresh=a.fn.pullRefresh_native,g.pullRefresh(c)}):a.os.android?a.plusReady(function(){a.fn.pullRefresh=a.fn.pullRefresh_native;var b=plus.webview.currentWebview();if(!1===window.__NWin_Enable__)g.pullRefresh(c);else{if(e){var f={};f.up=c.up,f.webviewId=b.id||b.getURL(),g.pullRefresh(f)}if(d){var h=b.parent(),i=b.id||b.getURL();if(h){e||g.pullRefresh({webviewId:i});var j={webviewId:i};j.down=a.extend({},c.down),j.down.callback="_CALLBACK",h.evalJS("mui.fn.pullRefresh=mui.fn.pullRefresh_native"),h.evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('"+JSON.stringify(j)+"')")}}}}):g.pullRefresh(c):g.pullRefresh(c))}}}})}(mui),function(a,b,c){var d="application/json",e="text/html",f=/)<[^<]*)*<\/script>/gi,g=/^(?:text|application)\/javascript/i,h=/^(?:text|application)\/xml/i,i=/^\s*$/;a.ajaxSettings={type:"GET",beforeSend:a.noop,success:a.noop,error:a.noop,complete:a.noop,context:null,xhr:function(a){return new b.XMLHttpRequest},accepts:{script:"text/javascript, application/javascript, application/x-javascript",json:d,xml:"application/xml, text/xml",html:e,text:"text/plain"},timeout:0,processData:!0,cache:!0};var j=function(a,b){var c=b.context;if(!1===b.beforeSend.call(c,a,b))return!1},k=function(a,b,c){c.success.call(c.context,a,"success",b),m("success",b,c)},l=function(a,b,c,d){d.error.call(d.context,c,b,a),m(b,c,d)},m=function(a,b,c){c.complete.call(c.context,b,a)},n=function(b,c,d,e){var f,g=a.isArray(c),h=a.isPlainObject(c);a.each(c,function(c,i){f=a.type(i),e&&(c=d?e:e+"["+(h||"object"===f||"array"===f?c:"")+"]"),!e&&g?b.add(i.name,i.value):"array"===f||!d&&"object"===f?n(b,i,d,c):b.add(c,i)})},o=function(b){if(b.processData&&b.data&&"string"!=typeof b.data){var e=b.contentType;!e&&b.headers&&(e=b.headers["Content-Type"]),e&&~e.indexOf(d)?b.data=JSON.stringify(b.data):b.data=a.param(b.data,b.traditional)}!b.data||b.type&&"GET"!==b.type.toUpperCase()||(b.url=p(b.url,b.data),b.data=c)},p=function(a,b){return""===b?a:(a+"&"+b).replace(/[&?]{1,2}/,"?")},q=function(a){return a&&(a=a.split(";",2)[0]),a&&(a===e?"html":a===d?"json":g.test(a)?"script":h.test(a)&&"xml")||"text"},r=function(b,d,e,f){return a.isFunction(d)&&(f=e,e=d,d=c),a.isFunction(e)||(f=e,e=c),{url:b,data:d,success:e,dataType:f}};a.ajax=function(d,e){"object"==typeof d&&(e=d,d=c);var f=e||{};f.url=d||f.url;for(var g in a.ajaxSettings)f[g]===c&&(f[g]=a.ajaxSettings[g]);o(f);var h=f.dataType;!1!==f.cache&&(e&&!0===e.cache||"script"!==h)||(f.url=p(f.url,"_="+a.now()));var m=f.accepts[h&&h.toLowerCase()],n={},r=function(a,b){n[a.toLowerCase()]=[a,b]},s=/^([\w-]+:)\/\//.test(f.url)?RegExp.$1:b.location.protocol,t=f.xhr(f);"file:"===location.protocol&&a.os.ios&&b.webkit&&b.webkit.messageHandlers&&!(t instanceof plus.net.XMLHttpRequest)&&console.error("当前运行环境为WKWebview,需在plusReady事件触发后再调用mui.ajax,否则可能会执行失败或报Script error的错误");var u,v=t.setRequestHeader;if(r("X-Requested-With","XMLHttpRequest"),r("Accept",m||"*/*"),(m=f.mimeType||m)&&(m.indexOf(",")>-1&&(m=m.split(",",2)[0]),t.overrideMimeType&&t.overrideMimeType(m)),(f.contentType||!1!==f.contentType&&f.data&&"GET"!==f.type.toUpperCase())&&r("Content-Type",f.contentType||"application/x-www-form-urlencoded"),f.headers)for(var w in f.headers)r(w,f.headers[w]);if(t.setRequestHeader=r,t.onreadystatechange=function(){if(4===t.readyState){t.onreadystatechange=a.noop,clearTimeout(u);var b,c=!1,d="file:"===s;if(t.status>=200&&t.status<300||304===t.status||0===t.status&&d&&t.responseText){h=h||q(f.mimeType||t.getResponseHeader("content-type")),b=t.responseText;try{"script"===h?(0,eval)(b):"xml"===h?b=t.responseXML:"json"===h&&(b=i.test(b)?null:a.parseJSON(b))}catch(a){c=a}c?l(c,"parsererror",t,f):k(b,t,f)}else{var e=t.status?"error":"abort",g=t.statusText||null;d&&(e="error",g="404"),l(g,e,t,f)}}},!1===j(t,f))return t.abort(),l(null,"abort",t,f),t;if(f.xhrFields)for(var w in f.xhrFields)t[w]=f.xhrFields[w];var x=!("async"in f)||f.async;t.open(f.type.toUpperCase(),f.url,x,f.username,f.password);for(var w in n)n.hasOwnProperty(w)&&v.apply(t,n[w]);return f.timeout>0&&(u=setTimeout(function(){t.onreadystatechange=a.noop,t.abort(),l(null,"timeout",t,f)},f.timeout)),t.send(f.data?f.data:null),t},a.param=function(a,b){var c=[];return c.add=function(a,b){this.push(encodeURIComponent(a)+"="+encodeURIComponent(b))},n(c,a,b),c.join("&").replace(/%20/g,"+")},a.get=function(){return a.ajax(r.apply(null,arguments))},a.post=function(){var b=r.apply(null,arguments);return b.type="POST",a.ajax(b)},a.getJSON=function(){var b=r.apply(null,arguments);return b.dataType="json",a.ajax(b)},a.fn.load=function(b,c,d){if(!this.length)return this;var e,g=this,h=b.split(/\s/),i=r(b,c,d),j=i.success;return h.length>1&&(i.url=h[0],e=h[1]),i.success=function(a){if(e){var b=document.createElement("div");b.innerHTML=a.replace(f,"");var c=document.createElement("div"),d=b.querySelectorAll(e);if(d&&d.length>0)for(var h=0,i=d.length;h','
','
{contentrefresh}
',""].join(""),v={init:function(b,c){this._super(b,a.extend(!0,{scrollY:!0,scrollX:!1,indicators:!0,deceleration:.003,down:{height:50,contentinit:"下拉可以刷新",contentdown:"下拉可以刷新",contentover:"释放立即刷新",contentrefresh:"正在刷新..."},up:{height:50,auto:!1,contentinit:"上拉显示更多",contentdown:"上拉显示更多",contentrefresh:"正在加载...",contentnomore:"没有更多数据了",duration:300}},c))},_init:function(){this._super(),this._initPocket()},_initPulldownRefresh:function(){this.pulldown=!0,this.topPocket&&(this.pullPocket=this.topPocket,this.pullPocket.classList.add(o),this.pullPocket.classList.add(q),this.pullCaption=this.topCaption,this.pullLoading=this.topLoading)},_initPullupRefresh:function(){this.pulldown=!1,this.bottomPocket&&(this.pullPocket=this.bottomPocket,this.pullPocket.classList.add(o),this.pullPocket.classList.add(q),this.pullCaption=this.bottomCaption,this.pullLoading=this.bottomLoading)},_initPocket:function(){var a=this.options;a.down&&a.down.hasOwnProperty("callback")&&(this.topPocket=this.scroller.querySelector("."+d),this.topPocket||(this.topPocket=this._createPocket(d,a.down,s),this.wrapper.insertBefore(this.topPocket,this.wrapper.firstChild)),this.topLoading=this.topPocket.querySelector("."+g),this.topCaption=this.topPocket.querySelector("."+h)),a.up&&a.up.hasOwnProperty("callback")&&(this.bottomPocket=this.scroller.querySelector("."+e),this.bottomPocket||(this.bottomPocket=this._createPocket(e,a.up,t),this.scroller.appendChild(this.bottomPocket)),this.bottomLoading=this.bottomPocket.querySelector("."+g),this.bottomCaption=this.bottomPocket.querySelector("."+h),this.wrapper.addEventListener("scrollbottom",this))},_createPocket:function(a,c,d){var e=b.createElement("div");return e.className=a,e.innerHTML=u.replace("{contentrefresh}",c.contentinit).replace("{icon}",d),e},_resetPullDownLoading:function(){var a=this.pullLoading;a&&(this.pullCaption.innerHTML=this.options.down.contentdown,a.style.webkitTransition="",a.style.webkitTransform="",a.style.webkitAnimation="",a.className=s)},_setCaptionClass:function(a,b,c){if(!a)switch(c){case this.options.up.contentdown:b.className=h+" "+i;break;case this.options.up.contentrefresh:b.className=h+" "+j;break;case this.options.up.contentnomore:b.className=h+" "+k}},_setCaption:function(a,b){if(!this.loading){var c=this.options,d=this.pullPocket,e=this.pullCaption,f=this.pullLoading,g=this.pulldown,h=this;d&&(b?setTimeout(function(){e.innerHTML=h.lastTitle=a,g?f.className=s:(h._setCaptionClass(!1,e,a),f.className=t),f.style.webkitAnimation="",f.style.webkitTransition="",f.style.webkitTransform=""},100):a!==this.lastTitle&&(e.innerHTML=a,g?a===c.down.contentrefresh?(f.className=t,f.style.webkitAnimation="spinner-spin 1s step-end infinite"):a===c.down.contentover?(f.className=r,f.style.webkitTransition="-webkit-transform 0.3s ease-in",f.style.webkitTransform="rotate(180deg)"):a===c.down.contentdown&&(f.className=s,f.style.webkitTransition="-webkit-transform 0.3s ease-in",f.style.webkitTransform="rotate(0deg)"):(a===c.up.contentrefresh?f.className=t+" "+q:f.className=t+" "+p,h._setCaptionClass(!1,e,a)),this.lastTitle=a))}}};a.PullRefresh=v}(mui,document),function(a,b,c,d){var e="mui-scroll",f="mui-scrollbar",g="mui-scrollbar-indicator",h=f+"-vertical",i=f+"-horizontal",j="mui-active",k={quadratic:{style:"cubic-bezier(0.25, 0.46, 0.45, 0.94)",fn:function(a){return a*(2-a)}},circular:{style:"cubic-bezier(0.1, 0.57, 0.1, 1)",fn:function(a){return Math.sqrt(1- --a*a)}},outCirc:{style:"cubic-bezier(0.075, 0.82, 0.165, 1)"},outCubic:{style:"cubic-bezier(0.165, 0.84, 0.44, 1)"}},l=a.Class.extend({init:function(b,c){this.wrapper=this.element=b,this.scroller=this.wrapper.children[0],this.scrollerStyle=this.scroller&&this.scroller.style,this.stopped=!1,this.options=a.extend(!0,{scrollY:!0,scrollX:!1,startX:0,startY:0,indicators:!0,stopPropagation:!1,hardwareAccelerated:!0,fixedBadAndorid:!1,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/},momentum:!0,snapX:.5,snap:!1,bounce:!0,bounceTime:500,bounceEasing:k.outCirc,scrollTime:500,scrollEasing:k.outCubic,directionLockThreshold:5,parallaxElement:!1,parallaxRatio:.5},c),this.x=0,this.y=0,this.translateZ=this.options.hardwareAccelerated?" translateZ(0)":"",this._init(),this.scroller&&(this.refresh(),this.scrollTo(this.options.startX,this.options.startY))},_init:function(){this._initParallax(),this._initIndicators(),this._initEvent()},_initParallax:function(){this.options.parallaxElement&&(this.parallaxElement=c.querySelector(this.options.parallaxElement),this.parallaxStyle=this.parallaxElement.style,this.parallaxHeight=this.parallaxElement.offsetHeight,this.parallaxImgStyle=this.parallaxElement.querySelector("img").style)},_initIndicators:function(){var a=this;if(a.indicators=[],this.options.indicators){var b,c=[];a.options.scrollY&&(b={el:this._createScrollBar(h),listenX:!1},this.wrapper.appendChild(b.el),c.push(b)),this.options.scrollX&&(b={el:this._createScrollBar(i),listenY:!1},this.wrapper.appendChild(b.el),c.push(b));for(var d=c.length;d--;)this.indicators.push(new m(this,c[d]))}},_initSnap:function(){this.currentPage={},this.pages=[];for(var a=this.snaps,b=a.length,c=0,d=-1,e=0,f=0,g=0,h=0,i=0;i=this.maxScrollX&&c++}this.options.startX=this.currentPage.x||0},_getSnapX:function(a){return Math.max(Math.min(0,-a+this.wrapperWidth/2),this.maxScrollX)},_gotoPage:function(a){this.currentPage=this.pages[Math.min(a,this.pages.length-1)][0];for(var b=0,c=this.snaps.length;b0?a=0:a=("left"===this.direction?this.pages[b][0].leftX:this.pages[b][0].rightX))return this.pages[b][0]}return{x:0,pageX:0}},_initEvent:function(c){var d=c?"removeEventListener":"addEventListener";b[d]("orientationchange",this),b[d]("resize",this),this.scroller[d]("webkitTransitionEnd",this),this.wrapper[d](a.EVENT_START,this),this.wrapper[d](a.EVENT_CANCEL,this),this.wrapper[d](a.EVENT_END,this),this.wrapper[d]("drag",this),this.wrapper[d]("dragend",this),this.wrapper[d]("flick",this),this.wrapper[d]("scrollend",this),this.options.scrollX&&this.wrapper[d]("swiperight",this);var e=this.wrapper.querySelector(".mui-segmented-control");e&&mui(e)[c?"off":"on"]("click","a",a.preventDefault),this.wrapper[d]("scrollstart",this),this.wrapper[d]("refresh",this)},_handleIndicatorScrollend:function(){this.indicators.map(function(a){a.fade()})},_handleIndicatorScrollstart:function(){this.indicators.map(function(a){a.fade(1)})},_handleIndicatorRefresh:function(){this.indicators.map(function(a){a.refresh()})},handleEvent:function(b){if(this.stopped)return void this.resetPosition();switch(b.type){case a.EVENT_START:this._start(b);break;case"drag":this.options.stopPropagation&&b.stopPropagation(),this._drag(b);break;case"dragend":case"flick":this.options.stopPropagation&&b.stopPropagation(),this._flick(b);break;case a.EVENT_CANCEL:case a.EVENT_END:this._end(b);break;case"webkitTransitionEnd":this.transitionTimer&&this.transitionTimer.cancel(),this._transitionEnd(b);break;case"scrollstart":this._handleIndicatorScrollstart(b);break;case"scrollend":this._handleIndicatorScrollend(b),this._scrollend(b),b.stopPropagation();break;case"orientationchange":case"resize":this._resize();break;case"swiperight":b.stopPropagation();break;case"refresh":this._handleIndicatorRefresh(b)}},_start:function(b){if(this.moved=this.needReset=!1,this._transitionTime(),this.isInTransition){this.needReset=!0,this.isInTransition=!1;var c=a.parseTranslateMatrix(a.getStyles(this.scroller,"webkitTransform"));this.setTranslate(Math.round(c.x),Math.round(c.y)),a.trigger(this.scroller,"scrollend",this),b.preventDefault()}this.reLayout(),a.trigger(this.scroller,"beforescrollstart",this)},_getDirectionByAngle:function(a){return a<-80&&a>-100?"up":a>=80&&a<100?"down":a>=170||a<=-170?"left":a>=-35&&a<=10?"right":null},_drag:function(c){var d=c.detail;if((this.options.scrollY||"up"===d.direction||"down"===d.direction)&&a.os.ios&&parseFloat(a.os.version)>=8){var e=d.gesture.touches[0].clientY;if(e+10>b.innerHeight||e<10)return void this.resetPosition(this.options.bounceTime)}var f=isReturn=!1;this._getDirectionByAngle(d.angle);if("left"===d.direction||"right"===d.direction?this.options.scrollX?(f=!0,this.moved||(a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=d.direction)):this.options.scrollY&&!this.moved&&(isReturn=!0):"up"===d.direction||"down"===d.direction?this.options.scrollY?(f=!0,this.moved||(a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=d.direction)):this.options.scrollX&&!this.moved&&(isReturn=!0):isReturn=!0,(this.moved||f)&&(c.stopPropagation(),d.gesture&&d.gesture.preventDefault()),!isReturn){this.moved?c.stopPropagation():a.trigger(this.scroller,"scrollstart",this);var g=0,h=0;this.moved?(g=d.deltaX-a.gestures.session.prevTouch.deltaX,h=d.deltaY-a.gestures.session.prevTouch.deltaY):(g=d.deltaX,h=d.deltaY);var i=Math.abs(d.deltaX),j=Math.abs(d.deltaY);i>j+this.options.directionLockThreshold?h=0:j>=i+this.options.directionLockThreshold&&(g=0),g=this.hasHorizontalScroll?g:0,h=this.hasVerticalScroll?h:0;var k=this.x+g,l=this.y+h;(k>0||k0?0:this.maxScrollX),(l>0||l0?0:this.maxScrollY),this.requestAnimationFrame||this._updateTranslate(),this.direction=d.deltaX>0?"right":"left",this.moved=!0,this.x=k,this.y=l,a.trigger(this.scroller,"scroll",this)}},_flick:function(b){if(this.moved){b.stopPropagation();var c=b.detail;if(this._clearRequestAnimationFrame(),"dragend"!==b.type||!c.flick){var d=Math.round(this.x),e=Math.round(this.y);if(this.isInTransition=!1,!this.resetPosition(this.options.bounceTime)){if(this.scrollTo(d,e),"dragend"===b.type)return void a.trigger(this.scroller,"scrollend",this);var f=0,g="";if(this.options.momentum&&c.flickTime<300&&(momentumX=this.hasHorizontalScroll?this._momentum(this.x,c.flickDistanceX,c.flickTime,this.maxScrollX,this.options.bounce?this.wrapperWidth:0,this.options.deceleration):{destination:d,duration:0},momentumY=this.hasVerticalScroll?this._momentum(this.y,c.flickDistanceY,c.flickTime,this.maxScrollY,this.options.bounce?this.wrapperHeight:0,this.options.deceleration):{destination:e,duration:0},d=momentumX.destination,e=momentumY.destination,f=Math.max(momentumX.duration,momentumY.duration),this.isInTransition=!0),d!=this.x||e!=this.y)return(d>0||d0||e0&&this.y<=this.maxScrollY)&&a.trigger(this.scroller,"scrollbottom",this)},_resize:function(){var a=this;clearTimeout(a.resizeTimeout),a.resizeTimeout=setTimeout(function(){a.refresh()},a.options.resizePolling)},_transitionTime:function(b){if(b=b||0,this.scrollerStyle.webkitTransitionDuration=b+"ms",this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration=b+"ms"),this.options.fixedBadAndorid&&!b&&a.os.isBadAndroid&&(this.scrollerStyle.webkitTransitionDuration="0.001s",this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration="0.001s")),this.indicators)for(var c=this.indicators.length;c--;)this.indicators[c].transitionTime(b);b&&(this.transitionTimer&&this.transitionTimer.cancel(),this.transitionTimer=a.later(function(){a.trigger(this.scroller,"webkitTransitionEnd")},b+100,this))},_transitionTimingFunction:function(a){if(this.scrollerStyle.webkitTransitionTimingFunction=a,this.parallaxElement&&this.options.scrollY&&(this.parallaxStyle.webkitTransitionDuration=a),this.indicators)for(var b=this.indicators.length;b--;)this.indicators[b].transitionTimingFunction(a)},_translate:function(a,b){this.x=a,this.y=b},_clearRequestAnimationFrame:function(){this.requestAnimationFrame&&(cancelAnimationFrame(this.requestAnimationFrame),this.requestAnimationFrame=null)},_updateTranslate:function(){var a=this;a.x===a.lastX&&a.y===a.lastY||a.setTranslate(a.x,a.y),a.requestAnimationFrame=requestAnimationFrame(function(){a._updateTranslate()})},_createScrollBar:function(a){var b=c.createElement("div"),d=c.createElement("div");return b.className=f+" "+a,d.className=g,b.appendChild(d),a===h?(this.scrollbarY=b,this.scrollbarIndicatorY=d):a===i&&(this.scrollbarX=b,this.scrollbarIndicatorX=d),this.wrapper.appendChild(b),b},_preventDefaultException:function(a,b){for(var c in b)if(b[c].test(a[c]))return!0;return!1},_reLayout:function(){if(this.hasHorizontalScroll||(this.maxScrollX=0,this.scrollerWidth=this.wrapperWidth),this.hasVerticalScroll||(this.maxScrollY=0,this.scrollerHeight=this.wrapperHeight),this.indicators.map(function(a){a.refresh()}),this.options.snap&&"string"==typeof this.options.snap){var a=this.scroller.querySelectorAll(this.options.snap);this.itemLength=0,this.snaps=[];for(var b=0,c=a.length;b0&&(h=f?f/2.5*(j/8):0,b=Math.abs(a)+h,i=b/j),{destination:Math.round(h),duration:i}},_getTranslateStr:function(a,b){return this.options.hardwareAccelerated?"translate3d("+a+"px,"+b+"px,0px) "+this.translateZ:"translate("+a+"px,"+b+"px) "},setStopped:function(a){a?(this.disablePullupToRefresh(),this.disablePulldownToRefresh()):(this.enablePullupToRefresh(),this.enablePulldownToRefresh())},setTranslate:function(b,c){if(this.x=b,this.y=c,this.scrollerStyle.webkitTransform=this._getTranslateStr(b,c),this.parallaxElement&&this.options.scrollY){var d=c*this.options.parallaxRatio,e=1+d/((this.parallaxHeight-d)/2);e>1?(this.parallaxImgStyle.opacity=1-d/100*this.options.parallaxRatio,this.parallaxStyle.webkitTransform=this._getTranslateStr(0,-d)+" scale("+e+","+e+")"):(this.parallaxImgStyle.opacity=1,this.parallaxStyle.webkitTransform=this._getTranslateStr(0,-1)+" scale(1,1)")}if(this.indicators)for(var f=this.indicators.length;f--;)this.indicators[f].updatePosition();this.lastX=this.x,this.lastY=this.y,a.trigger(this.scroller,"scroll",this)},reLayout:function(){this.wrapper.offsetHeight;var b=parseFloat(a.getStyles(this.wrapper,"padding-left"))||0,c=parseFloat(a.getStyles(this.wrapper,"padding-right"))||0,d=parseFloat(a.getStyles(this.wrapper,"padding-top"))||0,e=parseFloat(a.getStyles(this.wrapper,"padding-bottom"))||0,f=this.wrapper.clientWidth,g=this.wrapper.clientHeight;this.scrollerWidth=this.scroller.offsetWidth,this.scrollerHeight=this.scroller.offsetHeight,this.wrapperWidth=f-b-c,this.wrapperHeight=g-d-e,this.maxScrollX=Math.min(this.wrapperWidth-this.scrollerWidth,0),this.maxScrollY=Math.min(this.wrapperHeight-this.scrollerHeight,0),this.hasHorizontalScroll=this.options.scrollX&&this.maxScrollX<0,this.hasVerticalScroll=this.options.scrollY&&this.maxScrollY<0,this._reLayout()},resetPosition:function(a){var b=this.x,c=this.y;return a=a||0,!this.hasHorizontalScroll||this.x>0?b=0:this.x0?c=0:this.y0,this.isInTransition?(this._clearRequestAnimationFrame(),this._transitionTimingFunction(d.style),this._transitionTime(c),this.setTranslate(a,b)):this.setTranslate(a,b)},scrollToBottom:function(a,b){a=a||this.options.scrollTime,this.scrollTo(0,this.maxScrollY,a,b)},gotoPage:function(a){this._gotoPage(a)},destroy:function(){this._initEvent(!0),delete a.data[this.wrapper.getAttribute("data-scroll")],this.wrapper.setAttribute("data-scroll","")}}),m=function(b,d){this.wrapper="string"==typeof d.el?c.querySelector(d.el):d.el,this.wrapperStyle=this.wrapper.style,this.indicator=this.wrapper.children[0],this.indicatorStyle=this.indicator.style,this.scroller=b,this.options=a.extend({listenX:!0,listenY:!0,fade:!1,speedRatioX:0,speedRatioY:0},d),this.sizeRatioX=1,this.sizeRatioY=1,this.maxPosX=0,this.maxPosY=0,this.options.fade&&(this.wrapperStyle.webkitTransform=this.scroller.translateZ,this.wrapperStyle.webkitTransitionDuration=this.options.fixedBadAndorid&&a.os.isBadAndroid?"0.001s":"0ms",this.wrapperStyle.opacity="0")};m.prototype={handleEvent:function(a){},transitionTime:function(b){b=b||0,this.indicatorStyle.webkitTransitionDuration=b+"ms",this.scroller.options.fixedBadAndorid&&!b&&a.os.isBadAndroid&&(this.indicatorStyle.webkitTransitionDuration="0.001s")},transitionTimingFunction:function(a){this.indicatorStyle.webkitTransitionTimingFunction=a},refresh:function(){this.transitionTime(),this.options.listenX&&!this.options.listenY?this.indicatorStyle.display=this.scroller.hasHorizontalScroll?"block":"none":this.options.listenY&&!this.options.listenX?this.indicatorStyle.display=this.scroller.hasVerticalScroll?"block":"none":this.indicatorStyle.display=this.scroller.hasHorizontalScroll||this.scroller.hasVerticalScroll?"block":"none",this.wrapper.offsetHeight,this.options.listenX&&(this.wrapperWidth=this.wrapper.clientWidth,this.indicatorWidth=Math.max(Math.round(this.wrapperWidth*this.wrapperWidth/(this.scroller.scrollerWidth||this.wrapperWidth||1)),8),this.indicatorStyle.width=this.indicatorWidth+"px",this.maxPosX=this.wrapperWidth-this.indicatorWidth,this.minBoundaryX=0,this.maxBoundaryX=this.maxPosX,this.sizeRatioX=this.options.speedRatioX||this.scroller.maxScrollX&&this.maxPosX/this.scroller.maxScrollX),this.options.listenY&&(this.wrapperHeight=this.wrapper.clientHeight,this.indicatorHeight=Math.max(Math.round(this.wrapperHeight*this.wrapperHeight/(this.scroller.scrollerHeight||this.wrapperHeight||1)),8),this.indicatorStyle.height=this.indicatorHeight+"px",this.maxPosY=this.wrapperHeight-this.indicatorHeight,this.minBoundaryY=0,this.maxBoundaryY=this.maxPosY,this.sizeRatioY=this.options.speedRatioY||this.scroller.maxScrollY&&this.maxPosY/this.scroller.maxScrollY),this.updatePosition()},updatePosition:function(){var a=this.options.listenX&&Math.round(this.sizeRatioX*this.scroller.x)||0,b=this.options.listenY&&Math.round(this.sizeRatioY*this.scroller.y)||0;athis.maxBoundaryX?(this.width=Math.max(this.indicatorWidth-(a-this.maxPosX),8),this.indicatorStyle.width=this.width+"px",a=this.maxPosX+this.indicatorWidth-this.width):this.width!=this.indicatorWidth&&(this.width=this.indicatorWidth,this.indicatorStyle.width=this.width+"px"),bthis.maxBoundaryY?(this.height=Math.max(this.indicatorHeight-3*(b-this.maxPosY),8),this.indicatorStyle.height=this.height+"px",b=this.maxPosY+this.indicatorHeight-this.height):this.height!=this.indicatorHeight&&(this.height=this.indicatorHeight,this.indicatorStyle.height=this.height+"px"),this.x=a,this.y=b,this.indicatorStyle.webkitTransform=this.scroller._getTranslateStr(a,b)},fade:function(a,b){if(!b||this.visible){clearTimeout(this.fadeTimeout),this.fadeTimeout=null;var c=a?250:500,d=a?0:300;a=a?"1":"0",this.wrapperStyle.webkitTransitionDuration=c+"ms",this.fadeTimeout=setTimeout(function(a){this.wrapperStyle.opacity=a,this.visible=+a}.bind(this,a),d)}}},a.Scroll=l,a.fn.scroll=function(b){var c=[];return this.each(function(){var d=null,e=this,f=e.getAttribute("data-scroll");if(f)d=a.data[f];else{f=++a.uuid;var g=a.extend({},b);e.classList.contains("mui-segmented-control")&&(g=a.extend(g,{scrollY:!1,scrollX:!0,indicators:!1,snap:".mui-control-item"})),a.data[f]=d=new l(e,g),e.setAttribute("data-scroll",f)}c.push(d)}),1===c.length?c[0]:c}}(mui,window,document),function(a,b,c,d){var e="mui-visibility",f="mui-hidden",g=a.Scroll.extend(a.extend({handleEvent:function(a){this._super(a),"scrollbottom"===a.type&&a.target===this.scroller&&this._scrollbottom()},_scrollbottom:function(){this.pulldown||this.loading||(this.pulldown=!1,this._initPullupRefresh(),this.pullupLoading())},_start:function(a){a.touches&&a.touches.length&&a.touches[0].clientX>30&&a.target&&!this._preventDefaultException(a.target,this.options.preventDefaultException)&&a.preventDefault(),this.loading||(this.pulldown=this.pullPocket=this.pullCaption=this.pullLoading=!1),this._super(a)},_drag:function(a){this.y>=0&&this.disablePulldown&&"down"===a.detail.direction||(this._super(a),!this.pulldown&&!this.loading&&this.topPocket&&"down"===a.detail.direction&&this.y>=0&&this._initPulldownRefresh(),this.pulldown&&this._setCaption(this.y>this.options.down.height?this.options.down.contentover:this.options.down.contentdown))},_reLayout:function(){this.hasVerticalScroll=!0,this._super()},resetPosition:function(a){if(this.pulldown&&!this.disablePulldown){if(this.y>=this.options.down.height)return this.pulldownLoading(d,a||0),!0;!this.loading&&this.topPocket.classList.remove(e)}return this._super(a)},pulldownLoading:function(a,b){if(void 0===a&&(a=this.options.down.height),this.scrollTo(0,a,b,this.options.bounceEasing),!this.loading){this._initPulldownRefresh(),this._setCaption(this.options.down.contentrefresh),this.loading=!0,this.indicators.map(function(a){a.fade(0)});var c=this.options.down.callback;c&&c.call(this)}},endPulldownToRefresh:function(){var a=this;a.topPocket&&a.loading&&this.pulldown&&(a.scrollTo(0,0,a.options.bounceTime,a.options.bounceEasing),a.loading=!1,a._setCaption(a.options.down.contentdown,!0),setTimeout(function(){a.loading||a.topPocket.classList.remove(e)},350))},pullupLoading:function(a,b,c){b=b||0,this.scrollTo(b,this.maxScrollY,c,this.options.bounceEasing),this.loading||(this._initPullupRefresh(),this._setCaption(this.options.up.contentrefresh),this.indicators.map(function(a){a.fade(0)}),this.loading=!0,(a=a||this.options.up.callback)&&a.call(this))},endPullupToRefresh:function(a){var b=this;b.bottomPocket&&(b.loading=!1,a?(this.finished=!0,b._setCaption(b.options.up.contentnomore),b.wrapper.removeEventListener("scrollbottom",b)):(b._setCaption(b.options.up.contentdown),b.loading||b.bottomPocket.classList.remove(e)))},disablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.className="mui-pull-bottom-pocket "+f,this.wrapper.removeEventListener("scrollbottom",this)},disablePulldownToRefresh:function(){this._initPulldownRefresh(),this.topPocket.className="mui-pull-top-pocket "+f,this.disablePulldown=!0},enablePulldownToRefresh:function(){this._initPulldownRefresh(),this.topPocket.classList.remove(f),this._setCaption(this.options.down.contentdown),this.disablePulldown=!1},enablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.classList.remove(f),this._setCaption(this.options.up.contentdown),this.wrapper.addEventListener("scrollbottom",this)},refresh:function(a){a&&this.finished&&(this.enablePullupToRefresh(),this.finished=!1),this._super()}},a.PullRefresh));a.fn.pullRefresh=function(b){if(1===this.length){var c=this[0],d=null,e=c.getAttribute("data-pullrefresh");return!(!e&&void 0===b)&&(b=b||{},e?d=a.data[e]:(e=++a.uuid,a.data[e]=d=new g(c,b),c.setAttribute("data-pullrefresh",e)),b.down&&b.down.auto?d.pulldownLoading(b.down.autoY):b.up&&b.up.auto&&d.pullupLoading(),d)}}}(mui,window,document),function(a,b){var c="mui-slider",d="mui-slider-group",e="mui-slider-loop",f="mui-action-previous",g="mui-action-next",h="mui-slider-item",i="mui-active",j="."+h,k=".mui-slider-progress-bar",l=a.Slider=a.Scroll.extend({init:function(b,c){this._super(b,a.extend(!0,{fingers:1,interval:0,scrollY:!1,scrollX:!0,indicators:!1,scrollTime:1e3,startX:!1,slideTime:0,snap:j},c)),this.options.startX},_init:function(){this._reInit(),this.scroller&&(this.scrollerStyle=this.scroller.style,this.progressBar=this.wrapper.querySelector(k),this.progressBar&&(this.progressBarWidth=this.progressBar.offsetWidth,this.progressBarStyle=this.progressBar.style),this._super(),this._initTimer())},_triggerSlide:function(){var b=this;b.isInTransition=!1;b.currentPage;b.slideNumber=b._fixedSlideNumber(),b.loop&&(0===b.slideNumber?b.setTranslate(b.pages[1][0].x,0):b.slideNumber===b.itemLength-3&&b.setTranslate(b.pages[b.itemLength-2][0].x,0)),b.lastSlideNumber!=b.slideNumber&&(b.lastSlideNumber=b.slideNumber,b.lastPage=b.currentPage,a.trigger(b.wrapper,"slide",{slideNumber:b.slideNumber})),b._initTimer()},_handleSlide:function(b){var c=this;if(b.target===c.wrapper){var d=b.detail;d.slideNumber=d.slideNumber||0;for(var e=c.scroller.querySelectorAll(j),f=[],g=0,h=e.length;g0)for(var g=0,h=n.length;gthis.itemLength-(b?2:3)?(a=1,time=0):a<(b?-1:0)?(a=this.itemLength-2,time=0):a+=1:(b||(a>this.itemLength-1?(a=0,time=0):a<0&&(a=this.itemLength-1,time=0)),a=Math.min(Math.max(0,a),this.itemLength-1)),this.pages[a][0]},_gotoItem:function(b,c){this.currentPage=this._getPage(b,!0),this.scrollTo(this.currentPage.x,0,c,this.options.scrollEasing),0===c&&a.trigger(this.wrapper,"scrollend",this)},setTranslate:function(a,b){this._super(a,b),this.progressBar&&(this.progressBarStyle.webkitTransform=this._getTranslateStr(-a*(this.progressBarWidth/this.wrapperWidth),0))},resetPosition:function(a){return a=a||0,this.x>0?this.x=0:this.x=b.documentElement.scrollHeight&&(a.isScroll=!1,a.bottomPocket&&a.pullupLoading())},100)},_initPulldownRefreshEvent:function(){var b=this;a.plusReady(function(){if("circle"==b.options.down.style)b.options.webview=plus.webview.currentWebview(),b.options.webview.setPullToRefresh({support:!0,color:b.options.down.color||"#2BD009",height:b.options.down.height||"50px",range:b.options.down.range||"100px",style:"circle",offset:b.options.down.offset||"0px"},function(){b.options.down.callback()});else if(b.topPocket&&b.options.webviewId){var a=plus.webview.getWebviewById(b.options.webviewId);if(!a)return;b.options.webview=a;var c=b.options.down,d=c.height;a.addEventListener("close",function(){var a=b.options.webviewId&&b.options.webviewId.replace(/\//g,"_");b.element.removeAttribute("data-pullrefresh-plus-"+a)}),a.addEventListener("dragBounce",function(d){switch(b.pulldown?b.pullPocket.classList.add(e):b._initPulldownRefresh(),d.status){case"beforeChangeOffset":b._setCaption(c.contentdown);break;case"afterChangeOffset":b._setCaption(c.contentover);break;case"dragEndAfterChangeOffset":a.evalJS("window.mui&&mui.options.pullRefresh.down.callback()"),b._setCaption(c.contentrefresh)}},!1),a.setBounce({position:{top:2*d+"px"},changeoffset:{top:d+"px"}})}})},handleEvent:function(a){var b=this;b.stopped||(b.isScroll=!1,"dragup"!==a.type&&"plusscrollbottom"!==a.type||(b.isScroll=!0,setTimeout(function(){b.isScroll=!1},1e3)))}}).extend(a.extend({setStopped:function(a){this.stopped=!!a,this.stopped?(this.disablePullupToRefresh(),this.disablePulldownToRefresh()):(this.enablePullupToRefresh(),this.enablePulldownToRefresh())},beginPulldown:function(){var b=this;a.plusReady(function(){setTimeout(function(){if("circle"==b.options.down.style)plus.webview.currentWebview().beginPullToRefresh();else{var a=b.options.webview;a&&a.setBounce({offset:{top:b.options.down.height+"px"}})}},15)}.bind(this))},pulldownLoading:function(){this.beginPulldown()},_pulldownLoading:function(){var b=this;a.plusReady(function(){var a=plus.webview.getWebviewById(b.options.webviewId);a&&a.setBounce({offset:{top:b.options.down.height+"px"}})})},endPulldown:function(){var a=plus.webview.currentWebview();a.parent()&&"circle"!==this.options.down.style?a.parent().evalJS("mui&&mui(document.querySelector('.mui-content')).pullRefresh('"+JSON.stringify({webviewId:a.id})+"')._endPulldownToRefresh()"):a.endPullToRefresh()},endPulldownToRefresh:function(){this.endPulldown()},_endPulldownToRefresh:function(){var a=this;a.topPocket&&a.options.webview&&(a.options.webview.endPullToRefresh(),a.loading=!1,a._setCaption(a.options.down.contentdown,!0),setTimeout(function(){a.loading||a.topPocket.classList.remove(e)},350))},beginPullup:function(a){var b=this;b.isLoading||(b.isLoading=!0,!1!==b.pulldown?b._initPullupRefresh():this.pullPocket.classList.add(e),setTimeout(function(){b.pullLoading.classList.add(c),b.pullLoading.classList.remove(d),b.pullCaption.innerHTML="",b.pullCaption.className=f+" "+h,b.pullCaption.innerHTML=b.options.up.contentrefresh,(a=a||b.options.up.callback)&&a.call(b)},300))},pullupLoading:function(a){this.beginPullup(a)},endPullup:function(a){var e=this;e.pullLoading&&(e.pullLoading.classList.remove(c),e.pullLoading.classList.add(d),e.isLoading=!1,a?(e.finished=!0,e.pullCaption.className=f+" "+i,e.pullCaption.innerHTML=e.options.up.contentnomore,b.removeEventListener("plusscrollbottom",e),window.removeEventListener("dragup",e)):(e.pullCaption.className=f+" "+g,e.pullCaption.innerHTML=e.options.up.contentdown))},endPullupToRefresh:function(a){this.endPullup(a)},disablePulldownToRefresh:function(){var a=plus.webview.currentWebview();this.options.down.style&&"circle"==this.options.down.style?this.options.webview.setPullToRefresh({support:!1,style:"circle"}):(a.setStyle({bounce:"none"}),a.setBounce({position:{top:"none"}}))},enablePulldownToRefresh:function(){var a=this,b=plus.webview.currentWebview(),c=this.options.down.height;this.options.down.style&&"circle"==this.options.down.style?b.setPullToRefresh({support:!0,height:c||"50px",range:a.options.down.range||"100px",style:"circle",offset:a.options.down.offset||"0px"}):(b.setStyle({bounce:"vertical"}),b.setBounce({position:{top:2*c+"px"},changeoffset:{top:c+"px"}}))},disablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.className="mui-pull-bottom-pocket "+d,window.removeEventListener("dragup",this)},enablePullupToRefresh:function(){this._initPullupRefresh(),this.bottomPocket.classList.remove(d),this.pullCaption.className=f+" "+g,this.pullCaption.innerHTML=this.options.up.contentdown,b.addEventListener("plusscrollbottom",this),window.addEventListener("dragup",this)},scrollTo:function(b,c,d){a.scrollTo(c,d)},scrollToBottom:function(c){a.scrollTo(b.documentElement.scrollHeight,c)},refresh:function(a){a&&this.finished&&(this.enablePullupToRefresh(),this.finished=!1)}},a.PullRefresh));a.fn.pullRefresh_native=function(c){var d;0===this.length?(d=b.createElement("div"),d.className="mui-content",b.body.appendChild(d)):d=this[0];var e=c;c=c||{},"string"==typeof c&&(c=a.parseJSON(c)),!c.webviewId&&(c.webviewId=plus.webview.currentWebview().id||plus.webview.currentWebview().getURL());var f=null,g=c.webviewId&&c.webviewId.replace(/\//g,"_"),h=d.getAttribute("data-pullrefresh-plus-"+g);return!(!h&&void 0===e)&&(h?f=a.data[h]:(h=++a.uuid,d.setAttribute("data-pullrefresh-plus-"+g,h),b.body.classList.add("mui-plus-pullrefresh"),a.data[h]=f=new j(d,c)),c.down&&c.down.auto?f.beginPulldown():c.up&&c.up.auto&&f.beginPullup(),f)}}})}(mui,document),function(a,b,c,d){var e="mui-off-canvas-left",f="mui-off-canvas-right",g="mui-off-canvas-backdrop",h="mui-off-canvas-wrap",i="mui-slide-in",j="mui-active",k="mui-transitioning",l=".mui-inner-wrap",m=a.Class.extend({init:function(b,d){this.wrapper=this.element=b,this.scroller=this.wrapper.querySelector(l),this.classList=this.wrapper.classList,this.scroller&&(this.options=a.extend(!0,{dragThresholdX:10,scale:.8,opacity:.1,preventDefaultException:{tagName:/^(INPUT|TEXTAREA|BUTTON|SELECT|VIDEO)$/}},d),c.body.classList.add("mui-fullscreen"),this.refresh(),this.initEvent())},_preventDefaultException:function(a,b){for(var c in b)if(b[c].test(a[c]))return!0;return!1},refresh:function(a){this.slideIn=this.classList.contains(i),this.scalable=this.classList.contains("mui-scalable")&&!this.slideIn,this.scroller=this.wrapper.querySelector(l),this.offCanvasLefts=this.wrapper.querySelectorAll("."+e),this.offCanvasRights=this.wrapper.querySelectorAll("."+f),a?a.classList.contains(e)?this.offCanvasLeft=a:a.classList.contains(f)&&(this.offCanvasRight=a):(this.offCanvasRight=this.wrapper.querySelector("."+f),this.offCanvasLeft=this.wrapper.querySelector("."+e)),this.offCanvasRightWidth=this.offCanvasLeftWidth=0,this.offCanvasLeftSlideIn=this.offCanvasRightSlideIn=!1,this.offCanvasRight&&(this.offCanvasRightWidth=this.offCanvasRight.offsetWidth,this.offCanvasRightSlideIn=this.slideIn&&this.offCanvasRight.parentNode===this.wrapper),this.offCanvasLeft&&(this.offCanvasLeftWidth=this.offCanvasLeft.offsetWidth,this.offCanvasLeftSlideIn=this.slideIn&&this.offCanvasLeft.parentNode===this.wrapper),this.backdrop=this.scroller.querySelector("."+g),this.options.dragThresholdX=this.options.dragThresholdX||10,this.visible=!1,this.startX=null,this.lastX=null,this.offsetX=null,this.lastTranslateX=null},handleEvent:function(b){switch(b.type){case a.EVENT_START:b.target&&!this._preventDefaultException(b.target,this.options.preventDefaultException)&&b.preventDefault();break;case"webkitTransitionEnd":b.target===this.scroller&&this._dispatchEvent();break;case"drag":var c=b.detail;this.startX?this.lastX=c.center.x:(this.startX=c.center.x,this.lastX=this.startX),!this.isDragging&&Math.abs(this.lastX-this.startX)>this.options.dragThresholdX&&("left"===c.direction||"right"===c.direction)&&(this.slideIn?(this.scroller=this.wrapper.querySelector(l),this.classList.contains(j)?this.offCanvasRight&&this.offCanvasRight.classList.contains(j)?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):"left"===c.direction&&this.offCanvasRight?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):"right"===c.direction&&this.offCanvasLeft?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):this.scroller=null):this.classList.contains(j)?"left"===c.direction?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):"right"===c.direction?(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth):(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth),this.offCanvas&&this.scroller&&(this.startX=this.lastX,this.isDragging=!0,a.gestures.session.lockDirection=!0,a.gestures.session.startDirection=c.direction,this.offCanvas.classList.remove(k),this.scroller.classList.remove(k),this.offsetX=this.getTranslateX(),this._initOffCanvasVisible())),this.isDragging&&(this.updateTranslate(this.offsetX+(this.lastX-this.startX)),c.gesture.preventDefault(),b.stopPropagation());break;case"dragend":if(this.isDragging){var c=b.detail,d=c.direction;this.isDragging=!1,this.offCanvas.classList.add(k),this.scroller.classList.add(k);var e=0,f=this.getTranslateX();if(this.slideIn){if(e=f>=0?this.offCanvasRightWidth&&f/this.offCanvasRightWidth||0:this.offCanvasLeftWidth&&f/this.offCanvasLeftWidth||0,"right"===d&&e<=0&&(e>=-.5||c.swipe)?this.openPercentage(100):"right"===d&&e>0&&(e>=.5||c.swipe)?this.openPercentage(0):"right"===d&&e<=-.5?this.openPercentage(0):"right"===d&&e>0&&e<=.5?this.openPercentage(-100):"left"===d&&e>=0&&(e<=.5||c.swipe)?this.openPercentage(-100):"left"===d&&e<0&&(e<=-.5||c.swipe)?this.openPercentage(0):"left"===d&&e>=.5?this.openPercentage(0):"left"===d&&e>=-.5&&e<0?this.openPercentage(100):this.openPercentage(0),1===e||-1===e||0===e)return void this._dispatchEvent()}else{if(0===(e=f>=0?this.offCanvasLeftWidth&&f/this.offCanvasLeftWidth||0:this.offCanvasRightWidth&&f/this.offCanvasRightWidth||0))return this.openPercentage(0),void this._dispatchEvent();"right"===d&&e>=0&&(e>=.5||c.swipe)?this.openPercentage(100):"right"===d&&e<0&&(e>-.5||c.swipe)?this.openPercentage(0):"right"===d&&e>0&&e<.5?this.openPercentage(0):"right"===d&&e<.5?this.openPercentage(-100):"left"===d&&e<=0&&(e<=-.5||c.swipe)?this.openPercentage(-100):"left"===d&&e>0&&(e<=.5||c.swipe)?this.openPercentage(0):"left"===d&&e<0&&e>=-.5?this.openPercentage(0):"left"===d&&e>.5?this.openPercentage(100):this.openPercentage(0),1!==e&&-1!==e||this._dispatchEvent()}}}},_dispatchEvent:function(){this.classList.contains(j)?a.trigger(this.wrapper,"shown",this):a.trigger(this.wrapper,"hidden",this)},_initOffCanvasVisible:function(){this.visible||(this.visible=!0,this.offCanvasLeft&&(this.offCanvasLeft.style.visibility="visible"),this.offCanvasRight&&(this.offCanvasRight.style.visibility="visible"))},initEvent:function(){var b=this;b.backdrop&&b.backdrop.addEventListener("tap",function(a){b.close(),a.detail.gesture.preventDefault()}),this.classList.contains("mui-draggable")&&(this.wrapper.addEventListener(a.EVENT_START,this),this.wrapper.addEventListener("drag",this),this.wrapper.addEventListener("dragend",this)),this.wrapper.addEventListener("webkitTransitionEnd",this)},openPercentage:function(a){var b=a/100;this.slideIn?(this.offCanvasLeft&&a>=0?(b=0===b?-1:0,this.updateTranslate(this.offCanvasLeftWidth*b),this.offCanvasLeft.classList[0!==a?"add":"remove"](j)):this.offCanvasRight&&a<=0&&(b=0===b?1:0,this.updateTranslate(this.offCanvasRightWidth*b),this.offCanvasRight.classList[0!==a?"add":"remove"](j)),this.classList[0!==a?"add":"remove"](j)):(this.offCanvasLeft&&a>=0?(this.updateTranslate(this.offCanvasLeftWidth*b),this.offCanvasLeft.classList[0!==b?"add":"remove"](j)):this.offCanvasRight&&a<=0&&(this.updateTranslate(this.offCanvasRightWidth*b),this.offCanvasRight.classList[0!==b?"add":"remove"](j)),this.classList[0!==b?"add":"remove"](j))},updateTranslate:function(b){if(b!==this.lastTranslateX){if(this.slideIn){if(this.offCanvas.classList.contains(f)){if(b<0)return void this.setTranslateX(0);if(b>this.offCanvasRightWidth)return void this.setTranslateX(this.offCanvasRightWidth)}else{if(b>0)return void this.setTranslateX(0);if(b<-this.offCanvasLeftWidth)return void this.setTranslateX(-this.offCanvasLeftWidth)}this.setTranslateX(b)}else{if(!this.offCanvasLeft&&b>0||!this.offCanvasRight&&b<0)return void this.setTranslateX(0);if(this.leftShowing&&b>this.offCanvasLeftWidth)return void this.setTranslateX(this.offCanvasLeftWidth);if(this.rightShowing&&b<-this.offCanvasRightWidth)return void this.setTranslateX(-this.offCanvasRightWidth);this.setTranslateX(b),b>=0?(this.leftShowing=!0,this.rightShowing=!1,b>0&&(this.offCanvasLeft&&a.each(this.offCanvasLefts,function(a,b){b===this.offCanvasLeft?this.offCanvasLeft.style.zIndex=0:b.style.zIndex=-1}.bind(this)),this.offCanvasRight&&(this.offCanvasRight.style.zIndex=-1))):(this.rightShowing=!0,this.leftShowing=!1,this.offCanvasRight&&a.each(this.offCanvasRights,function(a,b){b===this.offCanvasRight?b.style.zIndex=0:b.style.zIndex=-1}.bind(this)),this.offCanvasLeft&&(this.offCanvasLeft.style.zIndex=-1))}this.lastTranslateX=b}},setTranslateX:a.animationFrame(function(a){if(this.scroller)if(this.scalable&&this.offCanvas.parentNode===this.wrapper){var b=Math.abs(a)/this.offCanvasWidth,c=1-(1-this.options.scale)*b,d=this.options.scale+(1-this.options.scale)*b,f=(this.options.opacity,this.options.opacity+(1-this.options.opacity)*b);this.offCanvas.classList.contains(e)?(this.offCanvas.style.webkitTransformOrigin="-100%",this.scroller.style.webkitTransformOrigin="left"):(this.offCanvas.style.webkitTransformOrigin="200%",this.scroller.style.webkitTransformOrigin="right"),this.offCanvas.style.opacity=f,this.offCanvas.style.webkitTransform="translate3d(0,0,0) scale("+d+")",this.scroller.style.webkitTransform="translate3d("+a+"px,0,0) scale("+c+")"}else this.slideIn?this.offCanvas.style.webkitTransform="translate3d("+a+"px,0,0)":this.scroller.style.webkitTransform="translate3d("+a+"px,0,0)"}),getTranslateX:function(){if(this.offCanvas){var b=this.slideIn?this.offCanvas:this.scroller,c=a.parseTranslateMatrix(a.getStyles(b,"webkitTransform"));return c&&c.x||0}return 0},isShown:function(a){var b=!1;if(this.slideIn)b="left"===a?this.classList.contains(j)&&this.wrapper.querySelector("."+e+"."+j):"right"===a?this.classList.contains(j)&&this.wrapper.querySelector("."+f+"."+j):this.classList.contains(j)&&(this.wrapper.querySelector("."+e+"."+j)||this.wrapper.querySelector("."+f+"."+j));else{var c=this.getTranslateX();b="right"===a?this.classList.contains(j)&&c<0:"left"===a?this.classList.contains(j)&&c>0:this.classList.contains(j)&&0!==c}return b},close:function(){this._initOffCanvasVisible(),this.offCanvas=this.wrapper.querySelector("."+f+"."+j)||this.wrapper.querySelector("."+e+"."+j),this.offCanvasWidth=this.offCanvas.offsetWidth,this.scroller&&(this.offCanvas.offsetHeight,this.offCanvas.classList.add(k),this.scroller.classList.add(k),this.openPercentage(0))},show:function(a){return this._initOffCanvasVisible(),!this.isShown(a)&&(a||(a=this.wrapper.querySelector("."+f)?"right":"left"),"right"===a?(this.offCanvas=this.offCanvasRight,this.offCanvasWidth=this.offCanvasRightWidth):(this.offCanvas=this.offCanvasLeft,this.offCanvasWidth=this.offCanvasLeftWidth),this.scroller&&(this.offCanvas.offsetHeight,this.offCanvas.classList.add(k),this.scroller.classList.add(k),this.openPercentage("left"===a?100:-100)),!0)},toggle:function(a){var b=a;a&&a.classList&&(b=a.classList.contains(e)?"left":"right",this.refresh(a)),this.show(b)||this.close()}}),n=function(a){if(parentNode=a.parentNode,parentNode){if(parentNode.classList.contains(h))return parentNode;if(parentNode=parentNode.parentNode,parentNode.classList.contains(h))return parentNode}},o=function(b,d){if("A"===d.tagName&&d.hash){var e=c.getElementById(d.hash.replace("#",""));if(e){var f=n(e);if(f)return a.targets._container=f,e}}return!1};a.registerTarget({name:d,index:60,handle:o,target:!1,isReset:!1,isContinue:!0}),b.addEventListener("tap",function(b){if(a.targets.offcanvas)for(var d=b.target;d&&d!==c;d=d.parentNode)if("A"===d.tagName&&d.hash&&d.hash==="#"+a.targets.offcanvas.id){b.detail&&b.detail.gesture&&b.detail.gesture.preventDefault(),a(a.targets._container).offCanvas().toggle(a.targets.offcanvas),a.targets.offcanvas=a.targets._container=null;break}}),a.fn.offCanvas=function(b){var c=[];return this.each(function(){var d=null,e=this;e.classList.contains(h)||(e=n(e));var f=e.getAttribute("data-offCanvas");f?d=a.data[f]:(f=++a.uuid,a.data[f]=d=new m(e,b),e.setAttribute("data-offCanvas",f)),"show"!==b&&"close"!==b&&"toggle"!==b||d.toggle(),c.push(d)}),1===c.length?c[0]:c},a.ready(function(){a(".mui-off-canvas-wrap").offCanvas()})}(mui,window,document,"offcanvas"),function(a,b){var c="mui-action",d=function(a,b){var d=b.className||"";return"string"!=typeof d&&(d=""),!(!d||!~d.indexOf(c))&&(b.classList.contains("mui-action-back")&&a.preventDefault(),b)};a.registerTarget({name:b,index:50,handle:d,target:!1,isContinue:!0})}(mui,"action"),function(a,b,c,d){var e="mui-modal",f=function(a,b){if("A"===b.tagName&&b.hash){var d=c.getElementById(b.hash.replace("#",""));if(d&&d.classList.contains(e))return d}return!1};a.registerTarget({name:d,index:50,handle:f,target:!1,isReset:!1,isContinue:!0}),b.addEventListener("tap",function(b){a.targets.modal&&(b.detail.gesture.preventDefault(),a.targets.modal.classList.toggle("mui-active"))})}(mui,window,document,"modal"),function(a,b,c,d){var e="mui-popover",f="mui-popover-arrow",g="mui-popover-action",h="mui-backdrop",i="mui-bar-popover",j="mui-bar-backdrop",k="mui-backdrop-action",l="mui-active",m="mui-bottom",n=function(b,d){if("A"===d.tagName&&d.hash){if(a.targets._popover=c.getElementById(d.hash.replace("#","")),a.targets._popover&&a.targets._popover.classList.contains(e))return d;a.targets._popover=null}return!1};a.registerTarget({name:d,index:60,handle:n,target:!1,isReset:!1,isContinue:!0});var o,p=function(b){this.removeEventListener("webkitTransitionEnd",p),this.addEventListener(a.EVENT_MOVE,a.preventDefault),a.trigger(this,"shown",this)},q=function(b){u(this,"none"),this.removeEventListener("webkitTransitionEnd",q),this.removeEventListener(a.EVENT_MOVE,a.preventDefault),a.trigger(this,"hidden",this)},r=function(){var b=c.createElement("div");return b.classList.add(h),b.addEventListener(a.EVENT_MOVE,a.preventDefault),b.addEventListener("tap",function(b){var c=a.targets._popover;c&&(c.addEventListener("webkitTransitionEnd",q),c.classList.remove(l),s(c))}),b}(),s=function(b){r.setAttribute("style","opacity:0"),a.targets.popover=a.targets._popover=null,o=a.later(function(){!b.classList.contains(l)&&r.parentNode&&r.parentNode===c.body&&c.body.removeChild(r)},350)};b.addEventListener("tap",function(b){if(a.targets.popover){for(var d=!1,e=b.target;e&&e!==c;e=e.parentNode)e===a.targets.popover&&(d=!0);d&&(b.detail.gesture.preventDefault(),t(a.targets._popover,a.targets.popover))}});var t=function(a,b,d){if(!("show"===d&&a.classList.contains(l)||"hide"===d&&!a.classList.contains(l))){o&&o.cancel(),a.removeEventListener("webkitTransitionEnd",p),a.removeEventListener("webkitTransitionEnd",q),r.classList.remove(j),r.classList.remove(k);var e=c.querySelector(".mui-popover.mui-active");if(e&&(e.addEventListener("webkitTransitionEnd",q),e.classList.remove(l),a===e))return void s(e);var f=!1;(a.classList.contains(i)||a.classList.contains(g))&&(a.classList.contains(g)?(f=!0,r.classList.add(k)):r.classList.add(j)),u(a,"block"),a.offsetHeight,a.classList.add(l),r.setAttribute("style",""),c.body.appendChild(r),v(a,b,f),r.classList.add(l),a.addEventListener("webkitTransitionEnd",p)}},u=function(a,b,c,d){var e=a.style;void 0!==b&&(e.display=b),void 0!==c&&(e.top=c+"px"),void 0!==d&&(e.left=d+"px")},v=function(d,e,h){if(d&&e){if(h)return void u(d,"block");var i=b.innerWidth,j=b.innerHeight,k=d.offsetWidth,l=d.offsetHeight,n=e.offsetWidth,o=e.offsetHeight,p=a.offset(e),q=d.querySelector("."+f);q||(q=c.createElement("div"),q.className=f,d.appendChild(q));var r=q&&q.offsetWidth/2||0,s=0,t=0,v=0,w=0,x=d.classList.contains(g)?0:5,y="top";l+ri&&(t=i-k-x),q&&("top"===y?q.classList.add(m):q.classList.remove(m),v-=t,w=k/2-r/2+v,w=Math.max(Math.min(w,k-2*r-6),6),q.setAttribute("style","left:"+w+"px"))):"middle"===y&&q.setAttribute("style","display:none"),u(d,"block",s,t)}};a.createMask=function(b){var d=c.createElement("div");d.classList.add(h),d.addEventListener(a.EVENT_MOVE,a.preventDefault),d.addEventListener("tap",function(){e.close()});var e=[d];return e._show=!1,e.show=function(){return e._show=!0,d.setAttribute("style","opacity:1"),c.body.appendChild(d),e},e._remove=function(){return e._show&&(e._show=!1,d.setAttribute("style","opacity:0"),a.later(function(){var a=c.body;d.parentNode===a&&a.removeChild(d)},350)),e},e.close=function(){b?!1!==b()&&e._remove():e._remove()},e},a.fn.popover=function(){var b=arguments;this.each(function(){a.targets._popover=this,"show"!==b[0]&&"hide"!==b[0]&&"toggle"!==b[0]||t(this,b[1],b[0])})}}(mui,window,document,"popover"),function(a,b,c,d,e){var f="mui-control-item",g="mui-segmented-control-vertical",h="mui-control-content",i="mui-tab-item",j=function(a,b){return!(!b.classList||!b.classList.contains(f)&&!b.classList.contains(i))&&(b.parentNode&&b.parentNode.classList&&b.parentNode.classList.contains(g)||a.preventDefault(),b)};a.registerTarget({name:d,index:80,handle:j,target:!1}),b.addEventListener("tap",function(b){var e=a.targets.tab;if(e){for(var g,j,k,l="mui-active",m="."+l,n=e.parentNode;n&&n!==c;n=n.parentNode){if(n.classList.contains("mui-segmented-control")){g=n.querySelector(m+"."+f);break}n.classList.contains("mui-bar-tab")&&(g=n.querySelector(m+"."+i))}g&&g.classList.remove(l);var o=e===g;if(e&&e.classList.add(l),e.hash&&(k=c.getElementById(e.hash.replace("#","")))){if(!k.classList.contains(h))return void e.classList[o?"remove":"add"](l);if(!o){var p=k.parentNode;j=p.querySelectorAll("."+h+m);for(var q=0;qthis.handleX/2||!this.initialState&&a>this.handleX/2)&&(b=!0),this.lastChanged!==b&&(b?(this.handle.style.webkitTransform="translate("+(this.initialState?0:this.handleX)+"px,0)",this.classList[this.initialState?"remove":"add"](f)):(this.handle.style.webkitTransform="translate("+(this.initialState?this.handleX:0)+"px,0)",this.classList[this.initialState?"add":"remove"](f)),this.lastChanged=b)}}),a.fn.switch=function(b){var c=[];return this.each(function(){var b=null,d=this.getAttribute("data-switch");d?b=a.data[d]:(d=++a.uuid,a.data[d]=new k(this),this.setAttribute("data-switch",d)),c.push(b)}),c.length>1?c:c[0]},a.ready(function(){a("."+d).switch()})}(mui,window,"toggle"),function(a,b,c){function d(a,b){var c=b?"removeEventListener":"addEventListener";a[c]("drag",F),a[c]("dragend",F),a[c]("swiperight",F),a[c]("swipeleft",F),a[c]("flick",F)}var e,f,g="mui-active",h="mui-selected",i="mui-grid-view",j="mui-table-view-radio",k="mui-table-view-cell",l="mui-collapse-content",m="mui-disabled",n="mui-switch",o="mui-btn",p="mui-slider-handle",q="mui-slider-left",r="mui-slider-right",s="mui-transitioning",t="."+p,u="."+q,v="."+r,w="."+h,x="."+o,y=.8,z=isOpened=openedActions=progress=!1,A=sliderActionLeft=sliderActionRight=buttonsLeft=buttonsRight=sliderDirection=sliderRequestAnimationFrame=!1,B=translateX=lastTranslateX=sliderActionLeftWidth=sliderActionRightWidth=0,C=function(a){a?f?f.classList.add(g):e&&e.classList.add(g):(B&&B.cancel(),f?f.classList.remove(g):e&&e.classList.remove(g))},D=function(){if(translateX!==lastTranslateX){if(buttonsRight&&buttonsRight.length>0){progress=translateX/sliderActionRightWidth,translateX<-sliderActionRightWidth&&(translateX=-sliderActionRightWidth-Math.pow(-translateX-sliderActionRightWidth,y));for(var a=0,b=buttonsRight.length;a0){progress=translateX/sliderActionLeftWidth,translateX>sliderActionLeftWidth&&(translateX=sliderActionLeftWidth+Math.pow(translateX-sliderActionLeftWidth,y));for(var a=0,b=buttonsLeft.length;a1&&(d.style.zIndex=buttonsLeft.length-a),E(d,translateX+buttonOffset*(1-Math.min(progress,1)))}}E(A,translateX),lastTranslateX=translateX}sliderRequestAnimationFrame=requestAnimationFrame(function(){D()})},E=function(a,b){a&&(a.style.webkitTransform="translate("+b+"px,0)")};b.addEventListener(a.EVENT_START,function(b){e&&C(!1),e=f=!1,z=isOpened=openedActions=!1;for(var g=b.target,h=!1;g&&g!==c;g=g.parentNode)if(g.classList){var p=g.classList;if(("INPUT"===g.tagName&&"radio"!==g.type&&"checkbox"!==g.type||"BUTTON"===g.tagName||p.contains(n)||p.contains(o)||p.contains(m))&&(h=!0),p.contains(l))break;if(p.contains(k)){e=g;var q=e.parentNode.querySelector(w);if(!e.parentNode.classList.contains(j)&&q&&q!==e)return a.swipeoutClose(q),void(e=h=!1);if(!e.parentNode.classList.contains(i)){var r=e.querySelector("a");r&&r.parentNode===e&&(f=r)}var s=e.querySelector(t);s&&(d(e),b.stopPropagation()),h||(s?(B&&B.cancel(),B=a.later(function(){C(!0)},100)):C(!0));break}}}),b.addEventListener(a.EVENT_MOVE,function(a){C(!1)});var F={handleEvent:function(a){switch(a.type){case"drag":this.drag(a);break;case"dragend":this.dragend(a);break;case"flick":this.flick(a);break;case"swiperight":this.swiperight(a);break;case"swipeleft":this.swipeleft(a)}},drag:function(a){if(e){z||(A=sliderActionLeft=sliderActionRight=buttonsLeft=buttonsRight=sliderDirection=sliderRequestAnimationFrame=!1,(A=e.querySelector(t))&&(sliderActionLeft=e.querySelector(u),sliderActionRight=e.querySelector(v),sliderActionLeft&&(sliderActionLeftWidth=sliderActionLeft.offsetWidth,buttonsLeft=sliderActionLeft.querySelectorAll(x)),sliderActionRight&&(sliderActionRightWidth=sliderActionRight.offsetWidth,buttonsRight=sliderActionRight.querySelectorAll(x)),e.classList.remove(s),isOpened=e.classList.contains(h),isOpened&&(openedActions=e.querySelector(u+w)?"left":"right")));var b=a.detail,c=b.direction,d=b.angle;if("left"===c&&(d>150||d<-150)?(buttonsRight||buttonsLeft&&isOpened)&&(z=!0):"right"===c&&d>-30&&d<30&&(buttonsLeft||buttonsRight&&isOpened)&&(z=!0),z){a.stopPropagation(),a.detail.gesture.preventDefault();var f=a.detail.deltaX;if(isOpened&&("right"===openedActions?f-=sliderActionRightWidth:f+=sliderActionLeftWidth),f>0&&!buttonsLeft||f<0&&!buttonsRight){if(!isOpened)return;f=0}f<0?sliderDirection="toLeft":f>0?sliderDirection="toRight":sliderDirection||(sliderDirection="toLeft"),sliderRequestAnimationFrame||D(),translateX=f}}},flick:function(a){z&&a.stopPropagation()},swipeleft:function(a){z&&a.stopPropagation()},swiperight:function(a){z&&a.stopPropagation()},dragend:function(b){if(z){b.stopPropagation(),sliderRequestAnimationFrame&&(cancelAnimationFrame(sliderRequestAnimationFrame),sliderRequestAnimationFrame=null);var c=b.detail;z=!1;var d="close",f="toLeft"===sliderDirection?sliderActionRightWidth:sliderActionLeftWidth;(c.swipe||Math.abs(translateX)>f/2)&&(isOpened?"left"===c.direction&&"right"===openedActions?d="open":"right"===c.direction&&"left"===openedActions&&(d="open"):d="open"),e.classList.add(s);var g;if("open"===d){var i="toLeft"===sliderDirection?-f:f;if(E(A,i),void 0!==(g="toLeft"===sliderDirection?buttonsRight:buttonsLeft)){for(var j=null,k=0;k0&&buttonsLeft!==g)for(var k=0,m=buttonsLeft.length;k0&&buttonsRight!==g)for(var k=0,m=buttonsRight.length;k0?d.duration:e.short:duration=e[d.duration],duration||(duration=e.short);var f=document.createElement("div");return f.classList.add("mui-toast-container"),f.innerHTML='
'+b+"
",f.addEventListener("webkitTransitionEnd",function(){f.classList.contains(c)||(f.parentNode.removeChild(f),f=null)}),f.addEventListener("click",function(){f.parentNode.removeChild(f),f=null}),document.body.appendChild(f),f.offsetHeight,f.classList.add(c),setTimeout(function(){f&&f.classList.remove(c)},duration),{isVisible:function(){return!!f}}}a.plusReady(function(){plus.nativeUI.toast(b,{verticalAlign:"bottom",duration:d.duration})})}}(mui,window),function(a,b,c){var d="mui-popup",e="mui-popup-backdrop",f="mui-popup-in",g="mui-popup-out",h="mui-popup-inner",i="mui-popup-title",j="mui-popup-text",k="mui-popup-input",l="mui-popup-buttons",m="mui-popup-button",n="mui-popup-button-bold",e="mui-popup-backdrop",o="mui-active",p=[],q=function(){var b=c.createElement("div");return b.classList.add(e),b.addEventListener(a.EVENT_MOVE,a.preventDefault),b.addEventListener("webkitTransitionEnd",function(){this.classList.contains(o)||b.parentNode&&b.parentNode.removeChild(b)}),b}(),r=function(a){return'
'},s=function(a,b,c){return'
'+b+'
'+a.replace(/\r\n/g,"
").replace(/\n/g,"
")+"
"+(c||"")+"
"},t=function(a){for(var b=a.length,c=[],d=0;d'+a[d]+"");return'
'+c.join("")+"
"},u=function(b,e){var h=c.createElement("div");h.className=d,h.innerHTML=b;var i=function(){h.parentNode&&h.parentNode.removeChild(h),h=null};h.addEventListener(a.EVENT_MOVE,a.preventDefault),h.addEventListener("webkitTransitionEnd",function(a){h&&a.target===h&&h.classList.contains(g)&&i()}),h.style.display="block",c.body.appendChild(h),h.offsetHeight,h.classList.add(f),q.classList.contains(o)||(q.style.display="block",c.body.appendChild(q),q.offsetHeight,q.classList.add(o));var j=a.qsa("."+m,h),l=h.querySelector("."+k+" input"),n={element:h,close:function(a,b){if(h){if(!1===(e&&e({index:a||0,value:l&&l.value||""})))return;!1!==b?(h.classList.remove(f),h.classList.add(g)):i(),p.pop(),p.length?p[p.length-1].show(b):q.classList.remove(o)}}},r=function(a){n.close(j.indexOf(a.target))};return a(h).on("tap","."+m,r),p.length&&p[p.length-1].hide(),p.push({close:n.close,show:function(a){h.style.display="block",h.offsetHeight,h.classList.add(f)},hide:function(){h.style.display="none",h.classList.remove(f)}}),n},v=function(b,c,d,e,f){if(void 0!==b)return"function"==typeof c?(e=c,f=d,c=null,d=null):"function"==typeof d&&(f=e,e=d,d=null),a.os.plus&&"div"!==f?plus.nativeUI.alert(b,e,c||"提示",d||"确定"):u(s(b,c||"提示")+t([d||"确定"]),e)},w=function(b,c,d,e,f){if(void 0!==b)return"function"==typeof c?(e=c,f=d,c=null,d=null):"function"==typeof d&&(f=e,e=d,d=null),a.os.plus&&"div"!==f?plus.nativeUI.confirm(b,e,c,d||["取消","确认"]):u(s(b,c||"提示")+t(d||["取消","确认"]),e)},x=function(b,c,d,e,f,g){if(void 0!==b)return"function"==typeof c?(f=c,g=d,c=null,d=null,e=null):"function"==typeof d?(f=d,g=e,d=null,e=null):"function"==typeof e&&(g=f,f=e,e=null),a.os.plus&&"div"!==g?plus.nativeUI.prompt(b,f,d||"提示",c,e||["取消","确认"]):u(s(b,d||"提示",r(c))+t(e||["取消","确认"]),f)},y=function(){return!!p.length&&(p[p.length-1].close(),!0)},z=function(){for(;p.length;)p[p.length-1].close()};a.closePopup=y,a.closePopups=z,a.alert=v,a.confirm=w,a.prompt=x}(mui,window,document),function(a,b){var c="mui-progressbar",d="mui-progressbar-in",e="mui-progressbar-out",f="mui-progressbar-infinite",g=".mui-progressbar",h=function(b){if(b=a(b||"body"),0!==b.length){if(b=b[0],b.classList.contains(c))return b;var d=b.querySelectorAll(g);if(d)for(var e=0,f=d.length;e"),h.appendChild(l))}return i&&k(h,i),l}},j=function(a){var b=h(a);if(b){var c=b.classList;c.contains(d)&&!c.contains(e)&&(c.remove(d),c.add(e),b.addEventListener("webkitAnimationEnd",function(){b.parentNode&&b.parentNode.removeChild(b),b=null}))}},k=function(a,b,c){"number"==typeof a&&(c=b,b=a,a=!1);var d=h(a);if(d&&!d.classList.contains(f)){b&&(b=Math.min(Math.max(b,0),100)),d.offsetHeight;var e=d.querySelector("span");if(e){var g=e.style;g.webkitTransform="translate3d("+(-100+b)+"%,0,0)",g.webkitTransitionDuration=void 0!==c?c+"ms":""}return d}};a.fn.progressbar=function(a){var b=[];return a=a||{},this.each(function(){var c=this,d=c.mui_plugin_progressbar;d?a&&d.setOptions(a):c.mui_plugin_progressbar=d={options:a,setOptions:function(a){this.options=a},show:function(){return i(c,this.options.progress,this.options.color)},setProgress:function(a){return k(c,a)},hide:function(){return j(c)}},b.push(d)}),1===b.length?b[0]:b}}(mui,document),function(a,b,c){var d="mui-icon",e="mui-icon-clear",f="mui-icon-speech",g="mui-icon-eye",h="mui-input-row",i="mui-placeholder",j="mui-tooltip",k="mui-hidden",l="mui-focusin",m="."+e,n="."+f,o="."+g,p="."+i,q="."+j,r=function(a){for(;a&&a!==c;a=a.parentNode)if(a.classList&&a.classList.contains(h))return a;return null},s=function(a,b){this.element=a,this.options=b||{actions:"clear"},~this.options.actions.indexOf("slider")?(this.sliderActionClass=j+" "+k,this.sliderActionSelector=q):(~this.options.actions.indexOf("clear")&&(this.clearActionClass=d+" "+e+" "+k,this.clearActionSelector=m),~this.options.actions.indexOf("speech")&&(this.speechActionClass=d+" "+f,this.speechActionSelector=n),~this.options.actions.indexOf("search")&&(this.searchActionClass=i,this.searchActionSelector=p),~this.options.actions.indexOf("password")&&(this.passwordActionClass=d+" "+g,this.passwordActionSelector=o)),this.init()};s.prototype.init=function(){this.initAction(),this.initElementEvent()},s.prototype.initAction=function(){var b=this,c=b.element.parentNode;c&&(b.sliderActionClass?b.sliderAction=b.createAction(c,b.sliderActionClass,b.sliderActionSelector):(b.searchActionClass&&(b.searchAction=b.createAction(c,b.searchActionClass,b.searchActionSelector),b.searchAction.addEventListener("tap",function(c){a.focus(b.element),c.stopPropagation()})),b.speechActionClass&&(b.speechAction=b.createAction(c,b.speechActionClass,b.speechActionSelector),b.speechAction.addEventListener("click",a.stopPropagation),b.speechAction.addEventListener("tap",function(a){b.speechActionClick(a)})),b.clearActionClass&&(b.clearAction=b.createAction(c,b.clearActionClass,b.clearActionSelector),b.clearAction.addEventListener("tap",function(a){b.clearActionClick(a)})),b.passwordActionClass&&(b.passwordAction=b.createAction(c,b.passwordActionClass,b.passwordActionSelector),b.passwordAction.addEventListener("tap",function(a){b.passwordActionClick(a)}))))},s.prototype.createAction=function(a,b,e){var f=a.querySelector(e);if(!f){var f=c.createElement("span");f.className=b,b===this.searchActionClass&&(f.innerHTML=''+this.element.getAttribute("placeholder")+"",this.element.setAttribute("placeholder",""),this.element.value.trim()&&a.classList.add("mui-active")),a.insertBefore(f,this.element.nextSibling)}return f},s.prototype.initElementEvent=function(){var b=this.element;if(this.sliderActionClass){var c=this.sliderAction,d=null,e=function(){c.classList.remove(k);var a=b.offsetLeft,e=b.offsetWidth-28,f=c.offsetWidth,g=Math.abs(b.max-b.min),h=e/g*Math.abs(b.value-b.min);c.style.left=14+a+h-f/2+"px",c.innerText=b.value,d&&clearTimeout(d),d=setTimeout(function(){c.classList.add(k)},1e3)};b.addEventListener("input",e),b.addEventListener("tap",e),b.addEventListener(a.EVENT_MOVE,function(a){a.stopPropagation()})}else{if(this.clearActionClass){var f=this.clearAction;if(!f)return;a.each(["keyup","change","input","focus","cut","paste"],function(a,c){!function(a){b.addEventListener(a,function(){f.classList[b.value.trim()?"remove":"add"](k)})}(c)}),b.addEventListener("blur",function(){f.classList.add(k)})}this.searchActionClass&&(b.addEventListener("focus",function(){b.parentNode.classList.add("mui-active")}),b.addEventListener("blur",function(){b.value.trim()||b.parentNode.classList.remove("mui-active")}))}},s.prototype.setPlaceholder=function(a){if(this.searchActionClass){var b=this.element.parentNode.querySelector(p);b&&(b.getElementsByTagName("span")[1].innerText=a)}else this.element.setAttribute("placeholder",a)},s.prototype.passwordActionClick=function(a){"text"===this.element.type?this.element.type="password":this.element.type="text",this.passwordAction.classList.toggle("mui-active"),a.preventDefault()},s.prototype.clearActionClick=function(b){var c=this;c.element.value="",a.focus(c.element),c.clearAction.classList.add(k),b.preventDefault()},s.prototype.speechActionClick=function(d){if(b.plus){var e=this,f=e.element.value;e.element.value="",c.body.classList.add(l),plus.speech.startRecognize({engine:"iFly"},function(b){e.element.value+=b,a.focus(e.element),plus.speech.stopRecognize(),a.trigger(e.element,"recognized",{value:e.element.value}),f!==e.element.value&&(a.trigger(e.element,"change"),a.trigger(e.element,"input"))},function(a){c.body.classList.remove(l)})}else alert("only for 5+");d.preventDefault()},a.fn.input=function(b){var c=[];return this.each(function(){var b=null,d=[],e=r(this.parentNode);if("range"===this.type&&e.classList.contains("mui-input-range"))d.push("slider");else{var f=this.classList;f.contains("mui-input-clear")&&d.push("clear"),a.os.android&&a.os.stream||!f.contains("mui-input-speech")||d.push("speech"),f.contains("mui-input-password")&&d.push("password"),"search"===this.type&&e.classList.contains("mui-search")&&d.push("search")}var g=this.getAttribute("data-input-"+d[0]);if(g)b=a.data[g];else{g=++a.uuid,b=a.data[g]=new s(this,{actions:d.join(",")});for(var h=0,i=d.length;hthis._A?this.element.classList.add(c):this.element.classList.remove(c),this.lastOpacity!==f&&(a.trigger(this.element,"alpha",{alpha:f}),this.lastOpacity=f)},f.prototype.destory=function(){this.scrollByElem.removeEventListener("scroll",this._bufferFn),this.scrollByElem.removeEventListener(a.EVENT_MOVE,this._bufferFn),this.element.style.backgroundColor=this._bgColor,this.element.mui_plugin_transparent=null},a.fn.transparent=function(a){a=a||{};var c=[];return this.each(function(){var d=this.mui_plugin_transparent;if(!d){var e=this.getAttribute("data-top"),g=this.getAttribute("data-offset"),h=this.getAttribute("data-duration"),i=this.getAttribute("data-scrollby");null!==e&&void 0===a.top&&(a.top=e),null!==g&&void 0===a.offset&&(a.offset=g),null!==h&&void 0===a.duration&&(a.duration=h),null!==i&&void 0===a.scrollby&&(a.scrollby=document.querySelector(i)||b),d=this.mui_plugin_transparent=new f(this,a)}c.push(d)}),1===c.length?c[0]:c},a.ready(function(){a(".mui-bar-transparent").transparent()})}(mui,window),function(a){var b="ontouchstart"in document,c=b?"tap":"click",d="change",e=".mui-btn-numbox-plus,.mui-numbox-btn-plus",f=".mui-btn-numbox-minus,.mui-numbox-btn-minus",g=".mui-input-numbox,.mui-numbox-input",h=a.Numbox=a.Class.extend({init:function(b,c){var d=this;if(!b)throw"构造 numbox 时缺少容器元素";d.holder=b,c=c||{},c.step=parseInt(c.step||1),d.options=c,d.input=a.qsa(g,d.holder)[0],d.plus=a.qsa(e,d.holder)[0],d.minus=a.qsa(f,d.holder)[0],d.checkValue(),d.initEvent()},initEvent:function(){var b=this;b.plus.addEventListener(c,function(c){var e=parseInt(b.input.value)+b.options.step;b.input.value=e.toString(),a.trigger(b.input,d,null)}),b.minus.addEventListener(c,function(c){var e=parseInt(b.input.value)-b.options.step;b.input.value=e.toString(),a.trigger(b.input,d,null)}),b.input.addEventListener(d,function(c){b.checkValue();var e=parseInt(b.input.value);a.trigger(b.holder,d,{value:e})})},getValue:function(){var a=this;return parseInt(a.input.value)},checkValue:function(){var a=this,b=a.input.value;if(null==b||""==b||isNaN(b))a.input.value=a.options.min||0,a.minus.disabled=null!=a.options.min;else{var b=parseInt(b);null!=a.options.max&&!isNaN(a.options.max)&&b>=parseInt(a.options.max)?(b=a.options.max,a.plus.disabled=!0):a.plus.disabled=!1,null!=a.options.min&&!isNaN(a.options.min)&&b<=parseInt(a.options.min)?(b=a.options.min,a.minus.disabled=!0):a.minus.disabled=!1,a.input.value=b}},setOption:function(a,b){this.options[a]=b},setValue:function(a){this.input.value=a,this.checkValue()}});a.fn.numbox=function(a){return this.each(function(a,b){if(!b.numbox)if(d)b.numbox=new h(b,d);else{var c=b.getAttribute("data-numbox-options"),d=c?JSON.parse(c):{};d.step=b.getAttribute("data-numbox-step")||d.step,d.min=b.getAttribute("data-numbox-min")||d.min,d.max=b.getAttribute("data-numbox-max")||d.max,b.numbox=new h(b,d)}}),this[0]?this[0].numbox:null},a.ready(function(){a(".mui-numbox").numbox()})}(mui),function(a,b,c){var d="mui-disabled",e="reset",f="loading",g={loadingText:"Loading...",loadingIcon:"mui-spinner mui-spinner-white",loadingIconPosition:"left"},h=function(b,c){this.element=b,this.options=a.extend({},g,c),this.options.loadingText||(this.options.loadingText=g.loadingText),null===this.options.loadingIcon&&(this.options.loadingIcon="mui-spinner","rgb(255, 255, 255)"===a.getStyles(this.element,"color")&&(this.options.loadingIcon+=" mui-spinner-white")),this.isInput="INPUT"===this.element.tagName,this.resetHTML=this.isInput?this.element.value:this.element.innerHTML,this.state=""};h.prototype.loading=function(){this.setState(f)},h.prototype.reset=function(){this.setState(e)},h.prototype.setState=function(a){if(this.state===a)return!1;if(this.state=a,a===e)this.element.disabled=!1,this.element.classList.remove(d),this.setHtml(this.resetHTML);else if(a===f){this.element.disabled=!0,this.element.classList.add(d);var b=this.isInput?this.options.loadingText:""+this.options.loadingText+"";this.options.loadingIcon&&!this.isInput&&("right"===this.options.loadingIconPosition?b+=' ':b=' '+b),this.setHtml(b)}},h.prototype.setHtml=function(a){this.isInput?this.element.value=a:this.element.innerHTML=a},a.fn.button=function(a){var b=[];return this.each(function(){var c=this.mui_plugin_button;if(!c){var d=this.getAttribute("data-loading-text"),g=this.getAttribute("data-loading-icon"),i=this.getAttribute("data-loading-icon-position");this.mui_plugin_button=c=new h(this,{loadingText:d,loadingIcon:g,loadingIconPosition:i})}a!==f&&a!==e||c.setState(a),b.push(c)}),1===b.length?b[0]:b}}(mui,window,document); \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/js/util.js b/unpackage/cache/wgt/H5F1E04DB/js/util.js new file mode 100644 index 0000000..ef5f577 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/js/util.js @@ -0,0 +1,107 @@ +var util = { + options: { + ACTIVE_COLOR: "#007aff", + NORMAL_COLOR: "#000", + subpages: ["html/tab-webview-subpage-chat.html", "html/tab-webview-subpage-contact.html"] + }, + /** + * 简单封装了绘制原生view控件的方法 + * 绘制内容支持font(文本,字体图标),图片img , 矩形区域rect + */ + drawNative: function(id, styles, tags) { + var view = new plus.nativeObj.View(id, styles, tags); + return view; + }, + /** + * 初始化首个tab窗口 和 创建子webview窗口 + */ + initSubpage: function(aniShow) { + var subpage_style = { + top: 0, + bottom: 51 + }, + subpages = util.options.subpages, + self = plus.webview.currentWebview(), + temp = {}; + + //兼容安卓上添加titleNView 和 设置沉浸式模式会遮盖子webview内容 + if(mui.os.android) { + if(plus.navigator.isImmersedStatusbar()) { + subpage_style.top += plus.navigator.getStatusbarHeight(); + } + if(self.getTitleNView()) { + subpage_style.top += 40; + } + + } + + // 初始化第一个tab项为首次显示 + temp[self.id] = "true"; + mui.extend(aniShow, temp); + // 初始化绘制首个tab按钮 + util.toggleNview(0); + + for(var i = 0, len = subpages.length; i < len; i++) { + + if(!plus.webview.getWebviewById(subpages[i])) { + var sub = plus.webview.create(subpages[i], subpages[i], subpage_style); + // append到当前父webview + self.append(sub); + // 初始化隐藏 + sub.hide(); + } + } + }, + /** + * 点击切换tab窗口 + */ + changeSubpage: function(targetPage, activePage, aniShow) { + //若为iOS平台或非首次显示,则直接显示 + if(mui.os.ios || aniShow[targetPage]) { + plus.webview.show(targetPage); + } else { + //否则,使用fade-in动画,且保存变量 + var temp = {}; + temp[targetPage] = "true"; + mui.extend(aniShow, temp); + plus.webview.show(targetPage, "fade-in", 300); + } + //隐藏当前 除了第一个父窗口 + if(activePage !== plus.webview.getLaunchWebview()) { + plus.webview.hide(activePage); + } + }, + /** + * 点击重绘底部tab (view控件) + */ + toggleNview: function(currIndex) { + currIndex = currIndex * 2; + // 重绘当前tag 包括icon和text,所以执行两个重绘操作 + util.updateSubNView(currIndex, util.options.ACTIVE_COLOR); + util.updateSubNView(currIndex + 1, util.options.ACTIVE_COLOR); + // 重绘兄弟tag 反之排除当前点击的icon和text + for(var i = 0; i < 8; i++) { + if(i !== currIndex && i !== currIndex + 1) { + util.updateSubNView(i, util.options.NORMAL_COLOR); + } + } + }, + /* + * 改变颜色 + */ + changeColor: function(obj, color) { + obj.color = color; + return obj; + }, + /* + * 利用 plus.nativeObj.View 提供的 drawText 方法更新 view 控件 + */ + updateSubNView: function(currIndex, color) { + var self = plus.webview.currentWebview(), + nviewEvent = plus.nativeObj.View.getViewById("tabBar"), // 获取nview控件对象 + nviewObj = self.getStyle().subNViews[0], // 获取nview对象的属性 + currTag = nviewObj.tags[currIndex]; // 获取当前需重绘的tag + + nviewEvent.drawText(currTag.text, currTag.position, util.changeColor(currTag.textStyles, color), currTag.id); + } +}; \ No newline at end of file diff --git a/unpackage/cache/wgt/H5F1E04DB/manifest.json b/unpackage/cache/wgt/H5F1E04DB/manifest.json new file mode 100644 index 0000000..ad5b518 --- /dev/null +++ b/unpackage/cache/wgt/H5F1E04DB/manifest.json @@ -0,0 +1 @@ +{"@platforms":["android","iPhone","iPad"],"id":"H5F1E04DB","name":"Qlik","version":{"name":"1.0","code":""},"description":"nativeObj模式底部选项卡 + 底部悬浮大球图标 + webview模式子窗口官方示例","icons":{"72":"icon.png"},"launch_path":"https://task.qlik-tr.com/#/","developer":{"name":"","email":"","url":""},"permissions":{},"plus":{"launchwebview":{"bottom":"0px","background":"#fff"},"splashscreen":{"alwaysShowBeforeRender":false,"autoclose":true,"delay":"","waiting":true},"popGesture":"close","runmode":"normal","signature":"Sk9JTiBVUyBtYWlsdG86aHIyMDEzQGRjbG91ZC5pbw==","distribute":{"apple":{"appid":"","devices":"universal","frameworks":[],"idfa":false,"mobileprovision":"","p12":"","password":"","plistcmds":["Add :UIFileSharingEnabled bool true"]},"google":{"abiFilters":["arm64-v8a","x86"],"aliasname":"testalias","keystore":"google-keystore.keystore","packagename":"plus.Qlik","password":"/GhllXBN3lqcKKiNwCXGtQ==","permissions":["","","","","","","","","","","","","","",""],"custompermissions":true},"orientation":["portrait-primary"],"icons":{"ios":{"appstore":"unpackage/res/icons/1024x1024.png","ipad":{"app":"unpackage/res/icons/76x76.png","app@2x":"unpackage/res/icons/152x152.png","notification":"unpackage/res/icons/20x20.png","notification@2x":"unpackage/res/icons/40x40.png","proapp@2x":"unpackage/res/icons/167x167.png","settings":"unpackage/res/icons/29x29.png","settings@2x":"unpackage/res/icons/58x58.png","spotlight":"unpackage/res/icons/40x40.png","spotlight@2x":"unpackage/res/icons/80x80.png"},"iphone":{"app@2x":"unpackage/res/icons/120x120.png","app@3x":"unpackage/res/icons/180x180.png","notification@2x":"unpackage/res/icons/40x40.png","notification@3x":"unpackage/res/icons/60x60.png","settings@2x":"unpackage/res/icons/58x58.png","settings@3x":"unpackage/res/icons/87x87.png","spotlight@2x":"unpackage/res/icons/80x80.png","spotlight@3x":"unpackage/res/icons/120x120.png"},"prerendered":"false"},"android":{"hdpi":"icon-android-hdpi.png","xhdpi":"icon-android-xhdpi.png","xxhdpi":"icon-android-xxhdpi.png","xxxhdpi":"icon-android-xxxhdpi.png"}},"splashscreen":{"ios":{"iphone":{},"ipad":{}},"android":{"xhdpi":"splash-android-xhdpi.png","xxhdpi":"splash-android-xxhdpi.png","hdpi":"splash-android-hdpi.png"},"androidStyle":"default","useOriginalMsgbox":false,"iosStyle":"common"},"ios":{"dSYMs":false},"debug":true,"syncDebug":true},"adid":"125514200406"},"dependencies":{"pages":{"index.html":{"resources":["js/mui.min.js","css/mui.min.css","html/tab-webview-subpage-about.html","fonts/mui.ttf","fonts/iconfont.ttf","html/tab-webview-subpage-chat.html","js/util.js"],"refer":["html/tab-webview-subpage-contact.html","html/new-webview.html"],"priority":0},"launch.html":{"resources":["js/mui.min.js","css/mui.min.css","html/tab-webview-subpage-about.html"],"refer":["html/tab-webview-subpage-setting.html","html/tab-webview-subpage-chat.html","html/tab-webview-subpage-contact.html"],"priority":0},"html/tab-webview-subpage-setting.html":{"resources":["fonts/mui.ttf","css/mui.min.css","js/mui.min.js"],"refer":[],"priority":0},"html/tab-webview-subpage-about.html":{"resources":["css/mui.min.css","js/mui.min.js","js/util.js"],"refer":[],"priority":0},"html/tab-webview-subpage-chat.html":{"resources":["fonts/mui.ttf","js/mui.min.js","css/mui.min.css"],"refer":[],"priority":0},"html/tab-webview-subpage-contact.html":{"resources":["images/60x60.gif","js/mui.min.js","css/mui.min.css"],"refer":[],"priority":0},"html/new-webview.html":{"resources":["css/mui.min.css","js/mui.min.js","fonts/mui.ttf"],"refer":[],"priority":0}},"idle":{"resources":["js/mui.js","css/mui.css"]}},"screenOrientation":["portrait-primary"]} \ No newline at end of file diff --git a/unpackage/debug/android_debug.apk b/unpackage/debug/android_debug.apk new file mode 100644 index 0000000000000000000000000000000000000000..b76108c270df7470f85595e773b39e47311755f8 GIT binary patch literal 7919767 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